This identifies the generic pointer declared in the field system struct
used by map with dynamic features to store their own data about the
state of those features.
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `unk_02071B10.c` file, which is in charge of
initializing the persisted data used for dynamic features specific to a
map.
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 `unk_02068344.c` file, which is in charge of calling
the correct init/free functions for the dynamic map features, and call
the correct map-specific collision check function.
Dynamic map features are defined as features that can change the layout
of a map according to player inputs, potentially also affecting their
collision.
Dynamic map features may encompass multiple map headers. Examples
include the Sunyshore Gym dynamic map features with its bridges in
multiple rooms, or the Platform Lift dynamic map features that handles
maps with platform lifts (some rooms in Iron Island and the Pokémon
League).
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `unk_02027F50.c` file, which is in charge of managing
data used by some maps to be more dynamic, and that needs to be
persisted in the save file. Examples include Sunyshore Gym's bridges
rotation, Pastoria Gym's water level, Canalave Gym's platform
positions...
This also documents related code in the save data module, and names
constants used as IDs for identifying the map that is currently using
dynamic features.
Signed-off-by: Kuruyia <github@kuruyia.net>
This identifies the following map prop models:
- `34`: generic ship, found in Canalave City for instance.
- `123`: the healing machine found in Pokémon Centers.
- `239`: the blue button found in the Pastoria City Gym, used to set the
water to its highest level.
- `240`: the green button found in the Pastoria City Gym, used to set
the water to half its highest level.
- `241`: the orange button found in the Pastoria City Gym, used to set
the water to its lowest level.
- `303`: the muddy slope found in the overworld that needs a bike to
traverse.
- `304`: the interior variant of the muddy slope.
- `502`: the lift platform found only in the Pokémon League.
- `507`: the "healing machine"-type machine that registers the Pokémons
in the Hall of Fame.
- `538`: the S.S. Spiral (aka S.S. Sinnoh) ship used to travel between
Snowpoint City and the Fight Area.
Signed-off-by: Kuruyia <github@kuruyia.net>
This documents the `unk_02054D00.c` file, which is in charge of managing
height, collision and tile behavior between the terrain and the
player/map objects.
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>
This moves the files holding constants for the BDHC, map matrix and map
prop subsystems to the `include/constants/field` directory.
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"