pokeplatinum/include/dynamic_map_features.h
Kuruyia 8c206e0283 Document dynamic map features
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>
2025-03-24 08:05:26 +01:00

19 lines
854 B
C

#ifndef POKEPLATINUM_DYNAMIC_MAP_FEATURES_H
#define POKEPLATINUM_DYNAMIC_MAP_FEATURES_H
#include <nitro/fx/fx.h>
#include <nitro/types.h>
#include "field/field_system_decl.h"
typedef void (*DynamicMapFeaturesInitFunc)(FieldSystem *);
typedef void (*DynamicMapFeaturesFreeFunc)(FieldSystem *);
typedef BOOL (*DynamicMapFeaturesCheckCollisionFunc)(FieldSystem *, const int, const int, const fx32, BOOL *);
void DynamicMapFeatures_Init(FieldSystem *fieldSystem);
void DynamicMapFeatures_Free(FieldSystem *fieldSystem);
BOOL DynamicMapFeatures_CheckCollision(FieldSystem *fieldSystem, const int tileX, const int tileY, const fx32 height, BOOL *isColliding);
BOOL DynamicMapFeatures_WillPlayerJumpEternaGymClock(FieldSystem *fieldSystem, const int tileX, const int tileY, const fx32 unused3, int direction);
#endif // POKEPLATINUM_DYNAMIC_MAP_FEATURES_H