From 4e9d76d3052db037bd92870eb6a7e086a566065f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 08:43:45 -0400 Subject: through CB2_UnusedPokedexAreaScreen --- asm/pokedex_area_screen.s | 170 --------------------------------------------- data/pokedex_area_screen.s | 1 + include/region_map.h | 2 +- ld_script.txt | 1 + src/pokedex_area_screen.c | 90 ++++++++++++++++++++++++ 5 files changed, 93 insertions(+), 171 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 779a5a0ed..9f47d4162 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,176 +5,6 @@ .text - thumb_func_start UnusedPokedexAreaScreen -UnusedPokedexAreaScreen: @ 8110664 - push {lr} - ldr r3, _08110678 @ =gSharedMem - str r1, [r3, 0x4] - str r2, [r3, 0x8] - strh r0, [r3, 0xE] - ldr r0, _0811067C @ =CB2_UnusedPokedexAreaScreen - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08110678: .4byte gSharedMem -_0811067C: .4byte CB2_UnusedPokedexAreaScreen - thumb_func_end UnusedPokedexAreaScreen - - thumb_func_start CB2_UnusedPokedexAreaScreen -CB2_UnusedPokedexAreaScreen: @ 8110680 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0811069C @ =gMain - ldr r1, _081106A0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08110692 - b _081107C0 -_08110692: - lsls r0, 2 - ldr r1, _081106A4 @ =_081106A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811069C: .4byte gMain -_081106A0: .4byte 0x0000043c -_081106A4: .4byte _081106A8 - .align 2, 0 -_081106A8: - .4byte _081106C8 - .4byte _08110720 - .4byte _08110740 - .4byte _08110746 - .4byte _08110752 - .4byte _08110770 - .4byte _08110782 - .4byte _081107A8 -_081106C8: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC4 - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - ldr r0, _08110710 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - ldr r2, _08110714 @ =REG_BG0VOFS - ldr r3, _08110718 @ =0x0000fff8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _0811071C @ =REG_BG2VOFS - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _081107C0 - .align 2, 0 -_08110710: .4byte REG_BG0HOFS -_08110714: .4byte REG_BG0VOFS -_08110718: .4byte 0x0000fff8 -_0811071C: .4byte REG_BG2VOFS -_08110720: - ldr r4, _0811073C @ =gSharedMem + 0x6E8 - adds r0, r4, 0 - movs r1, 0 - bl InitRegionMap - movs r0, 0x88 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl StringFill - b _081107C0 - .align 2, 0 -_0811073C: .4byte gSharedMem + 0x6E8 -_08110740: - bl sub_8110824 - b _081107C0 -_08110746: - bl DrawAreaGlow - lsls r0, 24 - cmp r0, 0 - bne _081107CC - b _081107C0 -_08110752: - movs r0, 0x1 - movs r1, 0x1 - bl CreateRegionMapPlayerIcon - movs r1, 0x8 - negs r1, r1 - movs r0, 0 - bl sub_80FB2A4 - ldr r0, _0811076C @ =sub_81107DC - bl SetVBlankCallback - b _081107C0 - .align 2, 0 -_0811076C: .4byte sub_81107DC -_08110770: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _081107C0 -_08110782: - ldr r1, _0811079C @ =REG_BLDCNT - ldr r2, _081107A0 @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8111084 - movs r1, 0x80 - lsls r1, 19 - ldr r3, _081107A4 @ =0x00007741 - adds r0, r3, 0 - strh r0, [r1] - b _081107C0 - .align 2, 0 -_0811079C: .4byte REG_BLDCNT -_081107A0: .4byte 0x00003f41 -_081107A4: .4byte 0x00007741 -_081107A8: - ldr r0, _081107B8 @ =sub_8111288 - bl sub_8110814 - ldr r0, _081107BC @ =sub_81107F0 - bl SetMainCallback2 - b _081107CC - .align 2, 0 -_081107B8: .4byte sub_8111288 -_081107BC: .4byte sub_81107F0 -_081107C0: - ldr r1, _081107D4 @ =gMain - ldr r0, _081107D8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081107CC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081107D4: .4byte gMain -_081107D8: .4byte 0x0000043c - thumb_func_end CB2_UnusedPokedexAreaScreen - thumb_func_start sub_81107DC sub_81107DC: @ 81107DC push {lr} diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s index 410f0d4c5..6d52e30a5 100644 --- a/data/pokedex_area_screen.s +++ b/data/pokedex_area_screen.s @@ -26,6 +26,7 @@ gUnknown_083F857A:: @ 83F857A @ XXX: what is this? .align 2 +gUnknown_083F8588:: .4byte gSharedMem .align 2 diff --git a/include/region_map.h b/include/region_map.h index 89a47cd05..3fe7de460 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -51,7 +51,7 @@ struct RegionMap /*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); diff --git a/ld_script.txt b/ld_script.txt index d3f41018a..382feba7c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -340,6 +340,7 @@ SECTIONS { src/hof_pc.o(.text); src/field_specials.o(.text); src/battle/battle_records.o(.text); + src/pokedex_area_screen.o(.text); asm/pokedex_area_screen.o(.text); src/evolution_scene.o(.text); src/roulette.o(.text); diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 67ca276c4..020f0e9b2 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -1,9 +1,31 @@ // Includes #include "global.h" +#include "ewram.h" +#include "main.h" +#include "palette.h" +#include "task.h" +#include "sprite.h" +#include "region_map.h" +#include "string_util.h" +#include "text.h" // Static type declarations +struct PokedexAreaScreenEwramStruct +{ + u8 filler_0000[4]; + u32 unk0004; + u32 unk0008; + u8 filler_000C[2]; + u16 unk000E; + u8 filler_0010[0x6d8]; + struct RegionMap unk06E8; + u8 unk0F68[16]; +}; + +#define ePokedexAreaScreen (*(struct PokedexAreaScreenEwramStruct *)gSharedMem) + // Static RAM declarations EWRAM_DATA u16 gUnknown_02039260 = 0; @@ -15,6 +37,74 @@ EWRAM_DATA u16 gUnknown_0203926A = 0; // Static ROM declarations +void CB2_UnusedPokedexAreaScreen(void); +void sub_81107DC(void); +void sub_81107F0(void); +void sub_8110814(void (*func)(void)); +void sub_8110824(void); +void sub_8111084(void); +bool8 DrawAreaGlow(void); +void sub_8111288(void); + // .rodata // .text + +void UnusedPokedexAreaScreen(u16 a0, u32 a1, u32 a2) +{ + ePokedexAreaScreen.unk0004 = a1; + ePokedexAreaScreen.unk0008 = a2; + ePokedexAreaScreen.unk000E = a0; + SetMainCallback2(CB2_UnusedPokedexAreaScreen); +} + +void CB2_UnusedPokedexAreaScreen(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG1_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); + REG_BG0HOFS = 0; + REG_BG0VOFS = -8; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + break; + case 1: + InitRegionMap(&ePokedexAreaScreen.unk06E8, FALSE); + StringFill(ePokedexAreaScreen.unk0F68, CHAR_SPACE, 16); + break; + case 2: + sub_8110824(); + break; + case 3: + if (DrawAreaGlow()) + return; + break; + case 4: + CreateRegionMapPlayerIcon(1, 1); + sub_80FB2A4(0, -8); + SetVBlankCallback(sub_81107DC); + break; + case 5: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, 0); + break; + case 6: + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + sub_8111084(); + REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + break; + case 7: + sub_8110814(sub_8111288); + SetMainCallback2(sub_81107F0); + return; + } + gMain.state++; +} -- cgit v1.2.3 From 5641a3bfe39fcb8a2babf082a3fca96a193c83d1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 19:38:45 -0400 Subject: through SetAreaHasMon --- asm/pokedex_area_screen.s | 408 -------------------------------------------- include/constants/species.h | 6 + include/roamer.h | 2 + src/pokedex_area_screen.c | 166 +++++++++++++++++- src/roamer.c | 6 - 5 files changed, 170 insertions(+), 418 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 9f47d4162..2868cabac 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,414 +5,6 @@ .text - thumb_func_start sub_81107DC -sub_81107DC: @ 81107DC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81107DC - - thumb_func_start sub_81107F0 -sub_81107F0: @ 81107F0 - push {lr} - ldr r0, _08110810 @ =gSharedMem - ldr r0, [r0] - bl _call_via_r0 - bl sub_8111110 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_08110810: .4byte gSharedMem - thumb_func_end sub_81107F0 - - thumb_func_start sub_8110814 -sub_8110814: @ 8110814 - ldr r1, _08110820 @ =gSharedMem - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0xC] - bx lr - .align 2, 0 -_08110820: .4byte gSharedMem - thumb_func_end sub_8110814 - - thumb_func_start sub_8110824 -sub_8110824: @ 8110824 - ldr r0, _08110834 @ =gSharedMem - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_08110834: .4byte gSharedMem - thumb_func_end sub_8110824 - - thumb_func_start DrawAreaGlow -DrawAreaGlow: @ 8110838 - push {lr} - ldr r1, _08110854 @ =gSharedMem - movs r2, 0x8A - lsls r2, 1 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _081108E4 - lsls r0, 2 - ldr r1, _08110858 @ =_0811085C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08110854: .4byte gSharedMem -_08110858: .4byte _0811085C - .align 2, 0 -_0811085C: - .4byte _08110874 - .4byte _08110884 - .4byte _0811088A - .4byte _0811089C - .4byte _081108C0 - .4byte _081108D0 -_08110874: - ldr r0, _08110880 @ =gSharedMem - ldrh r0, [r0, 0xE] - bl FindMapsWithMon - b _081108F0 - .align 2, 0 -_08110880: .4byte gSharedMem -_08110884: - bl BuildAreaGlowTilemap - b _081108F0 -_0811088A: - ldr r0, _08110894 @ =gUnknown_083F8438 - ldr r1, _08110898 @ =0x0600c000 - bl LZ77UnCompVram - b _081108F0 - .align 2, 0 -_08110894: .4byte gUnknown_083F8438 -_08110898: .4byte 0x0600c000 -_0811089C: - ldr r1, _081108B0 @ =0x040000d4 - ldr r0, _081108B4 @ =gSharedMem + 0x116 - str r0, [r1] - ldr r0, _081108B8 @ =0x0600f000 - str r0, [r1, 0x4] - ldr r0, _081108BC @ =0x80000280 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _081108F0 - .align 2, 0 -_081108B0: .4byte 0x040000d4 -_081108B4: .4byte gSharedMem + 0x116 -_081108B8: .4byte 0x0600f000 -_081108BC: .4byte 0x80000280 -_081108C0: - ldr r0, _081108CC @ =gUnknown_083F8418 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _081108F0 - .align 2, 0 -_081108CC: .4byte gUnknown_083F8418 -_081108D0: - ldr r1, _081108E8 @ =REG_BG0CNT - ldr r3, _081108EC @ =0x00001e0d - adds r0, r3, 0 - strh r0, [r1] - movs r0, 0x8A - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081108E4: - movs r0, 0 - b _08110900 - .align 2, 0 -_081108E8: .4byte REG_BG0CNT -_081108EC: .4byte 0x00001e0d -_081108F0: - ldr r1, _08110904 @ =gSharedMem - movs r2, 0x8A - lsls r2, 1 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_08110900: - pop {r1} - bx r1 - .align 2, 0 -_08110904: .4byte gSharedMem - thumb_func_end DrawAreaGlow - - thumb_func_start FindMapsWithMon -FindMapsWithMon: @ 8110908 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r7, r0, 16 - .ifdef SAPPHIRE - ldr r0, _sub_8110908_Latias @ =407 - .else - @ Latios - movs r0, 0xCC - lsls r0, 1 - .endif - cmp r7, r0 - bne _0811091E - b _08110A44 -_0811091E: - ldr r2, _08110988 @ =gSharedMem - movs r1, 0x88 - lsls r1, 1 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0x89 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r6, 0 - ldr r1, _0811098C @ =gUnknown_083F856C -_08110936: - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - bne _08110942 - b _08110A8C -_08110942: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _08110936 - movs r6, 0 - ldr r4, _08110990 @ =gUnknown_083F856E - ldrh r0, [r4] - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081109D0 - mov r8, r4 - adds r5, r4, 0x4 - mov r9, r1 -_08110960: - lsls r0, r6, 1 - adds r1, r0, r6 - lsls r2, r1, 1 - mov r3, r8 - adds r1, r2, r3 - adds r3, r0, 0 - ldrh r1, [r1] - cmp r7, r1 - bne _081109BA - adds r0, r4, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0x18 - beq _081109A6 - cmp r0, 0x18 - bgt _08110994 - cmp r0, 0 - beq _0811099A - b _081109BA - .align 2, 0 - .ifdef SAPPHIRE -_sub_8110908_Latias: .4byte 407 - .endif -_08110988: .4byte gSharedMem -_0811098C: .4byte gUnknown_083F856C -_08110990: .4byte gUnknown_083F856E -_08110994: - cmp r0, 0x1A - beq _081109A6 - b _081109BA -_0811099A: - adds r0, r2, r5 - ldrh r1, [r0] - movs r0, 0 - bl SetAreaHasMon - b _081109BA -_081109A6: - adds r1, r3, r6 - lsls r1, 1 - mov r0, r8 - adds r0, 0x2 - adds r0, r1, r0 - ldrh r0, [r0] - adds r1, r5 - ldrh r1, [r1] - bl SetSpecialMapHasMon -_081109BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r4, _08110A00 @ =gUnknown_083F856E - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r9 - bne _08110960 -_081109D0: - movs r6, 0 - ldr r1, _08110A04 @ =gWildMonHeaders - ldrb r0, [r1] - cmp r0, 0xFF - beq _08110A8C -_081109DA: - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 2 - adds r5, r0, r1 - adds r0, r5, 0 - adds r1, r7, 0 - bl MapHasMon - lsls r0, 24 - cmp r0, 0 - beq _08110A28 - ldrb r0, [r5] - cmp r0, 0x18 - beq _08110A18 - cmp r0, 0x18 - bgt _08110A08 - cmp r0, 0 - beq _08110A0E - b _08110A28 - .align 2, 0 -_08110A00: .4byte gUnknown_083F856E -_08110A04: .4byte gWildMonHeaders -_08110A08: - cmp r0, 0x1A - beq _08110A18 - b _08110A28 -_08110A0E: - ldrb r1, [r5, 0x1] - movs r0, 0 - bl SetAreaHasMon - b _08110A28 -_08110A18: - ldr r0, _08110A40 @ =gWildMonHeaders - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl SetSpecialMapHasMon -_08110A28: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _08110A40 @ =gWildMonHeaders - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081109DA - b _08110A8C - .align 2, 0 -_08110A40: .4byte gWildMonHeaders -_08110A44: - ldr r4, _08110A7C @ =gSharedMem - movs r0, 0x89 - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strh r0, [r1] - ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144 - ldrb r2, [r0, 0x13] - cmp r2, 0 - beq _08110A84 - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x11 - bl GetRoamerLocation - ldrb r0, [r4, 0x10] - ldrb r1, [r4, 0x11] - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, 0x14] - strh r0, [r4, 0x12] - movs r3, 0x88 - lsls r3, 1 - adds r1, r4, r3 - movs r0, 0x1 - strh r0, [r1] - b _08110A8C - .align 2, 0 -_08110A7C: .4byte gSharedMem -_08110A80: .4byte gSaveBlock1 + 0x3144 -_08110A84: - movs r1, 0x88 - lsls r1, 1 - adds r0, r4, r1 - strh r2, [r0] -_08110A8C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FindMapsWithMon - - thumb_func_start SetAreaHasMon -SetAreaHasMon: @ 8110A98 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _08110AE0 @ =gSharedMem - movs r0, 0x88 - lsls r0, 1 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0x3F - bhi _08110AD8 - lsls r0, 2 - adds r0, r5 - strb r2, [r0, 0x10] - ldrh r0, [r4] - lsls r0, 2 - adds r0, r5 - strb r1, [r0, 0x11] - adds r0, r2, 0 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, 0x14] - bl sub_80FBA04 - ldrh r1, [r4] - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x12] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_08110AD8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08110AE0: .4byte gSharedMem - thumb_func_end SetAreaHasMon - thumb_func_start SetSpecialMapHasMon SetSpecialMapHasMon: @ 8110AE4 push {r4-r6,lr} diff --git a/include/constants/species.h b/include/constants/species.h index f698ada14..dc9856081 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -447,4 +447,10 @@ #define NUM_SPECIES SPECIES_EGG +#ifdef SAPPHIRE +#define ROAMER_SPECIES SPECIES_LATIAS +#else +#define ROAMER_SPECIES SPECIES_LATIOS +#endif + #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/roamer.h b/include/roamer.h index 6f0813eb8..18cb0b4e4 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -15,4 +15,6 @@ void Debug_CreateRoamer(void); void Debug_GetRoamerLocation(u8 *); #endif // DEBUG +void GetRoamerLocation(u8 *mapGroup, u8 *mapNum); + #endif // GUARD_ROAMER_H diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 020f0e9b2..078ae556a 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -1,6 +1,8 @@ // Includes #include "global.h" +#include "constants/species.h" +#include "constants/maps.h" #include "ewram.h" #include "main.h" #include "palette.h" @@ -9,17 +11,32 @@ #include "region_map.h" #include "string_util.h" #include "text.h" +#include "wild_encounter.h" +#include "roamer.h" +#include "overworld.h" // Static type declarations +struct PokedexAreaScreenSubstruct0010 +{ + u8 mapGroup; + u8 mapNum; + u16 regionMapSectionId; +}; + struct PokedexAreaScreenEwramStruct { - u8 filler_0000[4]; + void (*unk0000)(void); u32 unk0004; u32 unk0008; - u8 filler_000C[2]; + u16 unk000C; u16 unk000E; - u8 filler_0010[0x6d8]; + struct PokedexAreaScreenSubstruct0010 unk0010[0x40]; + u16 unk0110; + u16 unk0112; + u16 unk0114; + u8 unk0116[0x500]; + u8 filler_0616[0xD2]; struct RegionMap unk06E8; u8 unk0F68[16]; }; @@ -42,12 +59,23 @@ void sub_81107DC(void); void sub_81107F0(void); void sub_8110814(void (*func)(void)); void sub_8110824(void); -void sub_8111084(void); bool8 DrawAreaGlow(void); +void FindMapsWithMon(u16 mon); +void sub_8111084(void); +void sub_8111110(void); void sub_8111288(void); +void BuildAreaGlowTilemap(void); +bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon); +void SetAreaHasMon(u16 mapGroup, u16 mapNum); +void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum); // .rodata +extern const u16 gUnknown_083F8418[]; +extern const u8 gUnknown_083F8438[]; +extern const u16 gUnknown_083F856C[]; +extern const u16 gUnknown_083F856E[][3]; + // .text void UnusedPokedexAreaScreen(u16 a0, u32 a1, u32 a2) @@ -108,3 +136,133 @@ void CB2_UnusedPokedexAreaScreen(void) } gMain.state++; } + +void sub_81107DC(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_81107F0(void) +{ + ePokedexAreaScreen.unk0000(); + sub_8111110(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8110814(void (*func)(void)) +{ + ePokedexAreaScreen.unk0000 = func; + ePokedexAreaScreen.unk000C = 0; +} + +void sub_8110824(void) +{ + ePokedexAreaScreen.unk0114 = 0; +} + +bool8 DrawAreaGlow(void) +{ + switch (ePokedexAreaScreen.unk0114) + { + case 0: + FindMapsWithMon(ePokedexAreaScreen.unk000E); + break; + case 1: + BuildAreaGlowTilemap(); + break; + case 2: + LZ77UnCompVram(gUnknown_083F8438, BG_CHAR_ADDR(3)); + break; + case 3: + DmaCopy16(3, ePokedexAreaScreen.unk0116, BG_SCREEN_ADDR(30), 0x500); + break; + case 4: + LoadPalette(gUnknown_083F8418, 0, 32); + break; + case 5: + REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT256x256; + ePokedexAreaScreen.unk0114++; + return FALSE; + default: + return FALSE; + } + ePokedexAreaScreen.unk0114++; + return TRUE; +} + +void FindMapsWithMon(u16 mon) +{ + u16 i; + struct Roamer *roamer; + + if (mon != ROAMER_SPECIES) + { + ePokedexAreaScreen.unk0110 = 0; + ePokedexAreaScreen.unk0112 = 0; + for (i = 0; i < 1; i++) + { + if (gUnknown_083F856C[i] == mon) + return; + } + for (i = 0; gUnknown_083F856E[i][0] != NUM_SPECIES; i++) + { + if (mon == gUnknown_083F856E[i][0]) + { + switch (gUnknown_083F856E[i][1]) + { + case MAP_GROUP(PETALBURG_CITY): + SetAreaHasMon(gUnknown_083F856E[i][1], gUnknown_083F856E[i][2]); + break; + case MAP_GROUP(METEOR_FALLS_1F_1R): + case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + SetSpecialMapHasMon(gUnknown_083F856E[i][1], gUnknown_083F856E[i][2]); + break; + } + } + } + for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++) + { + if (MapHasMon(gWildMonHeaders + i, mon)) + { + switch (gWildMonHeaders[i].mapGroup) + { + case MAP_GROUP(PETALBURG_CITY): + SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; + case MAP_GROUP(METEOR_FALLS_1F_1R): + case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; + } + } + } + } + else + { + ePokedexAreaScreen.unk0112 = 0; + roamer = &gSaveBlock1.roamer; + if (roamer->active) + { + GetRoamerLocation(&ePokedexAreaScreen.unk0010[0].mapGroup, &ePokedexAreaScreen.unk0010[0].mapNum); + ePokedexAreaScreen.unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(ePokedexAreaScreen.unk0010[0].mapGroup, ePokedexAreaScreen.unk0010[0].mapNum)->regionMapSectionId; + ePokedexAreaScreen.unk0110 = 1; + } + else + ePokedexAreaScreen.unk0110 = 0; + } +} + +void SetAreaHasMon(u16 mapGroup, u16 mapNum) +{ + if (ePokedexAreaScreen.unk0110 < 0x40) + { + ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].mapGroup = mapGroup; + ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].mapNum = mapNum; + ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + ePokedexAreaScreen.unk0110++; + } +} diff --git a/src/roamer.c b/src/roamer.c index 459082e42..57dd0745b 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -6,12 +6,6 @@ #include "region_map.h" #include "constants/species.h" -#ifdef SAPPHIRE -#define ROAMER_SPECIES SPECIES_LATIAS -#else -#define ROAMER_SPECIES SPECIES_LATIOS -#endif - enum { MAP_GRP = 0, // map group -- cgit v1.2.3 From 8ae002b3607fa2fbfe2aa7c6123bb2f9627c0c05 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 20:32:10 -0400 Subject: through MonListHasMon --- asm/pokedex_area_screen.s | 183 ---------------------------------------------- src/pokedex_area_screen.c | 72 ++++++++++++++++-- 2 files changed, 67 insertions(+), 188 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 2868cabac..f6b6f4e7e 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,189 +5,6 @@ .text - thumb_func_start SetSpecialMapHasMon -SetSpecialMapHasMon: @ 8110AE4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08110B9C @ =gSharedMem - movs r3, 0x89 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0x1F - bhi _08110B96 - adds r0, r2, 0 - bl Overworld_GetMapHeaderByGroupAndId - adds r6, r0, 0 - ldrb r0, [r6, 0x14] - cmp r0, 0x57 - bhi _08110B96 - movs r4, 0 - ldr r1, _08110BA0 @ =gUnknown_083F857A - ldrh r0, [r1] - cmp r0, 0x58 - beq _08110B42 - adds r5, r1, 0 -_08110B16: - lsls r2, r4, 2 - adds r1, r2, r5 - ldrb r0, [r6, 0x14] - ldrh r1, [r1] - cmp r0, r1 - bne _08110B32 - adds r0, r5, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08110B96 -_08110B32: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0x58 - bne _08110B16 -_08110B42: - movs r4, 0 - ldr r0, _08110B9C @ =gSharedMem - movs r1, 0x89 - lsls r1, 1 - adds r2, r0, r1 - ldrh r3, [r2] - adds r1, r0, 0 - cmp r4, r3 - bcs _08110B76 - movs r0, 0xC4 - lsls r0, 3 - adds r5, r1, r0 - ldrh r0, [r5] - ldrb r2, [r6, 0x14] - cmp r0, r2 - beq _08110B76 -_08110B62: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r3 - bcs _08110B76 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r2 - bne _08110B62 -_08110B76: - movs r3, 0x89 - lsls r3, 1 - adds r2, r1, r3 - ldrh r0, [r2] - cmp r4, r0 - bne _08110B96 - lsls r0, r4, 1 - movs r3, 0xC4 - lsls r3, 3 - adds r1, r3 - adds r0, r1 - ldrb r1, [r6, 0x14] - strh r1, [r0] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_08110B96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08110B9C: .4byte gSharedMem -_08110BA0: .4byte gUnknown_083F857A - thumb_func_end SetSpecialMapHasMon - - thumb_func_start MapHasMon -MapHasMon: @ 8110BA4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - ldr r0, [r5, 0x4] - adds r1, r4, 0 - movs r2, 0xC - bl MonListHasMon - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0x8] - adds r1, r4, 0 - movs r2, 0x5 - bl MonListHasMon - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0x10] - adds r1, r4, 0 - movs r2, 0xC - bl MonListHasMon - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0xC] - adds r1, r6, 0 - movs r2, 0x5 - bl MonListHasMon - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - movs r0, 0 - b _08110BF4 -_08110BF2: - movs r0, 0x1 -_08110BF4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end MapHasMon - - thumb_func_start MonListHasMon -MonListHasMon: @ 8110BFC - push {r4,lr} - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r0, 0 - beq _08110C2A - movs r3, 0 - cmp r3, r2 - bcs _08110C2A - ldr r1, [r0, 0x4] -_08110C12: - lsls r0, r3, 2 - adds r0, r1 - ldrh r0, [r0, 0x2] - cmp r0, r4 - bne _08110C20 - movs r0, 0x1 - b _08110C2C -_08110C20: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r2 - bcc _08110C12 -_08110C2A: - movs r0, 0 -_08110C2C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonListHasMon - thumb_func_start BuildAreaGlowTilemap BuildAreaGlowTilemap: @ 8110C34 push {r4-r7,lr} diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 078ae556a..8a57ea99b 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -9,11 +9,13 @@ #include "task.h" #include "sprite.h" #include "region_map.h" +#include "region_map_sections.h" #include "string_util.h" #include "text.h" #include "wild_encounter.h" #include "roamer.h" #include "overworld.h" +#include "event_data.h" // Static type declarations @@ -36,7 +38,9 @@ struct PokedexAreaScreenEwramStruct u16 unk0112; u16 unk0114; u8 unk0116[0x500]; - u8 filler_0616[0xD2]; + u8 filler_0616[0x0A]; + u16 unk0620[0x20]; + u8 filler_0660[0x88]; struct RegionMap unk06E8; u8 unk0F68[16]; }; @@ -61,13 +65,14 @@ void sub_8110814(void (*func)(void)); void sub_8110824(void); bool8 DrawAreaGlow(void); void FindMapsWithMon(u16 mon); +void SetAreaHasMon(u16 mapGroup, u16 mapNum); +void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum); +bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon); +bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size); +void BuildAreaGlowTilemap(void); void sub_8111084(void); void sub_8111110(void); void sub_8111288(void); -void BuildAreaGlowTilemap(void); -bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon); -void SetAreaHasMon(u16 mapGroup, u16 mapNum); -void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum); // .rodata @@ -75,6 +80,7 @@ extern const u16 gUnknown_083F8418[]; extern const u8 gUnknown_083F8438[]; extern const u16 gUnknown_083F856C[]; extern const u16 gUnknown_083F856E[][3]; +extern const u16 gUnknown_083F857A[][2]; // .text @@ -266,3 +272,59 @@ void SetAreaHasMon(u16 mapGroup, u16 mapNum) ePokedexAreaScreen.unk0110++; } } + +void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) +{ + const struct MapHeader *mapHeader; + u16 i; + + if (ePokedexAreaScreen.unk0112 < 0x20) + { + mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); + if (mapHeader->regionMapSectionId < MAPSEC_Nothing) + { + for (i = 0; gUnknown_083F857A[i][0] != MAPSEC_Nothing; i++) + { + if (mapHeader->regionMapSectionId == gUnknown_083F857A[i][0] && !FlagGet(gUnknown_083F857A[i][1])) + return; + } + for (i = 0; i < ePokedexAreaScreen.unk0112; i++) + { + if (ePokedexAreaScreen.unk0620[i] == mapHeader->regionMapSectionId) + break; + } + if (i == ePokedexAreaScreen.unk0112) + { + ePokedexAreaScreen.unk0620[i] = mapHeader->regionMapSectionId; + ePokedexAreaScreen.unk0112++; + } + } + } +} + +bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon) +{ + if (MonListHasMon(header->landMonsInfo, mon, 12)) + return TRUE; + if (MonListHasMon(header->waterMonsInfo, mon, 5)) + return TRUE; + if (MonListHasMon(header->fishingMonsInfo, mon, 12)) + return TRUE; + if (MonListHasMon(header->rockSmashMonsInfo, mon, 5)) + return TRUE; + return FALSE; +} + +bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size) +{ + u16 i; + if (info != NULL) + { + for (i = 0; i < size; i++) + { + if (info->wildPokemon[i].species == mon) + return TRUE; + } + } + return FALSE; +} -- cgit v1.2.3 From e43d716b3edc723d882af3e18f8e50b0b5a3f61c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 22:15:31 -0400 Subject: Nonmatching BuildAreaGlowTilemap --- asm/pokedex_area_screen.s | 571 ------------------------------------ include/region_map.h | 1 + src/pokedex_area_screen.c | 714 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 707 insertions(+), 579 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index f6b6f4e7e..2c1e83def 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,577 +5,6 @@ .text - thumb_func_start BuildAreaGlowTilemap -BuildAreaGlowTilemap: @ 8110C34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r1, _08110E5C @ =gUnknown_02039260 - movs r0, 0 - strh r0, [r1] - mov r9, r1 - ldr r0, _08110E60 @ =gSharedMem - mov r8, r0 - ldr r1, _08110E64 @ =gUnknown_02039262 - mov r12, r1 - mov r1, r9 - movs r4, 0x8B - lsls r4, 1 - add r4, r8 - ldr r3, _08110E68 @ =0x0000027f - movs r2, 0 -_08110C5C: - ldrh r0, [r1] - lsls r0, 1 - adds r0, r4 - strh r2, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r3 - bls _08110C5C - movs r0, 0 - mov r3, r9 - strh r0, [r3] - movs r1, 0x88 - lsls r1, 1 - add r1, r8 - ldrh r0, [r1] - cmp r0, 0 - beq _08110D04 - ldr r4, _08110E6C @ =gUnknown_02039266 - movs r2, 0 - ldr r5, _08110E64 @ =gUnknown_02039262 - mov r0, r8 - str r0, [sp, 0x8] - movs r1, 0x8B - lsls r1, 1 - add r1, r8 - mov r10, r1 - ldr r6, _08110E70 @ =gUnknown_02039264 - mov r7, r9 -_08110C9A: - strh r2, [r4] - ldr r3, _08110E70 @ =gUnknown_02039264 - strh r2, [r3] -_08110CA0: - mov r0, r12 - strh r2, [r0] -_08110CA4: - ldrh r0, [r5] - ldrh r1, [r6] - str r2, [sp] - bl GetRegionMapSectionAt_ - ldrh r1, [r7] - lsls r1, 2 - ldr r3, [sp, 0x8] - adds r1, r3 - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp] - ldrh r1, [r1, 0x12] - cmp r0, r1 - bne _08110CCC - ldrh r0, [r4] - lsls r0, 1 - add r0, r10 - ldr r1, _08110E74 @ =0x0000ffff - strh r1, [r0] -_08110CCC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1F - bls _08110CA4 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08110E64 @ =gUnknown_02039262 - mov r12, r1 - cmp r0, 0x13 - bls _08110CA0 - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] - lsls r0, 16 - lsrs r0, 16 - ldr r3, _08110E78 @ =gSharedMem + 0x110 - ldrh r3, [r3] - cmp r0, r3 - bcc _08110C9A -_08110D04: - movs r0, 0 - ldr r1, _08110E6C @ =gUnknown_02039266 - strh r0, [r1] - ldr r3, _08110E70 @ =gUnknown_02039264 - strh r0, [r3] - ldr r6, _08110E64 @ =gUnknown_02039262 - mov r10, r0 - adds r3, r1, 0 - ldr r5, _08110E7C @ =gSharedMem + 0x116 - ldr r4, _08110E74 @ =0x0000ffff - ldr r7, _08110E70 @ =gUnknown_02039264 -_08110D1A: - mov r0, r10 - strh r0, [r6] -_08110D1E: - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r4 - bne _08110E10 - ldrh r0, [r6] - cmp r0, 0 - beq _08110D42 - subs r0, r1, 0x1 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D42 - movs r0, 0x2 - orrs r0, r1 - strh r0, [r2] -_08110D42: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110D5C - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D5C - movs r0, 0x1 - orrs r0, r1 - strh r0, [r2] -_08110D5C: - ldrh r0, [r7] - cmp r0, 0 - beq _08110D76 - ldrh r0, [r3] - subs r0, 0x20 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D76 - movs r0, 0x8 - orrs r0, r1 - strh r0, [r2] -_08110D76: - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110D90 - ldrh r0, [r3] - adds r0, 0x20 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D90 - movs r0, 0x4 - orrs r0, r1 - strh r0, [r2] -_08110D90: - ldrh r0, [r6] - cmp r0, 0 - beq _08110DB0 - ldrh r0, [r7] - cmp r0, 0 - beq _08110DB0 - ldrh r0, [r3] - subs r0, 0x21 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DB0 - movs r0, 0x10 - orrs r0, r1 - strh r0, [r2] -_08110DB0: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110DD0 - ldrh r0, [r7] - cmp r0, 0 - beq _08110DD0 - ldrh r0, [r3] - subs r0, 0x1F - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DD0 - movs r0, 0x40 - orrs r0, r1 - strh r0, [r2] -_08110DD0: - ldrh r0, [r6] - cmp r0, 0 - beq _08110DF0 - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110DF0 - ldrh r0, [r3] - adds r0, 0x1F - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DF0 - movs r0, 0x20 - orrs r0, r1 - strh r0, [r2] -_08110DF0: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110E10 - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110E10 - ldrh r0, [r3] - adds r0, 0x21 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110E10 - movs r0, 0x80 - orrs r0, r1 - strh r0, [r2] -_08110E10: - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1F - bhi _08110E26 - b _08110D1E -_08110E26: - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _08110E36 - b _08110D1A -_08110E36: - movs r0, 0 - mov r1, r9 - strh r0, [r1] -_08110E3C: - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - movs r4, 0x8B - lsls r4, 1 - add r4, r8 - adds r3, r0, r4 - ldrh r2, [r3] - adds r1, r2, 0 - ldr r0, _08110E74 @ =0x0000ffff - cmp r1, r0 - bne _08110E80 - movs r0, 0x10 - strh r0, [r3] - b _0811105E - .align 2, 0 -_08110E5C: .4byte gUnknown_02039260 -_08110E60: .4byte gSharedMem -_08110E64: .4byte gUnknown_02039262 -_08110E68: .4byte 0x0000027f -_08110E6C: .4byte gUnknown_02039266 -_08110E70: .4byte gUnknown_02039264 -_08110E74: .4byte 0x0000ffff -_08110E78: .4byte gSharedMem + 0x110 -_08110E7C: .4byte gSharedMem + 0x116 -_08110E80: - cmp r1, 0 - bne _08110E86 - b _0811105E -_08110E86: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08110E94 - ldr r0, _08110F28 @ =0x0000ffcf - ands r0, r2 - strh r0, [r3] -_08110E94: - mov r1, r9 - ldrh r0, [r1] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08110EAC - ldr r0, _08110F2C @ =0x0000ff3f - ands r0, r1 - strh r0, [r2] -_08110EAC: - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08110EC4 - ldr r0, _08110F30 @ =0x0000ffaf - ands r0, r1 - strh r0, [r2] -_08110EC4: - mov r1, r9 - ldrh r0, [r1] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08110EDC - ldr r0, _08110F34 @ =0x0000ff5f - ands r0, r1 - strh r0, [r2] -_08110EDC: - ldr r6, _08110F38 @ =gUnknown_02039268 - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - adds r0, r4 - ldrh r1, [r0] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r1 - strh r0, [r6] - ldr r2, _08110F3C @ =gUnknown_0203926A - ldrh r0, [r3] - lsls r0, 1 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0xF0 - ands r0, r1 - strh r0, [r2] - ldrh r1, [r3] - adds r3, r2, 0 - cmp r0, 0 - bne _08110F0A - b _0811105E -_08110F0A: - lsls r0, r1, 1 - adds r0, r4 - ldrh r2, [r0] - adds r1, r5, 0 - ands r1, r2 - strh r1, [r0] - ldrh r0, [r6] - cmp r0, 0xA - bls _08110F1E - b _0811105E -_08110F1E: - lsls r0, 2 - ldr r1, _08110F40 @ =_08110F44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08110F28: .4byte 0x0000ffcf -_08110F2C: .4byte 0x0000ff3f -_08110F30: .4byte 0x0000ffaf -_08110F34: .4byte 0x0000ff5f -_08110F38: .4byte gUnknown_02039268 -_08110F3C: .4byte gUnknown_0203926A -_08110F40: .4byte _08110F44 - .align 2, 0 -_08110F44: - .4byte _08110F70 - .4byte _08110FAC - .4byte _08110F8E - .4byte _0811105E - .4byte _08111002 - .4byte _08111036 - .4byte _08111036 - .4byte _0811105E - .4byte _08110FCE - .4byte _0811104A - .4byte _0811104A -_08110F70: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r0, r9 - ldrh r2, [r0] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x10 - lsrs r1, 20 - b _08110FC8 -_08110F8E: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r3, r9 - ldrh r2, [r3] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1E - lsrs r1, 20 - b _08110FC8 -_08110FAC: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r0, r9 - ldrh r2, [r0] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x20 - lsrs r1, 22 -_08110FC8: - adds r0, r1 - strh r0, [r2] - b _0811105E -_08110FCE: - ldrh r2, [r3] - cmp r2, 0 - beq _0811105E - movs r0, 0x80 - ands r0, r2 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - lsrs r3, r0, 31 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08110FEC - movs r0, 0x2 - orrs r3, r0 -_08110FEC: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x20 - adds r0, r3 - b _0811105C -_08111002: - ldrh r2, [r3] - cmp r2, 0 - beq _0811105E - movs r0, 0x40 - ands r0, r2 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - lsrs r3, r0, 31 - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _08111020 - movs r0, 0x2 - orrs r3, r0 -_08111020: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x21 - adds r0, r3 - b _0811105C -_08111036: - mov r3, r9 - ldrh r1, [r3] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x27 - b _0811105C -_0811104A: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x25 -_0811105C: - strh r0, [r1] -_0811105E: - mov r3, r9 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - ldr r1, _08111080 @ =0x027f0000 - cmp r0, r1 - bhi _08111070 - b _08110E3C -_08111070: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111080: .4byte 0x027f0000 - thumb_func_end BuildAreaGlowTilemap - thumb_func_start sub_8111084 sub_8111084: @ 8111084 push {lr} diff --git a/include/region_map.h b/include/region_map.h index 3fe7de460..c84de209b 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -70,5 +70,6 @@ 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); #endif // GUARD_REGION_MAP_H diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 8a57ea99b..1e910b76c 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -37,7 +37,7 @@ struct PokedexAreaScreenEwramStruct u16 unk0110; u16 unk0112; u16 unk0114; - u8 unk0116[0x500]; + u16 unk0116[0x280]; u8 filler_0616[0x0A]; u16 unk0620[0x20]; u8 filler_0660[0x88]; @@ -49,13 +49,6 @@ struct PokedexAreaScreenEwramStruct // Static RAM declarations -EWRAM_DATA u16 gUnknown_02039260 = 0; -EWRAM_DATA u16 gUnknown_02039262 = 0; -EWRAM_DATA u16 gUnknown_02039264 = 0; -EWRAM_DATA u16 gUnknown_02039266 = 0; -EWRAM_DATA u16 gUnknown_02039268 = 0; -EWRAM_DATA u16 gUnknown_0203926A = 0; - // Static ROM declarations void CB2_UnusedPokedexAreaScreen(void); @@ -328,3 +321,708 @@ bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size) } return FALSE; } + +#ifdef NONMATCHING +void BuildAreaGlowTilemap(void) +{ + static EWRAM_DATA u16 gUnknown_02039260 = 0; + static EWRAM_DATA u16 gUnknown_02039262 = 0; + static EWRAM_DATA u16 gUnknown_02039264 = 0; + static EWRAM_DATA u16 gUnknown_02039266 = 0; + static EWRAM_DATA u16 gUnknown_02039268 = 0; + static EWRAM_DATA u16 gUnknown_0203926A = 0; + u32 r3; + + for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) + ePokedexAreaScreen.unk0116[gUnknown_02039260] = 0; + + for (gUnknown_02039260 = 0; gUnknown_02039260 < ePokedexAreaScreen.unk0110; gUnknown_02039260++) + { + gUnknown_02039266 = 0; + for (gUnknown_02039264 = 0; gUnknown_02039264 < 20; gUnknown_02039264++) + { + for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) + { + if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == ePokedexAreaScreen.unk0010[gUnknown_02039260].regionMapSectionId) + { + ePokedexAreaScreen.unk0116[gUnknown_02039266] = 0xFFFF; + } + gUnknown_02039266++; + } + } + } + + gUnknown_02039266 = 0; + for (gUnknown_02039264 = 0; gUnknown_02039264 < 20; gUnknown_02039264++) + { + for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) + { + if (ePokedexAreaScreen.unk0116[gUnknown_02039266] == 0xFFFF) + { + if (gUnknown_02039262 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 1] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 - 1] |= 0x02; + if (gUnknown_02039262 != 31 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 1] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 + 1] |= 0x01; + if (gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 32] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 - 32] |= 0x08; + if (gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 32] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 + 32] |= 0x04; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 33] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 - 33] |= 0x10; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 31] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 - 31] |= 0x40; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 31] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 + 31] |= 0x20; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 33] != 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039266 + 33] |= 0x80; + } + gUnknown_02039266++; + } + } + + for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) // Register difference on induction: expected r3, got r1 + { + if (ePokedexAreaScreen.unk0116[gUnknown_02039260] == 0xFFFF) + ePokedexAreaScreen.unk0116[gUnknown_02039260] = 0x10; + else if (ePokedexAreaScreen.unk0116[gUnknown_02039260] != 0) + { + if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x02) + ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFFCF; + if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x01) + ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFF3F; + if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x08) + ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFFAF; + if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x04) + ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFF5F; + gUnknown_02039268 = ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x0F; + gUnknown_0203926A = ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0xF0; + if (gUnknown_0203926A) + { + ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0x0F; + switch (gUnknown_02039268) + { + case 0: + if (gUnknown_0203926A != 0) + ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; + break; + case 2: + if (gUnknown_0203926A != 0) + ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; + break; + case 1: + if (gUnknown_0203926A != 0) + ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; + break; + case 8: + if (gUnknown_0203926A != 0) + { + r3 = 0; + if (gUnknown_0203926A & 0x80) + r3 |= 1; + if (gUnknown_0203926A & 0x20) + r3 |= 2; + ePokedexAreaScreen.unk0116[gUnknown_02039260] += r3 + 0x20; + } + break; + case 4: + if (gUnknown_0203926A != 0) + { + r3 = 0; + if (gUnknown_0203926A & 0x40) + r3 |= 1; + if (gUnknown_0203926A & 0x10) + r3 |= 2; + ePokedexAreaScreen.unk0116[gUnknown_02039260] += r3 + 0x21; + } + break; + case 5: + case 6: + ePokedexAreaScreen.unk0116[gUnknown_02039260] += 0x27; + break; + case 9: + case 10: + ePokedexAreaScreen.unk0116[gUnknown_02039260] += 0x25; + break; + } + } + } + } +} +# else +EWRAM_DATA u16 gUnknown_02039260 = 0; +EWRAM_DATA u16 gUnknown_02039262 = 0; +EWRAM_DATA u16 gUnknown_02039264 = 0; +EWRAM_DATA u16 gUnknown_02039266 = 0; +EWRAM_DATA u16 gUnknown_02039268 = 0; +EWRAM_DATA u16 gUnknown_0203926A = 0; +NAKED void BuildAreaGlowTilemap(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0xC\n" + "\tldr r1, _08110E5C @ =gUnknown_02039260\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r1]\n" + "\tmov r9, r1\n" + "\tldr r0, _08110E60 @ =gSharedMem\n" + "\tmov r8, r0\n" + "\tldr r1, _08110E64 @ =gUnknown_02039262\n" + "\tmov r12, r1\n" + "\tmov r1, r9\n" + "\tmovs r4, 0x8B\n" + "\tlsls r4, 1\n" + "\tadd r4, r8\n" + "\tldr r3, _08110E68 @ =0x0000027f\n" + "\tmovs r2, 0\n" + "_08110C5C:\n" + "\tldrh r0, [r1]\n" + "\tlsls r0, 1\n" + "\tadds r0, r4\n" + "\tstrh r2, [r0]\n" + "\tldrh r0, [r1]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tcmp r0, r3\n" + "\tbls _08110C5C\n" + "\tmovs r0, 0\n" + "\tmov r3, r9\n" + "\tstrh r0, [r3]\n" + "\tmovs r1, 0x88\n" + "\tlsls r1, 1\n" + "\tadd r1, r8\n" + "\tldrh r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbeq _08110D04\n" + "\tldr r4, _08110E6C @ =gUnknown_02039266\n" + "\tmovs r2, 0\n" + "\tldr r5, _08110E64 @ =gUnknown_02039262\n" + "\tmov r0, r8\n" + "\tstr r0, [sp, 0x8]\n" + "\tmovs r1, 0x8B\n" + "\tlsls r1, 1\n" + "\tadd r1, r8\n" + "\tmov r10, r1\n" + "\tldr r6, _08110E70 @ =gUnknown_02039264\n" + "\tmov r7, r9\n" + "_08110C9A:\n" + "\tstrh r2, [r4]\n" + "\tldr r3, _08110E70 @ =gUnknown_02039264\n" + "\tstrh r2, [r3]\n" + "_08110CA0:\n" + "\tmov r0, r12\n" + "\tstrh r2, [r0]\n" + "_08110CA4:\n" + "\tldrh r0, [r5]\n" + "\tldrh r1, [r6]\n" + "\tstr r2, [sp]\n" + "\tbl GetRegionMapSectionAt_\n" + "\tldrh r1, [r7]\n" + "\tlsls r1, 2\n" + "\tldr r3, [sp, 0x8]\n" + "\tadds r1, r3\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tldr r2, [sp]\n" + "\tldrh r1, [r1, 0x12]\n" + "\tcmp r0, r1\n" + "\tbne _08110CCC\n" + "\tldrh r0, [r4]\n" + "\tlsls r0, 1\n" + "\tadd r0, r10\n" + "\tldr r1, _08110E74 @ =0x0000ffff\n" + "\tstrh r1, [r0]\n" + "_08110CCC:\n" + "\tldrh r0, [r4]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r4]\n" + "\tldrh r0, [r5]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r5]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tcmp r0, 0x1F\n" + "\tbls _08110CA4\n" + "\tldrh r0, [r6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r6]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tldr r1, _08110E64 @ =gUnknown_02039262\n" + "\tmov r12, r1\n" + "\tcmp r0, 0x13\n" + "\tbls _08110CA0\n" + "\tldrh r0, [r7]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r7]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tldr r3, _08110E78 @ =gSharedMem + 0x110\n" + "\tldrh r3, [r3]\n" + "\tcmp r0, r3\n" + "\tbcc _08110C9A\n" + "_08110D04:\n" + "\tmovs r0, 0\n" + "\tldr r1, _08110E6C @ =gUnknown_02039266\n" + "\tstrh r0, [r1]\n" + "\tldr r3, _08110E70 @ =gUnknown_02039264\n" + "\tstrh r0, [r3]\n" + "\tldr r6, _08110E64 @ =gUnknown_02039262\n" + "\tmov r10, r0\n" + "\tadds r3, r1, 0\n" + "\tldr r5, _08110E7C @ =gSharedMem + 0x116\n" + "\tldr r4, _08110E74 @ =0x0000ffff\n" + "\tldr r7, _08110E70 @ =gUnknown_02039264\n" + "_08110D1A:\n" + "\tmov r0, r10\n" + "\tstrh r0, [r6]\n" + "_08110D1E:\n" + "\tldrh r1, [r3]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r5\n" + "\tldrh r0, [r0]\n" + "\tcmp r0, r4\n" + "\tbne _08110E10\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0\n" + "\tbeq _08110D42\n" + "\tsubs r0, r1, 0x1\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110D42\n" + "\tmovs r0, 0x2\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110D42:\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0x1F\n" + "\tbeq _08110D5C\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110D5C\n" + "\tmovs r0, 0x1\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110D5C:\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0\n" + "\tbeq _08110D76\n" + "\tldrh r0, [r3]\n" + "\tsubs r0, 0x20\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110D76\n" + "\tmovs r0, 0x8\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110D76:\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0x13\n" + "\tbeq _08110D90\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x20\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110D90\n" + "\tmovs r0, 0x4\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110D90:\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0\n" + "\tbeq _08110DB0\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0\n" + "\tbeq _08110DB0\n" + "\tldrh r0, [r3]\n" + "\tsubs r0, 0x21\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110DB0\n" + "\tmovs r0, 0x10\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110DB0:\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0x1F\n" + "\tbeq _08110DD0\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0\n" + "\tbeq _08110DD0\n" + "\tldrh r0, [r3]\n" + "\tsubs r0, 0x1F\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110DD0\n" + "\tmovs r0, 0x40\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110DD0:\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0\n" + "\tbeq _08110DF0\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0x13\n" + "\tbeq _08110DF0\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x1F\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110DF0\n" + "\tmovs r0, 0x20\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110DF0:\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0x1F\n" + "\tbeq _08110E10\n" + "\tldrh r0, [r7]\n" + "\tcmp r0, 0x13\n" + "\tbeq _08110E10\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x21\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r5\n" + "\tldrh r1, [r2]\n" + "\tcmp r1, r4\n" + "\tbeq _08110E10\n" + "\tmovs r0, 0x80\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110E10:\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r3]\n" + "\tldrh r0, [r6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r6]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tcmp r0, 0x1F\n" + "\tbhi _08110E26\n" + "\tb _08110D1E\n" + "_08110E26:\n" + "\tldrh r0, [r7]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r7]\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tcmp r0, 0x13\n" + "\tbhi _08110E36\n" + "\tb _08110D1A\n" + "_08110E36:\n" + "\tmovs r0, 0\n" + "\tmov r1, r9\n" + "\tstrh r0, [r1]\n" + "_08110E3C:\n" + "\tmov r3, r9\n" + "\tldrh r0, [r3]\n" + "\tlsls r0, 1\n" + "\tmovs r4, 0x8B\n" + "\tlsls r4, 1\n" + "\tadd r4, r8\n" + "\tadds r3, r0, r4\n" + "\tldrh r2, [r3]\n" + "\tadds r1, r2, 0\n" + "\tldr r0, _08110E74 @ =0x0000ffff\n" + "\tcmp r1, r0\n" + "\tbne _08110E80\n" + "\tmovs r0, 0x10\n" + "\tstrh r0, [r3]\n" + "\tb _0811105E\n" + "\t.align 2, 0\n" + "_08110E5C: .4byte gUnknown_02039260\n" + "_08110E60: .4byte gSharedMem\n" + "_08110E64: .4byte gUnknown_02039262\n" + "_08110E68: .4byte 0x0000027f\n" + "_08110E6C: .4byte gUnknown_02039266\n" + "_08110E70: .4byte gUnknown_02039264\n" + "_08110E74: .4byte 0x0000ffff\n" + "_08110E78: .4byte gSharedMem + 0x110\n" + "_08110E7C: .4byte gSharedMem + 0x116\n" + "_08110E80:\n" + "\tcmp r1, 0\n" + "\tbne _08110E86\n" + "\tb _0811105E\n" + "_08110E86:\n" + "\tmovs r0, 0x2\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _08110E94\n" + "\tldr r0, _08110F28 @ =0x0000ffcf\n" + "\tands r0, r2\n" + "\tstrh r0, [r3]\n" + "_08110E94:\n" + "\tmov r1, r9\n" + "\tldrh r0, [r1]\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r4\n" + "\tldrh r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08110EAC\n" + "\tldr r0, _08110F2C @ =0x0000ff3f\n" + "\tands r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110EAC:\n" + "\tmov r3, r9\n" + "\tldrh r0, [r3]\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r4\n" + "\tldrh r1, [r2]\n" + "\tmovs r0, 0x8\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08110EC4\n" + "\tldr r0, _08110F30 @ =0x0000ffaf\n" + "\tands r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110EC4:\n" + "\tmov r1, r9\n" + "\tldrh r0, [r1]\n" + "\tlsls r0, 1\n" + "\tadds r2, r0, r4\n" + "\tldrh r1, [r2]\n" + "\tmovs r0, 0x4\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08110EDC\n" + "\tldr r0, _08110F34 @ =0x0000ff5f\n" + "\tands r0, r1\n" + "\tstrh r0, [r2]\n" + "_08110EDC:\n" + "\tldr r6, _08110F38 @ =gUnknown_02039268\n" + "\tmov r3, r9\n" + "\tldrh r0, [r3]\n" + "\tlsls r0, 1\n" + "\tadds r0, r4\n" + "\tldrh r1, [r0]\n" + "\tmovs r5, 0xF\n" + "\tadds r0, r5, 0\n" + "\tands r0, r1\n" + "\tstrh r0, [r6]\n" + "\tldr r2, _08110F3C @ =gUnknown_0203926A\n" + "\tldrh r0, [r3]\n" + "\tlsls r0, 1\n" + "\tadds r0, r4\n" + "\tldrh r1, [r0]\n" + "\tmovs r0, 0xF0\n" + "\tands r0, r1\n" + "\tstrh r0, [r2]\n" + "\tldrh r1, [r3]\n" + "\tadds r3, r2, 0\n" + "\tcmp r0, 0\n" + "\tbne _08110F0A\n" + "\tb _0811105E\n" + "_08110F0A:\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r4\n" + "\tldrh r2, [r0]\n" + "\tadds r1, r5, 0\n" + "\tands r1, r2\n" + "\tstrh r1, [r0]\n" + "\tldrh r0, [r6]\n" + "\tcmp r0, 0xA\n" + "\tbls _08110F1E\n" + "\tb _0811105E\n" + "_08110F1E:\n" + "\tlsls r0, 2\n" + "\tldr r1, _08110F40 @ =_08110F44\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_08110F28: .4byte 0x0000ffcf\n" + "_08110F2C: .4byte 0x0000ff3f\n" + "_08110F30: .4byte 0x0000ffaf\n" + "_08110F34: .4byte 0x0000ff5f\n" + "_08110F38: .4byte gUnknown_02039268\n" + "_08110F3C: .4byte gUnknown_0203926A\n" + "_08110F40: .4byte _08110F44\n" + "\t.align 2, 0\n" + "_08110F44:\n" + "\t.4byte _08110F70\n" + "\t.4byte _08110FAC\n" + "\t.4byte _08110F8E\n" + "\t.4byte _0811105E\n" + "\t.4byte _08111002\n" + "\t.4byte _08111036\n" + "\t.4byte _08111036\n" + "\t.4byte _0811105E\n" + "\t.4byte _08110FCE\n" + "\t.4byte _0811104A\n" + "\t.4byte _0811104A\n" + "_08110F70:\n" + "\tldrh r0, [r3]\n" + "\tlsls r1, r0, 16\n" + "\tcmp r1, 0\n" + "\tbeq _0811105E\n" + "\tmov r0, r9\n" + "\tldrh r2, [r0]\n" + "\tlsls r2, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r2, r0\n" + "\tldrh r0, [r2]\n" + "\tadds r0, 0x10\n" + "\tlsrs r1, 20\n" + "\tb _08110FC8\n" + "_08110F8E:\n" + "\tldrh r0, [r3]\n" + "\tlsls r1, r0, 16\n" + "\tcmp r1, 0\n" + "\tbeq _0811105E\n" + "\tmov r3, r9\n" + "\tldrh r2, [r3]\n" + "\tlsls r2, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r2, r0\n" + "\tldrh r0, [r2]\n" + "\tadds r0, 0x1E\n" + "\tlsrs r1, 20\n" + "\tb _08110FC8\n" + "_08110FAC:\n" + "\tldrh r0, [r3]\n" + "\tlsls r1, r0, 16\n" + "\tcmp r1, 0\n" + "\tbeq _0811105E\n" + "\tmov r0, r9\n" + "\tldrh r2, [r0]\n" + "\tlsls r2, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r2, r0\n" + "\tldrh r0, [r2]\n" + "\tadds r0, 0x20\n" + "\tlsrs r1, 22\n" + "_08110FC8:\n" + "\tadds r0, r1\n" + "\tstrh r0, [r2]\n" + "\tb _0811105E\n" + "_08110FCE:\n" + "\tldrh r2, [r3]\n" + "\tcmp r2, 0\n" + "\tbeq _0811105E\n" + "\tmovs r0, 0x80\n" + "\tands r0, r2\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tnegs r0, r0\n" + "\tlsrs r3, r0, 31\n" + "\tmovs r0, 0x20\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _08110FEC\n" + "\tmovs r0, 0x2\n" + "\torrs r3, r0\n" + "_08110FEC:\n" + "\tmov r0, r9\n" + "\tldrh r1, [r0]\n" + "\tlsls r1, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1]\n" + "\tadds r0, 0x20\n" + "\tadds r0, r3\n" + "\tb _0811105C\n" + "_08111002:\n" + "\tldrh r2, [r3]\n" + "\tcmp r2, 0\n" + "\tbeq _0811105E\n" + "\tmovs r0, 0x40\n" + "\tands r0, r2\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tnegs r0, r0\n" + "\tlsrs r3, r0, 31\n" + "\tmovs r0, 0x10\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _08111020\n" + "\tmovs r0, 0x2\n" + "\torrs r3, r0\n" + "_08111020:\n" + "\tmov r0, r9\n" + "\tldrh r1, [r0]\n" + "\tlsls r1, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1]\n" + "\tadds r0, 0x21\n" + "\tadds r0, r3\n" + "\tb _0811105C\n" + "_08111036:\n" + "\tmov r3, r9\n" + "\tldrh r1, [r3]\n" + "\tlsls r1, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1]\n" + "\tadds r0, 0x27\n" + "\tb _0811105C\n" + "_0811104A:\n" + "\tmov r0, r9\n" + "\tldrh r1, [r0]\n" + "\tlsls r1, 1\n" + "\tmovs r0, 0x8B\n" + "\tlsls r0, 1\n" + "\tadd r0, r8\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1]\n" + "\tadds r0, 0x25\n" + "_0811105C:\n" + "\tstrh r0, [r1]\n" + "_0811105E:\n" + "\tmov r3, r9\n" + "\tldrh r0, [r3]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r3]\n" + "\tlsls r0, 16\n" + "\tldr r1, _08111080 @ =0x027f0000\n" + "\tcmp r0, r1\n" + "\tbhi _08111070\n" + "\tb _08110E3C\n" + "_08111070:\n" + "\tadd sp, 0xC\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08111080: .4byte 0x027f0000"); +} +#endif // NONMATCHING -- cgit v1.2.3 From 33bb43db0de5d7d60ab8eff6db0ac305d403474f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 23:00:25 -0400 Subject: Decompile some data objects --- data/pokedex_area_screen.s | 26 ------- include/region_map_sections.h | 141 +++++++++++++++++++++------------- ld_script.txt | 1 + src/pokedex_area_screen.c | 171 +++++++++++++++++++++++------------------- 4 files changed, 182 insertions(+), 157 deletions(-) diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s index 6d52e30a5..0742ef5a4 100644 --- a/data/pokedex_area_screen.s +++ b/data/pokedex_area_screen.s @@ -3,32 +3,6 @@ .section .rodata -gUnknown_083F8418:: @ 83F8418 - .incbin "graphics/pokedex/area_glow.gbapal" - -gUnknown_083F8438:: @ 83F8438 - .incbin "graphics/pokedex/area_glow.4bpp.lz" - - .align 1 -gUnknown_083F856C:: @ 83F856C - .2byte 360 - - .align 1 -gUnknown_083F856E:: @ 83F856E - .2byte 328, 0, 34 - .2byte 412, 0, 0 - - .align 1 -gUnknown_083F857A:: @ 83F857A - .2byte 85, 2142 @ FLAG_LANDMARK_SKY_PILLAR - .2byte 68, 2119 @ FLAG_LANDMARK_SEAFLOOR_CAVERN - .2byte 88, 0 - -@ XXX: what is this? - .align 2 -gUnknown_083F8588:: - .4byte gSharedMem - .align 2 gUnknown_083F858C:: @ 83F858C obj_tiles AreaMarkerTiles, 0x80, 2 diff --git a/include/region_map_sections.h b/include/region_map_sections.h index a3bd60b59..e606c2a5f 100644 --- a/include/region_map_sections.h +++ b/include/region_map_sections.h @@ -3,58 +3,95 @@ enum { - MAPSEC_LittlerootTown, // 0x00 - MAPSEC_OldaleTown, // 0x01 - MAPSEC_DewfordTown, // 0x02 - MAPSEC_LavaridgeTown, // 0x03 - MAPSEC_FallarborTown, // 0x04 - MAPSEC_VerdanturfTown, // 0x05 - MAPSEC_PacifidlogTown, // 0x06 - MAPSEC_PetalburgCity, // 0x07 - MAPSEC_SlateportCity, // 0x08 - MAPSEC_MauvilleCity, // 0x09 - MAPSEC_RustboroCity, // 0x0A - MAPSEC_FortreeCity, // 0x0B - MAPSEC_LilycoveCity, // 0x0C - MAPSEC_MossdeepCity, // 0x0D - MAPSEC_SootopolisCity, // 0x0E - MAPSEC_EverGrandeCity, // 0x0F - MAPSEC_Route101, // 0x10 - MAPSEC_Route102, // 0x11 - MAPSEC_Route103, // 0x12 - MAPSEC_Route104, // 0x13 - MAPSEC_Route105, // 0x14 - MAPSEC_Route106, // 0x15 - MAPSEC_Route107, // 0x16 - MAPSEC_Route108, // 0x17 - MAPSEC_Route109, // 0x18 - MAPSEC_Route110, // 0x19 - MAPSEC_Route111, // 0x1A - MAPSEC_Route112, // 0x1B - MAPSEC_Route113, // 0x1C - MAPSEC_Route114, // 0x1D - MAPSEC_Route115, // 0x1E - MAPSEC_Route116, // 0x1F - MAPSEC_Route117, // 0x20 - MAPSEC_Route118, // 0x21 - MAPSEC_Route119, // 0x22 - MAPSEC_Route120, // 0x23 - MAPSEC_Route121, // 0x24 - MAPSEC_Route122, // 0x25 - MAPSEC_Route123, // 0x26 - MAPSEC_Route124, // 0x27 - MAPSEC_Route125, // 0x28 - MAPSEC_Route126, // 0x29 - MAPSEC_Route127, // 0x2A - MAPSEC_Route128, // 0x2B - MAPSEC_Route129, // 0x2C - MAPSEC_Route130, // 0x2D - MAPSEC_Route131, // 0x2E - MAPSEC_Route132, // 0x2F - MAPSEC_Route133, // 0x30 - MAPSEC_Route134, // 0x31 - MAPSEC_MtChimney = 0x38, // 0x38 - MAPSEC_Nothing = 0x58, // 0x58 + MAPSEC_LittlerootTown, // 0x00 + MAPSEC_OldaleTown, // 0x01 + MAPSEC_DewfordTown, // 0x02 + MAPSEC_LavaridgeTown, // 0x03 + MAPSEC_FallarborTown, // 0x04 + MAPSEC_VerdanturfTown, // 0x05 + MAPSEC_PacifidlogTown, // 0x06 + MAPSEC_PetalburgCity, // 0x07 + MAPSEC_SlateportCity, // 0x08 + MAPSEC_MauvilleCity, // 0x09 + MAPSEC_RustboroCity, // 0x0A + MAPSEC_FortreeCity, // 0x0B + MAPSEC_LilycoveCity, // 0x0C + MAPSEC_MossdeepCity, // 0x0D + MAPSEC_SootopolisCity, // 0x0E + MAPSEC_EverGrandeCity, // 0x0F + MAPSEC_Route101, // 0x10 + MAPSEC_Route102, // 0x11 + MAPSEC_Route103, // 0x12 + MAPSEC_Route104, // 0x13 + MAPSEC_Route105, // 0x14 + MAPSEC_Route106, // 0x15 + MAPSEC_Route107, // 0x16 + MAPSEC_Route108, // 0x17 + MAPSEC_Route109, // 0x18 + MAPSEC_Route110, // 0x19 + MAPSEC_Route111, // 0x1A + MAPSEC_Route112, // 0x1B + MAPSEC_Route113, // 0x1C + MAPSEC_Route114, // 0x1D + MAPSEC_Route115, // 0x1E + MAPSEC_Route116, // 0x1F + MAPSEC_Route117, // 0x20 + MAPSEC_Route118, // 0x21 + MAPSEC_Route119, // 0x22 + MAPSEC_Route120, // 0x23 + MAPSEC_Route121, // 0x24 + MAPSEC_Route122, // 0x25 + MAPSEC_Route123, // 0x26 + MAPSEC_Route124, // 0x27 + MAPSEC_Route125, // 0x28 + MAPSEC_Route126, // 0x29 + MAPSEC_Route127, // 0x2A + MAPSEC_Route128, // 0x2B + MAPSEC_Route129, // 0x2C + MAPSEC_Route130, // 0x2D + MAPSEC_Route131, // 0x2E + MAPSEC_Route132, // 0x2F + MAPSEC_Route133, // 0x30 + MAPSEC_Route134, // 0x31 + MAPSEC_Underwater124, // 0x32 + MAPSEC_Underwater125, // 0x33 + MAPSEC_Underwater126, // 0x34 + MAPSEC_Underwater127, // 0x35 + MAPSEC_UnderwaterSootopolis, // 0x36 + MAPSEC_GraniteCave, // 0x37 + MAPSEC_MtChimney, // 0x38 + MAPSEC_SafariZone, // 0x39 + MAPSEC_BattleFrontier, // 0x3A + MAPSEC_PetalburgWoods, // 0x3B + MAPSEC_RusturfTunnel, // 0x3C + MAPSEC_AbandonedShip, // 0x3D + MAPSEC_NewMauville, // 0x3E + MAPSEC_MeteorFalls, // 0x3F + MAPSEC_MeteorFalls2, // 0x40 + MAPSEC_MtPyre, // 0x41 + MAPSEC_AquaHideoutOld, // 0x42 + MAPSEC_ShoalCave, // 0x43 + MAPSEC_SeafloorCavern, // 0x44 + MAPSEC_Underwater128, // 0x45 + MAPSEC_VictoryRoad, // 0x46 + MAPSEC_MirageIsland, // 0x47 + MAPSEC_CaveOfOrigin, // 0x48 + MAPSEC_SouthernIsland, // 0x49 + MAPSEC_FieryPath, // 0x4A + MAPSEC_FieryPath2, // 0x4B + MAPSEC_JaggedPass, // 0x4C + MAPSEC_JaggedPass2, // 0x4D + MAPSEC_SealedChamber, // 0x4E + MAPSEC_UnderwaterSealedChamber, // 0x4F + MAPSEC_ScorchedSlab, // 0x50 + MAPSEC_IslandCave, // 0x51 + MAPSEC_DesertRuins, // 0x52 + MAPSEC_AncientTomb, // 0x53 + MAPSEC_InsideOfTruck, // 0x54 + MAPSEC_SkyPillar, // 0x55 + MAPSEC_SecretBase, // 0x56 + MAPSEC_Dynamic, // 0x57 + MAPSEC_Nothing // 0x58 }; #endif // GUARD_REGIONMAPSEC_H diff --git a/ld_script.txt b/ld_script.txt index 382feba7c..047638fd7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -633,6 +633,7 @@ SECTIONS { src/time_events.o(.rodata); src/field_specials.o(.rodata); src/battle/battle_records.o(.rodata); + src/pokedex_area_screen.o(.rodata); data/pokedex_area_screen.o(.rodata); src/evolution_scene.o(.rodata); data/roulette.o(.rodata); diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 1e910b76c..b42477a79 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -69,19 +69,32 @@ void sub_8111288(void); // .rodata -extern const u16 gUnknown_083F8418[]; -extern const u8 gUnknown_083F8438[]; -extern const u16 gUnknown_083F856C[]; -extern const u16 gUnknown_083F856E[][3]; -extern const u16 gUnknown_083F857A[][2]; +const u16 gUnknown_083F8418[] = INCBIN_U16("graphics/pokedex/area_glow.gbapal"); + +const u8 gUnknown_083F8438[] = INCBIN_U8("graphics/pokedex/area_glow.4bpp.lz"); + +const u16 gUnknown_083F856C[] = {SPECIES_WYNAUT}; + +const u16 gUnknown_083F856E[][3] = { + {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, + {NUM_SPECIES} +}; + +const u16 gUnknown_083F857A[][2] = { + {MAPSEC_SkyPillar, FLAG_LANDMARK_SKY_PILLAR}, + {MAPSEC_SeafloorCavern, FLAG_LANDMARK_SEAFLOOR_CAVERN}, + {MAPSEC_Nothing} +}; + +struct PokedexAreaScreenEwramStruct *const gUnknown_083F8588 = &ePokedexAreaScreen; // .text void UnusedPokedexAreaScreen(u16 a0, u32 a1, u32 a2) { - ePokedexAreaScreen.unk0004 = a1; - ePokedexAreaScreen.unk0008 = a2; - ePokedexAreaScreen.unk000E = a0; + gUnknown_083F8588->unk0004 = a1; + gUnknown_083F8588->unk0008 = a2; + gUnknown_083F8588->unk000E = a0; SetMainCallback2(CB2_UnusedPokedexAreaScreen); } @@ -105,8 +118,8 @@ void CB2_UnusedPokedexAreaScreen(void) REG_BG3VOFS = 0; break; case 1: - InitRegionMap(&ePokedexAreaScreen.unk06E8, FALSE); - StringFill(ePokedexAreaScreen.unk0F68, CHAR_SPACE, 16); + InitRegionMap(&gUnknown_083F8588->unk06E8, FALSE); + StringFill(gUnknown_083F8588->unk0F68, CHAR_SPACE, 16); break; case 2: sub_8110824(); @@ -145,7 +158,7 @@ void sub_81107DC(void) void sub_81107F0(void) { - ePokedexAreaScreen.unk0000(); + gUnknown_083F8588->unk0000(); sub_8111110(); AnimateSprites(); BuildOamBuffer(); @@ -154,21 +167,21 @@ void sub_81107F0(void) void sub_8110814(void (*func)(void)) { - ePokedexAreaScreen.unk0000 = func; - ePokedexAreaScreen.unk000C = 0; + gUnknown_083F8588->unk0000 = func; + gUnknown_083F8588->unk000C = 0; } void sub_8110824(void) { - ePokedexAreaScreen.unk0114 = 0; + gUnknown_083F8588->unk0114 = 0; } bool8 DrawAreaGlow(void) { - switch (ePokedexAreaScreen.unk0114) + switch (gUnknown_083F8588->unk0114) { case 0: - FindMapsWithMon(ePokedexAreaScreen.unk000E); + FindMapsWithMon(gUnknown_083F8588->unk000E); break; case 1: BuildAreaGlowTilemap(); @@ -177,19 +190,19 @@ bool8 DrawAreaGlow(void) LZ77UnCompVram(gUnknown_083F8438, BG_CHAR_ADDR(3)); break; case 3: - DmaCopy16(3, ePokedexAreaScreen.unk0116, BG_SCREEN_ADDR(30), 0x500); + DmaCopy16(3, gUnknown_083F8588->unk0116, BG_SCREEN_ADDR(30), 0x500); break; case 4: LoadPalette(gUnknown_083F8418, 0, 32); break; case 5: REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT256x256; - ePokedexAreaScreen.unk0114++; + gUnknown_083F8588->unk0114++; return FALSE; default: return FALSE; } - ePokedexAreaScreen.unk0114++; + gUnknown_083F8588->unk0114++; return TRUE; } @@ -200,8 +213,8 @@ void FindMapsWithMon(u16 mon) if (mon != ROAMER_SPECIES) { - ePokedexAreaScreen.unk0110 = 0; - ePokedexAreaScreen.unk0112 = 0; + gUnknown_083F8588->unk0110 = 0; + gUnknown_083F8588->unk0112 = 0; for (i = 0; i < 1; i++) { if (gUnknown_083F856C[i] == mon) @@ -242,27 +255,27 @@ void FindMapsWithMon(u16 mon) } else { - ePokedexAreaScreen.unk0112 = 0; + gUnknown_083F8588->unk0112 = 0; roamer = &gSaveBlock1.roamer; if (roamer->active) { - GetRoamerLocation(&ePokedexAreaScreen.unk0010[0].mapGroup, &ePokedexAreaScreen.unk0010[0].mapNum); - ePokedexAreaScreen.unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(ePokedexAreaScreen.unk0010[0].mapGroup, ePokedexAreaScreen.unk0010[0].mapNum)->regionMapSectionId; - ePokedexAreaScreen.unk0110 = 1; + GetRoamerLocation(&gUnknown_083F8588->unk0010[0].mapGroup, &gUnknown_083F8588->unk0010[0].mapNum); + gUnknown_083F8588->unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(gUnknown_083F8588->unk0010[0].mapGroup, gUnknown_083F8588->unk0010[0].mapNum)->regionMapSectionId; + gUnknown_083F8588->unk0110 = 1; } else - ePokedexAreaScreen.unk0110 = 0; + gUnknown_083F8588->unk0110 = 0; } } void SetAreaHasMon(u16 mapGroup, u16 mapNum) { - if (ePokedexAreaScreen.unk0110 < 0x40) + if (gUnknown_083F8588->unk0110 < 0x40) { - ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].mapGroup = mapGroup; - ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].mapNum = mapNum; - ePokedexAreaScreen.unk0010[ePokedexAreaScreen.unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); - ePokedexAreaScreen.unk0110++; + gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].mapGroup = mapGroup; + gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].mapNum = mapNum; + gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + gUnknown_083F8588->unk0110++; } } @@ -271,7 +284,7 @@ void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) const struct MapHeader *mapHeader; u16 i; - if (ePokedexAreaScreen.unk0112 < 0x20) + if (gUnknown_083F8588->unk0112 < 0x20) { mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); if (mapHeader->regionMapSectionId < MAPSEC_Nothing) @@ -281,15 +294,15 @@ void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) if (mapHeader->regionMapSectionId == gUnknown_083F857A[i][0] && !FlagGet(gUnknown_083F857A[i][1])) return; } - for (i = 0; i < ePokedexAreaScreen.unk0112; i++) + for (i = 0; i < gUnknown_083F8588->unk0112; i++) { - if (ePokedexAreaScreen.unk0620[i] == mapHeader->regionMapSectionId) + if (gUnknown_083F8588->unk0620[i] == mapHeader->regionMapSectionId) break; } - if (i == ePokedexAreaScreen.unk0112) + if (i == gUnknown_083F8588->unk0112) { - ePokedexAreaScreen.unk0620[i] = mapHeader->regionMapSectionId; - ePokedexAreaScreen.unk0112++; + gUnknown_083F8588->unk0620[i] = mapHeader->regionMapSectionId; + gUnknown_083F8588->unk0112++; } } } @@ -334,18 +347,18 @@ void BuildAreaGlowTilemap(void) u32 r3; for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) - ePokedexAreaScreen.unk0116[gUnknown_02039260] = 0; + gUnknown_083F8588->unk0116[gUnknown_02039260] = 0; - for (gUnknown_02039260 = 0; gUnknown_02039260 < ePokedexAreaScreen.unk0110; gUnknown_02039260++) + for (gUnknown_02039260 = 0; gUnknown_02039260 < gUnknown_083F8588->unk0110; gUnknown_02039260++) { gUnknown_02039266 = 0; for (gUnknown_02039264 = 0; gUnknown_02039264 < 20; gUnknown_02039264++) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == ePokedexAreaScreen.unk0010[gUnknown_02039260].regionMapSectionId) + if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == gUnknown_083F8588->unk0010[gUnknown_02039260].regionMapSectionId) { - ePokedexAreaScreen.unk0116[gUnknown_02039266] = 0xFFFF; + gUnknown_083F8588->unk0116[gUnknown_02039266] = 0xFFFF; } gUnknown_02039266++; } @@ -357,24 +370,24 @@ void BuildAreaGlowTilemap(void) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (ePokedexAreaScreen.unk0116[gUnknown_02039266] == 0xFFFF) + if (gUnknown_083F8588->unk0116[gUnknown_02039266] == 0xFFFF) { - if (gUnknown_02039262 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 1] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 - 1] |= 0x02; - if (gUnknown_02039262 != 31 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 1] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 + 1] |= 0x01; - if (gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 32] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 - 32] |= 0x08; - if (gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 32] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 + 32] |= 0x04; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 33] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 - 33] |= 0x10; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && ePokedexAreaScreen.unk0116[gUnknown_02039266 - 31] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 - 31] |= 0x40; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 31] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 + 31] |= 0x20; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && ePokedexAreaScreen.unk0116[gUnknown_02039266 + 33] != 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039266 + 33] |= 0x80; + if (gUnknown_02039262 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 1] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 - 1] |= 0x02; + if (gUnknown_02039262 != 31 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 1] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 + 1] |= 0x01; + if (gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 32] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 - 32] |= 0x08; + if (gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 32] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 + 32] |= 0x04; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 33] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 - 33] |= 0x10; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 31] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 - 31] |= 0x40; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 31] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 + 31] |= 0x20; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 33] != 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039266 + 33] |= 0x80; } gUnknown_02039266++; } @@ -382,36 +395,36 @@ void BuildAreaGlowTilemap(void) for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) // Register difference on induction: expected r3, got r1 { - if (ePokedexAreaScreen.unk0116[gUnknown_02039260] == 0xFFFF) - ePokedexAreaScreen.unk0116[gUnknown_02039260] = 0x10; - else if (ePokedexAreaScreen.unk0116[gUnknown_02039260] != 0) + if (gUnknown_083F8588->unk0116[gUnknown_02039260] == 0xFFFF) + gUnknown_083F8588->unk0116[gUnknown_02039260] = 0x10; + else if (gUnknown_083F8588->unk0116[gUnknown_02039260] != 0) { - if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x02) - ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFFCF; - if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x01) - ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFF3F; - if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x08) - ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFFAF; - if (ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x04) - ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0xFF5F; - gUnknown_02039268 = ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0x0F; - gUnknown_0203926A = ePokedexAreaScreen.unk0116[gUnknown_02039260] & 0xF0; + if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x02) + gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFFCF; + if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x01) + gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFF3F; + if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x08) + gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFFAF; + if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x04) + gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFF5F; + gUnknown_02039268 = gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x0F; + gUnknown_0203926A = gUnknown_083F8588->unk0116[gUnknown_02039260] & 0xF0; if (gUnknown_0203926A) { - ePokedexAreaScreen.unk0116[gUnknown_02039260] &= 0x0F; + gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0x0F; switch (gUnknown_02039268) { case 0: if (gUnknown_0203926A != 0) - ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; + gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; break; case 2: if (gUnknown_0203926A != 0) - ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; + gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; break; case 1: if (gUnknown_0203926A != 0) - ePokedexAreaScreen.unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; + gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; break; case 8: if (gUnknown_0203926A != 0) @@ -421,7 +434,7 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x20) r3 |= 2; - ePokedexAreaScreen.unk0116[gUnknown_02039260] += r3 + 0x20; + gUnknown_083F8588->unk0116[gUnknown_02039260] += r3 + 0x20; } break; case 4: @@ -432,16 +445,16 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x10) r3 |= 2; - ePokedexAreaScreen.unk0116[gUnknown_02039260] += r3 + 0x21; + gUnknown_083F8588->unk0116[gUnknown_02039260] += r3 + 0x21; } break; case 5: case 6: - ePokedexAreaScreen.unk0116[gUnknown_02039260] += 0x27; + gUnknown_083F8588->unk0116[gUnknown_02039260] += 0x27; break; case 9: case 10: - ePokedexAreaScreen.unk0116[gUnknown_02039260] += 0x25; + gUnknown_083F8588->unk0116[gUnknown_02039260] += 0x25; break; } } -- cgit v1.2.3 From a5a8d5d04a7d5186aa1dcb1a8db1df3be5214016 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Apr 2018 23:48:39 -0400 Subject: through sub_8111360 --- asm/pokedex_area_screen.s | 412 ---------------------------------------------- src/pokedex_area_screen.c | 307 +++++++++++++++++++++++++--------- 2 files changed, 227 insertions(+), 492 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 2c1e83def..a4b103e23 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,418 +5,6 @@ .text - thumb_func_start sub_8111084 -sub_8111084: @ 8111084 - push {lr} - ldr r0, _081110AC @ =gSharedMem - movs r2, 0x89 - lsls r2, 1 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - beq _081110B4 - movs r3, 0x88 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _081110B4 - ldr r0, _081110B0 @ =0x0000061e - adds r1, r2, r0 - movs r0, 0x1 - b _081110BA - .align 2, 0 -_081110AC: .4byte gSharedMem -_081110B0: .4byte 0x0000061e -_081110B4: - ldr r3, _081110FC @ =0x0000061e - adds r1, r2, r3 - movs r0, 0 -_081110BA: - strb r0, [r1] - ldr r1, _08111100 @ =0x00000616 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0xC3 - lsls r3, 3 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - ldr r0, _08111104 @ =0x0000061c - adds r1, r2, r0 - movs r0, 0x40 - strh r0, [r1] - adds r3, 0x5 - adds r1, r2, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08111108 @ =REG_BLDCNT - ldr r2, _0811110C @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - bl sub_8111110 - pop {r0} - bx r0 - .align 2, 0 -_081110FC: .4byte 0x0000061e -_08111100: .4byte 0x00000616 -_08111104: .4byte 0x0000061c -_08111108: .4byte REG_BLDCNT -_0811110C: .4byte 0x00003f41 - thumb_func_end sub_8111084 - - thumb_func_start sub_8111110 -sub_8111110: @ 8111110 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0811114C @ =gSharedMem - ldr r2, _08111150 @ =0x0000061e - adds r1, r0, r2 - ldrb r1, [r1] - adds r5, r0, 0 - cmp r1, 0 - bne _081111DE - ldr r3, _08111154 @ =0x00000616 - adds r1, r5, r3 - ldrh r0, [r1] - cmp r0, 0 - bne _081111D8 - movs r1, 0xC3 - lsls r1, 3 - adds r0, r5, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08111158 - subs r2, 0x4 - adds r0, r5, r2 - b _0811115C - .align 2, 0 -_0811114C: .4byte gSharedMem -_08111150: .4byte 0x0000061e -_08111154: .4byte 0x00000616 -_08111158: - ldr r3, _081111C0 @ =0x0000061c - adds r0, r5, r3 -_0811115C: - ldrh r1, [r0] - adds r1, 0x4 - movs r2, 0x7F - ands r1, r2 - strh r1, [r0] - ldr r2, _081111C4 @ =gSineTable - ldr r1, _081111C8 @ =0x0000061a - adds r0, r5, r1 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 20 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _081111C0 @ =0x0000061c - adds r0, r5, r3 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - lsls r0, 16 - ldr r2, _081111CC @ =REG_BLDALPHA - lsrs r0, 8 - orrs r1, r0 - strh r1, [r2] - ldr r1, _081111D0 @ =0x00000616 - adds r0, r5, r1 - movs r2, 0 - strh r2, [r0] - subs r3, 0x4 - adds r1, r5, r3 - ldrh r0, [r1] - cmp r0, 0x40 - bne _0811126E - strh r2, [r1] - movs r1, 0x89 - lsls r1, 1 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0811126E - ldr r2, _081111D4 @ =0x0000061e - adds r1, r5, r2 - movs r0, 0x1 - b _0811126C - .align 2, 0 -_081111C0: .4byte 0x0000061c -_081111C4: .4byte gSineTable -_081111C8: .4byte 0x0000061a -_081111CC: .4byte REG_BLDALPHA -_081111D0: .4byte 0x00000616 -_081111D4: .4byte 0x0000061e -_081111D8: - subs r0, 0x1 - strh r0, [r1] - b _0811126E -_081111DE: - ldr r3, _0811127C @ =0x00000616 - adds r1, r5, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC - bls _0811126E - movs r0, 0 - strh r0, [r1] - ldr r0, _08111280 @ =0x0000061f - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r4, 0 - movs r2, 0x89 - lsls r2, 1 - adds r0, r5, r2 - ldrh r3, [r0] - cmp r4, r3 - bcs _0811124C - movs r2, 0xCC - lsls r2, 3 - adds r2, r5 - mov r9, r2 - mov r8, r1 - movs r3, 0x1 - mov r12, r3 - adds r6, r0, 0 - movs r7, 0x5 - negs r7, r7 -_08111220: - lsls r0, r4, 2 - add r0, r9 - ldr r3, [r0] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - adds r3, 0x3E - ands r1, r0 - mov r2, r12 - ands r1, r2 - lsls r1, 2 - ldrb r2, [r3] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r3, [r6] - cmp r4, r3 - bcc _08111220 -_0811124C: - ldr r0, _08111280 @ =0x0000061f - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0x4 - bls _0811126E - movs r0, 0x1 - strb r0, [r1] - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0811126E - ldr r2, _08111284 @ =0x0000061e - adds r1, r5, r2 - movs r0, 0 -_0811126C: - strb r0, [r1] -_0811126E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811127C: .4byte 0x00000616 -_08111280: .4byte 0x0000061f -_08111284: .4byte 0x0000061e - thumb_func_end sub_8111110 - - thumb_func_start sub_8111288 -sub_8111288: @ 8111288 - push {lr} - ldr r1, _08111298 @ =gSharedMem - ldrh r0, [r1, 0xC] - cmp r0, 0 - beq _0811129C - cmp r0, 0x1 - beq _081112A2 - b _081112B2 - .align 2, 0 -_08111298: .4byte gSharedMem -_0811129C: - movs r0, 0x1 - strh r0, [r1, 0xC] - b _081112B2 -_081112A2: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _081112B2 - ldr r0, _081112B8 @ =sub_81112BC - bl sub_8110814 -_081112B2: - pop {r0} - bx r0 - .align 2, 0 -_081112B8: .4byte sub_81112BC - thumb_func_end sub_8111288 - - thumb_func_start sub_81112BC -sub_81112BC: @ 81112BC - push {lr} - ldr r0, _081112DC @ =gSharedMem - ldrh r0, [r0, 0xC] - cmp r0, 0 - bne _08111308 - ldr r0, _081112E0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081112E8 - ldr r0, _081112E4 @ =sub_8111314 - bl sub_8110814 - b _08111308 - .align 2, 0 -_081112DC: .4byte gSharedMem -_081112E0: .4byte gMain -_081112E4: .4byte sub_8111314 -_081112E8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08111302 - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08111308 - ldr r0, _0811130C @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _08111308 -_08111302: - ldr r0, _08111310 @ =sub_8111360 - bl sub_8110814 -_08111308: - pop {r0} - bx r0 - .align 2, 0 -_0811130C: .4byte gSaveBlock2 -_08111310: .4byte sub_8111360 - thumb_func_end sub_81112BC - - thumb_func_start sub_8111314 -sub_8111314: @ 8111314 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08111328 @ =gSharedMem - ldrh r1, [r4, 0xC] - cmp r1, 0 - beq _0811132C - cmp r1, 0x1 - beq _08111344 - b _08111358 - .align 2, 0 -_08111328: .4byte gSharedMem -_0811132C: - movs r0, 0x15 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _08111358 -_08111344: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08111358 - bl FreeRegionMapIconResources - ldr r0, [r4, 0x4] - bl SetMainCallback2 -_08111358: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8111314 - - thumb_func_start sub_8111360 -sub_8111360: @ 8111360 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08111374 @ =gSharedMem - ldrh r1, [r4, 0xC] - cmp r1, 0 - beq _08111378 - cmp r1, 0x1 - beq _08111390 - b _081113A4 - .align 2, 0 -_08111374: .4byte gSharedMem -_08111378: - movs r0, 0x15 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _081113A4 -_08111390: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _081113A4 - bl FreeRegionMapIconResources - ldr r0, [r4, 0x8] - bl SetMainCallback2 -_081113A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8111360 - thumb_func_start ShowPokedexAreaScreen ShowPokedexAreaScreen: @ 81113AC push {r4,lr} diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index b42477a79..d5ca06395 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -16,6 +16,7 @@ #include "roamer.h" #include "overworld.h" #include "event_data.h" +#include "trig.h" // Static type declarations @@ -29,8 +30,8 @@ struct PokedexAreaScreenSubstruct0010 struct PokedexAreaScreenEwramStruct { void (*unk0000)(void); - u32 unk0004; - u32 unk0008; + MainCallback unk0004; + MainCallback unk0008; u16 unk000C; u16 unk000E; struct PokedexAreaScreenSubstruct0010 unk0010[0x40]; @@ -38,11 +39,19 @@ struct PokedexAreaScreenEwramStruct u16 unk0112; u16 unk0114; u16 unk0116[0x280]; - u8 filler_0616[0x0A]; + u16 unk0616; + u16 unk0618; + u16 unk061A; + u16 unk061C; + u8 unk061E; + u8 unk061F; u16 unk0620[0x20]; - u8 filler_0660[0x88]; + struct Sprite * unk0660[0x20]; + u8 filler_06E0[8]; struct RegionMap unk06E8; u8 unk0F68[16]; + u8 filler_0F78[0x3C]; + u8 unk0FB4[0x600]; }; #define ePokedexAreaScreen (*(struct PokedexAreaScreenEwramStruct *)gSharedMem) @@ -66,6 +75,9 @@ void BuildAreaGlowTilemap(void); void sub_8111084(void); void sub_8111110(void); void sub_8111288(void); +void sub_81112BC(void); +void sub_8111314(void); +void sub_8111360(void); // .rodata @@ -86,15 +98,15 @@ const u16 gUnknown_083F857A[][2] = { {MAPSEC_Nothing} }; -struct PokedexAreaScreenEwramStruct *const gUnknown_083F8588 = &ePokedexAreaScreen; +struct PokedexAreaScreenEwramStruct *const gPokedexAreaScreenPtr = &ePokedexAreaScreen; // .text -void UnusedPokedexAreaScreen(u16 a0, u32 a1, u32 a2) +void UnusedPokedexAreaScreen(u16 a0, MainCallback a1, MainCallback a2) { - gUnknown_083F8588->unk0004 = a1; - gUnknown_083F8588->unk0008 = a2; - gUnknown_083F8588->unk000E = a0; + gPokedexAreaScreenPtr->unk0004 = a1; + gPokedexAreaScreenPtr->unk0008 = a2; + gPokedexAreaScreenPtr->unk000E = a0; SetMainCallback2(CB2_UnusedPokedexAreaScreen); } @@ -118,8 +130,8 @@ void CB2_UnusedPokedexAreaScreen(void) REG_BG3VOFS = 0; break; case 1: - InitRegionMap(&gUnknown_083F8588->unk06E8, FALSE); - StringFill(gUnknown_083F8588->unk0F68, CHAR_SPACE, 16); + InitRegionMap(&gPokedexAreaScreenPtr->unk06E8, FALSE); + StringFill(gPokedexAreaScreenPtr->unk0F68, CHAR_SPACE, 16); break; case 2: sub_8110824(); @@ -158,7 +170,7 @@ void sub_81107DC(void) void sub_81107F0(void) { - gUnknown_083F8588->unk0000(); + gPokedexAreaScreenPtr->unk0000(); sub_8111110(); AnimateSprites(); BuildOamBuffer(); @@ -167,21 +179,21 @@ void sub_81107F0(void) void sub_8110814(void (*func)(void)) { - gUnknown_083F8588->unk0000 = func; - gUnknown_083F8588->unk000C = 0; + gPokedexAreaScreenPtr->unk0000 = func; + gPokedexAreaScreenPtr->unk000C = 0; } void sub_8110824(void) { - gUnknown_083F8588->unk0114 = 0; + gPokedexAreaScreenPtr->unk0114 = 0; } bool8 DrawAreaGlow(void) { - switch (gUnknown_083F8588->unk0114) + switch (gPokedexAreaScreenPtr->unk0114) { case 0: - FindMapsWithMon(gUnknown_083F8588->unk000E); + FindMapsWithMon(gPokedexAreaScreenPtr->unk000E); break; case 1: BuildAreaGlowTilemap(); @@ -190,19 +202,19 @@ bool8 DrawAreaGlow(void) LZ77UnCompVram(gUnknown_083F8438, BG_CHAR_ADDR(3)); break; case 3: - DmaCopy16(3, gUnknown_083F8588->unk0116, BG_SCREEN_ADDR(30), 0x500); + DmaCopy16(3, gPokedexAreaScreenPtr->unk0116, BG_SCREEN_ADDR(30), 0x500); break; case 4: LoadPalette(gUnknown_083F8418, 0, 32); break; case 5: REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT256x256; - gUnknown_083F8588->unk0114++; + gPokedexAreaScreenPtr->unk0114++; return FALSE; default: return FALSE; } - gUnknown_083F8588->unk0114++; + gPokedexAreaScreenPtr->unk0114++; return TRUE; } @@ -213,8 +225,8 @@ void FindMapsWithMon(u16 mon) if (mon != ROAMER_SPECIES) { - gUnknown_083F8588->unk0110 = 0; - gUnknown_083F8588->unk0112 = 0; + gPokedexAreaScreenPtr->unk0110 = 0; + gPokedexAreaScreenPtr->unk0112 = 0; for (i = 0; i < 1; i++) { if (gUnknown_083F856C[i] == mon) @@ -255,27 +267,27 @@ void FindMapsWithMon(u16 mon) } else { - gUnknown_083F8588->unk0112 = 0; + gPokedexAreaScreenPtr->unk0112 = 0; roamer = &gSaveBlock1.roamer; if (roamer->active) { - GetRoamerLocation(&gUnknown_083F8588->unk0010[0].mapGroup, &gUnknown_083F8588->unk0010[0].mapNum); - gUnknown_083F8588->unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(gUnknown_083F8588->unk0010[0].mapGroup, gUnknown_083F8588->unk0010[0].mapNum)->regionMapSectionId; - gUnknown_083F8588->unk0110 = 1; + GetRoamerLocation(&gPokedexAreaScreenPtr->unk0010[0].mapGroup, &gPokedexAreaScreenPtr->unk0010[0].mapNum); + gPokedexAreaScreenPtr->unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(gPokedexAreaScreenPtr->unk0010[0].mapGroup, gPokedexAreaScreenPtr->unk0010[0].mapNum)->regionMapSectionId; + gPokedexAreaScreenPtr->unk0110 = 1; } else - gUnknown_083F8588->unk0110 = 0; + gPokedexAreaScreenPtr->unk0110 = 0; } } void SetAreaHasMon(u16 mapGroup, u16 mapNum) { - if (gUnknown_083F8588->unk0110 < 0x40) + if (gPokedexAreaScreenPtr->unk0110 < 0x40) { - gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].mapGroup = mapGroup; - gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].mapNum = mapNum; - gUnknown_083F8588->unk0010[gUnknown_083F8588->unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); - gUnknown_083F8588->unk0110++; + gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].mapGroup = mapGroup; + gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].mapNum = mapNum; + gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + gPokedexAreaScreenPtr->unk0110++; } } @@ -284,7 +296,7 @@ void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) const struct MapHeader *mapHeader; u16 i; - if (gUnknown_083F8588->unk0112 < 0x20) + if (gPokedexAreaScreenPtr->unk0112 < 0x20) { mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); if (mapHeader->regionMapSectionId < MAPSEC_Nothing) @@ -294,15 +306,15 @@ void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) if (mapHeader->regionMapSectionId == gUnknown_083F857A[i][0] && !FlagGet(gUnknown_083F857A[i][1])) return; } - for (i = 0; i < gUnknown_083F8588->unk0112; i++) + for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) { - if (gUnknown_083F8588->unk0620[i] == mapHeader->regionMapSectionId) + if (gPokedexAreaScreenPtr->unk0620[i] == mapHeader->regionMapSectionId) break; } - if (i == gUnknown_083F8588->unk0112) + if (i == gPokedexAreaScreenPtr->unk0112) { - gUnknown_083F8588->unk0620[i] = mapHeader->regionMapSectionId; - gUnknown_083F8588->unk0112++; + gPokedexAreaScreenPtr->unk0620[i] = mapHeader->regionMapSectionId; + gPokedexAreaScreenPtr->unk0112++; } } } @@ -347,18 +359,18 @@ void BuildAreaGlowTilemap(void) u32 r3; for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) - gUnknown_083F8588->unk0116[gUnknown_02039260] = 0; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] = 0; - for (gUnknown_02039260 = 0; gUnknown_02039260 < gUnknown_083F8588->unk0110; gUnknown_02039260++) + for (gUnknown_02039260 = 0; gUnknown_02039260 < gPokedexAreaScreenPtr->unk0110; gUnknown_02039260++) { gUnknown_02039266 = 0; for (gUnknown_02039264 = 0; gUnknown_02039264 < 20; gUnknown_02039264++) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == gUnknown_083F8588->unk0010[gUnknown_02039260].regionMapSectionId) + if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == gPokedexAreaScreenPtr->unk0010[gUnknown_02039260].regionMapSectionId) { - gUnknown_083F8588->unk0116[gUnknown_02039266] = 0xFFFF; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266] = 0xFFFF; } gUnknown_02039266++; } @@ -370,24 +382,24 @@ void BuildAreaGlowTilemap(void) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (gUnknown_083F8588->unk0116[gUnknown_02039266] == 0xFFFF) + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039266] == 0xFFFF) { - if (gUnknown_02039262 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 1] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 - 1] |= 0x02; - if (gUnknown_02039262 != 31 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 1] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 + 1] |= 0x01; - if (gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 32] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 - 32] |= 0x08; - if (gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 32] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 + 32] |= 0x04; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 33] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 - 33] |= 0x10; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && gUnknown_083F8588->unk0116[gUnknown_02039266 - 31] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 - 31] |= 0x40; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 31] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 + 31] |= 0x20; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && gUnknown_083F8588->unk0116[gUnknown_02039266 + 33] != 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039266 + 33] |= 0x80; + if (gUnknown_02039262 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 1] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 1] |= 0x02; + if (gUnknown_02039262 != 31 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 1] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 1] |= 0x01; + if (gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 32] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 32] |= 0x08; + if (gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 32] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 32] |= 0x04; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 33] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 33] |= 0x10; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 31] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 31] |= 0x40; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 31] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 31] |= 0x20; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 33] != 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 33] |= 0x80; } gUnknown_02039266++; } @@ -395,36 +407,36 @@ void BuildAreaGlowTilemap(void) for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) // Register difference on induction: expected r3, got r1 { - if (gUnknown_083F8588->unk0116[gUnknown_02039260] == 0xFFFF) - gUnknown_083F8588->unk0116[gUnknown_02039260] = 0x10; - else if (gUnknown_083F8588->unk0116[gUnknown_02039260] != 0) + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] == 0xFFFF) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] = 0x10; + else if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] != 0) { - if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x02) - gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFFCF; - if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x01) - gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFF3F; - if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x08) - gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFFAF; - if (gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x04) - gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0xFF5F; - gUnknown_02039268 = gUnknown_083F8588->unk0116[gUnknown_02039260] & 0x0F; - gUnknown_0203926A = gUnknown_083F8588->unk0116[gUnknown_02039260] & 0xF0; + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x02) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFFCF; + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x01) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFF3F; + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x08) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFFAF; + if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x04) + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFF5F; + gUnknown_02039268 = gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x0F; + gUnknown_0203926A = gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0xF0; if (gUnknown_0203926A) { - gUnknown_083F8588->unk0116[gUnknown_02039260] &= 0x0F; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0x0F; switch (gUnknown_02039268) { case 0: if (gUnknown_0203926A != 0) - gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; break; case 2: if (gUnknown_0203926A != 0) - gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; break; case 1: if (gUnknown_0203926A != 0) - gUnknown_083F8588->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; break; case 8: if (gUnknown_0203926A != 0) @@ -434,7 +446,7 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x20) r3 |= 2; - gUnknown_083F8588->unk0116[gUnknown_02039260] += r3 + 0x20; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += r3 + 0x20; } break; case 4: @@ -445,16 +457,16 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x10) r3 |= 2; - gUnknown_083F8588->unk0116[gUnknown_02039260] += r3 + 0x21; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += r3 + 0x21; } break; case 5: case 6: - gUnknown_083F8588->unk0116[gUnknown_02039260] += 0x27; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += 0x27; break; case 9: case 10: - gUnknown_083F8588->unk0116[gUnknown_02039260] += 0x25; + gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += 0x25; break; } } @@ -1039,3 +1051,138 @@ NAKED void BuildAreaGlowTilemap(void) "_08111080: .4byte 0x027f0000"); } #endif // NONMATCHING + +void sub_8111084(void) +{ + if (gPokedexAreaScreenPtr->unk0112 != 0 && gPokedexAreaScreenPtr->unk0110 == 0) + gPokedexAreaScreenPtr->unk061E = 1; + else + gPokedexAreaScreenPtr->unk061E = 0; + gPokedexAreaScreenPtr->unk0616 = 0; + gPokedexAreaScreenPtr->unk0618 = 0; + gPokedexAreaScreenPtr->unk061A = 0; + gPokedexAreaScreenPtr->unk061C = 0x40; + gPokedexAreaScreenPtr->unk061F = 1; + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + REG_BLDALPHA = 0x1000; + sub_8111110(); +} + +void sub_8111110(void) +{ + u16 x; + u16 y; + u16 i; + + if (gPokedexAreaScreenPtr->unk061E == 0) + { + if (gPokedexAreaScreenPtr->unk0616 == 0) + { + gPokedexAreaScreenPtr->unk0618++; + if (gPokedexAreaScreenPtr->unk0618 & 1) + gPokedexAreaScreenPtr->unk061A = (gPokedexAreaScreenPtr->unk061A + 4) & 0x7f; + else + gPokedexAreaScreenPtr->unk061C = (gPokedexAreaScreenPtr->unk061C + 4) & 0x7f; + x = gSineTable[gPokedexAreaScreenPtr->unk061A] >> 4; + y = gSineTable[gPokedexAreaScreenPtr->unk061C] >> 4; + REG_BLDALPHA = x | (y << 8); + gPokedexAreaScreenPtr->unk0616 = 0; + if (gPokedexAreaScreenPtr->unk0618 == 0x40) + { + gPokedexAreaScreenPtr->unk0618 = 0; + if (gPokedexAreaScreenPtr->unk0112 != 0) + gPokedexAreaScreenPtr->unk061E = 1; + } + } + else + gPokedexAreaScreenPtr->unk0616--; + } + else + { + gPokedexAreaScreenPtr->unk0616++; + if (gPokedexAreaScreenPtr->unk0616 > 12) + { + gPokedexAreaScreenPtr->unk0616 = 0; + gPokedexAreaScreenPtr->unk061F++; + for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) + { + gPokedexAreaScreenPtr->unk0660[i]->invisible = gPokedexAreaScreenPtr->unk061F & 1; + } + if (gPokedexAreaScreenPtr->unk061F > 4) + { + gPokedexAreaScreenPtr->unk061F = 1; + if (gPokedexAreaScreenPtr->unk0110 != 0) + gPokedexAreaScreenPtr->unk061E = 0; + } + } + } +} + +void sub_8111288(void) +{ + switch (gPokedexAreaScreenPtr->unk000C) + { + case 0: + gPokedexAreaScreenPtr->unk000C = 1; + break; + case 1: + if (!UpdatePaletteFade()) + { + sub_8110814(sub_81112BC); + } + break; + } +} + +void sub_81112BC(void) +{ + switch (gPokedexAreaScreenPtr->unk000C) + { + case 0: + if (gMain.newKeys & B_BUTTON) + { + sub_8110814(sub_8111314); + } + else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) + { + sub_8110814(sub_8111360); + } + break; + } +} + +void sub_8111314(void) +{ + switch (gPokedexAreaScreenPtr->unk000C) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); + gPokedexAreaScreenPtr->unk000C++; + break; + case 1: + if (!UpdatePaletteFade()) + { + FreeRegionMapIconResources(); + SetMainCallback2(gPokedexAreaScreenPtr->unk0004); + } + break; + } +} + +void sub_8111360(void) +{ + switch (gPokedexAreaScreenPtr->unk000C) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); + gPokedexAreaScreenPtr->unk000C++; + break; + case 1: + if (!UpdatePaletteFade()) + { + FreeRegionMapIconResources(); + SetMainCallback2(gPokedexAreaScreenPtr->unk0008); + } + break; + } +} -- cgit v1.2.3 From 0774f50bd4670527eee29347273fd63d69e74c25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Apr 2018 00:08:53 -0400 Subject: Through Task_PokedexAreaScreen_1 --- asm/pokedex_area_screen.s | 332 ---------------------------------------------- src/pokedex_area_screen.c | 119 ++++++++++++++++- 2 files changed, 118 insertions(+), 333 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index a4b103e23..e74ecc074 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,338 +5,6 @@ .text - thumb_func_start ShowPokedexAreaScreen -ShowPokedexAreaScreen: @ 81113AC - push {r4,lr} - ldr r2, _081113DC @ =gSharedMem - movs r3, 0 - movs r4, 0 - strh r0, [r2, 0xE] - ldr r0, _081113E0 @ =0x000006e4 - adds r2, r0 - str r1, [r2] - strb r3, [r1] - ldr r0, _081113E4 @ =Task_PokedexAreaScreen_0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081113E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081113DC: .4byte gSharedMem -_081113E0: .4byte 0x000006e4 -_081113E4: .4byte Task_PokedexAreaScreen_0 -_081113E8: .4byte gTasks - thumb_func_end ShowPokedexAreaScreen - - thumb_func_start Task_PokedexAreaScreen_0 -Task_PokedexAreaScreen_0: @ 81113EC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08111414 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0xB - bls _0811140A - b _08111540 -_0811140A: - lsls r0, 2 - ldr r1, _08111418 @ =_0811141C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111414: .4byte gTasks -_08111418: .4byte _0811141C - .align 2, 0 -_0811141C: - .4byte _0811144C - .4byte _08111488 - .4byte _08111496 - .4byte _081114B8 - .4byte _081114BE - .4byte _081114CA - .4byte _081114DE - .4byte _081114E4 - .4byte _081114EA - .4byte _081114F0 - .4byte _08111502 - .4byte _08111528 -_0811144C: - movs r1, 0x80 - lsls r1, 19 - movs r3, 0xC4 - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08111478 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - ldr r2, _0811147C @ =REG_BG0VOFS - ldr r3, _08111480 @ =0x0000fff8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _08111484 @ =REG_BG2VOFS - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _08111540 - .align 2, 0 -_08111478: .4byte REG_BG0HOFS -_0811147C: .4byte REG_BG0VOFS -_08111480: .4byte 0x0000fff8 -_08111484: .4byte REG_BG2VOFS -_08111488: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - b _08111540 -_08111496: - ldr r4, _081114B4 @ =gSharedMem + 0x6E8 - adds r0, r4, 0 - movs r1, 0 - bl InitRegionMap - movs r0, 0x88 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl StringFill - b _08111540 - .align 2, 0 -_081114B4: .4byte gSharedMem + 0x6E8 -_081114B8: - bl sub_8110824 - b _08111540 -_081114BE: - bl DrawAreaGlow - lsls r0, 24 - cmp r0, 0 - bne _08111550 - b _08111540 -_081114CA: - movs r0, 0x1 - movs r1, 0x1 - bl CreateRegionMapPlayerIcon - movs r1, 0x8 - negs r1, r1 - movs r0, 0 - bl sub_80FB2A4 - b _08111540 -_081114DE: - bl CreateAreaMarkerSprites - b _08111540 -_081114E4: - bl LoadAreaUnknownGraphics - b _08111540 -_081114EA: - bl CreateAreaUnknownSprites - b _08111540 -_081114F0: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08111540 -_08111502: - ldr r1, _0811151C @ =REG_BLDCNT - ldr r2, _08111520 @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8111084 - movs r1, 0x80 - lsls r1, 19 - ldr r3, _08111524 @ =0x00007741 - adds r0, r3, 0 - strh r0, [r1] - b _08111540 - .align 2, 0 -_0811151C: .4byte REG_BLDCNT -_08111520: .4byte 0x00003f41 -_08111524: .4byte 0x00007741 -_08111528: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldr r1, _0811153C @ =Task_PokedexAreaScreen_1 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] - b _08111550 - .align 2, 0 -_0811153C: .4byte Task_PokedexAreaScreen_1 -_08111540: - ldr r0, _08111558 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08111550: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111558: .4byte gTasks - thumb_func_end Task_PokedexAreaScreen_0 - - thumb_func_start Task_PokedexAreaScreen_1 -Task_PokedexAreaScreen_1: @ 811155C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8111110 - ldr r1, _08111584 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x1 - beq _081115B4 - cmp r1, 0x1 - bgt _08111588 - cmp r1, 0 - beq _0811159E - b _08111590 - .align 2, 0 -_08111584: .4byte gTasks -_08111588: - cmp r1, 0x2 - beq _081115F8 - cmp r1, 0x3 - beq _0811160A -_08111590: - ldr r0, _081115AC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] -_0811159E: - ldr r0, _081115B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - b _0811163C - .align 2, 0 -_081115AC: .4byte gTasks -_081115B0: .4byte gPaletteFade -_081115B4: - ldr r0, _081115CC @ =gMain - ldrh r2, [r0, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _081115D0 - strh r1, [r5, 0xA] - movs r0, 0x3 - bl PlaySE - b _0811163C - .align 2, 0 -_081115CC: .4byte gMain -_081115D0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _081115EA - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0811164C - ldr r0, _081115F4 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0811164C -_081115EA: - strh r3, [r5, 0xA] - movs r0, 0x6D - bl PlaySE - b _0811163C - .align 2, 0 -_081115F4: .4byte gSaveBlock2 -_081115F8: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0811163C -_0811160A: - ldr r0, _08111630 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - bl DestroyAreaSprites - ldr r0, _08111634 @ =gSharedMem - ldr r1, _08111638 @ =0x000006e4 - adds r0, r1 - ldr r1, [r0] - ldrh r0, [r5, 0xA] - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask - b _0811164C - .align 2, 0 -_08111630: .4byte gPaletteFade -_08111634: .4byte gSharedMem -_08111638: .4byte 0x000006e4 -_0811163C: - ldr r0, _08111654 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0811164C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111654: .4byte gTasks - thumb_func_end Task_PokedexAreaScreen_1 - thumb_func_start CreateAreaMarkerSprites CreateAreaMarkerSprites: @ 8111658 push {r4-r7,lr} diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index d5ca06395..6e16e4e5c 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -3,6 +3,8 @@ #include "global.h" #include "constants/species.h" #include "constants/maps.h" +#include "constants/songs.h" +#include "sound.h" #include "ewram.h" #include "main.h" #include "palette.h" @@ -47,7 +49,8 @@ struct PokedexAreaScreenEwramStruct u8 unk061F; u16 unk0620[0x20]; struct Sprite * unk0660[0x20]; - u8 filler_06E0[8]; + u8 filler_06E0[4]; + u8 * unk06E4; struct RegionMap unk06E8; u8 unk0F68[16]; u8 filler_0F78[0x3C]; @@ -1186,3 +1189,117 @@ void sub_8111360(void) break; } } + +void Task_PokedexAreaScreen_0(u8 taskId); +void Task_PokedexAreaScreen_1(u8 taskId); +void CreateAreaMarkerSprites(void); +void LoadAreaUnknownGraphics(void); +void CreateAreaUnknownSprites(void); +void DestroyAreaSprites(void); + +void ShowPokedexAreaScreen(u16 species, u8 * a1) +{ + u8 taskId; + gPokedexAreaScreenPtr->unk000E = species; + gPokedexAreaScreenPtr->unk06E4 = a1; + a1[0] = 0; + taskId = CreateTask(Task_PokedexAreaScreen_0, 0); + gTasks[taskId].data[0] = 0; +} + +void Task_PokedexAreaScreen_0(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG1_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + REG_BG0HOFS = 0; + REG_BG0VOFS = -8; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + break; + case 1: + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + break; + case 2: + InitRegionMap(&gPokedexAreaScreenPtr->unk06E8, FALSE); + StringFill(gPokedexAreaScreenPtr->unk0F68, CHAR_SPACE, 16); + break; + case 3: + sub_8110824(); + break; + case 4: + if (DrawAreaGlow()) + return; + break; + case 5: + CreateRegionMapPlayerIcon(1, 1); + sub_80FB2A4(0, -8); + break; + case 6: + CreateAreaMarkerSprites(); + break; + case 7: + LoadAreaUnknownGraphics(); + break; + case 8: + CreateAreaUnknownSprites(); + break; + case 9: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, 0); + break; + case 10: + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + sub_8111084(); + REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + break; + case 11: + gTasks[taskId].func = Task_PokedexAreaScreen_1; + gTasks[taskId].data[0] = 0; + return; + } + gTasks[taskId].data[0]++; +} + +void Task_PokedexAreaScreen_1(u8 taskId) +{ + sub_8111110(); + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + case 0: + if (gPaletteFade.active) + return; + break; + case 1: + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[1] = 1; + PlaySE(SE_PC_OFF); + } + else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) + { + gTasks[taskId].data[1] = 2; + PlaySE(SE_Z_PAGE); + } + else + return; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); + break; + case 3: + if (gPaletteFade.active) + return; + DestroyAreaSprites(); + gPokedexAreaScreenPtr->unk06E4[0] = gTasks[taskId].data[1]; + DestroyTask(taskId); + return; + } + gTasks[taskId].data[0]++; +} -- cgit v1.2.3 From 3f34a0491d42c8e35a1d26bb34d59106d8a30660 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Apr 2018 00:47:22 -0400 Subject: through DestroyAreaSprites --- asm/pokedex_area_screen.s | 170 --------------------------------------------- data/pokedex_area_screen.s | 26 ------- include/region_map.h | 9 +++ src/pokedex_area_screen.c | 85 ++++++++++++++++++++++- src/region_map.c | 7 -- 5 files changed, 91 insertions(+), 206 deletions(-) diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index e74ecc074..a92075a1d 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,176 +5,6 @@ .text - thumb_func_start CreateAreaMarkerSprites -CreateAreaMarkerSprites: @ 8111658 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08111720 @ =gUnknown_083F858C - bl LoadSpriteSheet - ldr r0, _08111724 @ =gUnknown_083F8594 - bl LoadSpritePalette - movs r5, 0 - movs r1, 0 - ldr r0, _08111728 @ =gSharedMem - movs r3, 0x89 - lsls r3, 1 - adds r2, r0, r3 - ldrh r7, [r2] - cmp r5, r7 - bge _0811170C - adds r6, r0, 0 - mov r8, r2 -_08111680: - lsls r0, r1, 16 - asrs r4, r0, 16 - lsls r1, r4, 1 - movs r2, 0xC4 - lsls r2, 3 - adds r0, r6, r2 - adds r1, r0 - ldr r2, _0811172C @ =gRegionMapLocations - movs r3, 0 - ldrsh r0, [r1, r3] - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 3 - adds r1, 0x4 - ldrb r2, [r0, 0x1] - lsls r2, 19 - ldrb r3, [r0, 0x2] - subs r3, 0x1 - lsls r3, 2 - ldrb r0, [r0, 0x3] - subs r0, 0x1 - lsls r0, 2 - movs r7, 0xE0 - lsls r7, 13 - adds r2, r7 - asrs r2, 16 - adds r1, r3 - adds r2, r0 - ldr r0, _08111730 @ =gSpriteTemplate_83F85A4 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081116FC - ldr r0, _08111734 @ =gSprites - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r1, r5, 0 - lsls r0, r1, 16 - movs r3, 0x80 - lsls r3, 9 - adds r0, r3 - lsrs r5, r0, 16 - lsls r1, 16 - asrs r1, 14 - movs r7, 0xCC - lsls r7, 3 - adds r0, r6, r7 - adds r1, r0 - str r2, [r1] -_081116FC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - mov r2, r8 - ldrh r2, [r2] - cmp r0, r2 - blt _08111680 -_0811170C: - ldr r0, _08111728 @ =gSharedMem - movs r3, 0xDC - lsls r3, 3 - adds r0, r3 - strh r5, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111720: .4byte gUnknown_083F858C -_08111724: .4byte gUnknown_083F8594 -_08111728: .4byte gSharedMem -_0811172C: .4byte gRegionMapLocations -_08111730: .4byte gSpriteTemplate_83F85A4 -_08111734: .4byte gSprites - thumb_func_end CreateAreaMarkerSprites - - thumb_func_start DestroyAreaSprites -DestroyAreaSprites: @ 8111738 - push {r4-r6,lr} - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r0, 0x2 - bl FreeSpritePaletteByTag - movs r4, 0 - ldr r1, _081117A4 @ =gSharedMem - movs r2, 0xDC - lsls r2, 3 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r4, r2 - bcs _08111776 - adds r6, r1, 0 - adds r5, r0, 0 -_0811175A: - lsls r0, r4, 2 - movs r2, 0xCC - lsls r2, 3 - adds r1, r6, r2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r5] - cmp r4, r0 - bcc _0811175A -_08111776: - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x3 - bl FreeSpritePaletteByTag - movs r4, 0 - ldr r5, _081117A8 @ =gSharedMem + 0xFA8 -_08111786: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, 0 - beq _08111794 - bl DestroySprite -_08111794: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _08111786 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081117A4: .4byte gSharedMem -_081117A8: .4byte gSharedMem + 0xFA8 - thumb_func_end DestroyAreaSprites - thumb_func_start LoadAreaUnknownGraphics LoadAreaUnknownGraphics: @ 81117AC push {lr} diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s index 0742ef5a4..c2fc67ac6 100644 --- a/data/pokedex_area_screen.s +++ b/data/pokedex_area_screen.s @@ -3,32 +3,6 @@ .section .rodata - .align 2 -gUnknown_083F858C:: @ 83F858C - obj_tiles AreaMarkerTiles, 0x80, 2 - - .align 2 -gUnknown_083F8594:: @ 83F8594 - obj_pal AreaMarkerPalette, 2 - - .align 2 -gOamData_83F859C:: @ 83F859C - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteTemplate_83F85A4:: @ 83F85A4 - spr_template 2, 2, gOamData_83F859C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -AreaMarkerPalette: - .incbin "graphics/pokedex/area_marker.gbapal" - - .align 2 -AreaMarkerTiles: - .incbin "graphics/pokedex/area_marker.4bpp" - .align 2 gUnknown_083F865C:: @ 83F865C obj_pal gAreaUnknownPalette, 3 diff --git a/include/region_map.h b/include/region_map.h index c84de209b..2977987ef 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -1,6 +1,13 @@ #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]; @@ -72,4 +79,6 @@ void CB2_InitFlyRegionMap(void); void debug_sub_8110F28(void); u16 GetRegionMapSectionAt_(u16 x, u16 y); +extern const struct RegionMapLocation gRegionMapLocations[]; + #endif // GUARD_REGION_MAP_H diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 6e16e4e5c..af5c5dd54 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -49,11 +49,12 @@ struct PokedexAreaScreenEwramStruct u8 unk061F; u16 unk0620[0x20]; struct Sprite * unk0660[0x20]; - u8 filler_06E0[4]; + u16 unk06E0; u8 * unk06E4; struct RegionMap unk06E8; u8 unk0F68[16]; - u8 filler_0F78[0x3C]; + u8 filler_0F78[0x30]; + struct Sprite * unk0FA8[3]; u8 unk0FB4[0x600]; }; @@ -1193,9 +1194,9 @@ void sub_8111360(void) void Task_PokedexAreaScreen_0(u8 taskId); void Task_PokedexAreaScreen_1(u8 taskId); void CreateAreaMarkerSprites(void); +void DestroyAreaSprites(void); void LoadAreaUnknownGraphics(void); void CreateAreaUnknownSprites(void); -void DestroyAreaSprites(void); void ShowPokedexAreaScreen(u16 species, u8 * a1) { @@ -1303,3 +1304,81 @@ void Task_PokedexAreaScreen_1(u8 taskId) } gTasks[taskId].data[0]++; } + +const u16 AreaMarkerPalette[]; +const u8 AreaMarkerTiles[]; + +const struct SpriteSheet gUnknown_083F858C = { + AreaMarkerTiles, 0x80, 2 +}; + +const struct SpritePalette gUnknown_083F8594 = { + AreaMarkerPalette, 2 +}; + +const struct OamData gOamData_83F859C = { + .size = 1, + .priority = 1 +}; + +const struct SpriteTemplate gSpriteTemplate_83F85A4 = { + 2, + 2, + &gOamData_83F859C, + gDummySpriteAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +const u16 AreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal"); +const u8 AreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bpp"); + +void CreateAreaMarkerSprites(void) +{ + s16 i; + u8 spriteId; + s16 x; + s16 y; + s16 cnt; + s16 mapSecId; + + LoadSpriteSheet(&gUnknown_083F858C); + LoadSpritePalette(&gUnknown_083F8594); + cnt = 0; + for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) + { + mapSecId = gPokedexAreaScreenPtr->unk0620[i]; + x = 8 * (gRegionMapLocations[mapSecId].x + 1) + 4; + y = 8 * (gRegionMapLocations[mapSecId].y) + 28; + x += 4 * (gRegionMapLocations[mapSecId].width - 1); + y += 4 * (gRegionMapLocations[mapSecId].height - 1); + spriteId = CreateSprite(&gSpriteTemplate_83F85A4, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].invisible = TRUE; + gPokedexAreaScreenPtr->unk0660[cnt++] = gSprites + spriteId; + } + } + gPokedexAreaScreenPtr->unk06E0 = cnt; +} + +void DestroyAreaSprites(void) +{ + u16 i; + FreeSpriteTilesByTag(2); + FreeSpritePaletteByTag(2); + for (i = 0; i < gPokedexAreaScreenPtr->unk06E0; i++) + { + DestroySprite(gPokedexAreaScreenPtr->unk0660[i]); + } + FreeSpriteTilesByTag(3); + FreeSpritePaletteByTag(3); + for (i = 0; i < 3; i++) + { + if (gPokedexAreaScreenPtr->unk0FA8[i] != NULL) + { + DestroySprite(gPokedexAreaScreenPtr->unk0FA8[i]); + } + } +} diff --git a/src/region_map.c b/src/region_map.c index b4ed2c558..ab7c5c558 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -149,13 +149,6 @@ static const u8 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U8("graphics/pokenav/region #include "data/region_map_names_de.h" #endif -struct RegionMapLocation -{ - u8 x, y; - u8 width, height; - const u8 *regionMapSectionId; -}; - const struct RegionMapLocation gRegionMapLocations[] = { { 4, 11, 1, 1, gMapName_LittlerootTown}, -- cgit v1.2.3 From bedf072c371990c991203d7ffca6e4c0941a891f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Apr 2018 08:21:39 -0400 Subject: Finish decompilation of pokedex_area_screen --- asm/pokedex_area_screen.s | 124 --------------------------------------------- data/pokedex_area_screen.s | 22 -------- include/graphics.h | 3 ++ ld_script.txt | 2 - src/pokedex_area_screen.c | 55 ++++++++++++++++++++ 5 files changed, 58 insertions(+), 148 deletions(-) delete mode 100644 asm/pokedex_area_screen.s delete mode 100644 data/pokedex_area_screen.s diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s deleted file mode 100644 index a92075a1d..000000000 --- a/asm/pokedex_area_screen.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start LoadAreaUnknownGraphics -LoadAreaUnknownGraphics: @ 81117AC - push {lr} - sub sp, 0x8 - ldr r0, _081117D4 @ =gUnknown_083F8664 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _081117D8 @ =gAreaUnknownTiles - ldr r1, _081117DC @ =gSharedMem + 0xFB4 - bl LZ77UnCompWram - mov r0, sp - bl LoadSpriteSheet - ldr r0, _081117E0 @ =gUnknown_083F865C - bl LoadSpritePalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_081117D4: .4byte gUnknown_083F8664 -_081117D8: .4byte gAreaUnknownTiles -_081117DC: .4byte gSharedMem + 0xFB4 -_081117E0: .4byte gUnknown_083F865C - thumb_func_end LoadAreaUnknownGraphics - - thumb_func_start CreateAreaUnknownSprites -CreateAreaUnknownSprites: @ 81117E4 - push {r4-r7,lr} - ldr r1, _08111810 @ =gSharedMem - movs r2, 0x88 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _08111818 - movs r4, 0 - ldr r7, _08111814 @ =0x00000fa8 - adds r2, r1, r7 - movs r1, 0 -_081117FC: - lsls r0, r4, 2 - adds r0, r2 - str r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _081117FC - b _0811188E - .align 2, 0 -_08111810: .4byte gSharedMem -_08111814: .4byte 0x00000fa8 -_08111818: - movs r4, 0 - ldr r6, _08111868 @ =gSprites - ldr r0, _0811186C @ =0x00000fa8 - adds r5, r1, r0 -_08111820: - lsls r1, r4, 21 - movs r2, 0xA0 - lsls r2, 16 - adds r1, r2 - asrs r1, 16 - ldr r0, _08111870 @ =gSpriteTemplate_83F8674 - movs r2, 0x8C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0811187C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r0, r3, 22 - lsrs r0, 22 - lsls r1, r4, 4 - adds r0, r1 - ldr r7, _08111874 @ =0x000003ff - adds r1, r7, 0 - ands r0, r1 - ldr r7, _08111878 @ =0xfffffc00 - adds r1, r7, 0 - ands r3, r1 - orrs r3, r0 - strh r3, [r2, 0x4] - lsls r0, r4, 2 - adds r0, r5 - str r2, [r0] - b _08111884 - .align 2, 0 -_08111868: .4byte gSprites -_0811186C: .4byte 0x00000fa8 -_08111870: .4byte gSpriteTemplate_83F8674 -_08111874: .4byte 0x000003ff -_08111878: .4byte 0xfffffc00 -_0811187C: - lsls r0, r4, 2 - adds r0, r5 - movs r1, 0 - str r1, [r0] -_08111884: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _08111820 -_0811188E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateAreaUnknownSprites - - .align 2, 0 @ Don't pad with nop. diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s deleted file mode 100644 index c2fc67ac6..000000000 --- a/data/pokedex_area_screen.s +++ /dev/null @@ -1,22 +0,0 @@ - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_083F865C:: @ 83F865C - obj_pal gAreaUnknownPalette, 3 - - .align 2 -gUnknown_083F8664:: @ 83F8664 - obj_tiles gSharedMem + 0xFB4, 0x600, 3 - - .align 2 -gOamData_83F866C:: @ 83F866C - .2byte 0x0000 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gSpriteTemplate_83F8674:: @ 83F8674 - spr_template 3, 3, gOamData_83F866C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/include/graphics.h b/include/graphics.h index d70aefac6..8e95d100d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3415,4 +3415,7 @@ extern const u16 gUnknown_08D1212C[]; extern const u16 gUnknown_08D1214C[]; extern const u8 Tiles_D129AC[]; +extern const u8 gAreaUnknownTiles[]; +extern const u16 gAreaUnknownPalette[]; + #endif // GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index 047638fd7..0b3622a1b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -341,7 +341,6 @@ SECTIONS { src/field_specials.o(.text); src/battle/battle_records.o(.text); src/pokedex_area_screen.o(.text); - asm/pokedex_area_screen.o(.text); src/evolution_scene.o(.text); src/roulette.o(.text); asm/pokedex_cry_screen.o(.text); @@ -634,7 +633,6 @@ SECTIONS { src/field_specials.o(.rodata); src/battle/battle_records.o(.rodata); src/pokedex_area_screen.o(.rodata); - data/pokedex_area_screen.o(.rodata); src/evolution_scene.o(.rodata); data/roulette.o(.rodata); data/pokedex_cry_screen.o(.rodata); diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index af5c5dd54..2f2d20942 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -19,6 +19,7 @@ #include "overworld.h" #include "event_data.h" #include "trig.h" +#include "graphics.h" // Static type declarations @@ -1382,3 +1383,57 @@ void DestroyAreaSprites(void) } } } + +const struct SpritePalette gUnknown_083F865C = {gAreaUnknownPalette, 3}; + +void LoadAreaUnknownGraphics(void) +{ + struct SpriteSheet spriteSheet = {gPokedexAreaScreenPtr->unk0FB4, 0x600, 3}; + + LZ77UnCompWram(gAreaUnknownTiles, gPokedexAreaScreenPtr->unk0FB4); + LoadSpriteSheet(&spriteSheet); + LoadSpritePalette(&gUnknown_083F865C); +} + +const struct OamData gOamData_83F866C = { + .size = 2, + .priority = 1 +}; + +const struct SpriteTemplate gSpriteTemplate_83F8674 = { + 3, + 3, + &gOamData_83F866C, + gDummySpriteAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +void CreateAreaUnknownSprites(void) +{ + u16 i; + u8 spriteId; + + if (gPokedexAreaScreenPtr->unk0110 != 0 || gPokedexAreaScreenPtr->unk0112 != 0) + { + for (i = 0; i < 3; i++) + { + gPokedexAreaScreenPtr->unk0FA8[i] = NULL; + } + } + else + { + for (i = 0; i < 3; i++) + { + spriteId = CreateSprite(&gSpriteTemplate_83F8674, i * 32 + 0xa0, 0x8c, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.tileNum += i * 16; + gPokedexAreaScreenPtr->unk0FA8[i] = gSprites + spriteId; + } + else + gPokedexAreaScreenPtr->unk0FA8[i] = NULL; + } + } +} -- cgit v1.2.3 From 6f0262af9cfa6273c1c5343709e1f72b4743eb6b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Apr 2018 20:04:32 -0400 Subject: Renaming in pokedex_area_screen.c; resolve #603 --- include/constants/region_map_sections.h | 97 ++++++ include/region_map.h | 2 +- include/region_map_sections.h | 97 ------ src/data/region_map_layout.h | 44 +-- src/landmark.c | 2 +- src/pokedex_area_screen.c | 505 ++++++++++++++++---------------- src/region_map.c | 210 ++++--------- src/tv.c | 2 +- 8 files changed, 434 insertions(+), 525 deletions(-) create mode 100644 include/constants/region_map_sections.h delete mode 100644 include/region_map_sections.h diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h new file mode 100644 index 000000000..afe8674a1 --- /dev/null +++ b/include/constants/region_map_sections.h @@ -0,0 +1,97 @@ +#ifndef GUARD_REGIONMAPSEC_H +#define GUARD_REGIONMAPSEC_H + +enum +{ + MAPSEC_LittlerootTown, // 0x00 + MAPSEC_OldaleTown, // 0x01 + MAPSEC_DewfordTown, // 0x02 + MAPSEC_LavaridgeTown, // 0x03 + MAPSEC_FallarborTown, // 0x04 + MAPSEC_VerdanturfTown, // 0x05 + MAPSEC_PacifidlogTown, // 0x06 + MAPSEC_PetalburgCity, // 0x07 + MAPSEC_SlateportCity, // 0x08 + MAPSEC_MauvilleCity, // 0x09 + MAPSEC_RustboroCity, // 0x0A + MAPSEC_FortreeCity, // 0x0B + MAPSEC_LilycoveCity, // 0x0C + MAPSEC_MossdeepCity, // 0x0D + MAPSEC_SootopolisCity, // 0x0E + MAPSEC_EverGrandeCity, // 0x0F + MAPSEC_Route101, // 0x10 + MAPSEC_Route102, // 0x11 + MAPSEC_Route103, // 0x12 + MAPSEC_Route104, // 0x13 + MAPSEC_Route105, // 0x14 + MAPSEC_Route106, // 0x15 + MAPSEC_Route107, // 0x16 + MAPSEC_Route108, // 0x17 + MAPSEC_Route109, // 0x18 + MAPSEC_Route110, // 0x19 + MAPSEC_Route111, // 0x1A + MAPSEC_Route112, // 0x1B + MAPSEC_Route113, // 0x1C + MAPSEC_Route114, // 0x1D + MAPSEC_Route115, // 0x1E + MAPSEC_Route116, // 0x1F + MAPSEC_Route117, // 0x20 + MAPSEC_Route118, // 0x21 + MAPSEC_Route119, // 0x22 + MAPSEC_Route120, // 0x23 + MAPSEC_Route121, // 0x24 + MAPSEC_Route122, // 0x25 + MAPSEC_Route123, // 0x26 + MAPSEC_Route124, // 0x27 + MAPSEC_Route125, // 0x28 + MAPSEC_Route126, // 0x29 + MAPSEC_Route127, // 0x2A + MAPSEC_Route128, // 0x2B + MAPSEC_Route129, // 0x2C + MAPSEC_Route130, // 0x2D + MAPSEC_Route131, // 0x2E + MAPSEC_Route132, // 0x2F + MAPSEC_Route133, // 0x30 + MAPSEC_Route134, // 0x31 + MAPSEC_Underwater124, // 0x32 + MAPSEC_Underwater125, // 0x33 + MAPSEC_Underwater126, // 0x34 + MAPSEC_Underwater127, // 0x35 + MAPSEC_UnderwaterSootopolis, // 0x36 + MAPSEC_GraniteCave, // 0x37 + MAPSEC_MtChimney, // 0x38 + MAPSEC_SafariZone, // 0x39 + MAPSEC_BattleTower, // 0x3A + MAPSEC_PetalburgWoods, // 0x3B + MAPSEC_RusturfTunnel, // 0x3C + MAPSEC_AbandonedShip, // 0x3D + MAPSEC_NewMauville, // 0x3E + MAPSEC_MeteorFalls, // 0x3F + MAPSEC_MeteorFalls2, // 0x40 + MAPSEC_MtPyre, // 0x41 + MAPSEC_EvilTeamHideout, // 0x42 + MAPSEC_ShoalCave, // 0x43 + MAPSEC_SeafloorCavern, // 0x44 + MAPSEC_Underwater128, // 0x45 + MAPSEC_VictoryRoad, // 0x46 + MAPSEC_MirageIsland, // 0x47 + MAPSEC_CaveOfOrigin, // 0x48 + MAPSEC_SouthernIsland, // 0x49 + MAPSEC_FieryPath, // 0x4A + MAPSEC_FieryPath2, // 0x4B + MAPSEC_JaggedPass, // 0x4C + MAPSEC_JaggedPass2, // 0x4D + MAPSEC_SealedChamber, // 0x4E + MAPSEC_UnderwaterSealedChamber, // 0x4F + MAPSEC_ScorchedSlab, // 0x50 + MAPSEC_IslandCave, // 0x51 + MAPSEC_DesertRuins, // 0x52 + MAPSEC_AncientTomb, // 0x53 + MAPSEC_InsideOfTruck, // 0x54 + MAPSEC_SkyPillar, // 0x55 + MAPSEC_SecretBase, // 0x56 + MAPSEC_Dynamic, // 0x57 + MAPSEC_Nothing // 0x58 +}; + +#endif // GUARD_REGIONMAPSEC_H diff --git a/include/region_map.h b/include/region_map.h index 2977987ef..55258e961 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -68,7 +68,7 @@ u8 sub_80FAB60(void); void sub_80FAEC4(void); u8 sub_80FAFC0(void); void UpdateRegionMapVideoRegs(void); -void sub_80FB2A4(s16, s16); +void RegionMapDefaultZoomOffsetPlayerSprite(s16, s16); u16 sub_80FBA04(u16 mapSectionId); void CreateRegionMapCursor(u16, u16); void CreateRegionMapPlayerIcon(u16, u16); diff --git a/include/region_map_sections.h b/include/region_map_sections.h deleted file mode 100644 index e606c2a5f..000000000 --- a/include/region_map_sections.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef GUARD_REGIONMAPSEC_H -#define GUARD_REGIONMAPSEC_H - -enum -{ - MAPSEC_LittlerootTown, // 0x00 - MAPSEC_OldaleTown, // 0x01 - MAPSEC_DewfordTown, // 0x02 - MAPSEC_LavaridgeTown, // 0x03 - MAPSEC_FallarborTown, // 0x04 - MAPSEC_VerdanturfTown, // 0x05 - MAPSEC_PacifidlogTown, // 0x06 - MAPSEC_PetalburgCity, // 0x07 - MAPSEC_SlateportCity, // 0x08 - MAPSEC_MauvilleCity, // 0x09 - MAPSEC_RustboroCity, // 0x0A - MAPSEC_FortreeCity, // 0x0B - MAPSEC_LilycoveCity, // 0x0C - MAPSEC_MossdeepCity, // 0x0D - MAPSEC_SootopolisCity, // 0x0E - MAPSEC_EverGrandeCity, // 0x0F - MAPSEC_Route101, // 0x10 - MAPSEC_Route102, // 0x11 - MAPSEC_Route103, // 0x12 - MAPSEC_Route104, // 0x13 - MAPSEC_Route105, // 0x14 - MAPSEC_Route106, // 0x15 - MAPSEC_Route107, // 0x16 - MAPSEC_Route108, // 0x17 - MAPSEC_Route109, // 0x18 - MAPSEC_Route110, // 0x19 - MAPSEC_Route111, // 0x1A - MAPSEC_Route112, // 0x1B - MAPSEC_Route113, // 0x1C - MAPSEC_Route114, // 0x1D - MAPSEC_Route115, // 0x1E - MAPSEC_Route116, // 0x1F - MAPSEC_Route117, // 0x20 - MAPSEC_Route118, // 0x21 - MAPSEC_Route119, // 0x22 - MAPSEC_Route120, // 0x23 - MAPSEC_Route121, // 0x24 - MAPSEC_Route122, // 0x25 - MAPSEC_Route123, // 0x26 - MAPSEC_Route124, // 0x27 - MAPSEC_Route125, // 0x28 - MAPSEC_Route126, // 0x29 - MAPSEC_Route127, // 0x2A - MAPSEC_Route128, // 0x2B - MAPSEC_Route129, // 0x2C - MAPSEC_Route130, // 0x2D - MAPSEC_Route131, // 0x2E - MAPSEC_Route132, // 0x2F - MAPSEC_Route133, // 0x30 - MAPSEC_Route134, // 0x31 - MAPSEC_Underwater124, // 0x32 - MAPSEC_Underwater125, // 0x33 - MAPSEC_Underwater126, // 0x34 - MAPSEC_Underwater127, // 0x35 - MAPSEC_UnderwaterSootopolis, // 0x36 - MAPSEC_GraniteCave, // 0x37 - MAPSEC_MtChimney, // 0x38 - MAPSEC_SafariZone, // 0x39 - MAPSEC_BattleFrontier, // 0x3A - MAPSEC_PetalburgWoods, // 0x3B - MAPSEC_RusturfTunnel, // 0x3C - MAPSEC_AbandonedShip, // 0x3D - MAPSEC_NewMauville, // 0x3E - MAPSEC_MeteorFalls, // 0x3F - MAPSEC_MeteorFalls2, // 0x40 - MAPSEC_MtPyre, // 0x41 - MAPSEC_AquaHideoutOld, // 0x42 - MAPSEC_ShoalCave, // 0x43 - MAPSEC_SeafloorCavern, // 0x44 - MAPSEC_Underwater128, // 0x45 - MAPSEC_VictoryRoad, // 0x46 - MAPSEC_MirageIsland, // 0x47 - MAPSEC_CaveOfOrigin, // 0x48 - MAPSEC_SouthernIsland, // 0x49 - MAPSEC_FieryPath, // 0x4A - MAPSEC_FieryPath2, // 0x4B - MAPSEC_JaggedPass, // 0x4C - MAPSEC_JaggedPass2, // 0x4D - MAPSEC_SealedChamber, // 0x4E - MAPSEC_UnderwaterSealedChamber, // 0x4F - MAPSEC_ScorchedSlab, // 0x50 - MAPSEC_IslandCave, // 0x51 - MAPSEC_DesertRuins, // 0x52 - MAPSEC_AncientTomb, // 0x53 - MAPSEC_InsideOfTruck, // 0x54 - MAPSEC_SkyPillar, // 0x55 - MAPSEC_SecretBase, // 0x56 - MAPSEC_Dynamic, // 0x57 - MAPSEC_Nothing // 0x58 -}; - -#endif // GUARD_REGIONMAPSEC_H diff --git a/src/data/region_map_layout.h b/src/data/region_map_layout.h index ca33ef37a..06e308593 100644 --- a/src/data/region_map_layout.h +++ b/src/data/region_map_layout.h @@ -1,26 +1,26 @@ // Abbreviated definitions to make the map layout more visual -#define R(routeNum) MAPSEC_ROUTE_##routeNum -#define LITT_T MAPSEC_LITTLEROOT_TOWN -#define OLDA_T MAPSEC_OLDALE_TOWN -#define DEWF_T MAPSEC_DEWFORD_TOWN -#define LAVA_T MAPSEC_LAVARIDGE_TOWN -#define FALL_T MAPSEC_FALLARBOR_TOWN -#define VERD_T MAPSEC_VERDANTURF_TOWN -#define PACI_T MAPSEC_PACIFIDLOG_TOWN -#define PETA_C MAPSEC_PETALBURG_CITY -#define SLAT_C MAPSEC_SLATEPORT_CITY -#define MAUV_C MAPSEC_MAUVILLE_CITY -#define RUST_C MAPSEC_RUSTBORO_CITY -#define FORT_C MAPSEC_FORTREE_CITY -#define LILY_C MAPSEC_LILYCOVE_CITY -#define MOSS_C MAPSEC_MOSSDEEP_CITY -#define SOOT_C MAPSEC_SOOTOPOLIS_CITY -#define EVER_C MAPSEC_EVER_GRANDE_CITY -#define MTCHIM MAPSEC_MT_CHIMNEY -#define SAFARI MAPSEC_SAFARI_ZONE -#define BTLTWR MAPSEC_BATTLE_TOWER -#define S_ISLD MAPSEC_SOUTHERN_ISLAND -#define ______ MAPSEC_NONE +#define R(routeNum) MAPSEC_Route##routeNum +#define LITT_T MAPSEC_LittlerootTown +#define OLDA_T MAPSEC_OldaleTown +#define DEWF_T MAPSEC_DewfordTown +#define LAVA_T MAPSEC_LavaridgeTown +#define FALL_T MAPSEC_FallarborTown +#define VERD_T MAPSEC_VerdanturfTown +#define PACI_T MAPSEC_PacifidlogTown +#define PETA_C MAPSEC_PetalburgCity +#define SLAT_C MAPSEC_SlateportCity +#define MAUV_C MAPSEC_MauvilleCity +#define RUST_C MAPSEC_RustboroCity +#define FORT_C MAPSEC_FortreeCity +#define LILY_C MAPSEC_LilycoveCity +#define MOSS_C MAPSEC_MossdeepCity +#define SOOT_C MAPSEC_SootopolisCity +#define EVER_C MAPSEC_EverGrandeCity +#define MTCHIM MAPSEC_MtChimney +#define SAFARI MAPSEC_SafariZone +#define BTLTWR MAPSEC_BattleTower +#define S_ISLD MAPSEC_SouthernIsland +#define ______ MAPSEC_Nothing static const u8 sRegionMapLayout[] = { diff --git a/src/landmark.c b/src/landmark.c index 476821ec6..4fd9595fe 100644 --- a/src/landmark.c +++ b/src/landmark.c @@ -1,7 +1,7 @@ #include "global.h" #include "landmark.h" #include "event_data.h" -#include "region_map_sections.h" +#include "constants/region_map_sections.h" struct Landmark { diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 2f2d20942..1ca9a67e3 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -4,6 +4,7 @@ #include "constants/species.h" #include "constants/maps.h" #include "constants/songs.h" +#include "constants/region_map_sections.h" #include "sound.h" #include "ewram.h" #include "main.h" @@ -11,7 +12,6 @@ #include "task.h" #include "sprite.h" #include "region_map.h" -#include "region_map_sections.h" #include "string_util.h" #include "text.h" #include "wild_encounter.h" @@ -32,31 +32,30 @@ struct PokedexAreaScreenSubstruct0010 struct PokedexAreaScreenEwramStruct { - void (*unk0000)(void); - MainCallback unk0004; - MainCallback unk0008; - u16 unk000C; - u16 unk000E; - struct PokedexAreaScreenSubstruct0010 unk0010[0x40]; - u16 unk0110; - u16 unk0112; - u16 unk0114; - u16 unk0116[0x280]; - u16 unk0616; - u16 unk0618; - u16 unk061A; - u16 unk061C; - u8 unk061E; - u8 unk061F; - u16 unk0620[0x20]; - struct Sprite * unk0660[0x20]; - u16 unk06E0; - u8 * unk06E4; - struct RegionMap unk06E8; - u8 unk0F68[16]; - u8 filler_0F78[0x30]; - struct Sprite * unk0FA8[3]; - u8 unk0FB4[0x600]; + void (*callback)(void); + MainCallback prev; + MainCallback next; + u16 state; + u16 species; + struct PokedexAreaScreenSubstruct0010 overworldAreasWithMons[0x40]; + u16 numOverworldAreas; + u16 numSpecialAreas; + u16 drawAreaGlowState; + u16 areaGlowTilemap[0x280]; + u16 areaShadeOrMarkerFrameCounter; + u16 areaShadeFrameCounter; + u16 areaShadeBldArgLo; + u16 areaShadeBldArgHi; + u8 whichMarkersFlashing; + u8 specialMarkerCycleCounter; + u16 specialAreaRegionMapSectionIds[0x20]; + struct Sprite * areaMarkerSprites[0x20]; + u16 numAreaMarkerSprites; + u8 * errno; + struct RegionMap regionMap; + u8 charBuffer[0x40]; + struct Sprite * areaUnknownSprites[3]; + u8 areaUnknownGraphicsBuffer[0x600]; }; #define ePokedexAreaScreen (*(struct PokedexAreaScreenEwramStruct *)gSharedMem) @@ -65,57 +64,57 @@ struct PokedexAreaScreenEwramStruct // Static ROM declarations -void CB2_UnusedPokedexAreaScreen(void); -void sub_81107DC(void); -void sub_81107F0(void); -void sub_8110814(void (*func)(void)); -void sub_8110824(void); -bool8 DrawAreaGlow(void); -void FindMapsWithMon(u16 mon); -void SetAreaHasMon(u16 mapGroup, u16 mapNum); -void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum); -bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon); -bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size); -void BuildAreaGlowTilemap(void); -void sub_8111084(void); -void sub_8111110(void); -void sub_8111288(void); -void sub_81112BC(void); -void sub_8111314(void); -void sub_8111360(void); +static void CB2_UnusedPokedexAreaScreen(void); +static void VBlankCB_AreaScren(void); +static void MainCB_AreaScren(void); +static void SetCallback(void (*func)(void)); +static void ResetDrawAreaGlowState(void); +static bool8 DrawAreaGlow(void); +static void FindMapsWithMon(u16 mon); +static void SetAreaHasMon(u16 mapGroup, u16 mapNum); +static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum); +static bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon); +static bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size); +static void BuildAreaGlowTilemap(void); +static void StartAreaGlow(void); +static void DoAreaGlow(void); +static void DebugCB_WaitFade(void); +static void DebugCB_WaitButton(void); +static void DebugCB_GoBack(void); +static void DebugCB_GoNext(void); // .rodata -const u16 gUnknown_083F8418[] = INCBIN_U16("graphics/pokedex/area_glow.gbapal"); +static const u16 gUnknown_083F8418[] = INCBIN_U16("graphics/pokedex/area_glow.gbapal"); -const u8 gUnknown_083F8438[] = INCBIN_U8("graphics/pokedex/area_glow.4bpp.lz"); +static const u8 gUnknown_083F8438[] = INCBIN_U8("graphics/pokedex/area_glow.4bpp.lz"); -const u16 gUnknown_083F856C[] = {SPECIES_WYNAUT}; +static const u16 sWynautData[] = {SPECIES_WYNAUT}; -const u16 gUnknown_083F856E[][3] = { +static const u16 sFeebasData[][3] = { {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, {NUM_SPECIES} }; -const u16 gUnknown_083F857A[][2] = { +static const u16 sLandmarkData[][2] = { {MAPSEC_SkyPillar, FLAG_LANDMARK_SKY_PILLAR}, {MAPSEC_SeafloorCavern, FLAG_LANDMARK_SEAFLOOR_CAVERN}, {MAPSEC_Nothing} }; -struct PokedexAreaScreenEwramStruct *const gPokedexAreaScreenPtr = &ePokedexAreaScreen; +static struct PokedexAreaScreenEwramStruct *const gPokedexAreaScreenPtr = &ePokedexAreaScreen; // .text void UnusedPokedexAreaScreen(u16 a0, MainCallback a1, MainCallback a2) { - gPokedexAreaScreenPtr->unk0004 = a1; - gPokedexAreaScreenPtr->unk0008 = a2; - gPokedexAreaScreenPtr->unk000E = a0; + gPokedexAreaScreenPtr->prev = a1; + gPokedexAreaScreenPtr->next = a2; + gPokedexAreaScreenPtr->species = a0; SetMainCallback2(CB2_UnusedPokedexAreaScreen); } -void CB2_UnusedPokedexAreaScreen(void) +static void CB2_UnusedPokedexAreaScreen(void) { switch (gMain.state) { @@ -135,11 +134,11 @@ void CB2_UnusedPokedexAreaScreen(void) REG_BG3VOFS = 0; break; case 1: - InitRegionMap(&gPokedexAreaScreenPtr->unk06E8, FALSE); - StringFill(gPokedexAreaScreenPtr->unk0F68, CHAR_SPACE, 16); + InitRegionMap(&gPokedexAreaScreenPtr->regionMap, FALSE); + StringFill(gPokedexAreaScreenPtr->charBuffer, CHAR_SPACE, 16); break; case 2: - sub_8110824(); + ResetDrawAreaGlowState(); break; case 3: if (DrawAreaGlow()) @@ -147,58 +146,58 @@ void CB2_UnusedPokedexAreaScreen(void) break; case 4: CreateRegionMapPlayerIcon(1, 1); - sub_80FB2A4(0, -8); - SetVBlankCallback(sub_81107DC); + RegionMapDefaultZoomOffsetPlayerSprite(0, -8); + SetVBlankCallback(VBlankCB_AreaScren); break; case 5: BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, 0); break; case 6: REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; - sub_8111084(); + StartAreaGlow(); REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; break; case 7: - sub_8110814(sub_8111288); - SetMainCallback2(sub_81107F0); + SetCallback(DebugCB_WaitFade); + SetMainCallback2(MainCB_AreaScren); return; } gMain.state++; } -void sub_81107DC(void) +static void VBlankCB_AreaScren(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_81107F0(void) +static void MainCB_AreaScren(void) { - gPokedexAreaScreenPtr->unk0000(); - sub_8111110(); + gPokedexAreaScreenPtr->callback(); + DoAreaGlow(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); } -void sub_8110814(void (*func)(void)) +static void SetCallback(void (*func)(void)) { - gPokedexAreaScreenPtr->unk0000 = func; - gPokedexAreaScreenPtr->unk000C = 0; + gPokedexAreaScreenPtr->callback = func; + gPokedexAreaScreenPtr->state = 0; } -void sub_8110824(void) +static void ResetDrawAreaGlowState(void) { - gPokedexAreaScreenPtr->unk0114 = 0; + gPokedexAreaScreenPtr->drawAreaGlowState = 0; } bool8 DrawAreaGlow(void) { - switch (gPokedexAreaScreenPtr->unk0114) + switch (gPokedexAreaScreenPtr->drawAreaGlowState) { case 0: - FindMapsWithMon(gPokedexAreaScreenPtr->unk000E); + FindMapsWithMon(gPokedexAreaScreenPtr->species); break; case 1: BuildAreaGlowTilemap(); @@ -207,48 +206,48 @@ bool8 DrawAreaGlow(void) LZ77UnCompVram(gUnknown_083F8438, BG_CHAR_ADDR(3)); break; case 3: - DmaCopy16(3, gPokedexAreaScreenPtr->unk0116, BG_SCREEN_ADDR(30), 0x500); + DmaCopy16(3, gPokedexAreaScreenPtr->areaGlowTilemap, BG_SCREEN_ADDR(30), 0x500); break; case 4: LoadPalette(gUnknown_083F8418, 0, 32); break; case 5: REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT256x256; - gPokedexAreaScreenPtr->unk0114++; + gPokedexAreaScreenPtr->drawAreaGlowState++; return FALSE; default: return FALSE; } - gPokedexAreaScreenPtr->unk0114++; + gPokedexAreaScreenPtr->drawAreaGlowState++; return TRUE; } -void FindMapsWithMon(u16 mon) +static void FindMapsWithMon(u16 mon) { u16 i; struct Roamer *roamer; if (mon != ROAMER_SPECIES) { - gPokedexAreaScreenPtr->unk0110 = 0; - gPokedexAreaScreenPtr->unk0112 = 0; + gPokedexAreaScreenPtr->numOverworldAreas = 0; + gPokedexAreaScreenPtr->numSpecialAreas = 0; for (i = 0; i < 1; i++) { - if (gUnknown_083F856C[i] == mon) + if (sWynautData[i] == mon) return; } - for (i = 0; gUnknown_083F856E[i][0] != NUM_SPECIES; i++) + for (i = 0; sFeebasData[i][0] != NUM_SPECIES; i++) { - if (mon == gUnknown_083F856E[i][0]) + if (mon == sFeebasData[i][0]) { - switch (gUnknown_083F856E[i][1]) + switch (sFeebasData[i][1]) { case MAP_GROUP(PETALBURG_CITY): - SetAreaHasMon(gUnknown_083F856E[i][1], gUnknown_083F856E[i][2]); + SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; case MAP_GROUP(METEOR_FALLS_1F_1R): case MAP_GROUP(SAFARI_ZONE_NORTHWEST): - SetSpecialMapHasMon(gUnknown_083F856E[i][1], gUnknown_083F856E[i][2]); + SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; } } @@ -272,60 +271,60 @@ void FindMapsWithMon(u16 mon) } else { - gPokedexAreaScreenPtr->unk0112 = 0; + gPokedexAreaScreenPtr->numSpecialAreas = 0; roamer = &gSaveBlock1.roamer; if (roamer->active) { - GetRoamerLocation(&gPokedexAreaScreenPtr->unk0010[0].mapGroup, &gPokedexAreaScreenPtr->unk0010[0].mapNum); - gPokedexAreaScreenPtr->unk0010[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(gPokedexAreaScreenPtr->unk0010[0].mapGroup, gPokedexAreaScreenPtr->unk0010[0].mapNum)->regionMapSectionId; - gPokedexAreaScreenPtr->unk0110 = 1; + GetRoamerLocation(&gPokedexAreaScreenPtr->overworldAreasWithMons[0].mapGroup, &gPokedexAreaScreenPtr->overworldAreasWithMons[0].mapNum); + gPokedexAreaScreenPtr->overworldAreasWithMons[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(gPokedexAreaScreenPtr->overworldAreasWithMons[0].mapGroup, gPokedexAreaScreenPtr->overworldAreasWithMons[0].mapNum)->regionMapSectionId; + gPokedexAreaScreenPtr->numOverworldAreas = 1; } else - gPokedexAreaScreenPtr->unk0110 = 0; + gPokedexAreaScreenPtr->numOverworldAreas = 0; } } -void SetAreaHasMon(u16 mapGroup, u16 mapNum) +static void SetAreaHasMon(u16 mapGroup, u16 mapNum) { - if (gPokedexAreaScreenPtr->unk0110 < 0x40) + if (gPokedexAreaScreenPtr->numOverworldAreas < 0x40) { - gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].mapGroup = mapGroup; - gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].mapNum = mapNum; - gPokedexAreaScreenPtr->unk0010[gPokedexAreaScreenPtr->unk0110].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); - gPokedexAreaScreenPtr->unk0110++; + gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].mapGroup = mapGroup; + gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].mapNum = mapNum; + gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + gPokedexAreaScreenPtr->numOverworldAreas++; } } -void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) +static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) { const struct MapHeader *mapHeader; u16 i; - if (gPokedexAreaScreenPtr->unk0112 < 0x20) + if (gPokedexAreaScreenPtr->numSpecialAreas < 0x20) { mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); if (mapHeader->regionMapSectionId < MAPSEC_Nothing) { - for (i = 0; gUnknown_083F857A[i][0] != MAPSEC_Nothing; i++) + for (i = 0; sLandmarkData[i][0] != MAPSEC_Nothing; i++) { - if (mapHeader->regionMapSectionId == gUnknown_083F857A[i][0] && !FlagGet(gUnknown_083F857A[i][1])) + if (mapHeader->regionMapSectionId == sLandmarkData[i][0] && !FlagGet(sLandmarkData[i][1])) return; } - for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) + for (i = 0; i < gPokedexAreaScreenPtr->numSpecialAreas; i++) { - if (gPokedexAreaScreenPtr->unk0620[i] == mapHeader->regionMapSectionId) + if (gPokedexAreaScreenPtr->specialAreaRegionMapSectionIds[i] == mapHeader->regionMapSectionId) break; } - if (i == gPokedexAreaScreenPtr->unk0112) + if (i == gPokedexAreaScreenPtr->numSpecialAreas) { - gPokedexAreaScreenPtr->unk0620[i] = mapHeader->regionMapSectionId; - gPokedexAreaScreenPtr->unk0112++; + gPokedexAreaScreenPtr->specialAreaRegionMapSectionIds[i] = mapHeader->regionMapSectionId; + gPokedexAreaScreenPtr->numSpecialAreas++; } } } } -bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon) +static bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon) { if (MonListHasMon(header->landMonsInfo, mon, 12)) return TRUE; @@ -338,7 +337,7 @@ bool8 MapHasMon(const struct WildPokemonHeader *header, u16 mon) return FALSE; } -bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size) +static bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size) { u16 i; if (info != NULL) @@ -353,7 +352,7 @@ bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 mon, u16 size) } #ifdef NONMATCHING -void BuildAreaGlowTilemap(void) +static void BuildAreaGlowTilemap(void) { static EWRAM_DATA u16 gUnknown_02039260 = 0; static EWRAM_DATA u16 gUnknown_02039262 = 0; @@ -364,18 +363,18 @@ void BuildAreaGlowTilemap(void) u32 r3; for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] = 0; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] = 0; - for (gUnknown_02039260 = 0; gUnknown_02039260 < gPokedexAreaScreenPtr->unk0110; gUnknown_02039260++) + for (gUnknown_02039260 = 0; gUnknown_02039260 < gPokedexAreaScreenPtr->numOverworldAreas; gUnknown_02039260++) { gUnknown_02039266 = 0; for (gUnknown_02039264 = 0; gUnknown_02039264 < 20; gUnknown_02039264++) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == gPokedexAreaScreenPtr->unk0010[gUnknown_02039260].regionMapSectionId) + if (GetRegionMapSectionAt_(gUnknown_02039262, gUnknown_02039264) == gPokedexAreaScreenPtr->overworldAreasWithMons[gUnknown_02039260].regionMapSectionId) { - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266] = 0xFFFF; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266] = 0xFFFF; } gUnknown_02039266++; } @@ -387,24 +386,24 @@ void BuildAreaGlowTilemap(void) { for (gUnknown_02039262 = 0; gUnknown_02039262 < 32; gUnknown_02039262++) { - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039266] == 0xFFFF) + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266] == 0xFFFF) { - if (gUnknown_02039262 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 1] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 1] |= 0x02; - if (gUnknown_02039262 != 31 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 1] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 1] |= 0x01; - if (gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 32] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 32] |= 0x08; - if (gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 32] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 32] |= 0x04; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 33] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 33] |= 0x10; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 31] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 - 31] |= 0x40; - if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 31] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 31] |= 0x20; - if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 33] != 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039266 + 33] |= 0x80; + if (gUnknown_02039262 != 0 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 1] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 1] |= 0x02; + if (gUnknown_02039262 != 31 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 1] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 1] |= 0x01; + if (gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 32] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 32] |= 0x08; + if (gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 32] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 32] |= 0x04; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 33] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 33] |= 0x10; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 0 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 31] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 - 31] |= 0x40; + if (gUnknown_02039262 != 0 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 31] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 31] |= 0x20; + if (gUnknown_02039262 != 31 && gUnknown_02039264 != 19 && gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 33] != 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039266 + 33] |= 0x80; } gUnknown_02039266++; } @@ -412,36 +411,36 @@ void BuildAreaGlowTilemap(void) for (gUnknown_02039260 = 0; gUnknown_02039260 < 0x280; gUnknown_02039260++) // Register difference on induction: expected r3, got r1 { - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] == 0xFFFF) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] = 0x10; - else if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] != 0) + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] == 0xFFFF) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] = 0x10; + else if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] != 0) { - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x02) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFFCF; - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x01) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFF3F; - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x08) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFFAF; - if (gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x04) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0xFF5F; - gUnknown_02039268 = gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0x0F; - gUnknown_0203926A = gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] & 0xF0; + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0x02) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] &= 0xFFCF; + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0x01) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] &= 0xFF3F; + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0x08) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] &= 0xFFAF; + if (gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0x04) + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] &= 0xFF5F; + gUnknown_02039268 = gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0x0F; + gUnknown_0203926A = gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] & 0xF0; if (gUnknown_0203926A) { - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] &= 0x0F; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] &= 0x0F; switch (gUnknown_02039268) { case 0: if (gUnknown_0203926A != 0) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x10; break; case 2: if (gUnknown_0203926A != 0) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += (gUnknown_0203926A >> 4) + 0x1E; break; case 1: if (gUnknown_0203926A != 0) - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += (gUnknown_0203926A >> 6) + 0x20; break; case 8: if (gUnknown_0203926A != 0) @@ -451,7 +450,7 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x20) r3 |= 2; - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += r3 + 0x20; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += r3 + 0x20; } break; case 4: @@ -462,16 +461,16 @@ void BuildAreaGlowTilemap(void) r3 |= 1; if (gUnknown_0203926A & 0x10) r3 |= 2; - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += r3 + 0x21; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += r3 + 0x21; } break; case 5: case 6: - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += 0x27; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += 0x27; break; case 9: case 10: - gPokedexAreaScreenPtr->unk0116[gUnknown_02039260] += 0x25; + gPokedexAreaScreenPtr->areaGlowTilemap[gUnknown_02039260] += 0x25; break; } } @@ -485,7 +484,7 @@ EWRAM_DATA u16 gUnknown_02039264 = 0; EWRAM_DATA u16 gUnknown_02039266 = 0; EWRAM_DATA u16 gUnknown_02039268 = 0; EWRAM_DATA u16 gUnknown_0203926A = 0; -NAKED void BuildAreaGlowTilemap(void) +static NAKED void BuildAreaGlowTilemap(void) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r10\n" @@ -1057,159 +1056,159 @@ NAKED void BuildAreaGlowTilemap(void) } #endif // NONMATCHING -void sub_8111084(void) +static void StartAreaGlow(void) { - if (gPokedexAreaScreenPtr->unk0112 != 0 && gPokedexAreaScreenPtr->unk0110 == 0) - gPokedexAreaScreenPtr->unk061E = 1; + if (gPokedexAreaScreenPtr->numSpecialAreas != 0 && gPokedexAreaScreenPtr->numOverworldAreas == 0) + gPokedexAreaScreenPtr->whichMarkersFlashing = 1; else - gPokedexAreaScreenPtr->unk061E = 0; - gPokedexAreaScreenPtr->unk0616 = 0; - gPokedexAreaScreenPtr->unk0618 = 0; - gPokedexAreaScreenPtr->unk061A = 0; - gPokedexAreaScreenPtr->unk061C = 0x40; - gPokedexAreaScreenPtr->unk061F = 1; + gPokedexAreaScreenPtr->whichMarkersFlashing = 0; + gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter = 0; + gPokedexAreaScreenPtr->areaShadeFrameCounter = 0; + gPokedexAreaScreenPtr->areaShadeBldArgLo = 0; + gPokedexAreaScreenPtr->areaShadeBldArgHi = 0x40; + gPokedexAreaScreenPtr->specialMarkerCycleCounter = 1; REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; REG_BLDALPHA = 0x1000; - sub_8111110(); + DoAreaGlow(); } -void sub_8111110(void) +static void DoAreaGlow(void) { u16 x; u16 y; u16 i; - if (gPokedexAreaScreenPtr->unk061E == 0) + if (gPokedexAreaScreenPtr->whichMarkersFlashing == 0) { - if (gPokedexAreaScreenPtr->unk0616 == 0) + if (gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter == 0) { - gPokedexAreaScreenPtr->unk0618++; - if (gPokedexAreaScreenPtr->unk0618 & 1) - gPokedexAreaScreenPtr->unk061A = (gPokedexAreaScreenPtr->unk061A + 4) & 0x7f; + gPokedexAreaScreenPtr->areaShadeFrameCounter++; + if (gPokedexAreaScreenPtr->areaShadeFrameCounter & 1) + gPokedexAreaScreenPtr->areaShadeBldArgLo = (gPokedexAreaScreenPtr->areaShadeBldArgLo + 4) & 0x7f; else - gPokedexAreaScreenPtr->unk061C = (gPokedexAreaScreenPtr->unk061C + 4) & 0x7f; - x = gSineTable[gPokedexAreaScreenPtr->unk061A] >> 4; - y = gSineTable[gPokedexAreaScreenPtr->unk061C] >> 4; + gPokedexAreaScreenPtr->areaShadeBldArgHi = (gPokedexAreaScreenPtr->areaShadeBldArgHi + 4) & 0x7f; + x = gSineTable[gPokedexAreaScreenPtr->areaShadeBldArgLo] >> 4; + y = gSineTable[gPokedexAreaScreenPtr->areaShadeBldArgHi] >> 4; REG_BLDALPHA = x | (y << 8); - gPokedexAreaScreenPtr->unk0616 = 0; - if (gPokedexAreaScreenPtr->unk0618 == 0x40) + gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter = 0; + if (gPokedexAreaScreenPtr->areaShadeFrameCounter == 0x40) { - gPokedexAreaScreenPtr->unk0618 = 0; - if (gPokedexAreaScreenPtr->unk0112 != 0) - gPokedexAreaScreenPtr->unk061E = 1; + gPokedexAreaScreenPtr->areaShadeFrameCounter = 0; + if (gPokedexAreaScreenPtr->numSpecialAreas != 0) + gPokedexAreaScreenPtr->whichMarkersFlashing = 1; } } else - gPokedexAreaScreenPtr->unk0616--; + gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter--; } else { - gPokedexAreaScreenPtr->unk0616++; - if (gPokedexAreaScreenPtr->unk0616 > 12) + gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter++; + if (gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter > 12) { - gPokedexAreaScreenPtr->unk0616 = 0; - gPokedexAreaScreenPtr->unk061F++; - for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) + gPokedexAreaScreenPtr->areaShadeOrMarkerFrameCounter = 0; + gPokedexAreaScreenPtr->specialMarkerCycleCounter++; + for (i = 0; i < gPokedexAreaScreenPtr->numSpecialAreas; i++) { - gPokedexAreaScreenPtr->unk0660[i]->invisible = gPokedexAreaScreenPtr->unk061F & 1; + gPokedexAreaScreenPtr->areaMarkerSprites[i]->invisible = gPokedexAreaScreenPtr->specialMarkerCycleCounter & 1; } - if (gPokedexAreaScreenPtr->unk061F > 4) + if (gPokedexAreaScreenPtr->specialMarkerCycleCounter > 4) { - gPokedexAreaScreenPtr->unk061F = 1; - if (gPokedexAreaScreenPtr->unk0110 != 0) - gPokedexAreaScreenPtr->unk061E = 0; + gPokedexAreaScreenPtr->specialMarkerCycleCounter = 1; + if (gPokedexAreaScreenPtr->numOverworldAreas != 0) + gPokedexAreaScreenPtr->whichMarkersFlashing = 0; } } } } -void sub_8111288(void) +static void DebugCB_WaitFade(void) { - switch (gPokedexAreaScreenPtr->unk000C) + switch (gPokedexAreaScreenPtr->state) { case 0: - gPokedexAreaScreenPtr->unk000C = 1; + gPokedexAreaScreenPtr->state = 1; break; case 1: if (!UpdatePaletteFade()) { - sub_8110814(sub_81112BC); + SetCallback(DebugCB_WaitButton); } break; } } -void sub_81112BC(void) +static void DebugCB_WaitButton(void) { - switch (gPokedexAreaScreenPtr->unk000C) + switch (gPokedexAreaScreenPtr->state) { case 0: if (gMain.newKeys & B_BUTTON) { - sub_8110814(sub_8111314); + SetCallback(DebugCB_GoBack); } else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { - sub_8110814(sub_8111360); + SetCallback(DebugCB_GoNext); } break; } } -void sub_8111314(void) +static void DebugCB_GoBack(void) { - switch (gPokedexAreaScreenPtr->unk000C) + switch (gPokedexAreaScreenPtr->state) { case 0: BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); - gPokedexAreaScreenPtr->unk000C++; + gPokedexAreaScreenPtr->state++; break; case 1: if (!UpdatePaletteFade()) { FreeRegionMapIconResources(); - SetMainCallback2(gPokedexAreaScreenPtr->unk0004); + SetMainCallback2(gPokedexAreaScreenPtr->prev); } break; } } -void sub_8111360(void) +static void DebugCB_GoNext(void) { - switch (gPokedexAreaScreenPtr->unk000C) + switch (gPokedexAreaScreenPtr->state) { case 0: BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); - gPokedexAreaScreenPtr->unk000C++; + gPokedexAreaScreenPtr->state++; break; case 1: if (!UpdatePaletteFade()) { FreeRegionMapIconResources(); - SetMainCallback2(gPokedexAreaScreenPtr->unk0008); + SetMainCallback2(gPokedexAreaScreenPtr->next); } break; } } -void Task_PokedexAreaScreen_0(u8 taskId); -void Task_PokedexAreaScreen_1(u8 taskId); -void CreateAreaMarkerSprites(void); -void DestroyAreaSprites(void); -void LoadAreaUnknownGraphics(void); -void CreateAreaUnknownSprites(void); +static void Task_PokedexAreaScreen_0(u8 taskId); +static void Task_PokedexAreaScreen_1(u8 taskId); +static void CreateAreaMarkerSprites(void); +static void DestroyAreaSprites(void); +static void LoadAreaUnknownGraphics(void); +static void CreateAreaUnknownSprites(void); -void ShowPokedexAreaScreen(u16 species, u8 * a1) +void ShowPokedexAreaScreen(u16 species, u8 * errno) { u8 taskId; - gPokedexAreaScreenPtr->unk000E = species; - gPokedexAreaScreenPtr->unk06E4 = a1; - a1[0] = 0; + gPokedexAreaScreenPtr->species = species; + gPokedexAreaScreenPtr->errno = errno; + errno[0] = 0; taskId = CreateTask(Task_PokedexAreaScreen_0, 0); gTasks[taskId].data[0] = 0; } -void Task_PokedexAreaScreen_0(u8 taskId) +static void Task_PokedexAreaScreen_0(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1228,11 +1227,11 @@ void Task_PokedexAreaScreen_0(u8 taskId) FreeAllSpritePalettes(); break; case 2: - InitRegionMap(&gPokedexAreaScreenPtr->unk06E8, FALSE); - StringFill(gPokedexAreaScreenPtr->unk0F68, CHAR_SPACE, 16); + InitRegionMap(&gPokedexAreaScreenPtr->regionMap, FALSE); + StringFill(gPokedexAreaScreenPtr->charBuffer, CHAR_SPACE, 16); break; case 3: - sub_8110824(); + ResetDrawAreaGlowState(); break; case 4: if (DrawAreaGlow()) @@ -1240,7 +1239,7 @@ void Task_PokedexAreaScreen_0(u8 taskId) break; case 5: CreateRegionMapPlayerIcon(1, 1); - sub_80FB2A4(0, -8); + RegionMapDefaultZoomOffsetPlayerSprite(0, -8); break; case 6: CreateAreaMarkerSprites(); @@ -1256,7 +1255,7 @@ void Task_PokedexAreaScreen_0(u8 taskId) break; case 10: REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; - sub_8111084(); + StartAreaGlow(); REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; break; case 11: @@ -1267,9 +1266,9 @@ void Task_PokedexAreaScreen_0(u8 taskId) gTasks[taskId].data[0]++; } -void Task_PokedexAreaScreen_1(u8 taskId) +static void Task_PokedexAreaScreen_1(u8 taskId) { - sub_8111110(); + DoAreaGlow(); switch (gTasks[taskId].data[0]) { default: @@ -1299,7 +1298,7 @@ void Task_PokedexAreaScreen_1(u8 taskId) if (gPaletteFade.active) return; DestroyAreaSprites(); - gPokedexAreaScreenPtr->unk06E4[0] = gTasks[taskId].data[1]; + gPokedexAreaScreenPtr->errno[0] = gTasks[taskId].data[1]; DestroyTask(taskId); return; } @@ -1309,23 +1308,23 @@ void Task_PokedexAreaScreen_1(u8 taskId) const u16 AreaMarkerPalette[]; const u8 AreaMarkerTiles[]; -const struct SpriteSheet gUnknown_083F858C = { +const struct SpriteSheet sAreaMarkerSpriteSheet = { AreaMarkerTiles, 0x80, 2 }; -const struct SpritePalette gUnknown_083F8594 = { +const struct SpritePalette sAreaMarkerSpritePalette = { AreaMarkerPalette, 2 }; -const struct OamData gOamData_83F859C = { +const struct OamData sAreaMarkerOamData = { .size = 1, .priority = 1 }; -const struct SpriteTemplate gSpriteTemplate_83F85A4 = { +const struct SpriteTemplate sAreaMarkerSpriteTemplate = { 2, 2, - &gOamData_83F859C, + &sAreaMarkerOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, @@ -1335,7 +1334,7 @@ const struct SpriteTemplate gSpriteTemplate_83F85A4 = { const u16 AreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal"); const u8 AreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bpp"); -void CreateAreaMarkerSprites(void) +static void CreateAreaMarkerSprites(void) { s16 i; u8 spriteId; @@ -1344,96 +1343,96 @@ void CreateAreaMarkerSprites(void) s16 cnt; s16 mapSecId; - LoadSpriteSheet(&gUnknown_083F858C); - LoadSpritePalette(&gUnknown_083F8594); + LoadSpriteSheet(&sAreaMarkerSpriteSheet); + LoadSpritePalette(&sAreaMarkerSpritePalette); cnt = 0; - for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++) + for (i = 0; i < gPokedexAreaScreenPtr->numSpecialAreas; i++) { - mapSecId = gPokedexAreaScreenPtr->unk0620[i]; + mapSecId = gPokedexAreaScreenPtr->specialAreaRegionMapSectionIds[i]; x = 8 * (gRegionMapLocations[mapSecId].x + 1) + 4; y = 8 * (gRegionMapLocations[mapSecId].y) + 28; x += 4 * (gRegionMapLocations[mapSecId].width - 1); y += 4 * (gRegionMapLocations[mapSecId].height - 1); - spriteId = CreateSprite(&gSpriteTemplate_83F85A4, x, y, 0); + spriteId = CreateSprite(&sAreaMarkerSpriteTemplate, x, y, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].invisible = TRUE; - gPokedexAreaScreenPtr->unk0660[cnt++] = gSprites + spriteId; + gPokedexAreaScreenPtr->areaMarkerSprites[cnt++] = gSprites + spriteId; } } - gPokedexAreaScreenPtr->unk06E0 = cnt; + gPokedexAreaScreenPtr->numAreaMarkerSprites = cnt; } -void DestroyAreaSprites(void) +static void DestroyAreaSprites(void) { u16 i; FreeSpriteTilesByTag(2); FreeSpritePaletteByTag(2); - for (i = 0; i < gPokedexAreaScreenPtr->unk06E0; i++) + for (i = 0; i < gPokedexAreaScreenPtr->numAreaMarkerSprites; i++) { - DestroySprite(gPokedexAreaScreenPtr->unk0660[i]); + DestroySprite(gPokedexAreaScreenPtr->areaMarkerSprites[i]); } FreeSpriteTilesByTag(3); FreeSpritePaletteByTag(3); for (i = 0; i < 3; i++) { - if (gPokedexAreaScreenPtr->unk0FA8[i] != NULL) + if (gPokedexAreaScreenPtr->areaUnknownSprites[i] != NULL) { - DestroySprite(gPokedexAreaScreenPtr->unk0FA8[i]); + DestroySprite(gPokedexAreaScreenPtr->areaUnknownSprites[i]); } } } -const struct SpritePalette gUnknown_083F865C = {gAreaUnknownPalette, 3}; +const struct SpritePalette sAreaUnknownSpritePalette = {gAreaUnknownPalette, 3}; -void LoadAreaUnknownGraphics(void) +static void LoadAreaUnknownGraphics(void) { - struct SpriteSheet spriteSheet = {gPokedexAreaScreenPtr->unk0FB4, 0x600, 3}; + struct SpriteSheet spriteSheet = {gPokedexAreaScreenPtr->areaUnknownGraphicsBuffer, 0x600, 3}; - LZ77UnCompWram(gAreaUnknownTiles, gPokedexAreaScreenPtr->unk0FB4); + LZ77UnCompWram(gAreaUnknownTiles, gPokedexAreaScreenPtr->areaUnknownGraphicsBuffer); LoadSpriteSheet(&spriteSheet); - LoadSpritePalette(&gUnknown_083F865C); + LoadSpritePalette(&sAreaUnknownSpritePalette); } -const struct OamData gOamData_83F866C = { +const struct OamData sAreaUnknownOamData = { .size = 2, .priority = 1 }; -const struct SpriteTemplate gSpriteTemplate_83F8674 = { +const struct SpriteTemplate sAreaUnknownSpriteTemplate = { 3, 3, - &gOamData_83F866C, + &sAreaUnknownOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -void CreateAreaUnknownSprites(void) +static void CreateAreaUnknownSprites(void) { u16 i; u8 spriteId; - if (gPokedexAreaScreenPtr->unk0110 != 0 || gPokedexAreaScreenPtr->unk0112 != 0) + if (gPokedexAreaScreenPtr->numOverworldAreas != 0 || gPokedexAreaScreenPtr->numSpecialAreas != 0) { for (i = 0; i < 3; i++) { - gPokedexAreaScreenPtr->unk0FA8[i] = NULL; + gPokedexAreaScreenPtr->areaUnknownSprites[i] = NULL; } } else { for (i = 0; i < 3; i++) { - spriteId = CreateSprite(&gSpriteTemplate_83F8674, i * 32 + 0xa0, 0x8c, 0); + spriteId = CreateSprite(&sAreaUnknownSpriteTemplate, i * 32 + 0xa0, 0x8c, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += i * 16; - gPokedexAreaScreenPtr->unk0FA8[i] = gSprites + spriteId; + gPokedexAreaScreenPtr->areaUnknownSprites[i] = gSprites + spriteId; } else - gPokedexAreaScreenPtr->unk0FA8[i] = NULL; + gPokedexAreaScreenPtr->areaUnknownSprites[i] = NULL; } } } diff --git a/src/region_map.c b/src/region_map.c index ab7c5c558..7bd303252 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1,4 +1,5 @@ #include "global.h" +#include "constants/region_map_sections.h" #include "event_data.h" #include "field_effect.h" #include "field_specials.h" @@ -19,97 +20,6 @@ #include "trig.h" #include "ewram.h" -// Map Section IDs -#define MAPSEC_LITTLEROOT_TOWN 0 -#define MAPSEC_OLDALE_TOWN 1 -#define MAPSEC_DEWFORD_TOWN 2 -#define MAPSEC_LAVARIDGE_TOWN 3 -#define MAPSEC_FALLARBOR_TOWN 4 -#define MAPSEC_VERDANTURF_TOWN 5 -#define MAPSEC_PACIFIDLOG_TOWN 6 -#define MAPSEC_PETALBURG_CITY 7 -#define MAPSEC_SLATEPORT_CITY 8 -#define MAPSEC_MAUVILLE_CITY 9 -#define MAPSEC_RUSTBORO_CITY 10 -#define MAPSEC_FORTREE_CITY 11 -#define MAPSEC_LILYCOVE_CITY 12 -#define MAPSEC_MOSSDEEP_CITY 13 -#define MAPSEC_SOOTOPOLIS_CITY 14 -#define MAPSEC_EVER_GRANDE_CITY 15 -#define MAPSEC_ROUTE_101 0x10 -#define MAPSEC_ROUTE_102 0x11 -#define MAPSEC_ROUTE_103 0x12 -#define MAPSEC_ROUTE_104 0x13 -#define MAPSEC_ROUTE_105 0x14 -#define MAPSEC_ROUTE_106 0x15 -#define MAPSEC_ROUTE_107 0x16 -#define MAPSEC_ROUTE_108 0x17 -#define MAPSEC_ROUTE_109 0x18 -#define MAPSEC_ROUTE_110 0x19 -#define MAPSEC_ROUTE_111 0x1A -#define MAPSEC_ROUTE_112 0x1B -#define MAPSEC_ROUTE_113 0x1C -#define MAPSEC_ROUTE_114 0x1D -#define MAPSEC_ROUTE_115 0x1E -#define MAPSEC_ROUTE_116 0x1F -#define MAPSEC_ROUTE_117 0x20 -#define MAPSEC_ROUTE_118 0x21 -#define MAPSEC_ROUTE_119 0x22 -#define MAPSEC_ROUTE_120 0x23 -#define MAPSEC_ROUTE_121 0x24 -#define MAPSEC_ROUTE_122 0x25 -#define MAPSEC_ROUTE_123 0x26 -#define MAPSEC_ROUTE_124 0x27 -#define MAPSEC_ROUTE_125 0x28 -#define MAPSEC_ROUTE_126 0x29 -#define MAPSEC_ROUTE_127 0x2A -#define MAPSEC_ROUTE_128 0x2B -#define MAPSEC_ROUTE_129 0x2C -#define MAPSEC_ROUTE_130 0x2D -#define MAPSEC_ROUTE_131 0x2E -#define MAPSEC_ROUTE_132 0x2F -#define MAPSEC_ROUTE_133 0x30 -#define MAPSEC_ROUTE_134 0x31 -#define MAPSEC_UNDERWATER1 0x32 -#define MAPSEC_UNDERWATER2 0x33 -#define MAPSEC_UNDERWATER3 0x34 -#define MAPSEC_UNDERWATER4 0x35 -#define MAPSEC_UNDERWATER5 0x36 -#define MAPSEC_GRANITE_CAVE 0x37 -#define MAPSEC_MT_CHIMNEY 0x38 -#define MAPSEC_SAFARI_ZONE 0x39 -#define MAPSEC_BATTLE_TOWER 0x3A -#define MAPSEC_PETALBURG_WOODS 0x3B -#define MAPSEC_RUSTURF_TUNNEL 0x3C -#define MAPSEC_ABANDONED_SHIP 0x3D -#define MAPSEC_NEW_MAUVILLE 0x3E -#define MAPSEC_METEOR_FALLS_1 0x3F -#define MAPSEC_METEOR_FALLS_2 0x40 -#define MAPSEC_MT_PYRE 0x41 -#define MAPSEC_EVIL_TEAM_HIDEOUT 0x42 -#define MAPSEC_SHOAL_CAVE 0x43 -#define MAPSEC_SEAFLOOR_CAVERN 0x44 -#define MAPSEC_UNDERWATER6 0x45 -#define MAPSEC_VICTORY_ROAD 0x46 -#define MAPSEC_MIRAGE_ISLAND 0x47 -#define MAPSEC_CAVE_OF_ORIGIN 0x48 -#define MAPSEC_SOUTHERN_ISLAND 0x49 -#define MAPSEC_FIERY_PATH_1 0x4A -#define MAPSEC_FIERY_PATH_2 0x4B -#define MAPSEC_JAGGED_PASS_1 0x4C -#define MAPSEC_JAGGED_PASS_2 0x4D -#define MAPSEC_SEALED_CHAMBER 0x4E -#define MAPSEC_UNDERWATER7 0x4F -#define MAPSEC_SCORCHED_SLAB 0x50 -#define MAPSEC_ISLAND_CAVE 0x51 -#define MAPSEC_DESERT_RUINS 0x52 -#define MAPSEC_ANCIENT_TOMB 0x53 -#define MAPSEC_INSIDE_OF_TRUCK 0x54 -#define MAPSEC_SKY_PILLAR 0x55 -#define MAPSEC_SECRET_BASE 0x56 -#define MAPSEC_UNK_0x57 0x57 -#define MAPSEC_NONE 0x58 - #define MAP_WIDTH 28 #define MAP_HEIGHT 15 #define MAPCURSOR_X_MIN 1 @@ -243,19 +153,19 @@ const struct RegionMapLocation gRegionMapLocations[] = static const u16 gUnknown_083E7684[][2] = { - {MAPSEC_UNDERWATER1, MAPSEC_ROUTE_124}, - {MAPSEC_UNDERWATER2, MAPSEC_ROUTE_126}, - {MAPSEC_UNDERWATER3, MAPSEC_ROUTE_127}, - {MAPSEC_UNDERWATER4, MAPSEC_ROUTE_128}, - {MAPSEC_UNDERWATER5, MAPSEC_SOOTOPOLIS_CITY}, - {MAPSEC_UNDERWATER6, MAPSEC_ROUTE_128}, - {MAPSEC_EVIL_TEAM_HIDEOUT, MAPSEC_LILYCOVE_CITY}, - {MAPSEC_UNDERWATER7, MAPSEC_ROUTE_134}, - {MAPSEC_PETALBURG_WOODS, MAPSEC_ROUTE_104}, - {MAPSEC_JAGGED_PASS_1, MAPSEC_ROUTE_112}, - {MAPSEC_MT_PYRE, MAPSEC_ROUTE_122}, - {MAPSEC_SKY_PILLAR, MAPSEC_ROUTE_131}, - {MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_Underwater124, MAPSEC_Route124}, + {MAPSEC_Underwater125, MAPSEC_Route126}, + {MAPSEC_Underwater126, MAPSEC_Route127}, + {MAPSEC_Underwater127, MAPSEC_Route128}, + {MAPSEC_UnderwaterSootopolis, MAPSEC_SootopolisCity}, + {MAPSEC_Underwater128, MAPSEC_Route128}, + {MAPSEC_EvilTeamHideout, MAPSEC_LilycoveCity}, + {MAPSEC_UnderwaterSealedChamber, MAPSEC_Route134}, + {MAPSEC_PetalburgWoods, MAPSEC_Route104}, + {MAPSEC_JaggedPass, MAPSEC_Route112}, + {MAPSEC_MtPyre, MAPSEC_Route122}, + {MAPSEC_SkyPillar, MAPSEC_Route131}, + {MAPSEC_Nothing, MAPSEC_Nothing}, }; static u8 sub_80FAB78(void); @@ -669,7 +579,7 @@ void UpdateRegionMapVideoRegs(void) } } -void sub_80FB2A4(s16 a, s16 b) +void RegionMapDefaultZoomOffsetPlayerSprite(s16 a, s16 b) { CalcZoomScrollParams(a, b, 0x38, 0x48, 0x100, 0x100, 0); UpdateRegionMapVideoRegs(); @@ -683,7 +593,7 @@ void sub_80FB2A4(s16 a, s16 b) static u16 GetRegionMapSectionAt(u16 x, u16 y) { if (y < MAPCURSOR_Y_MIN || y > MAPCURSOR_Y_MAX || x < MAPCURSOR_X_MIN || x > MAPCURSOR_X_MAX) - return MAPSEC_NONE; + return MAPSEC_Nothing; y -= MAPCURSOR_Y_MIN; x -= MAPCURSOR_X_MIN; return sRegionMapLayout[x + y * 28]; @@ -722,7 +632,7 @@ static void InitializeCursorPosition(void) mapHeight = gMapHeader.mapData->height; x = gSaveBlock1.pos.x; y = gSaveBlock1.pos.y; - if (gRegionMap->mapSectionId == MAPSEC_UNDERWATER6) + if (gRegionMap->mapSectionId == MAPSEC_Underwater128) gRegionMap->playerIsInCave = TRUE; break; case 3: @@ -749,7 +659,7 @@ static void InitializeCursorPosition(void) struct WarpData *r4; gRegionMap->mapSectionId = gMapHeader.regionMapSectionId; - if (gRegionMap->mapSectionId != MAPSEC_UNK_0x57) + if (gRegionMap->mapSectionId != MAPSEC_Dynamic) { r4 = &gSaveBlock1.warp4; mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum); @@ -787,12 +697,12 @@ static void InitializeCursorPosition(void) switch (gRegionMap->mapSectionId) { - case MAPSEC_ROUTE_114: + case MAPSEC_Route114: if (y != 0) x = 0; break; - case MAPSEC_ROUTE_126: - case MAPSEC_UNDERWATER2: + case MAPSEC_Route126: + case MAPSEC_Underwater125: x = 0; if (gSaveBlock1.pos.x > 32) x = 1; @@ -804,7 +714,7 @@ static void InitializeCursorPosition(void) if (gSaveBlock1.pos.y > 0x38) y++; break; - case MAPSEC_ROUTE_121: + case MAPSEC_Route121: x = 0; if (r9 > 14) x = 1; @@ -830,16 +740,16 @@ static void sub_80FB600(void) switch (GetSSTidalLocation(&mapGroup, &mapNum, &sp2, &sp4)) { case 1: - gRegionMap->mapSectionId = MAPSEC_SLATEPORT_CITY; + gRegionMap->mapSectionId = MAPSEC_SlateportCity; break; case 2: - gRegionMap->mapSectionId = MAPSEC_LILYCOVE_CITY; + gRegionMap->mapSectionId = MAPSEC_LilycoveCity; break; case 3: - gRegionMap->mapSectionId = MAPSEC_ROUTE_124; + gRegionMap->mapSectionId = MAPSEC_Route124; break; case 4: - gRegionMap->mapSectionId = MAPSEC_ROUTE_131; + gRegionMap->mapSectionId = MAPSEC_Route131; break; default: case 0: @@ -873,44 +783,44 @@ static u16 sub_80FB758(u16 mapSectionId) { switch (mapSectionId) { - case MAPSEC_NONE: + case MAPSEC_Nothing: return 0; - case MAPSEC_LITTLEROOT_TOWN: + case MAPSEC_LittlerootTown: return FlagGet(FLAG_VISITED_LITTLEROOT_TOWN) ? 2 : 3; - case MAPSEC_OLDALE_TOWN: + case MAPSEC_OldaleTown: return FlagGet(FLAG_VISITED_OLDALE_TOWN) ? 2 : 3; - case MAPSEC_DEWFORD_TOWN: + case MAPSEC_DewfordTown: return FlagGet(FLAG_VISITED_DEWFORD_TOWN) ? 2 : 3; - case MAPSEC_LAVARIDGE_TOWN: + case MAPSEC_LavaridgeTown: return FlagGet(FLAG_VISITED_LAVARIDGE_TOWN) ? 2 : 3; - case MAPSEC_FALLARBOR_TOWN: + case MAPSEC_FallarborTown: return FlagGet(FLAG_VISITED_FALLARBOR_TOWN) ? 2 : 3; - case MAPSEC_VERDANTURF_TOWN: + case MAPSEC_VerdanturfTown: return FlagGet(FLAG_VISITED_VERDANTURF_TOWN) ? 2 : 3; - case MAPSEC_PACIFIDLOG_TOWN: + case MAPSEC_PacifidlogTown: return FlagGet(FLAG_VISITED_PACIFIDLOG_TOWN) ? 2 : 3; - case MAPSEC_PETALBURG_CITY: + case MAPSEC_PetalburgCity: return FlagGet(FLAG_VISITED_PETALBURG_CITY) ? 2 : 3; - case MAPSEC_SLATEPORT_CITY: + case MAPSEC_SlateportCity: return FlagGet(FLAG_VISITED_SLATEPORT_CITY) ? 2 : 3; - case MAPSEC_MAUVILLE_CITY: + case MAPSEC_MauvilleCity: return FlagGet(FLAG_VISITED_MAUVILLE_CITY) ? 2 : 3; - case MAPSEC_RUSTBORO_CITY: + case MAPSEC_RustboroCity: return FlagGet(FLAG_VISITED_RUSTBORO_CITY) ? 2 : 3; - case MAPSEC_FORTREE_CITY: + case MAPSEC_FortreeCity: return FlagGet(FLAG_VISITED_FORTREE_CITY) ? 2 : 3; - case MAPSEC_LILYCOVE_CITY: + case MAPSEC_LilycoveCity: return FlagGet(FLAG_VISITED_LILYCOVE_CITY) ? 2 : 3; - case MAPSEC_MOSSDEEP_CITY: + case MAPSEC_MossdeepCity: return FlagGet(FLAG_VISITED_MOSSDEEP_CITY) ? 2 : 3; - case MAPSEC_SOOTOPOLIS_CITY: + case MAPSEC_SootopolisCity: return FlagGet(FLAG_VISITED_SOOTOPOLIS_CITY) ? 2 : 3; - case MAPSEC_EVER_GRANDE_CITY: + case MAPSEC_EverGrandeCity: return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? 2 : 3; - case MAPSEC_BATTLE_TOWER: + case MAPSEC_BattleTower: return FlagGet(FLAG_LANDMARK_BATTLE_TOWER) ? 4 : 0; - case MAPSEC_SOUTHERN_ISLAND: + case MAPSEC_SouthernIsland: return FlagGet(FLAG_LANDMARK_SOUTHERN_ISLAND) ? 1 : 0; default: return 1; @@ -926,7 +836,7 @@ static u16 sub_80FB9C0(u16 mapSectionId) { u16 i; - for (i = 0; gUnknown_083E7684[i][0] != MAPSEC_NONE; i++) + for (i = 0; gUnknown_083E7684[i][0] != MAPSEC_Nothing; i++) { if (gUnknown_083E7684[i][0] == mapSectionId) return gUnknown_083E7684[i][1]; @@ -945,7 +855,7 @@ static void sub_80FBA18(void) u16 y; u16 i; - if (gRegionMap->mapSectionId == MAPSEC_NONE) + if (gRegionMap->mapSectionId == MAPSEC_Nothing) { gRegionMap->everGrandeCityArea = 0; return; @@ -1298,9 +1208,9 @@ void sub_80FBF94(void) const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length) { - if (mapSectionId == MAPSEC_SECRET_BASE) + if (mapSectionId == MAPSEC_SecretBase) return GetSecretBaseMapName(dest); - if (mapSectionId < MAPSEC_NONE) + if (mapSectionId < MAPSEC_Nothing) return StringCopy(dest, gRegionMapLocations[mapSectionId].regionMapSectionId); if (length == 0) length = 18; @@ -1311,9 +1221,9 @@ const u8 *CopyMapName(u8 *dest, u16 mapSectionId) { switch (mapSectionId) { - case MAPSEC_UNK_0x57: + case MAPSEC_Dynamic: return StringCopy(dest, gOtherText_Ferry); - case MAPSEC_SECRET_BASE: + case MAPSEC_SecretBase: return StringCopy(dest, gOtherText_SecretBase); default: return GetMapSectionName(dest, mapSectionId, 0); @@ -1322,7 +1232,7 @@ const u8 *CopyMapName(u8 *dest, u16 mapSectionId) const u8 *CopyLocationName(u8 *dest, u16 mapSectionId) { - if (mapSectionId == MAPSEC_EVIL_TEAM_HIDEOUT) + if (mapSectionId == MAPSEC_EvilTeamHideout) return StringCopy(dest, gOtherText_Hideout); else return CopyMapName(dest, mapSectionId); @@ -1420,7 +1330,7 @@ struct MultiPartMapSection // Map sections that are divided into multiple parts. Ever Grande City is the only one. static const struct MultiPartMapSection sMultiPartMapSections[1] = { - {sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY}, + {sEverGrandeCityAreaNames, MAPSEC_EverGrandeCity, FLAG_SYS_POKEMON_LEAGUE_FLY}, }; static struct UnknownStruct3 *const sFlyDataPtr = (struct UnknownStruct3 *)gSharedMem; @@ -1431,8 +1341,8 @@ static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons static const u16 sSpecialFlyAreas[][2] = { // flag, mapSectionId - {0x848, MAPSEC_BATTLE_TOWER}, - {0xFFFF, MAPSEC_NONE}, + {0x848, MAPSEC_BattleTower}, + {0xFFFF, MAPSEC_Nothing}, }; static const struct OamData sFlyTargetOamData = @@ -1697,7 +1607,7 @@ static void CreateSpecialAreaFlyTargetIcons(void) { u16 i; - for (i = 0; sSpecialFlyAreas[i][1] != MAPSEC_NONE; i++) + for (i = 0; sSpecialFlyAreas[i][1] != MAPSEC_Nothing; i++) { u16 x; u16 y; @@ -1806,16 +1716,16 @@ void sub_80FC69C(void) { switch (sFlyDataPtr->regionMap.mapSectionId) { - case MAPSEC_SOUTHERN_ISLAND: + case MAPSEC_SouthernIsland: sub_8053538(22); break; - case MAPSEC_BATTLE_TOWER: + case MAPSEC_BattleTower: sub_8053538(21); break; - case MAPSEC_LITTLEROOT_TOWN: + case MAPSEC_LittlerootTown: sub_8053538((gSaveBlock2.playerGender == MALE) ? 12 : 13); break; - case MAPSEC_EVER_GRANDE_CITY: + case MAPSEC_EverGrandeCity: sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && sFlyDataPtr->regionMap.everGrandeCityArea == 0) ? 20 : 11); break; default: diff --git a/src/tv.c b/src/tv.c index 7cf549802..046c6f14c 100644 --- a/src/tv.c +++ b/src/tv.c @@ -40,7 +40,7 @@ #include "text.h" #include "ewram.h" #include "constants/moves.h" -#include "region_map_sections.h" +#include "constants/region_map_sections.h" struct UnkTvStruct { -- cgit v1.2.3 From b11edef8f1a5f2b745e3bcd28b677a5fe0c3510b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Apr 2018 22:36:38 -0400 Subject: Another minor renaming --- include/region_map.h | 2 +- src/pokedex_area_screen.c | 3 +-- src/region_map.c | 18 +++++++++--------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/region_map.h b/include/region_map.h index 55258e961..4c10d84cb 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -69,7 +69,7 @@ void sub_80FAEC4(void); u8 sub_80FAFC0(void); void UpdateRegionMapVideoRegs(void); void RegionMapDefaultZoomOffsetPlayerSprite(s16, s16); -u16 sub_80FBA04(u16 mapSectionId); +u16 GetOverworldMapFromUnderwaterMap(u16 mapSectionId); void CreateRegionMapCursor(u16, u16); void CreateRegionMapPlayerIcon(u16, u16); const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 1ca9a67e3..4cf13da76 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -1,4 +1,3 @@ - // Includes #include "global.h" #include "constants/species.h" @@ -290,7 +289,7 @@ static void SetAreaHasMon(u16 mapGroup, u16 mapNum) { gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].mapGroup = mapGroup; gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].mapNum = mapNum; - gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].regionMapSectionId = sub_80FBA04(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + gPokedexAreaScreenPtr->overworldAreasWithMons[gPokedexAreaScreenPtr->numOverworldAreas].regionMapSectionId = GetOverworldMapFromUnderwaterMap(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); gPokedexAreaScreenPtr->numOverworldAreas++; } } diff --git a/src/region_map.c b/src/region_map.c index 7bd303252..11ec64f19 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -151,7 +151,7 @@ const struct RegionMapLocation gRegionMapLocations[] = { 0, 0, 1, 1, gMapName_None}, }; -static const u16 gUnknown_083E7684[][2] = +static const u16 sUnderwaterMaps[][2] = { {MAPSEC_Underwater124, MAPSEC_Route124}, {MAPSEC_Underwater125, MAPSEC_Route126}, @@ -179,7 +179,7 @@ static u16 GetRegionMapSectionAt(u16, u16); static void InitializeCursorPosition(void); static void sub_80FB600(void); static u16 sub_80FB758(u16); -static u16 sub_80FB9C0(u16); +static u16 GetOverworldMapFromUnderwaterMap_(u16); static void sub_80FBA18(void); static bool8 sub_80FBAA0(u16); void CreateRegionMapCursor(u16, u16); @@ -241,7 +241,7 @@ bool8 sub_80FA940(void) gRegionMap->unk74 = gRegionMap->cursorPosX; gRegionMap->unk76 = gRegionMap->cursorPosY; gRegionMap->unk16 = sub_80FB758(gRegionMap->mapSectionId); - gRegionMap->mapSectionId = sub_80FB9C0(gRegionMap->mapSectionId); + gRegionMap->mapSectionId = GetOverworldMapFromUnderwaterMap_(gRegionMap->mapSectionId); GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16); break; case 6: @@ -832,21 +832,21 @@ u16 GetRegionMapSectionAt_(u16 x, u16 y) return GetRegionMapSectionAt(x, y); } -static u16 sub_80FB9C0(u16 mapSectionId) +static u16 GetOverworldMapFromUnderwaterMap_(u16 mapSectionId) { u16 i; - for (i = 0; gUnknown_083E7684[i][0] != MAPSEC_Nothing; i++) + for (i = 0; sUnderwaterMaps[i][0] != MAPSEC_Nothing; i++) { - if (gUnknown_083E7684[i][0] == mapSectionId) - return gUnknown_083E7684[i][1]; + if (sUnderwaterMaps[i][0] == mapSectionId) + return sUnderwaterMaps[i][1]; } return mapSectionId; } -u16 sub_80FBA04(u16 mapSectionId) +u16 GetOverworldMapFromUnderwaterMap(u16 mapSectionId) { - return sub_80FB9C0(mapSectionId); + return GetOverworldMapFromUnderwaterMap_(mapSectionId); } static void sub_80FBA18(void) -- cgit v1.2.3 From 5f65f542e184bf7a3a3d332ed74c7fc7d61ff0bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 25 Apr 2018 20:20:19 -0400 Subject: Apply @huderlem's suggestion --- src/pokedex_area_screen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 4cf13da76..ac7635d1a 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -88,7 +88,7 @@ static const u16 gUnknown_083F8418[] = INCBIN_U16("graphics/pokedex/area_glow.gb static const u8 gUnknown_083F8438[] = INCBIN_U8("graphics/pokedex/area_glow.4bpp.lz"); -static const u16 sWynautData[] = {SPECIES_WYNAUT}; +static const u16 sSpeciesHiddenFromAreaScreen[] = {SPECIES_WYNAUT}; static const u16 sFeebasData[][3] = { {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, @@ -230,9 +230,9 @@ static void FindMapsWithMon(u16 mon) { gPokedexAreaScreenPtr->numOverworldAreas = 0; gPokedexAreaScreenPtr->numSpecialAreas = 0; - for (i = 0; i < 1; i++) + for (i = 0; i < ARRAY_COUNT(sSpeciesHiddenFromAreaScreen); i++) { - if (sWynautData[i] == mon) + if (sSpeciesHiddenFromAreaScreen[i] == mon) return; } for (i = 0; sFeebasData[i][0] != NUM_SPECIES; i++) -- cgit v1.2.3 From e14451c7a5b37425234ad6f2317f77baed8d98df Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 26 Apr 2018 08:22:17 -0400 Subject: Use all caps for MAPSEC enums --- include/constants/region_map_sections.h | 178 ++++++++++++++++---------------- src/data/region_map_layout.h | 44 ++++---- src/landmark.c | 96 ++++++++--------- src/pokedex_area_screen.c | 10 +- src/region_map.c | 116 ++++++++++----------- src/tv.c | 10 +- 6 files changed, 227 insertions(+), 227 deletions(-) diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h index afe8674a1..38ca06e1b 100644 --- a/include/constants/region_map_sections.h +++ b/include/constants/region_map_sections.h @@ -3,95 +3,95 @@ enum { - MAPSEC_LittlerootTown, // 0x00 - MAPSEC_OldaleTown, // 0x01 - MAPSEC_DewfordTown, // 0x02 - MAPSEC_LavaridgeTown, // 0x03 - MAPSEC_FallarborTown, // 0x04 - MAPSEC_VerdanturfTown, // 0x05 - MAPSEC_PacifidlogTown, // 0x06 - MAPSEC_PetalburgCity, // 0x07 - MAPSEC_SlateportCity, // 0x08 - MAPSEC_MauvilleCity, // 0x09 - MAPSEC_RustboroCity, // 0x0A - MAPSEC_FortreeCity, // 0x0B - MAPSEC_LilycoveCity, // 0x0C - MAPSEC_MossdeepCity, // 0x0D - MAPSEC_SootopolisCity, // 0x0E - MAPSEC_EverGrandeCity, // 0x0F - MAPSEC_Route101, // 0x10 - MAPSEC_Route102, // 0x11 - MAPSEC_Route103, // 0x12 - MAPSEC_Route104, // 0x13 - MAPSEC_Route105, // 0x14 - MAPSEC_Route106, // 0x15 - MAPSEC_Route107, // 0x16 - MAPSEC_Route108, // 0x17 - MAPSEC_Route109, // 0x18 - MAPSEC_Route110, // 0x19 - MAPSEC_Route111, // 0x1A - MAPSEC_Route112, // 0x1B - MAPSEC_Route113, // 0x1C - MAPSEC_Route114, // 0x1D - MAPSEC_Route115, // 0x1E - MAPSEC_Route116, // 0x1F - MAPSEC_Route117, // 0x20 - MAPSEC_Route118, // 0x21 - MAPSEC_Route119, // 0x22 - MAPSEC_Route120, // 0x23 - MAPSEC_Route121, // 0x24 - MAPSEC_Route122, // 0x25 - MAPSEC_Route123, // 0x26 - MAPSEC_Route124, // 0x27 - MAPSEC_Route125, // 0x28 - MAPSEC_Route126, // 0x29 - MAPSEC_Route127, // 0x2A - MAPSEC_Route128, // 0x2B - MAPSEC_Route129, // 0x2C - MAPSEC_Route130, // 0x2D - MAPSEC_Route131, // 0x2E - MAPSEC_Route132, // 0x2F - MAPSEC_Route133, // 0x30 - MAPSEC_Route134, // 0x31 - MAPSEC_Underwater124, // 0x32 - MAPSEC_Underwater125, // 0x33 - MAPSEC_Underwater126, // 0x34 - MAPSEC_Underwater127, // 0x35 - MAPSEC_UnderwaterSootopolis, // 0x36 - MAPSEC_GraniteCave, // 0x37 - MAPSEC_MtChimney, // 0x38 - MAPSEC_SafariZone, // 0x39 - MAPSEC_BattleTower, // 0x3A - MAPSEC_PetalburgWoods, // 0x3B - MAPSEC_RusturfTunnel, // 0x3C - MAPSEC_AbandonedShip, // 0x3D - MAPSEC_NewMauville, // 0x3E - MAPSEC_MeteorFalls, // 0x3F - MAPSEC_MeteorFalls2, // 0x40 - MAPSEC_MtPyre, // 0x41 - MAPSEC_EvilTeamHideout, // 0x42 - MAPSEC_ShoalCave, // 0x43 - MAPSEC_SeafloorCavern, // 0x44 - MAPSEC_Underwater128, // 0x45 - MAPSEC_VictoryRoad, // 0x46 - MAPSEC_MirageIsland, // 0x47 - MAPSEC_CaveOfOrigin, // 0x48 - MAPSEC_SouthernIsland, // 0x49 - MAPSEC_FieryPath, // 0x4A - MAPSEC_FieryPath2, // 0x4B - MAPSEC_JaggedPass, // 0x4C - MAPSEC_JaggedPass2, // 0x4D - MAPSEC_SealedChamber, // 0x4E - MAPSEC_UnderwaterSealedChamber, // 0x4F - MAPSEC_ScorchedSlab, // 0x50 - MAPSEC_IslandCave, // 0x51 - MAPSEC_DesertRuins, // 0x52 - MAPSEC_AncientTomb, // 0x53 - MAPSEC_InsideOfTruck, // 0x54 - MAPSEC_SkyPillar, // 0x55 - MAPSEC_SecretBase, // 0x56 - MAPSEC_Dynamic, // 0x57 - MAPSEC_Nothing // 0x58 + MAPSEC_LITTLEROOT_TOWN, // 0x00 + MAPSEC_OLDALE_TOWN, // 0x01 + MAPSEC_DEWFORD_TOWN, // 0x02 + MAPSEC_LAVARIDGE_TOWN, // 0x03 + MAPSEC_FALLARBOR_TOWN, // 0x04 + MAPSEC_VERDANTURF_TOWN, // 0x05 + MAPSEC_PACIFIDLOG_TOWN, // 0x06 + MAPSEC_PETALBURG_CITY, // 0x07 + MAPSEC_SLATEPORT_CITY, // 0x08 + MAPSEC_MAUVILLE_CITY, // 0x09 + MAPSEC_RUSTBORO_CITY, // 0x0A + MAPSEC_FORTREE_CITY, // 0x0B + MAPSEC_LILYCOVE_CITY, // 0x0C + MAPSEC_MOSSDEEP_CITY, // 0x0D + MAPSEC_SOOTOPOLIS_CITY, // 0x0E + MAPSEC_EVER_GRANDE_CITY, // 0x0F + MAPSEC_ROUTE_101, // 0x10 + MAPSEC_ROUTE_102, // 0x11 + MAPSEC_ROUTE_103, // 0x12 + MAPSEC_ROUTE_104, // 0x13 + MAPSEC_ROUTE_105, // 0x14 + MAPSEC_ROUTE_106, // 0x15 + MAPSEC_ROUTE_107, // 0x16 + MAPSEC_ROUTE_108, // 0x17 + MAPSEC_ROUTE_109, // 0x18 + MAPSEC_ROUTE_110, // 0x19 + MAPSEC_ROUTE_111, // 0x1A + MAPSEC_ROUTE_112, // 0x1B + MAPSEC_ROUTE_113, // 0x1C + MAPSEC_ROUTE_114, // 0x1D + MAPSEC_ROUTE_115, // 0x1E + MAPSEC_ROUTE_116, // 0x1F + MAPSEC_ROUTE_117, // 0x20 + MAPSEC_ROUTE_118, // 0x21 + MAPSEC_ROUTE_119, // 0x22 + MAPSEC_ROUTE_120, // 0x23 + MAPSEC_ROUTE_121, // 0x24 + MAPSEC_ROUTE_122, // 0x25 + MAPSEC_ROUTE_123, // 0x26 + MAPSEC_ROUTE_124, // 0x27 + MAPSEC_ROUTE_125, // 0x28 + MAPSEC_ROUTE_126, // 0x29 + MAPSEC_ROUTE_127, // 0x2A + MAPSEC_ROUTE_128, // 0x2B + MAPSEC_ROUTE_129, // 0x2C + MAPSEC_ROUTE_130, // 0x2D + MAPSEC_ROUTE_131, // 0x2E + MAPSEC_ROUTE_132, // 0x2F + MAPSEC_ROUTE_133, // 0x30 + MAPSEC_ROUTE_134, // 0x31 + MAPSEC_UNDERWATER_124, // 0x32 + MAPSEC_UNDERWATER_125, // 0x33 + MAPSEC_UNDERWATER_126, // 0x34 + MAPSEC_UNDERWATER_127, // 0x35 + MAPSEC_UNDERWATER_SOOTOPOLIS, // 0x36 + MAPSEC_GRANITE_CAVE, // 0x37 + MAPSEC_MT_CHIMNEY, // 0x38 + MAPSEC_SAFARI_ZONE, // 0x39 + MAPSEC_BATTLE_TOWER, // 0x3A + MAPSEC_PETALBURG_WOODS, // 0x3B + MAPSEC_RUSTURF_TUNNEL, // 0x3C + MAPSEC_ABANDONED_SHIP, // 0x3D + MAPSEC_NEW_MAUVILLE, // 0x3E + MAPSEC_METEOR_FALLS, // 0x3F + MAPSEC_METEOR_FALLS_2, // 0x40 + MAPSEC_MT_PYRE, // 0x41 + MAPSEC_EVIL_TEAM_HIDEOUT, // 0x42 + MAPSEC_SHOAL_CAVE, // 0x43 + MAPSEC_SEAFLOOR_CAVERN, // 0x44 + MAPSEC_UNDERWATER_128, // 0x45 + MAPSEC_VICTORY_ROAD, // 0x46 + MAPSEC_MIRAGE_ISLAND, // 0x47 + MAPSEC_CAVE_OF_ORIGIN, // 0x48 + MAPSEC_SOUTHERN_ISLAND, // 0x49 + MAPSEC_FIERY_PATH, // 0x4A + MAPSEC_FIERY_PATH_2, // 0x4B + MAPSEC_JAGGED_PASS, // 0x4C + MAPSEC_JAGGED_PASS_2, // 0x4D + MAPSEC_SEALED_CHAMBER, // 0x4E + MAPSEC_UNDERWATER_SEALED_CHAMBER, // 0x4F + MAPSEC_SCORCHED_SLAB, // 0x50 + MAPSEC_ISLAND_CAVE, // 0x51 + MAPSEC_DESERT_RUINS, // 0x52 + MAPSEC_ANCIENT_TOMB, // 0x53 + MAPSEC_INSIDE_OF_TRUCK, // 0x54 + MAPSEC_SKY_PILLAR, // 0x55 + MAPSEC_SECRET_BASE, // 0x56 + MAPSEC_DYNAMIC, // 0x57 + MAPSEC_NOTHING // 0x58 }; #endif // GUARD_REGIONMAPSEC_H diff --git a/src/data/region_map_layout.h b/src/data/region_map_layout.h index 06e308593..1bc93cbb3 100644 --- a/src/data/region_map_layout.h +++ b/src/data/region_map_layout.h @@ -1,26 +1,26 @@ // Abbreviated definitions to make the map layout more visual -#define R(routeNum) MAPSEC_Route##routeNum -#define LITT_T MAPSEC_LittlerootTown -#define OLDA_T MAPSEC_OldaleTown -#define DEWF_T MAPSEC_DewfordTown -#define LAVA_T MAPSEC_LavaridgeTown -#define FALL_T MAPSEC_FallarborTown -#define VERD_T MAPSEC_VerdanturfTown -#define PACI_T MAPSEC_PacifidlogTown -#define PETA_C MAPSEC_PetalburgCity -#define SLAT_C MAPSEC_SlateportCity -#define MAUV_C MAPSEC_MauvilleCity -#define RUST_C MAPSEC_RustboroCity -#define FORT_C MAPSEC_FortreeCity -#define LILY_C MAPSEC_LilycoveCity -#define MOSS_C MAPSEC_MossdeepCity -#define SOOT_C MAPSEC_SootopolisCity -#define EVER_C MAPSEC_EverGrandeCity -#define MTCHIM MAPSEC_MtChimney -#define SAFARI MAPSEC_SafariZone -#define BTLTWR MAPSEC_BattleTower -#define S_ISLD MAPSEC_SouthernIsland -#define ______ MAPSEC_Nothing +#define R(routeNum) MAPSEC_ROUTE_##routeNum +#define LITT_T MAPSEC_LITTLEROOT_TOWN +#define OLDA_T MAPSEC_OLDALE_TOWN +#define DEWF_T MAPSEC_DEWFORD_TOWN +#define LAVA_T MAPSEC_LAVARIDGE_TOWN +#define FALL_T MAPSEC_FALLARBOR_TOWN +#define VERD_T MAPSEC_VERDANTURF_TOWN +#define PACI_T MAPSEC_PACIFIDLOG_TOWN +#define PETA_C MAPSEC_PETALBURG_CITY +#define SLAT_C MAPSEC_SLATEPORT_CITY +#define MAUV_C MAPSEC_MAUVILLE_CITY +#define RUST_C MAPSEC_RUSTBORO_CITY +#define FORT_C MAPSEC_FORTREE_CITY +#define LILY_C MAPSEC_LILYCOVE_CITY +#define MOSS_C MAPSEC_MOSSDEEP_CITY +#define SOOT_C MAPSEC_SOOTOPOLIS_CITY +#define EVER_C MAPSEC_EVER_GRANDE_CITY +#define MTCHIM MAPSEC_MT_CHIMNEY +#define SAFARI MAPSEC_SAFARI_ZONE +#define BTLTWR MAPSEC_BATTLE_TOWER +#define S_ISLD MAPSEC_SOUTHERN_ISLAND +#define ______ MAPSEC_NOTHING static const u8 sRegionMapLayout[] = { diff --git a/src/landmark.c b/src/landmark.c index 4fd9595fe..0572da4ca 100644 --- a/src/landmark.c +++ b/src/landmark.c @@ -315,52 +315,52 @@ static const struct Landmark *const Landmarks_MtChimney_2[] = static const struct LandmarkList gLandmarkLists[] = { - {MAPSEC_Route104, 0, Landmarks_Route104_0}, - {MAPSEC_Route104, 1, Landmarks_Route104_1}, - {MAPSEC_Route105, 0, Landmarks_Route105_0}, - {MAPSEC_Route106, 1, Landmarks_Route106_1}, - {MAPSEC_Route108, 0, Landmarks_Route108_0}, - {MAPSEC_Route109, 0, Landmarks_Route109_0}, - {MAPSEC_Route110, 0, Landmarks_Route110_0}, - {MAPSEC_Route110, 1, Landmarks_Route110_1}, - {MAPSEC_Route110, 2, Landmarks_Route110_2}, - {MAPSEC_Route111, 0, Landmarks_Route111_0}, - {MAPSEC_Route111, 1, Landmarks_Route111_1}, - {MAPSEC_Route111, 2, Landmarks_Route111_1}, - {MAPSEC_Route111, 3, Landmarks_Route111_3}, - {MAPSEC_Route111, 4, Landmarks_Route111_4}, - {MAPSEC_Route112, 0, Landmarks_Route112_0}, - {MAPSEC_Route112, 1, Landmarks_Route112_1}, - {MAPSEC_Route113, 1, Landmarks_Route113_1}, - {MAPSEC_Route114, 1, Landmarks_Route114_1}, - {MAPSEC_Route114, 2, Landmarks_Route114_2}, - {MAPSEC_Route114, 3, Landmarks_MeteorFalls}, - {MAPSEC_Route115, 0, Landmarks_MeteorFalls}, - {MAPSEC_Route115, 1, Landmarks_MeteorFalls}, - {MAPSEC_Route116, 1, Landmarks_Route116_1}, - {MAPSEC_Route116, 2, Landmarks_Route116_2}, - {MAPSEC_Route117, 2, Landmarks_Route117_2}, - {MAPSEC_Route119, 1, Landmarks_Route119_1}, - {MAPSEC_Route120, 0, Landmarks_Route120_0}, - {MAPSEC_Route120, 2, Landmarks_Route120_2}, - {MAPSEC_Route121, 2, Landmarks_Route121_2}, - {MAPSEC_Route122, 0, Landmarks_Route122_0}, - {MAPSEC_Route123, 0, Landmarks_Route123_0}, - {MAPSEC_Route122, 1, Landmarks_Route122_0}, - {MAPSEC_Route124, 7, Landmarks_Route124_7}, - {MAPSEC_Route125, 2, Landmarks_Route125_2}, - {MAPSEC_Route128, 1, Landmarks_Route128_1}, - {MAPSEC_Route131, 1, Landmarks_Route131_1}, - {MAPSEC_Route132, 0, Landmarks_OceanCurrent}, - {MAPSEC_Route132, 1, Landmarks_OceanCurrent}, - {MAPSEC_Route133, 0, Landmarks_OceanCurrent}, - {MAPSEC_Route133, 1, Landmarks_OceanCurrent}, - {MAPSEC_Route133, 2, Landmarks_OceanCurrent}, - {MAPSEC_Route134, 0, Landmarks_OceanCurrent}, - {MAPSEC_Route134, 1, Landmarks_OceanCurrent}, - {MAPSEC_Route134, 2, Landmarks_Route134_2}, - {MAPSEC_MtChimney, 2, Landmarks_MtChimney_2}, - {MAPSEC_Nothing, 0, NULL}, + {MAPSEC_ROUTE_104, 0, Landmarks_Route104_0}, + {MAPSEC_ROUTE_104, 1, Landmarks_Route104_1}, + {MAPSEC_ROUTE_105, 0, Landmarks_Route105_0}, + {MAPSEC_ROUTE_106, 1, Landmarks_Route106_1}, + {MAPSEC_ROUTE_108, 0, Landmarks_Route108_0}, + {MAPSEC_ROUTE_109, 0, Landmarks_Route109_0}, + {MAPSEC_ROUTE_110, 0, Landmarks_Route110_0}, + {MAPSEC_ROUTE_110, 1, Landmarks_Route110_1}, + {MAPSEC_ROUTE_110, 2, Landmarks_Route110_2}, + {MAPSEC_ROUTE_111, 0, Landmarks_Route111_0}, + {MAPSEC_ROUTE_111, 1, Landmarks_Route111_1}, + {MAPSEC_ROUTE_111, 2, Landmarks_Route111_1}, + {MAPSEC_ROUTE_111, 3, Landmarks_Route111_3}, + {MAPSEC_ROUTE_111, 4, Landmarks_Route111_4}, + {MAPSEC_ROUTE_112, 0, Landmarks_Route112_0}, + {MAPSEC_ROUTE_112, 1, Landmarks_Route112_1}, + {MAPSEC_ROUTE_113, 1, Landmarks_Route113_1}, + {MAPSEC_ROUTE_114, 1, Landmarks_Route114_1}, + {MAPSEC_ROUTE_114, 2, Landmarks_Route114_2}, + {MAPSEC_ROUTE_114, 3, Landmarks_MeteorFalls}, + {MAPSEC_ROUTE_115, 0, Landmarks_MeteorFalls}, + {MAPSEC_ROUTE_115, 1, Landmarks_MeteorFalls}, + {MAPSEC_ROUTE_116, 1, Landmarks_Route116_1}, + {MAPSEC_ROUTE_116, 2, Landmarks_Route116_2}, + {MAPSEC_ROUTE_117, 2, Landmarks_Route117_2}, + {MAPSEC_ROUTE_119, 1, Landmarks_Route119_1}, + {MAPSEC_ROUTE_120, 0, Landmarks_Route120_0}, + {MAPSEC_ROUTE_120, 2, Landmarks_Route120_2}, + {MAPSEC_ROUTE_121, 2, Landmarks_Route121_2}, + {MAPSEC_ROUTE_122, 0, Landmarks_Route122_0}, + {MAPSEC_ROUTE_123, 0, Landmarks_Route123_0}, + {MAPSEC_ROUTE_122, 1, Landmarks_Route122_0}, + {MAPSEC_ROUTE_124, 7, Landmarks_Route124_7}, + {MAPSEC_ROUTE_125, 2, Landmarks_Route125_2}, + {MAPSEC_ROUTE_128, 1, Landmarks_Route128_1}, + {MAPSEC_ROUTE_131, 1, Landmarks_Route131_1}, + {MAPSEC_ROUTE_132, 0, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_132, 1, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_133, 0, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_133, 1, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_133, 2, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_134, 0, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_134, 1, Landmarks_OceanCurrent}, + {MAPSEC_ROUTE_134, 2, Landmarks_Route134_2}, + {MAPSEC_MT_CHIMNEY, 2, Landmarks_MtChimney_2}, + {MAPSEC_NOTHING, 0, NULL}, }; static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id); @@ -396,7 +396,7 @@ static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id) { u16 i = 0; - for (; gLandmarkLists[i].mapSection != MAPSEC_Nothing; i++) + for (; gLandmarkLists[i].mapSection != MAPSEC_NOTHING; i++) { if (gLandmarkLists[i].mapSection > mapSection) return NULL; @@ -404,7 +404,7 @@ static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id) break; } - if (gLandmarkLists[i].mapSection == MAPSEC_Nothing) + if (gLandmarkLists[i].mapSection == MAPSEC_NOTHING) return NULL; for (; gLandmarkLists[i].mapSection == mapSection; i++) diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index ac7635d1a..fd60581b9 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -96,9 +96,9 @@ static const u16 sFeebasData[][3] = { }; static const u16 sLandmarkData[][2] = { - {MAPSEC_SkyPillar, FLAG_LANDMARK_SKY_PILLAR}, - {MAPSEC_SeafloorCavern, FLAG_LANDMARK_SEAFLOOR_CAVERN}, - {MAPSEC_Nothing} + {MAPSEC_SKY_PILLAR, FLAG_LANDMARK_SKY_PILLAR}, + {MAPSEC_SEAFLOOR_CAVERN, FLAG_LANDMARK_SEAFLOOR_CAVERN}, + {MAPSEC_NOTHING} }; static struct PokedexAreaScreenEwramStruct *const gPokedexAreaScreenPtr = &ePokedexAreaScreen; @@ -302,9 +302,9 @@ static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) if (gPokedexAreaScreenPtr->numSpecialAreas < 0x20) { mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); - if (mapHeader->regionMapSectionId < MAPSEC_Nothing) + if (mapHeader->regionMapSectionId < MAPSEC_NOTHING) { - for (i = 0; sLandmarkData[i][0] != MAPSEC_Nothing; i++) + for (i = 0; sLandmarkData[i][0] != MAPSEC_NOTHING; i++) { if (mapHeader->regionMapSectionId == sLandmarkData[i][0] && !FlagGet(sLandmarkData[i][1])) return; diff --git a/src/region_map.c b/src/region_map.c index 11ec64f19..4b591c2e5 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -153,19 +153,19 @@ const struct RegionMapLocation gRegionMapLocations[] = static const u16 sUnderwaterMaps[][2] = { - {MAPSEC_Underwater124, MAPSEC_Route124}, - {MAPSEC_Underwater125, MAPSEC_Route126}, - {MAPSEC_Underwater126, MAPSEC_Route127}, - {MAPSEC_Underwater127, MAPSEC_Route128}, - {MAPSEC_UnderwaterSootopolis, MAPSEC_SootopolisCity}, - {MAPSEC_Underwater128, MAPSEC_Route128}, - {MAPSEC_EvilTeamHideout, MAPSEC_LilycoveCity}, - {MAPSEC_UnderwaterSealedChamber, MAPSEC_Route134}, - {MAPSEC_PetalburgWoods, MAPSEC_Route104}, - {MAPSEC_JaggedPass, MAPSEC_Route112}, - {MAPSEC_MtPyre, MAPSEC_Route122}, - {MAPSEC_SkyPillar, MAPSEC_Route131}, - {MAPSEC_Nothing, MAPSEC_Nothing}, + {MAPSEC_UNDERWATER_124, MAPSEC_ROUTE_124}, + {MAPSEC_UNDERWATER_125, MAPSEC_ROUTE_126}, + {MAPSEC_UNDERWATER_126, MAPSEC_ROUTE_127}, + {MAPSEC_UNDERWATER_127, MAPSEC_ROUTE_128}, + {MAPSEC_UNDERWATER_SOOTOPOLIS, MAPSEC_SOOTOPOLIS_CITY}, + {MAPSEC_UNDERWATER_128, MAPSEC_ROUTE_128}, + {MAPSEC_EVIL_TEAM_HIDEOUT, MAPSEC_LILYCOVE_CITY}, + {MAPSEC_UNDERWATER_SEALED_CHAMBER, MAPSEC_ROUTE_134}, + {MAPSEC_PETALBURG_WOODS, MAPSEC_ROUTE_104}, + {MAPSEC_JAGGED_PASS, MAPSEC_ROUTE_112}, + {MAPSEC_MT_PYRE, MAPSEC_ROUTE_122}, + {MAPSEC_SKY_PILLAR, MAPSEC_ROUTE_131}, + {MAPSEC_NOTHING, MAPSEC_NOTHING}, }; static u8 sub_80FAB78(void); @@ -593,7 +593,7 @@ void RegionMapDefaultZoomOffsetPlayerSprite(s16 a, s16 b) static u16 GetRegionMapSectionAt(u16 x, u16 y) { if (y < MAPCURSOR_Y_MIN || y > MAPCURSOR_Y_MAX || x < MAPCURSOR_X_MIN || x > MAPCURSOR_X_MAX) - return MAPSEC_Nothing; + return MAPSEC_NOTHING; y -= MAPCURSOR_Y_MIN; x -= MAPCURSOR_X_MIN; return sRegionMapLayout[x + y * 28]; @@ -632,7 +632,7 @@ static void InitializeCursorPosition(void) mapHeight = gMapHeader.mapData->height; x = gSaveBlock1.pos.x; y = gSaveBlock1.pos.y; - if (gRegionMap->mapSectionId == MAPSEC_Underwater128) + if (gRegionMap->mapSectionId == MAPSEC_UNDERWATER_128) gRegionMap->playerIsInCave = TRUE; break; case 3: @@ -659,7 +659,7 @@ static void InitializeCursorPosition(void) struct WarpData *r4; gRegionMap->mapSectionId = gMapHeader.regionMapSectionId; - if (gRegionMap->mapSectionId != MAPSEC_Dynamic) + if (gRegionMap->mapSectionId != MAPSEC_DYNAMIC) { r4 = &gSaveBlock1.warp4; mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum); @@ -697,12 +697,12 @@ static void InitializeCursorPosition(void) switch (gRegionMap->mapSectionId) { - case MAPSEC_Route114: + case MAPSEC_ROUTE_114: if (y != 0) x = 0; break; - case MAPSEC_Route126: - case MAPSEC_Underwater125: + case MAPSEC_ROUTE_126: + case MAPSEC_UNDERWATER_125: x = 0; if (gSaveBlock1.pos.x > 32) x = 1; @@ -714,7 +714,7 @@ static void InitializeCursorPosition(void) if (gSaveBlock1.pos.y > 0x38) y++; break; - case MAPSEC_Route121: + case MAPSEC_ROUTE_121: x = 0; if (r9 > 14) x = 1; @@ -740,16 +740,16 @@ static void sub_80FB600(void) switch (GetSSTidalLocation(&mapGroup, &mapNum, &sp2, &sp4)) { case 1: - gRegionMap->mapSectionId = MAPSEC_SlateportCity; + gRegionMap->mapSectionId = MAPSEC_SLATEPORT_CITY; break; case 2: - gRegionMap->mapSectionId = MAPSEC_LilycoveCity; + gRegionMap->mapSectionId = MAPSEC_LILYCOVE_CITY; break; case 3: - gRegionMap->mapSectionId = MAPSEC_Route124; + gRegionMap->mapSectionId = MAPSEC_ROUTE_124; break; case 4: - gRegionMap->mapSectionId = MAPSEC_Route131; + gRegionMap->mapSectionId = MAPSEC_ROUTE_131; break; default: case 0: @@ -783,44 +783,44 @@ static u16 sub_80FB758(u16 mapSectionId) { switch (mapSectionId) { - case MAPSEC_Nothing: + case MAPSEC_NOTHING: return 0; - case MAPSEC_LittlerootTown: + case MAPSEC_LITTLEROOT_TOWN: return FlagGet(FLAG_VISITED_LITTLEROOT_TOWN) ? 2 : 3; - case MAPSEC_OldaleTown: + case MAPSEC_OLDALE_TOWN: return FlagGet(FLAG_VISITED_OLDALE_TOWN) ? 2 : 3; - case MAPSEC_DewfordTown: + case MAPSEC_DEWFORD_TOWN: return FlagGet(FLAG_VISITED_DEWFORD_TOWN) ? 2 : 3; - case MAPSEC_LavaridgeTown: + case MAPSEC_LAVARIDGE_TOWN: return FlagGet(FLAG_VISITED_LAVARIDGE_TOWN) ? 2 : 3; - case MAPSEC_FallarborTown: + case MAPSEC_FALLARBOR_TOWN: return FlagGet(FLAG_VISITED_FALLARBOR_TOWN) ? 2 : 3; - case MAPSEC_VerdanturfTown: + case MAPSEC_VERDANTURF_TOWN: return FlagGet(FLAG_VISITED_VERDANTURF_TOWN) ? 2 : 3; - case MAPSEC_PacifidlogTown: + case MAPSEC_PACIFIDLOG_TOWN: return FlagGet(FLAG_VISITED_PACIFIDLOG_TOWN) ? 2 : 3; - case MAPSEC_PetalburgCity: + case MAPSEC_PETALBURG_CITY: return FlagGet(FLAG_VISITED_PETALBURG_CITY) ? 2 : 3; - case MAPSEC_SlateportCity: + case MAPSEC_SLATEPORT_CITY: return FlagGet(FLAG_VISITED_SLATEPORT_CITY) ? 2 : 3; - case MAPSEC_MauvilleCity: + case MAPSEC_MAUVILLE_CITY: return FlagGet(FLAG_VISITED_MAUVILLE_CITY) ? 2 : 3; - case MAPSEC_RustboroCity: + case MAPSEC_RUSTBORO_CITY: return FlagGet(FLAG_VISITED_RUSTBORO_CITY) ? 2 : 3; - case MAPSEC_FortreeCity: + case MAPSEC_FORTREE_CITY: return FlagGet(FLAG_VISITED_FORTREE_CITY) ? 2 : 3; - case MAPSEC_LilycoveCity: + case MAPSEC_LILYCOVE_CITY: return FlagGet(FLAG_VISITED_LILYCOVE_CITY) ? 2 : 3; - case MAPSEC_MossdeepCity: + case MAPSEC_MOSSDEEP_CITY: return FlagGet(FLAG_VISITED_MOSSDEEP_CITY) ? 2 : 3; - case MAPSEC_SootopolisCity: + case MAPSEC_SOOTOPOLIS_CITY: return FlagGet(FLAG_VISITED_SOOTOPOLIS_CITY) ? 2 : 3; - case MAPSEC_EverGrandeCity: + case MAPSEC_EVER_GRANDE_CITY: return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? 2 : 3; - case MAPSEC_BattleTower: + case MAPSEC_BATTLE_TOWER: return FlagGet(FLAG_LANDMARK_BATTLE_TOWER) ? 4 : 0; - case MAPSEC_SouthernIsland: + case MAPSEC_SOUTHERN_ISLAND: return FlagGet(FLAG_LANDMARK_SOUTHERN_ISLAND) ? 1 : 0; default: return 1; @@ -836,7 +836,7 @@ static u16 GetOverworldMapFromUnderwaterMap_(u16 mapSectionId) { u16 i; - for (i = 0; sUnderwaterMaps[i][0] != MAPSEC_Nothing; i++) + for (i = 0; sUnderwaterMaps[i][0] != MAPSEC_NOTHING; i++) { if (sUnderwaterMaps[i][0] == mapSectionId) return sUnderwaterMaps[i][1]; @@ -855,7 +855,7 @@ static void sub_80FBA18(void) u16 y; u16 i; - if (gRegionMap->mapSectionId == MAPSEC_Nothing) + if (gRegionMap->mapSectionId == MAPSEC_NOTHING) { gRegionMap->everGrandeCityArea = 0; return; @@ -1208,9 +1208,9 @@ void sub_80FBF94(void) const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length) { - if (mapSectionId == MAPSEC_SecretBase) + if (mapSectionId == MAPSEC_SECRET_BASE) return GetSecretBaseMapName(dest); - if (mapSectionId < MAPSEC_Nothing) + if (mapSectionId < MAPSEC_NOTHING) return StringCopy(dest, gRegionMapLocations[mapSectionId].regionMapSectionId); if (length == 0) length = 18; @@ -1221,9 +1221,9 @@ const u8 *CopyMapName(u8 *dest, u16 mapSectionId) { switch (mapSectionId) { - case MAPSEC_Dynamic: + case MAPSEC_DYNAMIC: return StringCopy(dest, gOtherText_Ferry); - case MAPSEC_SecretBase: + case MAPSEC_SECRET_BASE: return StringCopy(dest, gOtherText_SecretBase); default: return GetMapSectionName(dest, mapSectionId, 0); @@ -1232,7 +1232,7 @@ const u8 *CopyMapName(u8 *dest, u16 mapSectionId) const u8 *CopyLocationName(u8 *dest, u16 mapSectionId) { - if (mapSectionId == MAPSEC_EvilTeamHideout) + if (mapSectionId == MAPSEC_EVIL_TEAM_HIDEOUT) return StringCopy(dest, gOtherText_Hideout); else return CopyMapName(dest, mapSectionId); @@ -1330,7 +1330,7 @@ struct MultiPartMapSection // Map sections that are divided into multiple parts. Ever Grande City is the only one. static const struct MultiPartMapSection sMultiPartMapSections[1] = { - {sEverGrandeCityAreaNames, MAPSEC_EverGrandeCity, FLAG_SYS_POKEMON_LEAGUE_FLY}, + {sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY}, }; static struct UnknownStruct3 *const sFlyDataPtr = (struct UnknownStruct3 *)gSharedMem; @@ -1341,8 +1341,8 @@ static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons static const u16 sSpecialFlyAreas[][2] = { // flag, mapSectionId - {0x848, MAPSEC_BattleTower}, - {0xFFFF, MAPSEC_Nothing}, + {0x848, MAPSEC_BATTLE_TOWER}, + {0xFFFF, MAPSEC_NOTHING}, }; static const struct OamData sFlyTargetOamData = @@ -1607,7 +1607,7 @@ static void CreateSpecialAreaFlyTargetIcons(void) { u16 i; - for (i = 0; sSpecialFlyAreas[i][1] != MAPSEC_Nothing; i++) + for (i = 0; sSpecialFlyAreas[i][1] != MAPSEC_NOTHING; i++) { u16 x; u16 y; @@ -1716,16 +1716,16 @@ void sub_80FC69C(void) { switch (sFlyDataPtr->regionMap.mapSectionId) { - case MAPSEC_SouthernIsland: + case MAPSEC_SOUTHERN_ISLAND: sub_8053538(22); break; - case MAPSEC_BattleTower: + case MAPSEC_BATTLE_TOWER: sub_8053538(21); break; - case MAPSEC_LittlerootTown: + case MAPSEC_LITTLEROOT_TOWN: sub_8053538((gSaveBlock2.playerGender == MALE) ? 12 : 13); break; - case MAPSEC_EverGrandeCity: + case MAPSEC_EVER_GRANDE_CITY: sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && sFlyDataPtr->regionMap.everGrandeCityArea == 0) ? 20 : 11); break; default: diff --git a/src/tv.c b/src/tv.c index 046c6f14c..87cecbefc 100644 --- a/src/tv.c +++ b/src/tv.c @@ -90,31 +90,31 @@ const struct OutbreakPokemon gPokeOutbreakSpeciesList[5] = .species = SPECIES_SURSKIT, .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, .level = 3, - .location = MAPSEC_Route102, + .location = MAPSEC_ROUTE_102, }, { .species = SPECIES_SURSKIT, .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, .level = 15, - .location = MAPSEC_Route114, + .location = MAPSEC_ROUTE_114, }, { .species = SPECIES_SURSKIT, .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, .level = 15, - .location = MAPSEC_Route117, + .location = MAPSEC_ROUTE_117, }, { .species = SPECIES_SURSKIT, .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, .level = 28, - .location = MAPSEC_Route120, + .location = MAPSEC_ROUTE_120, }, { .species = SPECIES_SKITTY, .moves = {MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE}, .level = 15, - .location = MAPSEC_Route116, + .location = MAPSEC_ROUTE_116, }, }; -- cgit v1.2.3 From 478ac343ff97015adf5b61d8a80dfb1ac1180e67 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 26 Apr 2018 08:24:44 -0400 Subject: Use labels for two raw flag references --- src/region_map.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/region_map.c b/src/region_map.c index 4b591c2e5..190cc6576 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1341,7 +1341,7 @@ static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons static const u16 sSpecialFlyAreas[][2] = { // flag, mapSectionId - {0x848, MAPSEC_BATTLE_TOWER}, + {FLAG_LANDMARK_BATTLE_TOWER, MAPSEC_BATTLE_TOWER}, {0xFFFF, MAPSEC_NOTHING}, }; @@ -1565,7 +1565,7 @@ static void CreateFlyTargetGraphics(void) // Draws a light overlay on cities and towns that the player can fly to static void CreateCityTownFlyTargetIcons(void) { - u16 canFlyFlag = 0x80F; + u16 canFlyFlag = FLAG_VISITED_LITTLEROOT_TOWN; u16 i; for (i = 0; i < 16; i++) -- cgit v1.2.3