diff --git a/asm/code_800DAC0.s b/asm/code_800DAC0.s index 45ff12808..5843b950a 100644 --- a/asm/code_800DAC0.s +++ b/asm/code_800DAC0.s @@ -428,7 +428,7 @@ _0800E030: bl sub_8000728 cmp r0, 0x1 bne _0800E058 - bl sub_8040238 + bl LoadDungeonMapPalette movs r0, 0 movs r1, 0 bl sub_803EAF0 diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index 89960c859..8f37278ce 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -6828,7 +6828,7 @@ _08065062: ldr r0, [r0] str r0, [r1] bl sub_803E13C - bl sub_8040238 + bl LoadDungeonMapPalette _08065088: pop {r4} pop {r0} diff --git a/include/dungeon_map.h b/include/dungeon_map.h new file mode 100644 index 000000000..fa5350853 --- /dev/null +++ b/include/dungeon_map.h @@ -0,0 +1,20 @@ +#ifndef GUARD_DUNGEON_MAP_H +#define GUARD_DUNGEON_MAP_H + +extern bool8 gUnknown_202EE00; +extern bool8 gShowDungeonMap; + +void SetDungeonMapToNotShown(void); +void OpenDungeonMapFile(void); +void InitDungeonMap(bool8 a0); +void CloseDungeonMapFile(void); +void LoadDungeonMapPalette(void); +void sub_80402AC(s32 x, s32 y); +void sub_8040788(void); +void ShowPlayerDotOnMap(void); +void ResetMapPlayerDotFrames(void); +void sub_8040A84(void); +void sub_8040ABC(bool8 a0); +void sub_8040B60(void); + +#endif diff --git a/include/structs/str_dungeon.h b/include/structs/str_dungeon.h index e29db5a6b..d21ca18bb 100644 --- a/include/structs/str_dungeon.h +++ b/include/structs/str_dungeon.h @@ -348,9 +348,9 @@ struct UnkDungeonGlobal_unk1BBEC bool8 *boolPtr; }; -struct UnkDungeonGlobal_1822C +struct DungeonMap { - struct UnkDungeonGlobal_1822C_Sub unk1822C[UNK1822C_ARR_COUNT][UNK1822C_ARR_COUNT_2]; + struct UnkDungeonGlobal_1822C_Sub dungeonMap[UNK1822C_ARR_COUNT][UNK1822C_ARR_COUNT_2]; bool8 unk1BA2C[UNK1822C_ARR_COUNT][UNK1822C_ARR_COUNT_2]; struct UnkDungeonGlobal_unk1BBEC unk1BBEC[40]; s32 unk1BDCC; @@ -474,7 +474,7 @@ typedef struct Dungeon /* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX]; /* 0x181E4 */ OpenedFile *paletFile; /* 0x181E8 */ UnkDungeonGlobal_unk181E8_sub unk181e8; - /* 0x1822C */ struct UnkDungeonGlobal_1822C unk1822C; + /* 0x1822C */ struct DungeonMap dungeonMap; /* 0x1BDD4 */ struct UnkStructDungeon1BDD4 unk1BDD4; /* 0x1BE14 */ struct MessageLogString messageLogStrings[MESSAGE_LOG_STRINGS_COUNT]; /* 0x1C570 */ DungeonLocation unk1C570; diff --git a/src/code_800DAC0.c b/src/code_800DAC0.c index 8c555c33a..07f03fdf6 100644 --- a/src/code_800DAC0.c +++ b/src/code_800DAC0.c @@ -6,6 +6,7 @@ #include "code_800E9A8.h" #include "file_system.h" #include "memory.h" +#include "dungeon_map.h" EWRAM_INIT struct unkStruct_203B0CC *gUnknown_203B0CC = NULL; @@ -19,7 +20,6 @@ extern s32 sub_800E2C0(u32); extern s32 sub_8000728(void); extern u32 sub_800E900(void); extern void sub_8009BE4(void); -extern void sub_8040238(void); extern void sub_800F204(void); extern void sub_803EAF0(u32, u32); extern struct unkStruct_800F18C *sub_800F18C(s32); @@ -136,7 +136,7 @@ void sub_800DC14(s32 param_1) if (preload->unk34 == 4) { sub_8009BE4(); if (sub_8000728() == 1) { - sub_8040238(); + LoadDungeonMapPalette(); sub_803EAF0(0,0); sub_800CD64(0x8000,0); } diff --git a/src/code_803E46C.c b/src/code_803E46C.c index 2bcefa896..2f36b5a4c 100644 --- a/src/code_803E46C.c +++ b/src/code_803E46C.c @@ -7,7 +7,7 @@ #include "code_800C9CC.h" #include "code_80118A4.h" #include "code_803E668.h" - +#include "dungeon_map.h" #include "bg_palette_buffer.h" #include "bg_control.h" #include "dungeon_music.h" @@ -32,7 +32,6 @@ void sub_806CC10(); void sub_804522C(); void sub_803F9CC(); extern void xxx_call_update_bg_vram(void); -void sub_8040894(); void sub_803ECE0(); void sub_803EDF0(); void sub_800E90C(); @@ -82,7 +81,7 @@ void sub_803E490(u32 unused) sub_8042E5C(); if(gUnknown_202EDD0 == 0 || gUnknown_202EDD0 == 3 || gGameOptionsRef->mapOption == TOP_MAP_AND_TEAM_NO_BOTTOM) - sub_8040894(); + ShowPlayerDotOnMap(); sub_803ECE0(); sub_803EDF0(); diff --git a/src/code_8040094.c b/src/code_8040094.c index 50a8aa710..db7a90417 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -9,12 +9,6 @@ #include "dungeon_music.h" #include "file_system.h" #include "play_time.h" -#include "cpu.h" -#include "dungeon.h" -#include "code_8009804.h" -#include "code_800E9E4.h" -#include "dungeon_util.h" -#include "code_804267C.h" extern s32 gUnknown_80F6568[]; extern const char gUnknown_80F6604; // "zmappat" diff --git a/src/code_804267C.c b/src/code_804267C.c index aa73cb1e6..84ab5fd1c 100644 --- a/src/code_804267C.c +++ b/src/code_804267C.c @@ -8,6 +8,7 @@ #include "code_806CD90.h" #include "dungeon.h" #include "dungeon_engine.h" +#include "dungeon_map.h" #include "dungeon_leader.h" #include "dungeon_message.h" #include "dungeon_music.h" @@ -22,7 +23,6 @@ extern const u32 gUnknown_80F680C[8]; extern const u16 gUnknown_80F682C[8]; extern const u8 *gPtrFeralFoundItemMessage[]; -extern void sub_8040238(void); extern void sub_804151C(Entity *pokemon, u32 r1, u8 r2); extern void sub_804178C(u32); extern void sub_80416A4(DungeonPos *r0, u32 r1, bool8 r2); @@ -182,7 +182,7 @@ void sub_80426C8(u32 a0, u32 a1) sub_803E46C(0x46); sub_8042D7C(); - sub_8040238(); + LoadDungeonMapPalette(); sub_8052210(1); } diff --git a/src/code_8042B34.c b/src/code_8042B34.c index fcee722dd..baea0ad8d 100644 --- a/src/code_8042B34.c +++ b/src/code_8042B34.c @@ -40,6 +40,7 @@ #include "constants/trap.h" #include "dungeon_serializer.h" #include "dungeon_config.h" +#include "dungeon_map.h" extern void sub_800EE5C(s32); extern void sub_800EF64(void); @@ -255,17 +256,13 @@ extern void sub_8040094(u8 r0); extern void sub_8068BDC(u8 r0); extern s16 GetTurnLimit(u8 dungeon); extern void sub_8041888(u8 param_1); -extern void sub_8040150(bool8 param_1); extern void sub_803D4AC(void); extern void sub_804513C(void); extern void sub_8043CD8(void); extern void sub_803E250(void); -extern void sub_8040130(void); -extern void sub_8040124(void); extern void sub_803E830(void); extern void sub_803E214(void); extern void nullsub_56(void); -extern void sub_8040218(void); extern void sub_8047104(void); extern void sub_8068F28(void); extern void sub_806C1D8(void); @@ -415,8 +412,8 @@ void RunDungeon(struct UnkStruct_RunDungeon *r8) sub_8043CD8(); sub_80495E4(); sub_803E250(); - sub_8040130(); - sub_8040124(); + OpenDungeonMapFile(); + SetDungeonMapToNotShown(); sub_803F27C(1); gUnknown_2026E4E = 2056; sub_80095CC(1, 0x14); @@ -589,7 +586,7 @@ void RunDungeon(struct UnkStruct_RunDungeon *r8) sub_8049840(); sub_803E178(); gDungeonBrightness = 0; - sub_8040124(); + SetDungeonMapToNotShown(); sub_803EAF0(4, 0); sub_8052210(0); sub_803F27C(r6); @@ -661,7 +658,7 @@ void RunDungeon(struct UnkStruct_RunDungeon *r8) } sub_8040094(0); sub_803EAF0(0, 0); - sub_8040150(r6); + InitDungeonMap(r6); sub_8040A84(); gDungeon->unkB8 = NULL; gDungeon->unk644.unk28 = 0; @@ -745,7 +742,7 @@ void RunDungeon(struct UnkStruct_RunDungeon *r8) sub_8052740(0x4F); } - sub_8040124(); + SetDungeonMapToNotShown(); sub_803EAF0(1, 0); gDungeon->unk181e8.unk18219 = 0; gDungeon->unk181e8.unk18218 = 1; @@ -915,7 +912,7 @@ void RunDungeon(struct UnkStruct_RunDungeon *r8) CloseDungeonPaletteFile(); sub_803E214(); nullsub_56(); - sub_8040218(); + CloseDungeonMapFile(); if (r8->unk7C == 1 || r8->unk7C == 4 || r8->unk7C == 2) { sub_8047104(); } diff --git a/src/code_805D8C8_1.c b/src/code_805D8C8_1.c index b0228e120..fd2e0a2f7 100644 --- a/src/code_805D8C8_1.c +++ b/src/code_805D8C8_1.c @@ -9,6 +9,7 @@ #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" +#include "dungeon_map.h" #include "pokemon.h" #include "moves.h" #include "items.h" @@ -76,7 +77,6 @@ bool8 sub_80701A4(Entity *a0); void sub_80647F0(Entity *a0); void sub_805E738(Entity *a0); void sub_803E708(s32 a0, s32 a1); -void sub_8040A78(void); void sub_805E804(void); void sub_8064BE0(void); void sub_8075680(u32); @@ -168,7 +168,7 @@ void DungeonHandlePlayerInput(void) } gDungeon->unk644.unk2F = 0; - sub_8040A78(); + ResetMapPlayerDotFrames(); if (gDungeon->unk1 != 0) { gDungeon->unk1 = 0; if (!ShouldMonsterRunAwayAndShowEffect(GetLeader(), TRUE)) { diff --git a/src/dungeon_map.c b/src/dungeon_map.c index edecf4f26..1b4e7086a 100644 --- a/src/dungeon_map.c +++ b/src/dungeon_map.c @@ -1,4 +1,5 @@ #include "global.h" +#include "dungeon_map.h" #include "structs/dungeon_entity.h" #include "structs/str_dungeon.h" #include "dungeon_map_access.h" @@ -29,32 +30,41 @@ extern bool8 DoesNotHaveShadedMap(void); extern const u8 gUnknown_80F65F0[]; -EWRAM_DATA u8 gUnknown_202EE00 = 0; -EWRAM_DATA u8 gUnknown_202EE01 = 0; -EWRAM_DATA static u8 gUnknown_202EE02 = 0; -EWRAM_DATA static OpenedFile *gUnknown_202EE04 = NULL; +struct UnkStruct1 +{ + u32 **unk0; +}; + +struct DungeonMapGfx +{ + struct UnkStruct1 *gfx; + RGB *pal; +}; + +EWRAM_DATA bool8 gUnknown_202EE00 = FALSE; +EWRAM_DATA bool8 gShowDungeonMap = FALSE; +EWRAM_DATA static u8 sPlayerDotFrames = 0; +EWRAM_DATA static OpenedFile *sDungeonMapGfxFile = NULL; EWRAM_DATA static void *gUnknown_202EE08 = NULL; -void sub_8040238(void); - -void sub_8040124(void) +void SetDungeonMapToNotShown(void) { - gUnknown_202EE01 = 0; + gShowDungeonMap = FALSE; } -void sub_8040130(void) +void OpenDungeonMapFile(void) { - gUnknown_202EE04 = OpenFileAndGetFileDataPtr(&gUnknown_80F6604, &gDungeonFileArchive); + sDungeonMapGfxFile = OpenFileAndGetFileDataPtr(&gUnknown_80F6604, &gDungeonFileArchive); } -void sub_8040150(bool8 a0) +void InitDungeonMap(bool8 a0) { s32 i, j; for (i = 0; i < UNK1822C_ARR_COUNT; i++) { for (j = 0; j < UNK1822C_ARR_COUNT_2; j++) { - CpuClear(&gDungeon->unk1822C.unk1822C[i][j], sizeof(struct UnkDungeonGlobal_1822C_Sub)); - gDungeon->unk1822C.unk1BA2C[i][j] = FALSE; + CpuClear(&gDungeon->dungeonMap.dungeonMap[i][j], sizeof(struct UnkDungeonGlobal_1822C_Sub)); + gDungeon->dungeonMap.unk1BA2C[i][j] = FALSE; } } @@ -63,21 +73,21 @@ void sub_8040150(bool8 a0) gUnknown_203B410.y = 100; } - gDungeon->unk1822C.unk1BDCC = 0; - gDungeon->unk1822C.unk1BDD0 = 1; - gDungeon->unk1822C.unk1BDD2 = 0; + gDungeon->dungeonMap.unk1BDCC = 0; + gDungeon->dungeonMap.unk1BDD0 = 1; + gDungeon->dungeonMap.unk1BDD2 = 0; gUnknown_202EE00 = 1; gUnknown_202EE08 = (void *) VRAM + 0x1700; - gUnknown_202EE01 = 1; - sub_8040238(); + gShowDungeonMap = TRUE; + LoadDungeonMapPalette(); } -void sub_8040218(void) +void CloseDungeonMapFile(void) { - if (gUnknown_202EE04 != NULL) { - CloseFile(gUnknown_202EE04); + if (sDungeonMapGfxFile != NULL) { + CloseFile(sDungeonMapGfxFile); } - sub_8040124(); + SetDungeonMapToNotShown(); } // Used in Pmd's Blue version. Stores different Vram address in gUnknown_202EE08(maybe?), depending on TOP_MAP_AND_TEAM_NO_BOTTOM map option. @@ -86,24 +96,13 @@ UNUSED static void nullsub_203(void) } -struct UnkStruct1 -{ - u32 **unk0; -}; - -struct UnkPaletteFileData -{ - struct UnkStruct1 *unk0; - RGB *pal; -}; - -void sub_8040238(void) +void LoadDungeonMapPalette(void) { s32 i; - if (gUnknown_202EE04 == NULL) + if (sDungeonMapGfxFile == NULL) return; - if (!gUnknown_202EE01) + if (!gShowDungeonMap) return; for (i = 0; i < 16; i++) { @@ -112,8 +111,8 @@ void sub_8040238(void) nullsub_5(238, &gFontPalette[1]); } else { - SetBGPaletteBufferColorArray(i + 224, &((struct UnkPaletteFileData *)(gUnknown_202EE04->data))->pal[i]); - nullsub_5(i + 224, &((struct UnkPaletteFileData *)(gUnknown_202EE04->data))->pal[i]); + SetBGPaletteBufferColorArray(i + 224, &((struct DungeonMapGfx *)(sDungeonMapGfxFile->data))->pal[i]); + nullsub_5(i + 224, &((struct DungeonMapGfx *)(sDungeonMapGfxFile->data))->pal[i]); } } } @@ -140,9 +139,9 @@ void sub_80402AC(s32 x, s32 y) dungeon = gDungeon; r10 = TRUE; - if (gUnknown_202EE04 == NULL) + if (sDungeonMapGfxFile == NULL) return; - if (!gUnknown_202EE01) + if (!gShowDungeonMap) return; if (sub_800EC74()) return; @@ -353,10 +352,10 @@ void sub_80402AC(s32 x, s32 y) yDiv2 = (yMinus / 2); r3 = x - (xDiv2 * 2); r3 += (yMinus - (yDiv2 * 2)) * 2; - dst = dungeon->unk1822C.unk1822C[yDiv2][xDiv2].arr; + dst = dungeon->dungeonMap.dungeonMap[yDiv2][xDiv2].arr; { - struct UnkPaletteFileData *ptr = ((struct UnkPaletteFileData *)(&gUnknown_202EE04->data)); - src = ptr->unk0->unk0[r6 * 4 + r3]; + struct DungeonMapGfx *ptr = ((struct DungeonMapGfx *)(&sDungeonMapGfxFile->data)); + src = ptr->gfx->unk0[r6 * 4 + r3]; } dst[0] = (dst[0] & src[0]) | src[1]; @@ -368,19 +367,19 @@ void sub_80402AC(s32 x, s32 y) dst[6] = (dst[6] & src[12]) | src[13]; dst[7] = (dst[7] & src[14]) | src[15]; - if (!dungeon->unk1822C.unk1BDD1 && !dungeon->unk1822C.unk1BA2C[yDiv2][xDiv2]) { + if (!dungeon->dungeonMap.unk1BDD1 && !dungeon->dungeonMap.unk1BA2C[yDiv2][xDiv2]) { s32 id; - dungeon->unk1822C.unk1BA2C[yDiv2][xDiv2] = TRUE; - id = dungeon->unk1822C.unk1BDCC; + dungeon->dungeonMap.unk1BA2C[yDiv2][xDiv2] = TRUE; + id = dungeon->dungeonMap.unk1BDCC; if (id < 40) { - dungeon->unk1822C.unk1BBEC[id].ptr1 = gUnknown_202EE08 + ((xDiv2 + yDiv2 * 28) * 32); - dungeon->unk1822C.unk1BBEC[id].ptr2 = dst; - dungeon->unk1822C.unk1BBEC[id].boolPtr = &dungeon->unk1822C.unk1BA2C[yDiv2][xDiv2]; - dungeon->unk1822C.unk1BDCC++; + dungeon->dungeonMap.unk1BBEC[id].ptr1 = gUnknown_202EE08 + ((xDiv2 + yDiv2 * 28) * 32); + dungeon->dungeonMap.unk1BBEC[id].ptr2 = dst; + dungeon->dungeonMap.unk1BBEC[id].boolPtr = &dungeon->dungeonMap.unk1BA2C[yDiv2][xDiv2]; + dungeon->dungeonMap.unk1BDCC++; } else { - dungeon->unk1822C.unk1BDD1 = 1; + dungeon->dungeonMap.unk1BDD1 = 1; } } } @@ -391,14 +390,14 @@ void sub_8040788(void) Dungeon *dungeon = gDungeon; if (dungeon == NULL) return; - if (!dungeon->unk1822C.unk1BDD0) + if (!dungeon->dungeonMap.unk1BDD0) return; if (sub_800EC74()) return; - if (!dungeon->unk1822C.unk1BDD1) { - for (i = 0; i < dungeon->unk1822C.unk1BDCC; i++) { - struct UnkDungeonGlobal_unk1BBEC *ptr = &dungeon->unk1822C.unk1BBEC[i]; + if (!dungeon->dungeonMap.unk1BDD1) { + for (i = 0; i < dungeon->dungeonMap.unk1BDCC; i++) { + struct UnkDungeonGlobal_unk1BBEC *ptr = &dungeon->dungeonMap.unk1BBEC[i]; u32 *src = ptr->ptr2; u32 *dst = ptr->ptr1; @@ -418,9 +417,9 @@ void sub_8040788(void) else { void *dst, *src; - dungeon->unk1822C.unk1BDD1 = FALSE; + dungeon->dungeonMap.unk1BDD1 = FALSE; dst = gUnknown_202EE08; - src = dungeon->unk1822C.unk1822C[0][0].arr; + src = dungeon->dungeonMap.dungeonMap[0][0].arr; for (i = 0; i < DUNGEON_MAX_SIZE_X * 8; i += 8) { if (gUnknown_202EDD0 == 0 || gUnknown_202EDD0 == 3) { @@ -429,12 +428,12 @@ void sub_8040788(void) dst += 0x100; src += 0x100; } - dungeon->unk1822C.unk1BDD2 = 1; + dungeon->dungeonMap.unk1BDD2 = 1; } - dungeon->unk1822C.unk1BDCC = 0; + dungeon->dungeonMap.unk1BDCC = 0; } -void sub_8040894(void) +void ShowPlayerDotOnMap(void) { if (gDungeon->unk181e8.unk18214) return; @@ -442,7 +441,7 @@ void sub_8040894(void) return; if (gUnknown_203B410.x >= 100) return; - if ((++gUnknown_202EE02 & 8) == 0) { + if ((++sPlayerDotFrames & 8) == 0) { SpriteOAM sprite = {0}; SpriteSetAffine1(&sprite, 0); @@ -472,16 +471,16 @@ void sub_8040894(void) } } -void sub_8040A78(void) +void ResetMapPlayerDotFrames(void) { - gUnknown_202EE02 = 0; + sPlayerDotFrames = 0; } void sub_8040A84(void) { s32 x, y; - gDungeon->unk1822C.unk1BDD1 = TRUE; + gDungeon->dungeonMap.unk1BDD1 = TRUE; for (y = 0; y < DUNGEON_MAX_SIZE_Y; y++) { for (x = 0; x < DUNGEON_MAX_SIZE_X; x++) { @@ -533,20 +532,20 @@ void sub_8040B60(void) { s32 x, y; Dungeon *dungeon = gDungeon; - if (dungeon->unk1822C.unk1BDD2) { + if (dungeon->dungeonMap.unk1BDD2) { #ifdef BUGFIX for (y = 0; y < UNK1822C_ARR_COUNT; y++) { for (x = 0; x < UNK1822C_ARR_COUNT_2; x++) { - dungeon->unk1822C.unk1BA2C[y][x] = FALSE; + dungeon->dungeonMap.unk1BA2C[y][x] = FALSE; } } #else for (y = 0; y < DUNGEON_MAX_SIZE_Y; y++) { for (x = 0; x < DUNGEON_MAX_SIZE_X; x++) { - dungeon->unk1822C.unk1BA2C[y][x] = FALSE; + dungeon->dungeonMap.unk1BA2C[y][x] = FALSE; } } #endif // BUGFIX - dungeon->unk1822C.unk1BDD2 = FALSE; + dungeon->dungeonMap.unk1BDD2 = FALSE; } } diff --git a/src/dungeon_message.c b/src/dungeon_message.c index ccbaccb88..f731400f4 100644 --- a/src/dungeon_message.c +++ b/src/dungeon_message.c @@ -1,5 +1,6 @@ #include "global.h" #include "dungeon_message.h" +#include "dungeon_map.h" #include "dungeon.h" #include "structs/dungeon_entity.h" #include "code_803E46C.h" @@ -33,7 +34,6 @@ static bool8 sub_8052DC0(Entity *); extern bool8 sub_8045888(Entity *pokemon); extern void sub_805E804(void); extern void sub_803EAF0(s32, s32); -extern void sub_8040238(void); extern void sub_8083E28(void); extern u32 sub_8014140(s32 a0, const void *a1); extern void sub_8083D30(void); @@ -44,7 +44,6 @@ extern void sub_8083CE0(u8 param_1); extern u32 gUnknown_202EDD0; extern u8 gUnknown_203B40C; -extern u8 gUnknown_202EE01; extern s32 gUnknown_202EDCC; extern const u8 gUnknown_80F7AE8[]; @@ -379,8 +378,8 @@ void DisplayDungeonMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 if (a2) { sub_805E804(); - sub_8040238(); - if (gUnknown_202EE01) { + LoadDungeonMapPalette(); + if (gShowDungeonMap) { sub_803EAF0(0, 0); } else { @@ -510,7 +509,7 @@ void DisplayDungeonDialogue(const struct DungeonDialogueStruct *dialogueInfo) } if (dialogueInfo->unk0 != 1 && dialogueInfo->unk0 != 3) { - sub_8040238(); + LoadDungeonMapPalette(); sub_803EAF0(0, 0); } sub_803E708(8, 9); @@ -556,7 +555,7 @@ bool32 DisplayDungeonYesNoMessage(struct MonDialogueSpriteInfo *monSpriteInfo, c CloseFile(monPortrait.faceFile); } - sub_8040238(); + LoadDungeonMapPalette(); sub_803EAF0(0, 0); if (chosenMenuIndex == 1) @@ -599,7 +598,7 @@ s32 DisplayDungeonMenuMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const CloseFile(monPortrait.faceFile); } - sub_8040238(); + LoadDungeonMapPalette(); sub_803EAF0(0, 0); return chosenMenuIndex; } @@ -786,7 +785,7 @@ void sub_8052FB8(const u8 *str) ShowWindows(NULL, TRUE, TRUE); sub_803E46C(9); - sub_8040238(); + LoadDungeonMapPalette(); for (j = 0; j < 8; j++) { SetBGPaletteBufferColorArray(240 + j, &gFontPalette[j]); }