diff options
61 files changed, 4552 insertions, 6540 deletions
@@ -86,6 +86,7 @@ include graphics_file_rules.mk %.4bpp: %.png ; $(GFX) $< $@ %.8bpp: %.png ; $(GFX) $< $@ %.gbapal: %.pal ; $(GFX) $< $@ +%.gbapal: %.png ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index e52ed0c3d..4d693da3d 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -7383,12 +7383,12 @@ _08192932: ldr r1, [sp, 0x24] cmp r1, r0 bne _08192980 - ldr r0, =gUnknown_0860D1D0 + ldr r0, =gBattleDomePotentialPointers ldr r0, [r0, 0x40] b _0819298A .pool _08192980: - ldr r0, =gUnknown_0860D1D0 + ldr r0, =gBattleDomePotentialPointers ldr r2, [sp, 0x20] lsls r1, r2, 2 adds r1, r0 @@ -7503,7 +7503,7 @@ _08192A58: cmp r7, 0x2 ble _081929AE movs r7, 0 - ldr r2, =gUnknown_0860D214 + ldr r2, =gBattleDomeOpponentStylePointers mov r9, r2 ldr r3, =gUnknown_0860C988 mov r10, r3 @@ -8071,7 +8071,7 @@ _08192ED0: movs r7, 0x2A _08192ED2: lsls r0, r7, 2 - ldr r3, =gUnknown_0860D294 + ldr r3, =gBattleDomeOpponentStatsPointers adds r0, r3 ldr r0, [r0] str r0, [sp, 0xC] @@ -9029,7 +9029,7 @@ _081936A0: movs r0, 0xD0 strb r0, [r1, 0xD] ldr r4, =gStringVar4 - ldr r0, =gUnknown_0860D38C + ldr r0, =gBattleDomeWinStringsPointers ldr r7, [sp, 0x70] adds r0, r7, r0 ldr r1, [r0] @@ -9167,7 +9167,7 @@ _08193802: bl AddTextPrinter add r0, sp, 0xC strb r6, [r0, 0xA] - ldr r0, =gUnknown_0860D350 + ldr r0, =gBattleDomeMatchNumberPointers ldr r1, [sp, 0x58] adds r0, r1, r0 ldr r0, [r0] diff --git a/asm/field_region_map.s b/asm/field_region_map.s deleted file mode 100644 index 512dfb151..000000000 --- a/asm/field_region_map.s +++ /dev/null @@ -1,325 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_817018C -sub_817018C: @ 817018C - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0 - bl SetVBlankCallback - ldr r4, =gUnknown_0203BCD0 - movs r0, 0x89 - lsls r0, 4 - bl Alloc - str r0, [r4] - ldr r1, =0x0000088c - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - str r5, [r0] - ldr r0, =sub_81701C4 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817018C - - thumb_func_start sub_81701C4 -sub_81701C4: @ 81701C4 - push {lr} - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085E5068 - movs r0, 0x1 - movs r2, 0x2 - bl InitBgsFromTemplates - ldr r0, =gUnknown_085E5070 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x27 - movs r2, 0xD0 - bl sub_809882C - bl clear_scheduled_bg_copies_to_vram - ldr r0, =sub_8170274 - bl SetMainCallback2 - ldr r0, =sub_8170260 - bl SetVBlankCallback - pop {r0} - bx r0 - .pool - thumb_func_end sub_81701C4 - - thumb_func_start sub_8170260 -sub_8170260: @ 8170260 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8170260 - - thumb_func_start sub_8170274 -sub_8170274: @ 8170274 - push {lr} - bl sub_8170290 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl do_scheduled_bg_tilemap_copies_to_vram - pop {r0} - bx r0 - thumb_func_end sub_8170274 - - thumb_func_start sub_8170290 -sub_8170290: @ 8170290 - push {r4,r5,lr} - sub sp, 0xC - ldr r1, =gUnknown_0203BCD0 - ldr r0, [r1] - ldr r2, =0x0000088c - adds r0, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _081702A6 - b _08170416 -_081702A6: - lsls r0, 2 - ldr r1, =_081702BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081702BC: - .4byte _081702D8 - .4byte _08170300 - .4byte _08170358 - .4byte _08170380 - .4byte _08170394 - .4byte _081703C0 - .4byte _081703E8 -_081702D8: - ldr r0, [r4] - adds r0, 0x8 - movs r1, 0 - bl sub_8122CDC - movs r0, 0 - movs r1, 0 - bl sub_8124288 - movs r0, 0x1 - movs r1, 0x1 - bl sub_81240D4 - ldr r1, [r4] - ldr r0, =0x0000088c - adds r1, r0 - b _081703D8 - .pool -_08170300: - movs r0, 0x1 - movs r1, 0 - movs r2, 0x27 - movs r3, 0xD - bl SetWindowBorderStyle - ldr r5, =gText_Hoenn - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0 - movs r2, 0x27 - movs r3, 0xD - bl SetWindowBorderStyle - bl sub_8170428 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - b _081703CC - .pool -_08170358: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =gUnknown_0203BCD0 - ldr r1, [r0] - ldr r0, =0x0000088c - adds r1, r0 - b _081703D8 - .pool -_08170380: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08170416 - ldr r1, [r4] - b _081703D4 - .pool -_08170394: - bl sub_81230AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _081703A6 - bl sub_8170428 - b _08170416 -_081703A6: - cmp r0, 0x3 - blt _08170416 - cmp r0, 0x5 - bgt _08170416 - ldr r0, =gUnknown_0203BCD0 - ldr r1, [r0] - ldr r0, =0x0000088c - adds r1, r0 - b _081703D8 - .pool -_081703C0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 -_081703CC: - bl BeginNormalPaletteFade - ldr r0, =gUnknown_0203BCD0 - ldr r1, [r0] -_081703D4: - ldr r2, =0x0000088c - adds r1, r2 -_081703D8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08170416 - .pool -_081703E8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08170416 - bl sub_812305C - ldr r4, =gUnknown_0203BCD0 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - cmp r0, 0 - beq _08170412 - bl Free - str r5, [r4] -_08170412: - bl FreeAllWindowBuffers -_08170416: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8170290 - - thumb_func_start sub_8170428 -sub_8170428: @ 8170428 - push {r4,lr} - sub sp, 0xC - ldr r4, =gUnknown_0203BCD0 - ldr r0, [r4] - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _08170460 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, [r4] - adds r2, 0xC - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - b _08170470 - .pool -_08170460: - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08170470: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8170428 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/heal_location.s b/asm/heal_location.s deleted file mode 100644 index f7947d34e..000000000 --- a/asm/heal_location.s +++ /dev/null @@ -1,83 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8122C5C -sub_8122C5C: @ 8122C5C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r2, =gUnknown_0859F53C -_08122C6A: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _08122C84 - movs r0, 0x1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _08122C84 - adds r0, r3, 0x1 - b _08122C8E - .pool -_08122C84: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x15 - bls _08122C6A - movs r0, 0 -_08122C8E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8122C5C - - thumb_func_start sub_8122C94 -sub_8122C94: @ 8122C94 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_8122C5C - cmp r0, 0 - beq _08122CB4 - lsls r0, 3 - ldr r1, =gUnknown_0859F534 - adds r0, r1 - b _08122CB6 - .pool -_08122CB4: - movs r0, 0 -_08122CB6: - pop {r1} - bx r1 - thumb_func_end sub_8122C94 - - thumb_func_start sub_8122CBC -@ warpdata *sub_8122CBC(int a1) -sub_8122CBC: @ 8122CBC - push {lr} - cmp r0, 0 - beq _08122CD4 - cmp r0, 0x16 - bhi _08122CD4 - lsls r0, 3 - ldr r1, =gUnknown_0859F534 - adds r0, r1 - b _08122CD6 - .pool -_08122CD4: - movs r0, 0 -_08122CD6: - pop {r1} - bx r1 - thumb_func_end sub_8122CBC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/party_menu.s b/asm/party_menu.s index 4c8d90530..0e6267b0d 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -9892,7 +9892,7 @@ _081B55E8: .pool _081B5614: ldr r1, =gUnknown_0203CEC8 - ldr r0, =sub_8124690 + ldr r0, =MCB2_FlyMap b _081B5628 .pool _081B5624: diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index b599b365c..9bf70a379 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -362,7 +362,7 @@ sub_813CD04: @ 813CD04 adds r1, r3, 0 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] - bl sub_8123F9C + bl CorrectSpecialMapSecId ldr r2, [r4] movs r1, 0x88 lsls r1, 1 @@ -653,7 +653,7 @@ _0813CF5A: adds r0, r4, 0 adds r1, r6, 0 str r3, [sp] - bl sub_8123E9C + bl GetRegionMapSectionIdAt ldr r3, [sp] ldr r2, [r3] mov r7, r9 @@ -1338,11 +1338,11 @@ _0813D4F8: bl sub_8122D88 movs r0, 0x1 movs r1, 0x1 - bl sub_8124288 + bl CreateRegionMapPlayerIcon movs r1, 0x8 negs r1, r1 movs r0, 0 - bl sub_8123824 + bl PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs b _0813D584 .pool _0813D520: diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 4d7fe3d62..f7941335d 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,224 +5,8 @@ .text - thumb_func_start CountMonsInBox -CountMonsInBox: @ 80C6FA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r5, 0 -_080C6FAA: - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - beq _080C6FC0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C6FC0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080C6FAA - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CountMonsInBox - - thumb_func_start sub_80C6FD4 -sub_80C6FD4: @ 80C6FD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_080C6FDC: - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _080C6FF2 - lsls r0, r4, 16 - asrs r0, 16 - b _080C7000 -_080C6FF2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080C6FDC - movs r0, 0x1 - negs r0, r0 -_080C7000: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C6FD4 - - thumb_func_start sub_80C7008 -sub_80C7008: @ 80C7008 - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_080C700E: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C7036 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080C7036 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080C7036: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _080C700E - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C7008 - - thumb_func_start sub_80C7050 -sub_80C7050: @ 80C7050 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_080C705A: - cmp r5, r7 - beq _080C7092 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C7092 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080C7092 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080C7092 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080C7092: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _080C705A - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C7050 - - thumb_func_start sub_80C70AC -sub_80C70AC: @ 80C70AC - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_80C7050 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C70AC - - thumb_func_start sub_80C70C4 -sub_80C70C4: @ 80C70C4 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_080C70CA: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C70E2 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C70E2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _080C70CA - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C70C4 - - thumb_func_start sub_80C70FC -sub_80C70FC: @ 80C70FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _080C711A - movs r0, 0 -_080C7112: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _080C7112 -_080C711A: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C70FC - thumb_func_start sub_80C7128 + thumb_func_start sub_80C7128 sub_80C7128: @ 80C7128 push {r4-r7,lr} mov r7, r9 @@ -578,7 +362,7 @@ _080C73F6: ldrsh r4, [r5, r3] cmp r4, 0 bne _080C7428 - bl sub_80C70C4 + bl CountPartyMons lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 @@ -601,7 +385,7 @@ _080C7428: ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080C745C - bl sub_80C70C4 + bl CountPartyMons lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 @@ -13381,7 +13165,7 @@ sub_80CE19C: @ 80CE19C lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 - bl sub_80C6FD4 + bl GetFirstFreeBoxSpot lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 @@ -14127,7 +13911,7 @@ _080CE838: ldr r2, =0x00002187 adds r1, r2 strb r0, [r1] - bl sub_80C70C4 + bl CountPartyMons ldr r1, [r4] subs r0, 0x1 ldr r2, =0x00002186 @@ -14347,7 +14131,7 @@ sub_80CEA30: @ 80CEA30 bne _080CEA64 ldr r0, =gUnknown_02039D79 ldrb r0, [r0] - bl sub_80C7050 + bl CountPartyAliveNonEggMonsExcept lsls r0, 24 cmp r0, 0 bne _080CEA64 @@ -14376,7 +14160,7 @@ sub_80CEA6C: @ 80CEA6C bne _080CEAAC ldr r0, =gUnknown_02039D79 ldrb r0, [r0] - bl sub_80C7050 + bl CountPartyAliveNonEggMonsExcept lsls r0, 24 cmp r0, 0 bne _080CEAAC diff --git a/asm/pokenav.s b/asm/pokenav.s index c6e058955..249258404 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -10864,7 +10864,7 @@ sub_81CC670: @ 81CC670 movs r0, 0x4 bl sub_81C763C adds r4, r0, 0 - bl sub_812305C + bl FreeRegionMapIconResources bl sub_81CC9EC ldrb r0, [r4, 0x8] bl RemoveWindow @@ -10886,7 +10886,7 @@ sub_81CC6A4: @ 81CC6A4 bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_81237B4 + bl UpdateRegionMapVideoRegs pop {r0} bx r0 thumb_func_end sub_81CC6A4 @@ -10991,10 +10991,10 @@ _081CC784: bne _081CC7AC movs r0, 0x4 movs r1, 0x9 - bl sub_8124288 + bl CreateRegionMapPlayerIcon movs r0, 0x5 movs r1, 0xA - bl sub_81240D4 + bl CreateRegionMapCursor bl sub_812454C b _081CC77C _081CC7AC: diff --git a/asm/region_map.s b/asm/region_map.s deleted file mode 100644 index 032bdf7a5..000000000 --- a/asm/region_map.s +++ /dev/null @@ -1,4288 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8122CDC -sub_8122CDC: @ 8122CDC - push {lr} - lsls r2, r1, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_8122CF8 -_08122CE8: - bl sub_8122DB0 - lsls r0, 24 - cmp r0, 0 - bne _08122CE8 - pop {r0} - bx r0 - thumb_func_end sub_8122CDC - - thumb_func_start sub_8122CF8 -sub_8122CF8: @ 8122CF8 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =gUnknown_0203A144 - str r0, [r3] - movs r1, 0x79 - adds r1, r0 - mov r12, r1 - movs r1, 0 - mov r5, r12 - strb r1, [r5] - adds r0, 0x78 - strb r2, [r0] - ldr r1, [r3] - cmp r2, 0x1 - bne _08122D28 - ldr r0, =sub_8123254 - b _08122D2A - .pool -_08122D28: - ldr r0, =sub_81230C4 -_08122D2A: - str r0, [r1, 0x18] - cmp r4, 0 - beq _08122D64 - ldr r1, [r3] - ldr r0, [r4] - lsls r0, 30 - lsrs r0, 30 - adds r1, 0x80 - strb r0, [r1] - ldr r1, [r3] - ldr r0, [r4] - lsls r0, 28 - lsrs r0, 30 - adds r1, 0x81 - strb r0, [r1] - ldr r1, [r3] - ldr r0, [r4] - lsls r0, 23 - lsrs r0, 27 - adds r1, 0x82 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x83 - movs r1, 0x1 - strb r1, [r0] - b _08122D80 - .pool -_08122D64: - ldr r0, [r3] - adds r0, 0x80 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r3] - adds r0, 0x81 - strb r1, [r0] - ldr r0, [r3] - adds r0, 0x82 - movs r1, 0x1C - strb r1, [r0] - ldr r0, [r3] - adds r0, 0x83 - strb r4, [r0] -_08122D80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8122CF8 - - thumb_func_start sub_8122D88 -sub_8122D88: @ 8122D88 - push {r4,lr} - ldr r4, =gUnknown_0203A144 - str r0, [r4] - bl sub_81238AC - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x54 - ldrh r1, [r0] - adds r0, 0x20 - strh r1, [r0] - subs r0, 0x1E - ldrh r1, [r0] - adds r0, 0x20 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8122D88 - - thumb_func_start sub_8122DB0 -sub_8122DB0: @ 8122DB0 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08122DC2 - b _0812300C -_08122DC2: - lsls r0, 2 - ldr r1, =_08122DD4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08122DD4: - .4byte _08122DF4 - .4byte _08122E2C - .4byte _08122E78 - .4byte _08122E94 - .4byte _08122EB0 - .4byte _08122ECC - .4byte _08122F10 - .4byte _08122F8C -_08122DF4: - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - cmp r0, 0 - beq _08122E18 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - ldr r1, =gUnknown_0859F77C - movs r2, 0 - str r2, [sp] - b _08122E52 - .pool -_08122E18: - ldr r0, =gUnknown_0859F77C - ldr r1, =0x06008000 - bl LZ77UnCompVram - b _08123014 - .pool -_08122E2C: - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - adds r0, 0x83 - ldrb r0, [r0] - cmp r0, 0 - beq _08122E64 - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _08122E44 - b _08123014 -_08122E44: - ldr r0, [r4] - adds r0, 0x80 - ldrb r0, [r0] - ldr r1, =gUnknown_085A04E0 - movs r2, 0x1 - str r2, [sp] - movs r2, 0 -_08122E52: - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08123014 - .pool -_08122E64: - ldr r0, =gUnknown_085A04E0 - ldr r1, =0x0600e000 - bl LZ77UnCompVram - b _08123014 - .pool -_08122E78: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _08122E84 - b _08123014 -_08122E84: - ldr r0, =gUnknown_0859F73C - movs r1, 0x70 - movs r2, 0x60 - bl LoadPalette - b _08123014 - .pool -_08122E94: - ldr r0, =gUnknown_0859F60C - ldr r1, =gUnknown_0203A144 - ldr r1, [r1] - movs r2, 0xC2 - lsls r2, 1 - adds r1, r2 - bl LZ77UnCompWram - b _08123014 - .pool -_08122EB0: - ldr r0, =gUnknown_0859F650 - ldr r1, =gUnknown_0203A144 - ldr r1, [r1] - movs r5, 0xA1 - lsls r5, 2 - adds r1, r5 - bl LZ77UnCompWram - b _08123014 - .pool -_08122ECC: - bl sub_81238AC - ldr r4, =gUnknown_0203A144 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x54 - ldrh r1, [r0] - adds r0, 0x20 - strh r1, [r0] - subs r0, 0x1E - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x76 - strh r0, [r1] - ldrh r0, [r2] - bl sub_8123EB4 - ldr r1, [r4] - strh r0, [r1] - ldrh r0, [r1] - bl get_flagnr_blue_points - ldr r1, [r4] - strb r0, [r1, 0x2] - ldr r1, [r4] - adds r0, r1, 0x4 - ldrh r1, [r1] - movs r2, 0x10 - bl GetMapName - b _08123014 - .pool -_08122F10: - ldr r0, =gUnknown_0203A144 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x78 - ldrb r1, [r0] - cmp r1, 0 - bne _08122F3C - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81236C4 - b _08123014 - .pool -_08122F3C: - adds r1, r4, 0 - adds r1, 0x54 - ldrh r0, [r1] - lsls r0, 3 - subs r0, 0x34 - adds r2, r4, 0 - adds r2, 0x5C - movs r3, 0 - strh r0, [r2] - movs r0, 0x56 - adds r0, r4 - mov r12, r0 - ldrh r0, [r0] - lsls r0, 3 - subs r0, 0x44 - adds r5, r4, 0 - adds r5, 0x5E - strh r0, [r5] - ldrh r1, [r1] - adds r0, r4, 0 - adds r0, 0x64 - strh r1, [r0] - mov r0, r12 - ldrh r1, [r0] - adds r0, r4, 0 - adds r0, 0x66 - strh r1, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x80 - str r2, [sp] - str r2, [sp, 0x4] - str r3, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_81236C4 - b _08123014 -_08122F8C: - bl sub_8123FB0 - bl sub_81237B4 - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - movs r1, 0 - str r1, [r0, 0x1C] - str r1, [r0, 0x20] - adds r0, 0x7A - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x7E - strb r1, [r0] - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - cmp r0, 0 - beq _08123002 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - movs r1, 0x3 - movs r2, 0x2 - bl SetBgAttribute - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - adds r1, 0x81 - ldrb r2, [r1] - movs r1, 0x1 - bl SetBgAttribute - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - adds r1, 0x82 - ldrb r2, [r1] - movs r1, 0x2 - bl SetBgAttribute - ldr r0, [r4] - adds r0, 0x80 - ldrb r0, [r0] - movs r1, 0x6 - movs r2, 0x1 - bl SetBgAttribute - ldr r0, [r4] - adds r0, 0x80 - ldrb r0, [r0] - movs r1, 0x4 - movs r2, 0x1 - bl SetBgAttribute -_08123002: - ldr r1, [r4] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0812300C: - movs r0, 0 - b _08123022 - .pool -_08123014: - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_08123022: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8122DB0 - - thumb_func_start sub_8123030 -sub_8123030: @ 8123030 - push {lr} - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0xE0 - lsls r0, 2 - lsls r1, 24 - lsrs r1, 24 - bl BlendPalettes - ldr r0, =gPlttBufferFaded + 0xE0 - ldr r1, =gPlttBufferUnfaded + 0xE0 - movs r2, 0x30 - bl CpuSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_8123030 - - thumb_func_start sub_812305C -sub_812305C: @ 812305C - push {r4,lr} - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _08123080 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_08123080: - ldr r0, [r4] - ldr r0, [r0, 0x20] - cmp r0, 0 - beq _081230A0 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x70 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x72 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_081230A0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812305C - - thumb_func_start sub_81230AC -sub_81230AC: @ 81230AC - push {lr} - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldr r0, [r0, 0x18] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81230AC - - thumb_func_start sub_81230C4 -sub_81230C4: @ 81230C4 - push {r4,lr} - movs r4, 0 - ldr r2, =gUnknown_0203A144 - ldr r0, [r2] - adds r0, 0x7B - strb r4, [r0] - ldr r0, [r2] - adds r0, 0x7C - strb r4, [r0] - ldr r3, =gMain - ldrh r1, [r3, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081230F6 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0x2 - bls _081230F6 - adds r1, 0x7C - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_081230F6: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08123114 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0xF - bhi _08123114 - adds r1, 0x7C - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_08123114: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08123132 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1 - bls _08123132 - adds r1, 0x7B - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_08123132: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08123150 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1B - bhi _08123150 - adds r1, 0x7B - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_08123150: - ldrh r3, [r3, 0x2E] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08123168 - movs r4, 0x4 - b _08123172 - .pool -_08123168: - movs r0, 0x2 - ands r0, r3 - cmp r0, 0 - beq _08123172 - movs r4, 0x5 -_08123172: - cmp r4, 0x1 - bne _08123184 - ldr r0, [r2] - adds r0, 0x7A - movs r1, 0x4 - strb r1, [r0] - ldr r1, [r2] - ldr r0, =_swiopen - str r0, [r1, 0x18] -_08123184: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81230C4 - - thumb_func_start _swiopen -_swiopen: @ 8123190 - push {r4,r5,lr} - ldr r5, =gUnknown_0203A144 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7A - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _081231AC - movs r0, 0x2 - b _08123248 - .pool -_081231AC: - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _081231C2 - adds r1, 0x54 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081231C2: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _081231DA - adds r1, 0x54 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_081231DA: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _081231F2 - adds r1, 0x56 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081231F2: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _0812320A - adds r1, 0x56 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_0812320A: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - adds r1, 0x56 - ldrh r1, [r1] - bl sub_812386C - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl get_flagnr_blue_points - ldr r1, [r5] - strb r0, [r1, 0x2] - ldr r1, [r5] - ldrh r0, [r1] - cmp r4, r0 - beq _0812323C - strh r4, [r1] - adds r0, r1, 0x4 - ldrh r1, [r1] - movs r2, 0x10 - bl GetMapName -_0812323C: - bl sub_8123FB0 - ldr r1, [r5] - ldr r0, =sub_81230C4 - str r0, [r1, 0x18] - movs r0, 0x3 -_08123248: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end _swiopen - - thumb_func_start sub_8123254 -sub_8123254: @ 8123254 - push {r4-r6,lr} - movs r4, 0 - ldr r3, =gUnknown_0203A144 - ldr r0, [r3] - mov r12, r0 - adds r0, 0x6A - strh r4, [r0] - mov r5, r12 - adds r5, 0x68 - strh r4, [r5] - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0 - beq _0812328E - mov r0, r12 - adds r0, 0x5E - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0x34 - negs r0, r0 - cmp r1, r0 - ble _0812328E - ldr r0, =0x0000ffff - strh r0, [r5] - movs r4, 0x1 -_0812328E: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081232AE - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5E - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0x3B - bgt _081232AE - adds r1, 0x68 - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_081232AE: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081232D4 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x5C - movs r5, 0 - ldrsh r1, [r0, r5] - movs r0, 0x2C - negs r0, r0 - cmp r1, r0 - ble _081232D4 - adds r1, r2, 0 - adds r1, 0x6A - ldr r0, =0x0000ffff - strh r0, [r1] - movs r4, 0x1 -_081232D4: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081232F4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5C - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0xAB - bgt _081232F4 - adds r1, 0x6A - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_081232F4: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08123300 - movs r4, 0x4 -_08123300: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0812330A - movs r4, 0x5 -_0812330A: - cmp r4, 0x1 - bne _0812331A - ldr r0, [r6] - ldr r1, =sub_8123334 - str r1, [r0, 0x18] - adds r0, 0x6C - movs r1, 0 - strh r1, [r0] -_0812331A: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8123254 - - thumb_func_start sub_8123334 -sub_8123334: @ 8123334 - push {r4,r5,lr} - ldr r5, =gUnknown_0203A144 - ldr r2, [r5] - adds r3, r2, 0 - adds r3, 0x5E - adds r0, r2, 0 - adds r0, 0x68 - ldrh r0, [r0] - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - adds r1, r2, 0 - adds r1, 0x5C - adds r0, r2, 0 - adds r0, 0x6A - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - movs r4, 0 - ldrsh r0, [r1, r4] - movs r2, 0 - ldrsh r1, [r3, r2] - bl sub_812378C - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x6C - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _08123410 - adds r0, r2, 0 - adds r0, 0x5C - movs r3, 0 - ldrsh r1, [r0, r3] - adds r0, r1, 0 - adds r0, 0x2C - cmp r0, 0 - bge _0812338C - adds r0, 0x7 -_0812338C: - asrs r0, 3 - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r2, 0 - adds r0, 0x5E - movs r4, 0 - ldrsh r1, [r0, r4] - adds r0, r1, 0 - adds r0, 0x34 - cmp r0, 0 - bge _081233A6 - adds r0, 0x7 -_081233A6: - asrs r0, 3 - adds r0, 0x2 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, r2, 0 - adds r4, 0x64 - adds r0, r2, 0 - adds r0, 0x66 - ldrh r2, [r4] - cmp r3, r2 - bne _081233C2 - ldrh r2, [r0] - cmp r1, r2 - beq _081233F2 -_081233C2: - strh r3, [r4] - strh r1, [r0] - adds r0, r3, 0 - bl sub_812386C - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl get_flagnr_blue_points - ldr r1, [r5] - strb r0, [r1, 0x2] - ldr r1, [r5] - ldrh r3, [r1] - cmp r4, r3 - beq _081233EE - strh r4, [r1] - adds r0, r1, 0x4 - ldrh r1, [r1] - movs r2, 0x10 - bl GetMapName -_081233EE: - bl sub_8123FB0 -_081233F2: - ldr r0, =gUnknown_0203A144 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x6C - movs r0, 0 - strh r0, [r1] - ldr r0, =sub_8123254 - str r0, [r2, 0x18] - movs r0, 0x3 - b _08123412 - .pool -_08123410: - movs r0, 0x2 -_08123412: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8123334 - - thumb_func_start sub_8123418 -sub_8123418: @ 8123418 - push {r4-r6,lr} - ldr r1, =gUnknown_0203A144 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - adds r5, r1, 0 - cmp r3, 0 - bne _0812349C - subs r0, 0x1A - strh r3, [r0] - subs r0, 0x2 - strh r3, [r0] - str r3, [r2, 0x40] - str r3, [r2, 0x3C] - adds r4, r2, 0 - adds r4, 0x54 - ldrh r0, [r4] - lsls r0, 3 - subs r0, 0x34 - adds r1, r2, 0 - adds r1, 0x60 - strh r0, [r1] - movs r0, 0x56 - adds r0, r2 - mov r12, r0 - ldrh r0, [r0] - lsls r0, 3 - subs r0, 0x44 - adds r3, r2, 0 - adds r3, 0x62 - strh r0, [r3] - movs r6, 0 - ldrsh r0, [r1, r6] - lsls r0, 8 - cmp r0, 0 - bge _08123464 - adds r0, 0xF -_08123464: - asrs r0, 4 - str r0, [r2, 0x44] - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 8 - cmp r0, 0 - bge _08123474 - adds r0, 0xF -_08123474: - asrs r0, 4 - str r0, [r2, 0x48] - ldrh r1, [r4] - adds r0, r2, 0 - adds r0, 0x64 - strh r1, [r0] - mov r3, r12 - ldrh r0, [r3] - adds r1, r2, 0 - adds r1, 0x66 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 9 - str r0, [r2, 0x4C] - ldr r0, =0xfffff800 - b _081234FA - .pool -_0812349C: - adds r0, r2, 0 - adds r0, 0x5C - movs r6, 0 - ldrsh r0, [r0, r6] - lsls r0, 8 - str r0, [r2, 0x3C] - adds r0, r2, 0 - adds r0, 0x5E - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0x60 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, [r2, 0x3C] - cmp r0, 0 - bge _081234C8 - adds r0, 0xF -_081234C8: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x44] - ldr r0, [r2, 0x40] - cmp r0, 0 - bge _081234D6 - adds r0, 0xF -_081234D6: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x48] - adds r0, r2, 0 - adds r0, 0x64 - ldrh r1, [r0] - subs r0, 0x10 - strh r1, [r0] - adds r0, 0x12 - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x56 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 8 - str r0, [r2, 0x4C] - movs r0, 0x80 - lsls r0, 4 -_081234FA: - str r0, [r2, 0x50] - ldr r0, [r5] - adds r0, 0x6E - movs r1, 0 - strh r1, [r0] - bl sub_8124238 - bl sub_81243B0 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8123418 - - thumb_func_start sub_8123514 -sub_8123514: @ 8123514 - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203A144 - ldr r3, [r0] - adds r2, r3, 0 - adds r2, 0x6E - ldrh r1, [r2] - adds r5, r0, 0 - cmp r1, 0xF - bls _08123530 - movs r0, 0 - b _081236B8 - .pool -_08123530: - adds r0, r1, 0x1 - movs r1, 0 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x10 - bne _081235A4 - str r1, [r3, 0x44] - str r1, [r3, 0x48] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r1, [r0] - subs r0, 0x4 - strh r1, [r0] - adds r0, 0x6 - ldrh r0, [r0] - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - adds r1, 0x1A - ldrb r0, [r1] - movs r2, 0x80 - lsls r2, 9 - cmp r0, 0 - bne _08123566 - movs r2, 0x80 - lsls r2, 8 -_08123566: - str r2, [r3, 0x4C] - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _08123572 - movs r2, 0x1 -_08123572: - strb r2, [r1] - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - ldr r2, =sub_8123254 - cmp r0, 0 - bne _08123584 - ldr r2, =sub_81230C4 -_08123584: - str r2, [r1, 0x18] - adds r0, r1, 0 - adds r0, 0x58 - ldrh r0, [r0] - adds r1, 0x5A - ldrh r1, [r1] - bl sub_81240D4 - bl sub_81243DC - movs r4, 0 - b _08123686 - .pool -_081235A4: - ldr r2, [r3, 0x3C] - ldr r0, [r3, 0x44] - adds r2, r0 - str r2, [r3, 0x3C] - ldr r0, [r3, 0x40] - ldr r1, [r3, 0x48] - adds r0, r1 - str r0, [r3, 0x40] - asrs r2, 8 - adds r4, r3, 0 - adds r4, 0x5C - strh r2, [r4] - ldr r0, [r3, 0x40] - asrs r0, 8 - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - ldr r0, [r3, 0x4C] - ldr r1, [r3, 0x50] - adds r0, r1 - str r0, [r3, 0x4C] - ldr r2, [r3, 0x44] - cmp r2, 0 - bge _081235E4 - adds r0, r3, 0 - adds r0, 0x60 - movs r6, 0 - ldrsh r1, [r4, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - blt _081235F8 -_081235E4: - cmp r2, 0 - ble _08123608 - adds r0, r3, 0 - adds r0, 0x60 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _08123608 -_081235F8: - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r2, [r0] - subs r0, 0x4 - movs r1, 0 - strh r2, [r0] - str r1, [r3, 0x44] -_08123608: - ldr r2, [r5] - ldr r4, [r2, 0x48] - cmp r4, 0 - bge _08123624 - adds r0, r2, 0 - adds r0, 0x5E - adds r3, r2, 0 - adds r3, 0x62 - movs r6, 0 - ldrsh r1, [r0, r6] - movs r6, 0 - ldrsh r0, [r3, r6] - cmp r1, r0 - blt _0812363C -_08123624: - cmp r4, 0 - ble _0812364E - adds r1, r2, 0 - adds r1, 0x5E - adds r0, r2, 0 - adds r0, 0x62 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _0812364E -_0812363C: - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x62 - ldrh r1, [r0] - adds r3, r2, 0 - adds r3, 0x5E - movs r0, 0 - strh r1, [r3] - str r0, [r2, 0x48] -_0812364E: - ldr r0, =gUnknown_0203A144 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - cmp r3, 0 - bne _08123674 - ldr r1, [r2, 0x4C] - ldr r0, =0x00007fff - cmp r1, r0 - bgt _08123684 - adds r0, 0x1 - str r0, [r2, 0x4C] - str r3, [r2, 0x50] - b _08123684 - .pool -_08123674: - ldr r0, [r2, 0x4C] - movs r1, 0x80 - lsls r1, 9 - cmp r0, r1 - ble _08123684 - str r1, [r2, 0x4C] - movs r0, 0 - str r0, [r2, 0x50] -_08123684: - movs r4, 0x1 -_08123686: - ldr r0, =gUnknown_0203A144 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x5C - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r3, 0 - adds r1, 0x5E - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_81236C4 - adds r0, r4, 0 -_081236B8: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8123514 - - thumb_func_start sub_81236C4 -sub_81236C4: @ 81236C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r7, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r4, 16 - lsrs r4, 16 - mov r8, r4 - lsls r7, 16 - adds r4, r7, 0 - lsrs r4, 16 - mov r9, r4 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gUnknown_0203A144 - ldr r6, [r4] - ldr r7, =gSineTable - mov r12, r7 - adds r4, r5, 0 - adds r4, 0x40 - lsls r4, 1 - add r4, r12 - movs r7, 0 - ldrsh r4, [r4, r7] - str r4, [sp] - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r10, r4 - str r4, [r6, 0x2C] - lsls r5, 1 - add r5, r12 - movs r7, 0 - ldrsh r5, [r5, r7] - negs r4, r5 - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r12, r4 - str r4, [r6, 0x30] - mov r7, r9 - muls r7, r5 - adds r5, r7, 0 - asrs r5, 8 - str r5, [r6, 0x34] - ldr r7, [sp] - mov r4, r9 - muls r4, r7 - asrs r4, 8 - mov r8, r4 - str r4, [r6, 0x38] - lsls r0, 16 - asrs r0, 8 - lsls r2, 16 - asrs r2, 16 - lsls r4, r2, 8 - adds r0, r4 - lsls r3, 16 - asrs r3, 16 - adds r4, r3, 0 - muls r4, r5 - mov r5, r10 - muls r5, r2 - adds r4, r5 - subs r0, r4 - str r0, [r6, 0x24] - lsls r1, 16 - asrs r1, 8 - lsls r0, r3, 8 - adds r1, r0 - mov r0, r8 - muls r0, r3 - mov r3, r12 - muls r3, r2 - adds r2, r3, 0 - adds r0, r2 - subs r1, r0 - str r1, [r6, 0x28] - adds r6, 0x7D - movs r0, 0x1 - strb r0, [r6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81236C4 - - thumb_func_start sub_812378C -sub_812378C: @ 812378C - ldr r2, =gUnknown_0203A144 - ldr r2, [r2] - lsls r0, 16 - asrs r0, 8 - movs r3, 0xE0 - lsls r3, 5 - adds r0, r3 - str r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 8 - movs r0, 0x90 - lsls r0, 6 - adds r1, r0 - str r1, [r2, 0x28] - adds r2, 0x7D - movs r0, 0x1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_812378C - - thumb_func_start sub_81237B4 -sub_81237B4: @ 81237B4 - push {r4,lr} - ldr r4, =gUnknown_0203A144 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _0812381A - ldrh r1, [r1, 0x2C] - movs r0, 0x20 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x34] - movs r0, 0x22 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x30] - movs r0, 0x24 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x38] - movs r0, 0x26 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x24] - movs r0, 0x28 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x26] - movs r0, 0x2A - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x28] - movs r0, 0x2C - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x2A] - movs r0, 0x2E - bl SetGpuReg - ldr r0, [r4] - adds r0, 0x7D - movs r1, 0 - strb r1, [r0] -_0812381A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81237B4 - - thumb_func_start sub_8123824 -sub_8123824: @ 8123824 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x38 - movs r3, 0x48 - bl sub_81236C4 - bl sub_81237B4 - ldr r0, =gUnknown_0203A144 - ldr r2, [r0] - ldr r1, [r2, 0x20] - cmp r1, 0 - beq _08123860 - negs r0, r4 - strh r0, [r1, 0x24] - ldr r1, [r2, 0x20] - negs r0, r5 - strh r0, [r1, 0x26] -_08123860: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8123824 - - thumb_func_start sub_812386C -sub_812386C: @ 812386C - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - ldr r0, =0xfffe0000 - adds r1, r0 - lsrs r2, r1, 16 - cmp r2, 0xE - bhi _08123886 - cmp r3, 0 - beq _08123886 - cmp r3, 0x1C - bls _08123890 -_08123886: - movs r0, 0xD5 - b _081238A4 - .pool -_08123890: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, =gUnknown_085A096C - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r1 - ldrb r0, [r0] -_081238A4: - pop {r1} - bx r1 - .pool - thumb_func_end sub_812386C - - thumb_func_start sub_81238AC -sub_81238AC: @ 81238AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0x4 - ldrsb r1, [r2, r1] - adds r3, r0, 0 - cmp r1, 0x19 - bne _081238DC - ldrb r0, [r2, 0x5] - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081238DC - bl sub_8123C00 - b _08123BEC - .pool -_081238DC: - ldr r1, [r3] - movs r0, 0x4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - bl get_map_light_level_by_bank_and_number - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x8 - bhi _08123928 - lsls r0, 2 - ldr r1, =_08123904 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08123904: - .4byte _08123928 - .4byte _08123928 - .4byte _08123928 - .4byte _0812396C - .4byte _08123928 - .4byte _08123928 - .4byte _0812396C - .4byte _08123A28 - .4byte _081239E4 -_08123928: - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldr r3, =gMapHeader - ldrb r1, [r3, 0x14] - movs r2, 0 - strh r1, [r0] - adds r0, 0x7F - strb r2, [r0] - ldr r0, [r3] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r9, r0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r6, [r0] - ldrh r3, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1] - cmp r0, 0x45 - beq _08123956 - cmp r0, 0xCC - beq _08123956 - b _08123ABE -_08123956: - adds r1, 0x7F - movs r0, 0x1 - strb r0, [r1] - b _08123ABE - .pool -_0812396C: - ldr r2, =gMapHeader - ldrb r1, [r2, 0x1A] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081239C8 - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r1, 0x25 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r5, r0, 0 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldrb r1, [r5, 0x14] - strh r1, [r0] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r9, r0 - ldr r0, [r4] - ldrh r6, [r0, 0x28] - ldrh r3, [r0, 0x2A] - b _08123ABE - .pool -_081239C8: - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldrb r1, [r2, 0x14] - strh r1, [r0] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - movs r2, 0x1 - mov r9, r2 - movs r6, 0x1 - movs r3, 0x1 - b _08123ABE - .pool -_081239E4: - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - movs r0, 0x14 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x15] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r5, r0, 0 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldrb r1, [r5, 0x14] - strh r1, [r0] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r9, r0 - ldr r0, [r4] - ldrh r6, [r0, 0x18] - ldrh r3, [r0, 0x1A] - b _08123ABE - .pool -_08123A28: - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldr r1, =gMapHeader - ldrb r1, [r1, 0x14] - strh r1, [r0] - cmp r1, 0x57 - beq _08123A64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - adds r7, r0, 0 - adds r7, 0x24 - movs r0, 0 - ldrsb r0, [r7, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r7, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r5, r0, 0 - b _08123A8A - .pool -_08123A64: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - adds r7, r0, 0 - adds r7, 0x14 - ldrb r0, [r0, 0x14] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r7, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r5, r0, 0 - ldr r1, [r4] - ldrb r0, [r5, 0x14] - strh r0, [r1] -_08123A8A: - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldrb r0, [r0] - bl sub_8123F74 - adds r1, r0, 0 - cmp r1, 0 - beq _08123AAC - ldr r0, [r4] - adds r0, 0x7F - movs r1, 0x1 - b _08123AB0 - .pool -_08123AAC: - ldr r0, [r4] - adds r0, 0x7F -_08123AB0: - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r9, r0 - ldrh r6, [r7, 0x4] - ldrh r3, [r7, 0x6] -_08123ABE: - str r6, [sp] - ldr r5, =gRegionMapEntries - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - mov r10, r0 - ldrh r7, [r0] - lsls r0, r7, 3 - adds r0, r5 - str r0, [sp, 0x4] - ldrb r0, [r0, 0x2] - mov r8, r0 - adds r0, r2, 0 - mov r1, r8 - str r3, [sp, 0x8] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp, 0x8] - cmp r1, 0 - bne _08123AEA - movs r1, 0x1 -_08123AEA: - adds r0, r6, 0 - str r3, [sp, 0x8] - bl __udivsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp, 0x8] - cmp r6, r8 - bcc _08123B04 - mov r0, r8 - subs r0, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08123B04: - ldr r2, [sp, 0x4] - ldrb r4, [r2, 0x3] - mov r0, r9 - adds r1, r4, 0 - str r3, [sp, 0x8] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp, 0x8] - cmp r1, 0 - bne _08123B1E - movs r1, 0x1 -_08123B1E: - adds r0, r3, 0 - bl __udivsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _08123B32 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_08123B32: - cmp r7, 0x29 - beq _08123B5E - cmp r7, 0x29 - bgt _08123B4C - cmp r7, 0x1D - beq _08123B56 - cmp r7, 0x24 - beq _08123B94 - b _08123BC6 - .pool -_08123B4C: - cmp r7, 0x33 - beq _08123B5E - cmp r7, 0xCC - beq _08123BB8 - b _08123BC6 -_08123B56: - cmp r3, 0 - beq _08123BC6 - movs r6, 0 - b _08123BC6 -_08123B5E: - movs r6, 0 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x20 - ble _08123B6E - movs r6, 0x1 -_08123B6E: - cmp r0, 0x33 - ble _08123B78 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08123B78: - movs r3, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x25 - ble _08123B84 - movs r3, 0x1 -_08123B84: - cmp r0, 0x38 - ble _08123BC6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - b _08123BC6 - .pool -_08123B94: - movs r6, 0 - ldr r0, [sp] - cmp r0, 0xE - bls _08123B9E - movs r6, 0x1 -_08123B9E: - ldr r2, [sp] - cmp r2, 0x1C - bls _08123BAA - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08123BAA: - ldr r0, [sp] - cmp r0, 0x36 - bls _08123BC6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _08123BC6 -_08123BB8: - mov r0, r10 - adds r0, 0x54 - mov r1, r10 - adds r1, 0x56 - bl sub_8123F30 - b _08123BEC -_08123BC6: - ldr r0, =gUnknown_0203A144 - ldr r2, [r0] - ldrh r0, [r2] - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - adds r0, r6, r0 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2] - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0, 0x1] - adds r0, r3, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] -_08123BEC: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81238AC - - thumb_func_start sub_8123C00 -sub_8123C00: @ 8123C00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r7, 0 - movs r0, 0 - mov r8, r0 - mov r4, sp - adds r4, 0x1 - mov r5, sp - adds r5, 0x2 - add r6, sp, 0x4 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl GetSSTidalLocation - lsls r0, 24 - lsrs r0, 24 - mov r10, r5 - cmp r0, 0x4 - bhi _08123C94 - lsls r0, 2 - ldr r1, =_08123C40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08123C40: - .4byte _08123C94 - .4byte _08123C54 - .4byte _08123C64 - .4byte _08123C74 - .4byte _08123C84 -_08123C54: - ldr r2, =gUnknown_0203A144 - ldr r1, [r2] - movs r0, 0x8 - strh r0, [r1] - b _08123D10 - .pool -_08123C64: - ldr r2, =gUnknown_0203A144 - ldr r1, [r2] - movs r0, 0xC - strh r0, [r1] - b _08123D10 - .pool -_08123C74: - ldr r2, =gUnknown_0203A144 - ldr r1, [r2] - movs r0, 0x27 - strh r0, [r1] - b _08123D10 - .pool -_08123C84: - ldr r2, =gUnknown_0203A144 - ldr r1, [r2] - movs r0, 0x2E - strh r0, [r1] - b _08123D10 - .pool -_08123C94: - mov r0, sp - ldrb r0, [r0] - ldrb r1, [r4] - bl get_mapheader_by_bank_and_number - ldr r1, =gUnknown_0203A144 - mov r9, r1 - ldr r2, [r1] - ldrb r1, [r0, 0x14] - strh r1, [r2] - ldr r6, [r0] - ldr r1, =gRegionMapEntries - ldrh r0, [r2] - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x2] - ldr r0, [r6] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _08123CC6 - movs r1, 0x1 -_08123CC6: - mov r2, r10 - movs r3, 0 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r8, r4 - bcc _08123CE2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_08123CE2: - ldrb r4, [r5, 0x3] - ldr r0, [r6, 0x4] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _08123CF6 - movs r1, 0x1 -_08123CF6: - mov r2, sp - movs r3, 0x4 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r2, r9 - cmp r7, r4 - bcc _08123D10 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_08123D10: - ldr r0, [r2] - adds r0, 0x7F - movs r1, 0 - strb r1, [r0] - ldr r2, [r2] - ldr r3, =gRegionMapEntries - ldrh r0, [r2] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0] - add r0, r8 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - adds r0, r7, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8123C00 - - thumb_func_start get_flagnr_blue_points -get_flagnr_blue_points: @ 8123D58 - push {lr} - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x9 - beq _08123E18 - cmp r0, 0x9 - bgt _08123D9A - cmp r0, 0x4 - beq _08123DF0 - cmp r0, 0x4 - bgt _08123D88 - cmp r0, 0x1 - beq _08123DD8 - cmp r0, 0x1 - bgt _08123D7E - cmp r0, 0 - beq _08123DD0 - b _08123E94 -_08123D7E: - cmp r0, 0x2 - beq _08123DDE - cmp r0, 0x3 - beq _08123DE8 - b _08123E94 -_08123D88: - cmp r0, 0x6 - beq _08123E00 - cmp r0, 0x6 - blt _08123DF8 - cmp r0, 0x7 - beq _08123E08 - cmp r0, 0x8 - beq _08123E10 - b _08123E94 -_08123D9A: - cmp r0, 0xE - beq _08123E40 - cmp r0, 0xE - bgt _08123DB4 - cmp r0, 0xB - beq _08123E28 - cmp r0, 0xB - blt _08123E20 - cmp r0, 0xC - beq _08123E30 - cmp r0, 0xD - beq _08123E38 - b _08123E94 -_08123DB4: - cmp r0, 0x3A - beq _08123E60 - cmp r0, 0x3A - bgt _08123DC2 - cmp r0, 0xF - beq _08123E48 - b _08123E94 -_08123DC2: - cmp r1, 0x49 - beq _08123E7C - cmp r1, 0xD5 - beq _08123DCC - b _08123E94 -_08123DCC: - movs r0, 0 - b _08123E96 -_08123DD0: - ldr r0, =0x0000086f - b _08123E4A - .pool -_08123DD8: - movs r0, 0x87 - lsls r0, 4 - b _08123E4A -_08123DDE: - ldr r0, =0x00000871 - b _08123E4A - .pool -_08123DE8: - ldr r0, =0x00000872 - b _08123E4A - .pool -_08123DF0: - ldr r0, =0x00000873 - b _08123E4A - .pool -_08123DF8: - ldr r0, =0x00000874 - b _08123E4A - .pool -_08123E00: - ldr r0, =0x00000875 - b _08123E4A - .pool -_08123E08: - ldr r0, =0x00000876 - b _08123E4A - .pool -_08123E10: - ldr r0, =0x00000877 - b _08123E4A - .pool -_08123E18: - ldr r0, =0x00000878 - b _08123E4A - .pool -_08123E20: - ldr r0, =0x00000879 - b _08123E4A - .pool -_08123E28: - ldr r0, =0x0000087a - b _08123E4A - .pool -_08123E30: - ldr r0, =0x0000087b - b _08123E4A - .pool -_08123E38: - ldr r0, =0x0000087c - b _08123E4A - .pool -_08123E40: - ldr r0, =0x0000087d - b _08123E4A - .pool -_08123E48: - ldr r0, =0x0000087e -_08123E4A: - bl FlagGet - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _08123E58 - movs r1, 0x2 -_08123E58: - adds r0, r1, 0 - b _08123E96 - .pool -_08123E60: - ldr r0, =0x000008a8 - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - asrs r0, 31 - movs r1, 0x4 - ands r0, r1 - b _08123E96 - .pool -_08123E7C: - ldr r0, =0x000008a9 - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _08123E96 - .pool -_08123E94: - movs r0, 0x1 -_08123E96: - pop {r1} - bx r1 - thumb_func_end get_flagnr_blue_points - - thumb_func_start sub_8123E9C -sub_8123E9C: @ 8123E9C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_812386C - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8123E9C - - thumb_func_start sub_8123EB4 -sub_8123EB4: @ 8123EB4 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r1, =gUnknown_085A1B84 -_08123EBE: - ldrh r0, [r1] - cmp r0, r3 - bne _08123ED4 - bl sub_8123F04 - lsls r0, 16 - lsrs r0, 16 - b _08123F00 - .pool -_08123ED4: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x2 - bls _08123EBE - ldr r1, =gUnknown_085A1B24 - ldrh r0, [r1] - cmp r0, 0xD5 - beq _08123EFE - adds r2, r1, 0 -_08123EE6: - ldrh r0, [r2] - cmp r0, r3 - bne _08123EF4 - ldrh r0, [r1, 0x2] - b _08123F00 - .pool -_08123EF4: - adds r1, 0x4 - adds r2, 0x4 - ldrh r0, [r1] - cmp r0, 0xD5 - bne _08123EE6 -_08123EFE: - adds r0, r3, 0 -_08123F00: - pop {r1} - bx r1 - thumb_func_end sub_8123EB4 - - thumb_func_start sub_8123F04 -sub_8123F04: @ 8123F04 - push {lr} - ldr r0, =0x00004037 - bl VarGet - subs r0, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08123F18 - movs r1, 0 -_08123F18: - ldr r0, =gUnknown_085A1B8A - lsls r1, 16 - asrs r1, 15 - adds r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_8123F04 - - thumb_func_start sub_8123F30 -sub_8123F30: @ 8123F30 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, =0x00004037 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, =0xfff70000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x7 - bls _08123F4C - movs r1, 0x9 -_08123F4C: - subs r1, 0x9 - lsls r1, 16 - ldr r0, =gUnknown_085A1BAC - lsrs r1, 14 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r1, 0x2] - adds r0, 0x2 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8123F30 - - thumb_func_start sub_8123F74 -sub_8123F74: @ 8123F74 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_085A1BCC -_08123F7E: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08123F90 - movs r0, 0x1 - b _08123F98 - .pool -_08123F90: - adds r1, 0x1 - cmp r1, 0 - beq _08123F7E - movs r0, 0 -_08123F98: - pop {r1} - bx r1 - thumb_func_end sub_8123F74 - - thumb_func_start sub_8123F9C -sub_8123F9C: @ 8123F9C - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_8123EB4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8123F9C - - thumb_func_start sub_8123FB0 -sub_8123FB0: @ 8123FB0 - push {r4-r6,lr} - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - ldrh r0, [r1] - cmp r0, 0xD5 - bne _08123FC8 - movs r0, 0 - strb r0, [r1, 0x3] - b _0812402E - .pool -_08123FC8: - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _08123FD8 - adds r0, r1, 0 - adds r0, 0x54 - b _08123FDC -_08123FD8: - adds r0, r1, 0 - adds r0, 0x64 -_08123FDC: - ldrh r4, [r0] - adds r0, 0x2 - ldrh r5, [r0] - movs r6, 0 - b _08124008 -_08123FE6: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812386C - ldr r1, =gUnknown_0203A144 - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bne _08124008 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08124008: - cmp r4, 0x1 - bhi _08123FE6 - adds r0, r5, 0 - bl sub_8124038 - lsls r0, 24 - cmp r0, 0 - beq _08124028 - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0x1D - b _08124008 - .pool -_08124028: - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - strb r6, [r0, 0x3] -_0812402E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8123FB0 - - thumb_func_start sub_8124038 -sub_8124038: @ 8124038 - push {r4,r5,lr} - lsls r0, 16 - ldr r1, =0xffff0000 - adds r0, r1 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - bne _08124058 - b _0812407A - .pool -_08124054: - movs r0, 0x1 - b _0812407C -_08124058: - movs r4, 0x1 -_0812405A: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812386C - ldr r1, =gUnknown_0203A144 - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - beq _08124054 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1C - bls _0812405A -_0812407A: - movs r0, 0 -_0812407C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8124038 - - thumb_func_start sub_8124088 -sub_8124088: @ 8124088 - push {r4,lr} - adds r2, r0, 0 - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - adds r3, r1, 0 - adds r3, 0x7A - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r0, 0 - beq _081240C6 - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r4, [r2, 0x20] - adds r0, r4 - strh r0, [r2, 0x20] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r1, [r2, 0x22] - adds r0, r1 - strh r0, [r2, 0x22] - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] -_081240C6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124088 - - thumb_func_start TaskDummy8 -TaskDummy8: @ 81240D0 - bx lr - thumb_func_end TaskDummy8 - - thumb_func_start sub_81240D4 -sub_81240D4: @ 81240D4 - push {r4-r7,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, =gUnknown_085A1C00 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [sp, 0x20] - str r2, [sp, 0x24] - mov r2, sp - ldr r1, =gUnknown_085A1C08 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - lsrs r3, r0, 16 - add r2, sp, 0x18 - ldrh r1, [r2, 0x4] - orrs r1, r0 - str r1, [r2, 0x4] - mov r0, sp - strh r3, [r0] - ldr r0, =gUnknown_0203A144 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x58 - strh r3, [r0] - ldr r5, =0xffff0000 - add r1, sp, 0x20 - ldr r0, [r1, 0x4] - ands r0, r5 - orrs r0, r6 - str r0, [r1, 0x4] - mov r0, sp - strh r6, [r0, 0x2] - adds r3, r4, 0 - adds r0, r3, 0 - adds r0, 0x5A - strh r6, [r0] - adds r0, 0x1E - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0 - bne _08124158 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r3, r1 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - subs r1, 0x84 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, =sub_8124088 - b _0812416E - .pool -_08124158: - movs r3, 0xA1 - lsls r3, 2 - adds r0, r4, r3 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, =TaskDummy8 -_0812416E: - str r0, [sp, 0x14] - adds r0, r2, 0 - bl LoadSpriteSheet - adds r0, r7, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0x38 - movs r2, 0x48 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _08124228 - ldr r4, =gUnknown_0203A144 - ldr r2, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r3, r0, r1 - str r3, [r2, 0x1C] - adds r2, 0x78 - ldrb r0, [r2] - cmp r0, 0x1 - bne _081241DC - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r2, [r4] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x20] - subs r0, 0x8 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x22] - subs r0, 0x8 - strh r0, [r1, 0x22] - ldr r0, [r2, 0x1C] - movs r1, 0x1 - bl StartSpriteAnim - b _08124204 - .pool -_081241DC: - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r1, [r4] - ldr r2, [r1, 0x1C] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x1C] - adds r1, 0x56 - ldrh r0, [r1] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x22] -_08124204: - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldr r1, [r0, 0x1C] - movs r0, 0x2 - strh r0, [r1, 0x30] - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - ldr r1, [r4] - ldr r2, [r1, 0x1C] - lsls r0, 24 - lsrs r0, 20 - ldr r4, =0x00000101 - adds r0, r4 - strh r0, [r2, 0x32] - ldr r1, [r1, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] -_08124228: - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81240D4 - - thumb_func_start sub_8124238 -sub_8124238: @ 8124238 - push {r4,lr} - ldr r4, =gUnknown_0203A144 - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _0812425C - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_0812425C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124238 - - thumb_func_start sub_8124268 -sub_8124268: @ 8124268 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] - bx lr - .pool - thumb_func_end sub_8124268 - - thumb_func_start sub_8124278 -sub_8124278: @ 8124278 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0 - strh r0, [r1, 0x34] - bx lr - .pool - thumb_func_end sub_8124278 - - thumb_func_start sub_8124288 -sub_8124288: @ 8124288 - push {r4-r6,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gUnknown_085A084C - str r2, [sp, 0x18] - movs r2, 0x80 - add r6, sp, 0x18 - lsrs r3, r0, 16 - orrs r0, r2 - str r0, [r6, 0x4] - ldr r0, =gUnknown_085A082C - str r0, [sp, 0x20] - ldr r2, =0xffff0000 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r5, 0 - strh r3, [r0] - strh r1, [r0, 0x2] - ldr r0, =gUnknown_085A1C20 - str r0, [sp, 0x4] - ldr r0, =gUnknown_085A1C30 - str r0, [sp, 0x8] - str r5, [sp, 0xC] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, =SpriteCallbackDummy - str r0, [sp, 0x14] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - bl sub_8124668 - cmp r0, 0 - beq _08124304 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - str r5, [r0, 0x20] - b _081243A4 - .pool -_08124304: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _08124316 - ldr r0, =gUnknown_085A08EC - str r0, [sp, 0x18] - ldr r0, =gUnknown_085A08CC - str r0, [sp, 0x20] -_08124316: - adds r0, r6, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203A144 - ldr r2, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _08124384 - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, =sub_81244EC - b _081243A2 - .pool -_08124384: - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, =sub_812445C -_081243A2: - str r0, [r1, 0x1C] -_081243A4: - add sp, 0x28 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124288 - - thumb_func_start sub_81243B0 -sub_81243B0: @ 81243B0 - push {lr} - ldr r3, =gUnknown_0203A144 - ldr r0, [r3] - ldr r2, [r0, 0x20] - cmp r2, 0 - beq _081243CE - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r1, [r0, 0x20] - ldr r0, =SpriteCallbackDummy - str r0, [r1, 0x1C] -_081243CE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81243B0 - - thumb_func_start sub_81243DC -sub_81243DC: @ 81243DC - push {lr} - ldr r0, =gUnknown_0203A144 - ldr r3, [r0] - ldr r1, [r3, 0x20] - cmp r1, 0 - beq _08124452 - adds r0, r3, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0812441C - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r3, 0x20] - ldr r0, =sub_812445C - b _08124444 - .pool -_0812441C: - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - movs r2, 0 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x24] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x26] - ldr r1, [r3, 0x20] - ldr r0, =sub_81244EC -_08124444: - str r0, [r1, 0x1C] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08124452: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81243DC - - thumb_func_start sub_812445C -sub_812445C: @ 812445C - push {r4,lr} - adds r3, r0, 0 - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x5C - movs r4, 0 - ldrsh r2, [r0, r4] - lsls r2, 1 - negs r2, r2 - strh r2, [r3, 0x24] - adds r1, 0x5E - movs r4, 0 - ldrsh r0, [r1, r4] - lsls r0, 1 - negs r0, r0 - strh r0, [r3, 0x26] - ldrh r1, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r3, 0x2E] - ldrh r1, [r3, 0x20] - adds r1, r2 - adds r2, r3, 0 - adds r2, 0x28 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - adds r2, r1 - strh r2, [r3, 0x30] - adds r0, 0x8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB0 - bhi _081244BC - lsls r0, r2, 16 - asrs r2, r0, 16 - movs r0, 0x8 - negs r0, r0 - cmp r2, r0 - blt _081244BC - cmp r2, 0xF8 - ble _081244C4 -_081244BC: - movs r0, 0 - b _081244C6 - .pool -_081244C4: - movs r0, 0x1 -_081244C6: - strh r0, [r3, 0x32] - movs r1, 0x32 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _081244D8 - adds r0, r3, 0 - bl sub_81244F8 - b _081244E4 -_081244D8: - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081244E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812445C - - thumb_func_start sub_81244EC -sub_81244EC: @ 81244EC - push {lr} - bl sub_81244F8 - pop {r0} - bx r0 - thumb_func_end sub_81244EC - - thumb_func_start sub_81244F8 -sub_81244F8: @ 81244F8 - push {lr} - adds r2, r0, 0 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - adds r0, 0x7E - ldrb r0, [r0] - cmp r0, 0 - beq _0812453C - ldrh r0, [r2, 0x3C] - adds r0, 0x1 - strh r0, [r2, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _08124548 - movs r0, 0 - strh r0, [r2, 0x3C] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08124548 - .pool -_0812453C: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08124548: - pop {r0} - bx r0 - thumb_func_end sub_81244F8 - - thumb_func_start sub_812454C -sub_812454C: @ 812454C - push {lr} - ldr r0, =gUnknown_0203A144 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x7F - ldrb r0, [r0] - cmp r0, 0 - beq _08124562 - adds r1, 0x7E - movs r0, 0x1 - strb r0, [r1] -_08124562: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812454C - - thumb_func_start GetMapName -@ u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength) -GetMapName: @ 812456C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - cmp r1, 0x56 - bne _08124584 - bl GetSecretBaseMapName - adds r1, r0, 0 - b _081245B2 -_08124584: - cmp r1, 0xD4 - bhi _081245A0 - ldr r0, =gRegionMapEntries - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 - b _081245B2 - .pool -_081245A0: - cmp r4, 0 - bne _081245A6 - movs r4, 0x12 -_081245A6: - adds r0, r5, 0 - movs r1, 0 - adds r2, r4, 0 - bl StringFill - b _081245D6 -_081245B2: - cmp r4, 0 - beq _081245D4 - subs r0, r1, r5 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcs _081245D0 - movs r2, 0 -_081245C2: - strb r2, [r1] - adds r1, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcc _081245C2 -_081245D0: - movs r0, 0xFF - strb r0, [r1] -_081245D4: - adds r0, r1, 0 -_081245D6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetMapName - - thumb_func_start sub_81245DC -sub_81245DC: @ 81245DC - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x56 - beq _081245F8 - cmp r1, 0x57 - bne _08124604 - ldr r1, =gText_Ferry - bl StringCopy - b _0812460A - .pool -_081245F8: - ldr r1, =gText_SecretBase - bl StringCopy - b _0812460A - .pool -_08124604: - movs r2, 0 - bl GetMapName -_0812460A: - pop {r1} - bx r1 - thumb_func_end sub_81245DC - - thumb_func_start sub_8124610 -sub_8124610: @ 8124610 - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x42 - beq _08124620 - bl sub_81245DC - b _08124626 -_08124620: - ldr r1, =gText_Hideout - bl StringCopy -_08124626: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8124610 - - thumb_func_start sub_8124630 -sub_8124630: @ 8124630 - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 16 - ldr r4, =gRegionMapEntries - lsrs r0, 13 - adds r0, r4 - ldrb r4, [r0] - strh r4, [r1] - ldrb r1, [r0, 0x1] - strh r1, [r2] - ldrb r1, [r0, 0x2] - strh r1, [r3] - ldrb r0, [r0, 0x3] - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124630 - - thumb_func_start sub_8124658 -sub_8124658: @ 8124658 - ldr r0, =gUnknown_0203A144 - ldr r0, [r0] - adds r0, 0x78 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8124658 - - thumb_func_start sub_8124668 -sub_8124668: @ 8124668 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_085A1C34 -_08124672: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bne _08124684 - movs r0, 0x1 - b _0812468C - .pool -_08124684: - adds r1, 0x1 - cmp r1, 0x2 - bls _08124672 - movs r0, 0 -_0812468C: - pop {r1} - bx r1 - thumb_func_end sub_8124668 - - thumb_func_start sub_8124690 -sub_8124690: @ 8124690 - push {r4,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _081246A4 - b _081248AA -_081246A4: - lsls r0, 2 - ldr r1, =_081246B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081246B8: - .4byte _081246E4 - .4byte _08124766 - .4byte _0812477C - .4byte _0812478C - .4byte _0812479C - .4byte _081247E4 - .4byte _081247F8 - .4byte _0812480C - .4byte _0812484C - .4byte _08124852 - .4byte _0812486C -_081246E4: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - ldr r4, =gUnknown_0203A148 - ldr r0, =0x00000a74 - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _08124754 - ldr r0, =sub_8086194 - bl SetMainCallback2 - b _081248AA - .pool -_08124754: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _0812489C -_08124766: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085A1EE4 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - b _0812489C - .pool -_0812477C: - ldr r0, =gUnknown_085A1EF0 - bl InitWindows - bl DeactivateAllTextPrinters - b _0812489C - .pool -_0812478C: - movs r0, 0 - movs r1, 0x65 - movs r2, 0xD0 - bl sub_809882C - bl clear_scheduled_bg_copies_to_vram - b _0812489C -_0812479C: - ldr r4, =gUnknown_0203A148 - ldr r0, [r4] - adds r0, 0x8 - movs r1, 0 - bl sub_8122CDC - movs r0, 0 - movs r1, 0 - bl sub_81240D4 - movs r0, 0x1 - movs r1, 0x1 - bl sub_8124288 - ldr r0, [r4] - ldrh r1, [r0, 0x8] - strh r1, [r0, 0x6] - ldr r1, =0x00000a4c - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl StringFill - ldr r1, =gUnknown_03001180 - movs r0, 0x1 - str r0, [r1] - bl sub_8124904 - b _0812489C - .pool -_081247E4: - ldr r0, =gUnknown_085A1C58 - ldr r1, =0x0600c000 - bl LZ77UnCompVram - b _0812489C - .pool -_081247F8: - ldr r0, =gUnknown_085A1C90 - ldr r1, =0x0600f000 - bl LZ77UnCompVram - b _0812489C - .pool -_0812480C: - ldr r0, =gUnknown_085A1C38 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, =gText_FlyToWhere - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - b _0812489C - .pool -_0812484C: - bl sub_8124A70 - b _0812489C -_08124852: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81248C0 - bl SetVBlankCallback - b _0812489C - .pool -_0812486C: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =sub_8124D14 - bl sub_81248F4 - ldr r0, =sub_81248D4 - bl SetMainCallback2 -_0812489C: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081248AA: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124690 - - thumb_func_start sub_81248C0 -sub_81248C0: @ 81248C0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81248C0 - - thumb_func_start sub_81248D4 -sub_81248D4: @ 81248D4 - push {lr} - ldr r0, =gUnknown_0203A148 - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - pop {r0} - bx r0 - .pool - thumb_func_end sub_81248D4 - - thumb_func_start sub_81248F4 -sub_81248F4: @ 81248F4 - ldr r1, =gUnknown_0203A148 - ldr r1, [r1] - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0x4] - bx lr - .pool - thumb_func_end sub_81248F4 - - thumb_func_start sub_8124904 -sub_8124904: @ 8124904 - push {r4-r7,lr} - sub sp, 0xC - ldr r2, =gUnknown_0203A148 - ldr r0, [r2] - ldrb r0, [r0, 0xA] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0812491A - b _08124A2C -_0812491A: - movs r7, 0 - movs r3, 0 - ldr r0, =gUnknown_085A1EDC - mov r12, r0 - adds r5, r2, 0 - movs r6, 0 -_08124926: - ldr r0, [r5] - lsls r1, r3, 3 - mov r2, r12 - adds r4, r1, r2 - ldrh r0, [r0, 0x8] - ldrh r1, [r4, 0x4] - cmp r0, r1 - bne _081249C4 - ldrh r0, [r4, 0x6] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081249CE - ldr r0, [r5] - ldrb r0, [r0, 0xB] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl StringLength - movs r7, 0x1 - movs r0, 0 - movs r1, 0 - bl sub_8198070 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x65 - movs r3, 0xD - bl SetWindowBorderStyle - ldr r2, [r5] - adds r2, 0xC - str r7, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldr r0, [r5] - ldrb r0, [r0, 0xB] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x60 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x11 - str r0, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gUnknown_03001180 - str r7, [r0] - b _081249CE - .pool -_081249C4: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _08124926 -_081249CE: - cmp r7, 0 - bne _08124A62 - ldr r0, =gUnknown_03001180 - ldr r0, [r0] - cmp r0, 0x1 - bne _081249F4 - movs r0, 0x1 - movs r1, 0 - bl sub_8198070 - movs r0, 0 - movs r1, 0 - movs r2, 0x65 - movs r3, 0xD - bl SetWindowBorderStyle - b _081249FC - .pool -_081249F4: - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer -_081249FC: - ldr r0, =gUnknown_0203A148 - ldr r2, [r0] - adds r2, 0xC - movs r0, 0x1 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gUnknown_03001180 - str r4, [r0] - b _08124A62 - .pool -_08124A2C: - ldr r4, =gUnknown_03001180 - ldr r0, [r4] - cmp r0, 0x1 - bne _08124A48 - movs r0, 0x1 - movs r1, 0 - bl sub_8198070 - movs r0, 0 - movs r1, 0 - movs r2, 0x65 - movs r3, 0xD - bl SetWindowBorderStyle -_08124A48: - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - str r0, [r4] -_08124A62: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124904 - - thumb_func_start sub_8124A70 -sub_8124A70: @ 8124A70 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_085A1D68 - ldr r5, =gUnknown_0203A148 - ldr r1, [r5] - ldr r4, =0x0000088c - adds r1, r4 - bl LZ77UnCompWram - ldr r0, [r5] - adds r0, r4 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xE0 - lsls r1, 1 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 10 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, =gUnknown_085A1F10 - bl LoadSpritePalette - bl sub_8124AD4 - bl sub_8124BE4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124A70 - - thumb_func_start sub_8124AD4 -sub_8124AD4: @ 8124AD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, =0x0000086f - str r0, [sp, 0xC] - movs r1, 0 - mov r9, r1 - mov r2, sp - adds r2, 0x6 - str r2, [sp, 0x14] - mov r3, sp - adds r3, 0xA - str r3, [sp, 0x18] - mov r0, sp - adds r0, 0x8 - str r0, [sp, 0x10] - add r1, sp, 0x4 - mov r10, r1 -_08124AFE: - ldr r2, [sp, 0x18] - str r2, [sp] - mov r0, r9 - add r1, sp, 0x4 - mov r2, sp - adds r2, 0x6 - ldr r3, [sp, 0x10] - bl sub_8124630 - mov r3, r10 - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3] - mov r1, sp - ldrh r0, [r1, 0x6] - adds r0, 0x2 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x6] - ldr r2, [sp, 0x10] - ldrh r0, [r2] - cmp r0, 0x2 - bne _08124B38 - movs r7, 0x1 - b _08124B44 - .pool -_08124B38: - ldr r3, [sp, 0x18] - ldrh r0, [r3] - movs r7, 0 - cmp r0, 0x2 - bne _08124B44 - movs r7, 0x2 -_08124B44: - mov r0, r10 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r3, [sp, 0x14] - movs r0, 0 - ldrsh r2, [r3, r0] - ldr r0, =gUnknown_085A1F7C - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _08124BB8 - ldr r1, =gSprites - mov r8, r1 - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r6, r0, 2 - adds r2, r6, r1 - lsls r3, r7, 6 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x1] - ldr r0, [sp, 0xC] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08124B9C - mov r0, r8 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_8124CBC - str r1, [r0] - b _08124BA2 - .pool -_08124B9C: - adds r0, r7, 0x3 - lsls r0, 16 - lsrs r7, r0, 16 -_08124BA2: - adds r4, r5 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - lsls r1, r7, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - mov r2, r9 - strh r2, [r4, 0x2E] -_08124BB8: - ldr r0, [sp, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0xF - bls _08124AFE - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124AD4 - - thumb_func_start sub_8124BE4 -sub_8124BE4: @ 8124BE4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - ldr r6, =gUnknown_085A1F18 - ldrh r0, [r6, 0x2] - cmp r0, 0xD5 - beq _08124C9C - mov r5, sp - adds r5, 0x6 - add r7, sp, 0x4 - ldr r1, =gSprites - mov r9, r1 - movs r0, 0x1C - add r0, r9 - mov r10, r0 -_08124C0C: - mov r1, r8 - lsls r4, r1, 2 - adds r0, r4, r6 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08124C84 - adds r0, r6, 0x2 - adds r0, r4, r0 - ldrh r6, [r0] - mov r0, sp - adds r0, 0xA - str r0, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - add r3, sp, 0x8 - bl sub_8124630 - ldrh r0, [r7] - adds r0, 0x1 - lsls r0, 3 - strh r0, [r7] - ldrh r0, [r5] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r5] - movs r0, 0 - ldrsh r1, [r7, r0] - movs r0, 0 - ldrsh r2, [r5, r0] - ldr r0, =gUnknown_085A1F7C - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08124C84 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - mov r1, r9 - adds r4, r2, r1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] - add r2, r10 - ldr r0, =sub_8124CBC - str r0, [r2] - adds r0, r4, 0 - movs r1, 0x6 - bl StartSpriteAnim - strh r6, [r4, 0x2E] -_08124C84: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r6, =gUnknown_085A1F18 - lsls r0, 2 - adds r1, r6, 0x2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD5 - bne _08124C0C -_08124C9C: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124BE4 - - thumb_func_start sub_8124CBC -sub_8124CBC: @ 8124CBC - push {lr} - adds r2, r0, 0 - ldr r0, =gUnknown_0203A148 - ldr r0, [r0] - ldrh r1, [r0, 0x8] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _08124D00 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _08124D0E - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08124D0E - .pool -_08124D00: - movs r0, 0x10 - strh r0, [r2, 0x30] - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x15 - ands r0, r1 - strb r0, [r2] -_08124D0E: - pop {r0} - bx r0 - thumb_func_end sub_8124CBC - - thumb_func_start sub_8124D14 -sub_8124D14: @ 8124D14 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203A148 - ldr r0, [r4] - ldrh r1, [r0, 0x4] - cmp r1, 0 - beq _08124D2C - cmp r1, 0x1 - beq _08124D46 - b _08124D56 - .pool -_08124D2C: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _08124D56 -_08124D46: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08124D56 - ldr r0, =sub_8124D64 - bl sub_81248F4 -_08124D56: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124D14 - - thumb_func_start sub_8124D64 -sub_8124D64: @ 8124D64 - push {r4,lr} - ldr r0, =gUnknown_0203A148 - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _08124DF8 - bl sub_81230AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _08124DF8 - lsls r0, 2 - ldr r1, =_08124D90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08124D90: - .4byte _08124DF8 - .4byte _08124DF8 - .4byte _08124DF8 - .4byte _08124DA8 - .4byte _08124DAE - .4byte _08124DE0 -_08124DA8: - bl sub_8124904 - b _08124DF8 -_08124DAE: - ldr r4, =gUnknown_0203A148 - ldr r0, [r4] - ldrb r0, [r0, 0xA] - cmp r0, 0x2 - beq _08124DBC - cmp r0, 0x4 - bne _08124DF8 -_08124DBC: - movs r0, 0x5 - bl m4aSongNumStart - ldr r0, [r4] - ldr r1, =0x00000a72 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, =sub_8124E0C - bl sub_81248F4 - b _08124DF8 - .pool -_08124DE0: - movs r0, 0x5 - bl m4aSongNumStart - ldr r0, =gUnknown_0203A148 - ldr r0, [r0] - ldr r1, =0x00000a72 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, =sub_8124E0C - bl sub_81248F4 -_08124DF8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124D64 - - thumb_func_start sub_8124E0C -sub_8124E0C: @ 8124E0C - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203A148 - ldr r0, [r4] - ldrh r1, [r0, 0x4] - cmp r1, 0 - beq _08124E24 - cmp r1, 0x1 - beq _08124E3E - b _08124F1A - .pool -_08124E24: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] - b _08124F1A -_08124E3E: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08124F1A - bl sub_812305C - ldr r1, [r4] - ldr r2, =0x00000a72 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08124F00 - ldrh r0, [r1, 0x8] - cmp r0, 0xF - beq _08124E98 - cmp r0, 0xF - bgt _08124E6C - cmp r0, 0 - beq _08124E84 - b _08124EBC - .pool -_08124E6C: - cmp r0, 0x3A - beq _08124E7C - cmp r0, 0x49 - bne _08124EBC - movs r0, 0x15 - bl sub_8084CCC - b _08124EFA -_08124E7C: - movs r0, 0x16 - bl sub_8084CCC - b _08124EFA -_08124E84: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - movs r1, 0xD - cmp r0, 0 - bne _08124EB0 - movs r1, 0xC - b _08124EB0 - .pool -_08124E98: - ldr r0, =0x000008b4 - bl FlagGet - lsls r0, 24 - movs r1, 0xB - cmp r0, 0 - beq _08124EB0 - ldr r0, [r4] - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _08124EB0 - movs r1, 0x14 -_08124EB0: - adds r0, r1, 0 - bl sub_8084CCC - b _08124EFA - .pool -_08124EBC: - ldr r3, =gUnknown_085A1E3C - ldr r0, =gUnknown_0203A148 - ldr r0, [r0] - ldrh r1, [r0, 0x8] - lsls r0, r1, 1 - adds r2, r0, r1 - adds r0, r3, 0x2 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _08124EE0 - bl sub_8084CCC - b _08124EFA - .pool -_08124EE0: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - bl warp1_set_2 -_08124EFA: - bl sub_80B69DC - b _08124F06 -_08124F00: - ldr r0, =sub_81B58A8 - bl SetMainCallback2 -_08124F06: - ldr r4, =gUnknown_0203A148 - ldr r0, [r4] - cmp r0, 0 - beq _08124F16 - bl Free - movs r0, 0 - str r0, [r4] -_08124F16: - bl FreeAllWindowBuffers -_08124F1A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8124E0C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom4.s b/asm/rom4.s index 3b6f87d84..3f59c2807 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -841,7 +841,7 @@ sub_8084CCC: @ 8084CCC sub sp, 0x4 lsls r0, 24 lsrs r0, 24 - bl sub_8122CBC + bl GetHealLocationPointer adds r4, r0, 0 cmp r4, 0 beq _08084CFA @@ -885,7 +885,7 @@ Overworld_SetHealLocationWarp: @ 8084D1C sub sp, 0x8 lsls r0, 24 lsrs r0, 24 - bl sub_8122CBC + bl GetHealLocationPointer adds r5, r0, 0 cmp r5, 0 beq _08084D50 @@ -1187,7 +1187,7 @@ sub_8084F6C: @ 8084F6C sub sp, 0x8 lsls r0, 24 lsrs r0, 24 - bl sub_8122CBC + bl GetHealLocationPointer adds r5, r0, 0 cmp r5, 0 beq _08084FA0 diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s index 7bfe075ec..4af6d1d58 100644 --- a/data/battle_frontier_1.s +++ b/data/battle_frontier_1.s @@ -11,27 +11,27 @@ gUnknown_0860C988:: @ 860C988 .incbin "baserom.gba", 0x60c988, 0x269 gUnknown_0860CBF1:: @ 860CBF1 -.byte 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10 -.byte 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x02, 0x04, 0x0b, 0x11 -.byte 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12 -.byte 0x03, 0x05, 0x0c, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13 -.byte 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13 -.byte 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01 -.byte 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x0a, 0x0c, 0x15, 0x03 -.byte 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04 -.byte 0x0b, 0x0d, 0x16, 0x04, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06 -.byte 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07 -.byte 0x13, 0x11, 0x00, 0x14, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x10, 0x12, 0x02, 0x15, 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18 -.byte 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18, 0x11, 0x13, 0x04, 0x16, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x12, 0x10, 0x06, 0x17 -.byte 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x17, 0x15, 0x10, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08 -.byte 0x17, 0x15, 0x1a, 0x08, 0x14, 0x16, 0x11, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x15, 0x17, 0x12, 0x0c, 0x15, 0x17, 0x1b, 0x0c -.byte 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x16, 0x14, 0x13, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e -.byte 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x10, 0x1a, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x18, 0x18, 0x12, 0x1b, 0x18, 0x18, 0x12, 0x1c -.byte 0x18, 0x18, 0x12, 0x1c, 0x18, 0x18, 0x12, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x1b, 0x18, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0xff, 0xff, 0xff, 0xff -.byte 0x1a, 0x1a, 0x19, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x1d, 0xff, 0xff, 0x18, 0x1e -.byte 0xff, 0xff, 0x18, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1d, 0xff, 0xff, 0x1c, 0x1d, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00 -.byte 0x00, 0x00, 0x00 + .byte 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10 + .byte 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x02, 0x04, 0x0b, 0x11 + .byte 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12 + .byte 0x03, 0x05, 0x0c, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13 + .byte 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13 + .byte 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01 + .byte 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x0a, 0x0c, 0x15, 0x03 + .byte 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04 + .byte 0x0b, 0x0d, 0x16, 0x04, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06 + .byte 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07 + .byte 0x13, 0x11, 0x00, 0x14, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x10, 0x12, 0x02, 0x15, 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18 + .byte 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18, 0x11, 0x13, 0x04, 0x16, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x12, 0x10, 0x06, 0x17 + .byte 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x17, 0x15, 0x10, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08 + .byte 0x17, 0x15, 0x1a, 0x08, 0x14, 0x16, 0x11, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x15, 0x17, 0x12, 0x0c, 0x15, 0x17, 0x1b, 0x0c + .byte 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x16, 0x14, 0x13, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e + .byte 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x10, 0x1a, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x18, 0x18, 0x12, 0x1b, 0x18, 0x18, 0x12, 0x1c + .byte 0x18, 0x18, 0x12, 0x1c, 0x18, 0x18, 0x12, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x1b, 0x18, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0xff, 0xff, 0xff, 0xff + .byte 0x1a, 0x1a, 0x19, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x1d, 0xff, 0xff, 0x18, 0x1e + .byte 0xff, 0xff, 0x18, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1d, 0xff, 0xff, 0x1c, 0x1d, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00 + .byte 0x00, 0x00, 0x00 gUnknown_0860CE74:: @ 860CE74 .incbin "baserom.gba", 0x60ce74, 0x10 @@ -87,295 +87,983 @@ gUnknown_0860D068:: @ 860D068 .incbin "baserom.gba", 0x60d068, 0x18 gUnknown_0860D080:: @ 860D080 -.byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 + .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 gUnknown_0860D090:: @ 860D090 -.4byte sub_818E9CC -.4byte sub_818EA84 -.4byte sub_818ED28 -.4byte sub_818F9B0 -.4byte sub_818F9E0 -.4byte sub_818FA20 -.4byte sub_81903B8 -.4byte sub_81938A4 -.4byte sub_81938E0 -.4byte sub_8190298 -.4byte sub_81902E4 -.4byte sub_8193D40 -.4byte sub_8193D7C -.4byte sub_81902F8 -.4byte sub_819033C -.4byte sub_8194D48 -.4byte sub_8194D68 -.4byte sub_8194E44 -.4byte sub_8194EB4 -.4byte sub_8194EC0 -.4byte sub_8194EF8 -.4byte sub_8194F58 -.4byte sub_818F02C + .4byte sub_818E9CC + .4byte sub_818EA84 + .4byte sub_818ED28 + .4byte sub_818F9B0 + .4byte sub_818F9E0 + .4byte sub_818FA20 + .4byte sub_81903B8 + .4byte sub_81938A4 + .4byte sub_81938E0 + .4byte sub_8190298 + .4byte sub_81902E4 + .4byte sub_8193D40 + .4byte sub_8193D7C + .4byte sub_81902F8 + .4byte sub_819033C + .4byte sub_8194D48 + .4byte sub_8194D68 + .4byte sub_8194E44 + .4byte sub_8194EB4 + .4byte sub_8194EC0 + .4byte sub_8194EF8 + .4byte sub_8194F58 + .4byte sub_818F02C gUnknown_0860D0EC:: @ 860D0EC -.4byte 0x00000004, 0x00000008, 0x00100000, 0x00200000 + .4byte 0x00000004, 0x00000008, 0x00100000, 0x00200000 gUnknown_0860D0FC:: @ 860D0FC -.4byte 0xfffffffb, 0xfffffff7, 0xffefffff, 0xffdfffff + .4byte 0xfffffffb, 0xfffffff7, 0xffefffff, 0xffdfffff gUnknown_0860D10C:: @ 860D10C -.byte 0x08, 0x00, 0x04, 0x08, 0x09, 0x0c, 0x08, 0x00, 0x0a, 0x08, 0x0c, 0x00, 0x0b, 0x04, 0x00, 0x08, 0x0c, 0x00, 0x04, 0x08, 0x0d, 0x0c, 0x08, 0x00, 0x0e, 0x08, 0x0c, 0x00, 0x0f, 0x04, 0x00, 0x08 -.byte 0x00, 0x00, 0x04, 0x08, 0x01, 0x0c, 0x08, 0x00, 0x02, 0x08, 0x0c, 0x00, 0x03, 0x04, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x05, 0x0c, 0x08, 0x00, 0x06, 0x08, 0x0c, 0x00, 0x07, 0x04, 0x00, 0x08 + .byte 0x08, 0x00, 0x04, 0x08, 0x09, 0x0c, 0x08, 0x00, 0x0a, 0x08, 0x0c, 0x00, 0x0b, 0x04, 0x00, 0x08, 0x0c, 0x00, 0x04, 0x08, 0x0d, 0x0c, 0x08, 0x00, 0x0e, 0x08, 0x0c, 0x00, 0x0f, 0x04, 0x00, 0x08 + .byte 0x00, 0x00, 0x04, 0x08, 0x01, 0x0c, 0x08, 0x00, 0x02, 0x08, 0x0c, 0x00, 0x03, 0x04, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x05, 0x0c, 0x08, 0x00, 0x06, 0x08, 0x0c, 0x00, 0x07, 0x04, 0x00, 0x08 gUnknown_0860D14C:: @ 860D14C -.byte 0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09 + .byte 0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09 gUnknown_0860D15C:: @ 860D15C -.byte 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e -.byte 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e + .byte 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e + .byte 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e gUnknown_0860D19C:: @ 860D19C -.byte 0x17, 0x1b, 0x1d, 0x1e + .byte 0x17, 0x1b, 0x1d, 0x1e gUnknown_0860D1A0:: @ 860D1A0 -.byte 0x10, 0x18, 0x1c, 0x1e, 0x11, 0x18, 0x1c, 0x1e, 0x12, 0x19, 0x1c, 0x1e, 0x13, 0x19, 0x1c, 0x1e, 0x14, 0x1a, 0x1d, 0x1e, 0x15, 0x1a, 0x1d, 0x1e, 0x16, 0x1b, 0x1d, 0x1e, 0x17, 0x1b, 0x1d, 0x1e + .byte 0x10, 0x18, 0x1c, 0x1e, 0x11, 0x18, 0x1c, 0x1e, 0x12, 0x19, 0x1c, 0x1e, 0x13, 0x19, 0x1c, 0x1e, 0x14, 0x1a, 0x1d, 0x1e, 0x15, 0x1a, 0x1d, 0x1e, 0x16, 0x1b, 0x1d, 0x1e, 0x17, 0x1b, 0x1d, 0x1e gUnknown_0860D1C0:: @ 860D1C0 -.byte 0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05 - -gUnknown_0860D1D0:: @ 860D1D0 -.4byte 0x82c3188 -.4byte 0x82c31aa -.4byte 0x82c31c0 -.4byte 0x82c31dd -.4byte 0x82c31fa -.4byte 0x82c321b -.4byte 0x82c3240 -.4byte 0x82c325c -.4byte 0x82c327c -.4byte 0x82c329b -.4byte 0x82c32b7 -.4byte 0x82c32d9 -.4byte 0x82c32fc -.4byte 0x82c3312 -.4byte 0x82c3332 -.4byte 0x82c3359 -.4byte 0x82c3378 - -gUnknown_0860D214:: @ 860D214 -.4byte 0x82c339b -.4byte 0x82c33c4 -.4byte 0x82c33e6 -.4byte 0x82c340b -.4byte 0x82c3428 -.4byte 0x82c344c -.4byte 0x82c3471 -.4byte 0x82c3492 -.4byte 0x82c34b6 -.4byte 0x82c34d2 -.4byte 0x82c34f5 -.4byte 0x82c3516 -.4byte 0x82c353b -.4byte 0x82c3562 -.4byte 0x82c3586 -.4byte 0x82c35ad -.4byte 0x82c35d4 -.4byte 0x82c35f4 -.4byte 0x82c361c -.4byte 0x82c3640 -.4byte 0x82c3659 -.4byte 0x82c367e -.4byte 0x82c369d -.4byte 0x82c36c2 -.4byte 0x82c36e3 -.4byte 0x82c3704 -.4byte 0x82c3727 -.4byte 0x82c374c -.4byte 0x82c376f -.4byte 0x82c3789 -.4byte 0x82c37a3 -.4byte 0x82c37bd - -gUnknown_0860D294:: @ 860D294 -.4byte 0x82c37d7 -.4byte 0x82c37f1 -.4byte 0x82c380c -.4byte 0x82c3825 -.4byte 0x82c3843 -.4byte 0x82c3862 -.4byte 0x82c3881 -.4byte 0x82c389e -.4byte 0x82c38c0 -.4byte 0x82c38e3 -.4byte 0x82c3901 -.4byte 0x82c3924 -.4byte 0x82c3948 -.4byte 0x82c3969 -.4byte 0x82c398b -.4byte 0x82c39b2 -.4byte 0x82c39c1 -.4byte 0x82c39d4 -.4byte 0x82c39e8 -.4byte 0x82c39fa -.4byte 0x82c3a11 -.4byte 0x82c3a29 -.4byte 0x82c3a41 -.4byte 0x82c3a5a -.4byte 0x82c3a71 -.4byte 0x82c3a8d -.4byte 0x82c3aaa -.4byte 0x82c3ac7 -.4byte 0x82c3ae2 -.4byte 0x82c3b02 -.4byte 0x82c3b23 -.4byte 0x82c3b3f -.4byte 0x82c3b60 -.4byte 0x82c3b82 -.4byte 0x82c3ba1 -.4byte 0x82c3bc1 -.4byte 0x82c3be6 -.4byte 0x82c3bf3 -.4byte 0x82c3c04 -.4byte 0x82c3c16 -.4byte 0x82c3c26 -.4byte 0x82c3c3b -.4byte 0x82c3c51 + .byte 0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05 + +gBattleDomePotentialPointers:: @ 860D1D0 + .4byte gBattleDomeOpponentPotential1 + .4byte gBattleDomeOpponentPotential2 + .4byte gBattleDomeOpponentPotential3 + .4byte gBattleDomeOpponentPotential4 + .4byte gBattleDomeOpponentPotential5 + .4byte gBattleDomeOpponentPotential6 + .4byte gBattleDomeOpponentPotential7 + .4byte gBattleDomeOpponentPotential8 + .4byte gBattleDomeOpponentPotential9 + .4byte gBattleDomeOpponentPotential10 + .4byte gBattleDomeOpponentPotential11 + .4byte gBattleDomeOpponentPotential12 + .4byte gBattleDomeOpponentPotential13 + .4byte gBattleDomeOpponentPotential14 + .4byte gBattleDomeOpponentPotential15 + .4byte gBattleDomeOpponentPotential16 + .4byte gBattleDomeOpponentPotential17 + +gBattleDomeOpponentStylePointers:: @ 860D214 + .4byte gBattleDomeOpponentStyle1 + .4byte gBattleDomeOpponentStyle2 + .4byte gBattleDomeOpponentStyle3 + .4byte gBattleDomeOpponentStyle4 + .4byte gBattleDomeOpponentStyle5 + .4byte gBattleDomeOpponentStyle6 + .4byte gBattleDomeOpponentStyle7 + .4byte gBattleDomeOpponentStyle8 + .4byte gBattleDomeOpponentStyle9 + .4byte gBattleDomeOpponentStyle10 + .4byte gBattleDomeOpponentStyle11 + .4byte gBattleDomeOpponentStyle12 + .4byte gBattleDomeOpponentStyle13 + .4byte gBattleDomeOpponentStyle14 + .4byte gBattleDomeOpponentStyle15 + .4byte gBattleDomeOpponentStyle16 + .4byte gBattleDomeOpponentStyle17 + .4byte gBattleDomeOpponentStyle18 + .4byte gBattleDomeOpponentStyle19 + .4byte gBattleDomeOpponentStyle20 + .4byte gBattleDomeOpponentStyle21 + .4byte gBattleDomeOpponentStyle22 + .4byte gBattleDomeOpponentStyle23 + .4byte gBattleDomeOpponentStyle24 + .4byte gBattleDomeOpponentStyle25 + .4byte gBattleDomeOpponentStyle26 + .4byte gBattleDomeOpponentStyle27 + .4byte gBattleDomeOpponentStyle28 + .4byte gBattleDomeOpponentStyleUnused1 + .4byte gBattleDomeOpponentStyleUnused2 + .4byte gBattleDomeOpponentStyleUnused3 + .4byte gBattleDomeOpponentStyleUnused4 + +gBattleDomeOpponentStatsPointers:: @ 860D294 + .4byte gBattleDomeOpponentStats1 + .4byte gBattleDomeOpponentStats2 + .4byte gBattleDomeOpponentStats3 + .4byte gBattleDomeOpponentStats4 + .4byte gBattleDomeOpponentStats5 + .4byte gBattleDomeOpponentStats6 + .4byte gBattleDomeOpponentStats7 + .4byte gBattleDomeOpponentStats8 + .4byte gBattleDomeOpponentStats9 + .4byte gBattleDomeOpponentStats10 + .4byte gBattleDomeOpponentStats11 + .4byte gBattleDomeOpponentStats12 + .4byte gBattleDomeOpponentStats13 + .4byte gBattleDomeOpponentStats14 + .4byte gBattleDomeOpponentStats15 + .4byte gBattleDomeOpponentStats16 + .4byte gBattleDomeOpponentStats17 + .4byte gBattleDomeOpponentStats18 + .4byte gBattleDomeOpponentStats19 + .4byte gBattleDomeOpponentStats20 + .4byte gBattleDomeOpponentStats21 + .4byte gBattleDomeOpponentStats22 + .4byte gBattleDomeOpponentStats23 + .4byte gBattleDomeOpponentStats24 + .4byte gBattleDomeOpponentStats25 + .4byte gBattleDomeOpponentStats26 + .4byte gBattleDomeOpponentStats27 + .4byte gBattleDomeOpponentStats28 + .4byte gBattleDomeOpponentStats29 + .4byte gBattleDomeOpponentStats30 + .4byte gBattleDomeOpponentStats31 + .4byte gBattleDomeOpponentStats32 + .4byte gBattleDomeOpponentStats33 + .4byte gBattleDomeOpponentStats34 + .4byte gBattleDomeOpponentStats35 + .4byte gBattleDomeOpponentStats36 + .4byte gBattleDomeOpponentStats37 + .4byte gBattleDomeOpponentStats38 + .4byte gBattleDomeOpponentStats39 + .4byte gBattleDomeOpponentStats40 + .4byte gBattleDomeOpponentStats41 + .4byte gBattleDomeOpponentStats42 + .4byte gBattleDomeOpponentStats43 gUnknown_0860D340:: @ 860D340 -.byte 0x68, 0x88, 0x68 + .byte 0x68, 0x88, 0x68 gUnknown_0860D343:: @ 860D343 -.byte 0x26, 0x3e, 0x4e + .byte 0x26, 0x3e, 0x4e gUnknown_0860D346:: @ 860D346 -.byte 0x00, 0x04, 0x00 + .byte 0x00, 0x04, 0x00 gUnknown_0860D349:: @ 860D349 -.byte 0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00 - -gUnknown_0860D350:: @ 860D350 -.4byte 0x82c3d1f -.4byte 0x82c3d30 -.4byte 0x82c3d41 -.4byte 0x82c3d52 -.4byte 0x82c3d63 -.4byte 0x82c3d74 -.4byte 0x82c3d85 -.4byte 0x82c3d96 -.4byte 0x82c3da7 -.4byte 0x82c3db8 -.4byte 0x82c3dc9 -.4byte 0x82c3dda -.4byte 0x82c3deb -.4byte 0x82c3dfd -.4byte 0x82c3e0f - -gUnknown_0860D38C:: @ 860D38C -.4byte 0x82c3c78 -.4byte 0x82c3c8e -.4byte 0x82c3c9f -.4byte 0x82c3cb4 -.4byte 0x82c3cc7 -.4byte 0x82c3ce3 -.4byte 0x82c3d00 + .byte 0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00 + +gBattleDomeMatchNumberPointers:: @ 860D350 + .4byte gBattleDomeMatchNumber1 + .4byte gBattleDomeMatchNumber2 + .4byte gBattleDomeMatchNumber3 + .4byte gBattleDomeMatchNumber4 + .4byte gBattleDomeMatchNumber5 + .4byte gBattleDomeMatchNumber6 + .4byte gBattleDomeMatchNumber7 + .4byte gBattleDomeMatchNumber8 + .4byte gBattleDomeMatchNumber9 + .4byte gBattleDomeMatchNumber10 + .4byte gBattleDomeMatchNumber11 + .4byte gBattleDomeMatchNumber12 + .4byte gBattleDomeMatchNumber13 + .4byte gBattleDomeMatchNumber14 + .4byte gBattleDomeMatchNumber15 + +gBattleDomeWinStringsPointers:: @ 860D38C + .4byte gBattleDomeWinStrings1 + .4byte gBattleDomeWinStrings2 + .4byte gBattleDomeWinStrings3 + .4byte gBattleDomeWinStrings4 + .4byte gBattleDomeWinStrings5 + .4byte gBattleDomeWinStrings6 + .4byte gBattleDomeWinStrings7 gUnknown_0860D3A8:: @ 860D3A8 -.byte 0x60, 0x60, 0x60 + .byte 0x60, 0x60, 0x60 gUnknown_0860D3AB:: @ 860D3AB -.byte 0x38, 0x50, 0x68 + .byte 0x38, 0x50, 0x68 gUnknown_0860D3AE:: @ 860D3AE -.byte 0x90, 0x90, 0x90 + .byte 0x90, 0x90, 0x90 gUnknown_0860D3B1:: @ 860D3B1 -.byte 0x38, 0x50, 0x68 + .byte 0x38, 0x50, 0x68 gUnknown_0860D3B4:: @ 860D3B4 -.byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 + .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 gUnknown_0860D3C4:: @ 860D3C4 -.byte 0x00, 0x02 + .byte 0x00, 0x02 gUnknown_0860D3C6:: @ 860D3C6 -.byte 0x00, 0x02, 0x02, 0x00, 0x04, 0x02, 0x00, 0x06, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0a, 0x02, 0x00, 0x0c, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x04, 0x01, 0x04, 0x04, 0x01, 0x08, 0x04, 0x01, 0x0c -.byte 0x04, 0x01, 0x00, 0x08, 0x02, 0x08, 0x08, 0x02, 0x00, 0x10, 0x03 + .byte 0x00, 0x02, 0x02, 0x00, 0x04, 0x02, 0x00, 0x06, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0a, 0x02, 0x00, 0x0c, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x04, 0x01, 0x04, 0x04, 0x01, 0x08, 0x04, 0x01, 0x0c + .byte 0x04, 0x01, 0x00, 0x08, 0x02, 0x08, 0x08, 0x02, 0x00, 0x10, 0x03 gUnknown_0860D3F1:: @ 860D3F1 -.byte 0x00 + .byte 0x00 gUnknown_0860D3F2:: @ 860D3F2 -.byte 0x00, 0x01, 0x70, 0x01, 0x00, 0x00, 0x70, 0x00, 0x30, 0x01, 0x40, 0x01, 0x30, 0x00, 0x40, 0x00, 0x10, 0x01, 0x60, 0x01, 0x10, 0x00, 0x60, 0x00, 0x20, 0x01, 0x50, 0x01, 0x20, 0x00, 0x50 + .byte 0x00, 0x01, 0x70, 0x01, 0x00, 0x00, 0x70, 0x00, 0x30, 0x01, 0x40, 0x01, 0x30, 0x00, 0x40, 0x00, 0x10, 0x01, 0x60, 0x01, 0x10, 0x00, 0x60, 0x00, 0x20, 0x01, 0x50, 0x01, 0x20, 0x00, 0x50 gUnknown_0860D411:: @ 860D411 - .incbin "baserom.gba", 0x60d411, 0x8ff //struct - byte 1 and 2 loaded seperately, 2 added to move 1 addr across + .incbin "baserom.gba", 0x60d411, 0x3f //struct - byte 1 and 2 loaded seperately, 2 added to move 1 addr across + +gUnknown_0860d450:: @ 860D450 + .4byte 0x60210409 + .4byte 0x6023040a + .4byte 0x6047050a + .4byte 0x6043050b + +gUnknown_0860d460:: @ 860D460 + .4byte 0x60210409 + .4byte 0x6023040a + .4byte 0x6047050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6043070c + +gUnknown_0860d47c:: @ 860D47C + .4byte 0x60210409 + .4byte 0x6023040a + .4byte 0x6047050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + +gUnknown_0860d4a8:: @ 860D4A8 + .4byte 0x60210409 + .4byte 0x6023040a + .4byte 0x6047050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d4dc:: @ 860D4DC + .4byte 0x60210609 + .4byte 0x6021060a + .4byte 0x6027050a + .4byte 0x6043050b + +gUnknown_0860d4ec:: @ 860D4EC + .4byte 0x60210609 + .4byte 0x6021060a + .4byte 0x6027050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6043070c + +gUnknown_0860d508:: @ 860D508 + .4byte 0x60210609 + .4byte 0x6021060a + .4byte 0x6027050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + +gUnknown_0860d534:: @ 860D534 + .4byte 0x60210609 + .4byte 0x6021060a + .4byte 0x6027050a + .4byte 0x6023050b + .4byte 0x6027060b + .4byte 0x6047070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d568:: @ 860D568 + .4byte 0x60210809 + .4byte 0x6023080a + .4byte 0x6047090a + .4byte 0x6021090b + +gUnknown_0860d578:: @ 860D578 + .4byte 0x60210809 + .4byte 0x6023080a + .4byte 0x6047090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6043070c + +gUnknown_0860d594:: @ 860D594 + .4byte 0x60210809 + .4byte 0x6023080a + .4byte 0x6047090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + +gUnknown_0860d5c0:: @ 860D5C0 + .4byte 0x60210809 + .4byte 0x6023080a + .4byte 0x6047090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d5f4:: @ 860D5F4 + .4byte 0x60210a09 + .4byte 0x60210a0a + .4byte 0x6027090a + .4byte 0x6021090b + +gUnknown_0860d604:: @ 860D604 + .4byte 0x60210a09 + .4byte 0x60210a0a + .4byte 0x6027090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6043070c + +gUnknown_0860d620:: @ 860D620 + .4byte 0x60210a09 + .4byte 0x60210a0a + .4byte 0x6027090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + +gUnknown_0860d64c:: @ 860D64C + .4byte 0x60210a09 + .4byte 0x60210a0a + .4byte 0x6027090a + .4byte 0x6021090b + .4byte 0x6027080b + .4byte 0x6027070b + .4byte 0x6023070c + .4byte 0x6027080c + .4byte 0x6027090c + .4byte 0x60270a0c + .4byte 0x603b0b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d680:: @ 860D680 + .4byte 0x60210c09 + .4byte 0x60230c0a + .4byte 0x60470d0a + .4byte 0x60430d0b + +gUnknown_0860d690:: @ 860D690 + .4byte 0x60210c09 + .4byte 0x60230c0a + .4byte 0x60470d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + +gUnknown_0860d6ac:: @ 860D6AC + .4byte 0x60210c09 + .4byte 0x60230c0a + .4byte 0x60470d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + +gUnknown_0860d6d8:: @ 860D6D8 + .4byte 0x60210c09 + .4byte 0x60230c0a + .4byte 0x60470d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d70c:: @ 860D70C + .4byte 0x60210e09 + .4byte 0x60210e0a + .4byte 0x60270d0a + .4byte 0x60430d0b + +gUnknown_0860d71c:: @ 860D71C + .4byte 0x60210e09 + .4byte 0x60210e0a + .4byte 0x60270d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + +gUnknown_0860d738:: @ 860D738 + .4byte 0x60210e09 + .4byte 0x60210e0a + .4byte 0x60270d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + +gUnknown_0860d764:: @ 860D764 + .4byte 0x60210e09 + .4byte 0x60210e0a + .4byte 0x60270d0a + .4byte 0x60230d0b + .4byte 0x60270e0b + .4byte 0x60470f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d798:: @ 860D798 + .4byte 0x60211009 + .4byte 0x6023100a + .4byte 0x6047110a + .4byte 0x6021110b + +gUnknown_0860d7a8:: @ 860D7A8 + .4byte 0x60211009 + .4byte 0x6023100a + .4byte 0x6047110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + +gUnknown_0860d7c4:: @ 860D7C4 + .4byte 0x60211009 + .4byte 0x6023100a + .4byte 0x6047110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + +gUnknown_0860d7f0:: @ 860D7F0 + .4byte 0x60211009 + .4byte 0x6023100a + .4byte 0x6047110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d824:: @ 860D824 + .4byte 0x602b1209 + .4byte 0x602b120a + .4byte 0x6027110a + .4byte 0x6021110b + +gUnknown_0860d834:: @ 860D834 + .4byte 0x602b1209 + .4byte 0x602b120a + .4byte 0x6027110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + +gUnknown_0860d850:: @ 860D850 + .4byte 0x602b1209 + .4byte 0x602b120a + .4byte 0x6027110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + +gUnknown_0860d87c:: @ 860D87C + .4byte 0x602b1209 + .4byte 0x602b120a + .4byte 0x6027110a + .4byte 0x6021110b + .4byte 0x6027100b + .4byte 0x60270f0b + .4byte 0x60210f0c + .4byte 0x60330e0c + .4byte 0x60320d0c + .4byte 0x60310c0c + .4byte 0x60300b0c + .4byte 0x602c0b0d + .4byte 0x602d0b0e + +gUnknown_0860d8b0:: @ 860D8B0 + .4byte 0x60210414 + .4byte 0x60250413 + .4byte 0x60490513 + .4byte 0x60450512 + +gUnknown_0860d8c0:: @ 860D8C0 + .4byte 0x60210414 + .4byte 0x60250413 + .4byte 0x60490513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60450711 + +gUnknown_0860d8dc:: @ 860D8DC + .4byte 0x60210414 + .4byte 0x60250413 + .4byte 0x60490513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + +gUnknown_0860d908:: @ 860D908 + .4byte 0x60210414 + .4byte 0x60250413 + .4byte 0x60490513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860d93c:: @ 860D93C + .4byte 0x60210614 + .4byte 0x60210613 + .4byte 0x60290513 + .4byte 0x60450512 + +gUnknown_0860d94c:: @ 860D94C + .4byte 0x60210614 + .4byte 0x60210613 + .4byte 0x60290513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60450711 + +gUnknown_0860d968:: @ 860D968 + .4byte 0x60210614 + .4byte 0x60210613 + .4byte 0x60290513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + +gUnknown_0860d994:: @ 860D994 + .4byte 0x60210614 + .4byte 0x60210613 + .4byte 0x60290513 + .4byte 0x60250512 + .4byte 0x60290612 + .4byte 0x60490712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860d9c8:: @ 860D9C8 + .4byte 0x60210814 + .4byte 0x60250813 + .4byte 0x60490913 + .4byte 0x60210912 + +gUnknown_0860d9d8:: @ 860D9D8 + .4byte 0x60210814 + .4byte 0x60250813 + .4byte 0x60490913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60450711 + +gUnknown_0860d9f4:: @ 860D9F4 + .4byte 0x60210814 + .4byte 0x60250813 + .4byte 0x60490913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + +gUnknown_0860da20:: @ 860DA20 + .4byte 0x60210814 + .4byte 0x60250813 + .4byte 0x60490913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860da54:: @ 860DA54 + .4byte 0x60210a14 + .4byte 0x60210a13 + .4byte 0x60290913 + .4byte 0x60210912 + +gUnknown_0860da64:: @ 860DA64 + .4byte 0x60210a14 + .4byte 0x60210a13 + .4byte 0x60290913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60450711 + +gUnknown_0860da80:: @ 860DA80 + .4byte 0x60210a14 + .4byte 0x60210a13 + .4byte 0x60290913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + +gUnknown_0860daac:: @ 860DAAC + .4byte 0x60210a14 + .4byte 0x60210a13 + .4byte 0x60290913 + .4byte 0x60210912 + .4byte 0x60290812 + .4byte 0x60290712 + .4byte 0x60250711 + .4byte 0x60290811 + .4byte 0x60290911 + .4byte 0x60290a11 + .4byte 0x603c0b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860dae0:: @ 860DAE0 + .4byte 0x60210c14 + .4byte 0x60250c13 + .4byte 0x60490d13 + .4byte 0x60450d12 + +gUnknown_0860daf0:: @ 860DAF0 + .4byte 0x60210c14 + .4byte 0x60250c13 + .4byte 0x60490d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + +gUnknown_0860db0c:: @ 860DB0C + .4byte 0x60210c14 + .4byte 0x60250c13 + .4byte 0x60490d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + +gUnknown_0860db38:: @ 860DB38 + .4byte 0x60210c14 + .4byte 0x60250c13 + .4byte 0x60490d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860db6c:: @ 860DB6C + .4byte 0x60210e14 + .4byte 0x60210e13 + .4byte 0x60290d13 + .4byte 0x60450d12 + +gUnknown_0860db7c:: @ 860DB7C + .4byte 0x60210e14 + .4byte 0x60210e13 + .4byte 0x60290d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + +gUnknown_0860db98:: @ 860DB98 + .4byte 0x60210e14 + .4byte 0x60210e13 + .4byte 0x60290d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + +gUnknown_0860dbc4:: @ 860DBC4 + .4byte 0x60210e14 + .4byte 0x60210e13 + .4byte 0x60290d13 + .4byte 0x60250d12 + .4byte 0x60290e12 + .4byte 0x60490f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860dbf8:: @ 860DBF8 + .4byte 0x60211014 + .4byte 0x60251013 + .4byte 0x60491113 + .4byte 0x60211112 + +gUnknown_0860dc08:: @ 860DC08 + .4byte 0x60211014 + .4byte 0x60251013 + .4byte 0x60491113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + +gUnknown_0860dc24:: @ 860DC24 + .4byte 0x60211014 + .4byte 0x60251013 + .4byte 0x60491113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + +gUnknown_0860dc50:: @ 860DC50 + .4byte 0x60211014 + .4byte 0x60251013 + .4byte 0x60491113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f + +gUnknown_0860dc84:: @ 860DC84 + .4byte 0x602b1214 + .4byte 0x602b1213 + .4byte 0x60291113 + .4byte 0x60211112 + +gUnknown_0860dc94:: @ 860DC94 + .4byte 0x602b1214 + .4byte 0x602b1213 + .4byte 0x60291113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + +gUnknown_0860dcb0:: @ 860DCB0 + .4byte 0x602b1214 + .4byte 0x602b1213 + .4byte 0x60291113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + +gUnknown_0860dcdc:: @ 860DCDC + .4byte 0x602b1214 + .4byte 0x602b1213 + .4byte 0x60291113 + .4byte 0x60211112 + .4byte 0x60291012 + .4byte 0x60290f12 + .4byte 0x60210f11 + .4byte 0x60380e11 + .4byte 0x60370d11 + .4byte 0x60360c11 + .4byte 0x60350b11 + .4byte 0x602f0b10 + .4byte 0x602e0b0f gUnknown_0860DD10:: @ 860DD10 -.4byte 0x860d450 -.4byte 0x860d460 -.4byte 0x860d47c -.4byte 0x860d4a8 -.4byte 0x860dc84 -.4byte 0x860dc94 -.4byte 0x860dcb0 -.4byte 0x860dcdc -.4byte 0x860d8b0 -.4byte 0x860d8c0 -.4byte 0x860d8dc -.4byte 0x860d908 -.4byte 0x860d824 -.4byte 0x860d834 -.4byte 0x860d850 -.4byte 0x860d87c -.4byte 0x860d5f4 -.4byte 0x860d604 -.4byte 0x860d620 -.4byte 0x860d64c -.4byte 0x860dae0 -.4byte 0x860daf0 -.4byte 0x860db0c -.4byte 0x860db38 -.4byte 0x860da54 -.4byte 0x860da64 -.4byte 0x860da80 -.4byte 0x860daac -.4byte 0x860d680 -.4byte 0x860d690 -.4byte 0x860d6ac -.4byte 0x860d6d8 -.4byte 0x860d4dc -.4byte 0x860d4ec -.4byte 0x860d508 -.4byte 0x860d534 -.4byte 0x860dbf8 -.4byte 0x860dc08 -.4byte 0x860dc24 -.4byte 0x860dc50 -.4byte 0x860d93c -.4byte 0x860d94c -.4byte 0x860d968 -.4byte 0x860d994 -.4byte 0x860d798 -.4byte 0x860d7a8 -.4byte 0x860d7c4 -.4byte 0x860d7f0 -.4byte 0x860d568 -.4byte 0x860d578 -.4byte 0x860d594 -.4byte 0x860d5c0 -.4byte 0x860db6c -.4byte 0x860db7c -.4byte 0x860db98 -.4byte 0x860dbc4 -.4byte 0x860d9c8 -.4byte 0x860d9d8 -.4byte 0x860d9f4 -.4byte 0x860da20 -.4byte 0x860d70c -.4byte 0x860d71c -.4byte 0x860d738 -.4byte 0x860d764 + .4byte gUnknown_0860d450 + .4byte gUnknown_0860d460 + .4byte gUnknown_0860d47c + .4byte gUnknown_0860d4a8 + .4byte gUnknown_0860dc84 + .4byte gUnknown_0860dc94 + .4byte gUnknown_0860dcb0 + .4byte gUnknown_0860dcdc + .4byte gUnknown_0860d8b0 + .4byte gUnknown_0860d8c0 + .4byte gUnknown_0860d8dc + .4byte gUnknown_0860d908 + .4byte gUnknown_0860d824 + .4byte gUnknown_0860d834 + .4byte gUnknown_0860d850 + .4byte gUnknown_0860d87c + .4byte gUnknown_0860d5f4 + .4byte gUnknown_0860d604 + .4byte gUnknown_0860d620 + .4byte gUnknown_0860d64c + .4byte gUnknown_0860dae0 + .4byte gUnknown_0860daf0 + .4byte gUnknown_0860db0c + .4byte gUnknown_0860db38 + .4byte gUnknown_0860da54 + .4byte gUnknown_0860da64 + .4byte gUnknown_0860da80 + .4byte gUnknown_0860daac + .4byte gUnknown_0860d680 + .4byte gUnknown_0860d690 + .4byte gUnknown_0860d6ac + .4byte gUnknown_0860d6d8 + .4byte gUnknown_0860d4dc + .4byte gUnknown_0860d4ec + .4byte gUnknown_0860d508 + .4byte gUnknown_0860d534 + .4byte gUnknown_0860dbf8 + .4byte gUnknown_0860dc08 + .4byte gUnknown_0860dc24 + .4byte gUnknown_0860dc50 + .4byte gUnknown_0860d93c + .4byte gUnknown_0860d94c + .4byte gUnknown_0860d968 + .4byte gUnknown_0860d994 + .4byte gUnknown_0860d798 + .4byte gUnknown_0860d7a8 + .4byte gUnknown_0860d7c4 + .4byte gUnknown_0860d7f0 + .4byte gUnknown_0860d568 + .4byte gUnknown_0860d578 + .4byte gUnknown_0860d594 + .4byte gUnknown_0860d5c0 + .4byte gUnknown_0860db6c + .4byte gUnknown_0860db7c + .4byte gUnknown_0860db98 + .4byte gUnknown_0860dbc4 + .4byte gUnknown_0860d9c8 + .4byte gUnknown_0860d9d8 + .4byte gUnknown_0860d9f4 + .4byte gUnknown_0860da20 + .4byte gUnknown_0860d70c + .4byte gUnknown_0860d71c + .4byte gUnknown_0860d738 + .4byte gUnknown_0860d764 gUnknown_0860DE10:: @ 860DE10 -.byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d -.byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d + .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d + .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d gUnknown_0860DE50:: @ 860DE50 .4byte 0x8195981 @@ -390,16 +1078,16 @@ gUnknown_0860DE50:: @ 860DE50 .4byte 0x8195db9 gUnknown_0860DE78:: @ 860DE78 -.2byte 0x003f, 0x0040, 0x0041, 0x0043, 0x0042, 0x0046 + .2byte 0x003f, 0x0040, 0x0041, 0x0043, 0x0042, 0x0046 gUnknown_0860DE84:: @ 860DE84 -.2byte 0x00b3, 0x00b4, 0x00b7, 0x00c8, 0x00b9, 0x00bb, 0x00c4, 0x00c6, 0x00ba, 0x0000 + .2byte 0x00b3, 0x00b4, 0x00b7, 0x00c8, 0x00b9, 0x00bb, 0x00c4, 0x00c6, 0x00ba, 0x0000 gUnknown_0860DE98:: @ 860DE98 -.4byte 0x00000010, 0x00000020, 0x00400000, 0x00800000 + .4byte 0x00000010, 0x00000020, 0x00400000, 0x00800000 gUnknown_0860DEA8:: @ 860DEA8 -.4byte 0xffffffef, 0xffffffdf, 0xffbfffff, 0xff7fffff + .4byte 0xffffffef, 0xffffffdf, 0xffbfffff, 0xff7fffff gUnknown_0860DEB8:: @ 860DEB8 //struct .incbin "baserom.gba", 0x60deb8, 0xb68 @@ -437,34 +1125,34 @@ gUnknown_0860EF70:: @ 860EF70 .incbin "baserom.gba", 0x60ef70, 0x8 gUnknown_0860EF78:: @ 860EF78 -.4byte sub_819612C -.4byte sub_81961F0 -.4byte sub_8196274 -.4byte sub_81962B0 -.4byte sub_81962D8 -.4byte sub_8196330 -.4byte sub_8196390 -.4byte sub_81963F0 + .4byte sub_819612C + .4byte sub_81961F0 + .4byte sub_8196274 + .4byte sub_81962B0 + .4byte sub_81962D8 + .4byte sub_8196330 + .4byte sub_8196390 + .4byte sub_81963F0 gUnknown_0860EF98:: @ 860EF98 .incbin "baserom.gba", 0x60ef98, 0x8 gUnknown_0860EFA0:: @ 860EFA0 -.4byte 0x2021cc4 -.4byte 0x2021dc4 -.4byte 0x2021ec4 + .4byte 0x2021cc4 + .4byte 0x2021dc4 + .4byte 0x2021ec4 gUnknown_0860EFAC:: @ 860EFAC -.4byte sub_8196A44 -.4byte sub_8196A9C -.4byte sub_8196B98 -.4byte sub_8196C70 -.4byte sub_8196CF4 -.4byte sub_8196D14 + .4byte sub_8196A44 + .4byte sub_8196A9C + .4byte sub_8196B98 + .4byte sub_8196C70 + .4byte sub_8196CF4 + .4byte sub_8196D14 gUnknown_0860EFC4:: @ 860EFC4 -.2byte 0x0282, 0x0000, 0xfa72, 0x085e, 0x01e1, 0x0000, 0xfa77, 0x085e, 0x02a9, 0x0000, 0xfa7b, 0x085e, 0x02af, 0x0000, 0xfa80, 0x085e -.2byte 0x0033, 0x0000, 0xfa84, 0x085e, 0x011f, 0x0000, 0xfa8a, 0x085e + .2byte 0x0282, 0x0000, 0xfa72, 0x085e, 0x01e1, 0x0000, 0xfa77, 0x085e, 0x02a9, 0x0000, 0xfa7b, 0x085e, 0x02af, 0x0000, 0xfa80, 0x085e + .2byte 0x0033, 0x0000, 0xfa84, 0x085e, 0x011f, 0x0000, 0xfa8a, 0x085e gUnknown_0860EFF4:: @ 860EFF4 .4byte 0x85ed104 diff --git a/data/event_scripts.s b/data/event_scripts.s index e260b8689..66a998f42 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -12223,232 +12223,346 @@ BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 .string "Thank you, my mentor!\n" .string "I apologize for my skepticism!$" +gBattleDomeOpponentPotential1:: .string "The best candidate to be a champ!$" +gBattleDomeOpponentPotential2:: .string "A sure-finalist team.$" +gBattleDomeOpponentPotential3:: .string "A likely top-three finisher.$" - + +gBattleDomeOpponentPotential4:: .string "A candidate to finish first.$" +gBattleDomeOpponentPotential5:: .string "A team with top-class potential.$" +gBattleDomeOpponentPotential6:: .string "The dark horse team this tournament.$" +gBattleDomeOpponentPotential7:: .string "A better-than-average team.$" +gBattleDomeOpponentPotential8:: .string "This tournament’s average team.$" +gBattleDomeOpponentPotential9:: .string "A team with average potential.$" +gBattleDomeOpponentPotential10:: .string "A weaker-than-average team.$" +gBattleDomeOpponentPotential11:: .string "A team looking for its first win.$" +gBattleDomeOpponentPotential12:: .string "One win will make this team proud.$" +gBattleDomeOpponentPotential13:: .string "Overall, a weak team.$" +gBattleDomeOpponentPotential14:: .string "A team with very low potential.$" +gBattleDomeOpponentPotential15:: .string "A team unlikely to win the tournament.$" +gBattleDomeOpponentPotential16:: .string "The team most unlikely to win.$" +gBattleDomeOpponentPotential17:: .string "The perfect, invincible superstar!$" +gBattleDomeOpponentStyle1:: .string "Willing to risk total disaster at times.$" +gBattleDomeOpponentStyle2:: .string "Skilled at enduring long battles.$" +gBattleDomeOpponentStyle3:: .string "Varies tactics to suit the opponent.$" +gBattleDomeOpponentStyle4:: .string "Has a tough winning pattern.$" +gBattleDomeOpponentStyle5:: .string "Occasionally uses a very rare move.$" +gBattleDomeOpponentStyle6:: .string "Uses startling and disruptive moves.$" +gBattleDomeOpponentStyle7:: .string "Constantly watches HP in battle.$" +gBattleDomeOpponentStyle8:: .string "Good at storing then loosing power.$" +gBattleDomeOpponentStyle9:: .string "Skilled at enfeebling foes.$" +gBattleDomeOpponentStyle10:: .string "Prefers tactics that rely on luck.$" +gBattleDomeOpponentStyle11:: .string "Attacks with a regal atmosphere.$" +gBattleDomeOpponentStyle12:: .string "Attacks with powerful, low-PP moves.$" +gBattleDomeOpponentStyle13:: .string "Skilled at enfeebling, then attacking.$" +gBattleDomeOpponentStyle14:: .string "Battles while enduring all attacks.$" +gBattleDomeOpponentStyle15:: .string "Skilled at upsetting foes emotionally.$" +gBattleDomeOpponentStyle16:: .string "Uses strong and straightforward moves.$" +gBattleDomeOpponentStyle17:: .string "Aggressively uses strong moves.$" +gBattleDomeOpponentStyle18:: .string "Battles while cleverly dodging attacks.$" +gBattleDomeOpponentStyle19:: .string "Skilled at using upsetting attacks.$" +gBattleDomeOpponentStyle20:: .string "Uses many popular moves.$" +gBattleDomeOpponentStyle21:: .string "Has moves for powerful combinations.$" +gBattleDomeOpponentStyle22:: .string "Uses high-probability attacks.$" +gBattleDomeOpponentStyle23:: .string "Aggressively uses spectacular moves.$" +gBattleDomeOpponentStyle24:: .string "Emphasizes offense over defense.$" +gBattleDomeOpponentStyle25:: .string "Emphasizes defense over offense.$" +gBattleDomeOpponentStyle26:: .string "Attacks quickly with strong moves.$" +gBattleDomeOpponentStyle27:: .string "Often uses moves with added effects.$" +gBattleDomeOpponentStyle28:: .string "Uses a well-balanced mix of moves.$" +gBattleDomeOpponentStyleUnused1:: .string "This is sample message 1.$" +gBattleDomeOpponentStyleUnused2:: .string "This is sample message 2.$" +gBattleDomeOpponentStyleUnused3:: .string "This is sample message 3.$" +gBattleDomeOpponentStyleUnused4:: .string "This is sample message 4.$" +gBattleDomeOpponentStats1:: .string "Emphasizes HP and ATTACK.$" +gBattleDomeOpponentStats2:: .string "Emphasizes HP and DEFENSE.$" +gBattleDomeOpponentStats3:: .string "Emphasizes HP and SPEED.$" +gBattleDomeOpponentStats4:: .string "Emphasizes HP and SP. ATTACK.$" +gBattleDomeOpponentStats5:: .string "Emphasizes HP and SP. DEFENSE.$" +gBattleDomeOpponentStats6:: .string "Emphasizes ATTACK and DEFENSE.$" +gBattleDomeOpponentStats7:: .string "Emphasizes ATTACK and SPEED.$" +gBattleDomeOpponentStats8:: .string "Emphasizes ATTACK and SP. ATTACK.$" +gBattleDomeOpponentStats9:: .string "Emphasizes ATTACK and SP. DEFENSE.$" +gBattleDomeOpponentStats10:: .string "Emphasizes DEFENSE and SPEED.$" +gBattleDomeOpponentStats11:: .string "Emphasizes DEFENSE and SP. ATTACK.$" +gBattleDomeOpponentStats12:: .string "Emphasizes DEFENSE and SP. DEFENSE.$" +gBattleDomeOpponentStats13:: .string "Emphasizes SPEED and SP. ATTACK.$" +gBattleDomeOpponentStats14:: .string "Emphasizes SPEED and SP. DEFENSE.$" +gBattleDomeOpponentStats15:: .string "Emphasizes SP. ATTACK and SP. DEFENSE.$" +gBattleDomeOpponentStats16:: .string "Emphasizes HP.$" +gBattleDomeOpponentStats17:: .string "Emphasizes ATTACK.$" +gBattleDomeOpponentStats18:: .string "Emphasizes DEFENSE.$" +gBattleDomeOpponentStats19:: .string "Emphasizes SPEED.$" +gBattleDomeOpponentStats20:: .string "Emphasizes SP. ATTACK.$" +gBattleDomeOpponentStats21:: .string "Emphasizes SP. DEFENSE.$" +gBattleDomeOpponentStats22:: .string "Neglects HP and ATTACK.$" +gBattleDomeOpponentStats23:: .string "Neglects HP and DEFENSE.$" +gBattleDomeOpponentStats24:: .string "Neglects HP and SPEED.$" +gBattleDomeOpponentStats25:: .string "Neglects HP and SP. ATTACK.$" +gBattleDomeOpponentStats26:: .string "Neglects HP and SP. DEFENSE.$" +gBattleDomeOpponentStats27:: .string "Neglects ATTACK and DEFENSE.$" +gBattleDomeOpponentStats28:: .string "Neglects ATTACK and SPEED.$" +gBattleDomeOpponentStats29:: .string "Neglects ATTACK and SP. ATTACK.$" +gBattleDomeOpponentStats30:: .string "Neglects ATTACK and SP. DEFENSE.$" +gBattleDomeOpponentStats31:: .string "Neglects DEFENSE and SPEED.$" +gBattleDomeOpponentStats32:: .string "Neglects DEFENSE and SP. ATTACK.$" +gBattleDomeOpponentStats33:: .string "Neglects DEFENSE and SP. DEFENSE.$" +gBattleDomeOpponentStats34:: .string "Neglects SPEED and SP. ATTACK.$" +gBattleDomeOpponentStats35:: .string "Neglects SPEED and SP. DEFENSE.$" +gBattleDomeOpponentStats36:: .string "Neglects SP. ATTACK and SP. DEFENSE.$" +gBattleDomeOpponentStats37:: .string "Neglects HP.$" +gBattleDomeOpponentStats38:: .string "Neglects ATTACK.$" +gBattleDomeOpponentStats39:: .string "Neglects DEFENSE.$" +gBattleDomeOpponentStats40:: .string "Neglects SPEED.$" +gBattleDomeOpponentStats41:: .string "Neglects SP. ATTACK.$" +gBattleDomeOpponentStats42:: .string "Neglects SP. DEFENSE.$" +gBattleDomeOpponentStats43:: .string "Raises POKéMON in a well-balanced way.$" +gBattleDomeWinStrings1:: .string "Let the battle begin!$" +gBattleDomeWinStrings2:: .string "{STR_VAR_1} won using {STR_VAR_2}!$" +gBattleDomeWinStrings3:: .string "{STR_VAR_1} became the champ!$" +gBattleDomeWinStrings4:: .string "{STR_VAR_1} won by default!$" +gBattleDomeWinStrings5:: .string "{STR_VAR_1} won outright by default!$" +gBattleDomeWinStrings6:: .string "{STR_VAR_1} won without using a move!$" +gBattleDomeWinStrings7:: .string "{STR_VAR_1} won outright with no moves!$" +gBattleDomeMatchNumber1:: .string "Round 1, Match 1$" +gBattleDomeMatchNumber2:: .string "Round 1, Match 2$" +gBattleDomeMatchNumber3:: .string "Round 1, Match 3$" +gBattleDomeMatchNumber4:: .string "Round 1, Match 4$" +gBattleDomeMatchNumber5:: .string "Round 1, Match 5$" +gBattleDomeMatchNumber6:: .string "Round 1, Match 6$" +gBattleDomeMatchNumber7:: .string "Round 1, Match 7$" +gBattleDomeMatchNumber8:: .string "Round 1, Match 8$" +gBattleDomeMatchNumber9:: .string "Round 2, Match 1$" +gBattleDomeMatchNumber10:: .string "Round 2, Match 2$" +gBattleDomeMatchNumber11:: .string "Round 2, Match 3$" +gBattleDomeMatchNumber12:: .string "Round 2, Match 4$" +gBattleDomeMatchNumber13:: .string "Semifinal Match 1$" +gBattleDomeMatchNumber14:: .string "Semifinal Match 2$" +gBattleDomeMatchNumber15:: .string "Final Match$" BattleFrontier_BattlePikeRandomRoom1_MapScripts_2C3E1B: @ 82C3E1B diff --git a/data/field_region_map.s b/data/field_region_map.s deleted file mode 100644 index f179ba8ce..000000000 --- a/data/field_region_map.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085E5068:: @ 85E5068 struct BgTemplate - .4byte 0x000001f0, 0x00002dca - - .align 2 -gUnknown_085E5070:: @ 85E5070 - window_template 0x00, 0x11, 0x11, 0x0c, 0x02, 0x0f, 0x0001 - window_template 0x00, 0x16, 0x01, 0x07, 0x02, 0x0f, 0x0019 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 diff --git a/data/heal_location.s b/data/heal_location.s deleted file mode 100644 index 31aa1a351..000000000 --- a/data/heal_location.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0859F534:: @ 859F534 - .incbin "baserom.gba", 0x59f534, 0x8 - -gUnknown_0859F53C:: @ 859F53C - .incbin "baserom.gba", 0x59f53c, 0xd0 diff --git a/data/menu_helpers.s b/data/menu_helpers.s index b43af0bc4..8d0e12939 100644 --- a/data/menu_helpers.s +++ b/data/menu_helpers.s @@ -11,4 +11,4 @@ gUnknown_0859F51C:: @ 859F51C .incbin "baserom.gba", 0x59f51c, 0x8 gUnknown_0859F524:: @ 859F524 - .incbin "baserom.gba", 0x59f524, 0x10 + .incbin "baserom.gba", 0x59f524, 0x18 diff --git a/data/region_map.s b/data/region_map.s deleted file mode 100644 index 9fe3c407e..000000000 --- a/data/region_map.s +++ /dev/null @@ -1,136 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0859F60C:: @ 859F60C - .incbin "baserom.gba", 0x59f60c, 0x44 - -gUnknown_0859F650:: @ 859F650 - .incbin "baserom.gba", 0x59f650, 0xec - -gUnknown_0859F73C:: @ 859F73C - .incbin "baserom.gba", 0x59f73c, 0x40 - -gUnknown_0859F77C:: @ 859F77C - .incbin "baserom.gba", 0x59f77c, 0xd64 - -gUnknown_085A04E0:: @ 85A04E0 - .incbin "baserom.gba", 0x5a04e0, 0x34c - -gUnknown_085A082C:: @ 85A082C - .incbin "baserom.gba", 0x5a082c, 0x20 - -gUnknown_085A084C:: @ 85A084C - .incbin "baserom.gba", 0x5a084c, 0x80 - -gUnknown_085A08CC:: @ 85A08CC - .incbin "baserom.gba", 0x5a08cc, 0x20 - -gUnknown_085A08EC:: @ 85A08EC - .incbin "baserom.gba", 0x5a08ec, 0x80 - -gUnknown_085A096C:: @ 85A096C -@ replacing .incbin "baserom.gba", 0x005a096c, 0x1a4 -.byte 0xd5, 0x1d, 0x1d, 0x04, 0x1c, 0x1c, 0x1c, 0x1c, 0x1a, 0xd5, 0xd5, 0x22, 0x0b, 0x23, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x1d, 0xd5, 0xd5 -.byte 0xd5, 0xd5, 0x38, 0x38, 0x1a, 0xd5, 0xd5, 0x22, 0xd5, 0x23, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x1e, 0x1d, 0xd5, 0xd5, 0xd5, 0xd5, 0x38, 0x38 -.byte 0x1a, 0xd5, 0xd5, 0x22, 0xd5, 0x23, 0xd5, 0xd5, 0x39, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x1e, 0xd5, 0xd5, 0xd5, 0xd5, 0x03, 0x1b, 0x1b, 0x1a, 0xd5, 0xd5, 0x22 -.byte 0xd5, 0x23, 0x24, 0x24, 0x24, 0x24, 0x0c, 0x0c, 0x27, 0x27, 0x27, 0x27, 0x28, 0x28, 0xd5, 0xd5, 0x1e, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x1a, 0xd5, 0xd5, 0x22, 0xd5, 0xd5, 0xd5, 0xd5 -.byte 0x25, 0xd5, 0xd5, 0xd5, 0x27, 0x27, 0x27, 0x27, 0x28, 0x28, 0xd5, 0xd5, 0x0a, 0x1f, 0x1f, 0x1f, 0x1f, 0xd5, 0xd5, 0xd5, 0x1a, 0xd5, 0xd5, 0x22, 0xd5, 0xd5, 0xd5, 0xd5, 0x25, 0xd5, 0xd5, 0xd5 -.byte 0x27, 0x27, 0x27, 0x27, 0x0d, 0x0d, 0xd5, 0xd5, 0x0a, 0xd5, 0xd5, 0xd5, 0x05, 0x20, 0x20, 0x20, 0x09, 0x09, 0x21, 0x21, 0x26, 0x26, 0x26, 0x26, 0x26, 0xd5, 0xd5, 0xd5, 0x29, 0x29, 0x29, 0x2a -.byte 0x2a, 0x2a, 0xd5, 0xd5, 0x13, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x19, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x29, 0x0e, 0x29, 0x2a, 0x2a, 0x2a, 0xd5, 0xd5 -.byte 0x13, 0xd5, 0xd5, 0xd5, 0x12, 0x12, 0x12, 0x12, 0x19, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x29, 0x29, 0x29, 0x2a, 0x2a, 0x2a, 0xd5, 0x0f, 0x13, 0x07, 0x11, 0x11 -.byte 0x01, 0xd5, 0xd5, 0xd5, 0x19, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x2b, 0x2b, 0x2b, 0x2b, 0x0f, 0x14, 0xd5, 0xd5, 0xd5, 0x10, 0xd5, 0xd5, 0xd5 -.byte 0x08, 0x31, 0x31, 0x31, 0x30, 0x30, 0x30, 0x2f, 0x2f, 0x06, 0x2e, 0x2e, 0x2e, 0x2d, 0x2d, 0x2d, 0x2c, 0x2c, 0xd5, 0xd5, 0x14, 0xd5, 0xd5, 0xd5, 0x00, 0xd5, 0xd5, 0xd5, 0x08, 0xd5, 0xd5, 0xd5 -.byte 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x14, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x18, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5 -.byte 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x3a, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x15, 0x15, 0x15, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x18, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5 -.byte 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x02, 0x16, 0x16, 0x16, 0x17, 0x17, 0x18, 0xd5, 0xd5, 0xd5, 0x49, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5 -.byte 0xd5, 0xd5, 0xd5, 0xd5 - -@ 85A0B10 - .include "data/region_map_entries.inc" - -gUnknown_085A1B24:: @ 85A1B24 -@ replacing .incbin "baserom.gba", 0x005a1b24, 0x60 -.2byte 0x00ce, 0x0014, 0x0032, 0x0027, 0x00cf, 0x002c, 0x0033, 0x0029, 0x0034, 0x002a, 0x0035, 0x002b, 0x00d0, 0x002c, 0x0036, 0x000e -.2byte 0x0045, 0x002b, 0x00c5, 0x000c, 0x0042, 0x000c, 0x00c6, 0x001b, 0x004f, 0x0031, 0x003b, 0x0013, 0x004c, 0x001b, 0x0041, 0x0025 -.2byte 0x0055, 0x002e, 0x00c7, 0x001a, 0x00d4, 0x001a, 0x00d1, 0x001d, 0x00d2, 0x0012, 0x00ca, 0x0012, 0x003d, 0x0017, 0x00d5, 0x00d5 - -gUnknown_085A1B84:: @ 85A1B84 -@ replacing .incbin "baserom.gba", 0x005a1b84, 0x6 -.2byte 0x00cb, 0x00cc, 0x00cc - -gUnknown_085A1B8A:: @ 85A1B8A -@ replacing .incbin "baserom.gba", 0x005a1b8a, 0x22 -.2byte 0x001d, 0x001d, 0x001e, 0x001e, 0x001f, 0x001f, 0x0021, 0x0021, 0x0014, 0x0014, 0x0028, 0x0028, 0x002a, 0x002a, 0x002c, 0x002c -.2byte 0x0000 - -gUnknown_085A1BAC:: @ 85A1BAC -@ replacing .incbin "baserom.gba", 0x005a1bac, 0x20 -.2byte 0x0000, 0x000a, 0x0000, 0x000c, 0x0018, 0x0003, 0x0019, 0x0004, 0x0019, 0x0006, 0x0019, 0x0007, 0x0018, 0x000a, 0x0018, 0x000a - -gUnknown_085A1BCC:: @ 85A1BCC -@ replacing .incbin "baserom.gba", 0x005a1bcc, 0x34 -.byte 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x14, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x0a, 0x00 -.byte 0x20, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x0a, 0x00, 0xfe, 0xff, 0x00, 0x00, 0xd8, 0x1b, 0x5a, 0x08, 0xe4, 0x1b, 0x5a, 0x08 - -gUnknown_085A1C00:: @ 85A1C00 - .incbin "baserom.gba", 0x5a1c00, 0x8 - -gUnknown_085A1C08:: @ 85A1C08 - .incbin "baserom.gba", 0x5a1c08, 0x18 - -gUnknown_085A1C20:: @ 85A1C20 - .incbin "baserom.gba", 0x5a1c20, 0x10 - -gUnknown_085A1C30:: @ 85A1C30 -@ replacing .incbin "baserom.gba", 0x005a1c30, 0x4 -.4byte 0x85a1c28 - -gUnknown_085A1C34:: @ 85A1C34 -@ replacing .incbin "baserom.gba", 0x005a1c34, 0x4 -.byte 0xc8, 0xc9, 0xd3, 0x00 - -gUnknown_085A1C38:: @ 85A1C38 - .incbin "baserom.gba", 0x5a1c38, 0x20 - -gUnknown_085A1C58:: @ 85A1C58 - .incbin "baserom.gba", 0x5a1c58, 0x38 - -gUnknown_085A1C90:: @ 85A1C90 - .incbin "baserom.gba", 0x5a1c90, 0xd8 - -gUnknown_085A1D68:: @ 85A1D68 - .incbin "baserom.gba", 0x5a1d68, 0xd4 - -gUnknown_085A1E3C:: @ 85A1E3C -@ replacing .incbin "baserom.gba", 0x005a1e3c, 0xa0 -.byte 0x00, 0x09, 0x01, 0x00, 0x0a, 0x0e, 0x00, 0x0b, 0x0f, 0x00, 0x0c, 0x10, 0x00, 0x0d, 0x11, 0x00, 0x0e, 0x12, 0x00, 0x0f, 0x13, 0x00, 0x00, 0x03, 0x00, 0x01, 0x04, 0x00, 0x02, 0x05, 0x00, 0x03 -.byte 0x06, 0x00, 0x04, 0x07, 0x00, 0x05, 0x08, 0x00, 0x06, 0x09, 0x00, 0x07, 0x0a, 0x00, 0x08, 0x0b, 0x00, 0x10, 0x00, 0x00, 0x11, 0x00, 0x00, 0x12, 0x00, 0x00, 0x13, 0x00, 0x00, 0x14, 0x00, 0x00 -.byte 0x15, 0x00, 0x00, 0x16, 0x00, 0x00, 0x17, 0x00, 0x00, 0x18, 0x00, 0x00, 0x19, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1f, 0x00 -.byte 0x00, 0x20, 0x00, 0x00, 0x21, 0x00, 0x00, 0x22, 0x00, 0x00, 0x23, 0x00, 0x00, 0x24, 0x00, 0x00, 0x25, 0x00, 0x00, 0x26, 0x00, 0x00, 0x27, 0x00, 0x00, 0x28, 0x00, 0x00, 0x29, 0x00, 0x00, 0x2a -.byte 0x00, 0x00, 0x2b, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x30, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x82, 0xc7, 0x5e, 0x08, 0x91, 0xc7, 0x5e, 0x08 - -gUnknown_085A1EDC:: @ 85A1EDC - .incbin "baserom.gba", 0x5a1edc, 0x8 - -gUnknown_085A1EE4:: @ 85A1EE4 - .incbin "baserom.gba", 0x5a1ee4, 0xc - -gUnknown_085A1EF0:: @ 85A1EF0 - .incbin "baserom.gba", 0x5a1ef0, 0x20 - -gUnknown_085A1F10:: @ 85A1F10 - .incbin "baserom.gba", 0x5a1f10, 0x8 - -gUnknown_085A1F18:: @ 85A1F18 -@ replacing .incbin "baserom.gba", 0x005a1f18, 0x64 -.2byte 0x08a8, 0x003a, 0xffff, 0x00d5, 0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0005, 0xffff, 0x0000, 0x0001, 0x0005, 0xffff, 0x0000 -.2byte 0x0003, 0x0005, 0xffff, 0x0000, 0x0005, 0x0005, 0xffff, 0x0000, 0x0006, 0x0005, 0xffff, 0x0000, 0x0008, 0x0005, 0xffff, 0x0000 -.2byte 0x000a, 0x0005, 0xffff, 0x0000, 0x1f28, 0x085a, 0x1f30, 0x085a, 0x1f38, 0x085a, 0x1f40, 0x085a, 0x1f48, 0x085a, 0x1f50, 0x085a -.2byte 0x1f58, 0x085a - -gUnknown_085A1F7C:: @ 85A1F7C - .incbin "baserom.gba", 0x5a1f7c, 0x18 - diff --git a/data/region_map_entries.inc b/data/region_map_entries.inc deleted file mode 100644 index ced01648c..000000000 --- a/data/region_map_entries.inc +++ /dev/null @@ -1,809 +0,0 @@ -gMapName_LittlerootTown:: @ 85A0B10 - .string "LITTLEROOT TOWN$" - -gMapName_OldaleTown:: @ 85A0B20 - .string "OLDALE TOWN$" - -gMapName_DewfordTown:: @ 85A0B2C - .string "DEWFORD TOWN$" - -gMapName_LavaridgeTown:: @ 85A0B39 - .string "LAVARIDGE TOWN$" - -gMapName_FallarborTown:: @ 85A0B48 - .string "FALLARBOR TOWN$" - -gMapName_VerdanturfTown:: @ 85A0B57 - .string "VERDANTURF TOWN$" - -gMapName_PacifidlogTown:: @ 85A0B67 - .string "PACIFIDLOG TOWN$" - -gMapName_PetalburgCity:: @ 85A0B77 - .string "PETALBURG CITY$" - -gMapName_SlateportCity:: @ 85A0B86 - .string "SLATEPORT CITY$" - -gMapName_MauvilleCity:: @ 85A0B95 - .string "MAUVILLE CITY$" - -gMapName_RustboroCity:: @ 85A0BA3 - .string "RUSTBORO CITY$" - -gMapName_FortreeCity:: @ 85A0BB1 - .string "FORTREE CITY$" - -gMapName_LilycoveCity:: @ 85A0BBE - .string "LILYCOVE CITY$" - -gMapName_MossdeepCity:: @ 85A0BCC - .string "MOSSDEEP CITY$" - -gMapName_SootopolisCity:: @ 85A0BDA - .string "SOOTOPOLIS CITY$" - -gMapName_EverGrandeCity:: @ 85A0BEA - .string "EVER GRANDE CITY$" - -gMapName_Route101:: @ 85A0BFB - .string "ROUTE 101$" - -gMapName_Route102:: @ 85A0C05 - .string "ROUTE 102$" - -gMapName_Route103:: @ 85A0C0F - .string "ROUTE 103$" - -gMapName_Route104:: @ 85A0C19 - .string "ROUTE 104$" - -gMapName_Route105:: @ 85A0C23 - .string "ROUTE 105$" - -gMapName_Route106:: @ 85A0C2D - .string "ROUTE 106$" - -gMapName_Route107:: @ 85A0C37 - .string "ROUTE 107$" - -gMapName_Route108:: @ 85A0C41 - .string "ROUTE 108$" - -gMapName_Route109:: @ 85A0C4B - .string "ROUTE 109$" - -gMapName_Route110:: @ 85A0C55 - .string "ROUTE 110$" - -gMapName_Route111:: @ 85A0C5F - .string "ROUTE 111$" - -gMapName_Route112:: @ 85A0C69 - .string "ROUTE 112$" - -gMapName_Route113:: @ 85A0C73 - .string "ROUTE 113$" - -gMapName_Route114:: @ 85A0C7D - .string "ROUTE 114$" - -gMapName_Route115:: @ 85A0C87 - .string "ROUTE 115$" - -gMapName_Route116:: @ 85A0C91 - .string "ROUTE 116$" - -gMapName_Route117:: @ 85A0C9B - .string "ROUTE 117$" - -gMapName_Route118:: @ 85A0CA5 - .string "ROUTE 118$" - -gMapName_Route119:: @ 85A0CAF - .string "ROUTE 119$" - -gMapName_Route120:: @ 85A0CB9 - .string "ROUTE 120$" - -gMapName_Route121:: @ 85A0CC3 - .string "ROUTE 121$" - -gMapName_Route122:: @ 85A0CCD - .string "ROUTE 122$" - -gMapName_Route123:: @ 85A0CD7 - .string "ROUTE 123$" - -gMapName_Route124:: @ 85A0CE1 - .string "ROUTE 124$" - -gMapName_Route125:: @ 85A0CEB - .string "ROUTE 125$" - -gMapName_Route126:: @ 85A0CF5 - .string "ROUTE 126$" - -gMapName_Route127:: @ 85A0CFF - .string "ROUTE 127$" - -gMapName_Route128:: @ 85A0D09 - .string "ROUTE 128$" - -gMapName_Route129:: @ 85A0D13 - .string "ROUTE 129$" - -gMapName_Route130:: @ 85A0D1D - .string "ROUTE 130$" - -gMapName_Route131:: @ 85A0D27 - .string "ROUTE 131$" - -gMapName_Route132:: @ 85A0D31 - .string "ROUTE 132$" - -gMapName_Route133:: @ 85A0D3B - .string "ROUTE 133$" - -gMapName_Route134:: @ 85A0D45 - .string "ROUTE 134$" - -gMapName_Underwater:: @ 85A0D4F - .string "UNDERWATER$" - -gMapName_GraniteCave:: @ 85A0D5A - .string "GRANITE CAVE$" - -gMapName_MtChimney:: @ 85A0D67 - .string "MT. CHIMNEY$" - -gMapName_SafariZone:: @ 85A0D73 - .string "SAFARI ZONE$" - -gMapName_BattleFrontier:: @ 85A0D7F - .string "BATTLE FRONTIER$" - -gMapName_PetalburgWoods:: @ 85A0D8F - .string "PETALBURG WOODS$" - -gMapName_RusturfTunnel:: @ 85A0D9F - .string "RUSTURF TUNNEL$" - -gMapName_AbandonedShip:: @ 85A0DAE - .string "ABANDONED SHIP$" - -gMapName_NewMauville:: @ 85A0DBD - .string "NEW MAUVILLE$" - -gMapName_MeteorFalls:: @ 85A0DCA - .string "METEOR FALLS$" - -gMapName_MtPyre:: @ 85A0DD7 - .string "MT. PYRE$" - -@ This was the Aqua or Magma hideout in Ruby/Sapphire, but each team has a -@ hideout in Emerald with their own new region map entries, and this name -@ doesn't seem to be used anymore. -gMapName_AquaHideoutOld:: @ 85A0DE0 - .string "{AQUA} HIDEOUT$" - -gMapName_ShoalCave:: @ 85A0DEB - .string "SHOAL CAVE$" - -gMapName_SeafloorCavern:: @ 85A0DF6 - .string "SEAFLOOR CAVERN$" - -gMapName_VictoryRoad:: @ 85A0E06 - .string "VICTORY ROAD$" - -gMapName_MirageIsland:: @ 85A0E13 - .string "MIRAGE ISLAND$" - -gMapName_CaveOfOrigin:: @ 85A0E21 - .string "CAVE OF ORIGIN$" - -gMapName_SouthernIsland:: @ 85A0E30 - .string "SOUTHERN ISLAND$" - -gMapName_FieryPath:: @ 85A0E40 - .string "FIERY PATH$" - -gMapName_JaggedPass:: @ 85A0E4B - .string "JAGGED PASS$" - -gMapName_SealedChamber:: @ 85A0E57 - .string "SEALED CHAMBER$" - -gMapName_ScorchedSlab:: @ 85A0E66 - .string "SCORCHED SLAB$" - -gMapName_IslandCave:: @ 85A0E74 - .string "ISLAND CAVE$" - -gMapName_DesertRuins:: @ 85A0E80 - .string "DESERT RUINS$" - -gMapName_AncientTomb:: @ 85A0E8D - .string "ANCIENT TOMB$" - -gMapName_InsideOfTruck:: @ 85A0E9A - .string "INSIDE OF TRUCK$" - -gMapName_SkyPillar:: @ 85A0EAA - .string "SKY PILLAR$" - -gMapName_SecretBase:: @ 85A0EB5 - .string "SECRET BASE$" - -gMapName_None:: @ 85A0EC1 - .string "$" - -gMapName_PalletTown:: @ 85A0EC2 - .string "PALLET TOWN$" - -gMapName_ViridianCity:: @ 85A0ECE - .string "VIRIDIAN CITY$" - -gMapName_PewterCity:: @ 85A0EDC - .string "PEWTER CITY$" - -gMapName_CeruleanCity:: @ 85A0EE8 - .string "CERULEAN CITY$" - -gMapName_LavenderTown:: @ 85A0EF6 - .string "LAVENDER TOWN$" - -gMapName_VermilionCity:: @ 85A0F04 - .string "VERMILION CITY$" - -gMapName_CeladonCity:: @ 85A0F13 - .string "CELADON CITY$" - -gMapName_FuchsiaCity:: @ 85A0F20 - .string "FUCHSIA CITY$" - -gMapName_CinnabarIsland:: @ 85A0F2D - .string "CINNABAR ISLAND$" - -gMapName_IndigoPlateau:: @ 85A0F3D - .string "INDIGO PLATEAU$" - -gMapName_SaffronCity:: @ 85A0F4C - .string "SAFFRON CITY$" - -gMapName_Route4:: @ 85A0F59 - .string "ROUTE 4$" - -gMapName_Route10:: @ 85A0F61 - .string "ROUTE 10$" - -gMapName_Route1:: @ 85A0F6A - .string "ROUTE 1$" - -gMapName_Route2:: @ 85A0F72 - .string "ROUTE 2$" - -gMapName_Route3:: @ 85A0F7A - .string "ROUTE 3$" - -gMapName_Route4_2:: @ 85A0F82 - .string "ROUTE 4$" - -gMapName_Route5:: @ 85A0F8A - .string "ROUTE 5$" - -gMapName_Route6:: @ 85A0F92 - .string "ROUTE 6$" - -gMapName_Route7:: @ 85A0F9A - .string "ROUTE 7$" - -gMapName_Route8:: @ 85A0FA2 - .string "ROUTE 8$" - -gMapName_Route9:: @ 85A0FAA - .string "ROUTE 9$" - -gMapName_Route10_2:: @ 85A0FB2 - .string "ROUTE 10$" - -gMapName_Route11:: @ 85A0FBB - .string "ROUTE 11$" - -gMapName_Route12:: @ 85A0FC4 - .string "ROUTE 12$" - -gMapName_Route13:: @ 85A0FCD - .string "ROUTE 13$" - -gMapName_Route14:: @ 85A0FD6 - .string "ROUTE 14$" - -gMapName_Route15:: @ 85A0FDF - .string "ROUTE 15$" - -gMapName_Route16:: @ 85A0FE8 - .string "ROUTE 16$" - -gMapName_Route17:: @ 85A0FF1 - .string "ROUTE 17$" - -gMapName_Route18:: @ 85A0FFA - .string "ROUTE 18$" - -gMapName_Route19:: @ 85A1003 - .string "ROUTE 19$" - -gMapName_Route20:: @ 85A100C - .string "ROUTE 20$" - -gMapName_Route21:: @ 85A1015 - .string "ROUTE 21$" - -gMapName_Route22:: @ 85A101E - .string "ROUTE 22$" - -gMapName_Route23:: @ 85A1027 - .string "ROUTE 23$" - -gMapName_Route24:: @ 85A1030 - .string "ROUTE 24$" - -gMapName_Route25:: @ 85A1039 - .string "ROUTE 25$" - -gMapName_ViridianForest:: @ 85A1042 - .string "VIRIDIAN FOREST$" - -gMapName_MtMoon:: @ 85A1052 - .string "MT. MOON$" - -gMapName_SSAnne:: @ 85A105B - .string "S.S. ANNE$" - -gMapName_UndergroundPath:: @ 85A1065 - .string "UNDERGROUND PATH$" - -gMapName_UndergroundPath2:: @ 85A1076 - .string "UNDERGROUND PATH$" - -gMapName_DiglettsCave:: @ 85A1087 - .string "DIGLETT’S CAVE$" - -gMapName_KantoVictoryRoad:: @ 85A1096 - .string "VICTORY ROAD$" - -gMapName_RocketHideout:: @ 85A10A3 - .string "ROCKET HIDEOUT$" - -gMapName_SilphCo:: @ 85A10B2 - .string "SILPH CO.$" - -gMapName_PokemonMansion:: @ 85A10BC - .string "POKéMON MANSION$" - -gMapName_KantoSafariZone:: @ 85A10CC - .string "SAFARI ZONE$" - -gMapName_PokemonLeague:: @ 85A10D8 - .string "POKéMON LEAGUE$" - -gMapName_RockTunnel:: @ 85A10E7 - .string "ROCK TUNNEL$" - -gMapName_SeafoamIslands:: @ 85A10F3 - .string "SEAFOAM ISLANDS$" - -gMapName_PokemonTower:: @ 85A1103 - .string "POKéMON TOWER$" - -gMapName_CeruleanCave:: @ 85A1111 - .string "CERULEAN CAVE$" - -gMapName_PowerPlant:: @ 85A111F - .string "POWER PLANT$" - -gMapName_OneIsland:: @ 85A112B - .string "ONE ISLAND$" - -gMapName_TwoIsland:: @ 85A1136 - .string "TWO ISLAND$" - -gMapName_ThreeIsland:: @ 85A1141 - .string "THREE ISLAND$" - -gMapName_FourIsland:: @ 85A114E - .string "FOUR ISLAND$" - -gMapName_FiveIsland:: @ 85A115A - .string "FIVE ISLAND$" - -gMapName_SevenIsland:: @ 85A1166 - .string "SEVEN ISLAND$" - -gMapName_SixIsland:: @ 85A1173 - .string "SIX ISLAND$" - -gMapName_KindleRoad:: @ 85A117E - .string "KINDLE ROAD$" - -gMapName_TreasureBeach:: @ 85A118A - .string "TREASURE BEACH$" - -gMapName_CapeBrink:: @ 85A1199 - .string "CAPE BRINK$" - -gMapName_BondBridge:: @ 85A11A4 - .string "BOND BRIDGE$" - -gMapName_ThreeIslePort:: @ 85A11B0 - .string "THREE ISLE PORT$" - -gMapName_SeviiIsle6:: @ 85A11C0 - .string "SEVII ISLE 6$" - -gMapName_SeviiIsle7:: @ 85A11CD - .string "SEVII ISLE 7$" - -gMapName_SeviiIsle8:: @ 85A11DA - .string "SEVII ISLE 8$" - -gMapName_SeviiIsle9:: @ 85A11E7 - .string "SEVII ISLE 9$" - -gMapName_ResortGorgeous:: @ 85A11F4 - .string "RESORT GORGEOUS$" - -gMapName_WaterLabyrinth:: @ 85A1204 - .string "WATER LABYRINTH$" - -gMapName_FiveIsleMeadow:: @ 85A1214 - .string "FIVE ISLE MEADOW$" - -gMapName_MemorialPillar:: @ 85A1225 - .string "MEMORIAL PILLAR$" - -gMapName_OutcastIsland:: @ 85A1235 - .string "OUTCAST ISLAND$" - -gMapName_GreenPath:: @ 85A1244 - .string "GREEN PATH$" - -gMapName_WaterPath:: @ 85A124F - .string "WATER PATH$" - -gMapName_RuinValley:: @ 85A125A - .string "RUIN VALLEY$" - -gMapName_TrainerTower:: @ 85A1266 - .string "TRAINER TOWER$" - -gMapName_CanyonEntrance:: @ 85A1274 - .string "CANYON ENTRANCE$" - -gMapName_SevaultCanyon:: @ 85A1284 - .string "SEVAULT CANYON$" - -gMapName_TanobyRuins:: @ 85A1293 - .string "TANOBY RUINS$" - -gMapName_SeviiIsle22:: @ 85A12A0 - .string "SEVII ISLE 22$" - -gMapName_SeviiIsle23:: @ 85A12AE - .string "SEVII ISLE 23$" - -gMapName_SeviiIsle24:: @ 85A12BC - .string "SEVII ISLE 24$" - -gMapName_NavelRock:: @ 85A12CA - .string "NAVEL ROCK$" - -gMapName_MtEmber:: @ 85A12D5 - .string "MT. EMBER$" - -gMapName_BerryForest:: @ 85A12DF - .string "BERRY FOREST$" - -gMapName_IcefallCave:: @ 85A12EC - .string "ICEFALL CAVE$" - -gMapName_RocketWarehouse:: @ 85A12F9 - .string "ROCKET WAREHOUSE$" - -gMapName_TrainerTower2:: @ 85A130A - .string "TRAINER TOWER$" - -gMapName_DottedHole:: @ 85A1318 - .string "DOTTED HOLE$" - -gMapName_LostCave:: @ 85A1324 - .string "LOST CAVE$" - -gMapName_PatternBush:: @ 85A132E - .string "PATTERN BUSH$" - -gMapName_AlteringCave:: @ 85A133B - .string "ALTERING CAVE$" - -gMapName_TanobyChambers:: @ 85A1349 - .string "TANOBY CHAMBERS$" - -gMapName_ThreeIslePath:: @ 85A1359 - .string "THREE ISLE PATH$" - -gMapName_TanobyKey:: @ 85A1369 - .string "TANOBY KEY$" - -gMapName_BirthIsland:: @ 85A1374 - .string "BIRTH ISLAND$" - -gMapName_MoneanChamber:: @ 85A1381 - .string "MONEAN CHAMBER$" - -gMapName_LiptooChamber:: @ 85A1390 - .string "LIPTOO CHAMBER$" - -gMapName_WeepthChamber:: @ 85A139F - .string "WEEPTH CHAMBER$" - -gMapName_DilfordChamber:: @ 85A13AE - .string "DILFORD CHAMBER$" - -gMapName_ScufibChamber:: @ 85A13BE - .string "SCUFIB CHAMBER$" - -gMapName_RixyChamber:: @ 85A13CD - .string "RIXY CHAMBER$" - -gMapName_ViapoisChamber:: @ 85A13DA - .string "VIAPOIS CHAMBER$" - -gMapName_EmberSpa:: @ 85A13EA - .string "EMBER SPA$" - -gMapName_SpecialArea:: @ 85A13F4 - .string "SPECIAL AREA$" - -gMapName_AquaHideout:: @ 85A1401 - .string "AQUA HIDEOUT$" - -gMapName_MagmaHideout:: @ 85A140E - .string "MAGMA HIDEOUT$" - -gMapName_MirageTower:: @ 85A141C - .string "MIRAGE TOWER$" - -gMapName_FarawayIsland:: @ 85A1429 - .string "FARAWAY ISLAND$" - -gMapName_ArtisanCave:: @ 85A1438 - .string "ARTISAN CAVE$" - -gMapName_MarineCave:: @ 85A1445 - .string "MARINE CAVE$" - -gMapName_TerraCave:: @ 85A1451 - .string "TERRA CAVE$" - -gMapName_DesertUnderpass:: @ 85A145C - .string "DESERT UNDERPASS$" - -gMapName_TrainerHill:: @ 85A146D - .string "TRAINER HILL$" - - .align 2 -gRegionMapEntries:: @ 85A147C - region_map_entry 4, 11, 1, 1, LittlerootTown - region_map_entry 4, 9, 1, 1, OldaleTown - region_map_entry 2, 14, 1, 1, DewfordTown - region_map_entry 5, 3, 1, 1, LavaridgeTown - region_map_entry 3, 0, 1, 1, FallarborTown - region_map_entry 4, 6, 1, 1, VerdanturfTown - region_map_entry 17, 10, 1, 1, PacifidlogTown - region_map_entry 1, 9, 1, 1, PetalburgCity - region_map_entry 8, 10, 1, 2, SlateportCity - region_map_entry 8, 6, 2, 1, MauvilleCity - region_map_entry 0, 5, 1, 2, RustboroCity - region_map_entry 12, 0, 1, 1, FortreeCity - region_map_entry 18, 3, 2, 1, LilycoveCity - region_map_entry 24, 5, 2, 1, MossdeepCity - region_map_entry 21, 7, 1, 1, SootopolisCity - region_map_entry 27, 8, 1, 2, EverGrandeCity - region_map_entry 4, 10, 1, 1, Route101 - region_map_entry 2, 9, 2, 1, Route102 - region_map_entry 4, 8, 4, 1, Route103 - region_map_entry 0, 7, 1, 3, Route104 - region_map_entry 0, 10, 1, 3, Route105 - region_map_entry 0, 13, 2, 1, Route106 - region_map_entry 3, 14, 3, 1, Route107 - region_map_entry 6, 14, 2, 1, Route108 - region_map_entry 8, 12, 1, 3, Route109 - region_map_entry 8, 7, 1, 3, Route110 - region_map_entry 8, 0, 1, 6, Route111 - region_map_entry 6, 3, 2, 1, Route112 - region_map_entry 4, 0, 4, 1, Route113 - region_map_entry 1, 0, 2, 3, Route114 - region_map_entry 0, 2, 1, 3, Route115 - region_map_entry 1, 5, 4, 1, Route116 - region_map_entry 5, 6, 3, 1, Route117 - region_map_entry 10, 6, 2, 1, Route118 - region_map_entry 11, 0, 1, 6, Route119 - region_map_entry 13, 0, 1, 4, Route120 - region_map_entry 14, 3, 4, 1, Route121 - region_map_entry 16, 4, 1, 2, Route122 - region_map_entry 12, 6, 5, 1, Route123 - region_map_entry 20, 3, 4, 3, Route124 - region_map_entry 24, 3, 2, 2, Route125 - region_map_entry 20, 6, 3, 3, Route126 - region_map_entry 23, 6, 3, 3, Route127 - region_map_entry 23, 9, 4, 1, Route128 - region_map_entry 24, 10, 2, 1, Route129 - region_map_entry 21, 10, 3, 1, Route130 - region_map_entry 18, 10, 3, 1, Route131 - region_map_entry 15, 10, 2, 1, Route132 - region_map_entry 12, 10, 3, 1, Route133 - region_map_entry 9, 10, 3, 1, Route134 - region_map_entry 20, 3, 4, 3, Underwater - region_map_entry 20, 6, 3, 3, Underwater - region_map_entry 23, 6, 3, 3, Underwater - region_map_entry 23, 9, 4, 1, Underwater - region_map_entry 21, 7, 1, 1, Underwater - region_map_entry 1, 13, 1, 1, GraniteCave - region_map_entry 6, 2, 1, 1, MtChimney - region_map_entry 16, 2, 1, 1, SafariZone - region_map_entry 22, 12, 1, 1, BattleFrontier - region_map_entry 0, 8, 1, 1, PetalburgWoods - region_map_entry 2, 5, 1, 1, RusturfTunnel - region_map_entry 6, 14, 1, 1, AbandonedShip - region_map_entry 8, 7, 1, 1, NewMauville - region_map_entry 0, 3, 1, 1, MeteorFalls - region_map_entry 1, 2, 1, 1, MeteorFalls - region_map_entry 16, 4, 1, 1, MtPyre - region_map_entry 19, 3, 1, 1, AquaHideoutOld - region_map_entry 24, 4, 1, 1, ShoalCave - region_map_entry 24, 9, 1, 1, SeafloorCavern - region_map_entry 24, 9, 1, 1, Underwater - region_map_entry 27, 9, 1, 1, VictoryRoad - region_map_entry 17, 10, 1, 1, MirageIsland - region_map_entry 21, 7, 1, 1, CaveOfOrigin - region_map_entry 12, 14, 1, 1, SouthernIsland - region_map_entry 6, 3, 1, 1, FieryPath - region_map_entry 7, 3, 1, 1, FieryPath - region_map_entry 6, 3, 1, 1, JaggedPass - region_map_entry 7, 2, 1, 1, JaggedPass - region_map_entry 11, 10, 1, 1, SealedChamber - region_map_entry 11, 10, 1, 1, Underwater - region_map_entry 13, 0, 1, 1, ScorchedSlab - region_map_entry 0, 10, 1, 1, IslandCave - region_map_entry 8, 3, 1, 1, DesertRuins - region_map_entry 13, 2, 1, 1, AncientTomb - region_map_entry 0, 0, 1, 1, InsideOfTruck - region_map_entry 19, 10, 1, 1, SkyPillar - region_map_entry 0, 0, 1, 1, SecretBase - region_map_entry 0, 0, 1, 1, None - region_map_entry 0, 0, 1, 1, PalletTown - region_map_entry 0, 0, 1, 1, ViridianCity - region_map_entry 0, 0, 1, 1, PewterCity - region_map_entry 0, 0, 1, 1, CeruleanCity - region_map_entry 0, 0, 1, 1, LavenderTown - region_map_entry 0, 0, 1, 1, VermilionCity - region_map_entry 0, 0, 1, 1, CeladonCity - region_map_entry 0, 0, 1, 1, FuchsiaCity - region_map_entry 0, 0, 1, 1, CinnabarIsland - region_map_entry 0, 0, 1, 1, IndigoPlateau - region_map_entry 0, 0, 1, 1, SaffronCity - region_map_entry 0, 0, 1, 1, Route4 - region_map_entry 0, 0, 1, 1, Route10 - region_map_entry 0, 0, 1, 1, Route1 - region_map_entry 0, 0, 1, 1, Route2 - region_map_entry 0, 0, 1, 1, Route3 - region_map_entry 0, 0, 1, 1, Route4_2 - region_map_entry 0, 0, 1, 1, Route5 - region_map_entry 0, 0, 1, 1, Route6 - region_map_entry 0, 0, 1, 1, Route7 - region_map_entry 0, 0, 1, 1, Route8 - region_map_entry 0, 0, 1, 1, Route9 - region_map_entry 0, 0, 1, 1, Route10_2 - region_map_entry 0, 0, 1, 1, Route11 - region_map_entry 0, 0, 1, 1, Route12 - region_map_entry 0, 0, 1, 1, Route13 - region_map_entry 0, 0, 1, 1, Route14 - region_map_entry 0, 0, 1, 1, Route15 - region_map_entry 0, 0, 1, 1, Route16 - region_map_entry 0, 0, 1, 1, Route17 - region_map_entry 0, 0, 1, 1, Route18 - region_map_entry 0, 0, 1, 1, Route19 - region_map_entry 0, 0, 1, 1, Route20 - region_map_entry 0, 0, 1, 1, Route21 - region_map_entry 0, 0, 1, 1, Route22 - region_map_entry 0, 0, 1, 1, Route23 - region_map_entry 0, 0, 1, 1, Route24 - region_map_entry 0, 0, 1, 1, Route25 - region_map_entry 0, 0, 1, 1, ViridianForest - region_map_entry 0, 0, 1, 1, MtMoon - region_map_entry 0, 0, 1, 1, SSAnne - region_map_entry 0, 0, 1, 1, UndergroundPath - region_map_entry 0, 0, 1, 1, UndergroundPath2 - region_map_entry 0, 0, 1, 1, DiglettsCave - region_map_entry 0, 0, 1, 1, KantoVictoryRoad - region_map_entry 0, 0, 1, 1, RocketHideout - region_map_entry 0, 0, 1, 1, SilphCo - region_map_entry 0, 0, 1, 1, PokemonMansion - region_map_entry 0, 0, 1, 1, KantoSafariZone - region_map_entry 0, 0, 1, 1, PokemonLeague - region_map_entry 0, 0, 1, 1, RockTunnel - region_map_entry 0, 0, 1, 1, SeafoamIslands - region_map_entry 0, 0, 1, 1, PokemonTower - region_map_entry 0, 0, 1, 1, CeruleanCave - region_map_entry 0, 0, 1, 1, PowerPlant - region_map_entry 0, 0, 1, 1, OneIsland - region_map_entry 0, 0, 1, 1, TwoIsland - region_map_entry 0, 0, 1, 1, ThreeIsland - region_map_entry 0, 0, 1, 1, FourIsland - region_map_entry 0, 0, 1, 1, FiveIsland - region_map_entry 0, 0, 1, 1, SevenIsland - region_map_entry 0, 0, 1, 1, SixIsland - region_map_entry 0, 0, 1, 1, KindleRoad - region_map_entry 0, 0, 1, 1, TreasureBeach - region_map_entry 0, 0, 1, 1, CapeBrink - region_map_entry 0, 0, 1, 1, BondBridge - region_map_entry 0, 0, 1, 1, ThreeIslePort - region_map_entry 0, 0, 1, 1, SeviiIsle6 - region_map_entry 0, 0, 1, 1, SeviiIsle7 - region_map_entry 0, 0, 1, 1, SeviiIsle8 - region_map_entry 0, 0, 1, 1, SeviiIsle9 - region_map_entry 0, 0, 1, 1, ResortGorgeous - region_map_entry 0, 0, 1, 1, WaterLabyrinth - region_map_entry 0, 0, 1, 1, FiveIsleMeadow - region_map_entry 0, 0, 1, 1, MemorialPillar - region_map_entry 0, 0, 1, 1, OutcastIsland - region_map_entry 0, 0, 1, 1, GreenPath - region_map_entry 0, 0, 1, 1, WaterPath - region_map_entry 0, 0, 1, 1, RuinValley - region_map_entry 0, 0, 1, 1, TrainerTower - region_map_entry 0, 0, 1, 1, CanyonEntrance - region_map_entry 0, 0, 1, 1, SevaultCanyon - region_map_entry 0, 0, 1, 1, TanobyRuins - region_map_entry 0, 0, 1, 1, SeviiIsle22 - region_map_entry 0, 0, 1, 1, SeviiIsle23 - region_map_entry 0, 0, 1, 1, SeviiIsle24 - region_map_entry 0, 0, 1, 1, NavelRock - region_map_entry 0, 0, 1, 1, MtEmber - region_map_entry 0, 0, 1, 1, BerryForest - region_map_entry 0, 0, 1, 1, IcefallCave - region_map_entry 0, 0, 1, 1, RocketWarehouse - region_map_entry 0, 0, 1, 1, TrainerTower2 - region_map_entry 0, 0, 1, 1, DottedHole - region_map_entry 0, 0, 1, 1, LostCave - region_map_entry 0, 0, 1, 1, PatternBush - region_map_entry 0, 0, 1, 1, AlteringCave - region_map_entry 0, 0, 1, 1, TanobyChambers - region_map_entry 0, 0, 1, 1, ThreeIslePath - region_map_entry 0, 0, 1, 1, TanobyKey - region_map_entry 0, 0, 1, 1, BirthIsland - region_map_entry 0, 0, 1, 1, MoneanChamber - region_map_entry 0, 0, 1, 1, LiptooChamber - region_map_entry 0, 0, 1, 1, WeepthChamber - region_map_entry 0, 0, 1, 1, DilfordChamber - region_map_entry 0, 0, 1, 1, ScufibChamber - region_map_entry 0, 0, 1, 1, RixyChamber - region_map_entry 0, 0, 1, 1, ViapoisChamber - region_map_entry 0, 0, 1, 1, EmberSpa - region_map_entry 0, 0, 1, 1, SpecialArea - region_map_entry 19, 3, 1, 1, AquaHideout - region_map_entry 6, 3, 1, 1, MagmaHideout - region_map_entry 8, 2, 1, 1, MirageTower - region_map_entry 0, 0, 1, 1, BirthIsland - region_map_entry 0, 0, 1, 1, FarawayIsland - region_map_entry 22, 12, 1, 1, ArtisanCave - region_map_entry 0, 0, 1, 1, MarineCave - region_map_entry 0, 0, 1, 1, Underwater - region_map_entry 0, 0, 1, 1, TerraCave - region_map_entry 0, 10, 1, 3, Underwater - region_map_entry 24, 3, 2, 2, Underwater - region_map_entry 24, 10, 2, 1, Underwater - region_map_entry 2, 0, 1, 1, DesertUnderpass - region_map_entry 6, 8, 1, 1, AlteringCave - region_map_entry 0, 0, 1, 1, NavelRock - region_map_entry 8, 4, 1, 1, TrainerHill diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index c38305f20..71e3303b5 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -1058,7 +1058,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27759F:: @ 827759F end OldaleTown_PokemonCenter_2F_EventScript_277626:: @ 8277626 - specialvar VAR_RESULT, sub_80C7008 + specialvar VAR_RESULT, CountPartyNonEggMons compare_var_to_value VAR_RESULT, 2 goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_27764C specialvar VAR_RESULT, sub_80F9370 diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 63ebafe4f..a7000460b 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -95,7 +95,7 @@ Route117_PokemonDayCare_EventScript_291D11:: @ 8291D11 end Route117_PokemonDayCare_EventScript_291D56:: @ 8291D56 - specialvar VAR_RESULT, sub_80C7008 + specialvar VAR_RESULT, CountPartyNonEggMons compare_var_to_value VAR_RESULT, 1 goto_eq Route117_PokemonDayCare_EventScript_291DED specialvar VAR_RESULT, sub_80722E0 @@ -107,7 +107,7 @@ Route117_PokemonDayCare_EventScript_291D56:: @ 8291D56 waitstate compare_var_to_value VAR_0x8004, 255 goto_eq Route117_PokemonDayCare_EventScript_291DCA - specialvar VAR_RESULT, sub_80C70AC + specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot compare_var_to_value VAR_RESULT, 0 goto_eq Route117_PokemonDayCare_EventScript_291DF7 specialvar VAR_0x8005, sub_8070C58 diff --git a/data/specials.inc b/data/specials.inc index 49f6b91a0..d9cfcc6b0 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -142,8 +142,8 @@ gSpecials:: @ 81DBA64 def_special sub_8122A30 def_special sub_80D6EDC def_special CalculatePlayerPartyCount - def_special sub_80C7008 - def_special sub_80C70AC + def_special CountPartyNonEggMons + def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot def_special sub_80F88E8 def_special sub_80F88DC def_special sub_80F8864 diff --git a/data/strings.s b/data/strings.s index b858e2d52..641b84c4a 100644 --- a/data/strings.s +++ b/data/strings.s @@ -3150,10 +3150,10 @@ gText_SelectTheAnswer:: @ 85EC752 gText_LyricsCantBeDeleted:: @ 85EC765 .string "The lyrics can’t be deleted.$" -gUnknown_085EC782:: @ 85EC782 +gText_PokemonLeague:: @ 85EC782 .string "POKéMON LEAGUE$" -gUnknown_085EC791:: @ 85EC791 +gText_PokemonCenter:: @ 85EC791 .string "POKéMON CENTER$" gText_GetsAPokeBlockQuestion:: @ 85EC7A0 diff --git a/graphics/pokenav/brendan_icon.pal b/graphics/pokenav/brendan_icon.pal new file mode 100644 index 000000000..a83ed903f --- /dev/null +++ b/graphics/pokenav/brendan_icon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +255 197 148 +222 148 115 +123 65 65 +57 74 123 +41 57 98 +24 41 82 +16 32 57 +222 230 238 +115 205 115 +74 148 82 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/pokenav/brendan_icon.png b/graphics/pokenav/brendan_icon.png Binary files differnew file mode 100644 index 000000000..19e39bb29 --- /dev/null +++ b/graphics/pokenav/brendan_icon.png diff --git a/graphics/pokenav/cursor.pal b/graphics/pokenav/cursor.pal new file mode 100644 index 000000000..b35568acf --- /dev/null +++ b/graphics/pokenav/cursor.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 156 0 +255 255 255 +255 255 255 +230 230 246 +205 205 230 +180 180 222 +156 156 205 +131 131 197 +98 98 180 +74 74 164 +49 49 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/cursor_large.png b/graphics/pokenav/cursor_large.png Binary files differnew file mode 100644 index 000000000..eeda68a0e --- /dev/null +++ b/graphics/pokenav/cursor_large.png diff --git a/graphics/pokenav/cursor_small.png b/graphics/pokenav/cursor_small.png Binary files differnew file mode 100644 index 000000000..031e7ed16 --- /dev/null +++ b/graphics/pokenav/cursor_small.png diff --git a/graphics/pokenav/fly_target_icons.pal b/graphics/pokenav/fly_target_icons.pal new file mode 100644 index 000000000..c0f2cc4e9 --- /dev/null +++ b/graphics/pokenav/fly_target_icons.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 0 0 +0 0 0 +0 0 0 +205 205 205 +0 0 0 +0 0 0 +255 213 222 +255 164 197 +197 98 115 +131 131 123 +98 90 90 +49 49 65 +0 0 0 +0 0 0 +255 255 255 diff --git a/graphics/pokenav/fly_target_icons.png b/graphics/pokenav/fly_target_icons.png Binary files differnew file mode 100644 index 000000000..7a997afc5 --- /dev/null +++ b/graphics/pokenav/fly_target_icons.png diff --git a/graphics/pokenav/map_frame.bin b/graphics/pokenav/map_frame.bin Binary files differnew file mode 100644 index 000000000..eb8e9ee62 --- /dev/null +++ b/graphics/pokenav/map_frame.bin diff --git a/graphics/pokenav/map_frame.png b/graphics/pokenav/map_frame.png Binary files differnew file mode 100644 index 000000000..f64171746 --- /dev/null +++ b/graphics/pokenav/map_frame.png diff --git a/graphics/pokenav/may_icon.pal b/graphics/pokenav/may_icon.pal new file mode 100644 index 000000000..2833b2613 --- /dev/null +++ b/graphics/pokenav/may_icon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 164 148 +205 131 115 +123 90 82 +98 98 115 +41 57 65 +164 106 82 +74 49 57 +205 205 222 +106 213 65 +65 172 32 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/pokenav/may_icon.png b/graphics/pokenav/may_icon.png Binary files differnew file mode 100644 index 000000000..5e1809fa5 --- /dev/null +++ b/graphics/pokenav/may_icon.png diff --git a/graphics/pokenav/region_map.pal b/graphics/pokenav/region_map.pal new file mode 100644 index 000000000..78ffc009a --- /dev/null +++ b/graphics/pokenav/region_map.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +156 213 255 +164 180 255 +123 180 213 +74 156 230 +41 131 230 +65 106 205 +0 115 172 +32 74 197 +0 57 139 +213 255 123 +172 238 49 +98 213 0 +57 172 8 +0 115 0 +205 205 148 +0 0 0 +255 255 255 +238 230 172 +238 230 115 +238 189 57 +246 213 82 +230 164 0 +255 172 16 +255 57 16 +246 0 0 +148 0 0 +205 205 205 +98 98 98 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/region_map.png b/graphics/pokenav/region_map.png Binary files differnew file mode 100644 index 000000000..08df6eb29 --- /dev/null +++ b/graphics/pokenav/region_map.png diff --git a/graphics/pokenav/region_map_map.bin b/graphics/pokenav/region_map_map.bin Binary files differnew file mode 100644 index 000000000..889fd6d36 --- /dev/null +++ b/graphics/pokenav/region_map_map.bin diff --git a/graphics/pokenav/region_map_section_layout.bin b/graphics/pokenav/region_map_section_layout.bin Binary files differnew file mode 100644 index 000000000..4700e08b6 --- /dev/null +++ b/graphics/pokenav/region_map_section_layout.bin diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index b14d94559..38806bbd3 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -4,6 +4,8 @@ monfrontdir := graphics/pokemon/anim_front_pics monpaldir := graphics/pokemon/palettes INTROGFXDIR := graphics/intro interfacedir := graphics/interface +PKNAVGFXDIR := graphics/pokenav +MISCGFXDIR := graphics/misc $(monstillfrontdir)/castform_still_front_pic.4bpp: $(monstillfrontdir)/castform_normal_form_still_front_pic.4bpp \ $(monstillfrontdir)/castform_sunny_form_still_front_pic.4bpp \ @@ -291,5 +293,7 @@ $(INTROGFXDIR)/copyright.4bpp: $(INTROGFXDIR)/copyright.png $(interfacedir)/pkmnjump_bg.4bpp: $(interfacedir)/pkmnjump_bg.png $(GFX) $< $@ -num_tiles 63 -graphics/misc/japanese_hof.4bpp: graphics/misc/japanese_hof.png +$(PKNAVGFXDIR)/region_map.8bpp: $(PKNAVGFXDIR)/region_map.png + $(GFX) $< $@ -num_tiles 233 +$(MISCGFXDIR)/japanese_hof.4bpp: $(MISCGFXDIR)/japanese_hof.png $(GFX) $< $@ -num_tiles 29 diff --git a/include/data/region_map/region_map_entries.h b/include/data/region_map/region_map_entries.h new file mode 100644 index 000000000..73599c704 --- /dev/null +++ b/include/data/region_map/region_map_entries.h @@ -0,0 +1,421 @@ +#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H +#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H + +static const u8 gMapName_LittlerootTown[] = _("LITTLEROOT TOWN"); +static const u8 gMapName_OldaleTown[] = _("OLDALE TOWN"); +static const u8 gMapName_DewfordTown[] = _("DEWFORD TOWN"); +static const u8 gMapName_LavaridgeTown[] = _("LAVARIDGE TOWN"); +static const u8 gMapName_FallarborTown[] = _("FALLARBOR TOWN"); +static const u8 gMapName_VerdanturfTown[] = _("VERDANTURF TOWN"); +static const u8 gMapName_PacifidlogTown[] = _("PACIFIDLOG TOWN"); +static const u8 gMapName_PetalburgCity[] = _("PETALBURG CITY"); +static const u8 gMapName_SlateportCity[] = _("SLATEPORT CITY"); +static const u8 gMapName_MauvilleCity[] = _("MAUVILLE CITY"); +static const u8 gMapName_RustboroCity[] = _("RUSTBORO CITY"); +static const u8 gMapName_FortreeCity[] = _("FORTREE CITY"); +static const u8 gMapName_LilycoveCity[] = _("LILYCOVE CITY"); +static const u8 gMapName_MossdeepCity[] = _("MOSSDEEP CITY"); +static const u8 gMapName_SootopolisCity[] = _("SOOTOPOLIS CITY"); +static const u8 gMapName_EverGrandeCity[] = _("EVER GRANDE CITY"); +static const u8 gMapName_Route101[] = _("ROUTE 101"); +static const u8 gMapName_Route102[] = _("ROUTE 102"); +static const u8 gMapName_Route103[] = _("ROUTE 103"); +static const u8 gMapName_Route104[] = _("ROUTE 104"); +static const u8 gMapName_Route105[] = _("ROUTE 105"); +static const u8 gMapName_Route106[] = _("ROUTE 106"); +static const u8 gMapName_Route107[] = _("ROUTE 107"); +static const u8 gMapName_Route108[] = _("ROUTE 108"); +static const u8 gMapName_Route109[] = _("ROUTE 109"); +static const u8 gMapName_Route110[] = _("ROUTE 110"); +static const u8 gMapName_Route111[] = _("ROUTE 111"); +static const u8 gMapName_Route112[] = _("ROUTE 112"); +static const u8 gMapName_Route113[] = _("ROUTE 113"); +static const u8 gMapName_Route114[] = _("ROUTE 114"); +static const u8 gMapName_Route115[] = _("ROUTE 115"); +static const u8 gMapName_Route116[] = _("ROUTE 116"); +static const u8 gMapName_Route117[] = _("ROUTE 117"); +static const u8 gMapName_Route118[] = _("ROUTE 118"); +static const u8 gMapName_Route119[] = _("ROUTE 119"); +static const u8 gMapName_Route120[] = _("ROUTE 120"); +static const u8 gMapName_Route121[] = _("ROUTE 121"); +static const u8 gMapName_Route122[] = _("ROUTE 122"); +static const u8 gMapName_Route123[] = _("ROUTE 123"); +static const u8 gMapName_Route124[] = _("ROUTE 124"); +static const u8 gMapName_Route125[] = _("ROUTE 125"); +static const u8 gMapName_Route126[] = _("ROUTE 126"); +static const u8 gMapName_Route127[] = _("ROUTE 127"); +static const u8 gMapName_Route128[] = _("ROUTE 128"); +static const u8 gMapName_Route129[] = _("ROUTE 129"); +static const u8 gMapName_Route130[] = _("ROUTE 130"); +static const u8 gMapName_Route131[] = _("ROUTE 131"); +static const u8 gMapName_Route132[] = _("ROUTE 132"); +static const u8 gMapName_Route133[] = _("ROUTE 133"); +static const u8 gMapName_Route134[] = _("ROUTE 134"); +static const u8 gMapName_Underwater[] = _("UNDERWATER"); +static const u8 gMapName_GraniteCave[] = _("GRANITE CAVE"); +static const u8 gMapName_MtChimney[] = _("MT. CHIMNEY"); +static const u8 gMapName_SafariZone[] = _("SAFARI ZONE"); +static const u8 gMapName_BattleFrontier[] = _("BATTLE FRONTIER"); +static const u8 gMapName_PetalburgWoods[] = _("PETALBURG WOODS"); +static const u8 gMapName_RusturfTunnel[] = _("RUSTURF TUNNEL"); +static const u8 gMapName_AbandonedShip[] = _("ABANDONED SHIP"); +static const u8 gMapName_NewMauville[] = _("NEW MAUVILLE"); +static const u8 gMapName_MeteorFalls[] = _("METEOR FALLS"); +static const u8 gMapName_MtPyre[] = _("MT. PYRE"); +// This was the Aqua or Magma hideout in Ruby/Sapphire, but each team has a +// hideout in Emerald with their own new region map entries, and this name +// doesn't seem to be used anymore. +static const u8 gMapName_AquaHideoutOld[] = _("{AQUA} HIDEOUT"); +static const u8 gMapName_ShoalCave[] = _("SHOAL CAVE"); +static const u8 gMapName_SeafloorCavern[] = _("SEAFLOOR CAVERN"); +static const u8 gMapName_VictoryRoad[] = _("VICTORY ROAD"); +static const u8 gMapName_MirageIsland[] = _("MIRAGE ISLAND"); +static const u8 gMapName_CaveOfOrigin[] = _("CAVE OF ORIGIN"); +static const u8 gMapName_SouthernIsland[] = _("SOUTHERN ISLAND"); +static const u8 gMapName_FieryPath[] = _("FIERY PATH"); +static const u8 gMapName_JaggedPass[] = _("JAGGED PASS"); +static const u8 gMapName_SealedChamber[] = _("SEALED CHAMBER"); +static const u8 gMapName_ScorchedSlab[] = _("SCORCHED SLAB"); +static const u8 gMapName_IslandCave[] = _("ISLAND CAVE"); +static const u8 gMapName_DesertRuins[] = _("DESERT RUINS"); +static const u8 gMapName_AncientTomb[] = _("ANCIENT TOMB"); +static const u8 gMapName_InsideOfTruck[] = _("INSIDE OF TRUCK"); +static const u8 gMapName_SkyPillar[] = _("SKY PILLAR"); +static const u8 gMapName_SecretBase[] = _("SECRET BASE"); +static const u8 gMapName_None[] = _(""); +static const u8 gMapName_PalletTown[] = _("PALLET TOWN"); +static const u8 gMapName_ViridianCity[] = _("VIRIDIAN CITY"); +static const u8 gMapName_PewterCity[] = _("PEWTER CITY"); +static const u8 gMapName_CeruleanCity[] = _("CERULEAN CITY"); +static const u8 gMapName_LavenderTown[] = _("LAVENDER TOWN"); +static const u8 gMapName_VermilionCity[] = _("VERMILION CITY"); +static const u8 gMapName_CeladonCity[] = _("CELADON CITY"); +static const u8 gMapName_FuchsiaCity[] = _("FUCHSIA CITY"); +static const u8 gMapName_CinnabarIsland[] = _("CINNABAR ISLAND"); +static const u8 gMapName_IndigoPlateau[] = _("INDIGO PLATEAU"); +static const u8 gMapName_SaffronCity[] = _("SAFFRON CITY"); +static const u8 gMapName_Route4[] = _("ROUTE 4"); +static const u8 gMapName_Route10[] = _("ROUTE 10"); +static const u8 gMapName_Route1[] = _("ROUTE 1"); +static const u8 gMapName_Route2[] = _("ROUTE 2"); +static const u8 gMapName_Route3[] = _("ROUTE 3"); +static const u8 gMapName_Route4_2[] = _("ROUTE 4"); +static const u8 gMapName_Route5[] = _("ROUTE 5"); +static const u8 gMapName_Route6[] = _("ROUTE 6"); +static const u8 gMapName_Route7[] = _("ROUTE 7"); +static const u8 gMapName_Route8[] = _("ROUTE 8"); +static const u8 gMapName_Route9[] = _("ROUTE 9"); +static const u8 gMapName_Route10_2[] = _("ROUTE 10"); +static const u8 gMapName_Route11[] = _("ROUTE 11"); +static const u8 gMapName_Route12[] = _("ROUTE 12"); +static const u8 gMapName_Route13[] = _("ROUTE 13"); +static const u8 gMapName_Route14[] = _("ROUTE 14"); +static const u8 gMapName_Route15[] = _("ROUTE 15"); +static const u8 gMapName_Route16[] = _("ROUTE 16"); +static const u8 gMapName_Route17[] = _("ROUTE 17"); +static const u8 gMapName_Route18[] = _("ROUTE 18"); +static const u8 gMapName_Route19[] = _("ROUTE 19"); +static const u8 gMapName_Route20[] = _("ROUTE 20"); +static const u8 gMapName_Route21[] = _("ROUTE 21"); +static const u8 gMapName_Route22[] = _("ROUTE 22"); +static const u8 gMapName_Route23[] = _("ROUTE 23"); +static const u8 gMapName_Route24[] = _("ROUTE 24"); +static const u8 gMapName_Route25[] = _("ROUTE 25"); +static const u8 gMapName_ViridianForest[] = _("VIRIDIAN FOREST"); +static const u8 gMapName_MtMoon[] = _("MT. MOON"); +static const u8 gMapName_SSAnne[] = _("S.S. ANNE"); +static const u8 gMapName_UndergroundPath[] = _("UNDERGROUND PATH"); +static const u8 gMapName_UndergroundPath2[] = _("UNDERGROUND PATH"); +static const u8 gMapName_DiglettsCave[] = _("DIGLETT’S CAVE"); +static const u8 gMapName_KantoVictoryRoad[] = _("VICTORY ROAD"); +static const u8 gMapName_RocketHideout[] = _("ROCKET HIDEOUT"); +static const u8 gMapName_SilphCo[] = _("SILPH CO."); +static const u8 gMapName_PokemonMansion[] = _("POKéMON MANSION"); +static const u8 gMapName_KantoSafariZone[] = _("SAFARI ZONE"); +static const u8 gMapName_PokemonLeague[] = _("POKéMON LEAGUE"); +static const u8 gMapName_RockTunnel[] = _("ROCK TUNNEL"); +static const u8 gMapName_SeafoamIslands[] = _("SEAFOAM ISLANDS"); +static const u8 gMapName_PokemonTower[] = _("POKéMON TOWER"); +static const u8 gMapName_CeruleanCave[] = _("CERULEAN CAVE"); +static const u8 gMapName_PowerPlant[] = _("POWER PLANT"); +static const u8 gMapName_OneIsland[] = _("ONE ISLAND"); +static const u8 gMapName_TwoIsland[] = _("TWO ISLAND"); +static const u8 gMapName_ThreeIsland[] = _("THREE ISLAND"); +static const u8 gMapName_FourIsland[] = _("FOUR ISLAND"); +static const u8 gMapName_FiveIsland[] = _("FIVE ISLAND"); +static const u8 gMapName_SevenIsland[] = _("SEVEN ISLAND"); +static const u8 gMapName_SixIsland[] = _("SIX ISLAND"); +static const u8 gMapName_KindleRoad[] = _("KINDLE ROAD"); +static const u8 gMapName_TreasureBeach[] = _("TREASURE BEACH"); +static const u8 gMapName_CapeBrink[] = _("CAPE BRINK"); +static const u8 gMapName_BondBridge[] = _("BOND BRIDGE"); +static const u8 gMapName_ThreeIslePort[] = _("THREE ISLE PORT"); +static const u8 gMapName_SeviiIsle6[] = _("SEVII ISLE 6"); +static const u8 gMapName_SeviiIsle7[] = _("SEVII ISLE 7"); +static const u8 gMapName_SeviiIsle8[] = _("SEVII ISLE 8"); +static const u8 gMapName_SeviiIsle9[] = _("SEVII ISLE 9"); +static const u8 gMapName_ResortGorgeous[] = _("RESORT GORGEOUS"); +static const u8 gMapName_WaterLabyrinth[] = _("WATER LABYRINTH"); +static const u8 gMapName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW"); +static const u8 gMapName_MemorialPillar[] = _("MEMORIAL PILLAR"); +static const u8 gMapName_OutcastIsland[] = _("OUTCAST ISLAND"); +static const u8 gMapName_GreenPath[] = _("GREEN PATH"); +static const u8 gMapName_WaterPath[] = _("WATER PATH"); +static const u8 gMapName_RuinValley[] = _("RUIN VALLEY"); +static const u8 gMapName_TrainerTower[] = _("TRAINER TOWER"); +static const u8 gMapName_CanyonEntrance[] = _("CANYON ENTRANCE"); +static const u8 gMapName_SevaultCanyon[] = _("SEVAULT CANYON"); +static const u8 gMapName_TanobyRuins[] = _("TANOBY RUINS"); +static const u8 gMapName_SeviiIsle22[] = _("SEVII ISLE 22"); +static const u8 gMapName_SeviiIsle23[] = _("SEVII ISLE 23"); +static const u8 gMapName_SeviiIsle24[] = _("SEVII ISLE 24"); +static const u8 gMapName_NavelRock[] = _("NAVEL ROCK"); +static const u8 gMapName_MtEmber[] = _("MT. EMBER"); +static const u8 gMapName_BerryForest[] = _("BERRY FOREST"); +static const u8 gMapName_IcefallCave[] = _("ICEFALL CAVE"); +static const u8 gMapName_RocketWarehouse[] = _("ROCKET WAREHOUSE"); +static const u8 gMapName_TrainerTower2[] = _("TRAINER TOWER"); +static const u8 gMapName_DottedHole[] = _("DOTTED HOLE"); +static const u8 gMapName_LostCave[] = _("LOST CAVE"); +static const u8 gMapName_PatternBush[] = _("PATTERN BUSH"); +static const u8 gMapName_AlteringCave[] = _("ALTERING CAVE"); +static const u8 gMapName_TanobyChambers[] = _("TANOBY CHAMBERS"); +static const u8 gMapName_ThreeIslePath[] = _("THREE ISLE PATH"); +static const u8 gMapName_TanobyKey[] = _("TANOBY KEY"); +static const u8 gMapName_BirthIsland[] = _("BIRTH ISLAND"); +static const u8 gMapName_MoneanChamber[] = _("MONEAN CHAMBER"); +static const u8 gMapName_LiptooChamber[] = _("LIPTOO CHAMBER"); +static const u8 gMapName_WeepthChamber[] = _("WEEPTH CHAMBER"); +static const u8 gMapName_DilfordChamber[] = _("DILFORD CHAMBER"); +static const u8 gMapName_ScufibChamber[] = _("SCUFIB CHAMBER"); +static const u8 gMapName_RixyChamber[] = _("RIXY CHAMBER"); +static const u8 gMapName_ViapoisChamber[] = _("VIAPOIS CHAMBER"); +static const u8 gMapName_EmberSpa[] = _("EMBER SPA"); +static const u8 gMapName_SpecialArea[] = _("SPECIAL AREA"); +static const u8 gMapName_AquaHideout[] = _("AQUA HIDEOUT"); +static const u8 gMapName_MagmaHideout[] = _("MAGMA HIDEOUT"); +static const u8 gMapName_MirageTower[] = _("MIRAGE TOWER"); +static const u8 gMapName_FarawayIsland[] = _("FARAWAY ISLAND"); +static const u8 gMapName_ArtisanCave[] = _("ARTISAN CAVE"); +static const u8 gMapName_MarineCave[] = _("MARINE CAVE"); +static const u8 gMapName_TerraCave[] = _("TERRA CAVE"); +static const u8 gMapName_DesertUnderpass[] = _("DESERT UNDERPASS"); +static const u8 gMapName_TrainerHill[] = _("TRAINER HILL"); + +const struct RegionMapLocation gRegionMapEntries[] = { + { 4, 11, 1, 1, gMapName_LittlerootTown}, + { 4, 9, 1, 1, gMapName_OldaleTown}, + { 2, 14, 1, 1, gMapName_DewfordTown}, + { 5, 3, 1, 1, gMapName_LavaridgeTown}, + { 3, 0, 1, 1, gMapName_FallarborTown}, + { 4, 6, 1, 1, gMapName_VerdanturfTown}, + {17, 10, 1, 1, gMapName_PacifidlogTown}, + { 1, 9, 1, 1, gMapName_PetalburgCity}, + { 8, 10, 1, 2, gMapName_SlateportCity}, + { 8, 6, 2, 1, gMapName_MauvilleCity}, + { 0, 5, 1, 2, gMapName_RustboroCity}, + {12, 0, 1, 1, gMapName_FortreeCity}, + {18, 3, 2, 1, gMapName_LilycoveCity}, + {24, 5, 2, 1, gMapName_MossdeepCity}, + {21, 7, 1, 1, gMapName_SootopolisCity}, + {27, 8, 1, 2, gMapName_EverGrandeCity}, + { 4, 10, 1, 1, gMapName_Route101}, + { 2, 9, 2, 1, gMapName_Route102}, + { 4, 8, 4, 1, gMapName_Route103}, + { 0, 7, 1, 3, gMapName_Route104}, + { 0, 10, 1, 3, gMapName_Route105}, + { 0, 13, 2, 1, gMapName_Route106}, + { 3, 14, 3, 1, gMapName_Route107}, + { 6, 14, 2, 1, gMapName_Route108}, + { 8, 12, 1, 3, gMapName_Route109}, + { 8, 7, 1, 3, gMapName_Route110}, + { 8, 0, 1, 6, gMapName_Route111}, + { 6, 3, 2, 1, gMapName_Route112}, + { 4, 0, 4, 1, gMapName_Route113}, + { 1, 0, 2, 3, gMapName_Route114}, + { 0, 2, 1, 3, gMapName_Route115}, + { 1, 5, 4, 1, gMapName_Route116}, + { 5, 6, 3, 1, gMapName_Route117}, + {10, 6, 2, 1, gMapName_Route118}, + {11, 0, 1, 6, gMapName_Route119}, + {13, 0, 1, 4, gMapName_Route120}, + {14, 3, 4, 1, gMapName_Route121}, + {16, 4, 1, 2, gMapName_Route122}, + {12, 6, 5, 1, gMapName_Route123}, + {20, 3, 4, 3, gMapName_Route124}, + {24, 3, 2, 2, gMapName_Route125}, + {20, 6, 3, 3, gMapName_Route126}, + {23, 6, 3, 3, gMapName_Route127}, + {23, 9, 4, 1, gMapName_Route128}, + {24, 10, 2, 1, gMapName_Route129}, + {21, 10, 3, 1, gMapName_Route130}, + {18, 10, 3, 1, gMapName_Route131}, + {15, 10, 2, 1, gMapName_Route132}, + {12, 10, 3, 1, gMapName_Route133}, + { 9, 10, 3, 1, gMapName_Route134}, + {20, 3, 4, 3, gMapName_Underwater}, + {20, 6, 3, 3, gMapName_Underwater}, + {23, 6, 3, 3, gMapName_Underwater}, + {23, 9, 4, 1, gMapName_Underwater}, + {21, 7, 1, 1, gMapName_Underwater}, + { 1, 13, 1, 1, gMapName_GraniteCave}, + { 6, 2, 1, 1, gMapName_MtChimney}, + {16, 2, 1, 1, gMapName_SafariZone}, + {22, 12, 1, 1, gMapName_BattleFrontier}, + { 0, 8, 1, 1, gMapName_PetalburgWoods}, + { 2, 5, 1, 1, gMapName_RusturfTunnel}, + { 6, 14, 1, 1, gMapName_AbandonedShip}, + { 8, 7, 1, 1, gMapName_NewMauville}, + { 0, 3, 1, 1, gMapName_MeteorFalls}, + { 1, 2, 1, 1, gMapName_MeteorFalls}, + {16, 4, 1, 1, gMapName_MtPyre}, + {19, 3, 1, 1, gMapName_AquaHideoutOld}, + {24, 4, 1, 1, gMapName_ShoalCave}, + {24, 9, 1, 1, gMapName_SeafloorCavern}, + {24, 9, 1, 1, gMapName_Underwater}, + {27, 9, 1, 1, gMapName_VictoryRoad}, + {17, 10, 1, 1, gMapName_MirageIsland}, + {21, 7, 1, 1, gMapName_CaveOfOrigin}, + {12, 14, 1, 1, gMapName_SouthernIsland}, + { 6, 3, 1, 1, gMapName_FieryPath}, + { 7, 3, 1, 1, gMapName_FieryPath}, + { 6, 3, 1, 1, gMapName_JaggedPass}, + { 7, 2, 1, 1, gMapName_JaggedPass}, + {11, 10, 1, 1, gMapName_SealedChamber}, + {11, 10, 1, 1, gMapName_Underwater}, + {13, 0, 1, 1, gMapName_ScorchedSlab}, + { 0, 10, 1, 1, gMapName_IslandCave}, + { 8, 3, 1, 1, gMapName_DesertRuins}, + {13, 2, 1, 1, gMapName_AncientTomb}, + { 0, 0, 1, 1, gMapName_InsideOfTruck}, + {19, 10, 1, 1, gMapName_SkyPillar}, + { 0, 0, 1, 1, gMapName_SecretBase}, + { 0, 0, 1, 1, gMapName_None}, + { 0, 0, 1, 1, gMapName_PalletTown}, + { 0, 0, 1, 1, gMapName_ViridianCity}, + { 0, 0, 1, 1, gMapName_PewterCity}, + { 0, 0, 1, 1, gMapName_CeruleanCity}, + { 0, 0, 1, 1, gMapName_LavenderTown}, + { 0, 0, 1, 1, gMapName_VermilionCity}, + { 0, 0, 1, 1, gMapName_CeladonCity}, + { 0, 0, 1, 1, gMapName_FuchsiaCity}, + { 0, 0, 1, 1, gMapName_CinnabarIsland}, + { 0, 0, 1, 1, gMapName_IndigoPlateau}, + { 0, 0, 1, 1, gMapName_SaffronCity}, + { 0, 0, 1, 1, gMapName_Route4}, + { 0, 0, 1, 1, gMapName_Route10}, + { 0, 0, 1, 1, gMapName_Route1}, + { 0, 0, 1, 1, gMapName_Route2}, + { 0, 0, 1, 1, gMapName_Route3}, + { 0, 0, 1, 1, gMapName_Route4_2}, + { 0, 0, 1, 1, gMapName_Route5}, + { 0, 0, 1, 1, gMapName_Route6}, + { 0, 0, 1, 1, gMapName_Route7}, + { 0, 0, 1, 1, gMapName_Route8}, + { 0, 0, 1, 1, gMapName_Route9}, + { 0, 0, 1, 1, gMapName_Route10_2}, + { 0, 0, 1, 1, gMapName_Route11}, + { 0, 0, 1, 1, gMapName_Route12}, + { 0, 0, 1, 1, gMapName_Route13}, + { 0, 0, 1, 1, gMapName_Route14}, + { 0, 0, 1, 1, gMapName_Route15}, + { 0, 0, 1, 1, gMapName_Route16}, + { 0, 0, 1, 1, gMapName_Route17}, + { 0, 0, 1, 1, gMapName_Route18}, + { 0, 0, 1, 1, gMapName_Route19}, + { 0, 0, 1, 1, gMapName_Route20}, + { 0, 0, 1, 1, gMapName_Route21}, + { 0, 0, 1, 1, gMapName_Route22}, + { 0, 0, 1, 1, gMapName_Route23}, + { 0, 0, 1, 1, gMapName_Route24}, + { 0, 0, 1, 1, gMapName_Route25}, + { 0, 0, 1, 1, gMapName_ViridianForest}, + { 0, 0, 1, 1, gMapName_MtMoon}, + { 0, 0, 1, 1, gMapName_SSAnne}, + { 0, 0, 1, 1, gMapName_UndergroundPath}, + { 0, 0, 1, 1, gMapName_UndergroundPath2}, + { 0, 0, 1, 1, gMapName_DiglettsCave}, + { 0, 0, 1, 1, gMapName_KantoVictoryRoad}, + { 0, 0, 1, 1, gMapName_RocketHideout}, + { 0, 0, 1, 1, gMapName_SilphCo}, + { 0, 0, 1, 1, gMapName_PokemonMansion}, + { 0, 0, 1, 1, gMapName_KantoSafariZone}, + { 0, 0, 1, 1, gMapName_PokemonLeague}, + { 0, 0, 1, 1, gMapName_RockTunnel}, + { 0, 0, 1, 1, gMapName_SeafoamIslands}, + { 0, 0, 1, 1, gMapName_PokemonTower}, + { 0, 0, 1, 1, gMapName_CeruleanCave}, + { 0, 0, 1, 1, gMapName_PowerPlant}, + { 0, 0, 1, 1, gMapName_OneIsland}, + { 0, 0, 1, 1, gMapName_TwoIsland}, + { 0, 0, 1, 1, gMapName_ThreeIsland}, + { 0, 0, 1, 1, gMapName_FourIsland}, + { 0, 0, 1, 1, gMapName_FiveIsland}, + { 0, 0, 1, 1, gMapName_SevenIsland}, + { 0, 0, 1, 1, gMapName_SixIsland}, + { 0, 0, 1, 1, gMapName_KindleRoad}, + { 0, 0, 1, 1, gMapName_TreasureBeach}, + { 0, 0, 1, 1, gMapName_CapeBrink}, + { 0, 0, 1, 1, gMapName_BondBridge}, + { 0, 0, 1, 1, gMapName_ThreeIslePort}, + { 0, 0, 1, 1, gMapName_SeviiIsle6}, + { 0, 0, 1, 1, gMapName_SeviiIsle7}, + { 0, 0, 1, 1, gMapName_SeviiIsle8}, + { 0, 0, 1, 1, gMapName_SeviiIsle9}, + { 0, 0, 1, 1, gMapName_ResortGorgeous}, + { 0, 0, 1, 1, gMapName_WaterLabyrinth}, + { 0, 0, 1, 1, gMapName_FiveIsleMeadow}, + { 0, 0, 1, 1, gMapName_MemorialPillar}, + { 0, 0, 1, 1, gMapName_OutcastIsland}, + { 0, 0, 1, 1, gMapName_GreenPath}, + { 0, 0, 1, 1, gMapName_WaterPath}, + { 0, 0, 1, 1, gMapName_RuinValley}, + { 0, 0, 1, 1, gMapName_TrainerTower}, + { 0, 0, 1, 1, gMapName_CanyonEntrance}, + { 0, 0, 1, 1, gMapName_SevaultCanyon}, + { 0, 0, 1, 1, gMapName_TanobyRuins}, + { 0, 0, 1, 1, gMapName_SeviiIsle22}, + { 0, 0, 1, 1, gMapName_SeviiIsle23}, + { 0, 0, 1, 1, gMapName_SeviiIsle24}, + { 0, 0, 1, 1, gMapName_NavelRock}, + { 0, 0, 1, 1, gMapName_MtEmber}, + { 0, 0, 1, 1, gMapName_BerryForest}, + { 0, 0, 1, 1, gMapName_IcefallCave}, + { 0, 0, 1, 1, gMapName_RocketWarehouse}, + { 0, 0, 1, 1, gMapName_TrainerTower2}, + { 0, 0, 1, 1, gMapName_DottedHole}, + { 0, 0, 1, 1, gMapName_LostCave}, + { 0, 0, 1, 1, gMapName_PatternBush}, + { 0, 0, 1, 1, gMapName_AlteringCave}, + { 0, 0, 1, 1, gMapName_TanobyChambers}, + { 0, 0, 1, 1, gMapName_ThreeIslePath}, + { 0, 0, 1, 1, gMapName_TanobyKey}, + { 0, 0, 1, 1, gMapName_BirthIsland}, + { 0, 0, 1, 1, gMapName_MoneanChamber}, + { 0, 0, 1, 1, gMapName_LiptooChamber}, + { 0, 0, 1, 1, gMapName_WeepthChamber}, + { 0, 0, 1, 1, gMapName_DilfordChamber}, + { 0, 0, 1, 1, gMapName_ScufibChamber}, + { 0, 0, 1, 1, gMapName_RixyChamber}, + { 0, 0, 1, 1, gMapName_ViapoisChamber}, + { 0, 0, 1, 1, gMapName_EmberSpa}, + { 0, 0, 1, 1, gMapName_SpecialArea}, + {19, 3, 1, 1, gMapName_AquaHideout}, + { 6, 3, 1, 1, gMapName_MagmaHideout}, + { 8, 2, 1, 1, gMapName_MirageTower}, + { 0, 0, 1, 1, gMapName_BirthIsland}, + { 0, 0, 1, 1, gMapName_FarawayIsland}, + {22, 12, 1, 1, gMapName_ArtisanCave}, + { 0, 0, 1, 1, gMapName_MarineCave}, + { 0, 0, 1, 1, gMapName_Underwater}, + { 0, 0, 1, 1, gMapName_TerraCave}, + { 0, 10, 1, 3, gMapName_Underwater}, + {24, 3, 2, 2, gMapName_Underwater}, + {24, 10, 2, 1, gMapName_Underwater}, + { 2, 0, 1, 1, gMapName_DesertUnderpass}, + { 6, 8, 1, 1, gMapName_AlteringCave}, + { 0, 0, 1, 1, gMapName_NavelRock}, + { 8, 4, 1, 1, gMapName_TrainerHill} +}; + +#endif //GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H diff --git a/include/field_effect.h b/include/field_effect.h index aa3f7eba0..629ae07c7 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -69,9 +69,10 @@ enum FieldEffectScriptIdx FLDEFF_USE_TELEPORT }; +extern u32 gFieldEffectArguments[8]; + u8 FieldEffectStart(u8); bool8 FieldEffectActiveListContains(u8 id); - -extern u32 gFieldEffectArguments[8]; +void sub_80B69DC(void); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/flags.h b/include/flags.h index e0bb121f6..6dfae9ab2 100644 --- a/include/flags.h +++ b/include/flags.h @@ -7,102 +7,105 @@ // SYSTEM FLAGS -#define FLAG_SYS_POKEMON_GET CODE_FLAGS + 0 -#define FLAG_SYS_POKEDEX_GET CODE_FLAGS + 1 -#define FLAG_SYS_POKENAV_GET CODE_FLAGS + 2 +#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0) +#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1) +#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2) // third one appears unused -#define FLAG_SYS_GAME_CLEAR CODE_FLAGS + 4 -#define FLAG_SYS_CHAT_USED CODE_FLAGS + 5 -#define FLAG_SYS_HIPSTER_MEET CODE_FLAGS + 6 +#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4) +#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5) +#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6) // badges -#define FLAG_BADGE01_GET CODE_FLAGS + 7 -#define FLAG_BADGE02_GET CODE_FLAGS + 8 -#define FLAG_BADGE03_GET CODE_FLAGS + 9 -#define FLAG_BADGE04_GET CODE_FLAGS + 0xA -#define FLAG_BADGE05_GET CODE_FLAGS + 0xB -#define FLAG_BADGE06_GET CODE_FLAGS + 0xC -#define FLAG_BADGE07_GET CODE_FLAGS + 0xD -#define FLAG_BADGE08_GET CODE_FLAGS + 0xE +#define FLAG_BADGE01_GET (CODE_FLAGS + 7) +#define FLAG_BADGE02_GET (CODE_FLAGS + 8) +#define FLAG_BADGE03_GET (CODE_FLAGS + 9) +#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA) +#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB) +#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC) +#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD) +#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE) // cities and towns -#define FLAG_VISITED_LITTLEROOT_TOWN CODE_FLAGS + 0xF -#define FLAG_VISITED_OLDALE_TOWN CODE_FLAGS + 0x10 -#define FLAG_VISITED_DEWFORD_TOWN CODE_FLAGS + 0x11 -#define FLAG_VISITED_LAVARIDGE_TOWN CODE_FLAGS + 0x12 -#define FLAG_VISITED_FALLARBOR_TOWN CODE_FLAGS + 0x13 -#define FLAG_VISITED_VERDANTURF_TOWN CODE_FLAGS + 0x14 -#define FLAG_VISITED_PACIFIDLOG_TOWN CODE_FLAGS + 0x15 -#define FLAG_VISITED_PETALBURG_CITY CODE_FLAGS + 0x16 -#define FLAG_VISITED_SLATEPORT_CITY CODE_FLAGS + 0x17 -#define FLAG_VISITED_MAUVILLE_CITY CODE_FLAGS + 0x18 -#define FLAG_VISITED_RUSTBORO_CITY CODE_FLAGS + 0x19 -#define FLAG_VISITED_FORTREE_CITY CODE_FLAGS + 0x1A -#define FLAG_VISITED_LILYCOVE_CITY CODE_FLAGS + 0x1B -#define FLAG_VISITED_MOSSDEEP_CITY CODE_FLAGS + 0x1C -#define FLAG_VISITED_SOOTOPOLIS_CITY CODE_FLAGS + 0x1D -#define FLAG_VISITED_EVER_GRANDE_CITY CODE_FLAGS + 0x1E - -#define FLAG_SYS_UNKNOWN_880 CODE_FLAGS + 0x20 - -#define FLAG_SYS_USE_FLASH CODE_FLAGS + 0x28 -#define FLAG_SYS_USE_STRENGTH CODE_FLAGS + 0x29 -#define FLAG_SYS_WEATHER_CTRL CODE_FLAGS + 0x2A -#define FLAG_SYS_CYCLING_ROAD CODE_FLAGS + 0x2B -#define FLAG_SYS_SAFARI_MODE CODE_FLAGS + 0x2C -#define FLAG_SYS_CRUISE_MODE CODE_FLAGS + 0x2D - -#define FLAG_SYS_TV_HOME CODE_FLAGS + 0x30 -#define FLAG_SYS_TV_WATCH CODE_FLAGS + 0x31 -#define FLAG_SYS_TV_START CODE_FLAGS + 0x32 -#define FLAG_SYS_POPWORD_INPUT CODE_FLAGS + 0x33 -#define FLAG_SYS_MIX_RECORD CODE_FLAGS + 0x34 -#define FLAG_SYS_CLOCK_SET CODE_FLAGS + 0x35 -#define FLAG_SYS_NATIONAL_DEX CODE_FLAGS + 0x36 -#define FLAG_SYS_CAVE_SHIP CODE_FLAGS + 0x37 -#define FLAG_SYS_CAVE_WONDER CODE_FLAGS + 0x38 -#define FLAG_SYS_CAVE_BATTLE CODE_FLAGS + 0x39 -#define FLAG_SYS_SHOAL_TIDE CODE_FLAGS + 0x3A -#define FLAG_SYS_RIBBON_GET CODE_FLAGS + 0x3B - -#define FLAG_SYS_PC_LANETTE CODE_FLAGS + 0x4B -#define FLAG_SYS_MYSTERY_EVENT_ENABLE CODE_FLAGS + 0x4C -#define FLAG_SYS_ENC_UP_ITEM CODE_FLAGS + 0x4D -#define FLAG_SYS_ENC_DOWN_ITEM CODE_FLAGS + 0x4E -#define FLAG_SYS_BRAILLE_DIG CODE_FLAGS + 0x4F -#define FLAG_SYS_BRAILLE_STRENGTH CODE_FLAGS + 0x50 -#define FLAG_SYS_BRAILLE_WAIT CODE_FLAGS + 0x51 -#define FLAG_SYS_BRAILLE_FLY CODE_FLAGS + 0x52 -#define FLAG_SYS_HAS_EON_TICKET CODE_FLAGS + 0x53 - -#define FLAG_SYS_POKEMON_LEAGUE_FLY CODE_FLAGS + 0x54 - -#define FLAG_SYS_TV_LATI CODE_FLAGS + 0x5D - -#define FLAG_SYS_SHOAL_ITEM CODE_FLAGS + 0x5F -#define FLAG_SYS_B_DASH CODE_FLAGS + 0x60 // got Running Shoes -#define FLAG_SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 -#define FLAG_SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 - -#define FLAG_SYS_TOWER_SILVER CODE_FLAGS + 0x64 -#define FLAG_SYS_TOWER_GOLD CODE_FLAGS + 0x65 -#define FLAG_SYS_DOME_SILVER CODE_FLAGS + 0x66 -#define FLAG_SYS_DOME_GOLD CODE_FLAGS + 0x67 -#define FLAG_SYS_PALACE_SILVER CODE_FLAGS + 0x68 -#define FLAG_SYS_PALACE_GOLD CODE_FLAGS + 0x69 -#define FLAG_SYS_ARENA_SILVER CODE_FLAGS + 0x6A -#define FLAG_SYS_ARENA_GOLD CODE_FLAGS + 0x6B -#define FLAG_SYS_FACTORY_SILVER CODE_FLAGS + 0x6C -#define FLAG_SYS_FACTORY_GOLD CODE_FLAGS + 0x6D -#define FLAG_SYS_PIKE_SILVER CODE_FLAGS + 0x6E -#define FLAG_SYS_PIKE_GOLD CODE_FLAGS + 0x6F -#define FLAG_SYS_PYRAMID_SILVER CODE_FLAGS + 0x70 -#define FLAG_SYS_PYRAMID_GOLD CODE_FLAGS + 0x71 -#define FLAG_SYS_FRONTIER_PASS CODE_FLAGS + 0x72 - -#define FLAG_SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77 - -#define FLAG_SYS_MYSTERY_GIFT_ENABLE CODE_FLAGS + 0x7B +#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF) +#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10) +#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11) +#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12) +#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13) +#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14) +#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15) +#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16) +#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17) +#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18) +#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19) +#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A) +#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B) +#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C) +#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D) +#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E) + +#define FLAG_SYS_UNKNOWN_880 (CODE_FLAGS + 0x20) + +#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28) +#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) +#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) +#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) +#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) +#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) + +#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30) +#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31) +#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32) +#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33) +#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34) +#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35) +#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36) +#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37) +#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38) +#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39) +#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A) +#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B) + +#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48) +#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49) + +#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B) +#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C) +#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D) +#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E) +#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F) +#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50) +#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51) +#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52) +#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53) + +#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54) + +#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D) + +#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F) +#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes +#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61) +#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62) + +#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64) +#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65) +#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66) +#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67) +#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68) +#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69) +#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A) +#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B) +#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C) +#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D) +#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E) +#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F) +#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70) +#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71) +#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72) + +#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77) + +#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B) // SPECIAL FLAGS (unknown purpose) diff --git a/include/heal_location.h b/include/heal_location.h new file mode 100644 index 000000000..1f966f1ae --- /dev/null +++ b/include/heal_location.h @@ -0,0 +1,25 @@ +#ifndef GUARD_HEAL_LOCATION_H +#define GUARD_HEAL_LOCATION_H + +// Exported type declarations + +struct UnkStruct_0859F534 { + const union AffineAnimCmd *const *const affineAnims; + void (* callback)(struct Sprite *sprite); +}; + +struct HealLocation +{ + s8 group; + s8 map; + u16 x; + u16 y; +}; + +// Exported RAM declarations + +// Exported ROM declarations + +const struct HealLocation *GetHealLocationPointer(u32 loc); + +#endif //GUARD_HEAL_LOCATION_H diff --git a/include/menu.h b/include/menu.h index d8b2afc5c..e93d688e4 100644 --- a/include/menu.h +++ b/include/menu.h @@ -29,5 +29,7 @@ bool8 free_temp_tile_data_buffers_if_possible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); s8 sub_8198C58(void); +void do_scheduled_bg_tilemap_copies_to_vram(void); +void clear_scheduled_bg_copies_to_vram(void); #endif // GUARD_MENU_H diff --git a/include/overworld.h b/include/overworld.h index 19bcaaf01..ea3d27319 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -53,13 +53,16 @@ void Overworld_ChangeMusicTo(u16); bool32 is_c1_link_related_active(void); void strange_npc_table_clear(void); -const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); +const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void c2_exit_to_overworld_2_switch(void); bool32 sub_8087598(void); void c2_exit_to_overworld_1_continue_scripts_restart_music(void); void warp_in(void); +u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum); +void sub_8086194(void); +void sub_8084CCC(u8 spawn); void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum); void c2_load_new_map(void); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); diff --git a/include/party_menu.h b/include/party_menu.h index c93f63a6d..7a7d59cd0 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -2,6 +2,7 @@ #define GUARD_PARTY_MENU_H bool8 pokemon_has_move(struct Pokemon *, u16); +void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 49680793d..9115ab054 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -1,8 +1,12 @@ #ifndef GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H +#define TOTAL_BOXES_COUNT 14 +#define IN_BOX_COUNT 30 + u8* GetBoxNamePtr(u8 boxNumber); struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); +u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/region_map.h b/include/region_map.h index 52e7376be..91384d166 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -1,227 +1,314 @@ #ifndef GUARD_REGION_MAP_H #define GUARD_REGION_MAP_H +#include "bg.h" + // Exported type declarations enum { - REGION_MAP_LITTLEROOT_TOWN, - REGION_MAP_OLDALE_TOWN, - REGION_MAP_DEWFORD_TOWN, - REGION_MAP_LAVARIDGE_TOWN, - REGION_MAP_FALLARBOR_TOWN, - REGION_MAP_VERDANTURF_TOWN, - REGION_MAP_PACIFIDLOG_TOWN, - REGION_MAP_PETALBURG_CITY, - REGION_MAP_SLATEPORT_CITY, - REGION_MAP_MAUVILLE_CITY, - REGION_MAP_RUSTBORO_CITY, - REGION_MAP_FORTREE_CITY, - REGION_MAP_LILYCOVE_CITY, - REGION_MAP_MOSSDEEP_CITY, - REGION_MAP_SOOTOPOLIS_CITY, - REGION_MAP_EVER_GRANDE_CITY, - REGION_MAP_ROUTE_101, - REGION_MAP_ROUTE_102, - REGION_MAP_ROUTE_103, - REGION_MAP_ROUTE_104, - REGION_MAP_ROUTE_105, - REGION_MAP_ROUTE_106, - REGION_MAP_ROUTE_107, - REGION_MAP_ROUTE_108, - REGION_MAP_ROUTE_109, - REGION_MAP_ROUTE_110, - REGION_MAP_ROUTE_111, - REGION_MAP_ROUTE_112, - REGION_MAP_ROUTE_113, - REGION_MAP_ROUTE_114, - REGION_MAP_ROUTE_115, - REGION_MAP_ROUTE_116, - REGION_MAP_ROUTE_117, - REGION_MAP_ROUTE_118, - REGION_MAP_ROUTE_119, - REGION_MAP_ROUTE_120, - REGION_MAP_ROUTE_121, - REGION_MAP_ROUTE_122, - REGION_MAP_ROUTE_123, - REGION_MAP_ROUTE_124, - REGION_MAP_ROUTE_125, - REGION_MAP_ROUTE_126, - REGION_MAP_ROUTE_127, - REGION_MAP_ROUTE_128, - REGION_MAP_ROUTE_129, - REGION_MAP_ROUTE_130, - REGION_MAP_ROUTE_131, - REGION_MAP_ROUTE_132, - REGION_MAP_ROUTE_133, - REGION_MAP_ROUTE_134, - REGION_MAP_UNDERWATER_124, - REGION_MAP_UNDERWATER_125, - REGION_MAP_UNDERWATER_126, - REGION_MAP_UNDERWATER_127, - REGION_MAP_UNDERWATER_128, - REGION_MAP_GRANITE_CAVE, - REGION_MAP_MT_CHIMNEY, - REGION_MAP_SAFARI_ZONE, - REGION_MAP_BATTLE_FRONTIER, - REGION_MAP_PETALBURG_WOODS, - REGION_MAP_RUSTURF_TUNNEL, - REGION_MAP_ABANDONED_SHIP, - REGION_MAP_NEW_MAUVILLE, - REGION_MAP_METEOR_FALLS, - REGION_MAP_METEOR_FALLS2, - REGION_MAP_MT_PYRE, - REGION_MAP_AQUA_HIDEOUT_OLD, - REGION_MAP_SHOAL_CAVE, - REGION_MAP_SEAFLOOR_CAVERN, - REGION_MAP_UNDERWATER, - REGION_MAP_VICTORY_ROAD, - REGION_MAP_MIRAGE_ISLAND, - REGION_MAP_CAVE_OF_ORIGIN, - REGION_MAP_SOUTHERN_ISLAND, - REGION_MAP_FIERY_PATH, - REGION_MAP_FIERY_PATH2, - REGION_MAP_JAGGED_PASS, - REGION_MAP_JAGGED_PASS2, - REGION_MAP_SEALED_CHAMBER, - REGION_MAP_UNDERWATER_SEALED_CHAMBER, - REGION_MAP_SCORCHED_SLAB, - REGION_MAP_ISLAND_CAVE, - REGION_MAP_DESERT_RUINS, - REGION_MAP_ANCIENT_TOMB, - REGION_MAP_INSIDE_OF_TRUCK, - REGION_MAP_SKY_PILLAR, - REGION_MAP_SECRET_BASE, - REGION_MAP_NONE, - REGION_MAP_PALLET_TOWN, - REGION_MAP_VIRIDIAN_CITY, - REGION_MAP_PEWTER_CITY, - REGION_MAP_CERULEAN_CITY, - REGION_MAP_LAVENDER_TOWN, - REGION_MAP_VERMILION_CITY, - REGION_MAP_CELADON_CITY, - REGION_MAP_FUCHSIA_CITY, - REGION_MAP_CINNABAR_ISLAND, - REGION_MAP_INDIGO_PLATEAU, - REGION_MAP_SAFFRON_CITY, - REGION_MAP_ROUTE_4, - REGION_MAP_ROUTE_10, - REGION_MAP_ROUTE_1, - REGION_MAP_ROUTE_2, - REGION_MAP_ROUTE_3, - REGION_MAP_ROUTE_4_2, - REGION_MAP_ROUTE_5, - REGION_MAP_ROUTE_6, - REGION_MAP_ROUTE_7, - REGION_MAP_ROUTE_8, - REGION_MAP_ROUTE_9, - REGION_MAP_ROUTE_10_2, - REGION_MAP_ROUTE_11, - REGION_MAP_ROUTE_12, - REGION_MAP_ROUTE_13, - REGION_MAP_ROUTE_14, - REGION_MAP_ROUTE_15, - REGION_MAP_ROUTE_16, - REGION_MAP_ROUTE_17, - REGION_MAP_ROUTE_18, - REGION_MAP_ROUTE_19, - REGION_MAP_ROUTE_20, - REGION_MAP_ROUTE_21, - REGION_MAP_ROUTE_22, - REGION_MAP_ROUTE_23, - REGION_MAP_ROUTE_24, - REGION_MAP_ROUTE_25, - REGION_MAP_VIRIDIAN_FOREST, - REGION_MAP_MT_MOON, - REGION_MAP_S_S_ANNE, - REGION_MAP_UNDERGROUND_PATH, - REGION_MAP_UNDERGROUND_PATH_2, - REGION_MAP_DIGLETTS_CAVE, - REGION_MAP_KANTO_VICTORY_ROAD, - REGION_MAP_ROCKET_HIDEOUT, - REGION_MAP_SILPH_CO, - REGION_MAP_POKEMON_MANSION, - REGION_MAP_KANTO_SAFARI_ZONE, - REGION_MAP_POKEMON_LEAGUE, - REGION_MAP_ROCK_TUNNEL, - REGION_MAP_SEAFOAM_ISLANDS, - REGION_MAP_POKEMON_TOWER, - REGION_MAP_CERULEAN_CAVE, - REGION_MAP_POWER_PLANT, - REGION_MAP_ONE_ISLAND, - REGION_MAP_TWO_ISLAND, - REGION_MAP_THREE_ISLAND, - REGION_MAP_FOUR_ISLAND, - REGION_MAP_FIVE_ISLAND, - REGION_MAP_SEVEN_ISLAND, - REGION_MAP_SIX_ISLAND, - REGION_MAP_KINDLE_ROAD, - REGION_MAP_TREASURE_BEACH, - REGION_MAP_CAPE_BRINK, - REGION_MAP_BOND_BRIDGE, - REGION_MAP_THREE_ISLE_PORT, - REGION_MAP_SEVII_ISLE_6, - REGION_MAP_SEVII_ISLE_7, - REGION_MAP_SEVII_ISLE_8, - REGION_MAP_SEVII_ISLE_9, - REGION_MAP_RESORT_GORGEOUS, - REGION_MAP_WATER_LABYRINTH, - REGION_MAP_FIVE_ISLE_MEADOW, - REGION_MAP_MEMORIAL_PILLAR, - REGION_MAP_OUTCAST_ISLAND, - REGION_MAP_GREEN_PATH, - REGION_MAP_WATER_PATH, - REGION_MAP_RUIN_VALLEY, - REGION_MAP_TRAINER_TOWER, - REGION_MAP_CANYON_ENTRANCE, - REGION_MAP_SEVAULT_CANYON, - REGION_MAP_TANOBY_RUINS, - REGION_MAP_SEVII_ISLE_22, - REGION_MAP_SEVII_ISLE_23, - REGION_MAP_SEVII_ISLE_24, - REGION_MAP_NAVEL_ROCK, - REGION_MAP_MT_EMBER, - REGION_MAP_BERRY_FOREST, - REGION_MAP_ICEFALL_CAVE, - REGION_MAP_ROCKET_WAREHOUSE, - REGION_MAP_TRAINER_TOWER_2, - REGION_MAP_DOTTED_HOLE, - REGION_MAP_LOST_CAVE, - REGION_MAP_PATTERN_BUSH, - REGION_MAP_ALTERING_CAVE, - REGION_MAP_TANOBY_CHAMBERS, - REGION_MAP_THREE_ISLE_PATH, - REGION_MAP_TANOBY_KEY, - REGION_MAP_BIRTH_ISLAND, - REGION_MAP_MONEAN_CHAMBER, - REGION_MAP_LIPTOO_CHAMBER, - REGION_MAP_WEEPTH_CHAMBER, - REGION_MAP_DILFORD_CHAMBER, - REGION_MAP_SCUFIB_CHAMBER, - REGION_MAP_RIXY_CHAMBER, - REGION_MAP_VIAPOIS_CHAMBER, - REGION_MAP_EMBER_SPA, - REGION_MAP_SPECIAL_AREA, - REGION_MAP_AQUA_HIDEOUT, - REGION_MAP_MAGMA_HIDEOUT, - REGION_MAP_MIRAGE_TOWER, - REGION_MAP_BIRTH_ISLAND_2, - REGION_MAP_FARAWAY_ISLAND, - REGION_MAP_ARTISAN_CAVE, - REGION_MAP_MARINE_CAVE, - REGION_MAP_UNDERWATER_MARINE_CAVE, - REGION_MAP_TERRA_CAVE, - REGION_MAP_UNDERWATER_TERRA_CAVE, - REGION_MAP_UNDERWATER_UNK1, - REGION_MAP_UNDERWATER_UNK2, - REGION_MAP_DESERT_UNDERPASS, - REGION_MAP_ALTERING_CAVE_2, - REGION_MAP_NAVEL_ROCK2, - REGION_MAP_TRAINER_HILL + MAPSEC_LITTLEROOT_TOWN, + MAPSEC_OLDALE_TOWN, + MAPSEC_DEWFORD_TOWN, + MAPSEC_LAVARIDGE_TOWN, + MAPSEC_FALLARBOR_TOWN, + MAPSEC_VERDANTURF_TOWN, + MAPSEC_PACIFIDLOG_TOWN, + MAPSEC_PETALBURG_CITY, + MAPSEC_SLATEPORT_CITY, + MAPSEC_MAUVILLE_CITY, + MAPSEC_RUSTBORO_CITY, + MAPSEC_FORTREE_CITY, + MAPSEC_LILYCOVE_CITY, + MAPSEC_MOSSDEEP_CITY, + MAPSEC_SOOTOPOLIS_CITY, + MAPSEC_EVER_GRANDE_CITY, + MAPSEC_ROUTE_101, + MAPSEC_ROUTE_102, + MAPSEC_ROUTE_103, + MAPSEC_ROUTE_104, + MAPSEC_ROUTE_105, + MAPSEC_ROUTE_106, + MAPSEC_ROUTE_107, + MAPSEC_ROUTE_108, + MAPSEC_ROUTE_109, + MAPSEC_ROUTE_110, + MAPSEC_ROUTE_111, + MAPSEC_ROUTE_112, + MAPSEC_ROUTE_113, + MAPSEC_ROUTE_114, + MAPSEC_ROUTE_115, + MAPSEC_ROUTE_116, + MAPSEC_ROUTE_117, + MAPSEC_ROUTE_118, + MAPSEC_ROUTE_119, + MAPSEC_ROUTE_120, + MAPSEC_ROUTE_121, + MAPSEC_ROUTE_122, + MAPSEC_ROUTE_123, + MAPSEC_ROUTE_124, + MAPSEC_ROUTE_125, + MAPSEC_ROUTE_126, + MAPSEC_ROUTE_127, + MAPSEC_ROUTE_128, + MAPSEC_ROUTE_129, + MAPSEC_ROUTE_130, + MAPSEC_ROUTE_131, + MAPSEC_ROUTE_132, + MAPSEC_ROUTE_133, + MAPSEC_ROUTE_134, + MAPSEC_UNDERWATER_124, + MAPSEC_UNDERWATER_125, + MAPSEC_UNDERWATER_126, + MAPSEC_UNDERWATER_127, + MAPSEC_UNDERWATER_SOOTOPOLIS, + MAPSEC_GRANITE_CAVE, + MAPSEC_MT_CHIMNEY, + MAPSEC_SAFARI_ZONE, + MAPSEC_BATTLE_FRONTIER, + MAPSEC_PETALBURG_WOODS, + MAPSEC_RUSTURF_TUNNEL, + MAPSEC_ABANDONED_SHIP, + MAPSEC_NEW_MAUVILLE, + MAPSEC_METEOR_FALLS, + MAPSEC_METEOR_FALLS2, + MAPSEC_MT_PYRE, + MAPSEC_AQUA_HIDEOUT_OLD, + MAPSEC_SHOAL_CAVE, + MAPSEC_SEAFLOOR_CAVERN, + MAPSEC_UNDERWATER_128, + MAPSEC_VICTORY_ROAD, + MAPSEC_MIRAGE_ISLAND, + MAPSEC_CAVE_OF_ORIGIN, + MAPSEC_SOUTHERN_ISLAND, + MAPSEC_FIERY_PATH, + MAPSEC_FIERY_PATH2, + MAPSEC_JAGGED_PASS, + MAPSEC_JAGGED_PASS2, + MAPSEC_SEALED_CHAMBER, + MAPSEC_UNDERWATER_SEALED_CHAMBER, + MAPSEC_SCORCHED_SLAB, + MAPSEC_ISLAND_CAVE, + MAPSEC_DESERT_RUINS, + MAPSEC_ANCIENT_TOMB, + MAPSEC_INSIDE_OF_TRUCK, + MAPSEC_SKY_PILLAR, + MAPSEC_SECRET_BASE, + MAPSEC_DYNAMIC, + MAPSEC_PALLET_TOWN, + MAPSEC_VIRIDIAN_CITY, + MAPSEC_PEWTER_CITY, + MAPSEC_CERULEAN_CITY, + MAPSEC_LAVENDER_TOWN, + MAPSEC_VERMILION_CITY, + MAPSEC_CELADON_CITY, + MAPSEC_FUCHSIA_CITY, + MAPSEC_CINNABAR_ISLAND, + MAPSEC_INDIGO_PLATEAU, + MAPSEC_SAFFRON_CITY, + MAPSEC_ROUTE_4, + MAPSEC_ROUTE_10, + MAPSEC_ROUTE_1, + MAPSEC_ROUTE_2, + MAPSEC_ROUTE_3, + MAPSEC_ROUTE_4_2, + MAPSEC_ROUTE_5, + MAPSEC_ROUTE_6, + MAPSEC_ROUTE_7, + MAPSEC_ROUTE_8, + MAPSEC_ROUTE_9, + MAPSEC_ROUTE_10_2, + MAPSEC_ROUTE_11, + MAPSEC_ROUTE_12, + MAPSEC_ROUTE_13, + MAPSEC_ROUTE_14, + MAPSEC_ROUTE_15, + MAPSEC_ROUTE_16, + MAPSEC_ROUTE_17, + MAPSEC_ROUTE_18, + MAPSEC_ROUTE_19, + MAPSEC_ROUTE_20, + MAPSEC_ROUTE_21, + MAPSEC_ROUTE_22, + MAPSEC_ROUTE_23, + MAPSEC_ROUTE_24, + MAPSEC_ROUTE_25, + MAPSEC_VIRIDIAN_FOREST, + MAPSEC_MT_MOON, + MAPSEC_S_S_ANNE, + MAPSEC_UNDERGROUND_PATH, + MAPSEC_UNDERGROUND_PATH_2, + MAPSEC_DIGLETTS_CAVE, + MAPSEC_KANTO_VICTORY_ROAD, + MAPSEC_ROCKET_HIDEOUT, + MAPSEC_SILPH_CO, + MAPSEC_POKEMON_MANSION, + MAPSEC_KANTO_SAFARI_ZONE, + MAPSEC_POKEMON_LEAGUE, + MAPSEC_ROCK_TUNNEL, + MAPSEC_SEAFOAM_ISLANDS, + MAPSEC_POKEMON_TOWER, + MAPSEC_CERULEAN_CAVE, + MAPSEC_POWER_PLANT, + MAPSEC_ONE_ISLAND, + MAPSEC_TWO_ISLAND, + MAPSEC_THREE_ISLAND, + MAPSEC_FOUR_ISLAND, + MAPSEC_FIVE_ISLAND, + MAPSEC_SEVEN_ISLAND, + MAPSEC_SIX_ISLAND, + MAPSEC_KINDLE_ROAD, + MAPSEC_TREASURE_BEACH, + MAPSEC_CAPE_BRINK, + MAPSEC_BOND_BRIDGE, + MAPSEC_THREE_ISLE_PORT, + MAPSEC_SEVII_ISLE_6, + MAPSEC_SEVII_ISLE_7, + MAPSEC_SEVII_ISLE_8, + MAPSEC_SEVII_ISLE_9, + MAPSEC_RESORT_GORGEOUS, + MAPSEC_WATER_LABYRINTH, + MAPSEC_FIVE_ISLE_MEADOW, + MAPSEC_MEMORIAL_PILLAR, + MAPSEC_OUTCAST_ISLAND, + MAPSEC_GREEN_PATH, + MAPSEC_WATER_PATH, + MAPSEC_RUIN_VALLEY, + MAPSEC_TRAINER_TOWER, + MAPSEC_CANYON_ENTRANCE, + MAPSEC_SEVAULT_CANYON, + MAPSEC_TANOBY_RUINS, + MAPSEC_SEVII_ISLE_22, + MAPSEC_SEVII_ISLE_23, + MAPSEC_SEVII_ISLE_24, + MAPSEC_NAVEL_ROCK, + MAPSEC_MT_EMBER, + MAPSEC_BERRY_FOREST, + MAPSEC_ICEFALL_CAVE, + MAPSEC_ROCKET_WAREHOUSE, + MAPSEC_TRAINER_TOWER_2, + MAPSEC_DOTTED_HOLE, + MAPSEC_LOST_CAVE, + MAPSEC_PATTERN_BUSH, + MAPSEC_ALTERING_CAVE, + MAPSEC_TANOBY_CHAMBERS, + MAPSEC_THREE_ISLE_PATH, + MAPSEC_TANOBY_KEY, + MAPSEC_BIRTH_ISLAND, + MAPSEC_MONEAN_CHAMBER, + MAPSEC_LIPTOO_CHAMBER, + MAPSEC_WEEPTH_CHAMBER, + MAPSEC_DILFORD_CHAMBER, + MAPSEC_SCUFIB_CHAMBER, + MAPSEC_RIXY_CHAMBER, + MAPSEC_VIAPOIS_CHAMBER, + MAPSEC_EMBER_SPA, + MAPSEC_SPECIAL_AREA, + MAPSEC_AQUA_HIDEOUT, + MAPSEC_MAGMA_HIDEOUT, + MAPSEC_MIRAGE_TOWER, + MAPSEC_BIRTH_ISLAND_2, + MAPSEC_FARAWAY_ISLAND, + MAPSEC_ARTISAN_CAVE, + MAPSEC_MARINE_CAVE, + MAPSEC_UNDERWATER_MARINE_CAVE, + MAPSEC_TERRA_CAVE, + MAPSEC_UNDERWATER_TERRA_CAVE, + MAPSEC_UNDERWATER_UNK1, + MAPSEC_UNDERWATER_129, + MAPSEC_DESERT_UNDERPASS, + MAPSEC_ALTERING_CAVE_2, + MAPSEC_NAVEL_ROCK2, + MAPSEC_TRAINER_HILL, + MAPSEC_NONE +}; + +enum +{ + INPUT_EVENT_NONE, + INPUT_EVENT_MOVE_START, + INPUT_EVENT_MOVE_CONT, + INPUT_EVENT_MOVE_END, + INPUT_EVENT_A_BUTTON, + INPUT_EVENT_B_BUTTON, }; +enum { + MAPSECTYPE_NONE, + MAPSECTYPE_PLAIN, + MAPSECTYPE_CITY_CANFLY, + MAPSECTYPE_CITY_CANTFLY, + MAPSECTYPE_BATTLE_FRONTIER +}; + +struct RegionMap { + /*0x000*/ u16 mapSecId; + /*0x002*/ u8 iconDrawType; + /*0x003*/ u8 posWithinMapSec; + /*0x004*/ u8 mapSecName[0x14]; + /*0x018*/ u8 (*inputCallback)(void); + /*0x01c*/ struct Sprite *cursorSprite; + /*0x020*/ struct Sprite *playerIconSprite; + /*0x024*/ s32 bg2x; + /*0x028*/ s32 bg2y; + /*0x02c*/ u32 bg2pa; + /*0x034*/ u32 bg2pc; + /*0x030*/ u32 bg2pb; + /*0x038*/ u32 bg2pd; + /*0x03c*/ s32 unk_03c; + /*0x040*/ s32 unk_040; + /*0x044*/ s32 unk_044; + /*0x048*/ s32 unk_048; + /*0x04c*/ s32 unk_04c; + /*0x050*/ s32 unk_050; + /*0x054*/ u16 cursorPosX; + /*0x056*/ u16 cursorPosY; + /*0x058*/ u16 cursorTileTag; + /*0x05a*/ u16 cursorPaletteTag; + /*0x05c*/ s16 scrollX; + /*0x05e*/ s16 scrollY; + /*0x060*/ s16 unk_060; + /*0x062*/ s16 unk_062; + /*0x064*/ u16 zoomedCursorPosX; + /*0x066*/ u16 zoomedCursorPosY; + /*0x068*/ s16 zoomedCursorDeltaY; + /*0x06a*/ s16 zoomedCursorDeltaX; + /*0x06c*/ u16 zoomedCursorMovementFrameCounter; + /*0x06e*/ u16 unk_06e; + /*0x070*/ u16 playerIconTileTag; + /*0x072*/ u16 playerIconPaletteTag; + /*0x074*/ u16 playerIconSpritePosX; + /*0x076*/ u16 playerIconSpritePosY; + /*0x078*/ bool8 zoomed; + /*0x079*/ u8 initStep; + /*0x07a*/ s8 cursorMovementFrameCounter; + /*0x07b*/ s8 cursorDeltaX; + /*0x07c*/ s8 cursorDeltaY; + /*0x07d*/ bool8 needUpdateVideoRegs; + /*0x07e*/ bool8 blinkPlayerIcon; + /*0x07f*/ bool8 playerIsInCave; + /*0x080*/ u8 bgNum; + /*0x081*/ u8 charBaseIdx; + /*0x082*/ u8 mapBaseIdx; + /*0x083*/ bool8 bgManaged; + /*0x084*/ u8 filler_084[0x100]; + /*0x184*/ u8 cursorSmallImage[0x100]; + /*0x284*/ u8 cursorLargeImage[0x600]; +}; // size = 0x884 + // Exported RAM declarations // Exported ROM declarations -void GetMapName(u8 *, u16, u16); +void sub_8122CF8(struct RegionMap *regionMap, struct BgTemplate *template, bool8 zoomed); +bool8 sub_8122DB0(void); +void UpdateRegionMapVideoRegs(void); +void InitRegionMap(struct RegionMap *regionMap, u8 argument); +u8 sub_81230AC(void); +bool8 sub_8123514(void); +void FreeRegionMapIconResources(void); +u16 GetRegionMapSectionIdAt(u16 x, u16 y); +void CreateRegionMapPlayerIcon(u16 x, u16 y); +void CreateRegionMapCursor(u16 tileTag, u16 paletteTag); +u8 *GetMapName(u8 *, u16, u16); +bool32 sub_8124668(u8 mapSecId); #endif //GUARD_REGION_MAP_H diff --git a/include/rom6.h b/include/rom6.h index a6aab998c..b4a972794 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -3,6 +3,7 @@ void sub_81357FC(u8, void(void)); u8 GetLeadMonIndex(void); +u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y); void sub_813BADC(bool8); #endif //GUARD_ROM6_H diff --git a/include/secret_base.h b/include/secret_base.h index 14defff26..630a36773 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -8,5 +8,6 @@ // Exported ROM declarations void sub_80E9578(void); void sub_80E980C(void); +u8 *GetSecretBaseMapName(u8 *dest); #endif //GUARD_SECRET_BASE_H diff --git a/include/strings.h b/include/strings.h index fcdb1eca4..08e2b4bba 100644 --- a/include/strings.h +++ b/include/strings.h @@ -70,6 +70,13 @@ extern const u8 gText_Cushion[]; extern const u8 gText_Decorate[]; extern const u8 gText_PutAway[]; extern const u8 gText_Toss2[]; +extern const u8 gText_Hoenn[]; +extern const u8 gText_Ferry[]; +extern const u8 gText_SecretBase[]; +extern const u8 gText_Hideout[]; +extern const u8 gText_FlyToWhere[]; +extern const u8 gText_PokemonLeague[]; +extern const u8 gText_PokemonCenter[]; extern const u8 gText_ApostropheSBase[]; extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; diff --git a/include/vars.h b/include/vars.h index c097faff7..f8057d4b5 100644 --- a/include/vars.h +++ b/include/vars.h @@ -29,13 +29,14 @@ #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_0x4037 0x4037 #define VAR_DAYS 0x4040 #define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_STORAGE_UNKNOWN 0x4036 #define VAR_POKELOT_PRIZE 0x4045 #define VAR_NATIONAL_DEX 0x4046 -#define VAR_SEEDOT_SIZE_RECORD 0x4047 +#define VAR_SEEDOT_SIZE_RECORD 0x4047 #define VAR_ASH_GATHER_COUNT 0x4048 #define VAR_BIRCH_STATE 0x4049 #define VAR_CRUISE_STEP_COUNT 0x404A diff --git a/label_pointers.py b/label_pointers.py new file mode 100644 index 000000000..765479840 --- /dev/null +++ b/label_pointers.py @@ -0,0 +1,93 @@ +import os +import re + +path = 'data' + +asm_filenames = [] +labels = {} +baseroms = [] +new_baseroms = {} + +# get data asm filenames +for (dirpath, dirnames, filenames) in os.walk(path): + for filename in filenames: + ext = os.path.splitext(filename)[1] + if ext == '.s' or ext == '.inc': + asm_filenames.append(os.path.join(dirpath, filename)) + +# get existing labels +with open('pokeemerald.map') as map_file: + for line in map_file: + m = re.match(r'^ +0x([0-9a-f]{8,8}) +([A-Za-z_][A-Za-z_0-9]*)$', line) + if m: + addr = int(m.group(1), 16) + sym = m.group(2) + labels[addr] = sym + if addr >= 0x8000000 and addr < 0x81DB67C: + labels[addr+1] = sym + +# get baseroms +for filename in asm_filenames: + with open(filename,encoding='utf8') as asm_file: + for line in asm_file: + m = re.match(r'^\s*\.incbin\s+"baserom.gba"\s*,\s*(0x[0-9a-fA-F]+|[0-9]+)\s*,\s*(0x[0-9a-fA-F]+|[0-9]+)', line) + if m: + file_offset = int(m.group(1), 0) + size = int(m.group(2), 0) + baseroms.append((file_offset, size)) + +# replace addresses with labels +for filename in asm_filenames: + with open(filename,encoding='utf8') as asm_file: + lines = asm_file.readlines() + with open(filename,'w',encoding='utf8',newline='\n') as asm_file: + for line in lines: + label = '' + m = re.match(r'^\s*.4byte\s+0x([0-9a-fA-F]+)\s*$', line) + if m: + addr = int(m.group(1), 16) + if addr in labels: + label = labels[addr] + else: + for (file_offset, size) in baseroms: + begin = 0x8000000 + file_offset + end = begin + size + if addr >= begin and addr < end: + label = 'gUnknown_{:08X}'.format(addr) + if file_offset not in new_baseroms: + new_baseroms[file_offset] = [file_offset] + new_file_offset = addr - 0x8000000 + if new_file_offset not in new_baseroms[file_offset]: + new_baseroms[file_offset].append(new_file_offset) + break + if label != '': + asm_file.write('\t.4byte {}\n'.format(label)) + else: + asm_file.write(line) + +# split baseroms +for filename in asm_filenames: + with open(filename,encoding='utf8') as asm_file: + lines = asm_file.readlines() + with open(filename,'w',encoding='utf8',newline='\n') as asm_file: + for line in lines: + m = re.match(r'^\s*\.incbin\s+"baserom.gba"\s*,\s*(0x[0-9a-fA-F]+|[0-9]+)\s*,\s*(0x[0-9a-fA-F]+|[0-9]+)', line) + if m: + file_offset = int(m.group(1), 0) + size = int(m.group(2), 0) + end = file_offset + size + if file_offset in new_baseroms: + new_offsets = new_baseroms[file_offset] + new_offsets.sort() + for index, offset in enumerate(new_offsets[:-1]): + next_offset = new_offsets[index + 1] + cur_size = next_offset - offset + asm_file.write('gUnknown_{0:08X}:: @ {0:X}\n'.format(0x8000000 + offset)) + asm_file.write('\t.incbin "baserom.gba", 0x{:x}, 0x{:x}\n\n'.format(offset, cur_size)) + last_offset = new_offsets[-1] + asm_file.write('gUnknown_{0:08X}:: @ {0:X}\n'.format(0x8000000 + last_offset)) + asm_file.write('\t.incbin "baserom.gba", 0x{:x}, 0x{:x}\n\n'.format(last_offset, end - last_offset)) + else: + asm_file.write(line) + else: + asm_file.write(line) diff --git a/ld_script.txt b/ld_script.txt index 218f6157b..2c958ea5a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -130,6 +130,7 @@ SECTIONS { asm/option_menu.o(.text); asm/pokedex.o(.text); asm/trainer_card.o(.text); + src/pokemon_storage_system.o(.text); asm/pokemon_storage_system.o(.text); asm/pokemon_icon.o(.text); asm/script_movement.o(.text); @@ -168,8 +169,8 @@ SECTIONS { src/mail.o(.text); asm/menu_helpers.o(.text); asm/dewford_trend.o(.text); - asm/heal_location.o(.text); - asm/region_map.o(.text); + src/heal_location.o(.text); + src/region_map.o(.text); asm/cute_sketch.o(.text); src/decoration.o(.text); asm/slot_machine.o(.text); @@ -213,7 +214,7 @@ SECTIONS { asm/player_pc.o(.text); asm/intro.o(.text); src/reset_save_heap.o(.text); - asm/field_region_map.o(.text); + src/field_region_map.o(.text); asm/battle_anim_8170478.o(.text); src/hall_of_fame.o(.text); asm/credits.o(.text); @@ -415,8 +416,8 @@ SECTIONS { data/mauville_old_man.o(.rodata); src/mail.o(.rodata); data/menu_helpers.o(.rodata); - data/heal_location.o(.rodata); - data/region_map.o(.rodata); + src/heal_location.o(.rodata); + src/region_map.o(.rodata); data/cute_sketch.o(.rodata); src/decoration.o(.rodata); data/slot_machine.o(.rodata); @@ -440,7 +441,7 @@ SECTIONS { src/battle_controller_wally.o(.rodata); data/player_pc.o(.rodata); data/intro.o(.rodata); - data/field_region_map.o(.rodata); + src/field_region_map.o(.rodata); data/battle_anim_8170478.o(.rodata); src/hall_of_fame.o(.rodata); data/credits.o(.rodata); diff --git a/src/decoration.c b/src/decoration.c index 37cabf652..f622662d3 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1603,7 +1603,7 @@ void sub_81289F0(u8 taskId) ScriptContext1_SetupScript(EventScript_275D1F); } gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2; - if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE) + if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) { TV_PutSecretBaseVisitOnTheAir(); } @@ -2222,7 +2222,7 @@ void sub_81298EC(u8 taskId) { StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC); DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64); - if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE) + if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) { TV_PutSecretBaseVisitOnTheAir(); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 589e8901d..13c088883 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -75,7 +75,7 @@ extern void CreateYesNoMenu(const struct WindowTemplate*, u16, u8, u8); extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback); extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str); extern u16 sub_80D22D0(void); -extern u8 sub_80C7050(u8); +extern u8 CountPartyAliveNonEggMonsExcept(u8); static void Task_EggHatch(u8 taskID); static void CB2_EggHatch_0(void); @@ -888,6 +888,6 @@ u8 GetEggStepsToSubtract(void) u16 sub_80722E0(void) { u16 value = sub_80D22D0(); - value += sub_80C7050(6); + value += CountPartyAliveNonEggMonsExcept(6); return value; } diff --git a/src/field_region_map.c b/src/field_region_map.c new file mode 100644 index 000000000..b7d677c90 --- /dev/null +++ b/src/field_region_map.c @@ -0,0 +1,193 @@ + +// Includes +#include "global.h" +#include "main.h" +#include "malloc.h" +#include "gpu_regs.h" +#include "bg.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "palette.h" +#include "menu.h" +#include "strings.h" +#include "international_string_util.h" +#include "region_map.h" + +// Static type declarations + +// Static RAM declarations + +static EWRAM_DATA struct { + MainCallback callback; + u32 filler_004; + struct RegionMap regionMap; + u16 state; +} *sFieldRegionMapHandler = NULL; + +// Static ROM declarations + +static void MCB2_InitRegionMapRegisters(void); +static void VBCB_FieldUpdateRegionMap(void); +static void MCB2_FieldUpdateRegionMap(void); +static void FieldUpdateRegionMap(void); +static void PrintRegionMapSecName(void); + +// .rodata + +static const struct BgTemplate gUnknown_085E5068[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 2, + .paletteMode = 1, + .priority = 2, + .baseTile = 0 + } +}; + +static const struct WindowTemplate gUnknown_085E5070[] = { + { 0, 17, 17, 12, 2, 15, 0x0001 }, + { 0, 22, 1, 7, 2, 15, 0x0019 }, + DUMMY_WIN_TEMPLATE +}; + +// .text + +void sub_817018C(MainCallback callback) +{ + SetVBlankCallback(NULL); + sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler)); + sFieldRegionMapHandler->state = 0; + sFieldRegionMapHandler->callback = callback; + SetMainCallback2(MCB2_InitRegionMapRegisters); +} + +static void MCB2_InitRegionMapRegisters(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, gUnknown_085E5068, 2); + InitWindows(gUnknown_085E5070); + DeactivateAllTextPrinters(); + sub_809882C(0, 0x27, 0xd0); + clear_scheduled_bg_copies_to_vram(); + SetMainCallback2(MCB2_FieldUpdateRegionMap); + SetVBlankCallback(VBCB_FieldUpdateRegionMap); +} + +static void VBCB_FieldUpdateRegionMap(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void MCB2_FieldUpdateRegionMap(void) +{ + FieldUpdateRegionMap(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + do_scheduled_bg_tilemap_copies_to_vram(); +} + +static void FieldUpdateRegionMap(void) +{ + u8 offset; + + switch (sFieldRegionMapHandler->state) + { + case 0: + InitRegionMap(&sFieldRegionMapHandler->regionMap, 0); + CreateRegionMapPlayerIcon(0, 0); + CreateRegionMapCursor(1, 1); + sFieldRegionMapHandler->state++; + break; + case 1: + SetWindowBorderStyle(1, 0, 0x27, 0xd); + offset = GetStringCenterAlignXOffset(1, gText_Hoenn, 0x38); + PrintTextOnWindow(1, 1, gText_Hoenn, offset, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + SetWindowBorderStyle(0, 0, 0x27, 0xd); + PrintRegionMapSecName(); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + sFieldRegionMapHandler->state++; + break; + case 2: + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(2); + sFieldRegionMapHandler->state++; + break; + case 3: + if (!gPaletteFade.active) + { + sFieldRegionMapHandler->state++; + } + break; + case 4: + switch (sub_81230AC()) + { + case INPUT_EVENT_MOVE_END: + PrintRegionMapSecName(); + break; + case INPUT_EVENT_A_BUTTON: + case INPUT_EVENT_B_BUTTON: + sFieldRegionMapHandler->state++; + break; + } + break; + case 5: + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + sFieldRegionMapHandler->state++; + break; + case 6: + if (!gPaletteFade.active) + { + FreeRegionMapIconResources(); + SetMainCallback2(sFieldRegionMapHandler->callback); + if (sFieldRegionMapHandler != NULL) + { + free(sFieldRegionMapHandler); + sFieldRegionMapHandler = NULL; + } + FreeAllWindowBuffers(); + } + break; + } +} + +static void PrintRegionMapSecName(void) +{ + if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) + { + FillWindowPixelBuffer(0, 0x11); + PrintTextOnWindow(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + } + else + { + FillWindowPixelBuffer(0, 0x11); + CopyWindowToVram(0, 3); + } +} diff --git a/src/heal_location.c b/src/heal_location.c new file mode 100644 index 000000000..efc534170 --- /dev/null +++ b/src/heal_location.c @@ -0,0 +1,83 @@ + +// Includes +#include "global.h" +#include "map_constants.h" +#include "heal_location.h" + +#define HEAL_LOCATION(map, x, y) {MAP_GROUP_##map, MAP_ID_##map, x, y} + +// Static type declarations + +// Static RAM declarations + +// Static ROM declarations + +// .rodata + +static const struct HealLocation sHealLocations[] = { + HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2), + HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2), + HEAL_LOCATION(PETALBURG_CITY, 20, 17), + HEAL_LOCATION(SLATEPORT_CITY, 19, 20), + HEAL_LOCATION(MAUVILLE_CITY, 22, 6), + HEAL_LOCATION(RUSTBORO_CITY, 16, 39), + HEAL_LOCATION(FORTREE_CITY, 5, 7), + HEAL_LOCATION(LILYCOVE_CITY, 24, 15), + HEAL_LOCATION(MOSSDEEP_CITY, 28, 17), + HEAL_LOCATION(SOOTOPOLIS_CITY, 43, 32), + HEAL_LOCATION(EVER_GRANDE_CITY, 27, 49), + HEAL_LOCATION(LITTLEROOT_TOWN, 5, 9), + HEAL_LOCATION(LITTLEROOT_TOWN, 14, 9), + HEAL_LOCATION(OLDALE_TOWN, 6, 17), + HEAL_LOCATION(DEWFORD_TOWN, 2, 11), + HEAL_LOCATION(LAVARIDGE_TOWN, 9, 7), + HEAL_LOCATION(FALLARBOR_TOWN, 14, 8), + HEAL_LOCATION(VERDANTURF_TOWN, 16, 4), + HEAL_LOCATION(PACIFIDLOG_TOWN, 8, 16), + HEAL_LOCATION(EVER_GRANDE_CITY, 18, 6), + HEAL_LOCATION(SOUTHERN_ISLAND_EXTERIOR, 15, 20), + HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52) +}; + +#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(sHealLocations)) + +// .text + +static u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +{ + u32 i; + + for (i = 0; i < NUM_HEAL_LOCATIONS; i++) + { + if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum) + { + return i + 1; + } + } + return 0; +} + +const struct HealLocation *GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +{ + u32 loc; + + loc = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum); + if (loc == 0) + { + return NULL; + } + return &sHealLocations[loc - 1]; +} + +const struct HealLocation *GetHealLocationPointer(u32 loc) +{ + if (loc == 0) + { + return NULL; + } + if (loc > NUM_HEAL_LOCATIONS) + { + return NULL; + } + return &sHealLocations[loc - 1]; +} diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 3e409244c..f82a52d38 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,15 +1,122 @@ - -// Includes #include "global.h" +#include "pokemon_storage_system.h" +#include "pokemon.h" +#include "species.h" +#include "event_data.h" +#include "string_util.h" +#include "text.h" -// Static type declarations +IWRAM_DATA u8 gUnknown_03000F78[0x188]; -// Static RAM declarations +u8 CountMonsInBox(u8 boxId) +{ + u16 i, count; -IWRAM_DATA u8 gUnknown_03000F78[0x188]; + for (i = 0, count = 0; i < IN_BOX_COUNT; i++) + { + if (GetBoxMonDataFromAnyBox(boxId, i, MON_DATA_SPECIES) != SPECIES_NONE) + count++; + } + + return count; +} + +s16 GetFirstFreeBoxSpot(u8 boxId) +{ + u16 i; + + for (i = 0; i < IN_BOX_COUNT; i++) + { + if (GetBoxMonDataFromAnyBox(boxId, i, MON_DATA_SPECIES) == SPECIES_NONE) + return i; + } + + return -1; // all spots are taken +} + +u8 CountPartyNonEggMons(void) +{ + u16 i, count; + + for (i = 0, count = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + { + count++; + } + } + + return count; +} + +u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore) +{ + u16 i, count; + + for (i = 0, count = 0; i < PARTY_SIZE; i++) + { + if (i != slotToIgnore + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) + { + count++; + } + } + + return count; +} + +u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void) +{ + return CountPartyAliveNonEggMonsExcept(gSpecialVar_0x8004); +} + +u8 CountPartyMons(void) +{ + u16 i, count; + + for (i = 0, count = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE) + { + count++; + } + } + + return count; +} + +static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n) +{ + u8 *str; + + for (str = StringCopy(dst, src); str < dst + n; str++) + *str = CHAR_SPACE; + + *str = EOS; + return str; +} -// Static ROM declarations +/* can't match +static void sub_80C7128(u16 *dst, u16 dstToAdd, u16 dstToMul, const u16 *src, u16 srcToAdd, u16 srcToMul, u32 size, u16 count, u16 srcBy) +{ + u16 i; -// .rodata + size <<= 0x11; + dst += (dstToMul * 32) + dstToAdd; + src += (srcToMul * srcBy) + srcToAdd; -// .text + i = 0; + if (i < count) + { + size >>= 1; + for (i = 0; i < count; i++) + { + CpuSet(src, dst, size >> 0x10); + dst += 0x20; + src += srcBy; + } + } +}*/ diff --git a/src/region_map.c b/src/region_map.c new file mode 100644 index 000000000..da96475c0 --- /dev/null +++ b/src/region_map.c @@ -0,0 +1,1949 @@ + +// Includes +#include "global.h" +#include "main.h" +#include "menu.h" +#include "malloc.h" +#include "gpu_regs.h" +#include "palette.h" +#include "party_menu.h" +#include "trig.h" +#include "map_constants.h" +#include "overworld.h" +#include "flags.h" +#include "event_data.h" +#include "rom6.h" +#include "secret_base.h" +#include "string_util.h" +#include "international_string_util.h" +#include "strings.h" +#include "text.h" +#include "text_window.h" +#include "songs.h" +#include "m4a.h" +#include "field_effect.h" +#include "region_map.h" + +#define MAP_WIDTH 28 +#define MAP_HEIGHT 15 +#define MAPCURSOR_X_MIN 1 +#define MAPCURSOR_Y_MIN 2 +#define MAPCURSOR_X_MAX (MAPCURSOR_X_MIN + MAP_WIDTH - 1) +#define MAPCURSOR_Y_MAX (MAPCURSOR_Y_MIN + MAP_HEIGHT - 1) + +// Static type declarations + +struct RegionMapLocation +{ + u8 x; + u8 y; + u8 width; + u8 height; + const u8 *name; +}; + +// Static RAM declarations + +static EWRAM_DATA struct RegionMap *gRegionMap = NULL; +static EWRAM_DATA struct { + /*0x000*/ void (*unk_000)(void); + /*0x004*/ u16 unk_004; + /*0x006*/ u16 mapSecId; + /*0x008*/ struct RegionMap regionMap; + /*0x88c*/ u8 unk_88c[0x1c0]; + /*0xa4c*/ u8 unk_a4c[0x26]; + /*0xa72*/ bool8 unk_a72; +} *gUnknown_0203A148 = NULL; // a74 + +static bool32 gUnknown_03001180; +static bool32 gUnknown_03001184; + +// Static ROM declarations + +static u8 ProcessRegionMapInput_Full(void); +static u8 MoveRegionMapCursor_Full(void); +static u8 ProcessRegionMapInput_Zoomed(void); +static u8 MoveRegionMapCursor_Zoomed(void); +static void CalcZoomScrollParams(s16 scrollX, s16 scrollY, s16 c, s16 d, u16 e, u16 f, u8 rotation); +static u16 GetRegionMapSectionIdAt_Internal(u16 x, u16 y); +static void RegionMap_SetBG2XAndBG2Y(s16 x, s16 y); +static void RegionMap_InitializeStateBasedOnPlayerLocation(void); +static void RegionMap_InitializeStateBasedOnSSTidalLocation(void); +static u8 get_flagnr_blue_points(u16 mapSecId); +static u16 CorrectSpecialMapSecId_Internal(u16 mapSecId); +static u16 RegionMap_GetTerraCaveMapSecId(void); +static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y); +static bool32 RegionMap_IsPlayerInCave(u8 mapSecId); +static void RegionMap_GetPositionOfCursorWithinMapSection(void); +static bool8 RegionMap_IsMapSecIdInNextRow(u16 y); +static void SpriteCallback_CursorFull(struct Sprite *sprite); +static void FreeRegionMapCursorSprite(void); +static void HideRegionMapPlayerIcon(void); +static void UnhideRegionMapPlayerIcon(void); +static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite); +static void RegionMapPlayerIconSpriteCallback_Full(struct Sprite *sprite); +static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite); +static void sub_81248C0(void); +static void sub_81248D4(void); +static void sub_81248F4(void callback(void)); +static void sub_8124904(void); +static void sub_8124A70(void); +static void sub_8124AD4(void); +static void sub_8124BE4(void); +static void sub_8124CBC(struct Sprite *sprite); +static void sub_8124D14(void); +static void sub_8124D64(void); +static void sub_8124E0C(void); + +// .rodata + +static const u16 sRegionMapCursorPal[] = INCBIN_U16("graphics/pokenav/cursor.gbapal"); +static const u8 sRegionMapCursorSmallGfxLZ[] = INCBIN_U8("graphics/pokenav/cursor_small.4bpp.lz"); +static const u8 sRegionMapCursorLargeGfxLZ[] = INCBIN_U8("graphics/pokenav/cursor_large.4bpp.lz"); +static const u16 sRegionMapBkgnd_Pal[] = INCBIN_U16("graphics/pokenav/region_map.gbapal"); +static const u8 sRegionMapBkgnd_GfxLZ[] = INCBIN_U8("graphics/pokenav/region_map.8bpp.lz"); +static const u8 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U8("graphics/pokenav/region_map_map.bin.lz"); +static const u16 sRegionMapPlayerIcon_BrendanPal[] = INCBIN_U16("graphics/pokenav/brendan_icon.gbapal"); +static const u8 sRegionMapPlayerIcon_BrendanGfx[] = INCBIN_U8("graphics/pokenav/brendan_icon.4bpp"); +static const u16 sRegionMapPlayerIcon_MayPal[] = INCBIN_U16("graphics/pokenav/may_icon.gbapal"); +static const u8 sRegionMapPlayerIcon_MayGfx[] = INCBIN_U8("graphics/pokenav/may_icon.4bpp"); + +static const u8 sRegionMap_MapSectionLayout[] = INCBIN_U8("graphics/pokenav/region_map_section_layout.bin"); + +#include "data/region_map/region_map_entries.h" + +static const u16 sRegionMap_SpecialPlaceLocations[][2] = { + {MAPSEC_UNDERWATER_TERRA_CAVE, MAPSEC_ROUTE_105}, + {MAPSEC_UNDERWATER_124, MAPSEC_ROUTE_124}, + {MAPSEC_UNDERWATER_UNK1, MAPSEC_ROUTE_129}, + {MAPSEC_UNDERWATER_125, MAPSEC_ROUTE_126}, + {MAPSEC_UNDERWATER_126, MAPSEC_ROUTE_127}, + {MAPSEC_UNDERWATER_127, MAPSEC_ROUTE_128}, + {MAPSEC_UNDERWATER_129, MAPSEC_ROUTE_129}, + {MAPSEC_UNDERWATER_SOOTOPOLIS, MAPSEC_SOOTOPOLIS_CITY}, + {MAPSEC_UNDERWATER_128, MAPSEC_ROUTE_128}, + {MAPSEC_AQUA_HIDEOUT, MAPSEC_LILYCOVE_CITY}, + {MAPSEC_AQUA_HIDEOUT_OLD, MAPSEC_LILYCOVE_CITY}, + {MAPSEC_MAGMA_HIDEOUT, MAPSEC_ROUTE_112}, + {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_MIRAGE_TOWER, MAPSEC_ROUTE_111}, + {MAPSEC_TRAINER_HILL, MAPSEC_ROUTE_111}, + {MAPSEC_DESERT_UNDERPASS, MAPSEC_ROUTE_114}, + {MAPSEC_ALTERING_CAVE_2, MAPSEC_ROUTE_103}, + {MAPSEC_ARTISAN_CAVE, MAPSEC_ROUTE_103}, + {MAPSEC_ABANDONED_SHIP, MAPSEC_ROUTE_108}, + {MAPSEC_NONE, MAPSEC_NONE} +}; + +static const u16 sRegionMap_MarineCaveMapSecIds[] = { + MAPSEC_MARINE_CAVE, + MAPSEC_UNDERWATER_MARINE_CAVE, + MAPSEC_UNDERWATER_MARINE_CAVE +}; + +static const u16 sTerraCaveMapSectionIds[] = { + MAPSEC_ROUTE_114, + MAPSEC_ROUTE_114, + MAPSEC_ROUTE_115, + MAPSEC_ROUTE_115, + MAPSEC_ROUTE_116, + MAPSEC_ROUTE_116, + MAPSEC_ROUTE_118, + MAPSEC_ROUTE_118, + MAPSEC_ROUTE_105, + MAPSEC_ROUTE_105, + MAPSEC_ROUTE_125, + MAPSEC_ROUTE_125, + MAPSEC_ROUTE_127, + MAPSEC_ROUTE_127, + MAPSEC_ROUTE_129, + MAPSEC_ROUTE_129 +}; + +static const struct UCoords16 sTerraCaveLocationCoords[] = { + {0x00, 0x0a}, + {0x00, 0x0c}, + {0x18, 0x03}, + {0x19, 0x04}, + {0x19, 0x06}, + {0x19, 0x07}, + {0x18, 0x0a}, + {0x18, 0x0a} +}; + +static const u8 sRegionMap_MapSecAquaHideoutOld[] = { + MAPSEC_AQUA_HIDEOUT_OLD +}; + +static const struct OamData sRegionMapCursorOam = { + .size = 1, .priority = 1 +}; + +static const union AnimCmd sRegionMapCursorAnim1[] = { + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sRegionMapCursorAnim2[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_FRAME(16, 10), + ANIMCMD_FRAME(32, 10), + ANIMCMD_FRAME(16, 10), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sRegionMapCursorAnimTable[] = { + sRegionMapCursorAnim1, + sRegionMapCursorAnim2 +}; + +static const struct SpritePalette sRegionMapCursorSpritePalette = { sRegionMapCursorPal, 0 }; + +static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = { + 0, + 0, + &sRegionMapCursorOam, + sRegionMapCursorAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallback_CursorFull +}; + +static const struct OamData sRegionMapPlayerIconOam = { + .size = 1, .priority = 2 +}; + +static const union AnimCmd sRegionMapPlayerIconAnim1[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = { + sRegionMapPlayerIconAnim1 +}; + +static const u8 sRegionMapEventSectionIds[] = { + MAPSEC_BIRTH_ISLAND_2, + MAPSEC_FARAWAY_ISLAND, + MAPSEC_NAVEL_ROCK2 +}; + +static const u16 sRegionMapFramePal[] = INCBIN_U16("graphics/pokenav/map_frame.gbapal"); + +static const u8 sRegionMapFrameGfxLZ[] = INCBIN_U8("graphics/pokenav/map_frame.4bpp.lz"); + +static const u8 sRegionMapFrameTilemapLZ[] = INCBIN_U8("graphics/pokenav/map_frame.bin.lz"); + +static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_icons.gbapal"); + +static const u8 gUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz"); + +static const u8 gUnknown_085A1E3C[][3] = { + {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 1}, + {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 14}, + {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 15}, + {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 16}, + {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 17}, + {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 18}, + {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 19}, + {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 3}, + {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 4}, + {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 5}, + {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 6}, + {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 7}, + {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 8}, + {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 9}, + {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 10}, + {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 11}, + {MAP_GROUP_ROUTE101, MAP_ID_ROUTE101, 0}, + {MAP_GROUP_ROUTE102, MAP_ID_ROUTE102, 0}, + {MAP_GROUP_ROUTE103, MAP_ID_ROUTE103, 0}, + {MAP_GROUP_ROUTE104, MAP_ID_ROUTE104, 0}, + {MAP_GROUP_ROUTE105, MAP_ID_ROUTE105, 0}, + {MAP_GROUP_ROUTE106, MAP_ID_ROUTE106, 0}, + {MAP_GROUP_ROUTE107, MAP_ID_ROUTE107, 0}, + {MAP_GROUP_ROUTE108, MAP_ID_ROUTE108, 0}, + {MAP_GROUP_ROUTE109, MAP_ID_ROUTE109, 0}, + {MAP_GROUP_ROUTE110, MAP_ID_ROUTE110, 0}, + {MAP_GROUP_ROUTE111, MAP_ID_ROUTE111, 0}, + {MAP_GROUP_ROUTE112, MAP_ID_ROUTE112, 0}, + {MAP_GROUP_ROUTE113, MAP_ID_ROUTE113, 0}, + {MAP_GROUP_ROUTE114, MAP_ID_ROUTE114, 0}, + {MAP_GROUP_ROUTE115, MAP_ID_ROUTE115, 0}, + {MAP_GROUP_ROUTE116, MAP_ID_ROUTE116, 0}, + {MAP_GROUP_ROUTE117, MAP_ID_ROUTE117, 0}, + {MAP_GROUP_ROUTE118, MAP_ID_ROUTE118, 0}, + {MAP_GROUP_ROUTE119, MAP_ID_ROUTE119, 0}, + {MAP_GROUP_ROUTE120, MAP_ID_ROUTE120, 0}, + {MAP_GROUP_ROUTE121, MAP_ID_ROUTE121, 0}, + {MAP_GROUP_ROUTE122, MAP_ID_ROUTE122, 0}, + {MAP_GROUP_ROUTE123, MAP_ID_ROUTE123, 0}, + {MAP_GROUP_ROUTE124, MAP_ID_ROUTE124, 0}, + {MAP_GROUP_ROUTE125, MAP_ID_ROUTE125, 0}, + {MAP_GROUP_ROUTE126, MAP_ID_ROUTE126, 0}, + {MAP_GROUP_ROUTE127, MAP_ID_ROUTE127, 0}, + {MAP_GROUP_ROUTE128, MAP_ID_ROUTE128, 0}, + {MAP_GROUP_ROUTE129, MAP_ID_ROUTE129, 0}, + {MAP_GROUP_ROUTE130, MAP_ID_ROUTE130, 0}, + {MAP_GROUP_ROUTE131, MAP_ID_ROUTE131, 0}, + {MAP_GROUP_ROUTE132, MAP_ID_ROUTE132, 0}, + {MAP_GROUP_ROUTE133, MAP_ID_ROUTE133, 0}, + {MAP_GROUP_ROUTE134, MAP_ID_ROUTE134, 0} +}; + +static const u8 *const gUnknown_085A1ED4[] = { + gText_PokemonLeague, + gText_PokemonCenter +}; + +static const struct { + const u8 *const *name; + u16 mapSecId; + u16 flag; +} gUnknown_085A1EDC[] = { + gUnknown_085A1ED4, + MAPSEC_EVER_GRANDE_CITY, + FLAG_SYS_POKEMON_LEAGUE_FLY +}; + +static const struct BgTemplate gUnknown_085A1EE4[] = { + { .bg = 0, .charBaseIndex = 0, .mapBaseIndex = 31, .screenSize = 0, .paletteMode = 0, .priority = 0 }, + { .bg = 1, .charBaseIndex = 3, .mapBaseIndex = 30, .screenSize = 0, .paletteMode = 0, .priority = 1 }, + { .bg = 2, .charBaseIndex = 2, .mapBaseIndex = 28, .screenSize = 2, .paletteMode = 1, .priority = 2 } +}; + +static const struct WindowTemplate gUnknown_085A1EF0[] = { + { 0, 17, 17, 12, 2, 15, 0x01 }, + { 0, 17, 15, 12, 4, 15, 0x19 }, + { 0, 1, 18, 14, 2, 15, 0x49 }, + DUMMY_WIN_TEMPLATE +}; + +static const struct SpritePalette gUnknown_085A1F10 = { + Unknown_085A1D48, 2 +}; + +static const u16 gUnknown_085A1F18[][2] = { + {FLAG_UNLOCK_BATTLE_FRONTIER, MAPSEC_BATTLE_FRONTIER}, + {-1, MAPSEC_NONE} +}; + +static const struct OamData gOamData_085A1F20 = { + .priority = 2 +}; + +static const union AnimCmd gUnknown_085A1F28[] = { + ANIMCMD_FRAME( 0, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F30[] = { + ANIMCMD_FRAME( 1, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F38[] = { + ANIMCMD_FRAME( 3, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F40[] = { + ANIMCMD_FRAME( 5, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F48[] = { + ANIMCMD_FRAME( 6, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F50[] = { + ANIMCMD_FRAME( 8, 5), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085A1F58[] = { + ANIMCMD_FRAME(10, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_085A1F60[] = { + gUnknown_085A1F28, + gUnknown_085A1F30, + gUnknown_085A1F38, + gUnknown_085A1F40, + gUnknown_085A1F48, + gUnknown_085A1F50, + gUnknown_085A1F58 +}; + +static const struct SpriteTemplate gUnknown_085A1F7C = { + 2, + 2, + &gOamData_085A1F20, + gUnknown_085A1F60, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +// .text + +void InitRegionMap(struct RegionMap *regionMap, bool8 zoomed) +{ + sub_8122CF8(regionMap, NULL, zoomed); + while (sub_8122DB0()); +} + +void sub_8122CF8(struct RegionMap *regionMap, struct BgTemplate *template, bool8 zoomed) +{ + gRegionMap = regionMap; + gRegionMap->initStep = 0; + gRegionMap->zoomed = zoomed; + gRegionMap->inputCallback = zoomed == TRUE ? ProcessRegionMapInput_Zoomed : ProcessRegionMapInput_Full; + if (template != NULL) + { + gRegionMap->bgNum = template->bg; + gRegionMap->charBaseIdx = template->charBaseIndex; + gRegionMap->mapBaseIdx = template->mapBaseIndex; + gRegionMap->bgManaged = TRUE; + } + else + { + gRegionMap->bgNum = 2; + gRegionMap->charBaseIdx = 2; + gRegionMap->mapBaseIdx = 28; + gRegionMap->bgManaged = FALSE; + } +} + +void sub_8122D88(struct RegionMap *regionMap) +{ + gRegionMap = regionMap; + RegionMap_InitializeStateBasedOnPlayerLocation(); + gRegionMap->playerIconSpritePosX = gRegionMap->cursorPosX; + gRegionMap->playerIconSpritePosY = gRegionMap->cursorPosY; +} + +bool8 sub_8122DB0(void) +{ + switch (gRegionMap->initStep) + { + case 0: + if (gRegionMap->bgManaged) + { + decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBkgnd_GfxLZ, 0, 0, 0); + } + else + { + LZ77UnCompVram(sRegionMapBkgnd_GfxLZ, (u16 *)BG_CHAR_ADDR(2)); + } + break; + case 1: + if (gRegionMap->bgManaged) + { + if (!free_temp_tile_data_buffers_if_possible()) + { + decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBkgnd_TilemapLZ, 0, 0, 1); + } + } + else + { + LZ77UnCompVram(sRegionMapBkgnd_TilemapLZ, (u16 *)BG_SCREEN_ADDR(28)); + } + break; + case 2: + if (!free_temp_tile_data_buffers_if_possible()) + { + LoadPalette(sRegionMapBkgnd_Pal, 0x70, 0x60); + } + break; + case 3: + LZ77UnCompWram(sRegionMapCursorSmallGfxLZ, gRegionMap->cursorSmallImage); + break; + case 4: + LZ77UnCompWram(sRegionMapCursorLargeGfxLZ, gRegionMap->cursorLargeImage); + break; + case 5: + RegionMap_InitializeStateBasedOnPlayerLocation(); + gRegionMap->playerIconSpritePosX = gRegionMap->cursorPosX; + gRegionMap->playerIconSpritePosY = gRegionMap->cursorPosY; + gRegionMap->mapSecId = CorrectSpecialMapSecId_Internal(gRegionMap->mapSecId); + gRegionMap->iconDrawType = get_flagnr_blue_points(gRegionMap->mapSecId); + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + break; + case 6: + if (gRegionMap->zoomed == FALSE) + { + CalcZoomScrollParams(0, 0, 0, 0, 0x100, 0x100, 0); + } + else + { + gRegionMap->scrollX = gRegionMap->cursorPosX * 8 - 0x34; + gRegionMap->scrollY = gRegionMap->cursorPosY * 8 - 0x44; + gRegionMap->zoomedCursorPosX = gRegionMap->cursorPosX; + gRegionMap->zoomedCursorPosY = gRegionMap->cursorPosY; + CalcZoomScrollParams(gRegionMap->scrollX, gRegionMap->scrollY, 0x38, 0x48, 0x80, 0x80, 0); + } + break; + case 7: + RegionMap_GetPositionOfCursorWithinMapSection(); + UpdateRegionMapVideoRegs(); + gRegionMap->cursorSprite = NULL; + gRegionMap->playerIconSprite = NULL; + gRegionMap->cursorMovementFrameCounter = 0; + gRegionMap->blinkPlayerIcon = FALSE; + if (gRegionMap->bgManaged) + { + SetBgAttribute(gRegionMap->bgNum, BG_CTRL_ATTR_MAPBASEINDEX, 2); + SetBgAttribute(gRegionMap->bgNum, BG_CTRL_ATTR_VISIBLE, gRegionMap->charBaseIdx); + SetBgAttribute(gRegionMap->bgNum, BG_CTRL_ATTR_CHARBASEINDEX, gRegionMap->mapBaseIdx); + SetBgAttribute(gRegionMap->bgNum, BG_CTRL_ATTR_PRIORITY, 1); + SetBgAttribute(gRegionMap->bgNum, BG_CTRL_ATTR_SCREENSIZE, 1); + } + gRegionMap->initStep++; + return FALSE; + default: + return FALSE; + } + gRegionMap->initStep++; + return TRUE; +} + +void sub_8123030(u16 a0, u32 a1) +{ + BlendPalettes(0x380, a1, a0); + CpuCopy16(gPlttBufferFaded + 0x70, gPlttBufferUnfaded + 0x70, 0x60); +} + +void FreeRegionMapIconResources(void) +{ + if (gRegionMap->cursorSprite != NULL) + { + DestroySprite(gRegionMap->cursorSprite); + FreeSpriteTilesByTag(gRegionMap->cursorTileTag); + FreeSpritePaletteByTag(gRegionMap->cursorPaletteTag); + } + if (gRegionMap->playerIconSprite != NULL) + { + DestroySprite(gRegionMap->playerIconSprite); + FreeSpriteTilesByTag(gRegionMap->playerIconTileTag); + FreeSpritePaletteByTag(gRegionMap->playerIconPaletteTag); + } +} + +u8 sub_81230AC(void) +{ + return gRegionMap->inputCallback(); +} + +static u8 ProcessRegionMapInput_Full(void) +{ + u8 input; + + input = INPUT_EVENT_NONE; + gRegionMap->cursorDeltaX = 0; + gRegionMap->cursorDeltaY = 0; + if (gMain.heldKeys & DPAD_UP && gRegionMap->cursorPosY > MAPCURSOR_Y_MIN) + { + gRegionMap->cursorDeltaY = -1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_DOWN && gRegionMap->cursorPosY < MAPCURSOR_Y_MAX) + { + gRegionMap->cursorDeltaY = +1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_LEFT && gRegionMap->cursorPosX > MAPCURSOR_X_MIN) + { + gRegionMap->cursorDeltaX = -1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_RIGHT && gRegionMap->cursorPosX < MAPCURSOR_X_MAX) + { + gRegionMap->cursorDeltaX = +1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.newKeys & A_BUTTON) + { + input = INPUT_EVENT_A_BUTTON; + } + else if (gMain.newKeys & B_BUTTON) + { + input = INPUT_EVENT_B_BUTTON; + } + if (input == INPUT_EVENT_MOVE_START) + { + gRegionMap->cursorMovementFrameCounter = 4; + gRegionMap->inputCallback = MoveRegionMapCursor_Full; + } + return input; +} + +static u8 MoveRegionMapCursor_Full(void) +{ + u16 mapSecId; + + if (gRegionMap->cursorMovementFrameCounter != 0) + { + return INPUT_EVENT_MOVE_CONT; + } + if (gRegionMap->cursorDeltaX > 0) + { + gRegionMap->cursorPosX++; + } + if (gRegionMap->cursorDeltaX < 0) + { + gRegionMap->cursorPosX--; + } + if (gRegionMap->cursorDeltaY > 0) + { + gRegionMap->cursorPosY++; + } + if (gRegionMap->cursorDeltaY < 0) + { + gRegionMap->cursorPosY--; + } + mapSecId = GetRegionMapSectionIdAt_Internal(gRegionMap->cursorPosX, gRegionMap->cursorPosY); + gRegionMap->iconDrawType = get_flagnr_blue_points(mapSecId); + if (mapSecId != gRegionMap->mapSecId) + { + gRegionMap->mapSecId = mapSecId; + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + } + RegionMap_GetPositionOfCursorWithinMapSection(); + gRegionMap->inputCallback = ProcessRegionMapInput_Full; + return INPUT_EVENT_MOVE_END; +} + +static u8 ProcessRegionMapInput_Zoomed(void) +{ + u8 input; + + input = INPUT_EVENT_NONE; + gRegionMap->zoomedCursorDeltaX = 0; + gRegionMap->zoomedCursorDeltaY = 0; + if (gMain.heldKeys & DPAD_UP && gRegionMap->scrollY > -0x34) + { + gRegionMap->zoomedCursorDeltaY = -1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_DOWN && gRegionMap->scrollY < 0x3c) + { + gRegionMap->zoomedCursorDeltaY = +1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_LEFT && gRegionMap->scrollX > -0x2c) + { + gRegionMap->zoomedCursorDeltaX = -1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.heldKeys & DPAD_RIGHT && gRegionMap->scrollX < 0xac) + { + gRegionMap->zoomedCursorDeltaX = +1; + input = INPUT_EVENT_MOVE_START; + } + if (gMain.newKeys & A_BUTTON) + { + input = INPUT_EVENT_A_BUTTON; + } + if (gMain.newKeys & B_BUTTON) + { + input = INPUT_EVENT_B_BUTTON; + } + if (input == INPUT_EVENT_MOVE_START) + { + gRegionMap->inputCallback = MoveRegionMapCursor_Zoomed; + gRegionMap->zoomedCursorMovementFrameCounter = 0; + } + return input; +} + +static u8 MoveRegionMapCursor_Zoomed(void) +{ + u16 x; + u16 y; + u16 mapSecId; + + gRegionMap->scrollY += gRegionMap->zoomedCursorDeltaY; + gRegionMap->scrollX += gRegionMap->zoomedCursorDeltaX; + RegionMap_SetBG2XAndBG2Y(gRegionMap->scrollX, gRegionMap->scrollY); + gRegionMap->zoomedCursorMovementFrameCounter++; + if (gRegionMap->zoomedCursorMovementFrameCounter == 8) + { + x = (gRegionMap->scrollX + 0x2c) / 8 + 1; + y = (gRegionMap->scrollY + 0x34) / 8 + 2; + if (x != gRegionMap->zoomedCursorPosX || y != gRegionMap->zoomedCursorPosY) + { + gRegionMap->zoomedCursorPosX = x; + gRegionMap->zoomedCursorPosY = y; + mapSecId = GetRegionMapSectionIdAt_Internal(x, y); + gRegionMap->iconDrawType = get_flagnr_blue_points(mapSecId); + if (mapSecId != gRegionMap->mapSecId) + { + gRegionMap->mapSecId = mapSecId; + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + } + RegionMap_GetPositionOfCursorWithinMapSection(); + } + gRegionMap->zoomedCursorMovementFrameCounter = 0; + gRegionMap->inputCallback = ProcessRegionMapInput_Zoomed; + return INPUT_EVENT_MOVE_END; + } + return INPUT_EVENT_MOVE_CONT; +} + +void sub_8123418(void) +{ + if (gRegionMap->zoomed == FALSE) + { + gRegionMap->scrollY = 0; + gRegionMap->scrollX = 0; + gRegionMap->unk_040 = 0; + gRegionMap->unk_03c = 0; + gRegionMap->unk_060 = gRegionMap->cursorPosX * 8 - 0x34; + gRegionMap->unk_062 = gRegionMap->cursorPosY * 8 - 0x44; + gRegionMap->unk_044 = (gRegionMap->unk_060 << 8) / 16; + gRegionMap->unk_048 = (gRegionMap->unk_062 << 8) / 16; + gRegionMap->zoomedCursorPosX = gRegionMap->cursorPosX; + gRegionMap->zoomedCursorPosY = gRegionMap->cursorPosY; + gRegionMap->unk_04c = 0x10000; + gRegionMap->unk_050 = -0x800; + } + else + { + gRegionMap->unk_03c = gRegionMap->scrollX * 0x100; + gRegionMap->unk_040 = gRegionMap->scrollY * 0x100; + gRegionMap->unk_060 = 0; + gRegionMap->unk_062 = 0; + gRegionMap->unk_044 = -(gRegionMap->unk_03c / 16); + gRegionMap->unk_048 = -(gRegionMap->unk_040 / 16); + gRegionMap->cursorPosX = gRegionMap->zoomedCursorPosX; + gRegionMap->cursorPosY = gRegionMap->zoomedCursorPosY; + gRegionMap->unk_04c = 0x8000; + gRegionMap->unk_050 = 0x800; + } + gRegionMap->unk_06e = 0; + FreeRegionMapCursorSprite(); + HideRegionMapPlayerIcon(); +} + +bool8 sub_8123514(void) +{ + bool8 retVal; + + if (gRegionMap->unk_06e >= 16) + { + return 0; + } + gRegionMap->unk_06e++; + if (gRegionMap->unk_06e == 16) + { + gRegionMap->unk_044 = 0; + gRegionMap->unk_048 = 0; + gRegionMap->scrollX = gRegionMap->unk_060; + gRegionMap->scrollY = gRegionMap->unk_062; + gRegionMap->unk_04c = (gRegionMap->zoomed == FALSE) ? (128 << 8) : (256 << 8); + gRegionMap->zoomed = !gRegionMap->zoomed; + gRegionMap->inputCallback = (gRegionMap->zoomed == FALSE) ? ProcessRegionMapInput_Full : ProcessRegionMapInput_Zoomed; + CreateRegionMapCursor(gRegionMap->cursorTileTag, gRegionMap->cursorPaletteTag); + UnhideRegionMapPlayerIcon(); + retVal = FALSE; + } + else + { + gRegionMap->unk_03c += gRegionMap->unk_044; + gRegionMap->unk_040 += gRegionMap->unk_048; + gRegionMap->scrollX = gRegionMap->unk_03c >> 8; + gRegionMap->scrollY = gRegionMap->unk_040 >> 8; + gRegionMap->unk_04c += gRegionMap->unk_050; + if ((gRegionMap->unk_044 < 0 && gRegionMap->scrollX < gRegionMap->unk_060) || (gRegionMap->unk_044 > 0 && gRegionMap->scrollX > gRegionMap->unk_060)) + { + gRegionMap->scrollX = gRegionMap->unk_060; + gRegionMap->unk_044 = 0; + } + if ((gRegionMap->unk_048 < 0 && gRegionMap->scrollY < gRegionMap->unk_062) || (gRegionMap->unk_048 > 0 && gRegionMap->scrollY > gRegionMap->unk_062)) + { + gRegionMap->scrollY = gRegionMap->unk_062; + gRegionMap->unk_048 = 0; + } + if (gRegionMap->zoomed == FALSE) + { + if (gRegionMap->unk_04c < (128 << 8)) + { + gRegionMap->unk_04c = (128 << 8); + gRegionMap->unk_050 = 0; + } + } + else + { + if (gRegionMap->unk_04c > (256 << 8)) + { + gRegionMap->unk_04c = (256 << 8); + gRegionMap->unk_050 = 0; + } + } + retVal = TRUE; + } + CalcZoomScrollParams(gRegionMap->scrollX, gRegionMap->scrollY, 0x38, 0x48, gRegionMap->unk_04c >> 8, gRegionMap->unk_04c >> 8, 0); + return retVal; +} + +static void CalcZoomScrollParams(s16 scrollX, s16 scrollY, s16 c, s16 d, u16 e, u16 f, u8 rotation) +{ + s32 var1; + s32 var2; + s32 var3; + s32 var4; + + gRegionMap->bg2pa = e * gSineTable[rotation + 64] >> 8; + gRegionMap->bg2pc = e * -gSineTable[rotation] >> 8; + gRegionMap->bg2pb = f * gSineTable[rotation] >> 8; + gRegionMap->bg2pd = f * gSineTable[rotation + 64] >> 8; + + var1 = (scrollX << 8) + (c << 8); + var2 = d * gRegionMap->bg2pb + gRegionMap->bg2pa * c; + gRegionMap->bg2x = var1 - var2; + + var3 = (scrollY << 8) + (d << 8); + var4 = gRegionMap->bg2pd * d + gRegionMap->bg2pc * c; + gRegionMap->bg2y = var3 - var4; + + gRegionMap->needUpdateVideoRegs = TRUE; +} + +static void RegionMap_SetBG2XAndBG2Y(s16 x, s16 y) +{ + gRegionMap->bg2x = (x << 8) + 0x1c00; + gRegionMap->bg2y = (y << 8) + 0x2400; + gRegionMap->needUpdateVideoRegs = TRUE; +} + +void UpdateRegionMapVideoRegs(void) +{ + if (gRegionMap->needUpdateVideoRegs) + { + SetGpuReg(REG_OFFSET_BG2PA, gRegionMap->bg2pa); + SetGpuReg(REG_OFFSET_BG2PB, gRegionMap->bg2pb); + SetGpuReg(REG_OFFSET_BG2PC, gRegionMap->bg2pc); + SetGpuReg(REG_OFFSET_BG2PD, gRegionMap->bg2pd); + SetGpuReg(REG_OFFSET_BG2X_L, gRegionMap->bg2x); + SetGpuReg(REG_OFFSET_BG2X_H, gRegionMap->bg2x >> 16); + SetGpuReg(REG_OFFSET_BG2Y_L, gRegionMap->bg2y); + SetGpuReg(REG_OFFSET_BG2Y_H, gRegionMap->bg2y >> 16); + gRegionMap->needUpdateVideoRegs = FALSE; + } +} + +void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y) +{ + CalcZoomScrollParams(x, y, 0x38, 0x48, 0x100, 0x100, 0); + UpdateRegionMapVideoRegs(); + if (gRegionMap->playerIconSprite != NULL) + { + gRegionMap->playerIconSprite->pos2.x = -x; + gRegionMap->playerIconSprite->pos2.y = -y; + } +} + +static u16 GetRegionMapSectionIdAt_Internal(u16 x, u16 y) +{ + if (y < MAPCURSOR_Y_MIN || y > MAPCURSOR_Y_MAX || x < MAPCURSOR_X_MIN || x > MAPCURSOR_X_MAX) + { + return MAPSEC_NONE; + } + y -= MAPCURSOR_Y_MIN; + x -= MAPCURSOR_X_MIN; + return sRegionMap_MapSectionLayout[x + y * MAP_WIDTH]; +} + +static void RegionMap_InitializeStateBasedOnPlayerLocation(void) +{ + const struct MapHeader *mapHeader; + u16 mapWidth; + u16 mapHeight; + u16 x; + u16 y; + u16 dimensionScale; + u16 xOnMap; + struct WarpData *storedWarp; + + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SS_TIDAL_CORRIDOR + && (gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_CORRIDOR + || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_LOWER_DECK + || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_ROOMS)) + { + RegionMap_InitializeStateBasedOnSSTidalLocation(); + return; + } + + switch (get_map_light_level_by_bank_and_number(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum)) + { + default: + case 1: + case 2: + case 3: + case 5: + case 6: + gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + gRegionMap->playerIsInCave = FALSE; + mapWidth = gMapHeader.mapData->width; + mapHeight = gMapHeader.mapData->height; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y; + if (gRegionMap->mapSecId == MAPSEC_UNDERWATER_128 || gRegionMap->mapSecId == MAPSEC_UNDERWATER_MARINE_CAVE) + { + gRegionMap->playerIsInCave = TRUE; + } + break; + case 4: + case 7: + if (gMapHeader.flags & 0x02) + { + mapHeader = get_mapheader_by_bank_and_number(gSaveBlock1Ptr->warp4.mapGroup, gSaveBlock1Ptr->warp4.mapNum); + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->playerIsInCave = TRUE; + mapWidth = mapHeader->mapData->width; + mapHeight = mapHeader->mapData->height; + x = gSaveBlock1Ptr->warp4.x; + y = gSaveBlock1Ptr->warp4.y; + } + else + { + gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + gRegionMap->playerIsInCave = TRUE; + mapWidth = 1; + mapHeight = 1; + x = 1; + y = 1; + } + break; + case 9: + mapHeader = get_mapheader_by_bank_and_number((u16)gSaveBlock1Ptr->warp2.mapGroup, (u16)gSaveBlock1Ptr->warp2.mapNum); + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->playerIsInCave = TRUE; + mapWidth = mapHeader->mapData->width; + mapHeight = mapHeader->mapData->height; + x = gSaveBlock1Ptr->warp2.x; + y = gSaveBlock1Ptr->warp2.y; + break; + case 8: + + gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + if (gRegionMap->mapSecId != MAPSEC_DYNAMIC) + { + storedWarp = &gSaveBlock1Ptr->warp4; + mapHeader = get_mapheader_by_bank_and_number(storedWarp->mapGroup, storedWarp->mapNum); + } + else + { + storedWarp = &gSaveBlock1Ptr->warp2; + mapHeader = get_mapheader_by_bank_and_number(storedWarp->mapGroup, storedWarp->mapNum); + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + } + if (RegionMap_IsPlayerInCave(gRegionMap->mapSecId)) + { + gRegionMap->playerIsInCave = TRUE; + } + else + { + gRegionMap->playerIsInCave = FALSE; + } + mapWidth = mapHeader->mapData->width; + mapHeight = mapHeader->mapData->height; + x = storedWarp->x; + y = storedWarp->y; + break; + } + + xOnMap = x; + + dimensionScale = mapWidth / gRegionMapEntries[gRegionMap->mapSecId].width; + if (dimensionScale == 0) + { + dimensionScale = 1; + } + x /= dimensionScale; + if (x >= gRegionMapEntries[gRegionMap->mapSecId].width) + { + x = gRegionMapEntries[gRegionMap->mapSecId].width - 1; + } + + dimensionScale = mapHeight / gRegionMapEntries[gRegionMap->mapSecId].height; + if (dimensionScale == 0) + { + dimensionScale = 1; + } + y /= dimensionScale; + if (y >= gRegionMapEntries[gRegionMap->mapSecId].height) + { + y = gRegionMapEntries[gRegionMap->mapSecId].height - 1; + } + + switch (gRegionMap->mapSecId) + { + case MAPSEC_ROUTE_114: + if (y != 0) + { + x = 0; + } + break; + case MAPSEC_ROUTE_126: + case MAPSEC_UNDERWATER_125: + x = 0; + if (gSaveBlock1Ptr->pos.x > 32) + { + x = 1; + } + if (gSaveBlock1Ptr->pos.x > 0x33) + { + x++; + } + y = 0; + if (gSaveBlock1Ptr->pos.y > 0x25) + { + y = 1; + } + if (gSaveBlock1Ptr->pos.y > 0x38) + { + y++; + } + break; + case MAPSEC_ROUTE_121: + x = 0; + if (xOnMap > 14) + { + x = 1; + } + if (xOnMap > 0x1C) + { + x++; + } + if (xOnMap > 0x36) + { + x++; + } + break; + case MAPSEC_UNDERWATER_MARINE_CAVE: + RegionMap_GetMarineCaveCoords(&gRegionMap->cursorPosX, &gRegionMap->cursorPosY); + return; + } + gRegionMap->cursorPosX = gRegionMapEntries[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; + gRegionMap->cursorPosY = gRegionMapEntries[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; +} + +static void RegionMap_InitializeStateBasedOnSSTidalLocation(void) +{ + u16 y; + u16 x; + u8 mapGroup; + u8 mapNum; + u16 dimensionScale; + s16 xOnMap; + s16 yOnMap; + const struct MapHeader *mapHeader; + + y = 0; + x = 0; + switch (GetSSTidalLocation(&mapGroup, &mapNum, &xOnMap, &yOnMap)) + { + case 1: + gRegionMap->mapSecId = MAPSEC_SLATEPORT_CITY; + break; + case 2: + gRegionMap->mapSecId = MAPSEC_LILYCOVE_CITY; + break; + case 3: + gRegionMap->mapSecId = MAPSEC_ROUTE_124; + break; + case 4: + gRegionMap->mapSecId = MAPSEC_ROUTE_131; + break; + default: + case 0: + mapHeader = get_mapheader_by_bank_and_number(mapGroup, mapNum); + + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + dimensionScale = mapHeader->mapData->width / gRegionMapEntries[gRegionMap->mapSecId].width; + if (dimensionScale == 0) + dimensionScale = 1; + x = xOnMap / dimensionScale; + if (x >= gRegionMapEntries[gRegionMap->mapSecId].width) + x = gRegionMapEntries[gRegionMap->mapSecId].width - 1; + + dimensionScale = mapHeader->mapData->height / gRegionMapEntries[gRegionMap->mapSecId].height; + if (dimensionScale == 0) + dimensionScale = 1; + y = yOnMap / dimensionScale; + if (y >= gRegionMapEntries[gRegionMap->mapSecId].height) + y = gRegionMapEntries[gRegionMap->mapSecId].height - 1; + break; + } + gRegionMap->playerIsInCave = FALSE; + gRegionMap->cursorPosX = gRegionMapEntries[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; + gRegionMap->cursorPosY = gRegionMapEntries[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; +} + +static u8 get_flagnr_blue_points(u16 mapSecId) +{ + switch (mapSecId) + { + case MAPSEC_NONE: + return MAPSECTYPE_NONE; + case MAPSEC_LITTLEROOT_TOWN: + return FlagGet(FLAG_VISITED_LITTLEROOT_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_OLDALE_TOWN: + return FlagGet(FLAG_VISITED_OLDALE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_DEWFORD_TOWN: + return FlagGet(FLAG_VISITED_DEWFORD_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_LAVARIDGE_TOWN: + return FlagGet(FLAG_VISITED_LAVARIDGE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_FALLARBOR_TOWN: + return FlagGet(FLAG_VISITED_FALLARBOR_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_VERDANTURF_TOWN: + return FlagGet(FLAG_VISITED_VERDANTURF_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_PACIFIDLOG_TOWN: + return FlagGet(FLAG_VISITED_PACIFIDLOG_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_PETALBURG_CITY: + return FlagGet(FLAG_VISITED_PETALBURG_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_SLATEPORT_CITY: + return FlagGet(FLAG_VISITED_SLATEPORT_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_MAUVILLE_CITY: + return FlagGet(FLAG_VISITED_MAUVILLE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_RUSTBORO_CITY: + return FlagGet(FLAG_VISITED_RUSTBORO_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_FORTREE_CITY: + return FlagGet(FLAG_VISITED_FORTREE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_LILYCOVE_CITY: + return FlagGet(FLAG_VISITED_LILYCOVE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_MOSSDEEP_CITY: + return FlagGet(FLAG_VISITED_MOSSDEEP_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_SOOTOPOLIS_CITY: + return FlagGet(FLAG_VISITED_SOOTOPOLIS_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_EVER_GRANDE_CITY: + return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_BATTLE_FRONTIER: + return FlagGet(FLAG_UNLOCK_BATTLE_FRONTIER) ? MAPSECTYPE_BATTLE_FRONTIER : MAPSECTYPE_NONE; + case MAPSEC_SOUTHERN_ISLAND: + return FlagGet(FLAG_UNLOCK_SOUTHERN_ISLAND) ? MAPSECTYPE_PLAIN : MAPSECTYPE_NONE; + default: + return MAPSECTYPE_PLAIN; + } +} + +u16 GetRegionMapSectionIdAt(u16 x, u16 y) +{ + return GetRegionMapSectionIdAt_Internal(x, y); +} + +static u16 CorrectSpecialMapSecId_Internal(u16 mapSecId) +{ + u32 i; + + for (i = 0; i < 3; i++) + { + if (sRegionMap_MarineCaveMapSecIds[i] == mapSecId) + { + return RegionMap_GetTerraCaveMapSecId(); + } + } + for (i = 0; sRegionMap_SpecialPlaceLocations[i][0] != MAPSEC_NONE; i++) + { + if (sRegionMap_SpecialPlaceLocations[i][0] == mapSecId) + { + return sRegionMap_SpecialPlaceLocations[i][1]; + } + } + return mapSecId; +} + +static u16 RegionMap_GetTerraCaveMapSecId(void) +{ + s16 idx; + + idx = VarGet(VAR_0x4037) - 1; + if (idx < 0 || idx > 15) + { + idx = 0; + } + return sTerraCaveMapSectionIds[idx]; +} + +static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y) +{ + u16 idx; + + idx = VarGet(VAR_0x4037); + if (idx < 9 || idx > 16) + { + idx = 9; + } + idx -= 9; + *x = sTerraCaveLocationCoords[idx].x + MAPCURSOR_X_MIN; + *y = sTerraCaveLocationCoords[idx].y + MAPCURSOR_Y_MIN; +} + +static bool32 RegionMap_IsPlayerInCave(u8 mapSecId) +{ + u32 i; + + for (i = 0; i < 1; i++) + { + if (sRegionMap_MapSecAquaHideoutOld[i] == mapSecId) + { + return TRUE; + } + } + return FALSE; +} + +u16 CorrectSpecialMapSecId(u16 mapSecId) +{ + return CorrectSpecialMapSecId_Internal(mapSecId); +} + +static void RegionMap_GetPositionOfCursorWithinMapSection(void) +{ + u16 x; + u16 y; + u16 posWithinMapSec; + + if (gRegionMap->mapSecId == MAPSEC_NONE) + { + gRegionMap->posWithinMapSec = 0; + return; + } + if (!gRegionMap->zoomed) + { + x = gRegionMap->cursorPosX; + y = gRegionMap->cursorPosY; + } + else + { + x = gRegionMap->zoomedCursorPosX; + y = gRegionMap->zoomedCursorPosY; + } + posWithinMapSec = 0; + while (1) + { + if (x <= MAPCURSOR_X_MIN) + { + if (RegionMap_IsMapSecIdInNextRow(y)) + { + y--; + x = MAPCURSOR_X_MAX + 1; + } + else + { + break; + } + } + else + { + x--; + if (GetRegionMapSectionIdAt_Internal(x, y) == gRegionMap->mapSecId) + { + posWithinMapSec++; + } + } + } + gRegionMap->posWithinMapSec = posWithinMapSec; +} + +static bool8 RegionMap_IsMapSecIdInNextRow(u16 y) +{ + u16 x; + + if (y-- == 0) + { + return FALSE; + } + for (x = MAPCURSOR_X_MIN; x <= MAPCURSOR_X_MAX; x++) + { + if (GetRegionMapSectionIdAt_Internal(x, y) == gRegionMap->mapSecId) + { + return TRUE; + } + } + return FALSE; +} + +static void SpriteCallback_CursorFull(struct Sprite *sprite) +{ + if (gRegionMap->cursorMovementFrameCounter != 0) + { + sprite->pos1.x += 2 * gRegionMap->cursorDeltaX; + sprite->pos1.y += 2 * gRegionMap->cursorDeltaY; + gRegionMap->cursorMovementFrameCounter--; + } +} + +static void SpriteCallback_CursorZoomed(struct Sprite *sprite) +{ + +} + +void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) +{ + u8 spriteId; + struct SpriteTemplate template; + struct SpritePalette palette; + struct SpriteSheet sheet; + + palette = sRegionMapCursorSpritePalette; + template = sRegionMapCursorSpriteTemplate; + sheet.tag = tileTag; + template.tileTag = tileTag; + gRegionMap->cursorTileTag = tileTag; + palette.tag = paletteTag; + template.paletteTag = paletteTag; + gRegionMap->cursorPaletteTag = paletteTag; + if (!gRegionMap->zoomed) + { + sheet.data = gRegionMap->cursorSmallImage; + sheet.size = sizeof(gRegionMap->cursorSmallImage); + template.callback = SpriteCallback_CursorFull; + } + else + { + sheet.data = gRegionMap->cursorLargeImage; + sheet.size = sizeof(gRegionMap->cursorLargeImage); + template.callback = SpriteCallback_CursorZoomed; + } + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + spriteId = CreateSprite(&template, 0x38, 0x48, 0); + if (spriteId != MAX_SPRITES) + { + gRegionMap->cursorSprite = &gSprites[spriteId]; + if (gRegionMap->zoomed == TRUE) + { + gRegionMap->cursorSprite->oam.size = 2; + gRegionMap->cursorSprite->pos1.x -= 8; + gRegionMap->cursorSprite->pos1.y -= 8; + StartSpriteAnim(gRegionMap->cursorSprite, 1); + } + else + { + gRegionMap->cursorSprite->oam.size = 1; + gRegionMap->cursorSprite->pos1.x = 8 * gRegionMap->cursorPosX + 4; + gRegionMap->cursorSprite->pos1.y = 8 * gRegionMap->cursorPosY + 4; + } + gRegionMap->cursorSprite->data1 = 2; + gRegionMap->cursorSprite->data2 = (IndexOfSpritePaletteTag(paletteTag) << 4) + 0x101; + gRegionMap->cursorSprite->data3 = TRUE; + } +} + +static void FreeRegionMapCursorSprite(void) +{ + if (gRegionMap->cursorSprite != NULL) + { + DestroySprite(gRegionMap->cursorSprite); + FreeSpriteTilesByTag(gRegionMap->cursorTileTag); + FreeSpritePaletteByTag(gRegionMap->cursorPaletteTag); + } +} + +void sub_8124268(void) +{ + gRegionMap->cursorSprite->data3 = TRUE; +} + +void sub_8124278(void) +{ + gRegionMap->cursorSprite->data3 = FALSE; +} + +void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag) +{ + u8 spriteId; + struct SpriteSheet sheet = {sRegionMapPlayerIcon_BrendanGfx, 0x80, tileTag}; + struct SpritePalette palette = {sRegionMapPlayerIcon_BrendanPal, paletteTag}; + struct SpriteTemplate template = {tileTag, paletteTag, &sRegionMapPlayerIconOam, sRegionMapPlayerIconAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; + + if (sub_8124668(gMapHeader.regionMapSectionId)) + { + gRegionMap->playerIconSprite = NULL; + return; + } + if (gSaveBlock2Ptr->playerGender == FEMALE) + { + sheet.data = sRegionMapPlayerIcon_MayGfx; + palette.data = sRegionMapPlayerIcon_MayPal; + } + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + spriteId = CreateSprite(&template, 0, 0, 1); + gRegionMap->playerIconSprite = &gSprites[spriteId]; + if (!gRegionMap->zoomed) + { + gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4; + gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; + gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Full; + } + else + { + gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; + gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; + gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Zoomed; + } +} + +static void HideRegionMapPlayerIcon(void) +{ + if (gRegionMap->playerIconSprite != NULL) + { + gRegionMap->playerIconSprite->invisible = TRUE; + gRegionMap->playerIconSprite->callback = SpriteCallbackDummy; + } +} + +static void UnhideRegionMapPlayerIcon(void) +{ + if (gRegionMap->playerIconSprite != NULL) + { + if (gRegionMap->zoomed == TRUE) + { + gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; + gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; + gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Zoomed; + gRegionMap->playerIconSprite->invisible = FALSE; + } + else + { + gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4; + gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; + gRegionMap->playerIconSprite->pos2.x = 0; + gRegionMap->playerIconSprite->pos2.y = 0; + gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Full; + gRegionMap->playerIconSprite->invisible = FALSE; + } + } +} + +static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite) +{ + sprite->pos2.x = -2 * gRegionMap->scrollX; + sprite->pos2.y = -2 * gRegionMap->scrollY; + sprite->data0 = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + sprite->data1 = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + if (sprite->data0 < -8 || sprite->data0 > 0xa8 || sprite->data1 < -8 || sprite->data1 > 0xf8) + { + sprite->data2 = FALSE; + } + else + { + sprite->data2 = TRUE; + } + if (sprite->data2 == TRUE) + { + RegionMapPlayerIconSpriteCallback(sprite); + } + else + { + sprite->invisible = TRUE; + } +} + +static void RegionMapPlayerIconSpriteCallback_Full(struct Sprite *sprite) +{ + RegionMapPlayerIconSpriteCallback(sprite); +} + +static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite) +{ + if (gRegionMap->blinkPlayerIcon) + { + if (++sprite->data7 > 16) + { + sprite->data7 = 0; + sprite->invisible = sprite->invisible ? FALSE : TRUE; + } + } + else + { + sprite->invisible = FALSE; + } +} + +void sub_812454C(void) +{ + if (gRegionMap->playerIsInCave) + { + gRegionMap->blinkPlayerIcon = TRUE; + } +} + +u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength) +{ + u8 *str; + u16 i; + + if (regionMapId == MAPSEC_SECRET_BASE) + { + str = GetSecretBaseMapName(dest); + } + else if (regionMapId < MAPSEC_NONE) + { + str = StringCopy(dest, gRegionMapEntries[regionMapId].name); + } + else + { + if (padLength == 0) + { + padLength = 18; + } + return StringFill(dest, CHAR_SPACE, padLength); + } + if (padLength != 0) + { + for (i = str - dest; i < padLength; i++) + { + *str++ = CHAR_SPACE; + } + *str = EOS; + } + return str; +} + +u8 *sub_81245DC(u8 *dest, u16 mapSecId) +{ + switch (mapSecId) + { + case MAPSEC_DYNAMIC: + return StringCopy(dest, gText_Ferry); + case MAPSEC_SECRET_BASE: + return StringCopy(dest, gText_SecretBase); + default: + return GetMapName(dest, mapSecId, 0); + } +} + +u8 *sub_8124610(u8 *dest, u16 mapSecId) +{ + if (mapSecId == MAPSEC_AQUA_HIDEOUT_OLD) + { + return StringCopy(dest, gText_Hideout); + } + else + { + return sub_81245DC(dest, mapSecId); + } +} + +void sub_8124630(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height) +{ + *x = gRegionMapEntries[mapSecId].x; + *y = gRegionMapEntries[mapSecId].y; + *width = gRegionMapEntries[mapSecId].width; + *height = gRegionMapEntries[mapSecId].height; +} + +bool8 sub_8124658(void) +{ + return gRegionMap->zoomed; +} + +bool32 sub_8124668(u8 mapSecId) +{ + u32 i; + + for (i = 0; i < 3; i++) + { + if (mapSecId == sRegionMapEventSectionIds[i]) + { + return TRUE; + } + } + return FALSE; +} + +void MCB2_FlyMap(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148)); + if (gUnknown_0203A148 == NULL) + { + SetMainCallback2(sub_8086194); + } + else + { + ResetPaletteFade(); + ResetSpriteData(); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); + gMain.state++; + } + break; + case 1: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, gUnknown_085A1EE4, 3); + gMain.state++; + break; + case 2: + InitWindows(gUnknown_085A1EF0); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 3: + sub_809882C(0, 0x65, 0xd0); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 4: + InitRegionMap(&gUnknown_0203A148->regionMap, FALSE); + CreateRegionMapCursor(0, 0); + CreateRegionMapPlayerIcon(1, 1); + gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId; + StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16); + gUnknown_03001180 = TRUE; + sub_8124904(); + gMain.state++; + break; + case 5: + LZ77UnCompVram(sRegionMapFrameGfxLZ, (u16 *)BG_CHAR_ADDR(3)); + gMain.state++; + break; + case 6: + LZ77UnCompVram(sRegionMapFrameTilemapLZ, (u16 *)BG_SCREEN_ADDR(30)); + gMain.state++; + break; + case 7: + LoadPalette(sRegionMapFramePal, 0x10, 0x20); + PutWindowTilemap(2); + FillWindowPixelBuffer(2, 0x00); + PrintTextOnWindow(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + gMain.state++; + break; + case 8: + sub_8124A70(); + gMain.state++; + break; + case 9: + BlendPalettes(-1, 16, 0); + SetVBlankCallback(sub_81248C0); + gMain.state++; + break; + case 10: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + sub_81248F4(sub_8124D14); + SetMainCallback2(sub_81248D4); + gMain.state++; + break; + } +} + +static void sub_81248C0(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void sub_81248D4(void) +{ + gUnknown_0203A148->unk_000(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); +} + +static void sub_81248F4(void callback(void)) +{ + gUnknown_0203A148->unk_000 = callback; + gUnknown_0203A148->unk_004 = 0; +} + +static void sub_8124904(void) +{ + u16 i; + bool32 flag; + const u8 *name; + + if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) + { + flag = FALSE; + for (i = 0; i < 1; i++) + { + if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) + { + if (FlagGet(gUnknown_085A1EDC[i].flag)) + { + StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]); + flag = TRUE; + sub_8198070(0, FALSE); + SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); + PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); + name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]; + PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + gUnknown_03001180 = TRUE; + } + break; + } + } + if (!flag) + { + if (gUnknown_03001180 == TRUE) + { + sub_8198070(1, FALSE); + SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); + } + else + { + FillWindowPixelBuffer(0, 0x11); + } + PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + gUnknown_03001180 = FALSE; + } + } + else + { + if (gUnknown_03001180 == TRUE) + { + sub_8198070(1, FALSE); + SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); + } + FillWindowPixelBuffer(0, 0x11); + CopyWindowToVram(0, 2); + schedule_bg_copy_tilemap_to_vram(0); + gUnknown_03001180 = FALSE; + } +} + + +static void sub_8124A70(void) +{ + struct SpriteSheet sheet; + + LZ77UnCompWram(gUnknown_085A1D68, gUnknown_0203A148->unk_88c); + sheet.data = gUnknown_0203A148->unk_88c; + sheet.size = 0x1c0; + sheet.tag = 2; + LoadSpriteSheet(&sheet); + LoadSpritePalette(&gUnknown_085A1F10); + sub_8124AD4(); + sub_8124BE4(); +} + +static void sub_8124AD4(void) +{ + u16 canFlyFlag; + u16 i; + u16 x; + u16 y; + u16 width; + u16 height; + u16 shape; + u8 spriteId; + + canFlyFlag = FLAG_VISITED_LITTLEROOT_TOWN; + for (i = 0; i < 16; i++) + { + sub_8124630(i, &x, &y, &width, &height); + x = (x + MAPCURSOR_X_MIN) * 8 + 4; + y = (y + MAPCURSOR_Y_MIN) * 8 + 4; + if (width == 2) + { + shape = ST_OAM_H_RECTANGLE; + } + else if (height == 2) + { + shape = ST_OAM_V_RECTANGLE; + } + else + { + shape = ST_OAM_SQUARE; + } + spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.shape = shape; + if (FlagGet(canFlyFlag)) + { + gSprites[spriteId].callback = sub_8124CBC; + } + else + { + shape += 3; + } + StartSpriteAnim(&gSprites[spriteId], shape); + gSprites[spriteId].data0 = i; + } + canFlyFlag++; + } +} + +static void sub_8124BE4(void) +{ + u16 i; + u16 x; + u16 y; + u16 width; + u16 height; + u16 mapSecId; + u8 spriteId; + + for (i = 0; gUnknown_085A1F18[i][1] != MAPSEC_NONE; i++) + { + if (FlagGet(gUnknown_085A1F18[i][0])) + { + mapSecId = gUnknown_085A1F18[i][1]; + sub_8124630(mapSecId, &x, &y, &width, &height); + x = (x + MAPCURSOR_X_MIN) * 8; + y = (y + MAPCURSOR_Y_MIN) * 8; + spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.size = 1; + gSprites[spriteId].callback = sub_8124CBC; + StartSpriteAnim(&gSprites[spriteId], 6); + gSprites[spriteId].data0 = mapSecId; + } + } + } +} + +static void sub_8124CBC(struct Sprite *sprite) +{ + if (gUnknown_0203A148->regionMap.mapSecId == sprite->data0) + { + if (++sprite->data1 > 16) + { + sprite->data1 = 0; + sprite->invisible = sprite->invisible ? FALSE : TRUE; + } + } + else + { + sprite->data1 = 16; + sprite->invisible = FALSE; + } +} + +static void sub_8124D14(void) +{ + switch (gUnknown_0203A148->unk_004) + { + case 0: + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + gUnknown_0203A148->unk_004++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sub_81248F4(sub_8124D64); + } + break; + } +} + +static void sub_8124D64(void) +{ + if (gUnknown_0203A148->unk_004 == 0) + { + switch (sub_81230AC()) + { + case INPUT_EVENT_NONE: + case INPUT_EVENT_MOVE_START: + case INPUT_EVENT_MOVE_CONT: + break; + case INPUT_EVENT_MOVE_END: + sub_8124904(); + break; + case INPUT_EVENT_A_BUTTON: + if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) + { + m4aSongNumStart(SE_SELECT); + gUnknown_0203A148->unk_a72 = TRUE; + sub_81248F4(sub_8124E0C); + } + break; + case INPUT_EVENT_B_BUTTON: + m4aSongNumStart(SE_SELECT); + gUnknown_0203A148->unk_a72 = FALSE; + sub_81248F4(sub_8124E0C); + break; + } + } +} + +static void sub_8124E0C(void) +{ + switch (gUnknown_0203A148->unk_004) + { + case 0: + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gUnknown_0203A148->unk_004++; + break; + case 1: + if (!UpdatePaletteFade()) + { + FreeRegionMapIconResources(); + if (gUnknown_0203A148->unk_a72) + { + switch (gUnknown_0203A148->regionMap.mapSecId) + { + case MAPSEC_SOUTHERN_ISLAND: + sub_8084CCC(0x15); + break; + case MAPSEC_BATTLE_FRONTIER: + sub_8084CCC(0x16); + break; + case MAPSEC_LITTLEROOT_TOWN: + sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D); + break; + case MAPSEC_EVER_GRANDE_CITY: + sub_8084CCC(FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); + break; + default: + if (gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0) + { + sub_8084CCC(gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]); + } + else + { + warp1_set_2(gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1); + } + break; + } + sub_80B69DC(); + } + else + { + SetMainCallback2(sub_81B58A8); + } + if (gUnknown_0203A148 != NULL) + { + free(gUnknown_0203A148); + gUnknown_0203A148 = NULL; + } + FreeAllWindowBuffers(); + } + break; + } +} @@ -6432,10 +6432,10 @@ void DoTVShowTodaysRivalTrainer(void) default: sTVShowState = 7; break; - case REGION_MAP_SECRET_BASE: + case MAPSEC_SECRET_BASE: sTVShowState = 8; break; - case REGION_MAP_NONE: + case MAPSEC_DYNAMIC: switch (show->rivalTrainer.mapDataId) { case 0x115 ... 0x117: @@ -6633,7 +6633,7 @@ void DoTVShowHoennTreasureInvestigators(void) { case 0: StringCopy(gStringVar1, ItemId_GetItem(show->treasureInvestigators.item)->name); - if (show->treasureInvestigators.location == REGION_MAP_NONE) + if (show->treasureInvestigators.location == MAPSEC_DYNAMIC) { switch (show->treasureInvestigators.mapDataId) { diff --git a/sym_bss.txt b/sym_bss.txt index 7cd6fdf50..e2f03b8f3 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -34,8 +34,7 @@ gUnknown_03001178: @ 3001178 gUnknown_0300117C: @ 300117C .space 0x4 -gUnknown_03001180: @ 3001180 - .space 0x8 + .include "src/region_map.o" gUnknown_03001188: @ 3001188 .space 0x68 diff --git a/sym_ewram.txt b/sym_ewram.txt index b2c1d62cb..7f835af30 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1105,12 +1105,7 @@ gUnknown_0203A138: @ 203A138 gUnknown_0203A140: @ 203A140 .space 0x4 -gUnknown_0203A144: @ 203A144 - .space 0x4 - -gUnknown_0203A148: @ 203A148 - .space 0x4 - + .include "src/region_map.o" .include "src/decoration.o" .align 2 @@ -1398,8 +1393,7 @@ gUnknown_0203BCC8: @ 203BCC8 gUnknown_0203BCCC: @ 203BCCC .space 0x4 -gUnknown_0203BCD0: @ 203BCD0 - .space 0x4 + .include "src/field_region_map.o" gUnknown_0203BCD4: @ 203BCD4 .space 0x4 |