Documents `ov5_021D5B40`.
This module contains the functions used to create and delete the field
system's camera, as well as the camera presets (or types) used by the
different maps (see `include/data/map_headers.h`).
Also moves `CameraAngle` from `overlay115/camera_angle.h` to `camera.h`.
* Heap_AllocFromHeapAtEnd Heap ID breadcrums
* Consistent heapID capitalization
* More Heap IDs
* A little bit more Heap IDs
* More and more Heap IDs
* Stopping for today
* MOAR
* more and more
* Back from the Heap ID mines
* A couple more
* initial documentation of unk_0207070C->field moves
* changes for PR suggestions + menu taskdata
* symbols in FieldMoveTaskData + fieldMoveMon done
* function name changes, document badges, cleanup
* Use enum FieldMoveError as return type for FieldMoveErrContext functions
* badge enum and bool constants
---------
Co-authored-by: Rachel <lhearachel@proton.me>
Includes a rename of `ScriptManager::coinWindow` and
`SCRIPT_MANAGER_COIN_WINDOW` to reflect the fact that the game uses
the same pointer for both special currency windows (coins & BP), and
normalization to `CoinWindow` instead of `CoinsWindow` in
`overlay005/field_menu`
This simply renames the `y` component in 2D coordinates to `z` in
the names of variables, constants, function parameters and struct
members.
Most common examples include:
- `tileY` -> `tileZ`
- `mapMatrixY` -> `mapMatrixZ`
- `sizeY` -> `sizeZ`
Signed-off-by: Kuruyia <github@kuruyia.net>
This renames the init/free and collision check functions related to
dynamic map features, according to the maps where they are used.
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `ov5_021EF250.c` file, which is in charge of managing
terrain features whose height can change.
Examples include the water floor of Pastoria Gym, and the various lift
platforms in the game (in Iron Island, the Pokémon League...).
Signed-off-by: Kuruyia <github@kuruyia.net>
This synchonizes the terminology used in BDHC-related code with the new
terminology specified in the Markdown BDHC and file format spec
documents.
In particular:
- rename `xSize` to `xCount` for the various fields of the BDHC file
header
- rename the strip's `lowerBound` to `scanline`
- rename the plate's `height` to `constant`
- rename the plate's `slope` to `normal`
- rename the point's `y` to `z`
Signed-off-by: Kuruyia <github@kuruyia.net>
* Footstep house types and script commands
* Generated ribbons + messages
* Get Friendship + Get/Set Ribbon map scripts
* First non egg in party
* Standarized "ribbonID" as "monDataParam" and "ribbonNum" as "ribbonID"
This documents the `ov5_021E779C.c` file, which is in charge of loading
map data from the `land_data.narc` archive, dynamically load and unload
maps as the player moves, and render the map base models and their
props.
Also, for the viewer's pleasure, it includes a ton of Distortion
World-specific functions.
This also documents the `ov5_021EEAC8.c` file, which is in charge of
managing buffer allocation for the map base model and BDHC data.
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `ov5_021D521C.c` file, which is in charge of managing
lighting according to the currently loaded map area and the current
wall-clock time.
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `ov5_021D5878.c` file, which manages a data structure
containing various attributes used when rendering 3D models.
Those attributes directly map to polygon attributes/parameters that are
exposed by the NDS 3D hardware.
Signed-off-by: Kuruyia <github@kuruyia.net>
Cleanup forward declarations, unnecessary returns, duplicate function
declarations and replace literals with constants/enum variants where
applicable.
Rename struct members based on `overlay005/scrcmd_move_tutor`, some
simple functions, and give a temporary name to the struct.
This documents the `ov5_021D37AC.c` file, which is in charge of managing
the animations on map props.
The map prop animation code is actually split into two separate
managers:
* The `MapPropAnimationManager`, which is in charge of loading animation
data from the two related NARC files, and managing long-running
animations (e.g. Valley Windworks windmills, Fuego Ironworks furnace,
Veilstone Game Corner lights...)
* The `MapPropOneShotAnimationManager`, which is in charge of loading
and playing "one shot" animations (e.g. any door opening/closing, the
Pokémon Center stairs...)
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `ov5_021EF75C.c` file, which is in charge of loading
various "area data" NARCs that, in the end, contain the textures of
maps, the textures and models of map props, and lighting information.
Also, renamed `MapProp.id` to `MapProp.modelID` for more clarity
(especially when interacting with the new area data functions).
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `ov5_021D56BC.c` file, which is in charge of reading
the `build_model_matshp.dat` file from the ROM.
This file contains the material and shape IDs necessary to render the
map props that use the 1Mat1Shp rendering path from NitroSystem.
Signed-off-by: Kuruyia <github@kuruyia.net>