mirror of
https://github.com/pret/pokeruby.git
synced 2026-03-21 17:54:19 -05:00
99 lines
2.7 KiB
C
99 lines
2.7 KiB
C
#ifndef GUARD_REGION_MAP_H
|
|
#define GUARD_REGION_MAP_H
|
|
|
|
struct RegionMapLocation
|
|
{
|
|
u8 x, y;
|
|
u8 width, height;
|
|
const u8 *regionMapSectionId;
|
|
};
|
|
|
|
struct RegionMap
|
|
{
|
|
u8 mapSectionName[20];
|
|
/*0x14*/ u16 mapSectionId;
|
|
/*0x16*/ u8 unk16;
|
|
/*0x17*/ u8 everGrandeCityArea;
|
|
/*0x18*/ u8 (*inputCallback)(void);
|
|
/*0x1C*/ struct Sprite *cursorSprite;
|
|
/*0x20*/ struct Sprite *playerIconSprite;
|
|
/*0x24*/ s32 bg2x;
|
|
/*0x28*/ s32 bg2y;
|
|
/*0x2C*/ u32 unk2C; //
|
|
/*0x30*/ u32 unk30; // Map rotation parameters
|
|
/*0x34*/ u32 unk34; // Likely a scrapped feature
|
|
/*0x38*/ u32 unk38; //
|
|
/*0x3C*/ s32 unk3C;
|
|
/*0x40*/ s32 unk40;
|
|
/*0x44*/ s32 unk44;
|
|
/*0x48*/ s32 unk48;
|
|
/*0x4C*/ s32 unk4C;
|
|
/*0x50*/ s32 unk50;
|
|
/*0x54*/ u16 cursorPosX;
|
|
/*0x56*/ u16 cursorPosY;
|
|
/*0x58*/ u16 cursorTileTag;
|
|
/*0x5A*/ u16 cursorPaletteTag;
|
|
/*0x5C*/ s16 scrollX;
|
|
/*0x5E*/ s16 scrollY;
|
|
/*0x60*/ s16 unk60;
|
|
/*0x62*/ s16 unk62;
|
|
/*0x64*/ u16 unk64;
|
|
/*0x66*/ u16 unk66;
|
|
/*0x68*/ u16 unk68;
|
|
/*0x6A*/ u16 unk6A;
|
|
/*0x6C*/ u16 unk6C;
|
|
/*0x6E*/ u16 unk6E;
|
|
/*0x70*/ u16 playerIconTileTag;
|
|
/*0x72*/ u16 playerIconPaletteTag;
|
|
/*0x74*/ u16 unk74;
|
|
/*0x76*/ u16 unk76;
|
|
/*0x78*/ bool8 zoomed;
|
|
/*0x79*/ u8 initStep;
|
|
/*0x7A*/ s8 unk7A;
|
|
/*0x7B*/ s8 cursorDeltaX;
|
|
/*0x7C*/ s8 cursorDeltaY;
|
|
/*0x7D*/ bool8 needUpdateVideoRegs;
|
|
/*0x7E*/ bool8 blinkPlayerIcon;
|
|
/*0x7F*/ bool8 playerIsInCave;
|
|
/*0x080*/ u8 filler80[0x100];
|
|
/*0x180*/ u8 cursorSmallImage[0x100];
|
|
/*0x280*/ u8 cursorLargeImage[0x600];
|
|
}; // size: 0x880
|
|
|
|
struct RegionMapState
|
|
{
|
|
void (*callback)(void);
|
|
u16 state;
|
|
u16 mapSectionId;
|
|
struct RegionMap regionMap;
|
|
u16 unk_888[0xE0];
|
|
u8 blankMapName[0x26];
|
|
bool8 choseFlyLocation;
|
|
};
|
|
|
|
extern struct RegionMapState *const gRegionMapState;
|
|
|
|
void InitRegionMap(struct RegionMap *regionMap, bool8 zoomed);
|
|
void sub_80FA904(struct RegionMap *regionMap, bool8 zoomed);
|
|
bool8 sub_80FA940(void);
|
|
void FreeRegionMapIconResources(void);
|
|
u8 sub_80FAB60(void);
|
|
void sub_80FAEC4(void);
|
|
u8 sub_80FAFC0(void);
|
|
void UpdateRegionMapVideoRegs(void);
|
|
void RegionMapDefaultZoomOffsetPlayerSprite(s16, s16);
|
|
u16 GetOverworldMapFromUnderwaterMap(u16 mapSectionId);
|
|
void CreateRegionMapCursor(u16, u16);
|
|
void CreateRegionMapPlayerIcon(u16, u16);
|
|
const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length);
|
|
const u8 *CopyMapName(u8 *dest, u16 b);
|
|
const u8 *CopyLocationName(u8 *dest, u16 b);
|
|
void CB2_InitFlyRegionMap(void);
|
|
void debug_sub_8110F28(void);
|
|
u16 GetRegionMapSectionAt_(u16 x, u16 y);
|
|
void sub_80FBF94(void);
|
|
|
|
extern const struct RegionMapLocation gRegionMapEntries[];
|
|
|
|
#endif // GUARD_REGION_MAP_H
|