diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-10-14 10:29:13 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-14 10:29:13 -0400 |
commit | 8efae5c807bf6b27f5c90bfb0c5887dbde24f10d (patch) | |
tree | 0680b08568c4c38b96b78d793e7426a85016dce6 | |
parent | 6bffe8613e2f764a03f551ad61b360dab9395eec (diff) | |
parent | d4c9b7782835ec6e31fee4e7c18351658da087cd (diff) |
Merge pull request #118 from PikalaxALT/start_menu
Decompile start_menu
65 files changed, 2526 insertions, 3115 deletions
diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s index fedf89c50..7495c8519 100644 --- a/asm/berry_crush_2.s +++ b/asm/berry_crush_2.s @@ -2856,7 +2856,7 @@ _0814D106: movs r0, 0 movs r1, 0 bl DrawDialogueFrame - ldr r2, _0814D148 @ =gUnknown_8419F54 + ldr r2, _0814D148 @ =gText_SavingDontTurnOffThePower2 movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -2877,7 +2877,7 @@ _0814D106: bl CreateTask b _0814D178 .align 2, 0 -_0814D148: .4byte gUnknown_8419F54 +_0814D148: .4byte gText_SavingDontTurnOffThePower2 _0814D14C: .4byte sub_80DA634 _0814D150: ldr r0, _0814D160 @ =sub_80DA634 diff --git a/asm/cable_club.s b/asm/cable_club.s index d7432e2c2..76346a28c 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1496,7 +1496,7 @@ _08081308: .4byte gReceivedRemoteLinkPlayers thumb_func_start sub_808130C sub_808130C: @ 808130C push {lr} - bl sub_806F67C + bl Field_AskSaveTheGame pop {r0} bx r0 thumb_func_end sub_808130C @@ -2001,7 +2001,7 @@ _08081724: ldr r0, _0808173C @ =c2_8056854 _08081728: str r0, [r1, 0x8] - ldr r0, _08081740 @ =sub_806FB7C + ldr r0, _08081740 @ =CB2_SetUpSaveAfterLinkBattle bl SetMainCallback2 pop {r4,r5} pop {r0} @@ -2009,7 +2009,7 @@ _08081728: .align 2, 0 _08081738: .4byte gMain _0808173C: .4byte c2_8056854 -_08081740: .4byte sub_806FB7C +_08081740: .4byte CB2_SetUpSaveAfterLinkBattle thumb_func_end sub_8081668 thumb_func_start sub_8081744 @@ -2388,7 +2388,7 @@ sp02A_crash_sound: @ 8081A1C ldr r0, _08081A2C @ =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl sub_808B700 + bl InitLinkPartnerTrainerCard pop {r0} bx r0 .align 2, 0 diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s index c9dd68e4b..8b2797dc8 100644 --- a/asm/dodrio_berry_picking.s +++ b/asm/dodrio_berry_picking.s @@ -10658,7 +10658,7 @@ _08155AA6: movs r0, 0 movs r1, 0 bl DrawDialogueFrame - ldr r2, _08155ACC @ =gUnknown_8419F54 + ldr r2, _08155ACC @ =gText_SavingDontTurnOffThePower2 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] @@ -10672,7 +10672,7 @@ _08155AA6: bl AddTextPrinterParameterized2 b _08155B08 .align 2, 0 -_08155ACC: .4byte gUnknown_8419F54 +_08155ACC: .4byte gText_SavingDontTurnOffThePower2 _08155AD0: movs r0, 0 movs r1, 0x3 diff --git a/asm/field_message_box.s b/asm/field_message_box.s index a326e0f59..183b5a3fb 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -75,7 +75,7 @@ _080693C4: lsls r0, 24 cmp r0, 0 bne _080693D4 - bl sub_80F6E9C + bl LoadStdWindowFrameGfx b _080693E2 _080693D4: bl sub_80F79A4 diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index fbb7cdc9c..36eacbf17 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -509,7 +509,7 @@ _080F21B2: movs r0, 0 movs r1, 0 bl DrawDialogueFrame - ldr r2, _080F2214 @ =gUnknown_8419F54 + ldr r2, _080F2214 @ =gText_SavingDontTurnOffThePower2 movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -543,7 +543,7 @@ _080F21B2: _080F2208: .4byte 0x000001ff _080F220C: .4byte gDecompressionBuffer _080F2210: .4byte gUnknown_203AB38 -_080F2214: .4byte gUnknown_8419F54 +_080F2214: .4byte gText_SavingDontTurnOffThePower2 _080F2218: .4byte gTasks _080F221C: .4byte sub_80F2220 thumb_func_end Task_Hof_InitTeamSaveData diff --git a/asm/item_menu.s b/asm/item_menu.s index e58abf87f..9b1ab2492 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -138,18 +138,18 @@ _08107EB0: .4byte gUnknown_203AD10 _08107EB4: .4byte gUnknown_203ACFC thumb_func_end sub_8107DB4 - thumb_func_start ReturnToBagFromKeyItem -ReturnToBagFromKeyItem: @ 8107EB8 + thumb_func_start CB2_BagMenuFromStartMenu +CB2_BagMenuFromStartMenu: @ 8107EB8 push {lr} - ldr r2, _08107EC8 @ =sub_80568A8 + ldr r2, _08107EC8 @ =CB2_ReturnToStartMenu movs r0, 0 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 -_08107EC8: .4byte sub_80568A8 - thumb_func_end ReturnToBagFromKeyItem +_08107EC8: .4byte CB2_ReturnToStartMenu + thumb_func_end CB2_BagMenuFromStartMenu thumb_func_start sub_8107ECC sub_8107ECC: @ 8107ECC diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 4ddbed23a..94a07fdaf 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -3252,7 +3252,7 @@ _08117384: lsls r0, 24 lsrs r0, 24 ldr r1, _081173BC @ =CB2_ReturnToField - bl sub_808B700 + bl InitLinkPartnerTrainerCard _081173A2: bl RunTasks bl RunTextPrinters @@ -5840,7 +5840,7 @@ _08118AD4: bl sub_811BEDC bl _081198DC _08118ADE: - ldr r0, _08118B00 @ =sub_806F1F0 + ldr r0, _08118B00 @ =Task_StartMenuHandleInput bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 @@ -5854,7 +5854,7 @@ _08118AEE: movs r0, 0x4 bl _081198DA .align 2, 0 -_08118B00: .4byte sub_806F1F0 +_08118B00: .4byte Task_StartMenuHandleInput _08118B04: bl sub_811A0E0 movs r3, 0x2 @@ -6975,7 +6975,7 @@ _081194DC: movs r0, 0x2F bl sub_8118664 _081194E4: - bl sub_80F7998 + bl DestroyHelpMessageWindow_ b _081198DC .align 2, 0 _081194EC: .4byte gUnknown_8458B44 @@ -7171,7 +7171,7 @@ _08119670: _0811967A: movs r0, 0x1 bl sub_811B258 - bl sub_80F7998 + bl DestroyHelpMessageWindow_ movs r0, 0x4 b _081198DA .align 2, 0 @@ -8482,7 +8482,7 @@ _0811A0B0: .4byte gTasks+0x8 sub_811A0B4: @ 811A0B4 push {r4,lr} adds r4, r0, 0 - bl sub_80F6E9C + bl LoadStdWindowFrameGfx movs r0, 0 movs r1, 0x1 bl DrawDialogueFrame @@ -8528,7 +8528,7 @@ sub_811A0F8: @ 811A0F8 beq _0811A130 b _0811A142 _0811A10A: - bl sub_80F6E9C + bl LoadStdWindowFrameGfx movs r0, 0 movs r1, 0x1 bl DrawDialogueFrame diff --git a/asm/naming_screen.s b/asm/naming_screen.s index ef692b052..09f4ca070 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -491,7 +491,7 @@ sub_809DD60: @ 809DD60 bl CreateTask ldr r0, _0809DD84 @ =sub_809FB70 bl SetMainCallback2 - bl sub_812B234 + bl HelpSystem_BackupSomeVariable movs r0, 0x3 bl HelpSystem_SetSomeVariable2 pop {r0} @@ -868,7 +868,7 @@ _0809E06C: ldr r0, [r4] bl Free str r5, [r4] - bl sub_812B248 + bl HelpSystem_RestoreSomeVariable _0809E096: movs r0, 0 pop {r4,r5} @@ -4490,7 +4490,7 @@ sub_809FC90: @ 809FC90 ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] - ldr r0, _0809FCB4 @ =sub_80568A8 + ldr r0, _0809FCB4 @ =CB2_ReturnToStartMenu str r0, [sp, 0x4] movs r0, 0 movs r3, 0 @@ -4500,7 +4500,7 @@ sub_809FC90: @ 809FC90 bx r0 .align 2, 0 _0809FCB0: .4byte gSaveBlock2Ptr -_0809FCB4: .4byte sub_80568A8 +_0809FCB4: .4byte CB2_ReturnToStartMenu thumb_func_end sub_809FC90 thumb_func_start sub_809FCB8 @@ -4512,7 +4512,7 @@ sub_809FCB8: @ 809FCB8 ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] - ldr r0, _0809FCDC @ =sub_80568A8 + ldr r0, _0809FCDC @ =CB2_ReturnToStartMenu str r0, [sp, 0x4] movs r0, 0x1 movs r3, 0 @@ -4522,7 +4522,7 @@ sub_809FCB8: @ 809FCB8 bx r0 .align 2, 0 _0809FCD8: .4byte gSaveBlock2Ptr -_0809FCDC: .4byte sub_80568A8 +_0809FCDC: .4byte CB2_ReturnToStartMenu thumb_func_end sub_809FCB8 thumb_func_start sub_809FCE0 @@ -4534,7 +4534,7 @@ sub_809FCE0: @ 809FCE0 ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] - ldr r0, _0809FD04 @ =sub_80568A8 + ldr r0, _0809FD04 @ =CB2_ReturnToStartMenu str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0 @@ -4544,7 +4544,7 @@ sub_809FCE0: @ 809FCE0 bx r0 .align 2, 0 _0809FD00: .4byte gSaveBlock2Ptr -_0809FD04: .4byte sub_80568A8 +_0809FD04: .4byte CB2_ReturnToStartMenu thumb_func_end sub_809FCE0 thumb_func_start sub_809FD08 @@ -4556,7 +4556,7 @@ sub_809FD08: @ 809FD08 ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] - ldr r0, _0809FD2C @ =sub_80568A8 + ldr r0, _0809FD2C @ =CB2_ReturnToStartMenu str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 @@ -4566,7 +4566,7 @@ sub_809FD08: @ 809FD08 bx r0 .align 2, 0 _0809FD28: .4byte gSaveBlock2Ptr -_0809FD2C: .4byte sub_80568A8 +_0809FD2C: .4byte CB2_ReturnToStartMenu thumb_func_end sub_809FD08 thumb_func_start sub_809FD30 @@ -4578,7 +4578,7 @@ sub_809FD30: @ 809FD30 ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] - ldr r0, _0809FD54 @ =sub_80568A8 + ldr r0, _0809FD54 @ =CB2_ReturnToStartMenu str r0, [sp, 0x4] movs r0, 0x4 movs r3, 0 @@ -4588,7 +4588,7 @@ sub_809FD30: @ 809FD30 bx r0 .align 2, 0 _0809FD50: .4byte gSaveBlock2Ptr -_0809FD54: .4byte sub_80568A8 +_0809FD54: .4byte CB2_ReturnToStartMenu thumb_func_end sub_809FD30 .align 2, 0 @ Don't pad with nop. diff --git a/asm/option_menu.s b/asm/option_menu.s index bb370f0ba..3b08810c5 100644 --- a/asm/option_menu.s +++ b/asm/option_menu.s @@ -26,14 +26,14 @@ sub_8088374: @ 8088374 bx r0 thumb_func_end sub_8088374 - thumb_func_start sub_8088388 -sub_8088388: @ 8088388 + thumb_func_start CB2_OptionsMenuFromStartMenu +CB2_OptionsMenuFromStartMenu: @ 8088388 push {r4-r6,lr} ldr r1, _08088418 @ =gMain ldr r0, [r1, 0x8] cmp r0, 0 bne _08088396 - ldr r0, _0808841C @ =sub_80568A8 + ldr r0, _0808841C @ =CB2_ReturnToStartMenu str r0, [r1, 0x8] _08088396: ldr r4, _08088420 @ =gUnknown_2039620 @@ -101,12 +101,12 @@ _080883FA: bx r0 .align 2, 0 _08088418: .4byte gMain -_0808841C: .4byte sub_80568A8 +_0808841C: .4byte CB2_ReturnToStartMenu _08088420: .4byte gUnknown_2039620 _08088424: .4byte gSaveBlock2Ptr _08088428: .4byte gUnknown_83CC304 _0808842C: .4byte sub_8088454 - thumb_func_end sub_8088388 + thumb_func_end CB2_OptionsMenuFromStartMenu thumb_func_start sub_8088430 sub_8088430: @ 8088430 diff --git a/asm/overworld.s b/asm/overworld.s index c3ff5e3c8..9bcd95eab 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3754,20 +3754,20 @@ _080568A0: .4byte gFieldCallback _080568A4: .4byte sub_807DDD0 thumb_func_end c2_8056854 - thumb_func_start sub_80568A8 -sub_80568A8: @ 80568A8 + thumb_func_start CB2_ReturnToStartMenu +CB2_ReturnToStartMenu: @ 80568A8 push {lr} bl sub_80569BC ldr r1, _080568BC @ =gFieldCallback2 - ldr r0, _080568C0 @ =sub_807E3BC + ldr r0, _080568C0 @ =FieldCB2_ReturnToStartMenuInit str r0, [r1] bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 _080568BC: .4byte gFieldCallback2 -_080568C0: .4byte sub_807E3BC - thumb_func_end sub_80568A8 +_080568C0: .4byte FieldCB2_ReturnToStartMenuInit + thumb_func_end CB2_ReturnToStartMenu thumb_func_start sub_80568C4 sub_80568C4: @ 80568C4 diff --git a/asm/party_menu.s b/asm/party_menu.s index b49a09347..58c6e3732 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -3616,10 +3616,10 @@ sub_8120658: @ 8120658 beq _08120678 cmp r0, 0x5 beq _0812067E - ldr r1, _08120674 @ =gUnknown_8416285 + ldr r1, _08120674 @ =gStartMenuText_Bag b _08120686 .align 2, 0 -_08120674: .4byte gUnknown_8416285 +_08120674: .4byte gStartMenuText_Bag _08120678: movs r0, 0xB6 lsls r0, 1 @@ -12231,7 +12231,7 @@ sub_8124AB0: @ 8124AB0 str r0, [sp] ldr r0, _08124AD4 @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _08124AD8 @ =sub_80568A8 + ldr r0, _08124AD8 @ =CB2_ReturnToStartMenu str r0, [sp, 0x8] movs r0, 0 movs r1, 0 @@ -12243,7 +12243,7 @@ sub_8124AB0: @ 8124AB0 bx r0 .align 2, 0 _08124AD4: .4byte sub_811FB28 -_08124AD8: .4byte sub_80568A8 +_08124AD8: .4byte CB2_ReturnToStartMenu thumb_func_end sub_8124AB0 thumb_func_start hm2_waterfall @@ -16634,7 +16634,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0 str r0, [sp] ldr r0, _08126ED4 @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _08126ED8 @ =sub_80568A8 + ldr r0, _08126ED8 @ =CB2_ReturnToStartMenu str r0, [sp, 0x8] movs r0, 0 movs r1, 0 @@ -16646,7 +16646,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0 bx r0 .align 2, 0 _08126ED4: .4byte sub_811FB28 -_08126ED8: .4byte sub_80568A8 +_08126ED8: .4byte CB2_ReturnToStartMenu thumb_func_end CB2_PartyMenuFromStartMenu thumb_func_start sub_8126EDC diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index b0b53da55..8320c5809 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -289,8 +289,8 @@ _081026D0: _08102758: .4byte gUnknown_84404C8 thumb_func_end sub_810250C - thumb_func_start sub_810275C -sub_810275C: @ 810275C + thumb_func_start CB2_OpenPokedexFromStartMenu +CB2_OpenPokedexFromStartMenu: @ 810275C push {lr} bl sub_810250C movs r1, 0xC0 @@ -314,7 +314,7 @@ sub_810275C: @ 810275C bx r0 .align 2, 0 _08102794: .4byte sub_81024D4 - thumb_func_end sub_810275C + thumb_func_end CB2_OpenPokedexFromStartMenu thumb_func_start sub_8102798 sub_8102798: @ 8102798 @@ -428,13 +428,13 @@ sub_8102858: @ 8102858 lsls r1, 7 movs r0, 0 bl SetGpuRegBits - ldr r0, _08102878 @ =sub_80568A8 + ldr r0, _08102878 @ =CB2_ReturnToStartMenu bl SetMainCallback2 _08102874: pop {r0} bx r0 .align 2, 0 -_08102878: .4byte sub_80568A8 +_08102878: .4byte CB2_ReturnToStartMenu thumb_func_end sub_8102858 thumb_func_start sub_810287C diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index c6daa62ea..f1188910d 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1417,7 +1417,7 @@ _0808C3E0: adds r1, r5, 0 adds r1, 0x26 bl sub_808C72C - bl sub_80F6E9C + bl LoadStdWindowFrameGfx movs r0, 0 movs r1, 0 bl DrawDialogueFrame diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index 09503af6a..aa9d375a3 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -158,16 +158,16 @@ _080F5240: adds r1, r0, 0 cmp r1, 0x1 bne _080F5260 - ldr r0, _080F5258 @ =gUnknown_3005420 + ldr r0, _080F5258 @ =gSaveSucceeded strh r1, [r0] ldr r0, _080F525C @ =gUnknown_8418E09 bl sub_80F5404 b _080F526C .align 2, 0 -_080F5258: .4byte gUnknown_3005420 +_080F5258: .4byte gSaveSucceeded _080F525C: .4byte gUnknown_8418E09 _080F5260: - ldr r0, _080F5274 @ =gUnknown_3005420 + ldr r0, _080F5274 @ =gSaveSucceeded movs r1, 0xFF strh r1, [r0] ldr r0, _080F5278 @ =gUnknown_8418CD9 @@ -178,7 +178,7 @@ _080F526C: strb r0, [r1] b _080F52D6 .align 2, 0 -_080F5274: .4byte gUnknown_3005420 +_080F5274: .4byte gSaveSucceeded _080F5278: .4byte gUnknown_8418CD9 _080F527C: .4byte gUnknown_203AB50 _080F5280: diff --git a/asm/save_menu_util.s b/asm/save_menu_util.s index 1cb9d85a3..8ebfc3731 100644 --- a/asm/save_menu_util.s +++ b/asm/save_menu_util.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80F7FCC -sub_80F7FCC: @ 80F7FCC + thumb_func_start SaveStatToString +SaveStatToString: @ 80F7FCC push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -144,6 +144,6 @@ _080F80D8: bx r0 .align 2, 0 _080F80E0: .4byte 0x00000827 - thumb_func_end sub_80F7FCC + thumb_func_end SaveStatToString .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index 59af843f1..56781a953 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -1127,7 +1127,7 @@ _0809D1FA: adds r1, r4, 0 adds r2, r7, 0 movs r3, 0x12 - bl sub_812E6DC + bl Menu_PrintFormatIntlPlayerName movs r0, 0x10 str r0, [sp] mov r0, r9 diff --git a/asm/start_menu.s b/asm/start_menu.s deleted file mode 100644 index 7ab76140f..000000000 --- a/asm/start_menu.s +++ /dev/null @@ -1,2219 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_806ED54 -sub_806ED54: @ 806ED54 - push {lr} - ldr r0, _0806ED6C @ =gUnknown_20370F5 - movs r1, 0 - strb r1, [r0] - bl IsUpdateLinkStateCBActive - cmp r0, 0x1 - bne _0806ED70 - bl sub_806EE34 - b _0806ED90 - .align 2, 0 -_0806ED6C: .4byte gUnknown_20370F5 -_0806ED70: - bl InUnionRoom - cmp r0, 0x1 - bne _0806ED7E - bl sub_806EE58 - b _0806ED90 -_0806ED7E: - bl GetSafariZoneFlag - cmp r0, 0x1 - bne _0806ED8C - bl sub_806EE04 - b _0806ED90 -_0806ED8C: - bl sub_806EDB0 -_0806ED90: - pop {r0} - bx r0 - thumb_func_end sub_806ED54 - - thumb_func_start sub_806ED94 -sub_806ED94: @ 806ED94 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0806EDA8 @ =gUnknown_20370F6 - ldr r1, _0806EDAC @ =gUnknown_20370F5 - bl AppendToList - pop {r0} - bx r0 - .align 2, 0 -_0806EDA8: .4byte gUnknown_20370F6 -_0806EDAC: .4byte gUnknown_20370F5 - thumb_func_end sub_806ED94 - - thumb_func_start sub_806EDB0 -sub_806EDB0: @ 806EDB0 - push {lr} - ldr r0, _0806EDFC @ =0x00000829 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806EDC6 - movs r0, 0 - bl sub_806ED94 -_0806EDC6: - ldr r0, _0806EE00 @ =0x00000828 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806EDDA - movs r0, 0x1 - bl sub_806ED94 -_0806EDDA: - movs r0, 0x2 - bl sub_806ED94 - movs r0, 0x3 - bl sub_806ED94 - movs r0, 0x4 - bl sub_806ED94 - movs r0, 0x5 - bl sub_806ED94 - movs r0, 0x6 - bl sub_806ED94 - pop {r0} - bx r0 - .align 2, 0 -_0806EDFC: .4byte 0x00000829 -_0806EE00: .4byte 0x00000828 - thumb_func_end sub_806EDB0 - - thumb_func_start sub_806EE04 -sub_806EE04: @ 806EE04 - push {lr} - movs r0, 0x7 - bl sub_806ED94 - movs r0, 0 - bl sub_806ED94 - movs r0, 0x1 - bl sub_806ED94 - movs r0, 0x2 - bl sub_806ED94 - movs r0, 0x3 - bl sub_806ED94 - movs r0, 0x5 - bl sub_806ED94 - movs r0, 0x6 - bl sub_806ED94 - pop {r0} - bx r0 - thumb_func_end sub_806EE04 - - thumb_func_start sub_806EE34 -sub_806EE34: @ 806EE34 - push {lr} - movs r0, 0x1 - bl sub_806ED94 - movs r0, 0x2 - bl sub_806ED94 - movs r0, 0x8 - bl sub_806ED94 - movs r0, 0x5 - bl sub_806ED94 - movs r0, 0x6 - bl sub_806ED94 - pop {r0} - bx r0 - thumb_func_end sub_806EE34 - - thumb_func_start sub_806EE58 -sub_806EE58: @ 806EE58 - push {lr} - movs r0, 0x1 - bl sub_806ED94 - movs r0, 0x2 - bl sub_806ED94 - movs r0, 0x3 - bl sub_806ED94 - movs r0, 0x5 - bl sub_806ED94 - movs r0, 0x6 - bl sub_806ED94 - pop {r0} - bx r0 - thumb_func_end sub_806EE58 - - thumb_func_start sub_806EE7C -sub_806EE7C: @ 806EE7C - push {r4,r5,lr} - sub sp, 0xC - ldr r4, _0806EEF4 @ =gUnknown_2037101 - ldr r0, _0806EEF8 @ =gUnknown_83A738C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0 - bl DrawStdWindowFrame - ldr r0, _0806EEFC @ =gStringVar1 - ldr r1, _0806EF00 @ =gSafariZoneStepCounter - ldrh r1, [r1] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _0806EF04 @ =gStringVar2 - movs r1, 0x96 - lsls r1, 2 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _0806EF08 @ =gStringVar3 - ldr r1, _0806EF0C @ =gNumSafariBalls - ldrb r1, [r1] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _0806EF10 @ =gStringVar4 - ldr r1, _0806EF14 @ =gUnknown_84162A9 - adds r0, r5, 0 - bl StringExpandPlaceholders - ldrb r0, [r4] - movs r1, 0x3 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - adds r2, r5, 0 - movs r3, 0x4 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EEF4: .4byte gUnknown_2037101 -_0806EEF8: .4byte gUnknown_83A738C -_0806EEFC: .4byte gStringVar1 -_0806EF00: .4byte gSafariZoneStepCounter -_0806EF04: .4byte gStringVar2 -_0806EF08: .4byte gStringVar3 -_0806EF0C: .4byte gNumSafariBalls -_0806EF10: .4byte gStringVar4 -_0806EF14: .4byte gUnknown_84162A9 - thumb_func_end sub_806EE7C - - thumb_func_start sub_806EF18 -sub_806EF18: @ 806EF18 - push {r4,lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _0806EF3A - ldr r4, _0806EF40 @ =gUnknown_2037101 - ldrb r0, [r4] - movs r1, 0 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow -_0806EF3A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EF40: .4byte gUnknown_2037101 - thumb_func_end sub_806EF18 - - thumb_func_start sub_806EF44 -sub_806EF44: @ 806EF44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _0806EF9C @ =gUnknown_83A7344 - mov r10, r0 - ldr r1, _0806EFA0 @ =gStringVar4 - mov r9, r1 -_0806EF68: - ldr r1, _0806EFA4 @ =gUnknown_20370F6 - lsls r0, r2, 16 - asrs r5, r0, 16 - adds r4, r5, r1 - ldrb r1, [r4] - adds r7, r0, 0 - cmp r1, 0x3 - beq _0806EF7C - cmp r1, 0x8 - bne _0806EFA8 -_0806EF7C: - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - lsls r1, 3 - add r1, r10 - ldr r1, [r1] - lsls r3, r5, 4 - subs r3, r5 - lsls r3, 16 - lsrs r3, 16 - movs r2, 0x8 - bl sub_812E6DC - b _0806EFDA - .align 2, 0 -_0806EF9C: .4byte gUnknown_83A7344 -_0806EFA0: .4byte gStringVar4 -_0806EFA4: .4byte gUnknown_20370F6 -_0806EFA8: - ldrb r0, [r4] - lsls r0, 3 - add r0, r10 - ldr r1, [r0] - mov r0, r9 - bl StringExpandPlaceholders - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - lsls r1, r5, 4 - subs r1, r5 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - mov r2, r9 - movs r3, 0x8 - bl AddTextPrinterParameterized -_0806EFDA: - movs r0, 0x80 - lsls r0, 9 - adds r1, r7, r0 - lsrs r2, r1, 16 - asrs r1, 16 - ldr r0, _0806F000 @ =gUnknown_20370F5 - ldrb r0, [r0] - cmp r1, r0 - bge _0806F004 - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _0806EF68 - mov r1, r8 - strb r2, [r1] - movs r0, 0 - b _0806F00A - .align 2, 0 -_0806F000: .4byte gUnknown_20370F5 -_0806F004: - mov r0, r8 - strb r2, [r0] - movs r0, 0x1 -_0806F00A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806EF44 - - thumb_func_start sub_806F01C -sub_806F01C: @ 806F01C - push {r4,lr} - sub sp, 0xC - ldr r0, _0806F038 @ =gUnknown_20370FF - movs r1, 0 - ldrsb r1, [r0, r1] - adds r2, r0, 0 - cmp r1, 0x5 - bls _0806F02E - b _0806F140 -_0806F02E: - lsls r0, r1, 2 - ldr r1, _0806F03C @ =_0806F040 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F038: .4byte gUnknown_20370FF -_0806F03C: .4byte _0806F040 - .align 2, 0 -_0806F040: - .4byte _0806F058 - .4byte _0806F060 - .4byte _0806F06C - .4byte _0806F090 - .4byte _0806F0A4 - .4byte _0806F0C4 -_0806F058: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _0806F140 -_0806F060: - bl sub_806ED54 - ldr r1, _0806F068 @ =gUnknown_20370FF - b _0806F0B8 - .align 2, 0 -_0806F068: .4byte gUnknown_20370FF -_0806F06C: - bl sub_80F6E9C - ldr r0, _0806F088 @ =gUnknown_20370F5 - ldrb r0, [r0] - bl sub_80F78E0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl DrawStdWindowFrame - ldr r1, _0806F08C @ =gUnknown_20370FF - b _0806F0B8 - .align 2, 0 -_0806F088: .4byte gUnknown_20370F5 -_0806F08C: .4byte gUnknown_20370FF -_0806F090: - bl GetSafariZoneFlag - cmp r0, 0 - beq _0806F09C - bl sub_806EE7C -_0806F09C: - ldr r1, _0806F0A0 @ =gUnknown_20370FF - b _0806F0B8 - .align 2, 0 -_0806F0A0: .4byte gUnknown_20370FF -_0806F0A4: - ldr r4, _0806F0C0 @ =gUnknown_2037100 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_806EF44 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0806F140 - subs r1, r4, 0x1 -_0806F0B8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0806F140 - .align 2, 0 -_0806F0C0: .4byte gUnknown_2037100 -_0806F0C4: - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xF - str r1, [sp] - ldr r1, _0806F12C @ =gUnknown_20370F5 - ldrb r1, [r1] - str r1, [sp, 0x4] - ldr r4, _0806F130 @ =gUnknown_20370F4 - ldrb r1, [r4] - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0 - bl Menu_InitCursor - strb r0, [r4] - bl MenuHelpers_LinkSomething - lsls r0, 24 - cmp r0, 0 - bne _0806F118 - bl InUnionRoom - cmp r0, 0x1 - beq _0806F118 - ldr r0, _0806F134 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0806F118 - ldr r2, _0806F138 @ =gUnknown_83A7394 - ldr r1, _0806F13C @ =gUnknown_20370F6 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - bl sub_80F7974 -_0806F118: - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x1 - b _0806F142 - .align 2, 0 -_0806F12C: .4byte gUnknown_20370F5 -_0806F130: .4byte gUnknown_20370F4 -_0806F134: .4byte gSaveBlock2Ptr -_0806F138: .4byte gUnknown_83A7394 -_0806F13C: .4byte gUnknown_20370F6 -_0806F140: - movs r0, 0 -_0806F142: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806F01C - - thumb_func_start sub_806F14C -sub_806F14C: @ 806F14C - push {lr} - ldr r1, _0806F164 @ =gUnknown_20370FF - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] -_0806F156: - bl sub_806F01C - lsls r0, 24 - cmp r0, 0 - beq _0806F156 - pop {r0} - bx r0 - .align 2, 0 -_0806F164: .4byte gUnknown_20370FF - thumb_func_end sub_806F14C - - thumb_func_start task50_startmenu -task50_startmenu: @ 806F168 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_806F01C - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0806F180 - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_0806F180: - pop {r4} - pop {r0} - bx r0 - thumb_func_end task50_startmenu - - thumb_func_start sub_806F188 -sub_806F188: @ 806F188 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _0806F1B0 @ =gUnknown_20370FF - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - ldr r4, _0806F1B4 @ =task50_startmenu - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F1B0: .4byte gUnknown_20370FF -_0806F1B4: .4byte task50_startmenu - thumb_func_end sub_806F188 - - thumb_func_start sub_806F1B8 -sub_806F1B8: @ 806F1B8 - push {lr} - bl sub_806F01C - lsls r0, 24 - cmp r0, 0 - beq _0806F1CC - bl sub_807E3A0 - movs r0, 0x1 - b _0806F1CE -_0806F1CC: - movs r0, 0 -_0806F1CE: - pop {r1} - bx r1 - thumb_func_end sub_806F1B8 - - thumb_func_start sub_806F1D4 -sub_806F1D4: @ 806F1D4 - ldr r1, _0806F1E4 @ =gUnknown_20370FF - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - ldr r1, _0806F1E8 @ =gFieldCallback2 - ldr r0, _0806F1EC @ =sub_806F1B8 - str r0, [r1] - bx lr - .align 2, 0 -_0806F1E4: .4byte gUnknown_20370FF -_0806F1E8: .4byte gFieldCallback2 -_0806F1EC: .4byte sub_806F1B8 - thumb_func_end sub_806F1D4 - - thumb_func_start sub_806F1F0 -sub_806F1F0: @ 806F1F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0806F210 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0806F214 - cmp r0, 0x1 - beq _0806F238 - b _0806F24E - .align 2, 0 -_0806F210: .4byte gTasks+0x8 -_0806F214: - bl InUnionRoom - cmp r0, 0x1 - bne _0806F220 - bl var_800D_set_xB -_0806F220: - ldr r1, _0806F230 @ =gUnknown_20370F0 - ldr r0, _0806F234 @ =sub_806F280 - str r0, [r1] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0806F24E - .align 2, 0 -_0806F230: .4byte gUnknown_20370F0 -_0806F234: .4byte sub_806F280 -_0806F238: - ldr r0, _0806F254 @ =gUnknown_20370F0 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806F24E - adds r0, r5, 0 - bl DestroyTask -_0806F24E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F254: .4byte gUnknown_20370F0 - thumb_func_end sub_806F1F0 - - thumb_func_start ShowStartMenu -ShowStartMenu: @ 806F258 - push {lr} - bl IsUpdateLinkStateCBActive - cmp r0, 0 - bne _0806F26E - bl player_bitmagic - bl sub_805C270 - bl sub_805C780 -_0806F26E: - ldr r0, _0806F27C @ =sub_806F1F0 - bl sub_806F188 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0806F27C: .4byte sub_806F1F0 - thumb_func_end ShowStartMenu - - thumb_func_start sub_806F280 -sub_806F280: @ 806F280 - push {r4,lr} - ldr r0, _0806F35C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0806F2D2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl Menu_MoveCursor - ldr r4, _0806F360 @ =gUnknown_20370F4 - strb r0, [r4] - bl MenuHelpers_LinkSomething - lsls r0, 24 - cmp r0, 0 - bne _0806F2D2 - bl InUnionRoom - cmp r0, 0x1 - beq _0806F2D2 - ldr r0, _0806F364 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0806F2D2 - ldr r2, _0806F368 @ =gUnknown_83A7394 - ldr r1, _0806F36C @ =gUnknown_20370F6 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - bl sub_8113018 -_0806F2D2: - ldr r0, _0806F35C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F320 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl Menu_MoveCursor - ldr r4, _0806F360 @ =gUnknown_20370F4 - strb r0, [r4] - bl MenuHelpers_LinkSomething - lsls r0, 24 - cmp r0, 0 - bne _0806F320 - bl InUnionRoom - cmp r0, 0x1 - beq _0806F320 - ldr r0, _0806F364 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0806F320 - ldr r2, _0806F368 @ =gUnknown_83A7394 - ldr r1, _0806F36C @ =gUnknown_20370F6 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - bl sub_8113018 -_0806F320: - ldr r0, _0806F35C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806F378 - movs r0, 0x5 - bl PlaySE - bl sub_806F3CC - lsls r0, 24 - cmp r0, 0 - beq _0806F358 - ldr r3, _0806F370 @ =gUnknown_20370F0 - ldr r1, _0806F374 @ =gUnknown_83A7344 - ldr r2, _0806F36C @ =gUnknown_20370F6 - ldr r0, _0806F360 @ =gUnknown_20370F4 - ldrb r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [r3] - bl sub_806F394 -_0806F358: - movs r0, 0 - b _0806F38E - .align 2, 0 -_0806F35C: .4byte gMain -_0806F360: .4byte gUnknown_20370F4 -_0806F364: .4byte gSaveBlock2Ptr -_0806F368: .4byte gUnknown_83A7394 -_0806F36C: .4byte gUnknown_20370F6 -_0806F370: .4byte gUnknown_20370F0 -_0806F374: .4byte gUnknown_83A7344 -_0806F378: - movs r0, 0xA - ands r0, r1 - cmp r0, 0 - beq _0806F358 - bl sub_806EF18 - bl sub_80F7998 - bl sub_806FEA0 - movs r0, 0x1 -_0806F38E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806F280 - - thumb_func_start sub_806F394 -sub_806F394: @ 806F394 - push {lr} - ldr r0, _0806F3BC @ =gUnknown_20370F0 - ldr r1, [r0] - ldr r0, _0806F3C0 @ =sub_806F4E8 - cmp r1, r0 - beq _0806F3B8 - ldr r0, _0806F3C4 @ =sub_806F540 - cmp r1, r0 - beq _0806F3B8 - ldr r0, _0806F3C8 @ =sub_806F554 - cmp r1, r0 - beq _0806F3B8 - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen -_0806F3B8: - pop {r0} - bx r0 - .align 2, 0 -_0806F3BC: .4byte gUnknown_20370F0 -_0806F3C0: .4byte sub_806F4E8 -_0806F3C4: .4byte sub_806F540 -_0806F3C8: .4byte sub_806F554 - thumb_func_end sub_806F394 - - thumb_func_start sub_806F3CC -sub_806F3CC: @ 806F3CC - push {lr} - ldr r1, _0806F3F8 @ =gUnknown_83A7344 - ldr r2, _0806F3FC @ =gUnknown_20370F6 - ldr r0, _0806F400 @ =gUnknown_20370F4 - ldrb r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - ldr r0, _0806F404 @ =sub_806F410 - cmp r1, r0 - bne _0806F408 - movs r0, 0 - bl GetNationalPokedexCount - lsls r0, 16 - cmp r0, 0 - bne _0806F408 - movs r0, 0 - b _0806F40A - .align 2, 0 -_0806F3F8: .4byte gUnknown_83A7344 -_0806F3FC: .4byte gUnknown_20370F6 -_0806F400: .4byte gUnknown_20370F4 -_0806F404: .4byte sub_806F410 -_0806F408: - movs r0, 0x1 -_0806F40A: - pop {r1} - bx r1 - thumb_func_end sub_806F3CC - - thumb_func_start sub_806F410 -sub_806F410: @ 806F410 - push {lr} - ldr r0, _0806F424 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F428 - movs r0, 0 - b _0806F442 - .align 2, 0 -_0806F424: .4byte gPaletteFade -_0806F428: - movs r0, 0x29 - bl IncrementGameStat - bl PlayRainStoppingSoundEffect - bl sub_806EF18 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F448 @ =sub_810275C - bl SetMainCallback2 - movs r0, 0x1 -_0806F442: - pop {r1} - bx r1 - .align 2, 0 -_0806F448: .4byte sub_810275C - thumb_func_end sub_806F410 - - thumb_func_start sub_806F44C -sub_806F44C: @ 806F44C - push {lr} - ldr r0, _0806F460 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F464 - movs r0, 0 - b _0806F478 - .align 2, 0 -_0806F460: .4byte gPaletteFade -_0806F464: - bl PlayRainStoppingSoundEffect - bl sub_806EF18 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu - bl SetMainCallback2 - movs r0, 0x1 -_0806F478: - pop {r1} - bx r1 - .align 2, 0 -_0806F47C: .4byte CB2_PartyMenuFromStartMenu - thumb_func_end sub_806F44C - - thumb_func_start sub_806F480 -sub_806F480: @ 806F480 - push {lr} - ldr r0, _0806F494 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F498 - movs r0, 0 - b _0806F4AC - .align 2, 0 -_0806F494: .4byte gPaletteFade -_0806F498: - bl PlayRainStoppingSoundEffect - bl sub_806EF18 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem - bl SetMainCallback2 - movs r0, 0x1 -_0806F4AC: - pop {r1} - bx r1 - .align 2, 0 -_0806F4B0: .4byte ReturnToBagFromKeyItem - thumb_func_end sub_806F480 - - thumb_func_start sub_806F4B4 -sub_806F4B4: @ 806F4B4 - push {lr} - ldr r0, _0806F4C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F4CC - movs r0, 0 - b _0806F4E0 - .align 2, 0 -_0806F4C8: .4byte gPaletteFade -_0806F4CC: - bl PlayRainStoppingSoundEffect - bl sub_806EF18 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F4E4 @ =sub_80568A8 - bl sub_808B698 - movs r0, 0x1 -_0806F4E0: - pop {r1} - bx r1 - .align 2, 0 -_0806F4E4: .4byte sub_80568A8 - thumb_func_end sub_806F4B4 - - thumb_func_start sub_806F4E8 -sub_806F4E8: @ 806F4E8 - ldr r1, _0806F4F4 @ =gUnknown_20370F0 - ldr r0, _0806F4F8 @ =sub_806F5A4 - str r0, [r1] - movs r0, 0 - bx lr - .align 2, 0 -_0806F4F4: .4byte gUnknown_20370F0 -_0806F4F8: .4byte sub_806F5A4 - thumb_func_end sub_806F4E8 - - thumb_func_start sub_806F4FC -sub_806F4FC: @ 806F4FC - push {lr} - ldr r0, _0806F510 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F514 - movs r0, 0 - b _0806F52E - .align 2, 0 -_0806F510: .4byte gPaletteFade -_0806F514: - bl PlayRainStoppingSoundEffect - bl sub_806EF18 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F534 @ =sub_8088388 - bl SetMainCallback2 - ldr r1, _0806F538 @ =gMain - ldr r0, _0806F53C @ =sub_80568A8 - str r0, [r1, 0x8] - movs r0, 0x1 -_0806F52E: - pop {r1} - bx r1 - .align 2, 0 -_0806F534: .4byte sub_8088388 -_0806F538: .4byte gMain -_0806F53C: .4byte sub_80568A8 - thumb_func_end sub_806F4FC - - thumb_func_start sub_806F540 -sub_806F540: @ 806F540 - push {lr} - bl sub_806EF18 - bl sub_80F7998 - bl sub_806FEA0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806F540 - - thumb_func_start sub_806F554 -sub_806F554: @ 806F554 - push {lr} - bl sub_806EF18 - bl sub_80F7998 - bl sub_806FEA0 - bl SafariZoneRetirePrompt - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806F554 - - thumb_func_start sub_806F56C -sub_806F56C: @ 806F56C - push {lr} - ldr r0, _0806F580 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806F584 - movs r0, 0 - b _0806F598 - .align 2, 0 -_0806F580: .4byte gPaletteFade -_0806F584: - bl PlayRainStoppingSoundEffect - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0806F59C @ =gUnknown_300502C - ldrb r0, [r0] - ldr r1, _0806F5A0 @ =sub_80568A8 - bl sub_808B700 - movs r0, 0x1 -_0806F598: - pop {r1} - bx r1 - .align 2, 0 -_0806F59C: .4byte gUnknown_300502C -_0806F5A0: .4byte sub_80568A8 - thumb_func_end sub_806F56C - - thumb_func_start sub_806F5A4 -sub_806F5A4: @ 806F5A4 - push {lr} - bl sub_812B234 - movs r0, 0xC - bl HelpSystem_SetSomeVariable2 - bl sub_806F624 - ldr r1, _0806F5C0 @ =gUnknown_20370F0 - ldr r0, _0806F5C4 @ =sub_806F5C8 - str r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F5C0: .4byte gUnknown_20370F0 -_0806F5C4: .4byte sub_806F5C8 - thumb_func_end sub_806F5A4 - - thumb_func_start sub_806F5C8 -sub_806F5C8: @ 806F5C8 - push {lr} - bl sub_806F648 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806F604 - cmp r0, 0x1 - ble _0806F61C - cmp r0, 0x2 - beq _0806F5E4 - cmp r0, 0x3 - beq _0806F604 - b _0806F61C -_0806F5E4: - movs r0, 0 - movs r1, 0 - bl ClearDialogWindowAndFrameToTransparent - bl sub_806F14C - bl sub_812B248 - ldr r1, _0806F5FC @ =gUnknown_20370F0 - ldr r0, _0806F600 @ =sub_806F280 - str r0, [r1] - b _0806F61C - .align 2, 0 -_0806F5FC: .4byte gUnknown_20370F0 -_0806F600: .4byte sub_806F280 -_0806F604: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrameToTransparent - bl sub_80696C0 - bl ScriptContext2_Disable - bl sub_812B248 - movs r0, 0x1 - b _0806F61E -_0806F61C: - movs r0, 0 -_0806F61E: - pop {r1} - bx r1 - thumb_func_end sub_806F5C8 - - thumb_func_start sub_806F624 -sub_806F624: @ 806F624 - push {lr} - bl save_serialize_map - ldr r1, _0806F63C @ =gUnknown_3000FA4 - ldr r0, _0806F640 @ =sub_806F7A8 - str r0, [r1] - ldr r1, _0806F644 @ =gUnknown_3000FA9 - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0806F63C: .4byte gUnknown_3000FA4 -_0806F640: .4byte sub_806F7A8 -_0806F644: .4byte gUnknown_3000FA9 - thumb_func_end sub_806F624 - - thumb_func_start sub_806F648 -sub_806F648: @ 806F648 - push {lr} - bl RunTextPrinters_CheckPrinter0Active - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _0806F674 - ldr r1, _0806F66C @ =gUnknown_3000FA9 - movs r0, 0 - strb r0, [r1] - ldr r0, _0806F670 @ =gUnknown_3000FA4 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - b _0806F676 - .align 2, 0 -_0806F66C: .4byte gUnknown_3000FA9 -_0806F670: .4byte gUnknown_3000FA4 -_0806F674: - movs r0, 0 -_0806F676: - pop {r1} - bx r1 - thumb_func_end sub_806F648 - - thumb_func_start sub_806F67C -sub_806F67C: @ 806F67C - push {lr} - bl sub_812B234 - movs r0, 0xC - bl HelpSystem_SetSomeVariable2 - bl sub_806F624 - ldr r0, _0806F698 @ =task50_save_game - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0806F698: .4byte task50_save_game - thumb_func_end sub_806F67C - - thumb_func_start sub_806F69C -sub_806F69C: @ 806F69C - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldr r0, _0806F6C8 @ =gStringVar4 - adds r1, r2, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0x1 - bl sub_80F7768 - movs r0, 0x1 - bl AddTextPrinterForMessage - ldr r1, _0806F6CC @ =gUnknown_3000FA9 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _0806F6D0 @ =gUnknown_3000FA4 - str r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F6C8: .4byte gStringVar4 -_0806F6CC: .4byte gUnknown_3000FA9 -_0806F6D0: .4byte gUnknown_3000FA4 - thumb_func_end sub_806F69C - - thumb_func_start task50_save_game -task50_save_game: @ 806F6D4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_806F648 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - beq _0806F700 - cmp r1, 0x1 - bgt _0806F6F0 - cmp r1, 0 - beq _0806F712 - b _0806F704 -_0806F6F0: - cmp r1, 0x3 - bgt _0806F704 - ldr r1, _0806F6FC @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - b _0806F704 - .align 2, 0 -_0806F6FC: .4byte gSpecialVar_Result -_0806F700: - ldr r0, _0806F718 @ =gSpecialVar_Result - strh r1, [r0] -_0806F704: - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl sub_812B248 -_0806F712: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F718: .4byte gSpecialVar_Result - thumb_func_end task50_save_game - - thumb_func_start sub_806F71C -sub_806F71C: @ 806F71C - push {lr} - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - pop {r0} - bx r0 - thumb_func_end sub_806F71C - - thumb_func_start sub_806F72C -sub_806F72C: @ 806F72C - push {lr} - bl sub_806FE84 - pop {r0} - bx r0 - thumb_func_end sub_806F72C - - thumb_func_start sub_806F738 -sub_806F738: @ 806F738 - ldr r1, _0806F740 @ =gUnknown_3000FA8 - movs r0, 0x3C - strb r0, [r1] - bx lr - .align 2, 0 -_0806F740: .4byte gUnknown_3000FA8 - thumb_func_end sub_806F738 - - thumb_func_start sub_806F744 -sub_806F744: @ 806F744 - push {lr} - ldr r1, _0806F764 @ =gUnknown_3000FA8 - ldrb r0, [r1] - subs r2, r0, 0x1 - strb r2, [r1] - ldr r0, _0806F768 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806F76C - lsls r0, r2, 24 - cmp r0, 0 - beq _0806F772 - movs r0, 0 - b _0806F774 - .align 2, 0 -_0806F764: .4byte gUnknown_3000FA8 -_0806F768: .4byte gMain -_0806F76C: - movs r0, 0x5 - bl PlaySE -_0806F772: - movs r0, 0x1 -_0806F774: - pop {r1} - bx r1 - thumb_func_end sub_806F744 - - thumb_func_start sub_806F778 -sub_806F778: @ 806F778 - push {lr} - ldr r1, _0806F794 @ =gUnknown_3000FA8 - ldrb r0, [r1] - cmp r0, 0 - bne _0806F79C - ldr r0, _0806F798 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806F7A0 - movs r0, 0x1 - b _0806F7A2 - .align 2, 0 -_0806F794: .4byte gUnknown_3000FA8 -_0806F798: .4byte gMain -_0806F79C: - subs r0, 0x1 - strb r0, [r1] -_0806F7A0: - movs r0, 0 -_0806F7A2: - pop {r1} - bx r1 - thumb_func_end sub_806F778 - - thumb_func_start sub_806F7A8 -sub_806F7A8: @ 806F7A8 - push {lr} - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl ClearStdWindowAndFrame - bl RemoveStartMenuWindow - movs r0, 0 - bl sub_8112EDC - bl sub_806FCF4 - ldr r0, _0806F7D4 @ =gUnknown_81C55C9 - ldr r1, _0806F7D8 @ =sub_806F7DC - bl sub_806F69C - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F7D4: .4byte gUnknown_81C55C9 -_0806F7D8: .4byte sub_806F7DC - thumb_func_end sub_806F7A8 - - thumb_func_start sub_806F7DC -sub_806F7DC: @ 806F7DC - push {lr} - bl DisplayYesNoMenuDefaultYes - ldr r1, _0806F7F0 @ =gUnknown_3000FA4 - ldr r0, _0806F7F4 @ =sub_806F7F8 - str r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F7F0: .4byte gUnknown_3000FA4 -_0806F7F4: .4byte sub_806F7F8 - thumb_func_end sub_806F7DC - - thumb_func_start sub_806F7F8 -sub_806F7F8: @ 806F7F8 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0806F81A - cmp r1, 0 - bgt _0806F814 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0806F858 - b _0806F864 -_0806F814: - cmp r1, 0x1 - beq _0806F858 - b _0806F864 -_0806F81A: - ldr r0, _0806F838 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0806F826 - cmp r0, 0x2 - bne _0806F82E -_0806F826: - ldr r0, _0806F83C @ =gDifferentSaveFile - ldrb r0, [r0] - cmp r0, 0 - bne _0806F848 -_0806F82E: - ldr r1, _0806F840 @ =gUnknown_3000FA4 - ldr r0, _0806F844 @ =sub_806F86C - str r0, [r1] - b _0806F864 - .align 2, 0 -_0806F838: .4byte gSaveFileStatus -_0806F83C: .4byte gDifferentSaveFile -_0806F840: .4byte gUnknown_3000FA4 -_0806F844: .4byte sub_806F86C -_0806F848: - ldr r1, _0806F850 @ =gUnknown_3000FA4 - ldr r0, _0806F854 @ =sub_806F924 - str r0, [r1] - b _0806F864 - .align 2, 0 -_0806F850: .4byte gUnknown_3000FA4 -_0806F854: .4byte sub_806F924 -_0806F858: - bl sub_806F72C - bl sub_806F71C - movs r0, 0x2 - b _0806F866 -_0806F864: - movs r0, 0 -_0806F866: - pop {r1} - bx r1 - thumb_func_end sub_806F7F8 - - thumb_func_start sub_806F86C -sub_806F86C: @ 806F86C - push {lr} - ldr r0, _0806F880 @ =gDifferentSaveFile - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806F88C - ldr r0, _0806F884 @ =gUnknown_81C566A - ldr r1, _0806F888 @ =sub_806F8C0 - bl sub_806F69C - b _0806F894 - .align 2, 0 -_0806F880: .4byte gDifferentSaveFile -_0806F884: .4byte gUnknown_81C566A -_0806F888: .4byte sub_806F8C0 -_0806F88C: - ldr r0, _0806F89C @ =gUnknown_81C55EA - ldr r1, _0806F8A0 @ =sub_806F8A4 - bl sub_806F69C -_0806F894: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F89C: .4byte gUnknown_81C55EA -_0806F8A0: .4byte sub_806F8A4 - thumb_func_end sub_806F86C - - thumb_func_start sub_806F8A4 -sub_806F8A4: @ 806F8A4 - push {lr} - bl DisplayYesNoMenuDefaultYes - ldr r1, _0806F8B8 @ =gUnknown_3000FA4 - ldr r0, _0806F8BC @ =sub_806F8DC - str r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F8B8: .4byte gUnknown_3000FA4 -_0806F8BC: .4byte sub_806F8DC - thumb_func_end sub_806F8A4 - - thumb_func_start sub_806F8C0 -sub_806F8C0: @ 806F8C0 - push {lr} - bl DisplayYesNoMenuDefaultNo - ldr r1, _0806F8D4 @ =gUnknown_3000FA4 - ldr r0, _0806F8D8 @ =sub_806F8DC - str r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F8D4: .4byte gUnknown_3000FA4 -_0806F8D8: .4byte sub_806F8DC - thumb_func_end sub_806F8C0 - - thumb_func_start sub_806F8DC -sub_806F8DC: @ 806F8DC - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0806F8FE - cmp r1, 0 - bgt _0806F8F8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0806F910 - b _0806F91C -_0806F8F8: - cmp r1, 0x1 - beq _0806F910 - b _0806F91C -_0806F8FE: - ldr r1, _0806F908 @ =gUnknown_3000FA4 - ldr r0, _0806F90C @ =sub_806F924 - str r0, [r1] - b _0806F91C - .align 2, 0 -_0806F908: .4byte gUnknown_3000FA4 -_0806F90C: .4byte sub_806F924 -_0806F910: - bl sub_806F72C - bl sub_806F71C - movs r0, 0x2 - b _0806F91E -_0806F91C: - movs r0, 0 -_0806F91E: - pop {r1} - bx r1 - thumb_func_end sub_806F8DC - - thumb_func_start sub_806F924 -sub_806F924: @ 806F924 - push {lr} - bl sub_8112450 - ldr r0, _0806F938 @ =gUnknown_81C5625 - ldr r1, _0806F93C @ =sub_806F940 - bl sub_806F69C - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F938: .4byte gUnknown_81C5625 -_0806F93C: .4byte sub_806F940 - thumb_func_end sub_806F924 - - thumb_func_start sub_806F940 -sub_806F940: @ 806F940 - push {r4,lr} - movs r0, 0 - bl IncrementGameStat - ldr r4, _0806F95C @ =gDifferentSaveFile - ldrb r0, [r4] - cmp r0, 0x1 - bne _0806F960 - movs r0, 0x4 - bl TrySavingData - movs r0, 0 - strb r0, [r4] - b _0806F966 - .align 2, 0 -_0806F95C: .4byte gDifferentSaveFile -_0806F960: - movs r0, 0 - bl TrySavingData -_0806F966: - ldr r1, _0806F974 @ =gUnknown_3000FA4 - ldr r0, _0806F978 @ =sub_806F97C - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806F974: .4byte gUnknown_3000FA4 -_0806F978: .4byte sub_806F97C - thumb_func_end sub_806F940 - - thumb_func_start sub_806F97C -sub_806F97C: @ 806F97C - push {lr} - ldr r0, _0806F990 @ =gUnknown_3005420 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0806F99C - ldr r0, _0806F994 @ =gUnknown_81C5647 - ldr r1, _0806F998 @ =sub_806F9B8 - bl sub_806F69C - b _0806F9A4 - .align 2, 0 -_0806F990: .4byte gUnknown_3005420 -_0806F994: .4byte gUnknown_81C5647 -_0806F998: .4byte sub_806F9B8 -_0806F99C: - ldr r0, _0806F9B0 @ =gUnknown_841614B - ldr r1, _0806F9B4 @ =sub_806FA04 - bl sub_806F69C -_0806F9A4: - bl sub_806F738 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F9B0: .4byte gUnknown_841614B -_0806F9B4: .4byte sub_806FA04 - thumb_func_end sub_806F97C - - thumb_func_start sub_806F9B8 -sub_806F9B8: @ 806F9B8 - push {lr} - bl RunTextPrinters_CheckPrinter0Active - lsls r0, 16 - cmp r0, 0 - bne _0806F9D0 - movs r0, 0x30 - bl PlaySE - ldr r1, _0806F9D8 @ =gUnknown_3000FA4 - ldr r0, _0806F9DC @ =SaveDialogCB_ReturnSuccess - str r0, [r1] -_0806F9D0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806F9D8: .4byte gUnknown_3000FA4 -_0806F9DC: .4byte SaveDialogCB_ReturnSuccess - thumb_func_end sub_806F9B8 - - thumb_func_start SaveDialogCB_ReturnSuccess -SaveDialogCB_ReturnSuccess: @ 806F9E0 - push {lr} - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _0806F9FE - bl sub_806F744 - lsls r0, 24 - cmp r0, 0 - beq _0806F9FE - bl sub_806F72C - movs r0, 0x1 - b _0806FA00 -_0806F9FE: - movs r0, 0 -_0806FA00: - pop {r1} - bx r1 - thumb_func_end SaveDialogCB_ReturnSuccess - - thumb_func_start sub_806FA04 -sub_806FA04: @ 806FA04 - push {lr} - bl RunTextPrinters_CheckPrinter0Active - lsls r0, 16 - cmp r0, 0 - bne _0806FA1C - movs r0, 0x16 - bl PlaySE - ldr r1, _0806FA24 @ =gUnknown_3000FA4 - ldr r0, _0806FA28 @ =SaveDialogCB_ReturnError - str r0, [r1] -_0806FA1C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806FA24: .4byte gUnknown_3000FA4 -_0806FA28: .4byte SaveDialogCB_ReturnError - thumb_func_end sub_806FA04 - - thumb_func_start SaveDialogCB_ReturnError -SaveDialogCB_ReturnError: @ 806FA2C - push {lr} - bl sub_806F778 - lsls r0, 24 - cmp r0, 0 - beq _0806FA40 - bl sub_806F72C - movs r0, 0x3 - b _0806FA42 -_0806FA40: - movs r0, 0 -_0806FA42: - pop {r1} - bx r1 - thumb_func_end SaveDialogCB_ReturnError - - thumb_func_start sub_806FA48 -sub_806FA48: @ 806FA48 - push {lr} - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_806FA48 - - thumb_func_start sub_806FA54 -sub_806FA54: @ 806FA54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - ldrb r0, [r0] - cmp r0, 0x4 - bls _0806FA66 - b _0806FB64 -_0806FA66: - lsls r0, 2 - ldr r1, _0806FA70 @ =_0806FA74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806FA70: .4byte _0806FA74 - .align 2, 0 -_0806FA74: - .4byte _0806FA88 - .4byte _0806FB00 - .4byte _0806FB12 - .4byte _0806FB3C - .4byte _0806FB60 -_0806FA88: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - movs r2, 0xA0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _0806FAF4 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0806FAF8 @ =0x81000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - mov r4, sp - movs r6, 0 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _0806FAFC @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0806FACA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _0806FACA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _0806FB64 - .align 2, 0 -_0806FAF4: .4byte 0x040000d4 -_0806FAF8: .4byte 0x81000200 -_0806FAFC: .4byte 0x81000800 -_0806FB00: - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - bl ScanlineEffect_Clear - b _0806FB64 -_0806FB12: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0806FB34 @ =gUnknown_83A73B8 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - ldr r0, _0806FB38 @ =gUnknown_83A73BC - bl InitWindows - movs r0, 0 - movs r1, 0x8 - movs r2, 0xF0 - bl TextWindow_SetStdFrame0_WithPal - b _0806FB64 - .align 2, 0 -_0806FB34: .4byte gUnknown_83A73B8 -_0806FB38: .4byte gUnknown_83A73BC -_0806FB3C: - movs r0, 0 - bl ShowBg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _0806FB5C @ =sub_806FA48 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - b _0806FB64 - .align 2, 0 -_0806FB5C: .4byte sub_806FA48 -_0806FB60: - movs r0, 0x1 - b _0806FB6E -_0806FB64: - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_0806FB6E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806FA54 - - thumb_func_start sub_806FB7C -sub_806FB7C: @ 806FB7C - push {lr} - ldr r0, _0806FB9C @ =gMain + 0x438 - bl sub_806FA54 - cmp r0, 0 - beq _0806FB96 - ldr r0, _0806FBA0 @ =sub_806FBB8 - movs r1, 0x50 - bl CreateTask - ldr r0, _0806FBA4 @ =sub_806FBA8 - bl SetMainCallback2 -_0806FB96: - pop {r0} - bx r0 - .align 2, 0 -_0806FB9C: .4byte gMain + 0x438 -_0806FBA0: .4byte sub_806FBB8 -_0806FBA4: .4byte sub_806FBA8 - thumb_func_end sub_806FB7C - - thumb_func_start sub_806FBA8 -sub_806FBA8: @ 806FBA8 - push {lr} - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_806FBA8 - - thumb_func_start sub_806FBB8 -sub_806FBB8: @ 806FBB8 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0806FBEC @ =gTasks+0x8 - adds r5, r0, r1 - ldr r0, _0806FBF0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806FBD8 - b _0806FCE8 -_0806FBD8: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x6 - bls _0806FBE2 - b _0806FCE8 -_0806FBE2: - lsls r0, 2 - ldr r1, _0806FBF4 @ =_0806FBF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806FBEC: .4byte gTasks+0x8 -_0806FBF0: .4byte gPaletteFade -_0806FBF4: .4byte _0806FBF8 - .align 2, 0 -_0806FBF8: - .4byte _0806FC14 - .4byte _0806FC80 - .4byte _0806FC8C - .4byte _0806FC9C - .4byte _0806FCB0 - .4byte _0806FCC8 - .4byte _0806FCD8 -_0806FC14: - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _0806FC74 @ =gUnknown_8419F54 - movs r4, 0 - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - movs r3, 0xFF - bl AddTextPrinterParameterized2 - movs r0, 0 - movs r1, 0x8 - movs r2, 0xF - bl DrawTextBorderOuter - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0806FC78 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _0806FC7C - bl InUnionRoom - cmp r0, 0 - beq _0806FC7C - movs r0, 0x5 - b _0806FCE6 - .align 2, 0 -_0806FC74: .4byte gUnknown_8419F54 -_0806FC78: .4byte gWirelessCommType -_0806FC7C: - movs r0, 0x1 - b _0806FCE6 -_0806FC80: - bl sub_804C1C0 - bl sub_80DA45C - movs r0, 0x2 - b _0806FCE6 -_0806FC8C: - bl sub_80DA4A0 - lsls r0, 24 - cmp r0, 0 - beq _0806FCE8 - bl sav2_gender2_inplace_and_xFE - b _0806FCE4 -_0806FC9C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x4 - b _0806FCE6 -_0806FCB0: - bl FreeAllWindowBuffers - ldr r0, _0806FCC4 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask - b _0806FCE8 - .align 2, 0 -_0806FCC4: .4byte gMain -_0806FCC8: - ldr r0, _0806FCD4 @ =sub_80DA634 - movs r1, 0x5 - bl CreateTask - movs r0, 0x6 - b _0806FCE6 - .align 2, 0 -_0806FCD4: .4byte sub_80DA634 -_0806FCD8: - ldr r0, _0806FCF0 @ =sub_80DA634 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _0806FCE8 -_0806FCE4: - movs r0, 0x3 -_0806FCE6: - strh r0, [r5] -_0806FCE8: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806FCF0: .4byte sub_80DA634 - thumb_func_end sub_806FBB8 - - thumb_func_start sub_806FCF4 -sub_806FCF4: @ 806FCF4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - ldr r5, _0806FE54 @ =gUnknown_2037104 - ldr r0, _0806FE58 @ =gUnknown_83A73CC - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - ldr r4, _0806FE5C @ =0x0000021d - adds r1, r4, 0 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - ldrb r0, [r5] - movs r1, 0 - adds r2, r4, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - ldr r4, _0806FE60 @ =gStringVar4 - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x8 - bl sub_80F7FCC - movs r6, 0x1 - negs r6, r6 - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r6, 0 - bl GetStringWidth - movs r2, 0x70 - subs r2, r0 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - ldr r1, _0806FE64 @ =gUnknown_83A73DC - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r6, 0 - bl GetStringWidth - ldrb r0, [r5] - ldr r1, _0806FE68 @ =gUnknown_83A73D4 - mov r9, r1 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0806FE6C @ =gUnknown_841617A - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x2 - movs r3, 0xE - bl AddTextPrinterParameterized3 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_80F7FCC - ldrb r0, [r5] - adds r1, r4, 0 - movs r2, 0x3C - movs r3, 0xE - bl sub_812E6DC - ldrb r0, [r5] - mov r1, r9 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0806FE70 @ =gUnknown_8416181 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1C - bl AddTextPrinterParameterized3 - movs r0, 0x4 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_80F7FCC - ldrb r0, [r5] - ldr r1, _0806FE74 @ =gUnknown_83A73D8 - mov r8, r1 - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x3C - movs r3, 0x1C - bl AddTextPrinterParameterized3 - movs r7, 0x2A - ldr r0, _0806FE78 @ =0x00000829 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806FE0A - ldrb r0, [r5] - mov r1, r9 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0806FE7C @ =gUnknown_8416188 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2A - bl AddTextPrinterParameterized3 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_80F7FCC - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x3C - movs r3, 0x2A - bl AddTextPrinterParameterized3 - movs r7, 0x38 -_0806FE0A: - ldrb r0, [r5] - mov r1, r9 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0806FE80 @ =gUnknown_8416190 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x2 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_80F7FCC - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x3C - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldrb r0, [r5] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806FE54: .4byte gUnknown_2037104 -_0806FE58: .4byte gUnknown_83A73CC -_0806FE5C: .4byte 0x0000021d -_0806FE60: .4byte gStringVar4 -_0806FE64: .4byte gUnknown_83A73DC -_0806FE68: .4byte gUnknown_83A73D4 -_0806FE6C: .4byte gUnknown_841617A -_0806FE70: .4byte gUnknown_8416181 -_0806FE74: .4byte gUnknown_83A73D8 -_0806FE78: .4byte 0x00000829 -_0806FE7C: .4byte gUnknown_8416188 -_0806FE80: .4byte gUnknown_8416190 - thumb_func_end sub_806FCF4 - - thumb_func_start sub_806FE84 -sub_806FE84: @ 806FE84 - push {r4,lr} - ldr r4, _0806FE9C @ =gUnknown_2037104 - ldrb r0, [r4] - movs r1, 0 - bl ClearStdWindowAndFrame - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806FE9C: .4byte gUnknown_2037104 - thumb_func_end sub_806FE84 - - thumb_func_start sub_806FEA0 -sub_806FEA0: @ 806FEA0 - push {lr} - movs r0, 0x5 - bl PlaySE - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl ClearStdWindowAndFrame - bl RemoveStartMenuWindow - bl sub_80696C0 - bl ScriptContext2_Disable - pop {r0} - bx r0 - thumb_func_end sub_806FEA0 - - thumb_func_start AppendToList -AppendToList: @ 806FEC8 - ldrb r3, [r1] - adds r0, r3 - strb r2, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bx lr - thumb_func_end AppendToList - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index bd98dd698..3573dcfaf 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -14443,7 +14443,7 @@ _080540DC: movs r0, 0x32 strb r0, [r1] ldr r4, _080540FC @ =gStringVar4 - ldr r1, _08054100 @ =gUnknown_8419F54 + ldr r1, _08054100 @ =gText_SavingDontTurnOffThePower2 _080540EA: adds r0, r4, 0 bl StringExpandPlaceholders @@ -14454,7 +14454,7 @@ _080540EA: b _08054396 .align 2, 0 _080540FC: .4byte gStringVar4 -_08054100: .4byte gUnknown_8419F54 +_08054100: .4byte gText_SavingDontTurnOffThePower2 _08054104: bl InUnionRoom cmp r0, 0 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 9a28cbc5e..1ebda42ab 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -785,7 +785,7 @@ _0808967C: .align 2, 0 _0808968C: .4byte gMain _08089690: - bl sub_80F6E9C + bl LoadStdWindowFrameGfx ldr r1, _080896A0 @ =gMain movs r0, 0x87 lsls r0, 3 @@ -4723,8 +4723,8 @@ sub_808B66C: @ 808B66C _0808B694: .4byte sub_808B21C thumb_func_end sub_808B66C - thumb_func_start sub_808B698 -sub_808B698: @ 808B698 + thumb_func_start InitTrainerCard +InitTrainerCard: @ 808B698 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0808B6C0 @ =gUnknown_20397A4 @@ -4770,10 +4770,10 @@ _0808B6F0: .4byte gUnknown_20397A4 _0808B6F4: .4byte 0x00007bcf _0808B6F8: .4byte 0x0000045c _0808B6FC: .4byte sub_80895B8 - thumb_func_end sub_808B698 + thumb_func_end InitTrainerCard - thumb_func_start sub_808B700 -sub_808B700: @ 808B700 + thumb_func_start InitLinkPartnerTrainerCard +InitLinkPartnerTrainerCard: @ 808B700 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 @@ -4822,7 +4822,7 @@ _0808B764: .4byte gTrainerCards _0808B768: .4byte gLinkPlayers _0808B76C: .4byte 0x00007bcf _0808B770: .4byte sub_80895B8 - thumb_func_end sub_808B700 + thumb_func_end InitLinkPartnerTrainerCard thumb_func_start sub_808B774 sub_808B774: @ 808B774 @@ -5057,7 +5057,7 @@ _0808B948: .4byte 0x00000457 thumb_func_start sub_808B94C sub_808B94C: @ 808B94C push {lr} - bl sub_808B698 + bl InitTrainerCard ldr r0, _0808B95C @ =sub_80895B8 bl SetMainCallback2 pop {r0} @@ -5076,7 +5076,7 @@ sub_808B960: @ 808B960 bl memcpy movs r0, 0 adds r1, r4, 0 - bl sub_808B700 + bl InitLinkPartnerTrainerCard ldr r0, _0808B98C @ =sub_80895B8 bl SetMainCallback2 pop {r4} @@ -5098,7 +5098,7 @@ sub_808B990: @ 808B990 bl memcpy movs r0, 0 adds r1, r4, 0 - bl sub_808B700 + bl InitLinkPartnerTrainerCard ldr r0, _0808B9BC @ =sub_80895B8 bl SetMainCallback2 pop {r4} diff --git a/common_syms/help_system_812B1E0.txt b/common_syms/help_system_812B1E0.txt index 7986bedb5..5e56cc230 100644 --- a/common_syms/help_system_812B1E0.txt +++ b/common_syms/help_system_812B1E0.txt @@ -1,2 +1,2 @@ gUnknown_3005E9C -gUnknown_3005EA0 +gSomeVariableBackup diff --git a/common_syms/save.txt b/common_syms/save.txt index 9b77840e0..a0106f6fa 100644 --- a/common_syms/save.txt +++ b/common_syms/save.txt @@ -9,4 +9,4 @@ gSaveUnusedVar gSaveFileStatus gGameContinueCallback gRamSaveSectionLocations -gUnknown_3005420 +gSaveSucceeded diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc index abfd0d550..62a34d33c 100644 --- a/data/map_event_scripts.inc +++ b/data/map_event_scripts.inc @@ -774,7 +774,7 @@ EventScript_1A4EAE:: @ 81A4EAE return EventScript_1A4EAF:: @ 81A4EAF - special sub_806F67C + special Field_AskSaveTheGame waitstate return @@ -4447,21 +4447,33 @@ SevenIsland_TrainerTower_1F_EventScript_1C54EA:: @ 81C54EA gUnknown_81C555B:: @ 81C555B .incbin "baserom.gba", 0x1C555B, 0x6E -gUnknown_81C55C9:: @ 81C55C9 - .incbin "baserom.gba", 0x1C55C9, 0x21 +gText_WouldYouLikeToSaveTheGame:: @ 81C55C9 + .string "Would you like to save the game?$" -gUnknown_81C55EA:: @ 81C55EA - .incbin "baserom.gba", 0x1C55EA, 0x3B +gText_AlreadySaveFile_WouldLikeToOverwrite:: @ 81C55EA + .string "There is already a saved file.\n" + .string "Is it okay to overwrite it?$" -gUnknown_81C5625:: @ 81C5625 - .incbin "baserom.gba", 0x1C5625, 0x22 +gText_SavingDontTurnOffThePower:: @ 81C5625 + .string "SAVING…\n" + .string "DON'T TURN OFF THE POWER.$" -gUnknown_81C5647:: @ 81C5647 - .incbin "baserom.gba", 0x1C5647, 0x23 +gText_PlayerSavedTheGame:: @ 81C5647 + .string "{PLAYER} saved the game.$" + +gUnknown_81C565A:: + .string "セーブに しっぱい しました‥$" @ 0xE5 -gUnknown_81C566A:: @ 81C566A - .incbin "baserom.gba", 0x1C566A, 0xE5 +gText_DifferentGameFile:: @ 81C566A + .string "WARNING!\p" + .string "There is a different game file that\n" + .string "is already saved.\p" + .string "If you save now, the other file's\n" + .string "adventure, including items and\l" + .string "POKéMON, will be entirely lost.\p" + .string "Are you sure you want to save now\n" + .string "and overwrite the other save file?$" gOtherText_NewName:: @ 81C574F .string "NEW NAME$" diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc index 77ff855e4..51865301c 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc @@ -36,7 +36,7 @@ PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4 goto_if_eq EventScript_1A7AE0 lockall setvar VAR_0x8004, 32 - special sub_812B220 + special Special_SetSomeVariable setvar VAR_0x8004, 1 special sub_80CA86C playse SE_PC_ON diff --git a/data/specials.inc b/data/specials.inc index 6111e4836..d8d208d43 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -102,7 +102,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special sub_8081128 - def_special sub_806F67C + def_special Field_AskSaveTheGame def_special nullsub_56 def_special sub_80FEE44 def_special sub_80BDA7C @@ -390,9 +390,9 @@ gSpecials:: @ 815FD60 def_special TakePokemonFromRoute5Daycare def_special ScrSpecial_SeaGallopFerry def_special sub_80CC48C - def_special sub_812B220 - def_special sub_812B234 - def_special sub_812B248 + def_special Special_SetSomeVariable + def_special HelpSystem_BackupSomeVariable + def_special HelpSystem_RestoreSomeVariable def_special ValidateReceivedWonderCard def_special sub_810B810 def_special sub_811999C diff --git a/data/start_menu.s b/data/start_menu.s deleted file mode 100644 index e004a6628..000000000 --- a/data/start_menu.s +++ /dev/null @@ -1,28 +0,0 @@ - .section .rodata - .align 2 -gUnknown_83A7344:: @ 83A7344 - .incbin "baserom.gba", 0x3A7344, 0x48 - -gUnknown_83A738C:: @ 83A738C - .incbin "baserom.gba", 0x3A738C, 0x8 - -gUnknown_83A7394:: @ 83A7394 - .incbin "baserom.gba", 0x3A7394, 0x24 - -gUnknown_83A73B8:: @ 83A73B8 - .incbin "baserom.gba", 0x3A73B8, 0x4 - -gUnknown_83A73BC:: @ 83A73BC - .incbin "baserom.gba", 0x3A73BC, 0x10 - -gUnknown_83A73CC:: @ 83A73CC - .incbin "baserom.gba", 0x3A73CC, 0x8 - -gUnknown_83A73D4:: @ 83A73D4 - .incbin "baserom.gba", 0x3A73D4, 0x4 - -gUnknown_83A73D8:: @ 83A73D8 - .incbin "baserom.gba", 0x3A73D8, 0x4 - -gUnknown_83A73DC:: @ 83A73DC - .incbin "baserom.gba", 0x3A73DC, 0x284 diff --git a/data/strings.s b/data/strings.s index 4f0fefb19..52abc36de 100644 --- a/data/strings.s +++ b/data/strings.s @@ -45,7 +45,7 @@ gExpandedPlaceholder_Green:: @ 8415A5C gText_EggNickname:: @ 8415A62 .string "EGG$" -gText_Pokemon:: @ 8415A66 +gStartMenuText_Pokemon:: @ 8415A66 .string "POKéMON$" gText_NewGame:: @ 8415A6E @@ -64,34 +64,57 @@ gText_MysteryGift:: @ 8415A97 .string "MYSTERY GIFT$" gText_WirelessAdapterIsNotConnected:: @ 8415AA4 - .string "The Wireless Adapter is not\nconnected.$" + .string "The Wireless Adapter is not\n" + .string "connected.$" gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached:: @ 8415ACB - .string "MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached.$" + .string "MYSTERY GIFT can't be used while\n" + .string "the Wireless Adapter is attached.$" gUnknown_8415B0E:: @ 0x8415B0E - .string "がいぶデ-タにより レポ-トを こうしんします\nしばらく おまちください$" + .string "がいぶデ-タにより レポ-トを こうしんします\n" + .string "しばらく おまちください$" gUnknown_8415B33:: @ 0x8415B33 .string "レポ-トが こうしんされました!$" gUnknown_8415B44:: @ 0x8415B44 - .string "レポ-トが こうしんされました!\pこれいじょう\nレポ-トが かききれないので\lバックアップカ-トリッジを\lこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください$" + .string "レポ-トが こうしんされました!\p" + .string "これいじょう\n" + .string "レポ-トが かききれないので\l" + .string "バックアップカ-トリッジを\l" + .string "こうかんしてください!\p" + .string "くわしくは\n" + .string "にんてんどう サ-ビスセンタ- まで\l" + .string "おといあわせ ください$" gUnknown_8415BAA:: @ 0x8415BAA - .string "レポ-トの こうしんは\nしっぱいしました!\pバックアップカ-トリッジを\nこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください$" + .string "レポ-トの こうしんは\n" + .string "しっぱいしました!\p" + .string "バックアップカ-トリッジを\n" + .string "こうかんしてください!\p" + .string "くわしくは\n" + .string "にんてんどう サ-ビスセンタ- まで\l" + .string "おといあわせ ください$" gText_SaveFileCorruptedPrevWillBeLoaded:: @ 8415BFF - .string "The save file is corrupted.\pThe previous save file will be\nloaded.$" + .string "The save file is corrupted.\p" + .string "The previous save file will be\n" + .string "loaded.$" gText_SaveFileHasBeenDeleted:: @ 8415C42 - .string "The save file has been\ndeleted...$" + .string "The save file has been\n" + .string "deleted...$" gText_1MSubCircuitBoardNotInstalled:: @ 8415C64 - .string "The 1M sub-circuit board is\nnot installed.$" + .string "The 1M sub-circuit board is\n" + .string "not installed.$" gTextJP_InternalBatteryHasRunDry:: @ 0x8415C8F - .string "でんちぎれの ために\nとけいが うごかなくなりました\pとけいに かんけいする できごとは おきませんが\nゲ-ムを つづけて あそぶことは できます$" + .string "でんちぎれの ために\n" + .string "とけいが うごかなくなりました\p" + .string "とけいに かんけいする できごとは おきませんが\n" + .string "ゲ-ムを つづけて あそぶことは できます$" gUnknown_8415CD9:: @ 0x8415CD9 .string "しゅじんこう$" @@ -311,20 +334,28 @@ gUnknown_8416008:: @ 8416008 .string "Welcome to the HALL OF FAME!$" gUnknown_8416025:: @ 0x8416025 - .string " みつけた ポケモン {STR_VAR_1}!\nつかまえた ポケモン {STR_VAR_2}!\pオダマキはかせの\nポケモンずかん ひょうか!\pオダマキ“どれどれ\p$" + .string " みつけた ポケモン {STR_VAR_1}!\n" + .string "つかまえた ポケモン {STR_VAR_2}!\p" + .string "オダマキはかせの\n" + .string "ポケモンずかん ひょうか!\p" + .string "オダマキ“どれどれ\p" + .string "$" gUnknown_8416067:: @ 0x8416067 - .string " ここまでの レポ-トを かきしるしています!\nでんげんを きらないでください$" + .string " ここまでの レポ-トを かきしるしています!\n" + .string "でんげんを きらないでください$" .align 2 gUnknown_8416090:: @ 8416090 - .string "The HALL OF FAME data is\ncorrupted.$" + .string "The HALL OF FAME data is\n" + .string "corrupted.$" gUnknown_84160B4:: @ 84160B4 .string "HALL OF FAME No. {STR_VAR_1}$" gUnknown_84160C8:: @ 84160C8 - .string "LEAGUE CHAMPION!\nCONGRATULATIONS!$" + .string "LEAGUE CHAMPION!\n" + .string "CONGRATULATIONS!$" .align 2 gUnknown_84160EC:: @ 84160EC @@ -343,7 +374,8 @@ gUnknown_8416104:: @ 8416104 .string "IDNo.$" gUnknown_841610A:: @ 0x841610A - .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!$" + .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}オダマキはかせが ピンチだ!\n" + .string "ポケモンを だして たすけてあげよう!$" gUnknown_8416133:: @ 0x8416133 .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}このポケモンにしますか?$" @@ -351,19 +383,21 @@ gUnknown_8416133:: @ 0x8416133 gUnknown_8416146:: @ 0x8416146 .string "ポケモン$" -gUnknown_841614B:: @ 841614B - .string "Save error.\pPlease exchange the\nbackup memory.$" +gText_SaveError_PleaseExchangeBackupMemory:: @ 841614B + .string "Save error.\p" + .string "Please exchange the\n" + .string "backup memory.$" -gUnknown_841617A:: @ 841617A +gSaveStatName_Player:: @ 841617A .string "PLAYER$" -gUnknown_8416181:: @ 8416181 +gSaveStatName_Badges:: @ 8416181 .string "BADGES$" -gUnknown_8416188:: @ 8416188 +gSaveStatName_Pokedex:: @ 8416188 .string "POKéDEX$" -gUnknown_8416190:: @ 8416190 +gSaveStatName_Time:: @ 8416190 .string "TIME$" gUnknown_8416195:: @@ -482,28 +516,28 @@ gText_GoBackToThePreviousMenu:: gText_WhatWouldYouLikeToDo:: @ 8416262 .string "What would you like to do?$" -gUnknown_841627D:: +gStartMenuText_Pokedex:: .string "POKéDEX$" -gUnknown_8416285:: @ 8416285 +gStartMenuText_Bag:: @ 8416285 .string "BAG$" gUnknown_8416289:: .string "ポケナビ$" -gUnknown_841628E:: +gStartMenuText_Player:: .string "{PLAYER}$" -gUnknown_8416291:: +gStartMenuText_Save:: .string "SAVE$" -gUnknown_8416296:: +gStartMenuText_Option:: .string "OPTION$" -gUnknown_841629D:: +gStartMenuText_Exit:: .string "EXIT$" -gUnknown_84162A2:: +gStartMenuText_Retire:: .string "RETIRE$" gUnknown_84162A9:: @ 84162A9 @@ -542,7 +576,8 @@ gText_IsSelected:: @ 8416301 .string "selected.$" gUnknown_841630F:: @ 841630F - .string "You can't write\nMAIL here.$" + .string "You can't write\n" + .string "MAIL here.$" gText_ThereIsNoPokemon:: @ 841632A .string "There is no\n" @@ -556,43 +591,58 @@ gText_ItemCantBeHeld:: @ 841635E .string "The {STR_VAR_1} can't be held.$" gText_TheStrVar1CantBeHeldHere:: @ 8416374 - .string "The {STR_VAR_1} can't be held\nhere.$" + .string "The {STR_VAR_1} can't be held\n" + .string "here.$" gUnknown_841638F:: @ 841638F - .string "Deposit how many\n{STR_VAR_1}(s)?$" + .string "Deposit how many\n" + .string "{STR_VAR_1}(s)?$" gUnknown_84163A7:: @ 84163A7 - .string "Deposited {STR_VAR_2}\n{STR_VAR_1}(s).$" + .string "Deposited {STR_VAR_2}\n" + .string "{STR_VAR_1}(s).$" gUnknown_84163BB:: @ 84163BB - .string "There's no room to\nstore items.$" + .string "There's no room to\n" + .string "store items.$" gText_TossOutHowManyStrVar1s:: @ 84163DB - .string "Toss out how many\n{STR_VAR_1}(s)?$" + .string "Toss out how many\n" + .string "{STR_VAR_1}(s)?$" gText_ThrewAwayStrVar2StrVar1s:: @ 84163F4 - .string "Threw away {STR_VAR_2}\n{STR_VAR_1}(s).$" + .string "Threw away {STR_VAR_2}\n" + .string "{STR_VAR_1}(s).$" gText_ThrowAwayStrVar2OfThisItemQM:: @ 8416409 - .string "Throw away {STR_VAR_2} of\nthis item?$" + .string "Throw away {STR_VAR_2} of\n" + .string "this item?$" gUnknown_8416425:: @ 8416425 - .string "OAK: {PLAYER}!\nThis isn't the time to use that!{PAUSE_UNTIL_PRESS}$" + .string "OAK: {PLAYER}!\n" + .string "This isn't the time to use that!{PAUSE_UNTIL_PRESS}$" gUnknown_8416451:: @ 8416451 .string "You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}$" gText_ItemfinderResponding:: @ 8416476 - .string "Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}$" + .string "Huh?\n" + .string "The ITEMFINDER's responding!\p" + .string "There's an item buried around here!{PAUSE_UNTIL_PRESS}$" gText_ItemfinderShakingWildly:: @ 84164BE - .string "Oh!\nThe ITEMFINDER's shaking wildly!\pThere's an item buried underfoot!\p‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}$" + .string "Oh!\n" + .string "The ITEMFINDER's shaking wildly!\p" + .string "There's an item buried underfoot!\p" + .string "‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}$" gText_NopeTheresNoResponse:: @ 8416513 - .string "‥ ‥ ‥ ‥Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}$" + .string "‥ ‥ ‥ ‥Nope!\n" + .string "There's no response.{PAUSE_UNTIL_PRESS}$" gUnknown_8416537:: @ 8416537 - .string "Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}$" + .string "Your COINS:\n" + .string "{STR_VAR_1}{PAUSE_UNTIL_PRESS}$" gUnknown_8416548:: @ 0x8416548 .string "わざマシンを きどうした!$" @@ -601,19 +651,28 @@ gUnknown_8416556:: @ 0x8416556 .string "ひでんマシンを きどうした!$" gUnknown_8416565:: @ 0x8416565 - .string "なかには {STR_VAR_1}が\nきろくされていた!\p{STR_VAR_1}を\nポケモンに おぼえさせますか?$" + .string "なかには {STR_VAR_1}が\n" + .string "きろくされていた!\p" + .string "{STR_VAR_1}を\n" + .string "ポケモンに おぼえさせますか?$" gUnknown_841658C:: @ 841658C - .string "{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" + .string "{PLAYER} used the\n" + .string "{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" gUnknown_841659E:: @ 841659E - .string "But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}$" + .string "But the effects of a REPEL\n" + .string "lingered from earlier.{PAUSE_UNTIL_PRESS}$" gUnknown_84165D2:: @ 84165D2 - .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$" + .string "{PLAYER} used the\n" + .string "{STR_VAR_2}.\p" + .string "Wild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$" gUnknown_8416600:: @ 8416600 - .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$" + .string "{PLAYER} used the\n" + .string "{STR_VAR_2}.\p" + .string "Wild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$" gUnknown_8416631:: @ 8416631 .string "The BOX is full.{PAUSE_UNTIL_PRESS}$" @@ -658,7 +717,8 @@ gText_BerryPouch:: @ 841670A .string "BERRY POUCH$" gText_TheBerryPouchWillBePutAway:: @ 8416716 - .string "The BERRY POUCH will be\nput away.$" + .string "The BERRY POUCH will be\n" + .string "put away.$" gUnknown_8416738:: @ 0x8416738 .string "BUY$" @@ -676,43 +736,54 @@ gUnknown_8416757:: @ 8416757 .string "Quit shopping.$" gUnknown_8416766:: @ 8416766 - .string "{STR_VAR_1}? Certainly.\nHow many would you like?$" + .string "{STR_VAR_1}? Certainly.\n" + .string "How many would you like?$" gUnknown_841678E:: @ 841678E - .string "{STR_VAR_1}, and you want {STR_VAR_2}.\nThat will be ¥{STR_VAR_3}. Okay?$" + .string "{STR_VAR_1}, and you want {STR_VAR_2}.\n" + .string "That will be ¥{STR_VAR_3}. Okay?$" gUnknown_84167BB:: @ 0x84167BB - .string "{STR_VAR_1} だね!\n{STR_VAR_2}¥ だけど かうかい?$" + .string "{STR_VAR_1} だね!\n" + .string "{STR_VAR_2}¥ だけど かうかい?$" gUnknown_84167D0:: @ 0x84167D0 - .string "{STR_VAR_1} ですね!\n{STR_VAR_2}¥ だけど かいますか?$" + .string "{STR_VAR_1} ですね!\n" + .string "{STR_VAR_2}¥ だけど かいますか?$" gUnknown_84167E7:: @ 84167E7 - .string "Here you are!\nThank you!$" + .string "Here you are!\n" + .string "Thank you!$" gUnknown_8416800:: @ 0x8416800 - .string "どうも ありがとう!\nじたくの パソコンに おくって おきますね!$" + .string "どうも ありがとう!\n" + .string "じたくの パソコンに おくって おきますね!$" gUnknown_8416822:: @ 0x8416822 - .string "どうも ありがとう!\nじたくの パソコンに おくって おくね!$" + .string "どうも ありがとう!\n" + .string "じたくの パソコンに おくって おくね!$" gUnknown_8416842:: @ 8416842 .string "You don't have enough money.{PAUSE_UNTIL_PRESS}$" gUnknown_8416861:: @ 8416861 - .string "You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}$" + .string "You have no more room for this\n" + .string "item.{PAUSE_UNTIL_PRESS}$" gUnknown_8416888:: @ 0x8416888 - .string "{STR_VAR_1}を\nいれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1}を\n" + .string "いれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}$" gUnknown_841689E:: @ 841689E .string "Is there anything else I can do?$" gUnknown_84168BF:: @ 0x84168BF - .string "その ほかに\nなにか ちからに なれることは?$" + .string "その ほかに\n" + .string "なにか ちからに なれることは?$" gUnknown_84168D7:: @ 0x84168D7 - .string "プレミアボ-ル 1コ\nおまけ しておきますね!{PAUSE_UNTIL_PRESS}$" + .string "プレミアボ-ル 1コ\n" + .string "おまけ しておきますね!{PAUSE_UNTIL_PRESS}$" gText_OhNoICantBuyThat:: @ 84168F1 .string "{STR_VAR_1}? Oh, no.\n" @@ -727,7 +798,8 @@ gText_ICanPayThisMuch_WouldThatBeOkay:: @ 8416936 .string "Would that be okay?$" gText_TurnedOverItemsWorthYen:: @ 8416959 - .string "Turned over the {STR_VAR_1}シSス\nworth ¥{STR_VAR_3}.$" + .string "Turned over the {STR_VAR_1}シSス\n" + .string "worth ¥{STR_VAR_3}.$" gText_PokedollarVar1:: @ 841697A .string "¥{STR_VAR_1}$" @@ -788,34 +860,43 @@ gUnknown_84169F8:: @ 84169F8 .string "that POKéMON.{PAUSE_UNTIL_PRESS}$" gUnknown_8416A1E:: @ 8416A1E - .string "{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} can't be switched\n" + .string "out!{PAUSE_UNTIL_PRESS}$" gUnknown_8416A3A:: @ 8416A3A - .string "{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} is already\n" + .string "in battle!{PAUSE_UNTIL_PRESS}$" gUnknown_8416A55:: @ 8416A55 - .string "{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} has already been\n" + .string "selected.{PAUSE_UNTIL_PRESS}$" gUnknown_8416A75:: @ 8416A75 - .string "{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} has no energy\n" + .string "left to battle!{PAUSE_UNTIL_PRESS}$" gUnknown_8416A98:: @ 8416A98 - .string "You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}$" + .string "You can't switch {STR_VAR_1}'s\n" + .string "POKéMON with one of yours!{PAUSE_UNTIL_PRESS}$" gUnknown_8416ACB:: @ 8416ACB .string "An EGG can't battle!{PAUSE_UNTIL_PRESS}$" gUnknown_8416AE2:: @ 8416AE2 - .string "This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}$" + .string "This can't be used until a new\n" + .string "BADGE is obtained.{PAUSE_UNTIL_PRESS}$" gUnknown_8416B16:: @ 8416B16 - .string "No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}$" + .string "No more than three POKéMON\n" + .string "may enter.{PAUSE_UNTIL_PRESS}$" gUnknown_8416B3E:: @ 8416B3E - .string "No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}$" + .string "No more than two POKéMON\n" + .string "may enter.{PAUSE_UNTIL_PRESS}$" gUnknown_8416B64:: @ 8416B64 - .string "Send the removed MAIL to\nyour PC?$" + .string "Send the removed MAIL to\n" + .string "your PC?$" gUnknown_8416B86:: @ 8416B86 .string "The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}$" @@ -824,71 +905,101 @@ gUnknown_8416BA6:: @ 8416BA6 .string "Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}$" gUnknown_8416BC3:: @ 8416BC3 - .string "If the MAIL is removed, the\nmessage will be lost. Okay?$" + .string "If the MAIL is removed, the\n" + .string "message will be lost. Okay?$" gUnknown_8416BFB:: @ 8416BFB - .string "MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}$" + .string "MAIL must be removed before\n" + .string "holding an item.{PAUSE_UNTIL_PRESS}$" gUnknown_8416C2A:: @ 8416C2A - .string "{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} was given the\n" + .string "{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$" gUnknown_8416C49:: @ 8416C49 - .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?$" + .string "{STR_VAR_1} is already holding\n" + .string "one {STR_VAR_2}.\p" + .string "Would you like to switch the\n" + .string "two items?$" gUnknown_8416C8F:: @ 8416C8F - .string "{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} isn't holding\n" + .string "anything.{PAUSE_UNTIL_PRESS}$" gUnknown_8416CAC:: @ 8416CAC - .string "Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" + .string "Received the {STR_VAR_2}\n" + .string "from {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" gUnknown_8416CC7:: @ 8416CC7 - .string "MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}$" + .string "MAIL was taken from the\n" + .string "POKéMON.{PAUSE_UNTIL_PRESS}$" gUnknown_8416CEA:: @ 8416CEA - .string "The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" + .string "The {STR_VAR_2} was taken and\n" + .string "replaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" gUnknown_8416D17:: @ 8416D17 - .string "This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}$" + .string "This POKéMON is holding an\n" + .string "item. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}$" gUnknown_8416D4F:: @ 8416D4F - .string "MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}$" + .string "MAIL was transferred from\n" + .string "the MAILBOX.{PAUSE_UNTIL_PRESS}$" gUnknown_8416D78:: @ 8416D78 - .string "The {STR_VAR_1} is full. The POKéMON's\nitem could not be removed.{PAUSE_UNTIL_PRESS}$" + .string "The {STR_VAR_1} is full. The POKéMON's\n" + .string "item could not be removed.{PAUSE_UNTIL_PRESS}$" gUnknown_8416DB3:: @ 8416DB3 - .string "{STR_VAR_1} learned\n{STR_VAR_2}!$" + .string "{STR_VAR_1} learned\n" + .string "{STR_VAR_2}!$" gUnknown_8416DC2:: @ 8416DC2 - .string "{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can't be\nlearned.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} and {STR_VAR_2}\n" + .string "are not compatible.\p" + .string "{STR_VAR_2} can't be\n" + .string "learned.{PAUSE_UNTIL_PRESS}$" gUnknown_8416DF7:: @ 8416DF7 - .string "{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?$" + .string "{STR_VAR_1} wants to learn the\n" + .string "move {STR_VAR_2}.\p" + .string "However, {STR_VAR_1} already\n" + .string "knows four moves.\p" + .string "Should a move be deleted and\n" + .string "replaced with {STR_VAR_2}?$" gUnknown_8416E6B:: @ 8416E6B - .string "Stop trying to teach\n{STR_VAR_2}?$" + .string "Stop trying to teach\n" + .string "{STR_VAR_2}?$" gUnknown_8416E84:: @ 8416E84 - .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} did not learn the\n" + .string "move {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" gUnknown_8416EA4:: @ 8416EA4 .string "Which move should be forgotten?{PAUSE_UNTIL_PRESS}$" gUnknown_8416EC6:: @ 8416EC6 - .string "1, {PAUSE 0x0F}2, and{PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd...{PAUSE_UNTIL_PRESS}$" + .string "1, {PAUSE 0x0F}2, and{PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p" + .string "{STR_VAR_1} forgot how to\n" + .string "use {STR_VAR_2}.\p" + .string "And...{PAUSE_UNTIL_PRESS}$" gUnknown_8416F10:: @ 8416F10 - .string "{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} already knows\n" + .string "{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" gUnknown_8416F27:: @ 8416F27 .string "{STR_VAR_1}'s HP was restored\n" .string "by {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}$" gUnknown_8416F4E:: @ 8416F4E - .string "{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} was cured of its\n" + .string "poisoning.{PAUSE_UNTIL_PRESS}$" gUnknown_8416F6F:: @ 8416F6F - .string "{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} was cured of\n" + .string "paralysis.{PAUSE_UNTIL_PRESS}$" gUnknown_8416F8C:: @ 8416F8C .string "{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}$" @@ -903,7 +1014,8 @@ gUnknown_8416FC7:: @ 8416FC7 .string "PP was restored.{PAUSE_UNTIL_PRESS}$" gUnknown_8416FDA:: @ 0x8416FDA - .string "{STR_VAR_1}は\nげんきを とりもどした!{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1}は\n" + .string "げんきを とりもどした!{PAUSE_UNTIL_PRESS}$" gUnknown_8416FED:: @ 8416FED .string "{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}$" @@ -912,39 +1024,49 @@ gUnknown_8417002:: @ 8417002 .string "{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}$" gUnknown_8417017:: @ 8417017 - .string "{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.$" + .string "{STR_VAR_1} was elevated to\n" + .string "Lv. {STR_VAR_2}.$" gUnknown_8417032:: @ 8417032 - .string "{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1}'s base {STR_VAR_2}\n" + .string "stat was raised.{PAUSE_UNTIL_PRESS}$" gUnknown_8417052:: @ 8417052 - .string "{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} snapped out of its\n" + .string "confusion.{PAUSE_UNTIL_PRESS}$" gUnknown_8417075:: @ 8417075 - .string "{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}$" + .string "{STR_VAR_1} got over its\n" + .string "infatuation.{PAUSE_UNTIL_PRESS}$" gUnknown_8417094:: @ 0x8417094 - .string "That's your only\nPOKéMON for battle.$" + .string "That's your only\n" + .string "POKéMON for battle.$" .align 2 gUnknown_84170BC:: @ 84170BC - .string "That POKéMON can't be traded\nnow.$" + .string "That POKéMON can't be traded\n" + .string "now.$" .align 2 gUnknown_84170E0:: @ 84170E0 .string "An EGG can't be traded now.$" gUnknown_84170FC:: @ 0x84170FC - .string "The other TRAINER's POKéMON\ncan't be traded now.$" + .string "The other TRAINER's POKéMON\n" + .string "can't be traded now.$" gUnknown_841712D:: @ 0x841712D - .string " The other TRAINER can't accept\nthat POKéMON now.$" + .string " The other TRAINER can't accept\n" + .string "that POKéMON now.$" gUnknown_8417161:: @ 0x8417161 - .string " You can't trade with that\nTRAINER now.$" + .string " You can't trade with that\n" + .string "TRAINER now.$" gUnknown_841718B:: @ 0x841718B - .string " That isn't the type of POKéMON\nthat the other TRAINER wants.$" + .string " That isn't the type of POKéMON\n" + .string "that the other TRAINER wants.$" gUnknown_84171C9:: @ 0x84171C9 .string " That isn't an EGG.$" @@ -1058,10 +1180,17 @@ gUnknown_841744F:: @ 0x841744F .string "LEARNED$" gUnknown_8417457:: @ 8417457 - .string "OAK: It's important to get to know\nyour POKéMON thoroughly.\p$" + .string "OAK: It's important to get to know\n" + .string "your POKéMON thoroughly.\p" + .string "$" gUnknown_8417494:: @ 8417494 - .string "This is a list of your POKéMON,\n{PLAYER}.\pOpen this to check the skills\nand moves of your POKéMON.\pYou also choose POKéMON here if\nyou want to use an item on one.{PAUSE_UNTIL_PRESS}$" + .string "This is a list of your POKéMON,\n" + .string "{PLAYER}.\p" + .string "Open this to check the skills\n" + .string "and moves of your POKéMON.\p" + .string "You also choose POKéMON here if\n" + .string "you want to use an item on one.{PAUSE_UNTIL_PRESS}$" gUnknown_8417533:: @ 0x8417533 .string "Cut a tree or grass.$" @@ -1100,10 +1229,12 @@ gUnknown_84175FB:: @ 0x84175FB .string "Return to a healing spot.$" gUnknown_8417615:: @ 8417615 - .string "Want to escape from here and return\nto {STR_VAR_1}?$" + .string "Want to escape from here and return\n" + .string "to {STR_VAR_1}?$" gUnknown_8417640:: @ 8417640 - .string "Want to return to the healing spot\nused last in {STR_VAR_1}?$" + .string "Want to return to the healing spot\n" + .string "used last in {STR_VAR_1}?$" gUnknown_8417674:: @ 8417674 .string "ATTACK$" @@ -1163,7 +1294,8 @@ gText_TakeOutItemsFromThePC:: @ 0x8417741 .string "Take out items from the PC.$" gUnknown_841775D:: @ 0x841775D - .string "パソコンに あずけている\nどうぐを すてます$" + .string "パソコンに あずけている\n" + .string "どうぐを すてます$" gText_ThereAreNoItems:: @ 8417774 .string "There are no items.{PAUSE_UNTIL_PRESS}$" @@ -1193,16 +1325,19 @@ gText_TheresNoMailHere:: @ 84177EE .string "There's no MAIL here.{PAUSE_UNTIL_PRESS}$" gText_WhatWouldYouLikeToDoWithPlayersMail:: @ 8417806 - .string "What would you like to do with\n{STR_VAR_1}'s MAIL?$" + .string "What would you like to do with\n" + .string "{STR_VAR_1}'s MAIL?$" gText_MessageWillBeLost:: @ 8417830 - .string "The message will be lost.\nIs that okay?$" + .string "The message will be lost.\n" + .string "Is that okay?$" gText_BagIsFull:: @ 8417858 .string "The BAG is full.{PAUSE_UNTIL_PRESS}$" gText_MailReturnedToBagMessageErased:: @ 841786B - .string "The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}$" + .string "The MAIL was returned to the BAG\n" + .string "with its message erased.{PAUSE_UNTIL_PRESS}$" gText_WithdrawItem:: @ 84178A7 .string "WITHDRAW\n" @@ -2059,16 +2194,20 @@ gUnknown_84185A5:: @ 0x84185A5 .string "SEE YA!$" gUnknown_84185AD:: @ 0x84185AD - .string "You can withdraw a POKéMON if you\nhave any in a BOX.$" + .string "You can withdraw a POKéMON if you\n" + .string "have any in a BOX.$" gUnknown_84185E2:: @ 0x84185E2 - .string "You can deposit your party\nPOKéMON in any BOX.$" + .string "You can deposit your party\n" + .string "POKéMON in any BOX.$" gUnknown_8418611:: @ 0x8418611 - .string "You can move POKéMON that are\nstored in any BOX.$" + .string "You can move POKéMON that are\n" + .string "stored in any BOX.$" gUnknown_8418642:: @ 0x8418642 - .string "You can move items held by any\nPOKéMON in a BOX or your party.$" + .string "You can move items held by any\n" + .string "POKéMON in a BOX or your party.$" gUnknown_8418681:: @ 0x8418681 .string "See you later!$" @@ -2251,31 +2390,40 @@ gUnknown_8418B17:: @ 0x8418B17 .string "って$" gUnknown_8418B1A:: @ 0x8418B1A - .string "\nそう おもわない?$" + .string "\n" + .string "そう おもわない?$" gUnknown_8418B25:: @ 0x8418B25 - .string "たびに でたいな-\nどこか いい ところ しらない?$" + .string "たびに でたいな-\n" + .string "どこか いい ところ しらない?$" gUnknown_8418B40:: @ 0x8418B40 - .string "120しょくの クレヨン かったんだ-\nいいでしょう?$" + .string "120しょくの クレヨン かったんだ-\n" + .string "いいでしょう?$" gUnknown_8418B5C:: @ 0x8418B5C - .string "しゃぼんだまに のって とべるように\nならないかな-$" + .string "しゃぼんだまに のって とべるように\n" + .string "ならないかな-$" gUnknown_8418B77:: @ 0x8418B77 - .string "すなはまに かいた もじは\nすぐに きえちゃうのが かなしいよね-$" + .string "すなはまに かいた もじは\n" + .string "すぐに きえちゃうのが かなしいよね-$" gUnknown_8418B99:: @ 0x8418B99 - .string "うみの そこって どうなってるのかな-\nいちどで いいから みて みたいな-$" + .string "うみの そこって どうなってるのかな-\n" + .string "いちどで いいから みて みたいな-$" gUnknown_8418BC0:: @ 0x8418BC0 - .string "ゆうやけを みると\nウチに かえりたく ならない?$" + .string "ゆうやけを みると\n" + .string "ウチに かえりたく ならない?$" gUnknown_8418BDA:: @ 0x8418BDA - .string "みどりの しばで ねころがると\nきもちいいよね-$" + .string "みどりの しばで ねころがると\n" + .string "きもちいいよね-$" gUnknown_8418BF3:: @ 0x8418BF3 - .string "ひみつきち って いいよね!\nなんか わくわく してこない?$" + .string "ひみつきち って いいよね!\n" + .string "なんか わくわく してこない?$" gUnknown_8418C12:: @ 0x8418C12 .string "ポケモン リ-グ$" @@ -2311,7 +2459,11 @@ gUnknown_8418C6F:: @ 0x8418C6F .string "もう これいじょう たべない みたい‥$" gUnknown_8418C83:: @ 8418C83 - .string "Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minute”$" + .string "Save failed.\n" + .string "Checking the backup memory‥\n" + .string "Please wait.\n" + .string "“Time required:\n" + .string "about 1 minute”$" gUnknown_8418CD9:: @ 8418CD9 .string "The backup memory is damaged or\n" @@ -2321,16 +2473,22 @@ gUnknown_8418CD9:: @ 8418CD9 .string "“Please press the A Button.”$" gUnknown_8418D70:: @ 8418D70 - .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”$" + .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n" + .string "タイトルに もどります”$" gUnknown_8418D99:: @ 0x8418D99 - .string "けんさが しゅうりょうしました!\nもういちど レポ-トを かきこみます\nしばらくおまちください$" + .string "けんさが しゅうりょうしました!\n" + .string "もういちど レポ-トを かきこみます\n" + .string "しばらくおまちください$" gUnknown_8418DC9:: @ 0x8418DC9 - .string "レポ-トの かきこみは しゅうりょうしました\n{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”$" + .string "レポ-トの かきこみは しゅうりょうしました\n" + .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n" + .string "タイトルに もどります”$" gUnknown_8418E09:: @ 8418E09 - .string "Save completed.\n“Please press the A Button.”$" + .string "Save completed.\n" + .string "“Please press the A Button.”$" gUnknown_8418E36:: @ 0x8418E36 .string "れんらくせん$" @@ -2590,34 +2748,49 @@ gUnknown_84199AB:: @ 84199AB .string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" gUnknown_84199F4:: @ 84199F4 - .string "{UNKNOWN_F7 0x00} nature. Apparently met in\na fateful encounter シhatched:\n{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}ス.$" + .string "{UNKNOWN_F7 0x00} nature. Apparently met in\n" + .string "a fateful encounter シhatched:\n" + .string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}ス.$" gUnknown_8419A3D:: @ 0x8419A3D - .string "An odd POKéMON EGG found by the\nDAY-CARE couple.$" + .string "An odd POKéMON EGG found by the\n" + .string "DAY-CARE couple.$" gUnknown_8419A6E:: @ 0x8419A6E - .string "An odd POKéMON EGG obtained from\nthe traveling man.$" + .string "An odd POKéMON EGG obtained from\n" + .string "the traveling man.$" gUnknown_8419AA2:: @ 0x8419AA2 - .string "A wondrously peculiar POKéMON EGG\nobtained at a nice place.$" + .string "A wondrously peculiar POKéMON EGG\n" + .string "obtained at a nice place.$" gUnknown_8419ADE:: @ 0x8419ADE - .string "An odd POKéMON EGG obtained from\nan old woman at the SPA.$" + .string "An odd POKéMON EGG obtained from\n" + .string "an old woman at the SPA.$" gUnknown_8419B18:: @ 0x8419B18 - .string "A peculiar POKéMON EGG obtained\nin a trade.$" + .string "A peculiar POKéMON EGG obtained\n" + .string "in a trade.$" gUnknown_8419B44:: @ 0x8419B44 - .string "It looks like this\nEGG will take a\nlong time to hatch.$" + .string "It looks like this\n" + .string "EGG will take a\n" + .string "long time to hatch.$" gUnknown_8419B7B:: @ 0x8419B7B - .string "What will hatch\nfrom this? It will\ntake some time.$" + .string "What will hatch\n" + .string "from this? It will\n" + .string "take some time.$" gUnknown_8419BAE:: @ 0x8419BAE - .string "It occasionally\nmoves. It should\nhatch soon.$" + .string "It occasionally\n" + .string "moves. It should\n" + .string "hatch soon.$" gUnknown_8419BDB:: @ 0x8419BDB - .string "It's making sounds.\nIt's almost ready\nto hatch!$" + .string "It's making sounds.\n" + .string "It's almost ready\n" + .string "to hatch!$" gUnknown_8419C0B:: @ 8419C0B .string "a trade$" @@ -2665,7 +2838,8 @@ gUnknown_8419CA9:: @ 8419CA9 .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}DELETE$" gUnknown_8419CB9:: @ 8419CB9 - .string "HM moves can't be\nforgotten now.$" + .string "HM moves can't be\n" + .string "forgotten now.$" gUnknown_8419CDA:: @ 8419CDA .string "NAME: $" @@ -2722,7 +2896,8 @@ gUnknown_8419D7D:: @ 8419D7D .string "BERRY CRUSH$" gUnknown_8419D89:: @ 8419D89 - .string "Waiting for the other TRAINER to\nfinish reading your TRAINER CARD.$" + .string "Waiting for the other TRAINER to\n" + .string "finish reading your TRAINER CARD.$" gUnknown_8419DCC:: @ 8419DCC .string "OPTION$" @@ -2794,7 +2969,8 @@ gUnknown_8419E57:: @ 8419E57 .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_DPAD_LEFT_RIGHT}SWITCH {KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$" gUnknown_8419E72:: @ 0x8419E72 - .string "RTCを リセットします\nAで けってい Bで キャンセル$" + .string "RTCを リセットします\n" + .string "Aで けってい Bで キャンセル$" gUnknown_8419E90:: @ 0x8419E90 .string "げんざいの ゲ-ムない じかん$" @@ -2806,65 +2982,71 @@ gUnknown_8419EB0:: @ 0x8419EB0 .string "じかんを さいせってい してください$" gUnknown_8419EC3:: @ 0x8419EC3 - .string "じかんを さいせってい しました!\nレポ-トを かいています おまちください$" + .string "じかんを さいせってい しました!\n" + .string "レポ-トを かいています おまちください$" gUnknown_8419EEA:: @ 0x8419EEA .string "レポ-トを かきこみました!$" gUnknown_8419EF9:: @ 0x8419EF9 - .string "レポ-トの かきこみに\nしっぱい しました‥$" + .string "レポ-トの かきこみに\n" + .string "しっぱい しました‥$" gUnknown_8419F10:: @ 0x8419F10 - .string "レポ-トが ないので\nじかんの せっていは できません!$" + .string "レポ-トが ないので\n" + .string "じかんの せっていは できません!$" gUnknown_8419F2D:: @ 0x8419F2D - .string "ゲ-ムない じかんの しゅうせい システムが\nつかえる ように なりました!$" + .string "ゲ-ムない じかんの しゅうせい システムが\n" + .string "つかえる ように なりました!$" -gUnknown_8419F54:: @ 8419F54 +gText_SavingDontTurnOffThePower2:: @ 8419F54 .string "SAVING…\n" .string "DON'T TURN OFF THE POWER.$" // Start menu option descriptions -gUnknown_8419F76:: @ 8419F76 // Pokedex +gStartMenuDesc_Pokedex:: @ 8419F76 // Pokedex .string "A device that records POKéMON secrets\n" .string "upon meeting or catching them.$" -gUnknown_8419FBB:: @ 8419FBB // Pokemon +gStartMenuDesc_Pokemon:: @ 8419FBB // Pokemon .string "Check and organize POKéMON that are\n" .string "traveling with you in your party.$" -gUnknown_841A001:: @ 841A001 // Bag +gStartMenuDesc_Bag:: @ 841A001 // Bag .string "Equipped with pockets for storing items\n" .string "you bought, received, or found.$" -gUnknown_841A049:: @ 841A049 // {PLAYER} +gStartMenuDesc_Player:: @ 841A049 // {PLAYER} .string "Check your money and other game data.$" -gUnknown_841A06F:: @ 841A06F // Save +gStartMenuDesc_Save:: @ 841A06F // Save .string "Save your game with a complete record\n" .string "of your progress to take a break.$" -gUnknown_841A0B7:: @ 841A0B7 // Options +gStartMenuDesc_Option:: @ 841A0B7 // Options .string "Adjust various game settings such as text\n" .string "speed, game rules, etc.$" -gUnknown_841A0F9:: @ 841A0F9 // Quit +gStartMenuDesc_Exit:: @ 841A0F9 // Quit .string "Close this MENU window.$" -gUnknown_841A111:: @ 841A111 // Retire +gStartMenuDesc_Retire:: @ 841A111 // Retire .string "Retire from the SAFARI GAME and return to\n" .string "the registration counter.$" .include "data/text/quest_log.inc" gUnknown_841B285:: @ 841B285 - .string " was used on\n$" + .string " was used on\n" + .string "$" gUnknown_841B293:: @ 841B293 .string ".$" gUnknown_841B295:: @ 841B295 - .string "'s level rose to\n$" + .string "'s level rose to\n" + .string "$" gUnknown_841B2A7:: @ 841B2A7 .string ".$" @@ -2900,22 +3082,28 @@ gUnknown_841B2F1:: @ 841B2F1 .string "2, and ‥ ‥ ‥ $" gUnknown_841B2FF:: @ 0x841B2FF - .string "Poof!\p$" + .string "Poof!\p" + .string "$" gUnknown_841B306:: @ 841B306 - .string "{UNKNOWN_F7 0x00} forgot\n{UNKNOWN_F7 0x01}.\p$" + .string "{UNKNOWN_F7 0x00} forgot\n" + .string "{UNKNOWN_F7 0x01}.\p" + .string "$" gUnknown_841B315:: @ 841B315 - .string "And‥\p$" + .string "And‥\p" + .string "$" gUnknown_841B31B:: @ 841B31B - .string "Machine set!\p$" + .string "Machine set!\p" + .string "$" gUnknown_841B329:: @ 841B329 .string "Huh?$" gUnknown_841B32E:: @ 841B32E - .string "{UNKNOWN_F7 0x00} learned\n{UNKNOWN_F7 0x01}!$" + .string "{UNKNOWN_F7 0x00} learned\n" + .string "{UNKNOWN_F7 0x01}!$" gUnknown_841B33D:: @ 0x841B33D .string "UPPER$" @@ -2963,22 +3151,27 @@ gUnknown_841B3E9:: @ 0x841B3E9 .string "Exiting the chat‥$" gUnknown_841B3FB:: @ 0x841B3FB - .string "The LEADER, {UNKNOWN_F7 0x00}, has\nleft, ending the chat.$" + .string "The LEADER, {UNKNOWN_F7 0x00}, has\n" + .string "left, ending the chat.$" gUnknown_841B426:: @ 0x841B426 - .string "The registered text has been changed.\nIs it okay to save the game?$" + .string "The registered text has been changed.\n" + .string "Is it okay to save the game?$" gUnknown_841B469:: @ 0x841B469 - .string "There is already a saved file.\nIs it okay to overwrite it?$" + .string "There is already a saved file.\n" + .string "Is it okay to overwrite it?$" gUnknown_841B4A4:: @ 0x841B4A4 - .string "SAVING‥\nDON'T TURN OFF THE POWER.$" + .string "SAVING‥\n" + .string "DON'T TURN OFF THE POWER.$" gUnknown_841B4C6:: @ 0x841B4C6 .string "{UNKNOWN_F7 0x00} saved the game.$" gUnknown_841B4D9:: @ 0x841B4D9 - .string "If the LEADER leaves, the chat\nwill end. Is that okay?$" + .string "If the LEADER leaves, the chat\n" + .string "will end. Is that okay?$" gUnknown_841B510:: @ 841B510 .string "HELLO$" @@ -3011,16 +3204,25 @@ gUnknown_841B54B:: @ 841B54B .string "BYE-BYE!$" gUnknown_841B554:: @ 841B554 - .string "{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p$" + .string "{PLAYER} scurried to a POKéMON CENTER,\n" + .string "protecting the exhausted and fainted\n" + .string "POKéMON from further harm‥\p" + .string "$" gUnknown_841B5B6:: @ 841B5B6 - .string "{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p$" + .string "{PLAYER} scurried back home, protecting\n" + .string "the exhausted and fainted POKéMON from\n" + .string "further harm‥\p" + .string "$" gUnknown_841B60E:: @ 841B60E .string "PLAYER: {UNKNOWN_F7 0x00}$" gUnknown_841B619:: @ 841B619 - .string "This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {UNKNOWN_F7 0x01} POKéDEX.$" + .string "This document is issued in\n" + .string "recognition of your magnificent\n" + .string "achievement - the completion of\n" + .string "the {UNKNOWN_F7 0x01} POKéDEX.$" gUnknown_841B684:: @ 841B684 .string "GAME FREAK$" @@ -3035,7 +3237,8 @@ gUnknown_841B69E:: @ 841B69E .string "Clear all save data areas?$" gUnknown_841B6B9:: @ 841B6B9 - .string "Clearing data‥\nPlease wait.$" + .string "Clearing data‥\n" + .string "Please wait.$" gText_Player:: @ 841B6D5 .string "PLAYER$" @@ -3065,10 +3268,12 @@ gText_HatchedFromEgg:: @ 841B6FD .string "{STR_VAR_1} hatched from the EGG!$" gText_NickHatchPrompt:: @ 841B716 - .string "Would you like to nickname the newly\nhatched {STR_VAR_1}?$" + .string "Would you like to nickname the newly\n" + .string "hatched {STR_VAR_1}?$" gString_OutOfCoins:: @ 841B747 - .string "You've run out of COINS.\nGame over!$" + .string "You've run out of COINS.\n" + .string "Game over!$" gString_QuitPlaying:: @ 841B76B .string "Quit playing?$" @@ -3321,347 +3526,677 @@ gUnknown_841D18D:: @ 841D18D .align 2 gString_PokemonFireRed_Staff:: @ 841D198 - .string "Pokémon FireRed Version\nStaff$" + .string "Pokémon FireRed Version\n" + .string "Staff$" .align 2 gString_PokemonLeafGreen_Staff:: @ 0x841D1B8 - .string "Pokémon LeafGreen Version\nStaff$" + .string "Pokémon LeafGreen Version\n" + .string "Staff$" .align 2 gCreditsString_Director:: @ 0x841D1D8 - .string "\n\nDirector\n\n\n\n$" + .string "\n" + .string "\nDirector\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Junichi_Masuda:: @ 0x841D1E8 - .string "\n\n\nJunichi Masuda\n\n\n$" + .string "\n" + .string "\n\n" + .string "Junichi Masuda\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Art_Director_Battle_Director:: @ 0x841D200 - .string "\nArt Director\n\nBattle Director\n\n\n$" + .string "\n" + .string "Art Director\n" + .string "\nBattle Director\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Ken_Sugimori_Shigeki_Morimoto:: @ 0x841D224 - .string "\n\nKen Sugimori\n\nShigeki Morimoto\n\n$" + .string "\n" + .string "\nKen Sugimori\n" + .string "\nShigeki Morimoto\n" + .string "\n$" .align 2 gCreditsString_Program_Leader_Planning_Leader_Graphic_Design_Leader:: @ 0x841D248 - .string "Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$" + .string "Program Leader\n" + .string "\nPlanning Leader\n" + .string "\nGraphic Design Leader\n" + .string "\n$" .align 2 gCreditsString_Tetsuya_Watanabe_Koji_Nishino_Takao_Unno:: @ 0x841D284 - .string "\nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$" + .string "\n" + .string "Tetsuya Watanabe\n" + .string "\nKoji Nishino\n" + .string "\nTakao Unno\n" + .string "$" .align 2 gCreditsString_Programmers:: @ 0x841D2B4 - .string "Programmers\n\n\n\n\n$" + .string "Programmers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hiroyuki_Nakamura_Masao_Taya_Satoshi_Nohara_Miyuki_Iwasawa_Daisuke_Goto:: @ 0x841D2C8 - .string "\nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$" + .string "\n" + .string "Hiroyuki Nakamura\n" + .string "Masao Taya\n" + .string "Satoshi Nohara\n" + .string "Miyuki Iwasawa\n" + .string "Daisuke Goto\n" + .string "$" .align 2 gCreditsString_System_Programmers:: @ 0x841D314 - .string "System Programmers\n\n\n\n\n\n$" + .string "System Programmers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Tetsuya_Watanabe_Akito_Mori_Hisashi_Sogabe_Sousuke_Tamada:: @ 0x841D330 - .string "\nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$" + .string "\n" + .string "Tetsuya Watanabe\n" + .string "Akito Mori\n" + .string "Hisashi Sogabe\n" + .string "Sousuke Tamada\n" + .string "\n$" .align 2 gCreditsString_Graphic_Designers:: @ 0x841D370 - .string "Graphic Designers\n\n\n\n\n\n$" + .string "Graphic Designers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Takao_Unno_Asuka_Iwashita_Kanako_Eo_Hiroki_Fuchino:: @ 0x841D388 - .string "\nTakao Unno\nAsuka Iwashita\nKanako Eo\nHiroki Fuchino\n\n$" + .string "\n" + .string "Takao Unno\n" + .string "Asuka Iwashita\n" + .string "Kanako Eo\n" + .string "Hiroki Fuchino\n" + .string "\n$" .align 2 gCreditsString_Graphic_Designers_2:: @ 0x841D3C0 - .string "\nGraphic Designers\n\n\n\n\n$" + .string "\n" + .string "Graphic Designers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Ken_Sugimori_Hironobu_Yoshida:: @ 0x841D3D8 - .string "\n\nKen Sugimori\nHironobu Yoshida\n\n\n$" + .string "\n" + .string "\nKen Sugimori\n" + .string "Hironobu Yoshida\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Music_Composition:: @ 0x841D3FC - .string "\nMusic Composition\n\n\n\n\n$" + .string "\n" + .string "Music Composition\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Go_Ichinose_Junichi_Masuda:: @ 0x841D414 - .string "\n\nGo Ichinose\nJunichi Masuda\n\n\n$" + .string "\n" + .string "\nGo Ichinose\n" + .string "Junichi Masuda\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Sound_Effects:: @ 0x841D434 - .string "\n\nSound Effects\n\n\n\n$" + .string "\n" + .string "\nSound Effects\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Go_Ichinose:: @ 0x841D448 - .string "\n\n\nGo Ichinose\n\n\n$" + .string "\n" + .string "\n\n" + .string "Go Ichinose\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Game_Designers:: @ 0x841D45C - .string "\nGame Designers\n\n\n\n\n$" + .string "\n" + .string "Game Designers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Junichi_Masuda_Koji_Nishino_Tetsuji_Ohta:: @ 0x841D474 - .string "\n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$" + .string "\n" + .string "\nJunichi Masuda\n" + .string "Koji Nishino\n" + .string "Tetsuji Ohta\n" + .string "\n$" .align 2 gCreditsString_Game_Designers_2:: @ 0x841D4A4 - .string "\nGame Designers\n\n\n\n\n$" + .string "\n" + .string "Game Designers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hitomi_Sato_Shigeru_Ohmori_Tadashi_Takahashi:: @ 0x841D4BC - .string "\n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$" + .string "\n" + .string "\nHitomi Sato\n" + .string "Shigeru Ohmori\n" + .string "Tadashi Takahashi\n" + .string "\n$" .align 2 gCreditsString_Game_Scenario:: @ 0x841D4F0 - .string "\nGame Scenario\n\n\n\n\n$" + .string "\n" + .string "Game Scenario\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hitomi_Sato_Satoshi_Tajiri:: @ 0x841D504 - .string "\n\nHitomi Sato\nSatoshi Tajiri\n\n\n$" + .string "\n" + .string "\nHitomi Sato\n" + .string "Satoshi Tajiri\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Script_Designer_Map_Designer:: @ 0x841D524 - .string "\nScript Designer\n\nMap Designer\n\n\n$" + .string "\n" + .string "Script Designer\n" + .string "\nMap Designer\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Satoshi_Nohara_Shigeru_Ohmori:: @ 0x841D548 - .string "\n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$" + .string "\n" + .string "\nSatoshi Nohara\n" + .string "\nShigeru Ohmori\n" + .string "\n$" .align 2 gCreditsString_Parametric_Designers:: @ 0x841D56C - .string "\nParametric Designers\n\n\n\n\n$" + .string "\n" + .string "Parametric Designers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Koji_Nishino_Tetsuji_Ohta_Shigeki_Morimoto:: @ 0x841D588 - .string "\n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$" + .string "\n" + .string "\nKoji Nishino\n" + .string "Tetsuji Ohta\n" + .string "Shigeki Morimoto\n" + .string "\n$" .align 2 gCreditsString_POKeDEX_Text:: @ 0x841D5B8 - .string "\n\nPOKéDEX Text\n\n\n\n$" + .string "\n" + .string "\nPOKéDEX Text\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Kenji_Matsushima:: @ 0x841D5CC - .string "\n\n\nKenji Matsushima\n\n\n$" + .string "\n" + .string "\n\n" + .string "Kenji Matsushima\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_POKeMON_Designers:: @ 0x841D5E4 - .string "POKéMON Designers\n\n\n\n\n\n$" + .string "POKéMON Designers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Ken_Sugimori_Motofumi_Fujiwara_Shigeki_Morimoto_Hironobu_Yoshida:: @ 0x841D5FC - .string "\nKen Sugimori\nMotofumi Fujiwara\nShigeki Morimoto\nHironobu Yoshida\n\n$" + .string "\n" + .string "Ken Sugimori\n" + .string "Motofumi Fujiwara\n" + .string "Shigeki Morimoto\n" + .string "Hironobu Yoshida\n" + .string "\n$" .align 2 gCreditsString_POKeMON_Designers_2:: @ 0x841D640 - .string "POKéMON Designers\n\n\n\n\n\n$" + .string "POKéMON Designers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Satoshi_Ohta_Asuka_Iwashita_Takao_Unno_Kanako_Eo_Aimi_Tomita:: @ 0x841D658 - .string "\nSatoshi Ohta\nAsuka Iwashita\nTakao Unno\nKanako Eo\nAimi Tomita\n$" + .string "\n" + .string "Satoshi Ohta\n" + .string "Asuka Iwashita\n" + .string "Takao Unno\n" + .string "Kanako Eo\n" + .string "Aimi Tomita\n" + .string "$" .align 2 gCreditsString_POKeMON_Designers_3:: @ 0x841D698 - .string "POKéMON Designers\n\n\n\n\n\n$" + .string "POKéMON Designers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Atsuko_Nishida_Muneo_Saito_Rena_Yoshikawa_Jun_Okutani:: @ 0x841D6B0 - .string "\nAtsuko Nishida\nMuneo Saito\nRena Yoshikawa\nJun Okutani\n\n$" + .string "\n" + .string "Atsuko Nishida\n" + .string "Muneo Saito\n" + .string "Rena Yoshikawa\n" + .string "Jun Okutani\n" + .string "\n$" .align 2 gCreditsString_Supporting_Programmers:: @ 0x841D6EC - .string "Supporting Programmers\n\n\n\n$" + .string "Supporting Programmers\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Teruyuki_Yoshioka_Takao_Nakano_Satoshi_Mitsuhara_Daisuke_Hoshino:: @ 0x841D708 - .string "\nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$" + .string "\n" + .string "Teruyuki Yoshioka\n" + .string "Takao Nakano\n" + .string "\nSatoshi Mitsuhara\n" + .string "Daisuke Hoshino\n" + .string "$" .align 2 gCreditsString_NCL_Product_Testing:: @ 0x841D74C - .string "\n\nNCL Product Testing\n\n\n\n$" + .string "\n" + .string "\nNCL Product Testing\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_NCL_Super_Mario_Club:: @ 0x841D768 - .string "\n\n\nNCL Super Mario Club\n\n\n$" + .string "\n" + .string "\n\n" + .string "NCL Super Mario Club\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Special_Thanks:: @ 0x841D784 - .string "Special Thanks\n\n\n\n\n\n$" + .string "Special Thanks\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Hiro_Nakamura_Hiroyuki_Uesugi_Teruki_Murakawa_Kazuya_Suyama:: @ 0x841D79C - .string "\nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$" + .string "\n" + .string "Hiro Nakamura\n" + .string "Hiroyuki Uesugi\n" + .string "Teruki Murakawa\n" + .string "\nKazuya Suyama\n" + .string "$" .align 2 gCreditsString_Special_Thanks_2:: @ 0x841D7DC - .string "Special Thanks\n\n\n\n\n\n$" + .string "Special Thanks\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Kenji_Tominaga_Kenjiro_Ito_Tomotaka_Komura_Michiko_Takizawa:: @ 0x841D7F4 - .string "\nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$" + .string "\n" + .string "Kenji Tominaga\n" + .string "\nKenjiro Ito\n" + .string "Tomotaka Komura\n" + .string "Michiko Takizawa\n" + .string "$" .align 2 gCreditsString_Special_Thanks_3:: @ 0x841D834 - .string "Special Thanks\n\n\n\n\n\n$" + .string "Special Thanks\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Makiko_Takada_Mikiko_Ohashi_Shusaku_Egami_Takanao_Kondo_Rui_Kawaguchi:: @ 0x841D84C - .string "\nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$" + .string "\n" + .string "Makiko Takada\n" + .string "Mikiko Ohashi\n" + .string "Shusaku Egami\n" + .string "Takanao Kondo\n" + .string "Rui Kawaguchi\n" + .string "$" .align 2 gCreditsString_Braille_Code_Check:: @ 0x841D894 - .string "\n\nBraille Code Check\n\n\n\n$" + .string "\n" + .string "\nBraille Code Check\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Japan_Braille_Library:: @ 0x841D8B0 - .string "\n\n\nJapan Braille Library\n\n\n$" + .string "\n" + .string "\n\n" + .string "Japan Braille Library\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Information_Supervisors:: @ 0x841D8CC - .string "Information Supervisors\n\n\n\n\n\n$" + .string "Information Supervisors\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Hiroki_Enomoto_Kazuyuki_Terada_Yuri_Sakurai_Yumi_Funasaka_Naoko_Yanase:: @ 0x841D8EC - .string "\nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$" + .string "\n" + .string "Hiroki Enomoto\n" + .string "Kazuyuki Terada\n" + .string "Yuri Sakurai\n" + .string "Yumi Funasaka\n" + .string "Naoko Yanase\n" + .string "$" .align 2 gCreditsString_Coordinators:: @ 0x841D938 - .string "Coordinators\n\n\n\n\n\n$" + .string "Coordinators\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Azusa_Tajima_Akira_Kinashi_Kazuki_Yoshihara_Retsuji_Nomoto:: @ 0x841D94C - .string "\nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$" + .string "\n" + .string "Azusa Tajima\n" + .string "Akira Kinashi\n" + .string "Kazuki Yoshihara\n" + .string "\nRetsuji Nomoto\n" + .string "$" .align 2 gCreditsString_Task_Managers:: @ 0x841D98C - .string "\nTask Managers\n\n\n\n\n$" + .string "\n" + .string "Task Managers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hitoshi_Yamagami_Gakuji_Nomoto:: @ 0x841D9A0 - .string "\n\nHitoshi Yamagami\nGakuji Nomoto\n\n\n$" + .string "\n" + .string "\nHitoshi Yamagami\n" + .string "Gakuji Nomoto\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Producers:: @ 0x841D9C4 - .string "\nProducers\n\n\n\n\n$" + .string "\n" + .string "Producers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hiroyuki_Jinnai_Takehiro_Izushi_Hiroaki_Tsuru:: @ 0x841D9D4 - .string "\n\nHiroyuki Jinnai\nTakehiro Izushi\nHiroaki Tsuru\n\n$" + .string "\n" + .string "\nHiroyuki Jinnai\n" + .string "Takehiro Izushi\n" + .string "Hiroaki Tsuru\n" + .string "\n$" .align 2 gCreditsString_Executive_Director:: @ 0x841DA08 - .string "\n\nExecutive Director\n\n\n\n$" + .string "\n" + .string "\nExecutive Director\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Satoshi_Tajiri:: @ 0x841DA24 - .string "\n\n\nSatoshi Tajiri\n\n\n$" + .string "\n" + .string "\n\n" + .string "Satoshi Tajiri\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Executive_Producer:: @ 0x841DA3C - .string "\n\nExecutive Producer\n\n\n\n$" + .string "\n" + .string "\nExecutive Producer\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Satoru_Iwata:: @ 0x841DA58 - .string "\n\n\nSatoru Iwata\n\n\n$" + .string "\n" + .string "\n\n" + .string "Satoru Iwata\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Executive_Producer_2:: @ 0x841DA6C - .string "\n\nExecutive Producer\n\n\n\n$" + .string "\n" + .string "\nExecutive Producer\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Tsunekaz_Ishihara:: @ 0x841DA88 - .string "\n\n\nTsunekaz Ishihara\n\n\n$" + .string "\n" + .string "\n\n" + .string "Tsunekaz Ishihara\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_English_Version_Coordinators:: @ 0x841DAA0 - .string "\nEnglish Version Coordinators\n\n\n\n\n$" + .string "\n" + .string "English Version Coordinators\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Hiro_Nakamura_Seth_McMahill:: @ 0x841DAC4 - .string "\n\nHiro Nakamura\nSeth McMahill\n\n\n$" + .string "\n" + .string "\nHiro Nakamura\n" + .string "Seth McMahill\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Translator_Text_Editor:: @ 0x841DAE8 - .string "\nTranslator\n\nText Editor\n\n\n$" + .string "\n" + .string "Translator\n" + .string "\nText Editor\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Nob_Ogasawara_Teresa_Lillygren:: @ 0x841DB04 - .string "\n\nNob Ogasawara\n\nTeresa Lillygren\n\n$" + .string "\n" + .string "\nNob Ogasawara\n" + .string "\nTeresa Lillygren\n" + .string "\n$" .align 2 gCreditsString_Programmers_2:: @ 0x841DB28 - .string "Programmers\n\n\n\n\n\n$" + .string "Programmers\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Yuichiro_Ito_Akira_Kinashi:: @ 0x841DB3C - .string "\nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$" + .string "\n" + .string "Teruki Murakawa\n" + .string "Souichi Yamamoto\n" + .string "Yuichiro Ito\n" + .string "Akira Kinashi\n" + .string "\n$" .align 2 gCreditsString_Environment_Tool_Programmers:: @ 0x841DB7C - .string "\nEnvironment を Tool Programmers\n\n\n\n\n$" + .string "\n" + .string "Environment を Tool Programmers\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Kimiko_Nakamichi:: @ 0x841DBA4 - .string "\n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$" + .string "\n" + .string "\nTeruki Murakawa\n" + .string "Souichi Yamamoto\n" + .string "Kimiko Nakamichi\n" + .string "\n$" .align 2 gCreditsString_NOA_Product_Testing:: @ 0x841DBDC - .string "NOA Product Testing\n\n\n\n\n\n$" + .string "NOA Product Testing\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Thomas_Hertzog_Kathy_Huguenard_Mika_Kurosawa:: @ 0x841DBF8 - .string "\nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$" + .string "\n" + .string "Thomas Hertzog\n" + .string "Kathy Huguenard\n" + .string "Mika Kurosawa\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_Braille_Code_Check_2:: @ 0x841DC2C - .string "Braille Code Check\n\n\n\n\n\n$" + .string "Braille Code Check\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_National_Federation_of_the_Blind_Patricia_A_Maurer_Japan_Braille_Library_European_Blind_Union:: @ 0x841DC48 - .string "\nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$" + .string "\n" + .string "National Federation\n" + .string "{CLEAR_TO 0x13}of the Blind\n" + .string "Patricia A. Maurer\n" + .string "Japan Braille Library\n" + .string "European Blind Union\n" + .string "$" .align 2 gCreditsString_Braille_Code_Check_3:: @ 0x841DCAC - .string "\nBraille Code Check\n\n\n\n\n$" + .string "\n" + .string "Braille Code Check\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_National_Information_Library_Service_Margaret_Campion:: @ 0x841DCC8 - .string "\n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$" + .string "\n" + .string "\nNational Information Library\n" + .string "{CLEAR_TO 0x2D}Service\n" + .string "Margaret Campion\n" + .string "\n$" .align 2 gCreditsString_Special_Thanks_4:: @ 0x841DD08 - .string "Special Thanks\n\n\n\n\n\n$" + .string "Special Thanks\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Takehiro_Izushi_Motoyasu_Tojima_Hitoshi_Yamagami_Hiroyuki_Uesugi:: @ 0x841DD20 - .string "\nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$" + .string "\n" + .string "Takehiro Izushi\n" + .string "Motoyasu Tojima\n" + .string "Hitoshi Yamagami\n" + .string "Hiroyuki Uesugi\n" + .string "\n$" .align 2 gCreditsString_Special_Thanks_5:: @ 0x841DD64 - .string "Special Thanks\n\n\n\n\n\n$" + .string "Special Thanks\n" + .string "\n\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Nicola_Pratt_Barlow_Shellie_Dow_Anthony_Howitt_Naoko_Saeki_Kyoko_Onishi:: @ 0x841DD7C - .string "\nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$" + .string "\n" + .string "Nicola Pratt-Barlow\n" + .string "Shellie Dow\n" + .string "Anthony Howitt\n" + .string "Naoko Saeki\n" + .string "Kyoko Onishi\n" + .string "$" .align 2 gCreditsString_Braille_Code_Check_4:: @ 0x841DDC8 - .string "\nBraille Code Check\n\n\n\n\n$" + .string "\n" + .string "Braille Code Check\n" + .string "\n\n" + .string "\n\n" + .string "$" .align 2 gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Greg_Moran:: @ 0x841DDE4 - .string "\n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$" + .string "\n" + .string "\nThe Royal New Zealand\n" + .string "Foundation of the Blind\n" + .string "Greg Moran\n" + .string "\n$" .align 2 gCreditsString_Graphic_Designer:: @ 0x841DE24 - .string "\n\nGraphic Designer\n\n\n\n$" + .string "\n" + .string "\nGraphic Designer\n" + .string "\n\n" + .string "\n$" .align 2 gCreditsString_Akira_Kinashi:: @ 0x841DE3C - .string "\n\n\nAkira Kinashi\n\n\n$" + .string "\n" + .string "\n\n" + .string "Akira Kinashi\n" + .string "\n\n" + .string "$" gJPText_MysteryGift:: @ 841DE50 .string "$" @@ -3679,7 +4214,8 @@ gUnknown_841DE54:: @ 841DE54 .string "$" gUnknown_841DE55:: @ 841DE55 - .string "カ-ドeリ-ダ-{EXTRA_PLUS}の ‘つうしん'を\nえらんで Aボタンを おしてください$" + .string "カ-ドeリ-ダ-{EXTRA_PLUS}の ‘つうしん'を\n" + .string "えらんで Aボタンを おしてください$" gUnknown_841DE7C:: @ 841DE7C .string "$" @@ -3688,7 +4224,8 @@ gUnknown_841DE7D:: @ 841DE7D .string "$" gUnknown_841DE7E:: @ 841DE7E - .string "カ-ドeリ-ダ-{EXTRA_PLUS}と\nつうしん できません$" + .string "カ-ドeリ-ダ-{EXTRA_PLUS}と\n" + .string "つうしん できません$" gUnknown_841DE95:: @ 841DE95 .string "$" @@ -3935,7 +4472,8 @@ gUnknown_841E2EC:: @ 841E2EC .string "{KEYGFX_B_BUTTON}CANCEL$" gUnknown_841E2F5:: @ 841E2F5 - .string "{COLOR BLUE}{SHADOW YELLOW} たいせんの くみあわせ\n{COLOR RED}{SHADOW GREEN}じぶんの ばしょをきめて ください$" + .string "{COLOR BLUE}{SHADOW YELLOW} たいせんの くみあわせ\n" + .string "{COLOR RED}{SHADOW GREEN}じぶんの ばしょをきめて ください$" gUnknown_841E322:: @ 841E322 .string "{EXTRA_ID}$" @@ -3965,31 +4503,44 @@ gUnknown_841E3FB:: @ 841E3FB .string "Teach {STR_VAR_2}?$" gUnknown_841E405:: @ 841E405 - .string "{STR_VAR_1} learned\n{STR_VAR_2}.$" + .string "{STR_VAR_1} learned\n" + .string "{STR_VAR_2}.$" gUnknown_841E414:: @ 841E414 - .string "{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?$" + .string "{STR_VAR_1} is trying to learn\n" + .string "{STR_VAR_2}.\p" + .string "But {STR_VAR_1} can't learn more\n" + .string "than four moves.\p" + .string "Delete an older move to make\n" + .string "room for {STR_VAR_2}?$" gUnknown_841E481:: @ 841E481 .string "Stop learning {STR_VAR_2}?$" gUnknown_841E493:: @ 841E493 - .string "{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p$" + .string "{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p" + .string "$" gUnknown_841E4C0:: @ 841E4C0 - .string "{STR_VAR_1} forgot {STR_VAR_3}.\pAnd‥\p{STR_VAR_1}\nlearned {STR_VAR_2}.$" + .string "{STR_VAR_1} forgot {STR_VAR_3}.\p" + .string "And‥\p" + .string "{STR_VAR_1}\n" + .string "learned {STR_VAR_2}.$" gUnknown_841E4E2:: @ 841E4E2 - .string "Give up trying to teach a new\nmove to {STR_VAR_1}?$" + .string "Give up trying to teach a new\n" + .string "move to {STR_VAR_1}?$" gUnknown_841E50C:: @ 841E50C - .string "Which move should be forgotten?\p$" + .string "Which move should be forgotten?\p" + .string "$" gUnknown_841E52D:: @ 0x841E52D .string "----------$" gUnknown_841E538:: @ 841E538 - .string "Communication standby‥\nAwaiting another player to choose.$" + .string "Communication standby‥\n" + .string "Awaiting another player to choose.$" gUnknown_841E572:: @ 841E572 .string "The battle was refused.{PAUSE 0x3C}$" diff --git a/data/tileset_anims.s b/data/tileset_anims.s index 9881cdd3f..5f2320fd3 100644 --- a/data/tileset_anims.s +++ b/data/tileset_anims.s @@ -1,5 +1,8 @@ .section .rodata .align 2 +gUnknown_83A73E0:: @ 83A73E0 + .incbin "baserom.gba", 0x3A73E0, 0x280 + gUnknown_83A7660:: @ 83A7660 .incbin "baserom.gba", 0x3A7660, 0x2FF4 diff --git a/include/event_scripts.h b/include/event_scripts.h index ce9d0bbf5..99b453c85 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1161,4 +1161,11 @@ extern const u8 EventScript_ResetAllMapFlags[]; // player_pc extern const u8 EventScript_PalletTown_PlayersHouse_2F_ShutDownPC[]; +// start_menu +extern const u8 gText_WouldYouLikeToSaveTheGame[]; +extern const u8 gText_AlreadySaveFile_WouldLikeToOverwrite[]; +extern const u8 gText_SavingDontTurnOffThePower[]; +extern const u8 gText_PlayerSavedTheGame[]; +extern const u8 gText_DifferentGameFile[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index fe67fec30..22849a37d 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -15,6 +15,7 @@ void sub_807DF64(void); void sub_807DC18(void); void FieldCallback_ReturnToEventScript2(void); void sub_807DC00(void); +void FadeTransition_FadeInOnReturnToStartMenu(void); bool32 sub_807E418(void); diff --git a/include/fieldmap.h b/include/fieldmap.h index 7bedb1d94..dde05b7ed 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -26,4 +26,6 @@ u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection); struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y); +void save_serialize_map(void); + #endif //GUARD_FIELDMAP_H diff --git a/include/gba/macro.h b/include/gba/macro.h index c0a4e481b..01bb85b7a 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -121,10 +121,31 @@ } \ } +#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, value, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, value, _dest, _size); \ + break; \ + } \ + } \ +} + #define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) #define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) +#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) + +#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) + #define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) #define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) @@ -139,4 +160,14 @@ #define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) #define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) +#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + DmaFill##bit(dmaNum, value, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) +#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) + #endif // GUARD_GBA_MACRO_H diff --git a/include/help_system.h b/include/help_system.h index ff77d01d6..53dc45014 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -29,7 +29,7 @@ extern bool8 gHelpSystemEnabled; extern u8 gUnknown_203F175; // help_system_812B1E0 -void sub_812B1E0(u8); +void HelpSystem_SetSomeVariable(u8); void HelpSystem_SetSomeVariable2(u8); bool8 sub_812B40C(void); bool8 sub_812B45C(void); @@ -89,7 +89,7 @@ void HelpSystem_FillPanel3(void); void PrintListMenuItems(void); void PlaceListMenuCursor(void); bool8 MoveCursor(u8 by, u8 dirn); -void sub_812B234(void); -void sub_812B248(void); +void HelpSystem_BackupSomeVariable(void); +void HelpSystem_RestoreSomeVariable(void); #endif //GUARD_HELP_SYSTEM_H diff --git a/include/item_menu.h b/include/item_menu.h index 83b8d6d15..166906ebe 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -28,7 +28,7 @@ void sub_81AAC70(void); void sub_8108CF0(void); void sub_81089BC(void); void sub_810B108(u8); -void ReturnToBagFromKeyItem(void); +void CB2_BagMenuFromStartMenu(void); void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2); void ItemMenu_StartFadeToExitCallback(u8 taskId); void sub_8108CB4(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 2757e5296..2be9dd3c9 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -39,5 +39,6 @@ bool32 sub_80FAEF0(void); bool32 IsRfuRecvQueueEmpty(void); u32 GetRfuRecvQueueLength(void); void sub_80F8DC0(void); +void var_800D_set_xB(void); #endif //GUARD_LINK_RFU_H diff --git a/include/load_save.h b/include/load_save.h index bd33f89c8..2406b5f03 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -26,5 +26,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); void ApplyNewEncryptionKeyToBagItems(u32 encryptionKey); void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey); void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey); +void sav2_gender2_inplace_and_xFE(void); +void sub_804C1C0(void); #endif // GUARD_LOAD_SAVE_H diff --git a/include/menu.h b/include/menu.h index 6f358d34e..b6d757f85 100644 --- a/include/menu.h +++ b/include/menu.h @@ -21,7 +21,7 @@ struct MenuAction void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const u8 * color, s8 speed, const u8 * str); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing); -void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y); +void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); u8 sub_812EA78(u16 species, u32 personality, u8 a2); diff --git a/include/new_game.h b/include/new_game.h index ed40546ba..bf048718a 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -3,6 +3,8 @@ #include "global.h" +extern bool8 gDifferentSaveFile; + void SetTrainerId(u32 trainerId, u8 *dst); void CopyTrainerId(u8 *dst, u8 *src); void NewGameInitData(void); diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index a7555c505..644e65289 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -26,7 +26,7 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress); void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed); -void sub_80F6E9C(void); +void LoadStdWindowFrameGfx(void); void DrawDialogueFrame(u8 windowId, bool8 transfer); void DrawStdWindowFrame(u8 windowId, bool8 copyNow); void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); @@ -41,12 +41,12 @@ void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callb void DisplayYesNoMenuDefaultYes(void); void DisplayYesNoMenuDefaultNo(void); u8 GetTextSpeedSetting(void); -u8 sub_80F78E0(u8 height); +u8 CreateStartMenuWindow(u8 height); u8 GetStartMenuWindowId(void); void RemoveStartMenuWindow(void); u16 GetStdWindowBaseTileNum(void); -void sub_80F7974(const u8 * text); -void sub_80F7998(void); +void DrawHelpMessageWindowWithText(const u8 * text); +void DestroyHelpMessageWindow_(void); void sub_80F79A4(void); void SetDefaultFontsPointer(void); diff --git a/include/option_menu.h b/include/option_menu.h new file mode 100644 index 000000000..21a508973 --- /dev/null +++ b/include/option_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_OPTION_MENU_H +#define GUARD_OPTION_MENU_H + +void CB2_OptionsMenuFromStartMenu(void); + +#endif //GUARD_OPTION_MENU_H diff --git a/include/overworld.h b/include/overworld.h index d221e88d1..38c213707 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -38,6 +38,7 @@ extern MainCallback gFieldCallback; extern struct WarpData gUnknown_2031DBC; extern u8 gUnknown_2031DE0; +extern u8 gUnknown_300502C; void IncrementGameStat(u8 index); @@ -138,4 +139,6 @@ bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd bool32 sub_8058318(void); +void CB2_ReturnToStartMenu(void); + #endif //GUARD_OVERWORLD_H diff --git a/include/party_menu.h b/include/party_menu.h index 16dccb6d8..5b9b6e1c4 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -83,5 +83,6 @@ void sub_8127EC4(u8 battlerId, u8 unk, u8 arrayIndex); bool8 IsMultiBattle(void); void sub_8126EDC(void); void PartyMenuInit_FromPlayerPc(void); +void CB2_PartyMenuFromStartMenu(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokedex_screen.h b/include/pokedex_screen.h new file mode 100644 index 000000000..8855a47fc --- /dev/null +++ b/include/pokedex_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEDEX_SCREEN_H +#define GUARD_POKEDEX_SCREEN_H + +void CB2_OpenPokedexFromStartMenu(void); + +#endif //GUARD_POKEDEX_SCREEN_H diff --git a/include/quest_log.h b/include/quest_log.h index 8a2816c74..d3ccbe3da 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -28,14 +28,18 @@ u8 sub_8112CAC(void); bool8 sub_81119D4(void (*func)(void)); void sub_8111F38(u16, u16); void sub_8111134(void); -void sub_8112EDC(u8 a0); -u8 sub_8112EB4(void); -void sub_8113018(const u8 * text, u8 mode); +void DestroyHelpMessageWindow(u8 a0); +u8 CreateHelpMessageWindow(void); +void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode); void MapNamePopupWindowIdSetDummy(void); void sub_8111CF0(void); void sub_811089C(void); void sub_8113044(void); void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId); +void sub_8112450(void); +void sub_8112364(void); +u8 sub_8112CAC(void); +void sub_81138F8(void); extern u8 gUnknown_203ADFA; diff --git a/include/save.h b/include/save.h index 7a74373c8..41d2ec666 100644 --- a/include/save.h +++ b/include/save.h @@ -84,7 +84,7 @@ extern u16 gSaveUnusedVar; extern u16 gSaveFileStatus; extern void (*gGameContinueCallback)(void); extern struct SaveBlockChunk gRamSaveSectionLocations[0xE]; -extern u16 gUnknown_3005420; +extern u16 gSaveSucceeded; extern struct SaveSection gSaveDataBuffer; diff --git a/include/save_menu_util.h b/include/save_menu_util.h new file mode 100644 index 000000000..f2a18a777 --- /dev/null +++ b/include/save_menu_util.h @@ -0,0 +1,15 @@ +#ifndef GUARD_SAVE_MENU_UTIL_H +#define GUARD_SAVE_MENU_UTIL_H + +enum SaveStat +{ + SAVE_STAT_NAME = 0, + SAVE_STAT_POKEDEX, + SAVE_STAT_TIME, + SAVE_STAT_LOCATION, + SAVE_STAT_BADGES +}; + +void SaveStatToString(u8 a0, u8 *a1, u8 a2); + +#endif //GUARD_SAVE_MENU_UTIL_H diff --git a/include/start_menu.h b/include/start_menu.h index c4a3ce19d..90fe7109a 100644 --- a/include/start_menu.h +++ b/include/start_menu.h @@ -4,7 +4,10 @@ #include "global.h" void AppendToList(u8* list, u8* pos, u8 newEntry); -void sub_806F1F0(u8 taskId); -void sub_806F1D4(void); +void Task_StartMenuHandleInput(u8 taskId); +void SetUpReturnToStartMenu(void); +void ShowStartMenu(void); +void Field_AskSaveTheGame(void); +void CB2_SetUpSaveAfterLinkBattle(void); #endif // GUARD_START_MENU_H diff --git a/include/strings.h b/include/strings.h index d6608812f..2c2756eb5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -77,8 +77,8 @@ 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 gStartMenuText_PokemonLeague[]; +extern const u8 gStartMenuText_PokemonCenter[]; extern const u8 gText_ApostropheSBase[]; extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; @@ -90,7 +90,7 @@ extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; -extern const u8 gText_Pokemon[]; +extern const u8 gStartMenuText_Pokemon[]; extern const u8 gText_PkmnFainted3[]; extern const u8 gOtherText_Use[]; @@ -446,4 +446,30 @@ extern const u8 gText_MessageWillBeLost[]; extern const u8 gText_BagIsFull[]; extern const u8 gText_MailReturnedToBagMessageErased[]; +// start_menu +extern const u8 gStartMenuText_Pokedex[]; +extern const u8 gStartMenuText_Pokemon[]; +extern const u8 gStartMenuText_Bag[]; +extern const u8 gStartMenuText_Player[]; +extern const u8 gStartMenuText_Save[]; +extern const u8 gStartMenuText_Option[]; +extern const u8 gStartMenuText_Exit[]; +extern const u8 gStartMenuText_Retire[]; +extern const u8 gUnknown_84162A9[]; +extern const u8 gStartMenuDesc_Pokedex[]; +extern const u8 gStartMenuDesc_Pokemon[]; +extern const u8 gStartMenuDesc_Bag[]; +extern const u8 gStartMenuDesc_Player[]; +extern const u8 gStartMenuDesc_Save[]; +extern const u8 gStartMenuDesc_Option[]; +extern const u8 gStartMenuDesc_Exit[]; +extern const u8 gStartMenuDesc_Retire[]; +extern const u8 gStartMenuDesc_Player[]; +extern const u8 gText_SaveError_PleaseExchangeBackupMemory[]; +extern const u8 gText_SavingDontTurnOffThePower2[]; +extern const u8 gSaveStatName_Player[]; +extern const u8 gSaveStatName_Badges[]; +extern const u8 gSaveStatName_Pokedex[]; +extern const u8 gSaveStatName_Time[]; + #endif //GUARD_STRINGS_H diff --git a/include/trainer_card.h b/include/trainer_card.h index e8531cef5..b38754988 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -40,4 +40,7 @@ struct TrainerCard extern struct TrainerCard gTrainerCards[4]; +void InitTrainerCard(MainCallback callback); +void InitLinkPartnerTrainerCard(u8 whoseCard, MainCallback callback); + #endif //GUARD_TRAINER_CARD_H diff --git a/ld_script.txt b/ld_script.txt index 2369e255f..9a8731e17 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -106,7 +106,7 @@ SECTIONS { asm/event_data.o(.text); src/coord_event_weather.o(.text); asm/field_tasks.o(.text); - asm/start_menu.o(.text); + src/start_menu.o(.text); src/tileset_anims.o(.text); src/palette.o(.text); src/sound.o(.text); @@ -408,7 +408,7 @@ SECTIONS { src/scrcmd.o(.rodata); src/coord_event_weather.o(.rodata); data/field_tasks.o(.rodata); - data/start_menu.o(.rodata); + src/start_menu.o(.rodata); data/tileset_anims.o(.rodata); src/palette.o(.rodata); src/sound.o(.rodata); diff --git a/src/fame_checker.c b/src/fame_checker.c index 0278fda18..e803a9700 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -552,7 +552,7 @@ static void Task_TopMenuHandleInput(u8 taskId) if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF) { RunTextPrinters(); - if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != ReturnToBagFromKeyItem) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != CB2_BagMenuFromStartMenu) task->func = Task_StartToCloseFameChecker; else if (JOY_NEW(START_BUTTON)) { @@ -802,7 +802,7 @@ static void WipeMsgBoxAndTransfer(void) static void Setup_DrawMsgAndListBoxes(void) { - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST); diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 6447ae1b2..6a539b60e 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -475,25 +475,25 @@ static void sub_807E31C(u8 taskId) } } -static void sub_807E378(u8 taskId) +static void Task_WaitFadeAndCreateStartMenuTask(u8 taskId) { if (sub_807E418() == TRUE) { DestroyTask(taskId); - CreateTask(sub_806F1F0, 80); + CreateTask(Task_StartMenuHandleInput, 80); } } -void sub_807E3A0(void) +void FadeTransition_FadeInOnReturnToStartMenu(void) { sub_807DC00(); - CreateTask(sub_807E378, 80); + CreateTask(Task_WaitFadeAndCreateStartMenuTask, 80); ScriptContext2_Enable(); } -bool32 sub_807E3BC(void) +bool8 FieldCB2_ReturnToStartMenuInit(void) { - sub_806F1D4(); + SetUpReturnToStartMenu(); return FALSE; } diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c index a527525f8..afb792072 100644 --- a/src/help_system_812B1E0.c +++ b/src/help_system_812B1E0.c @@ -16,13 +16,13 @@ #include "constants/maps.h" #include "constants/songs.h" -static EWRAM_DATA u16 gUnknown_203B0EC = 0; +static EWRAM_DATA u16 sSomeVariable = 0; static EWRAM_DATA u8 gUnknown_203B0EE = 0; u8 gUnknown_3005E9C[4]; -u16 gUnknown_3005EA0; +u16 gSomeVariableBackup; -static bool32 sub_812B27C(const u16 * mapIdxs); +static bool32 IsCurrentMapInArray(const u16 * mapIdxs); static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); static bool8 sub_812B754(void); @@ -824,7 +824,7 @@ static const u8 gUnknown_845C4B6[][6] = { {0, 0, 0, 0, 0, 0} }; -static const u16 gUnknown_845C594[] = { +static const u16 sMartMaps[] = { MAP_VIRIDIAN_CITY_MART, MAP_PEWTER_CITY_MART, MAP_CERULEAN_CITY_MART, @@ -847,7 +847,7 @@ static const u16 gUnknown_845C594[] = { MAP_UNDEFINED }; -static const u16 gUnknown_845C5BC[] = { +static const u16 sGymMaps[] = { MAP_PEWTER_CITY_GYM, MAP_CERULEAN_CITY_GYM, MAP_VERMILION_CITY_GYM, @@ -859,7 +859,7 @@ static const u16 gUnknown_845C5BC[] = { MAP_UNDEFINED }; -static const u8 gUnknown_845C5CE[][3] = { +static const u8 sDungeonMaps[][3] = { { MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 1 }, { MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 3 }, { MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 2 }, @@ -878,14 +878,14 @@ static const u8 gUnknown_845C5CE[][3] = { { MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 } }; -void sub_812B1E0(u8 a0) +void HelpSystem_SetSomeVariable(u8 a0) { - gUnknown_203B0EC = a0; + sSomeVariable = a0; } void HelpSystem_SetSomeVariable2(u8 a0) { - switch (gUnknown_203B0EC) + switch (sSomeVariable) { case 23: case 24: @@ -895,37 +895,37 @@ void HelpSystem_SetSomeVariable2(u8 a0) break; // fallthrough default: - gUnknown_203B0EC = a0; + sSomeVariable = a0; break; } } -void sub_812B220(void) +void Special_SetSomeVariable(void) { - gUnknown_203B0EC = gSpecialVar_0x8004; + sSomeVariable = gSpecialVar_0x8004; } -void sub_812B234(void) +void HelpSystem_BackupSomeVariable(void) { - gUnknown_3005EA0 = gUnknown_203B0EC; + gSomeVariableBackup = sSomeVariable; } -void sub_812B248(void) +void HelpSystem_RestoreSomeVariable(void) { - gUnknown_203B0EC = gUnknown_3005EA0; + sSomeVariable = gSomeVariableBackup; } -static bool32 sub_812B25C(void) +static bool32 IsInMartMap(void) { - return sub_812B27C(gUnknown_845C594); + return IsCurrentMapInArray(sMartMaps); } -static bool32 sub_812B26C(void) +static bool32 IsInGymMap(void) { - return sub_812B27C(gUnknown_845C5BC); + return IsCurrentMapInArray(sGymMaps); } -static bool32 sub_812B27C(const u16 * mapIdxs) +static bool32 IsCurrentMapInArray(const u16 * mapIdxs) { u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; s32 i; @@ -939,18 +939,18 @@ static bool32 sub_812B27C(const u16 * mapIdxs) return FALSE; } -static bool8 sub_812B2C4(void) +static bool8 IsInDungeonMap(void) { u8 i, j; for (i = 0; i < 16; i++) { - for (j = 0; j < gUnknown_845C5CE[i][2]; j++) + for (j = 0; j < sDungeonMaps[i][2]; j++) { if ( - gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup - && gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum - && (i != 15 || FlagGet(FLAG_0x849) == TRUE) + sDungeonMaps[i][0] == gSaveBlock1Ptr->location.mapGroup + && sDungeonMaps[i][1] + j == gSaveBlock1Ptr->location.mapNum + && (i != 15 /* TANOBY */ || FlagGet(FLAG_0x849) == TRUE) ) return TRUE; } @@ -964,7 +964,7 @@ void sub_812B35C(void) sub_812B4B8(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) HelpSystem_SetSomeVariable2(0x16); - else if (sub_812B2C4()) + else if (IsInDungeonMap()) HelpSystem_SetSomeVariable2(0x15); else if (is_light_level_8_or_9(gMapHeader.mapType)) { @@ -974,9 +974,9 @@ void sub_812B35C(void) HelpSystem_SetSomeVariable2(0x0F); else if (IsCurMapPokeCenter() == TRUE) HelpSystem_SetSomeVariable2(0x10); - else if (sub_812B25C() == TRUE) + else if (IsInMartMap() == TRUE) HelpSystem_SetSomeVariable2(0x11); - else if (sub_812B26C() == TRUE) + else if (IsInGymMap() == TRUE) HelpSystem_SetSomeVariable2(0x12); else HelpSystem_SetSomeVariable2(0x13); @@ -1055,7 +1055,7 @@ static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1 u8 r4 = 0; for (i = 0; i < 6; i++) { - if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1) + if (gUnknown_845C4B6[sSomeVariable][gUnknown_845C4B0[i]] == 1) { a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]]; a1[r4].index = gUnknown_845C4B0[i]; @@ -1085,7 +1085,7 @@ static void sub_812B5A8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1 static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) { u8 r6 = 0; - const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]]; + const u8 * r3 = gUnknown_845B9E0[sSomeVariable * 5 + gUnknown_3005E9C[1]]; u8 i; for (i = 0; r3[i] != 0xFF; i++) { diff --git a/src/item_use.c b/src/item_use.c index 9657488f3..3a189d84a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -191,7 +191,7 @@ void sub_80A1208(void) struct MailStruct mail; mail.itemId = gSpecialVar_ItemId; - sub_80BEBEC(&mail, ReturnToBagFromKeyItem, 0); + sub_80BEBEC(&mail, CB2_BagMenuFromStartMenu, 0); } void FieldUseFunc_MachBike(u8 taskId) @@ -404,7 +404,7 @@ void FieldUseFunc_TmCase(u8 taskId) void InitTMCaseFromBag(void) { - InitTMCase(0, ReturnToBagFromKeyItem, 0); + InitTMCase(0, CB2_BagMenuFromStartMenu, 0); } void Task_InitTMCaseFromField(u8 taskId) @@ -435,7 +435,7 @@ void FieldUseFunc_BerryPouch(u8 taskId) void InitBerryPouchFromBag(void) { - InitBerryPouch(BERRYPOUCH_FROMFIELD, ReturnToBagFromKeyItem, 0); + InitBerryPouch(BERRYPOUCH_FROMFIELD, CB2_BagMenuFromStartMenu, 0); } void Task_InitBerryPouchFromField(u8 taskId) @@ -478,7 +478,7 @@ void FieldUseFunc_TeachyTv(u8 taskId) void InitTeachyTvFromBag(void) { - InitTeachyTvController(0, ReturnToBagFromKeyItem); + InitTeachyTvController(0, CB2_BagMenuFromStartMenu); } void Task_InitTeachyTvFromField(u8 taskId) @@ -608,7 +608,7 @@ void FieldUseFunc_TownMap(u8 taskId) void sub_80A1CAC(void) { - sub_80BFF50(0, ReturnToBagFromKeyItem); + sub_80BFF50(0, CB2_BagMenuFromStartMenu); } void sub_80A1CC0(u8 taskId) @@ -640,7 +640,7 @@ void FieldUseFunc_FameChecker(u8 taskId) void sub_80A1D58(void) { - UseFameChecker(ReturnToBagFromKeyItem); + UseFameChecker(CB2_BagMenuFromStartMenu); } void sub_80A1D68(u8 taskId) diff --git a/src/menu2.c b/src/menu2.c index c6d5ab094..221f84318 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -485,7 +485,7 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u AddTextPrinter(&printer, speed, callback); } -void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y) +void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y) { s32 i; diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 89df1ee34..26cbdb145 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -247,7 +247,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) if (species == SPECIES_EGG) StringCopyN(gStringVar1, gText_EggNickname, POKEMON_NAME_LENGTH + 1); else - StringCopyN(gStringVar1, gText_Pokemon, POKEMON_NAME_LENGTH + 1); + StringCopyN(gStringVar1, gStartMenuText_Pokemon, POKEMON_NAME_LENGTH + 1); if (gPlayerPartyCount == PARTY_SIZE) { diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index 9d2a5c883..f82dbe9c6 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -395,7 +395,7 @@ void ResetBg0(void) ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); DeactivateAllTextPrinters(); - sub_80F6E9C(); + LoadStdWindowFrameGfx(); } u16 RunTextPrinters_CheckPrinter0Active(void) @@ -452,7 +452,7 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3); } -void sub_80F6E9C(void) +void LoadStdWindowFrameGfx(void) { if (gUnknown_203ADFA == 2) { @@ -644,7 +644,7 @@ static u16 GetStdPalColor(u8 colorNum) void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback) { - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback); CopyWindowToVram(0, 3); } @@ -667,7 +667,7 @@ u8 GetTextSpeedSetting(void) return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed]; } -u8 sub_80F78E0(u8 height) +u8 CreateStartMenuWindow(u8 height) { if (sStartMenuWindowId == 0xFF) { @@ -702,15 +702,15 @@ u16 GetStdWindowBaseTileNum(void) return STD_WINDOW_BASE_TILE_NUM; } -void sub_80F7974(const u8 * text) +void DrawHelpMessageWindowWithText(const u8 * text) { - sub_814FE6C(sub_8112EB4(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); - sub_8113018(text, 2); + sub_814FE6C(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + PrintTextOnHelpMessageWindow(text, 2); } -void sub_80F7998(void) +void DestroyHelpMessageWindow_(void) { - sub_8112EDC(2); + DestroyHelpMessageWindow(2); } void sub_80F79A4(void) diff --git a/src/player_pc.c b/src/player_pc.c index 7197f65f1..b1929b9ed 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -154,7 +154,7 @@ void sub_80EB6AC(void) u8 taskId; gPlayerPcMenuManager.unk_9 = 0; - sub_812B234(); + HelpSystem_BackupSomeVariable(); sItemOrder = gUnknown_8402200; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); @@ -166,7 +166,7 @@ void sub_80EB6FC(void) u8 taskId; gPlayerPcMenuManager.unk_9 = 1; - sub_812B234(); + HelpSystem_BackupSomeVariable(); sItemOrder = gUnknown_8402203; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); @@ -215,7 +215,7 @@ static void Task_TopMenuHandleInput(u8 taskId) static void Task_ReturnToTopMenu(u8 taskId) { - sub_812B248(); + HelpSystem_RestoreSomeVariable(); DisplayItemMessageOnField(taskId, 2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); } @@ -343,7 +343,7 @@ static void Task_ReturnToItemStorageSubmenu(u8 taskId) static void CB2_ReturnFromDepositMenu(void) { u8 taskId; - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DrawDialogueFrame(0, TRUE); taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0); Task_CreateItemStorageSubmenu(taskId, 1); @@ -372,7 +372,7 @@ static void Task_PlayerPcWithdrawItem(u8 taskId) static void CB2_ReturnFromWithdrawMenu(void) { u8 taskId; - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DrawDialogueFrame(0, TRUE); taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0); Task_CreateItemStorageSubmenu(taskId, 0); @@ -584,7 +584,7 @@ static void CB2_ReturnToMailbox(void) HelpSystem_SetSomeVariable2(34); else HelpSystem_SetSomeVariable2(30); - sub_80F6E9C(); + LoadStdWindowFrameGfx(); taskId = CreateTask(Task_WaitFadeAndReturnToMailboxPcInputHandler, 0); if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE) Task_DrawMailboxPcMenu(taskId); @@ -700,7 +700,7 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void) } } Task_SetPageItemVars(taskId); - sub_80F6E9C(); + LoadStdWindowFrameGfx(); if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE) Task_DrawMailboxPcMenu(taskId); else diff --git a/src/quest_log.c b/src/quest_log.c index c8bd19174..ef8f56249 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -92,188 +92,185 @@ struct UnkStruct_203AE98 * gUnknown_3005E94; static struct UnkStruct_300201C * gUnknown_300201C; static u16 gUnknown_3002020; -EWRAM_DATA u8 gUnknown_203ADF8 = 0; +static EWRAM_DATA u8 gUnknown_203ADF8 = 0; static EWRAM_DATA u8 sNumScenes = 0; EWRAM_DATA u8 gUnknown_203ADFA = 0; -EWRAM_DATA u16 gUnknown_203ADFC = 0; -EWRAM_DATA u8 gUnknown_203ADFE[3] = {0}; -EWRAM_DATA u16 * gUnknown_203AE04 = NULL; -EWRAM_DATA u16 * gUnknown_203AE08 = NULL; -EWRAM_DATA u16 * gUnknown_203AE0C[32] = {NULL}; -EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL; -EWRAM_DATA u16 *gUnknown_203AE90 = NULL; -EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; -EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0}; -EWRAM_DATA u16 gUnknown_203AF98 = 0; -EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}}; -EWRAM_DATA u16 gUnknown_203B01A = 0; -EWRAM_DATA u16 gUnknown_203B01C = 0; -EWRAM_DATA u16 gUnknown_203B01E = 0; -EWRAM_DATA u8 gUnknown_203B020 = 0; -EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0}; -EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0}; -EWRAM_DATA u8 gUnknown_203B048 = 0; -EWRAM_DATA u8 gUnknown_203B049 = 0; -EWRAM_DATA u8 gUnknown_203B04A = 0; -EWRAM_DATA u8 gUnknown_203B04B = 0; - -void sub_8110A00(void); -void sub_8110A3C(void); -void sub_8110BB0(u8); -void sub_8110BE8(u8); -void sub_8110E3C(void); -void sub_8110D94(void); -void sub_8110E20(void); -void sub_8110D48(u8); -u8 sub_8110E68(struct UnkStruct_203AE98 *); -void sub_8110F90(u8); -void sub_8111150(u8); -void sub_8111368(void); -void sub_81115E8(void); -u16 sub_8111618(void); -u16 sub_811164C(void); -void sub_8111688(void); -void sub_811175C(u8, struct UnkStruct_203AE98 *); -void sub_81118F4(s8); -void sub_8111914(void); -void sub_8111984(void); -void sub_8111A34(u8); -void sub_8111AD8(void); -void sub_8111B80(void); -u8 sub_8111BD4(void); -void sub_8111D10(void); -void sub_8111D90(u8); -void sub_8111E20(void); -void sub_8111E64(s8); -void sub_8111E84(void); -bool8 sub_8111F60(void); -void sub_8111F8C(u8); -void sub_8111FCC(u8); -void sub_8112044(u8); -void sub_81120AC(u8); -bool8 sub_81121D8(u8); -void sub_811229C(void); -void sub_8112364(void); -void sub_8112888(u8); -void sub_8112940(u8, struct UnkStruct_203AE98 *, u16); -u8 sub_8112CAC(void); -bool8 sub_8112CEC(void); -bool8 sub_8112D1C(void); -void sub_8113078(struct Var4038Struct *); -void sub_81130BC(struct Var4038Struct *); -u8 sub_8113194(struct Var4038Struct *); -u16 sub_81132A0(struct Var4038Struct *); -void sub_81132E0(struct Var4038Struct *); -bool16 sub_811337C(struct Var4038Struct *); -void sub_8113390(struct Var4038Struct *); -void sub_8113414(struct LinkBattleRecords *, u8, u8); -void sub_81134CC(struct Var4038Struct *); -bool8 sub_8113508(struct Var4038Struct * ); -void sub_8113524(struct Var4038Struct *); -bool8 sub_81136D4(void); -bool8 sub_8113778(u16, u16 *); -bool8 sub_81137E4(u16, u16 *); -u16 * sub_8113828(u16, u16 *); -bool8 sub_81138A0(u16, u16 *); -bool8 sub_8113954(u16, u16 *); -void sub_8113A1C(u16); -void sub_811381C(void); -void sub_81138F8(void); -bool8 sub_8113A44(u16, u16 *); -u16 * sub_8113A78(u16 *, u16 **); -void sub_8113ABC(u16 *); -bool8 sub_8113AE8(u16 *); -bool8 sub_8113B44(u16 *); -void sub_8113B88(void); -void sub_8113B94(u16); -void sub_8113BD8(void); -u16 * sub_8113BF4(u16 *); -u16 * sub_8113C20(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113C5C(u16 *, u16); -u16 * sub_8113C8C(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113CC8(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113D08(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113D48(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113D94(u16 *, struct UnkStruct_203AE98 *); -u16 * sub_8113F14(u16 *, const u16 *); -const u16 * sub_8113F3C(const u16 *); -u16 * sub_8113F80(u16 *, const u16 *); -const u16 * sub_8113FBC(const u16 *); -u16 * sub_8114174(u16 *, const u16 *); -const u16 * sub_8114188(const u16 *); -u16 * sub_81141D0(u16 *, const u16 *); -const u16 * sub_81141E4(const u16 *); -u16 * sub_811422C(u16 *, const u16 *); -const u16 * sub_8114240(const u16 *); -u16 * sub_8114288(u16 *, const u16 *); -const u16 * sub_811429C(const u16 *); -u16 * sub_8114310(u16 *, const u16 *); -const u16 * sub_8114324(const u16 *); -u16 * sub_8114380(u16 *, const u16 *); -const u16 * sub_8114394(const u16 *); -u16 * sub_81143F0(u16 *, const u16 *); -const u16 * sub_811443C(const u16 *); -u16 * sub_811445C(u16 *, const u16 *); -const u16 * sub_811448C(const u16 *); -u16 * sub_81144EC(u16 *, const u16 *); -const u16 * sub_8114518(const u16 *); -u16 * sub_8114578(u16 *, const u16 *); -const u16 * sub_81145A4(const u16 *); -u16 * sub_8114604(u16 *, const u16 *); -const u16 * sub_811464C(const u16 *); -u16 * sub_8114710(u16 *, const u16 *); -const u16 * sub_8114724(const u16 *); -u16 * sub_8114744(u16 *, const u16 *); -const u16 * sub_8114758(const u16 *); -u16 * sub_8114778(u16 *, const u16 *); -const u16 * sub_81147A8(const u16 *); -u16 * sub_8114808(u16 *, const u16 *); -const u16 * sub_8114834(const u16 *); -u16 * sub_811488C(u16 *, const u16 *); -const u16 * sub_81148BC(const u16 *); -u16 * sub_8114918(u16 *, const u16 *); -const u16 * sub_8114944(const u16 *); -u16 * sub_8114990(u16 *, const u16 *); -const u16 * sub_81149D0(const u16 *); -u16 * sub_8114A1C(u16 *, const u16 *); -const u16 * sub_8114A4C(const u16 *); -u16 * sub_8114AA0(u16 *, const u16 *); -const u16 * sub_8114AC8(const u16 *); -u16 * sub_8114B0C(u16 *, const u16 *); -const u16 * sub_8114B34(const u16 *); -u16 * sub_8114B78(u16 *, const u16 *); -const u16 * sub_8114BA0(const u16 *); -u16 * sub_8114BE4(u16 *, const u16 *); -const u16 * sub_8114C0C(const u16 *); -u16 * sub_8114C68(u16 *, const u16 *); -const u16 * sub_8114C8C(const u16 *); -u16 * sub_8114CC0(u16 *, const u16 *); -const u16 * sub_8114CE4(const u16 *); -u16 * sub_8114D4C(u16 *, const u16 *); -const u16 * sub_8114D68(const u16 *); -u16 * sub_8114DE8(u16 *, const u16 *); -const u16 * sub_8114E68(const u16 *); -bool8 sub_8114FBC(u16); -u16 * sub_8114FF0(u16 *, const u16 *); -const u16 * sub_811500C(const u16 *); -u16 * sub_8115078(u16 *, const u16 *); -const u16 * sub_81150CC(const u16 *); -u16 * sub_81151C0(u16 *, const u16 *); -const u16 * sub_81151DC(const u16 *); -u16 * sub_8115280(u16 *, const u16 *); -const u16 * sub_81152BC(const u16 *); -bool8 sub_81153A8(u16, u16 *); -bool8 sub_81153E4(u16, u16 *); -u16 * sub_8115410(u16 *, const u16 *); -const u16 * sub_8115460(const u16 *); -u16 * sub_81154DC(u16 *, const u16 *); -const u16 * sub_8115518(const u16 *); -u16 * sub_81155A4(u16 *, const u16 *); -const u16 * sub_81155E0(const u16 *); -u16 * sub_81156D8(u16 *, const u16 *); -const u16 * sub_8115700(const u16 *); -u16 * sub_81157DC(u16 *, const u16 *); -const u16 * sub_8115800(const u16 *); +static EWRAM_DATA u16 gUnknown_203ADFC = 0; +static EWRAM_DATA u8 gUnknown_203ADFE[3] = {0}; +static EWRAM_DATA u16 * gUnknown_203AE04 = NULL; +static EWRAM_DATA u16 * gUnknown_203AE08 = NULL; +static EWRAM_DATA u16 * gUnknown_203AE0C[32] = {NULL}; +static EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL; +static EWRAM_DATA u16 *gUnknown_203AE90 = NULL; +static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; +static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0}; +static EWRAM_DATA u16 gUnknown_203AF98 = 0; +static EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}}; +static EWRAM_DATA u16 gUnknown_203B01A = 0; +static EWRAM_DATA u16 gUnknown_203B01C = 0; +static EWRAM_DATA u16 gUnknown_203B01E = 0; +static EWRAM_DATA u8 sHelpMessageWindowId = 0; +static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0}; +static EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0}; +static EWRAM_DATA u8 gUnknown_203B048 = 0; +static EWRAM_DATA u8 gUnknown_203B049 = 0; +static EWRAM_DATA u8 gUnknown_203B04A = 0; +static EWRAM_DATA u8 gUnknown_203B04B = 0; + +static void sub_8110A00(void); +static void sub_8110A3C(void); +static void sub_8110BB0(u8); +static void sub_8110BE8(u8); +static void sub_8110E3C(void); +static void sub_8110D94(void); +static void sub_8110E20(void); +static void sub_8110D48(u8); +static u8 sub_8110E68(struct UnkStruct_203AE98 *); +static void sub_8110F90(u8); +static void sub_8111150(u8); +static void sub_8111368(void); +static void sub_81115E8(void); +static u16 sub_8111618(void); +static u16 sub_811164C(void); +static void sub_8111688(void); +static void sub_811175C(u8, struct UnkStruct_203AE98 *); +static void sub_81118F4(s8); +static void sub_8111914(void); +static void sub_8111984(void); +static void sub_8111A34(u8); +static void sub_8111AD8(void); +static void sub_8111B80(void); +static u8 sub_8111BD4(void); +static void sub_8111D10(void); +static void sub_8111D90(u8); +static void sub_8111E20(void); +static void sub_8111E64(s8); +static void sub_8111E84(void); +static bool8 sub_8111F60(void); +static void sub_8111F8C(u8); +static void sub_8111FCC(u8); +static void sub_8112044(u8); +static void sub_81120AC(u8); +static bool8 sub_81121D8(u8); +static void sub_811229C(void); +static void sub_8112888(u8); +static void sub_8112940(u8, struct UnkStruct_203AE98 *, u16); +static bool8 sub_8112CEC(void); +static bool8 sub_8112D1C(void); +static void sub_8113078(struct Var4038Struct *); +static void sub_81130BC(struct Var4038Struct *); +static u8 sub_8113194(struct Var4038Struct *); +static u16 sub_81132A0(struct Var4038Struct *); +static void sub_81132E0(struct Var4038Struct *); +static bool16 sub_811337C(struct Var4038Struct *); +static void sub_8113390(struct Var4038Struct *); +static void sub_8113414(struct LinkBattleRecords *, u8, u8); +static void sub_81134CC(struct Var4038Struct *); +static bool8 sub_8113508(struct Var4038Struct * ); +static void sub_8113524(struct Var4038Struct *); +static bool8 sub_81136D4(void); +static bool8 sub_8113778(u16, u16 *); +static bool8 sub_81137E4(u16, u16 *); +static u16 * sub_8113828(u16, u16 *); +static bool8 sub_81138A0(u16, u16 *); +static bool8 sub_8113954(u16, u16 *); +static void sub_8113A1C(u16); +static void sub_811381C(void); +static bool8 sub_8113A44(u16, u16 *); +static u16 * sub_8113A78(u16 *, u16 **); +static void sub_8113ABC(u16 *); +static bool8 sub_8113AE8(u16 *); +static bool8 sub_8113B44(u16 *); +static void sub_8113B88(void); +static void sub_8113B94(u16); +static void sub_8113BD8(void); +static u16 * sub_8113BF4(u16 *); +static u16 * sub_8113C20(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113C5C(u16 *, u16); +static u16 * sub_8113C8C(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113CC8(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113D08(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113D48(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113D94(u16 *, struct UnkStruct_203AE98 *); +static u16 * sub_8113F14(u16 *, const u16 *); +static const u16 * sub_8113F3C(const u16 *); +static u16 * sub_8113F80(u16 *, const u16 *); +static const u16 * sub_8113FBC(const u16 *); +static u16 * sub_8114174(u16 *, const u16 *); +static const u16 * sub_8114188(const u16 *); +static u16 * sub_81141D0(u16 *, const u16 *); +static const u16 * sub_81141E4(const u16 *); +static u16 * sub_811422C(u16 *, const u16 *); +static const u16 * sub_8114240(const u16 *); +static u16 * sub_8114288(u16 *, const u16 *); +static const u16 * sub_811429C(const u16 *); +static u16 * sub_8114310(u16 *, const u16 *); +static const u16 * sub_8114324(const u16 *); +static u16 * sub_8114380(u16 *, const u16 *); +static const u16 * sub_8114394(const u16 *); +static u16 * sub_81143F0(u16 *, const u16 *); +static const u16 * sub_811443C(const u16 *); +static u16 * sub_811445C(u16 *, const u16 *); +static const u16 * sub_811448C(const u16 *); +static u16 * sub_81144EC(u16 *, const u16 *); +static const u16 * sub_8114518(const u16 *); +static u16 * sub_8114578(u16 *, const u16 *); +static const u16 * sub_81145A4(const u16 *); +static u16 * sub_8114604(u16 *, const u16 *); +static const u16 * sub_811464C(const u16 *); +static u16 * sub_8114710(u16 *, const u16 *); +static const u16 * sub_8114724(const u16 *); +static u16 * sub_8114744(u16 *, const u16 *); +static const u16 * sub_8114758(const u16 *); +static u16 * sub_8114778(u16 *, const u16 *); +static const u16 * sub_81147A8(const u16 *); +static u16 * sub_8114808(u16 *, const u16 *); +static const u16 * sub_8114834(const u16 *); +static u16 * sub_811488C(u16 *, const u16 *); +static const u16 * sub_81148BC(const u16 *); +static u16 * sub_8114918(u16 *, const u16 *); +static const u16 * sub_8114944(const u16 *); +static u16 * sub_8114990(u16 *, const u16 *); +static const u16 * sub_81149D0(const u16 *); +static u16 * sub_8114A1C(u16 *, const u16 *); +static const u16 * sub_8114A4C(const u16 *); +static u16 * sub_8114AA0(u16 *, const u16 *); +static const u16 * sub_8114AC8(const u16 *); +static u16 * sub_8114B0C(u16 *, const u16 *); +static const u16 * sub_8114B34(const u16 *); +static u16 * sub_8114B78(u16 *, const u16 *); +static const u16 * sub_8114BA0(const u16 *); +static u16 * sub_8114BE4(u16 *, const u16 *); +static const u16 * sub_8114C0C(const u16 *); +static u16 * sub_8114C68(u16 *, const u16 *); +static const u16 * sub_8114C8C(const u16 *); +static u16 * sub_8114CC0(u16 *, const u16 *); +static const u16 * sub_8114CE4(const u16 *); +static u16 * sub_8114D4C(u16 *, const u16 *); +static const u16 * sub_8114D68(const u16 *); +static u16 * sub_8114DE8(u16 *, const u16 *); +static const u16 * sub_8114E68(const u16 *); +static bool8 sub_8114FBC(u16); +static u16 * sub_8114FF0(u16 *, const u16 *); +static const u16 * sub_811500C(const u16 *); +static u16 * sub_8115078(u16 *, const u16 *); +static const u16 * sub_81150CC(const u16 *); +static u16 * sub_81151C0(u16 *, const u16 *); +static const u16 * sub_81151DC(const u16 *); +static u16 * sub_8115280(u16 *, const u16 *); +static const u16 * sub_81152BC(const u16 *); +static bool8 sub_81153A8(u16, u16 *); +static bool8 sub_81153E4(u16, u16 *); +static u16 * sub_8115410(u16 *, const u16 *); +static const u16 * sub_8115460(const u16 *); +static u16 * sub_81154DC(u16 *, const u16 *); +static const u16 * sub_8115518(const u16 *); +static u16 * sub_81155A4(u16 *, const u16 *); +static const u16 * sub_81155E0(const u16 *); +static u16 * sub_81156D8(u16 *, const u16 *); +static const u16 * sub_8115700(const u16 *); +static u16 * sub_81157DC(u16 *, const u16 *); +static const u16 * sub_8115800(const u16 *); void sub_8115834(u8 *); extern const u8 gUnknown_841A155[]; @@ -404,17 +401,17 @@ extern const u8 gUnknown_841B277[]; extern const u8 gUnknown_8418C1B[]; -const struct WindowTemplate gUnknown_845661C[3] = { +static const struct WindowTemplate gUnknown_845661C[3] = { { 0, 0, 0, 30, 2, 15, 0x0e9 }, { 0, 0, 18, 30, 2, 15, 0x0ad }, { 0, 0, 14, 30, 6, 15, 0x14c } }; -const u8 gUnknown_8456634[3] = {15, 1, 12}; +static const u8 gUnknown_8456634[3] = {15, 1, 12}; -const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin"); +static const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin"); -const u8 gUnknown_8456698[] = {17, 10, 3}; +static const u8 gUnknown_8456698[] = {17, 10, 3}; void sub_8110840(void * oldPointer) { @@ -493,7 +490,7 @@ void sub_81109CC(u8 a0) gUnknown_203AE8C = sub_8110A3C; } -void sub_8110A00(void) +static void sub_8110A00(void) { if (sub_8110E68(gUnknown_203AE98) != 1) { @@ -504,7 +501,7 @@ void sub_8110A00(void) } } -void sub_8110A3C(void) +static void sub_8110A3C(void) { if (gUnknown_203AE94.unk_0_0 == 2) gUnknown_203AE94.unk_0_0 = 0; @@ -556,7 +553,7 @@ void sub_8110AEC(u16 a0) sub_81109CC(1); } -void sub_8110BB0(u8 a0) +static void sub_8110BB0(u8 a0) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; questLog->unk_001 = gSaveBlock1Ptr->location.mapGroup; @@ -567,7 +564,7 @@ void sub_8110BB0(u8 a0) } #ifdef NONMATCHING -void sub_8110BE8(u8 a0) +static void sub_8110BE8(u8 a0) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; u16 i; // r6 @@ -602,7 +599,7 @@ void sub_8110BE8(u8 a0) } #else NAKED -void sub_8110BE8(u8 a0) +static void sub_8110BE8(u8 a0) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r10\n" @@ -767,7 +764,7 @@ void sub_8110BE8(u8 a0) } #endif // NONMATCHING -void sub_8110D48(u8 a0) +static void sub_8110D48(u8 a0) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; @@ -775,7 +772,7 @@ void sub_8110D48(u8 a0) CpuCopy16(gSaveBlock1Ptr->vars, questLog->vars, VARS_COUNT * sizeof(u16)); } -void sub_8110D94(void) +static void sub_8110D94(void) { u16 i, j; u16 sp0[4]; @@ -794,19 +791,19 @@ void sub_8110D94(void) } } -void sub_8110E20(void) +static void sub_8110E20(void) { VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapDataId); } -void sub_8110E3C(void) +static void sub_8110E3C(void) { sub_8113BF4(gUnknown_203AE08); if (++gUnknown_203ADF8 > 3) gUnknown_203ADF8 = 0; } -bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) +static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) { u16 i; @@ -865,7 +862,7 @@ void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId) } } -void sub_8110F90(u8 unused) +static void sub_8110F90(u8 unused) { gSaveBlock1Ptr->location.mapGroup = 3; gSaveBlock1Ptr->location.mapNum = 19; @@ -937,7 +934,7 @@ void sub_8111134(void) CopyWindowToVram(gUnknown_203ADFE[1], 1); } -void sub_8111150(u8 a0) +static void sub_8111150(u8 a0) { struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[a0]; u16 i; @@ -982,7 +979,7 @@ void sub_8111274(u8 a0, u8 a1) } } -void sub_8111368(void) +static void sub_8111368(void) { gUnknown_203ADFA = 2; sub_806E6FC(); @@ -1091,14 +1088,14 @@ void sub_8111438(void) Free(r9); } -void sub_81115E8(void) +static void sub_81115E8(void) { u16 r4 = sub_8111618(); u16 r1 = sub_811164C(); VarSet(VAR_0x4027, (r4 << 12) + r1); } -u16 sub_8111618(void) +static u16 sub_8111618(void) { u16 count = 0; u16 i; @@ -1112,7 +1109,7 @@ u16 sub_8111618(void) return count; } -u16 sub_811164C(void) +static u16 sub_811164C(void) { u16 count = 0; u16 i, j; @@ -1129,7 +1126,7 @@ u16 sub_811164C(void) return count; } -void sub_8111688(void) +static void sub_8111688(void) { u16 i, j; u16 sp0[4]; @@ -1161,7 +1158,7 @@ void sub_8111708(void) } } -void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) +static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) { u16 i; u16 *r4; @@ -1208,13 +1205,13 @@ void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) } } -void sub_81118F4(s8 a0) +static void sub_81118F4(s8 a0) { fade_screen(1, a0); gUnknown_203AE8C = sub_8111914; } -void sub_8111914(void) +static void sub_8111914(void) { if (!gPaletteFade.active) { @@ -1232,7 +1229,7 @@ void sub_8111914(void) } } -void sub_8111984(void) +static void sub_8111984(void) { sub_806E6FC(); Save_ResetSaveCounters(); @@ -1269,7 +1266,7 @@ bool8 sub_81119D4(void (*a0)(void)) return FALSE; } -void sub_8111A34(u8 taskId) +static void sub_8111A34(u8 taskId) { void (*routine)(void); s16 * data = gTasks[taskId].data; @@ -1298,7 +1295,7 @@ void sub_8111A34(u8 taskId) } } -void sub_8111AD8(void) +static void sub_8111AD8(void) { if (gUnknown_203AE94.unk_0_0 == 1) { @@ -1327,7 +1324,7 @@ void sub_8111AD8(void) } } -void sub_8111B80(void) +static void sub_8111B80(void) { if (gUnknown_203AE94.unk_0_0 == 0) { @@ -1344,7 +1341,7 @@ void sub_8111B80(void) sub_8112888(1); } -u8 sub_8111BD4(void) +static u8 sub_8111BD4(void) { u16 i; u16 count = 0; @@ -1405,7 +1402,7 @@ void sub_8111CF0(void) sub_8111070(sNumScenes); } -void sub_8111D10(void) +static void sub_8111D10(void) { u16 i; u8 count = 0; @@ -1422,7 +1419,7 @@ void sub_8111D10(void) ScheduleBgCopyTilemapToVram(0); } -void sub_8111D90(u8 a0) +static void sub_8111D90(u8 a0) { const u16 * src = gUnknown_8456638; u16 * buffer = Alloc(0x1680); @@ -1459,7 +1456,7 @@ void sub_8111D90(u8 a0) } } -void sub_8111E20(void) +static void sub_8111E20(void) { ClearWindowTilemap(gUnknown_203ADFE[2]); FillWindowPixelRect(gUnknown_203ADFE[2], 15, 0, 0, 0xf0, 0x30); @@ -1468,13 +1465,13 @@ void sub_8111E20(void) CopyWindowToVram(gUnknown_203ADFE[1], 1); } -void sub_8111E64(s8 a0) +static void sub_8111E64(s8 a0) { fade_screen(1, a0); gUnknown_203AE8C = sub_8111E84; } -void sub_8111E84(void) +static void sub_8111E84(void) { if (!gPaletteFade.active) { @@ -1501,7 +1498,7 @@ void sub_8111F38(u16 a0, u16 a1) CpuSet(gPlttBufferUnfaded + a0, gUnknown_203AE90 + a0, a1); } -bool8 sub_8111F60(void) +static bool8 sub_8111F60(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); sub_8111070(0); @@ -1510,7 +1507,7 @@ bool8 sub_8111F60(void) return TRUE; } -void sub_8111F8C(u8 taskId) +static void sub_8111F8C(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1524,7 +1521,7 @@ void sub_8111F8C(u8 taskId) } } -void sub_8111FCC(u8 taskId) +static void sub_8111FCC(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1544,7 +1541,7 @@ void sub_8111FCC(u8 taskId) } } -void sub_8112044(u8 taskId) +static void sub_8112044(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1559,7 +1556,7 @@ void sub_8112044(u8 taskId) task->data[0]++; } -void sub_81120AC(u8 taskId) +static void sub_81120AC(u8 taskId) { s16 * data = gTasks[taskId].data; u8 i; @@ -1609,7 +1606,7 @@ void sub_81120AC(u8 taskId) } } -bool8 sub_81121D8(u8 taskId) +static bool8 sub_81121D8(u8 taskId) { s16 * data = gTasks[taskId].data; @@ -1626,7 +1623,7 @@ bool8 sub_81121D8(u8 taskId) return FALSE; } -void sub_811229C(void) +static void sub_811229C(void) { u16 * buffer = Alloc(0x400); CpuCopy16(gUnknown_203AE90, buffer, 0x400); @@ -1833,7 +1830,7 @@ void sub_81127F8(struct UnkStruct_3005E90 * a0) } } -void sub_8112888(u8 a0) +static void sub_8112888(u8 a0) { switch (a0) { @@ -1875,7 +1872,7 @@ void sub_81128BC(u8 a0) } } -void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) +static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) { s32 i; @@ -2218,21 +2215,21 @@ u8 sub_8112CAC(void) } } -bool8 sub_8112CEC(void) +static bool8 sub_8112CEC(void) { if (gUnknown_203AF98 >= gUnknown_3005E8C || ScriptContext2_IsEnabled() == TRUE) return TRUE; return FALSE; } -bool8 sub_8112D1C(void) +static bool8 sub_8112D1C(void) { if (gUnknown_203AF98 >= gUnknown_3005E8C) return TRUE; return FALSE; } -const struct UnkStruct_300201C gUnknown_84566A4 = { +static const struct UnkStruct_300201C gUnknown_84566A4 = { 0, FALSE, 0x7FFF @@ -2294,37 +2291,37 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2) const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin"); -const struct WindowTemplate gUnknown_8456928 = { +static const struct WindowTemplate sHelpMessageWindowTemplate = { 0x00, 0, 15, 30, 5, 15, 0x008F }; void MapNamePopupWindowIdSetDummy(void) { - gUnknown_203B020 = 0xFF; + sHelpMessageWindowId = 0xFF; } -u8 sub_8112EB4(void) +u8 CreateHelpMessageWindow(void) { - if (gUnknown_203B020 == 0xFF) + if (sHelpMessageWindowId == 0xFF) { - gUnknown_203B020 = AddWindow(&gUnknown_8456928); - PutWindowTilemap(gUnknown_203B020); + sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate); + PutWindowTilemap(sHelpMessageWindowId); } - return gUnknown_203B020; + return sHelpMessageWindowId; } -void sub_8112EDC(u8 a0) +void DestroyHelpMessageWindow(u8 a0) { - if (gUnknown_203B020 != 0xFF) + if (sHelpMessageWindowId != 0xFF) { - FillWindowPixelBuffer(gUnknown_203B020, 0x00); - ClearWindowTilemap(gUnknown_203B020); + FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0)); + ClearWindowTilemap(sHelpMessageWindowId); if (a0) - CopyWindowToVram(gUnknown_203B020, a0); + CopyWindowToVram(sHelpMessageWindowId, a0); - RemoveWindow(gUnknown_203B020); - gUnknown_203B020 = 0xFF; + RemoveWindow(sHelpMessageWindowId); + sHelpMessageWindowId = 0xFF; } } @@ -2460,24 +2457,24 @@ void sub_8112F18(u8 a0) void sub_8112FD0(void) { - sub_8112F18(gUnknown_203B020); + sub_8112F18(sHelpMessageWindowId); } -const u8 gUnknown_8456930[3] = { +static const u8 gUnknown_8456930[3] = { 0, 10, 2 }; void sub_8112FE4(const u8 * a0) { - AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0); + AddTextPrinterParameterized4(sHelpMessageWindowId, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0); } -void sub_8113018(const u8 * text, u8 mode) +void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode) { sub_8112FD0(); sub_8112FE4(text); if (mode) - CopyWindowToVram(gUnknown_203B020, mode); + CopyWindowToVram(sHelpMessageWindowId, mode); } void sub_8113044(void) @@ -2491,7 +2488,7 @@ void sub_8113064(void) sub_8113078(VAR_0x4038_STRUCT); } -void sub_8113078(struct Var4038Struct * varPtr) +static void sub_8113078(struct Var4038Struct * varPtr) { if (sub_8113508(varPtr)) { @@ -2505,7 +2502,7 @@ void sub_81130A8(void) sub_81130BC(VAR_0x4038_STRUCT); } -void sub_81130BC(struct Var4038Struct * varPtr) +static void sub_81130BC(struct Var4038Struct * varPtr) { if (!varPtr->unk_0_7) { @@ -2543,11 +2540,11 @@ u8 sub_8113114(struct Var4038Struct * a0, u8 a1) return a0->unk_0_0; } -const u8 gUnknown_8456938[] = { +static const u8 gUnknown_8456938[] = { 1, 3, 5, 0, 7, 6, 4, 2 }; -u8 sub_8113194(struct Var4038Struct * a0) +static u8 sub_8113194(struct Var4038Struct * a0) { u8 i; u8 retval = 0; @@ -2568,7 +2565,7 @@ u8 sub_8113194(struct Var4038Struct * a0) return gUnknown_8456938[retval]; } -const u8 gUnknown_8456940[] = { +static const u8 gUnknown_8456940[] = { 5, 6, 3, 7, 4, 1, 0, 2 }; @@ -2602,7 +2599,7 @@ u16 sub_8113288(void) return sub_81132A0(VAR_0x4038_STRUCT); } -u16 sub_81132A0(struct Var4038Struct * a0) +static u16 sub_81132A0(struct Var4038Struct * a0) { u8 count = 0; u8 i; @@ -2621,7 +2618,7 @@ void sub_81132CC(void) sub_81132E0(VAR_0x4038_STRUCT); } -void sub_81132E0(struct Var4038Struct * a0) +static void sub_81132E0(struct Var4038Struct * a0) { u8 i = 0; u16 var_4039; @@ -2653,12 +2650,12 @@ bool16 sub_8113364(void) return sub_811337C(VAR_0x4038_STRUCT); } -bool16 sub_811337C(struct Var4038Struct * a0) +static bool16 sub_811337C(struct Var4038Struct * a0) { return (a0->unk_1 >> gSpecialVar_0x8004) & 1; } -void sub_8113390(struct Var4038Struct * a0) +static void sub_8113390(struct Var4038Struct * a0) { a0->unk_1 |= 1; a0->unk_1 |= 2; @@ -2697,7 +2694,7 @@ void sub_81133A4(void) sub_8113414(&gSaveBlock2Ptr->linkBattleRecords, r3, r2); } -void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2) +static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2) { u8 * str; const u8 * src = a0->entries[a1].name; @@ -2742,7 +2739,7 @@ void sub_81134B8(void) sub_81134CC(VAR_0x4038_STRUCT); } -void sub_81134CC(struct Var4038Struct * a0) +static void sub_81134CC(struct Var4038Struct * a0) { if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2) { @@ -2754,7 +2751,7 @@ void sub_81134CC(struct Var4038Struct * a0) } } -bool8 sub_8113508(struct Var4038Struct * a0) +static bool8 sub_8113508(struct Var4038Struct * a0) { return a0->unk_0_7; } @@ -2764,7 +2761,7 @@ void sub_8113510(void) sub_8113524(VAR_0x4038_STRUCT); } -void sub_8113524(struct Var4038Struct * a0) +static void sub_8113524(struct Var4038Struct * a0) { a0->unk_0_7 = TRUE; } @@ -3092,7 +3089,7 @@ void sub_8113550(u16 a0, const u16 * a1) } #endif // NONMATCHING -bool8 sub_81136D4(void) +static bool8 sub_81136D4(void) { if (gSaveBlock1Ptr->location.mapGroup == 2 && (gSaveBlock1Ptr->location.mapNum == 1 || gSaveBlock1Ptr->location.mapNum == 2 || gSaveBlock1Ptr->location.mapNum == 3 || gSaveBlock1Ptr->location.mapNum == 4 || gSaveBlock1Ptr->location.mapNum == 5 || gSaveBlock1Ptr->location.mapNum == 6 || gSaveBlock1Ptr->location.mapNum == 7 || gSaveBlock1Ptr->location.mapNum == 8 || gSaveBlock1Ptr->location.mapNum == 9 || gSaveBlock1Ptr->location.mapNum == 10 || gSaveBlock1Ptr->location.mapNum == 11)) return TRUE; @@ -3123,7 +3120,7 @@ bool8 sub_8113748(void) return FALSE; } -bool8 sub_8113778(u16 a0, u16 * a1) +static bool8 sub_8113778(u16 a0, u16 * a1) { if (a0 == 36 || a0 == 11) return TRUE; @@ -3143,7 +3140,7 @@ bool8 sub_8113778(u16 a0, u16 * a1) return FALSE; } -bool8 sub_81137E4(u16 a0, u16 * a1) +static bool8 sub_81137E4(u16 a0, u16 * a1) { if (a0 == 34) { @@ -3158,12 +3155,12 @@ bool8 sub_81137E4(u16 a0, u16 * a1) return FALSE; } -void sub_811381C(void) +static void sub_811381C(void) { gUnknown_203B048 = 0; } -u16 * sub_8113828(u16 a0, u16 * a1) +static u16 * sub_8113828(u16 a0, u16 * a1) { if (sub_8113778(a0, a1) == TRUE) return NULL; @@ -3182,7 +3179,7 @@ u16 * sub_8113828(u16 a0, u16 * a1) return sQuestLogStorageCBs[a0](gUnknown_203AE08, a1); } -bool8 sub_81138A0(u16 a0, u16 * a1) +static bool8 sub_81138A0(u16 a0, u16 * a1) { if (a0 < 12 || a0 > 19) return FALSE; @@ -3218,7 +3215,7 @@ void sub_811390C(void) } } -bool8 sub_8113954(u16 a0, u16 * a1) +static bool8 sub_8113954(u16 a0, u16 * a1) { if (a0 != 34 && a0 != 30 && a0 != 32 && a0 != 33) return FALSE; @@ -3250,13 +3247,13 @@ void sub_81139BC(void) } } -void sub_8113A1C(u16 a0) +static void sub_8113A1C(u16 a0) { gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0); gUnknown_203AF98++; } -bool8 sub_8113A44(u16 a0, u16 *a1) +static bool8 sub_8113A44(u16 a0, u16 *a1) { if (a0 != 31) return FALSE; @@ -3316,7 +3313,7 @@ static const u16 * (*const sQuestLogScriptParsingCBs[])(const u16 *) = { sub_8115800 }; -const u8 gUnknown_8456AA0[] = { +static const u8 gUnknown_8456AA0[] = { 0x08, 0x08, 0x08, @@ -3362,7 +3359,7 @@ const u8 gUnknown_8456AA0[] = { 0x06 }; -u16 * sub_8113A78(u16 * a0, u16 **a1) +static u16 * sub_8113A78(u16 * a0, u16 **a1) { u16 r2 = a0[0] & 0xfff; u16 r4 = a0[0] >> 12; @@ -3374,7 +3371,7 @@ u16 * sub_8113A78(u16 * a0, u16 **a1) return gUnknown_8456AA0[r2] + (gUnknown_8456AA0[r2] - 4) * r4 + (void *)a0; } -void sub_8113ABC(u16 * a0) +static void sub_8113ABC(u16 * a0) { u8 * r2 = (u8 *)(a0 + 2); if ((a0[0] & 0xFFF) != 35) @@ -3384,7 +3381,7 @@ void sub_8113ABC(u16 * a0) } #ifdef NONMATCHING -bool8 sub_8113AE8(u16 * a0) +static bool8 sub_8113AE8(u16 * a0) { if (a0 == NULL || a0[1] > gUnknown_203AF98) return FALSE; @@ -3398,7 +3395,7 @@ bool8 sub_8113AE8(u16 * a0) } #else NAKED -bool8 sub_8113AE8(u16 * a0) +static bool8 sub_8113AE8(u16 * a0) { asm_unified("\tpush {r4,lr}\n" "\tadds r4, r0, 0\n" @@ -3449,7 +3446,7 @@ bool8 sub_8113AE8(u16 * a0) } #endif -bool8 sub_8113B44(u16 * a0) +static bool8 sub_8113B44(u16 * a0) { if (gUnknown_203B044.unk_2 == 0) return FALSE; @@ -3461,12 +3458,12 @@ bool8 sub_8113B44(u16 * a0) return TRUE; } -void sub_8113B88(void) +static void sub_8113B88(void) { gUnknown_203B044 = (struct UnkStruct_203B044){}; } -void sub_8113B94(u16 a0) +static void sub_8113B94(u16 a0) { if (gUnknown_203B044.unk_0 != (u8)a0 || gUnknown_203B044.unk_2 != gUnknown_203AF98) { @@ -3478,14 +3475,14 @@ void sub_8113B94(u16 a0) gUnknown_203B044.unk_1++; } -void sub_8113BD8(void) +static void sub_8113BD8(void) { gUnknown_203B049 = 0; gUnknown_203B04A = 0; gUnknown_203B04B = 0; } -u16 * sub_8113BF4(u16 * a0) +static u16 * sub_8113BF4(u16 * a0) { if (!sub_8110988(a0, gUnknown_8456AA0[39])) return NULL; @@ -3493,7 +3490,7 @@ u16 * sub_8113BF4(u16 * a0) return a0 + 1; } -u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1) { if (!sub_8110988(a0, gUnknown_8456AA0[39])) return NULL; @@ -3506,7 +3503,7 @@ u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1) return a0 + 1; } -u16 * sub_8113C5C(u16 * a0, u16 a1) +static u16 * sub_8113C5C(u16 * a0, u16 a1) { if (!sub_8110988(a0, gUnknown_8456AA0[41])) return NULL; @@ -3515,7 +3512,7 @@ u16 * sub_8113C5C(u16 * a0, u16 a1) return a0 + 2; } -u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1) { if (!sub_8110988(a0, gUnknown_8456AA0[41])) return NULL; @@ -3528,7 +3525,7 @@ u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1) return a0 + 2; } -u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1) { u8 * r6 = (u8 *)a0 + 4; @@ -3543,7 +3540,7 @@ u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1) { u8 * r6 = (u8 *)a0 + 4; @@ -3558,7 +3555,7 @@ u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1) { u16 * r4 = a0; u8 * r6 = (u8 *)a0 + 4; @@ -3577,7 +3574,7 @@ u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -u16 * sub_8113D94(u16 * a0, struct UnkStruct_203AE98 * a1) +static u16 * sub_8113D94(u16 * a0, struct UnkStruct_203AE98 * a1) { u16 * r5 = a0; u8 * r6 = (u8 *)a0 + 4; @@ -3636,7 +3633,7 @@ u16 * sub_8113DE0(u16 a0, u16 * a1) return r5; } -const u16 * sub_8113E88(u16 a0, const u16 * a1) +static const u16 * sub_8113E88(u16 a0, const u16 * a1) { a1 = (const void *)a1 + (gUnknown_203B044.unk_2 * (gUnknown_8456AA0[a0] - 4) + 4); return a1; @@ -3663,7 +3660,7 @@ void QuestLog_AutoGetSpeciesName(u16 a0, u8 * a1, u8 a2) } } -u16 * sub_8113F14(u16 * a0, const u16 * a1) +static u16 * sub_8113F14(u16 * a0, const u16 * a1) { u16 * r2 = sub_8113DE0(3, a0); if (r2 == NULL) @@ -3674,7 +3671,7 @@ u16 * sub_8113F14(u16 * a0, const u16 * a1) return r2 + 2; } -const u16 * sub_8113F3C(const u16 * a0) +static const u16 * sub_8113F3C(const u16 * a0) { const u16 * r4 = sub_8113E88(3, a0); QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0); @@ -3684,7 +3681,7 @@ const u16 * sub_8113F3C(const u16 * a0) return r4; } -u16 * sub_8113F80(u16 * a0, const u16 * a1) +static u16 * sub_8113F80(u16 * a0, const u16 * a1) { u16 * r2 = sub_8113DE0(4, a0); if (r2 == NULL) @@ -3700,7 +3697,7 @@ u16 * sub_8113F80(u16 * a0, const u16 * a1) return r2 + 3; } -const u16 * sub_8113FBC(const u16 * a0) +static const u16 * sub_8113FBC(const u16 * a0) { const u16 * r5 = sub_8113E88(4, a0); @@ -3763,12 +3760,12 @@ u16 * sub_811414C(u16 a0, u16 * a1, const u16 * a2) return r1 + 2; } -u16 * sub_8114174(u16 * a0, const u16 * a1) +static u16 * sub_8114174(u16 * a0, const u16 * a1) { return sub_811414C(5, a0, a1); } -const u16 * sub_8114188(const u16 * a0) +static const u16 * sub_8114188(const u16 * a0) { const u16 * r4 = sub_8113E88(5, a0); QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); @@ -3778,12 +3775,12 @@ const u16 * sub_8114188(const u16 * a0) return r4; } -u16 * sub_81141D0(u16 * a0, const u16 * a1) +static u16 * sub_81141D0(u16 * a0, const u16 * a1) { return sub_811414C(6, a0, a1); } -const u16 * sub_81141E4(const u16 * a0) +static const u16 * sub_81141E4(const u16 * a0) { const u16 * r4 = sub_8113E88(6, a0); @@ -3794,12 +3791,12 @@ const u16 * sub_81141E4(const u16 * a0) return r4; } -u16 * sub_811422C(u16 * a0, const u16 * a1) +static u16 * sub_811422C(u16 * a0, const u16 * a1) { return sub_811414C(7, a0, a1); } -const u16 * sub_8114240(const u16 * a0) +static const u16 * sub_8114240(const u16 * a0) { const u16 * r4 = sub_8113E88(7, a0); @@ -3810,12 +3807,12 @@ const u16 * sub_8114240(const u16 * a0) return r4; } -u16 * sub_8114288(u16 * a0, const u16 * a1) +static u16 * sub_8114288(u16 * a0, const u16 * a1) { return sub_811414C(8, a0, a1); } -const u16 * sub_811429C(const u16 * a0) +static const u16 * sub_811429C(const u16 * a0) { const u16 * r4 = sub_8113E88(8, a0); @@ -3838,12 +3835,12 @@ u16 * sub_81142E4(u16 a0, u16 * a1, const u16 * a2) return r1 + 3; } -u16 * sub_8114310(u16 * a0, const u16 * a1) +static u16 * sub_8114310(u16 * a0, const u16 * a1) { return sub_81142E4(9, a0, a1); } -const u16 * sub_8114324(const u16 * a0) +static const u16 * sub_8114324(const u16 * a0) { const u16 * r4 = sub_8113E88(9, a0); QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0); @@ -3854,12 +3851,12 @@ const u16 * sub_8114324(const u16 * a0) return r4; } -u16 * sub_8114380(u16 * a0, const u16 * a1) +static u16 * sub_8114380(u16 * a0, const u16 * a1) { return sub_81142E4(10, a0, a1); } -const u16 * sub_8114394(const u16 * a0) +static const u16 * sub_8114394(const u16 * a0) { const u16 * r4 = sub_8113E88(10, a0); QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0); @@ -3870,7 +3867,7 @@ const u16 * sub_8114394(const u16 * a0) return r4; } -u16 * sub_81143F0(u16 * a0, const u16 * a1) +static u16 * sub_81143F0(u16 * a0, const u16 * a1) { u16 * r4 = a0; if (gUnknown_203B044.unk_0 == 11 && gUnknown_203B044.unk_1 != 0) @@ -3884,14 +3881,14 @@ u16 * sub_81143F0(u16 * a0, const u16 * a1) return r4 + 2; } -const u16 * sub_811443C(const u16 * a0) +static const u16 * sub_811443C(const u16 * a0) { StringExpandPlaceholders(gStringVar4, gUnknown_841A2B0); a0 += 2; return a0; } -u16 * sub_811445C(u16 * a0, const u16 * a1) +static u16 * sub_811445C(u16 * a0, const u16 * a1) { u16 * r4 = a0 + 4; @@ -3905,7 +3902,7 @@ u16 * sub_811445C(u16 * a0, const u16 * a1) return r4; } -const u16 * sub_811448C(const u16 * a0) +static const u16 * sub_811448C(const u16 * a0) { const u16 * r6 = a0 + 4; @@ -3920,25 +3917,25 @@ const u16 * sub_811448C(const u16 * a0) return r6; } -const u8 *const gUnknown_8456ACC[] = { +static const u8 *const gUnknown_8456ACC[] = { gUnknown_841A74E, gUnknown_841A756, gUnknown_841A762 }; -const u8 *const gUnknown_8456AD8[] = { +static const u8 *const gUnknown_8456AD8[] = { gUnknown_841AF98, gUnknown_841A762, gUnknown_841AF9F }; -const u8 *const gUnknown_8456AE4[] = { +static const u8 *const gUnknown_8456AE4[] = { gUnknown_841A502, gUnknown_841A506, gUnknown_841AFD1 }; -u16 * sub_81144EC(u16 * a0, const u16 * a1) +static u16 * sub_81144EC(u16 * a0, const u16 * a1) { a0[0] = 13; a0[1] = gUnknown_203AF98; @@ -3948,7 +3945,7 @@ u16 * sub_81144EC(u16 * a0, const u16 * a1) return a0; } -const u16 * sub_8114518(const u16 * a0) +static const u16 * sub_8114518(const u16 * a0) { DynamicPlaceholderTextUtil_Reset(); @@ -3962,7 +3959,7 @@ const u16 * sub_8114518(const u16 * a0) return a0; } -u16 * sub_8114578(u16 * a0, const u16 * a1) +static u16 * sub_8114578(u16 * a0, const u16 * a1) { a0[0] = 14; a0[1] = gUnknown_203AF98; @@ -3972,7 +3969,7 @@ u16 * sub_8114578(u16 * a0, const u16 * a1) return a0; } -const u16 * sub_81145A4(const u16 * a0) +static const u16 * sub_81145A4(const u16 * a0) { DynamicPlaceholderTextUtil_Reset(); @@ -3986,7 +3983,7 @@ const u16 * sub_81145A4(const u16 * a0) return a0; } -u16 * sub_8114604(u16 * a0, const u16 * a1) +static u16 * sub_8114604(u16 * a0, const u16 * a1) { a0[0] = 15; a0[1] = gUnknown_203AF98; @@ -3998,7 +3995,7 @@ u16 * sub_8114604(u16 * a0, const u16 * a1) return a0; } -const u16 * sub_811464C(const u16 * a0) +static const u16 * sub_811464C(const u16 * a0) { DynamicPlaceholderTextUtil_Reset(); @@ -4021,35 +4018,35 @@ const u16 * sub_811464C(const u16 * a0) return a0; } -u16 * sub_8114710(u16 * a0, const u16 * a1) +static u16 * sub_8114710(u16 * a0, const u16 * a1) { a0[0] = 16; a0[1] = gUnknown_203AF98; return a0 + 2; } -const u16 * sub_8114724(const u16 * a0) +static const u16 * sub_8114724(const u16 * a0) { StringExpandPlaceholders(gStringVar4, gUnknown_841A50B); a0 += 2; return a0; } -u16 * sub_8114744(u16 * a0, const u16 * a1) +static u16 * sub_8114744(u16 * a0, const u16 * a1) { a0[0] = 17; a0[1] = gUnknown_203AF98; return a0 + 2; } -const u16 * sub_8114758(const u16 * a0) +static const u16 * sub_8114758(const u16 * a0) { StringExpandPlaceholders(gStringVar4, gUnknown_841A732); a0 += 2; return a0; } -u16 * sub_8114778(u16 * a0, const u16 * a1) +static u16 * sub_8114778(u16 * a0, const u16 * a1) { u8 * r4 = (u8 *)(a0 + 4); a0[0] = 18; @@ -4061,7 +4058,7 @@ u16 * sub_8114778(u16 * a0, const u16 * a1) return (u16 *)r4; } -const u16 * sub_81147A8(const u16 * a0) +static const u16 * sub_81147A8(const u16 * a0) { const u8 * r6 = (const u8 *)(a0 + 4); memset(gStringVar1, EOS, 8); @@ -4074,7 +4071,7 @@ const u16 * sub_81147A8(const u16 * a0) return (const u16 *)r6; } -u16 * sub_8114808(u16 * a0, const u16 * a1) +static u16 * sub_8114808(u16 * a0, const u16 * a1) { a0[0] = 19; a0[1] = gUnknown_203AF98; @@ -4084,7 +4081,7 @@ u16 * sub_8114808(u16 * a0, const u16 * a1) return a0; } -const u16 * sub_8114834(const u16 * a0) +static const u16 * sub_8114834(const u16 * a0) { memset(gStringVar1, EOS, 8); memcpy(gStringVar1, (const u8 *)a0 + 5, 7); @@ -4095,7 +4092,7 @@ const u16 * sub_8114834(const u16 * a0) return a0; } -u16 * sub_811488C(u16 * a0, const u16 * a1) +static u16 * sub_811488C(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(20, a0); if (a0 == NULL) @@ -4107,7 +4104,7 @@ u16 * sub_811488C(u16 * a0, const u16 * a1) return a0 + 3; } -const u16 * sub_81148BC(const u16 * a0) +static const u16 * sub_81148BC(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(20, a0); @@ -4121,7 +4118,7 @@ const u16 * sub_81148BC(const u16 * a0) return a0 + 3; } -u16 * sub_8114918(u16 * a0, const u16 * a1) +static u16 * sub_8114918(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(21, a0); if (a0 == NULL) @@ -4132,7 +4129,7 @@ u16 * sub_8114918(u16 * a0, const u16 * a1) return a0 + 3; } -const u16 * sub_8114944(const u16 * a0) +static const u16 * sub_8114944(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(21, a0); @@ -4145,7 +4142,7 @@ const u16 * sub_8114944(const u16 * a0) return a0 + 3; } -u16 * sub_8114990(u16 * a0, const u16 * a1) +static u16 * sub_8114990(u16 * a0, const u16 * a1) { u16 * r2; u16 * ret; @@ -4168,7 +4165,7 @@ u16 * sub_8114990(u16 * a0, const u16 * a1) return ret + 1; } -const u16 * sub_81149D0(const u16 * a0) +static const u16 * sub_81149D0(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(22, a0); @@ -4181,7 +4178,7 @@ const u16 * sub_81149D0(const u16 * a0) return a0 + 3; } -u16 * sub_8114A1C(u16 * a0, const u16 * a1) +static u16 * sub_8114A1C(u16 * a0, const u16 * a1) { u16 * r2; u16 * ret; @@ -4195,7 +4192,7 @@ u16 * sub_8114A1C(u16 * a0, const u16 * a1) return ret + 1; } -const u16 * sub_8114A4C(const u16 * a0) +static const u16 * sub_8114A4C(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(23, a0); @@ -4208,7 +4205,7 @@ const u16 * sub_8114A4C(const u16 * a0) return (const u16 *)boxIdxs + 1; } -u16 * sub_8114AA0(u16 * a0, const u16 * a1) +static u16 * sub_8114AA0(u16 * a0, const u16 * a1) { u16 * r2; r2 = sub_8113DE0(24, a0); @@ -4219,7 +4216,7 @@ u16 * sub_8114AA0(u16 * a0, const u16 * a1) return r2 + 2; } -const u16 * sub_8114AC8(const u16 * a0) +static const u16 * sub_8114AC8(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(24, a0); @@ -4231,7 +4228,7 @@ const u16 * sub_8114AC8(const u16 * a0) return (const u16 *)boxIdxs + 1; } -u16 * sub_8114B0C(u16 * a0, const u16 * a1) +static u16 * sub_8114B0C(u16 * a0, const u16 * a1) { u16 * r2; r2 = sub_8113DE0(25, a0); @@ -4242,7 +4239,7 @@ u16 * sub_8114B0C(u16 * a0, const u16 * a1) return r2 + 2; } -const u16 * sub_8114B34(const u16 * a0) +static const u16 * sub_8114B34(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(25, a0); @@ -4254,7 +4251,7 @@ const u16 * sub_8114B34(const u16 * a0) return (const u16 *)boxIdxs + 1; } -u16 * sub_8114B78(u16 * a0, const u16 * a1) +static u16 * sub_8114B78(u16 * a0, const u16 * a1) { u16 * r2; r2 = sub_8113DE0(26, a0); @@ -4265,7 +4262,7 @@ u16 * sub_8114B78(u16 * a0, const u16 * a1) return r2 + 2; } -const u16 * sub_8114BA0(const u16 * a0) +static const u16 * sub_8114BA0(const u16 * a0) { const u8 * boxIdxs; a0 = sub_8113E88(26, a0); @@ -4277,7 +4274,7 @@ const u16 * sub_8114BA0(const u16 * a0) return (const u16 *)boxIdxs + 1; } -u16 * sub_8114BE4(u16 * a0, const u16 * a1) +static u16 * sub_8114BE4(u16 * a0, const u16 * a1) { u16 * r2; r2 = sub_8113DE0(27, a0); @@ -4288,7 +4285,7 @@ u16 * sub_8114BE4(u16 * a0, const u16 * a1) return r2 + 1; } -const u16 * sub_8114C0C(const u16 * a0) +static const u16 * sub_8114C0C(const u16 * a0) { const u16 *r4 = sub_8113E88(27, a0); DynamicPlaceholderTextUtil_Reset(); @@ -4301,7 +4298,7 @@ const u16 * sub_8114C0C(const u16 * a0) return r4 + 1; } -u16 * sub_8114C68(u16 * a0, const u16 * a1) +static u16 * sub_8114C68(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(28, a0); if (a0 == NULL) @@ -4310,7 +4307,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1) return a0 + 1; } -const u16 * sub_8114C8C(const u16 * a0) +static const u16 * sub_8114C8C(const u16 * a0) { const u16 *r4 = sub_8113E88(28, a0); CopyItemName(r4[0], gStringVar1); @@ -4318,7 +4315,7 @@ const u16 * sub_8114C8C(const u16 * a0) return r4 + 1; } -u16 * sub_8114CC0(u16 * a0, const u16 * a1) +static u16 * sub_8114CC0(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(29, a0); if (a0 == NULL) @@ -4327,7 +4324,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1) return a0 + 1; } -const u16 * sub_8114CE4(const u16 * a0) +static const u16 * sub_8114CE4(const u16 * a0) { const u16 *r4 = sub_8113E88(29, a0); CopyItemName(r4[0], gStringVar1); @@ -4348,13 +4345,13 @@ u16 * sub_8114D18(u16 a0, u16 * a1, const u16 * a2) return a1 + 4; } -u16 * sub_8114D4C(u16 * a0, const u16 * a1) +static u16 * sub_8114D4C(u16 * a0, const u16 * a1) { gUnknown_203B048 = TRUE; return sub_8114D18(30, a0, a1); } -const u16 * sub_8114D68(const u16 * a0) +static const u16 * sub_8114D68(const u16 * a0) { const u8 * r6; a0 = sub_8113E88(30, a0); @@ -4370,7 +4367,7 @@ const u16 * sub_8114D68(const u16 * a0) return a0 + 4; } -u16 * sub_8114DE8(u16 * a0, const u16 * a1) +static u16 * sub_8114DE8(u16 * a0, const u16 * a1) { u16 * r4 = a0; u8 * r5 = (u8 *)a0 + 8; @@ -4393,7 +4390,7 @@ u16 * sub_8114DE8(u16 * a0, const u16 * a1) return (u16 *)(r5 + 4); } -const u16 * sub_8114E68(const u16 * a0) +static const u16 * sub_8114E68(const u16 * a0) { const u8 * r6; if (!sub_8110944(a0, gUnknown_8456AA0[31])) @@ -4441,7 +4438,7 @@ const u16 * sub_8114E68(const u16 * a0) return (const u16 *)(r6 + 4); } -bool8 sub_8114FBC(u16 a0) +static bool8 sub_8114FBC(u16 a0) { switch (a0) { @@ -4454,13 +4451,13 @@ bool8 sub_8114FBC(u16 a0) return FALSE; } -u16 * sub_8114FF0(u16 * a0, const u16 * a1) +static u16 * sub_8114FF0(u16 * a0, const u16 * a1) { gUnknown_203B048 = TRUE; return sub_8114D18(32, a0, a1); } -const u16 * sub_811500C(const u16 * a0) +static const u16 * sub_811500C(const u16 * a0) { const u8 * r5; a0 = sub_8113E88(32, a0); @@ -4474,7 +4471,7 @@ const u16 * sub_811500C(const u16 * a0) return a0 + 4; } -u16 * sub_8115078(u16 * a0, const u16 * a1) +static u16 * sub_8115078(u16 * a0, const u16 * a1) { if (!sub_8110944(a0, gUnknown_8456AA0[33])) return NULL; @@ -4487,7 +4484,7 @@ u16 * sub_8115078(u16 * a0, const u16 * a1) return a0 + 5; } -const u16 * sub_81150CC(const u16 * a0) +static const u16 * sub_81150CC(const u16 * a0) { const u8 * r5; if (!sub_8110944(a0, gUnknown_8456AA0[33])) @@ -4518,13 +4515,13 @@ const u16 * sub_81150CC(const u16 * a0) return (const u16 *)(r5 + 2); } -u16 * sub_81151C0(u16 * a0, const u16 * a1) +static u16 * sub_81151C0(u16 * a0, const u16 * a1) { gUnknown_203B048 = TRUE; return sub_8114D18(34, a0, a1); } -const u16 * sub_81151DC(const u16 * a0) +static const u16 * sub_81151DC(const u16 * a0) { const u16 * r5 = sub_8113E88(34, a0); const u8 * r6 = (const u8 *)r5 + 6; @@ -4546,7 +4543,7 @@ const u16 * sub_81151DC(const u16 * a0) return (const u16 *)(r6 + 2); } -const u8 *const gUnknown_8456AF0[] = { +static const u8 *const gUnknown_8456AF0[] = { gUnknown_841B09F, gUnknown_841B0A4, gUnknown_841B0B5, @@ -4600,7 +4597,7 @@ const u8 *const gUnknown_8456AF0[] = { gUnknown_841B277 }; -const u8 *const gUnknown_8456BBC[] = { +static const u8 *const gUnknown_8456BBC[] = { gUnknown_841A53A, gUnknown_841AD9E, gUnknown_841ADC8, @@ -4613,7 +4610,7 @@ const u8 *const gUnknown_8456BBC[] = { gUnknown_841B005 }; -const u8 gUnknown_8456BE4[] = { +static const u8 gUnknown_8456BE4[] = { 0x03, 0x04, 0x05, @@ -4667,7 +4664,7 @@ const u8 gUnknown_8456BE4[] = { 0x07 }; -const u8 gUnknown_8456C17[] = { +static const u8 gUnknown_8456C17[] = { 0x5a, 0x5b, 0x5d, @@ -4678,7 +4675,7 @@ const u8 gUnknown_8456C17[] = { 0x59 }; -const u8 *const gUnknown_8456C20[] = { +static const u8 *const gUnknown_8456C20[] = { gUnknown_841AC51, gUnknown_841ABAB, gUnknown_841ABCD, @@ -4693,7 +4690,7 @@ const u8 *const gUnknown_8456C20[] = { gUnknown_841AD3C }; -u16 * sub_8115280(u16 * a0, const u16 * a1) +static u16 * sub_8115280(u16 * a0, const u16 * a1) { u16 * r2 = sub_8113DE0(35, a0); if (r2 == NULL) @@ -4704,7 +4701,7 @@ u16 * sub_8115280(u16 * a0, const u16 * a1) return r2 + 1; } -const u16 * sub_81152BC(const u16 * a0) +static const u16 * sub_81152BC(const u16 * a0) { u8 r4, r6; const u16 * r5 = sub_8113E88(35, a0); @@ -4738,7 +4735,7 @@ void sub_811539C(void) gUnknown_203B04B = TRUE; } -bool8 sub_81153A8(u16 a0, u16 * a1) +static bool8 sub_81153A8(u16 a0, u16 * a1) { if (a0 != 35) { @@ -4751,7 +4748,7 @@ bool8 sub_81153A8(u16 a0, u16 * a1) return TRUE; } -bool8 sub_81153E4(u16 a0, u16 * a1) +static bool8 sub_81153E4(u16 a0, u16 * a1) { if (a0 != 35) return TRUE; @@ -4761,7 +4758,7 @@ bool8 sub_81153E4(u16 a0, u16 * a1) return TRUE; } -u16 * sub_8115410(u16 * a0, const u16 * a1) +static u16 * sub_8115410(u16 * a0, const u16 * a1) { u8 * r3; a0 = sub_8113DE0(36, a0); @@ -4778,7 +4775,7 @@ u16 * sub_8115410(u16 * a0, const u16 * a1) return (u16 *)(r3 + 2); } -const u16 * sub_8115460(const u16 * a0) +static const u16 * sub_8115460(const u16 * a0) { const u16 * r4 = sub_8113E88(36, a0); const u8 * r5 = (const u8 *)r4 + 2; @@ -4796,7 +4793,7 @@ const u16 * sub_8115460(const u16 * a0) return (const u16 *)(r5 + 2); } -u16 * sub_81154DC(u16 * a0, const u16 * a1) +static u16 * sub_81154DC(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(37, a0); if (a0 == NULL) @@ -4810,7 +4807,7 @@ u16 * sub_81154DC(u16 * a0, const u16 * a1) return a0 + 5; } -const u16 * sub_8115518(const u16 * a0) +static const u16 * sub_8115518(const u16 * a0) { const u16 * r4 = sub_8113E88(37, a0); const u8 * r7 = (const u8 *)r4 + 8; @@ -4830,7 +4827,7 @@ const u16 * sub_8115518(const u16 * a0) return (const u16 *)(r7 + 2); } -u16 * sub_81155A4(u16 * a0, const u16 * a1) +static u16 * sub_81155A4(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(38, a0); if (a0 == NULL) @@ -4844,7 +4841,7 @@ u16 * sub_81155A4(u16 * a0, const u16 * a1) return a0 + 5; } -const u16 * sub_81155E0(const u16 * a0) { +static const u16 * sub_81155E0(const u16 * a0) { const u16 *r5 = sub_8113E88(38, a0); const u8 *r7 = (const u8 *) r5 + 8; u32 r6 = (r5[2] << 16) + r5[3]; @@ -4876,7 +4873,7 @@ const u16 * sub_81155E0(const u16 * a0) { return (const u16 *)(r7 + 2); } -u16 * sub_81156D8(u16 * a0, const u16 * a1) +static u16 * sub_81156D8(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(40, a0); if (a0 == NULL) @@ -4886,7 +4883,7 @@ u16 * sub_81156D8(u16 * a0, const u16 * a1) return a0 + 2; } -const u16 * sub_8115700(const u16 * a0) +static const u16 * sub_8115700(const u16 * a0) { const u16 * r4 = sub_8113E88(40, a0); const u8 * r5 = (const u8 *)r4 + 2; @@ -4896,7 +4893,7 @@ const u16 * sub_8115700(const u16 * a0) return (const u16 *)(r5 + 2); } -const u16 gUnknown_8456C50[] = { +static const u16 gUnknown_8456C50[] = { 0x0891, 0x0892, 0x0893, @@ -4993,7 +4990,7 @@ void sub_8115798(void) } } -u16 * sub_81157DC(u16 * a0, const u16 * a1) +static u16 * sub_81157DC(u16 * a0, const u16 * a1) { a0 = sub_8113DE0(42, a0); if (a0 == NULL) @@ -5002,7 +4999,7 @@ u16 * sub_81157DC(u16 * a0, const u16 * a1) return a0 + 1; } -const u16 * sub_8115800(const u16 * a0) +static const u16 * sub_8115800(const u16 * a0) { const u16 * r4 = sub_8113E88(42, a0); sub_80C4DF8(gStringVar1, r4[0]); diff --git a/src/save.c b/src/save.c index 9f580477b..45f5fc6f0 100644 --- a/src/save.c +++ b/src/save.c @@ -85,7 +85,7 @@ u16 gSaveUnusedVar; u16 gSaveFileStatus; void (*gGameContinueCallback)(void); struct SaveBlockChunk gRamSaveSectionLocations[0xE]; -u16 gUnknown_3005420; +u16 gSaveSucceeded; EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; EWRAM_DATA u32 gSaveUnusedVar2 = 0; @@ -702,11 +702,11 @@ u8 TrySavingData(u8 saveType) else goto OK; // really? } - gUnknown_3005420 = 0xFF; + gSaveSucceeded = 0xFF; return 0xFF; OK: - gUnknown_3005420 = 1; + gSaveSucceeded = 1; return 1; } diff --git a/src/scrcmd.c b/src/scrcmd.c index 85059691f..ae994fceb 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1284,14 +1284,14 @@ bool8 ScrCmd_loadhelp(struct ScriptContext *ctx) if (msg == NULL) msg = (const u8 *)ctx->data[0]; - sub_80F7974(msg); + DrawHelpMessageWindowWithText(msg); CopyWindowToVram(GetStartMenuWindowId(), 1); return FALSE; } bool8 ScrCmd_unloadhelp(struct ScriptContext *ctx) { - sub_80F7998(); + DestroyHelpMessageWindow_(); return FALSE; } @@ -1566,7 +1566,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) if (ptr == NULL) ptr = (u8 *)ctx->data[0]; - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DrawDialogueFrame(0, 1); AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL); return FALSE; diff --git a/src/start_menu.c b/src/start_menu.c new file mode 100644 index 000000000..e3854b803 --- /dev/null +++ b/src/start_menu.c @@ -0,0 +1,1008 @@ +#include "global.h" +#include "palette.h" +#include "bg.h" +#include "gpu_regs.h" +#include "scanline_effect.h" +#include "overworld.h" +#include "link.h" +#include "pokedex.h" +#include "item_menu.h" +#include "party_menu.h" +#include "save.h" +#include "link_rfu.h" +#include "event_data.h" +#include "fieldmap.h" +#include "safari_zone.h" +#include "start_menu.h" +#include "menu.h" +#include "load_save.h" +#include "strings.h" +#include "string_util.h" +#include "menu_helpers.h" +#include "text_window.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" +#include "new_menu_helpers.h" +#include "map_obj_80688E4.h" +#include "map_obj_lock.h" +#include "script.h" +#include "sound.h" +#include "quest_log.h" +#include "new_game.h" +#include "event_scripts.h" +#include "field_weather.h" +#include "field_specials.h" +#include "pokedex_screen.h" +#include "trainer_card.h" +#include "option_menu.h" +#include "save_menu_util.h" +#include "help_system.h" +#include "constants/songs.h" +#include "constants/flags.h" + +enum StartMenuOption +{ + STARTMENU_POKEDEX = 0, + STARTMENU_POKEMON, + STARTMENU_BAG, + STARTMENU_PLAYER, + STARTMENU_SAVE, + STARTMENU_OPTION, + STARTMENU_EXIT, + STARTMENU_RETIRE, + STARTMENU_PLAYER2, + MAX_STARTMENU_ITEMS +}; + +enum SaveCBReturn +{ + SAVECB_RETURN_CONTINUE = 0, + SAVECB_RETURN_OKAY, + SAVECB_RETURN_CANCEL, + SAVECB_RETURN_ERROR +}; + +static EWRAM_DATA bool8 (*sStartMenuCallback)(void) = NULL; +static EWRAM_DATA u8 sStartMenuCursorPos = 0; +static EWRAM_DATA u8 sNumStartMenuItems = 0; +static EWRAM_DATA u8 sStartMenuOrder[MAX_STARTMENU_ITEMS] = {}; +static EWRAM_DATA s8 sDrawStartMenuState[2] = {}; +static EWRAM_DATA u8 sSafariZoneStatsWindowId = 0; +static ALIGNED(4) EWRAM_DATA u8 sSaveStatsWindowId = 0; + +static u8 (*sSaveDialogCB)(void); +static u8 sSaveDialogDelay; +static bool8 sSaveDialogIsPrinting; + +static void SetUpStartMenu_Link(void); +static void SetUpStartMenu_UnionRoom(void); +static void SetUpStartMenu_SafariZone(void); +static void SetUpStartMenu_NormalField(void); +static bool8 StartCB_HandleInput(void); +static void StartMenu_FadeScreenIfLeavingOverworld(void); +static bool8 StartMenuPokedexSanityCheck(void); +static bool8 StartMenuPokedexCallback(void); +static bool8 StartMenuPokemonCallback(void); +static bool8 StartMenuBagCallback(void); +static bool8 StartMenuPlayerCallback(void); +static bool8 StartMenuSaveCallback(void); +static bool8 StartMenuOptionCallback(void); +static bool8 StartMenuExitCallback(void); +static bool8 StartMenuSafariZoneRetireCallback(void); +static bool8 StartMenuLinkPlayerCallback(void); +static bool8 StartCB_Save1(void); +static bool8 StartCB_Save2(void); +static void StartMenu_PrepareForSave(void); +static u8 RunSaveDialogCB(void); +static void task50_save_game(u8 taskId); +static u8 SaveDialogCB_PrintAskSaveText(void); +static u8 SaveDialogCB_AskSavePrintYesNoMenu(void); +static u8 SaveDialogCB_AskSaveHandleInput(void); +static u8 SaveDialogCB_PrintAskOverwriteText(void); +static u8 SaveDialogCB_AskOverwritePrintYesNoMenu(void); +static u8 SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu(void); +static u8 SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput(void); +static u8 SaveDialogCB_PrintSavingDontTurnOffPower(void); +static u8 SaveDialogCB_DoSave(void); +static u8 SaveDialogCB_PrintSaveResult(void); +static u8 SaveDialogCB_WaitPrintSuccessAndPlaySE(void); +static u8 SaveDialogCB_ReturnSuccess(void); +static u8 SaveDialogCB_WaitPrintErrorAndPlaySE(void); +static u8 SaveDialogCB_ReturnError(void); +static void CB2_WhileSavingAfterLinkBattle(void); +static void task50_after_link_battle_save(u8 taskId); +static void PrintSaveStats(void); +static void CloseSaveStatsWindow(void); +static void CloseStartMenu(void); + +static const struct MenuAction sStartMenuActionTable[] = { + { gStartMenuText_Pokedex, {.u8_void = StartMenuPokedexCallback} }, + { gStartMenuText_Pokemon, {.u8_void = StartMenuPokemonCallback} }, + { gStartMenuText_Bag, {.u8_void = StartMenuBagCallback} }, + { gStartMenuText_Player, {.u8_void = StartMenuPlayerCallback} }, + { gStartMenuText_Save, {.u8_void = StartMenuSaveCallback} }, + { gStartMenuText_Option, {.u8_void = StartMenuOptionCallback} }, + { gStartMenuText_Exit, {.u8_void = StartMenuExitCallback} }, + { gStartMenuText_Retire, {.u8_void = StartMenuSafariZoneRetireCallback} }, + { gStartMenuText_Player, {.u8_void = StartMenuLinkPlayerCallback} } +}; + +static const struct WindowTemplate sSafariZoneStatsWindowTemplate = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 10, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x008 +}; + +static const u8 *const sStartMenuDescPointers[] = { + gStartMenuDesc_Pokedex, + gStartMenuDesc_Pokemon, + gStartMenuDesc_Bag, + gStartMenuDesc_Player, + gStartMenuDesc_Save, + gStartMenuDesc_Option, + gStartMenuDesc_Exit, + gStartMenuDesc_Retire, + gStartMenuDesc_Player +}; + +static const struct BgTemplate sBGTemplates_AfterLinkSaveMessage[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + } +}; + +static const struct WindowTemplate sWindowTemplates_AfterLinkSaveMessage[] = { + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x198 + }, DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sSaveStatsWindowTemplate = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 14, + .height = 9, + .paletteNum = 13, + .baseBlock = 0x008 +}; + +static ALIGNED(2) const u8 sTextColor_StatName[] = { 1, 2, 3 }; +static ALIGNED(2) const u8 sTextColor_StatValue[] = { 1, 4, 5 }; +static ALIGNED(2) const u8 sTextColor_LocationHeader[] = { 1, 6, 7 }; + +static void SetUpStartMenu(void) +{ + sNumStartMenuItems = 0; + if (IsUpdateLinkStateCBActive() == TRUE) + SetUpStartMenu_Link(); + else if (InUnionRoom() == TRUE) + SetUpStartMenu_UnionRoom(); + else if (GetSafariZoneFlag() == TRUE) + SetUpStartMenu_SafariZone(); + else + SetUpStartMenu_NormalField(); +} + +static void AppendToStartMenuItems(u8 newEntry) +{ + AppendToList(sStartMenuOrder, &sNumStartMenuItems, newEntry); +} + +static void SetUpStartMenu_NormalField(void) +{ + if (FlagGet(FLAG_0x829) == TRUE) + AppendToStartMenuItems(STARTMENU_POKEDEX); + if (FlagGet(FLAG_0x828) == TRUE) + AppendToStartMenuItems(STARTMENU_POKEMON); + AppendToStartMenuItems(STARTMENU_BAG); + AppendToStartMenuItems(STARTMENU_PLAYER); + AppendToStartMenuItems(STARTMENU_SAVE); + AppendToStartMenuItems(STARTMENU_OPTION); + AppendToStartMenuItems(STARTMENU_EXIT); +} + +static void SetUpStartMenu_SafariZone(void) +{ + AppendToStartMenuItems(STARTMENU_RETIRE); + AppendToStartMenuItems(STARTMENU_POKEDEX); + AppendToStartMenuItems(STARTMENU_POKEMON); + AppendToStartMenuItems(STARTMENU_BAG); + AppendToStartMenuItems(STARTMENU_PLAYER); + AppendToStartMenuItems(STARTMENU_OPTION); + AppendToStartMenuItems(STARTMENU_EXIT); +} + +static void SetUpStartMenu_Link(void) +{ + AppendToStartMenuItems(STARTMENU_POKEMON); + AppendToStartMenuItems(STARTMENU_BAG); + AppendToStartMenuItems(STARTMENU_PLAYER2); + AppendToStartMenuItems(STARTMENU_OPTION); + AppendToStartMenuItems(STARTMENU_EXIT); +} + +static void SetUpStartMenu_UnionRoom(void) +{ + AppendToStartMenuItems(STARTMENU_POKEMON); + AppendToStartMenuItems(STARTMENU_BAG); + AppendToStartMenuItems(STARTMENU_PLAYER); + AppendToStartMenuItems(STARTMENU_OPTION); + AppendToStartMenuItems(STARTMENU_EXIT); +} + +static void DrawSafariZoneStatsWindow(void) +{ + sSafariZoneStatsWindowId = AddWindow(&sSafariZoneStatsWindowTemplate); + PutWindowTilemap(sSafariZoneStatsWindowId); + DrawStdWindowFrame(sSafariZoneStatsWindowId, FALSE); + ConvertIntToDecimalStringN(gStringVar1, gSafariZoneStepCounter, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, 600, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar3, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); + StringExpandPlaceholders(gStringVar4, gUnknown_84162A9); + AddTextPrinterParameterized(sSafariZoneStatsWindowId,2, gStringVar4, 4, 3, 0xFF, NULL); + CopyWindowToVram(sSafariZoneStatsWindowId, 2); +} + +static void DestroySafariZoneStatsWindow(void) +{ + if (GetSafariZoneFlag()) + { + ClearStdWindowAndFrameToTransparent(sSafariZoneStatsWindowId, FALSE); + CopyWindowToVram(sSafariZoneStatsWindowId, 2); + RemoveWindow(sSafariZoneStatsWindowId); + } +} + +static s8 PrintStartMenuItems(s8 *cursor_p, u8 nitems) +{ + s16 i = *cursor_p; + do + { + if (sStartMenuOrder[i] == STARTMENU_PLAYER || sStartMenuOrder[i] == STARTMENU_PLAYER2) + { + Menu_PrintFormatIntlPlayerName(GetStartMenuWindowId(), sStartMenuActionTable[sStartMenuOrder[i]].text, 8, i * 15); + } + else + { + StringExpandPlaceholders(gStringVar4, sStartMenuActionTable[sStartMenuOrder[i]].text); + AddTextPrinterParameterized(GetStartMenuWindowId(), 2, gStringVar4, 8, i * 15, 0xFF, NULL); + } + i++; + if (i >= sNumStartMenuItems) + { + *cursor_p = i; + return TRUE; + } + } while (--nitems); + *cursor_p = i; + return FALSE; +} + +static s8 DoDrawStartMenu(void) +{ + switch (sDrawStartMenuState[0]) + { + case 0: + sDrawStartMenuState[0]++; + break; + case 1: + SetUpStartMenu(); + sDrawStartMenuState[0]++; + break; + case 2: + LoadStdWindowFrameGfx(); + DrawStdWindowFrame(CreateStartMenuWindow(sNumStartMenuItems), FALSE); + sDrawStartMenuState[0]++; + break; + case 3: + if (GetSafariZoneFlag()) + DrawSafariZoneStatsWindow(); + sDrawStartMenuState[0]++; + break; + case 4: + if (PrintStartMenuItems(&sDrawStartMenuState[1], 2) == TRUE) + sDrawStartMenuState[0]++; + break; + case 5: + sStartMenuCursorPos = Menu_InitCursor(GetStartMenuWindowId(), 2, 0, 0, 15, sNumStartMenuItems, sStartMenuCursorPos); + if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP) + { + DrawHelpMessageWindowWithText(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]]); + } + CopyWindowToVram(GetStartMenuWindowId(), 1); + return TRUE; + } + return FALSE; +} + +static void DrawStartMenuInOneGo(void) +{ + sDrawStartMenuState[0] = 0; + sDrawStartMenuState[1] = 0; + while (!DoDrawStartMenu()) + ; +} + +static void task50_startmenu(u8 taskId) +{ + if (DoDrawStartMenu() == TRUE) + SwitchTaskToFollowupFunc(taskId); +} + +static void OpenStartMenuWithFollowupFunc(TaskFunc func) +{ + u8 taskId; + sDrawStartMenuState[0] = 0; + sDrawStartMenuState[1] = 0; + taskId = CreateTask(task50_startmenu, 80); + SetTaskFuncWithFollowupFunc(taskId, task50_startmenu, func); +} + +static bool8 FieldCB2_DrawStartMenu(void) +{ + if (!DoDrawStartMenu()) + return FALSE; + FadeTransition_FadeInOnReturnToStartMenu(); + return TRUE; +} + +void SetUpReturnToStartMenu(void) +{ + sDrawStartMenuState[0] = 0; + sDrawStartMenuState[1] = 0; + gFieldCallback2 = FieldCB2_DrawStartMenu; +} + +void Task_StartMenuHandleInput(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + if (InUnionRoom() == TRUE) + var_800D_set_xB(); + sStartMenuCallback = StartCB_HandleInput; + data[0]++; + break; + case 1: + if (sStartMenuCallback() == TRUE) + DestroyTask(taskId); + break; + } +} + +void ShowStartMenu(void) +{ + if (!IsUpdateLinkStateCBActive()) + { + player_bitmagic(); + sub_805C270(); + sub_805C780(); + } + OpenStartMenuWithFollowupFunc(Task_StartMenuHandleInput); + ScriptContext2_Enable(); +} + +static bool8 StartCB_HandleInput(void) +{ + if (JOY_NEW(DPAD_UP)) + { + PlaySE(SE_SELECT); + sStartMenuCursorPos = Menu_MoveCursor(-1); + if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP) + { + PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2); + } + } + if (JOY_NEW(DPAD_DOWN)) + { + PlaySE(SE_SELECT); + sStartMenuCursorPos = Menu_MoveCursor(+1); + if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP) + { + PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2); + } + } + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + if (!StartMenuPokedexSanityCheck()) + return FALSE; + sStartMenuCallback = sStartMenuActionTable[sStartMenuOrder[sStartMenuCursorPos]].func.u8_void; + StartMenu_FadeScreenIfLeavingOverworld(); + return FALSE; + } + if (JOY_NEW(B_BUTTON | START_BUTTON)) + { + DestroySafariZoneStatsWindow(); + DestroyHelpMessageWindow_(); + CloseStartMenu(); + return TRUE; + } + return FALSE; +} + +static void StartMenu_FadeScreenIfLeavingOverworld(void) +{ + if (sStartMenuCallback != StartMenuSaveCallback + && sStartMenuCallback != StartMenuExitCallback + && sStartMenuCallback != StartMenuSafariZoneRetireCallback) + { + sub_80CCB68(); + fade_screen(1, 0); + } +} + +static bool8 StartMenuPokedexSanityCheck(void) +{ + if (sStartMenuActionTable[sStartMenuOrder[sStartMenuCursorPos]].func.u8_void == StartMenuPokedexCallback && GetNationalPokedexCount(0) == 0) + return FALSE; + return TRUE; +} + +static bool8 StartMenuPokedexCallback(void) +{ + if (!gPaletteFade.active) + { + IncrementGameStat(GAME_STAT_CHECKED_POKEDEX); + PlayRainStoppingSoundEffect(); + DestroySafariZoneStatsWindow(); + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_OpenPokedexFromStartMenu); + return TRUE; + } + return FALSE; +} + +static bool8 StartMenuPokemonCallback(void) +{ + if (!gPaletteFade.active) + { + PlayRainStoppingSoundEffect(); + DestroySafariZoneStatsWindow(); + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_PartyMenuFromStartMenu); + return TRUE; + } + return FALSE; +} + +static bool8 StartMenuBagCallback(void) +{ + if (!gPaletteFade.active) + { + PlayRainStoppingSoundEffect(); + DestroySafariZoneStatsWindow(); + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_BagMenuFromStartMenu); + return TRUE; + } + return FALSE; +} + +static bool8 StartMenuPlayerCallback(void) +{ + if (!gPaletteFade.active) + { + PlayRainStoppingSoundEffect(); + DestroySafariZoneStatsWindow(); + CleanupOverworldWindowsAndTilemaps(); + InitTrainerCard(CB2_ReturnToStartMenu); + return TRUE; + } + return FALSE; +} + +static bool8 StartMenuSaveCallback(void) +{ + sStartMenuCallback = StartCB_Save1; + return FALSE; +} + +static bool8 StartMenuOptionCallback(void) +{ + if (!gPaletteFade.active) + { + PlayRainStoppingSoundEffect(); + DestroySafariZoneStatsWindow(); + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_OptionsMenuFromStartMenu); + gMain.savedCallback = CB2_ReturnToStartMenu; + return TRUE; + } + return FALSE; +} + +static bool8 StartMenuExitCallback(void) +{ + DestroySafariZoneStatsWindow(); + DestroyHelpMessageWindow_(); + CloseStartMenu(); + return TRUE; +} + +static bool8 StartMenuSafariZoneRetireCallback(void) +{ + DestroySafariZoneStatsWindow(); + DestroyHelpMessageWindow_(); + CloseStartMenu(); + SafariZoneRetirePrompt(); + return TRUE; +} + + +static bool8 StartMenuLinkPlayerCallback(void) +{ + if (!gPaletteFade.active) + { + PlayRainStoppingSoundEffect(); + CleanupOverworldWindowsAndTilemaps(); + InitLinkPartnerTrainerCard(gUnknown_300502C, CB2_ReturnToStartMenu); + return TRUE; + } + return FALSE; +} + +static bool8 StartCB_Save1(void) +{ + HelpSystem_BackupSomeVariable(); + HelpSystem_SetSomeVariable2(12); + StartMenu_PrepareForSave(); + sStartMenuCallback = StartCB_Save2; + return FALSE; +} + +static bool8 StartCB_Save2(void) +{ + switch (RunSaveDialogCB()) + { + case SAVECB_RETURN_CONTINUE: + break; + case SAVECB_RETURN_OKAY: + ClearDialogWindowAndFrameToTransparent(0, TRUE); + sub_80696C0(); + ScriptContext2_Disable(); + HelpSystem_RestoreSomeVariable(); + return TRUE; + case SAVECB_RETURN_CANCEL: + ClearDialogWindowAndFrameToTransparent(0, FALSE); + DrawStartMenuInOneGo(); + HelpSystem_RestoreSomeVariable(); + sStartMenuCallback = StartCB_HandleInput; + break; + case SAVECB_RETURN_ERROR: + ClearDialogWindowAndFrameToTransparent(0, TRUE); + sub_80696C0(); + ScriptContext2_Disable(); + HelpSystem_RestoreSomeVariable(); + return TRUE; + } + return FALSE; +} + +static void StartMenu_PrepareForSave(void) +{ + save_serialize_map(); + sSaveDialogCB = SaveDialogCB_PrintAskSaveText; + sSaveDialogIsPrinting = FALSE; +} + +static u8 RunSaveDialogCB(void) +{ + if (RunTextPrinters_CheckPrinter0Active() == TRUE) + return 0; + sSaveDialogIsPrinting = FALSE; + return sSaveDialogCB(); +} + +void Field_AskSaveTheGame(void) +{ + HelpSystem_BackupSomeVariable(); + HelpSystem_SetSomeVariable2(12); + StartMenu_PrepareForSave(); + CreateTask(task50_save_game, 80); +} + +static void PrintSaveTextWithFollowupFunc(const u8 *str, bool8 (*saveDialogCB)(void)) +{ + StringExpandPlaceholders(gStringVar4, str); + sub_80F7768(0, TRUE); + AddTextPrinterForMessage(TRUE); + sSaveDialogIsPrinting = TRUE; + sSaveDialogCB = saveDialogCB; +} + +static void task50_save_game(u8 taskId) +{ + switch (RunSaveDialogCB()) + { + case 0: + return; + case 2: + case 3: + gSpecialVar_Result = FALSE; + break; + case 1: + gSpecialVar_Result = TRUE; + break; + } + DestroyTask(taskId); + EnableBothScriptContexts(); + HelpSystem_RestoreSomeVariable(); +} + +static void CloseSaveMessageWindow(void) +{ + ClearDialogWindowAndFrame(0, TRUE); +} + +static void CloseSaveStatsWindow_(void) +{ + CloseSaveStatsWindow(); +} + +static void SetSaveDialogDelayTo60Frames(void) +{ + sSaveDialogDelay = 60; +} + +static bool8 SaveDialog_Wait60FramesOrAButtonHeld(void) +{ + sSaveDialogDelay--; + if (JOY_HELD(A_BUTTON)) + { + PlaySE(SE_SELECT); + return TRUE; + } + else if (sSaveDialogDelay == 0) + { + return TRUE; + } + else + { + return FALSE; + } +} + +static bool8 SaveDialog_Wait60FramesThenCheckAButtonHeld(void) +{ + if (sSaveDialogDelay == 0) + { + if (JOY_HELD(A_BUTTON)) + { + return TRUE; + } + else + { + return FALSE; + } + } + else + { + sSaveDialogDelay--; + return FALSE; + } +} + +static u8 SaveDialogCB_PrintAskSaveText(void) +{ + ClearStdWindowAndFrame(GetStartMenuWindowId(), FALSE); + RemoveStartMenuWindow(); + DestroyHelpMessageWindow(0); + PrintSaveStats(); + PrintSaveTextWithFollowupFunc(gText_WouldYouLikeToSaveTheGame, SaveDialogCB_AskSavePrintYesNoMenu); + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_AskSavePrintYesNoMenu(void) +{ + DisplayYesNoMenuDefaultYes(); + sSaveDialogCB = SaveDialogCB_AskSaveHandleInput; + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_AskSaveHandleInput(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: + if ((gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID) || !gDifferentSaveFile) + sSaveDialogCB = SaveDialogCB_PrintAskOverwriteText; + else + sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower; + break; + case 1: + case -1: + CloseSaveStatsWindow_(); + CloseSaveMessageWindow(); + return SAVECB_RETURN_CANCEL; + } + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_PrintAskOverwriteText(void) +{ + if (gDifferentSaveFile == TRUE) + PrintSaveTextWithFollowupFunc(gText_DifferentGameFile, SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu); + else + PrintSaveTextWithFollowupFunc(gText_AlreadySaveFile_WouldLikeToOverwrite, SaveDialogCB_AskOverwritePrintYesNoMenu); + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_AskOverwritePrintYesNoMenu(void) +{ + DisplayYesNoMenuDefaultYes(); + sSaveDialogCB = SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput; + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu(void) +{ + DisplayYesNoMenuDefaultNo(); + sSaveDialogCB = SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput; + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: + sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower; + break; + case 1: + case -1: + CloseSaveStatsWindow_(); + CloseSaveMessageWindow(); + return SAVECB_RETURN_CANCEL; + } + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_PrintSavingDontTurnOffPower(void) +{ + sub_8112450(); + PrintSaveTextWithFollowupFunc(gText_SavingDontTurnOffThePower, SaveDialogCB_DoSave); + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_DoSave(void) +{ + IncrementGameStat(GAME_STAT_SAVED_GAME); + if (gDifferentSaveFile == TRUE) + { + TrySavingData(SAVE_OVERWRITE_DIFFERENT_FILE); + gDifferentSaveFile = FALSE; + } + else + { + TrySavingData(SAVE_NORMAL); + } + sSaveDialogCB = SaveDialogCB_PrintSaveResult; + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_PrintSaveResult(void) +{ + if (gSaveSucceeded == TRUE) + PrintSaveTextWithFollowupFunc(gText_PlayerSavedTheGame, SaveDialogCB_WaitPrintSuccessAndPlaySE); + else + PrintSaveTextWithFollowupFunc(gText_SaveError_PleaseExchangeBackupMemory, SaveDialogCB_WaitPrintErrorAndPlaySE); + SetSaveDialogDelayTo60Frames(); + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_WaitPrintSuccessAndPlaySE(void) +{ + if (!RunTextPrinters_CheckPrinter0Active()) + { + PlaySE(SE_SAVE); + sSaveDialogCB = SaveDialogCB_ReturnSuccess; + } + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_ReturnSuccess(void) +{ + if (!IsSEPlaying() && SaveDialog_Wait60FramesOrAButtonHeld()) + { + CloseSaveStatsWindow_(); + return SAVECB_RETURN_OKAY; + } + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_WaitPrintErrorAndPlaySE(void) +{ + if (!RunTextPrinters_CheckPrinter0Active()) + { + PlaySE(SE_BOO); + sSaveDialogCB = SaveDialogCB_ReturnError; + } + return SAVECB_RETURN_CONTINUE; +} + +static u8 SaveDialogCB_ReturnError(void) +{ + if (!SaveDialog_Wait60FramesThenCheckAButtonHeld()) + return SAVECB_RETURN_CONTINUE; + CloseSaveStatsWindow_(); + return SAVECB_RETURN_ERROR; +} + +static void VBlankCB_WhileSavingAfterLinkBattle(void) +{ + TransferPlttBuffer(); +} + +bool32 DoSetUpSaveAfterLinkBattle(u8 *state) +{ + switch (*state) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetVBlankCallback(NULL); + ScanlineEffect_Stop(); + DmaFill16Defvars(3, 0, (void *)PLTT, PLTT_SIZE); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); + break; + case 1: + ResetSpriteData(); + ResetTasks(); + ResetPaletteFade(); + ScanlineEffect_Clear(); + break; + case 2: + ResetBgsAndClearDma3BusyFlags(FALSE); + InitBgsFromTemplates(0, sBGTemplates_AfterLinkSaveMessage, NELEMS(sBGTemplates_AfterLinkSaveMessage)); + InitWindows(sWindowTemplates_AfterLinkSaveMessage); + TextWindow_SetStdFrame0_WithPal(0, 0x008, 0xF0); + break; + case 3: + ShowBg(0); + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + SetVBlankCallback(VBlankCB_WhileSavingAfterLinkBattle); + EnableInterrupts(INTR_FLAG_VBLANK); + break; + case 4: + return TRUE; + } + (*state)++; + return FALSE; +} + +void CB2_SetUpSaveAfterLinkBattle(void) +{ + if (DoSetUpSaveAfterLinkBattle(&gMain.state)) + { + CreateTask(task50_after_link_battle_save, 80); + SetMainCallback2(CB2_WhileSavingAfterLinkBattle); + } +} + +static void CB2_WhileSavingAfterLinkBattle(void) +{ + RunTasks(); + UpdatePaletteFade(); +} + +static void task50_after_link_battle_save(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + switch (data[0]) + { + case 0: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0xFF, NULL, 2, 1, 3); + DrawTextBorderOuter(0, 0x008, 0x0F); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + if (gWirelessCommType != 0 && InUnionRoom()) + data[0] = 5; + else + data[0] = 1; + break; + case 1: + sub_804C1C0(); + sub_80DA45C(); + data[0] = 2; + break; + case 2: + if (sub_80DA4A0()) + { + sav2_gender2_inplace_and_xFE(); + data[0] = 3; + } + break; + case 3: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + data[0] = 4; + break; + case 4: + FreeAllWindowBuffers(); + SetMainCallback2(gMain.savedCallback); + DestroyTask(taskId); + break; + case 5: + CreateTask(sub_80DA634, 5); + data[0] = 6; + break; + case 6: + if (!FuncIsActiveTask(sub_80DA634)) + data[0] = 3; + break; + } + } +} + +static void PrintSaveStats(void) +{ + u8 y; + u8 x; + sSaveStatsWindowId = AddWindow(&sSaveStatsWindowTemplate); + TextWindow_SetStdFrame0_WithPal(sSaveStatsWindowId, 0x21D, 0xD0); + DrawStdFrameWithCustomTileAndPalette(sSaveStatsWindowId, FALSE, 0x21D, 0x0D); + SaveStatToString(SAVE_STAT_LOCATION, gStringVar4, 8); + x = (u32)(112 - GetStringWidth(2, gStringVar4, -1)) / 2; + AddTextPrinterParameterized3(sSaveStatsWindowId, 2, x, 0, sTextColor_LocationHeader, -1, gStringVar4); + x = (u32)(112 - GetStringWidth(2, gStringVar4, -1)) / 2; + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 14, sTextColor_StatName, -1, gSaveStatName_Player); + SaveStatToString(SAVE_STAT_NAME, gStringVar4, 2); + Menu_PrintFormatIntlPlayerName(sSaveStatsWindowId, gStringVar4, 60, 14); + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 28, sTextColor_StatName, -1, gSaveStatName_Badges); + SaveStatToString(SAVE_STAT_BADGES, gStringVar4, 2); + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, 28, sTextColor_StatValue, -1, gStringVar4); + y = 42; + if (FlagGet(FLAG_0x829) == TRUE) + { + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 42, sTextColor_StatName, -1, gSaveStatName_Pokedex); + SaveStatToString(SAVE_STAT_POKEDEX, gStringVar4, 2); + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, 42, sTextColor_StatValue, -1, gStringVar4); + y = 56; + } + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, y, sTextColor_StatName, -1, gSaveStatName_Time); + SaveStatToString(SAVE_STAT_TIME, gStringVar4, 2); + AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, y, sTextColor_StatValue, -1, gStringVar4); + CopyWindowToVram(sSaveStatsWindowId, 2); +} + +static void CloseSaveStatsWindow(void) +{ + ClearStdWindowAndFrame(sSaveStatsWindowId, FALSE); + RemoveWindow(sSaveStatsWindowId); +} + +static void CloseStartMenu(void) +{ + PlaySE(SE_SELECT); + ClearStdWindowAndFrame(GetStartMenuWindowId(), TRUE); + RemoveStartMenuWindow(); + sub_80696C0(); + ScriptContext2_Disable(); +} + +void AppendToList(u8 *list, u8 *cursor, u8 newEntry) +{ + list[*cursor] = newEntry; + (*cursor)++; +} diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 18da0997c..aa273073b 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -510,7 +510,7 @@ static void TeachyTvMainCallback(void) ScheduleBgCopyTilemapToVram(1); ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(3); - sub_812B1E0(9); // help system something + HelpSystem_SetSomeVariable(9); // help system something BlendPalettes(0xFFFFFFFF, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); SetVBlankCallback(TeachyTvVblankHandler); @@ -736,7 +736,7 @@ static void TeachyTvOptionListController(u8 taskId) { input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); - if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem)) + if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != CB2_BagMenuFromStartMenu)) { PlaySE(SE_SELECT); TeachyTvQuitBeginFade(taskId); diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 17f6b9e09..9512e73d1 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -1278,7 +1278,7 @@ void sub_815E720(void) sub_815EC0C(); windowId = AddWindow(gUnknown_847A218); - sub_80F6E9C(); + LoadStdWindowFrameGfx(); DrawStdWindowFrame(windowId, FALSE); AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL); diff --git a/sym_bss.txt b/sym_bss.txt index a2cf9ccd8..a8c5ba44c 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -53,19 +53,13 @@ gUnknown_3000E9C: @ 3000E9C gUnknown_3000EA0: @ 3000EA0 .space 0x8 + .align 2 .include "src/script.o" - .align 2 -gUnknown_3000FA4: @ 3000FA4 - .space 0x4 - -gUnknown_3000FA8: @ 3000FA8 - .space 0x1 - -gUnknown_3000FA9: @ 3000FA9 - .space 0x3 - + .include "src/start_menu.o" + .align 2 .include "src/tileset_anims.o" + .align 2 .include "src/sound.o" .align 2 @@ -111,9 +105,9 @@ gUnknown_3002008: @ 3002008 gUnknown_3002018: @ 3002018 .space 0x4 - .include "src/quest_log.o" + .include "src/quest_log.o" - .align 2 + .align 2 gUnknown_3002024: @ 3002024 .space 0x4 diff --git a/sym_ewram.txt b/sym_ewram.txt index 2abc3b9b5..0633da5bf 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -12,7 +12,7 @@ .align 2 .include "src/sprite.o" .align 2 - .include "src/string_util.o" + .include "src/string_util.o" .align 2 .include "src/link.o" .space 8 @@ -510,9 +510,9 @@ gUnknown_203709C: @ 203709C .space 0x4 .include "src/script.o" - .include "src/scrcmd.o" + .include "src/scrcmd.o" - .align 2 + .align 2 gSpecialVar_0x8000: @ 20370B8 .space 0x2 @@ -576,33 +576,13 @@ gUnknown_20370DE: @ 20370DE gUnknown_20370E0: @ 20370E0 .space 0x10 -gUnknown_20370F0: @ 20370F0 - .space 0x4 - -gUnknown_20370F4: @ 20370F4 - .space 0x1 - -gUnknown_20370F5: @ 20370F5 - .space 0x1 - -gUnknown_20370F6: @ 20370F6 - .space 0x9 - -gUnknown_20370FF: @ 20370FF - .space 0x1 - -gUnknown_2037100: @ 2037100 - .space 0x1 - -gUnknown_2037101: @ 2037101 - .space 0x3 - -gUnknown_2037104: @ 2037104 - .space 0x4 - + .align 2 + .include "src/start_menu.o" + .align 2 .include "src/tileset_anims.o" + .align 2 .include "src/palette.o" - + .align 2 .include "src/sound.o" .align 2 @@ -978,9 +958,9 @@ gUnknown_203AAB4: @ 203AAB4 gUnknown_203AAB8: @ 203AAB8 .space 0x4 - .align 2 - .include "src/player_pc.o" - .align 2 + .align 2 + .include "src/player_pc.o" + .align 2 .include "src/intro.o" .align 2 |