From 32a9e2ae445e6f5674357edc4e8b9ee90c927c43 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 15 Jul 2017 20:52:54 -0500 Subject: finish decompiling region_map --- include/field_effect.h | 2 ++ include/menu.h | 2 +- include/pokemon_menu.h | 1 + include/rom4.h | 2 +- include/secret_base.h | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h index cd84652b1..5edca21dc 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -109,6 +109,8 @@ void SpriteCB_PokeballGlow(struct Sprite *); void SpriteCB_PokecenterMonitor(struct Sprite *); void SpriteCB_HallOfFameMonitor(struct Sprite *); +void sub_80865BC(void); + void PokecenterHealEffect_0(struct Task *); void PokecenterHealEffect_1(struct Task *); void PokecenterHealEffect_2(struct Task *); diff --git a/include/menu.h b/include/menu.h index 9b48ab79b..25b1487d7 100755 --- a/include/menu.h +++ b/include/menu.h @@ -67,7 +67,7 @@ u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8); u8 sub_8072A18(const u8 *, u8, u16, u8, u32); u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32); int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32); -void MenuPrint_RightAligned(u8 *, u8, u8); +void MenuPrint_RightAligned(const u8 *, u8, u8); void sub_8072B80(const u8 *, u8, u8, const u8 *); void sub_8072BD8(const u8 *, u8, u8, u16); u8 *sub_8072C14(u8 *, s32, u8, u8); diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index d22dbb708..fc43a44c6 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -6,6 +6,7 @@ void sub_808A004(); void sub_808AB90(void); void sub_808AB90(void); // unknown args void sub_808AB90(void); +void sub_808AD58(void); void sub_808B020(void); void sub_808B0C0(u8); void sub_808B508(u8); diff --git a/include/rom4.h b/include/rom4.h index 803a38162..14a4cecfa 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -55,7 +55,7 @@ void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); -// sub_8053538 +void sub_8053538(u8); void sub_8053570(void); void sub_8053588(u8); void sub_80535C4(s16 a1, s16 a2); diff --git a/include/secret_base.h b/include/secret_base.h index 3ea75ce27..bb747bb02 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -7,6 +7,7 @@ u8 sub_80BBB24(void); void sub_80BBCCC(u8); void sub_80BC038(); u8 sub_80BC050(); +u8 *GetSecretBaseMapName(u8 *); void sub_80BC300(); const u8 sub_80BCCA4(u8); u8 *sub_80BCCE8(void); -- cgit v1.2.3 From b03a51e034df8513456043dabf23596c8daba2c1 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 16 Jul 2017 10:35:31 -0500 Subject: labeling --- include/flags.h | 21 +++++++++++++++ include/global.fieldmap.h | 2 +- include/region_map.h | 66 ++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 81 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/flags.h b/include/flags.h index 0e408a833..e8c23b538 100644 --- a/include/flags.h +++ b/include/flags.h @@ -22,6 +22,24 @@ #define BADGE07_GET 0x80D #define BADGE08_GET 0x80E +// cities and towns +#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F +#define FLAG_VISITED_OLDALE_TOWN 0x810 +#define FLAG_VISITED_DEWFORD_TOWN 0x811 +#define FLAG_VISITED_LAVARIDGE_TOWN 0x812 +#define FLAG_VISITED_FALLARBOR_TOWN 0x813 +#define FLAG_VISITED_VERDANTURF_TOWN 0x814 +#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815 +#define FLAG_VISITED_PETALBURG_CITY 0x816 +#define FLAG_VISITED_SLATEPORT_CITY 0x817 +#define FLAG_VISITED_MAUVILLE_CITY 0x818 +#define FLAG_VISITED_RUSTBORO_CITY 0x819 +#define FLAG_VISITED_FORTREE_CITY 0x81A +#define FLAG_VISITED_LILYCOVE_CITY 0x81B +#define FLAG_VISITED_MOSSDEEP_CITY 0x81C +#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D +#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E + #define SYS_USE_FLASH 0x828 #define SYS_USE_STRENGTH 0x829 #define SYS_WEATHER_CTRL 0x82A @@ -42,6 +60,9 @@ #define SYS_SHOAL_TIDE 0x83A #define SYS_RIBBON_GET 0x83B +#define FLAG_UNLOCK_BATTLE_TOWER 0x848 +#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849 + #define SYS_PC_LANETTE 0x84B #define SYS_EXDATA_ENABLE 0x84C #define SYS_ENC_UP_ITEM 0x84D diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 7589de029..4029132e8 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -166,7 +166,7 @@ struct MapHeader /* 0x0C */ struct MapConnections *connections; /* 0x10 */ u16 music; /* 0x12 */ u16 mapDataId; - /* 0x14 */ u8 name; + /* 0x14 */ u8 regionMapSectionId; /* 0x15 */ u8 cave; /* 0x16 */ u8 weather; /* 0x17 */ u8 mapType; diff --git a/include/region_map.h b/include/region_map.h index 6dfa4dcf0..88e0ee21f 100755 --- a/include/region_map.h +++ b/include/region_map.h @@ -1,13 +1,65 @@ #ifndef GUARD_REGION_MAP_H #define GUARD_REGION_MAP_H -void sub_80FA8EC(u32, u8); -void sub_80FAB10(void); +struct RegionMap +{ + u8 mapSecName[0x14]; + u16 mapSecId; + u8 unk16; + u8 everGrandeCityArea; + u8 (*inputCallback)(void); + struct Sprite *cursorIconSprite; + struct Sprite *playerIconSprite; + s32 bg2x; + s32 bg2y; + u32 unk2C; // + u32 unk30; // Map rotation parameters + u32 unk34; // Likely a scrapped feature + u32 unk38; // + s32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + s32 unk50; + u16 cursorPosX; + u16 cursorPosY; + u16 cursorIconTileTag; + u16 cursorIconPaletteTag; + s16 scrollX; + s16 scrollY; + s16 unk60; + s16 unk62; + u16 unk64; + u16 unk66; + u16 unk68; + u16 unk6A; + u16 unk6C; + u16 unk6E; + u16 playerIconTileTag; + u16 playerIconPaletteTag; + u16 unk74; + u16 unk76; + bool8 zoomed; + u8 initStep; + s8 unk7A; + s8 cursorDeltaX; + s8 cursorDeltaY; + bool8 needUpdateVideoRegs; + bool8 blinkPlayerIcon; + bool8 playerIsInCave; + u8 filler80[0x100]; + u8 unk180[0x100]; + u8 unk280[0x600]; +}; + +void InitRegionMap(struct RegionMap *regionMap, bool8 b); +void FreeRegionMapIconResources(void); u8 sub_80FAB60(void); -void sub_80FBB3C(u16, u16); -void sub_80FBCF0(u32, u8); -void sub_80FBFB4(u8 *str, u16 region, u8); -void CopyMapName(); -u8 *CopyLocationName(u8 *dest, u8 location); +void CreateRegionMapCursorIcon(u16, u16); +void CreateRegionMapPlayerIcon(u16, u16); +const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length); +const u8 *CopyMapName(u8 *dest, u16 b); +const u8 *CopyLocationName(u8 *dest, u16 b); #endif // GUARD_REGION_MAP_H -- cgit v1.2.3 From d4bd4c393e59bb66a8d4f69f23dce694982723e1 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 16 Jul 2017 12:41:13 -0500 Subject: more labeling and use static --- include/flags.h | 2 ++ include/region_map.h | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/flags.h b/include/flags.h index e8c23b538..8ed15cb99 100644 --- a/include/flags.h +++ b/include/flags.h @@ -72,6 +72,8 @@ #define SYS_BRAILLE_WAIT 0x851 #define SYS_BRAILLE_FLY 0x852 +#define SYS_POKEMON_LEAGUE_FLY 0x854 + #define SYS_TV_LATI 0x85D #define SYS_SHOAL_ITEM 0x85F diff --git a/include/region_map.h b/include/region_map.h index 88e0ee21f..3d970fa0a 100755 --- a/include/region_map.h +++ b/include/region_map.h @@ -8,7 +8,7 @@ struct RegionMap u8 unk16; u8 everGrandeCityArea; u8 (*inputCallback)(void); - struct Sprite *cursorIconSprite; + struct Sprite *cursorSprite; struct Sprite *playerIconSprite; s32 bg2x; s32 bg2y; @@ -24,8 +24,8 @@ struct RegionMap s32 unk50; u16 cursorPosX; u16 cursorPosY; - u16 cursorIconTileTag; - u16 cursorIconPaletteTag; + u16 cursorTileTag; + u16 cursorPaletteTag; s16 scrollX; s16 scrollY; s16 unk60; @@ -48,15 +48,22 @@ struct RegionMap bool8 needUpdateVideoRegs; bool8 blinkPlayerIcon; bool8 playerIsInCave; - u8 filler80[0x100]; - u8 unk180[0x100]; - u8 unk280[0x600]; + /*0x080*/ u8 filler80[0x100]; + /*0x180*/ u8 cursorSmallImage[0x100]; + /*0x280*/ u8 cursorLargeImage[0x600]; }; -void InitRegionMap(struct RegionMap *regionMap, bool8 b); +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 CreateRegionMapCursorIcon(u16, u16); +void sub_80FAEC4(void); +u8 sub_80FAFC0(void); +void UpdateRegionMapVideoRegs(void); +void sub_80FB2A4(s16, s16); +u16 sub_80FBA04(u16 mapSecId); +void CreateRegionMapCursor(u16, u16); void CreateRegionMapPlayerIcon(u16, u16); const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); -- cgit v1.2.3