blob: 24c768ea5aab583be0aba10166f71c6389427abb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#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
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
|