diff options
40 files changed, 574 insertions, 546 deletions
diff --git a/asm/cable_car.s b/asm/cable_car.s index 47afb097f..e4d989844 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -742,7 +742,7 @@ _081237E0: str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in - ldr r0, _08123870 @ =gUnknown_0300485C + ldr r0, _08123870 @ =gFieldCallback str r4, [r0] ldr r0, _08123874 @ =CB2_LoadMap bl SetMainCallback2 @@ -760,7 +760,7 @@ _08123860: .4byte 0x040000d4 _08123864: .4byte 0x85000400 _08123868: .4byte gUnknown_02039274 _0812386C: .4byte 0x81000800 -_08123870: .4byte gUnknown_0300485C +_08123870: .4byte gFieldCallback _08123874: .4byte CB2_LoadMap thumb_func_end sub_8123740 diff --git a/asm/choose_party.s b/asm/choose_party.s index 09f00ac77..f1a03cda3 100644 --- a/asm/choose_party.s +++ b/asm/choose_party.s @@ -2455,7 +2455,7 @@ sub_8123170: @ 8123170 ands r0, r1 cmp r0, 0 bne _08123194 - ldr r0, _081231A0 @ =gUnknown_0300485C + ldr r0, _081231A0 @ =gFieldCallback ldr r1, _081231A4 @ =sub_81231AC str r1, [r0] ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch @@ -2468,7 +2468,7 @@ _08123194: bx r0 .align 2, 0 _0812319C: .4byte gPaletteFade -_081231A0: .4byte gUnknown_0300485C +_081231A0: .4byte gFieldCallback _081231A4: .4byte sub_81231AC _081231A8: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8123170 diff --git a/asm/contest.s b/asm/contest.s index 1f92f6fad..00c4013a3 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5585,7 +5585,7 @@ sub_80ADFD8: @ 80ADFD8 bne _080ADFFC adds r0, r2, 0 bl DestroyTask - ldr r0, _080AE004 @ =gUnknown_0300485C + ldr r0, _080AE004 @ =gFieldCallback ldr r1, _080AE008 @ =sub_80AE010 str r1, [r0] ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch @@ -5595,7 +5595,7 @@ _080ADFFC: bx r0 .align 2, 0 _080AE000: .4byte gPaletteFade -_080AE004: .4byte gUnknown_0300485C +_080AE004: .4byte gFieldCallback _080AE008: .4byte sub_80AE010 _080AE00C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80ADFD8 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index 101f9e5c3..7365f4da6 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -351,7 +351,7 @@ Task_EggHatch: @ 8042CAC bne _08042CD0 ldr r0, _08042CDC @ =CB2_EggHatch_0 bl SetMainCallback2 - ldr r1, _08042CE0 @ =gUnknown_0300485C + ldr r1, _08042CE0 @ =gFieldCallback ldr r0, _08042CE4 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -363,7 +363,7 @@ _08042CD0: .align 2, 0 _08042CD8: .4byte gPaletteFade _08042CDC: .4byte CB2_EggHatch_0 -_08042CE0: .4byte gUnknown_0300485C +_08042CE0: .4byte gFieldCallback _08042CE4: .4byte sub_8080990 thumb_func_end Task_EggHatch diff --git a/asm/field_effect.s b/asm/field_effect.s index 2dfa491dc..a0a2c732f 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -1571,14 +1571,14 @@ sub_80865BC: @ 80865BC push {lr} ldr r0, _080865D0 @ =c2_exit_to_overworld_2_switch bl SetMainCallback2 - ldr r1, _080865D4 @ =gUnknown_0300485C + ldr r1, _080865D4 @ =gFieldCallback ldr r0, _080865D8 @ =mapldr_080842E8 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080865D0: .4byte c2_exit_to_overworld_2_switch -_080865D4: .4byte gUnknown_0300485C +_080865D4: .4byte gFieldCallback _080865D8: .4byte mapldr_080842E8 thumb_func_end sub_80865BC @@ -1591,14 +1591,14 @@ mapldr_080842E8: @ 80865DC bl CreateTask bl ScriptContext2_Enable bl FreezeMapObjects - ldr r1, _08086600 @ =gUnknown_0300485C + ldr r1, _08086600 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080865FC: .4byte task00_8084310 -_08086600: .4byte gUnknown_0300485C +_08086600: .4byte gFieldCallback thumb_func_end mapldr_080842E8 thumb_func_start task00_8084310 @@ -1642,7 +1642,7 @@ _08086640: bl warp_in ldr r0, _08086678 @ =CB2_LoadMap bl SetMainCallback2 - ldr r1, _0808667C @ =gUnknown_0300485C + ldr r1, _0808667C @ =gFieldCallback ldr r0, _08086680 @ =mapldr_08084390 str r0, [r1] adds r0, r6, 0 @@ -1656,7 +1656,7 @@ _0808666C: .4byte gTasks _08086670: .4byte gUnknown_0202FF84 _08086674: .4byte gLastFieldPokeMenuOpened _08086678: .4byte CB2_LoadMap -_0808667C: .4byte gUnknown_0300485C +_0808667C: .4byte gFieldCallback _08086680: .4byte mapldr_08084390 thumb_func_end task00_8084310 @@ -1694,7 +1694,7 @@ mapldr_08084390: @ 8086684 _080866C6: bl ScriptContext2_Enable bl FreezeMapObjects - ldr r1, _080866E8 @ =gUnknown_0300485C + ldr r1, _080866E8 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r4} @@ -1704,7 +1704,7 @@ _080866C6: _080866DC: .4byte c3_080843F8 _080866E0: .4byte gMapObjects _080866E4: .4byte gPlayerAvatar -_080866E8: .4byte gUnknown_0300485C +_080866E8: .4byte gFieldCallback thumb_func_end mapldr_08084390 thumb_func_start c3_080843F8 @@ -1762,14 +1762,14 @@ sub_8086748: @ 8086748 ldr r0, _0808676C @ =sub_8086774 movs r1, 0 bl CreateTask - ldr r1, _08086770 @ =gUnknown_0300485C + ldr r1, _08086770 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0808676C: .4byte sub_8086774 -_08086770: .4byte gUnknown_0300485C +_08086770: .4byte gFieldCallback thumb_func_end sub_8086748 thumb_func_start sub_8086774 @@ -2429,7 +2429,7 @@ sub_8086C40: @ 8086C40 bne _08086C7C bl sub_80B483C bl warp_in - ldr r1, _08086C84 @ =gUnknown_0300485C + ldr r1, _08086C84 @ =gFieldCallback ldr r0, _08086C88 @ =sub_8086C94 str r0, [r1] ldr r0, _08086C8C @ =CB2_LoadMap @@ -2444,7 +2444,7 @@ _08086C7C: bx r0 .align 2, 0 _08086C80: .4byte gPaletteFade -_08086C84: .4byte gUnknown_0300485C +_08086C84: .4byte gFieldCallback _08086C88: .4byte sub_8086C94 _08086C8C: .4byte CB2_LoadMap _08086C90: .4byte sub_8086A68 @@ -2459,14 +2459,14 @@ sub_8086C94: @ 8086C94 ldr r0, _08086CB4 @ =sub_8086CBC movs r1, 0 bl CreateTask - ldr r1, _08086CB8 @ =gUnknown_0300485C + ldr r1, _08086CB8 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08086CB4: .4byte sub_8086CBC -_08086CB8: .4byte gUnknown_0300485C +_08086CB8: .4byte gFieldCallback thumb_func_end sub_8086C94 thumb_func_start sub_8086CBC @@ -3447,7 +3447,7 @@ sub_80873F4: @ 80873F4 cmp r0, 0x1 bne _0808742C bl warp_in - ldr r1, _08087438 @ =gUnknown_0300485C + ldr r1, _08087438 @ =gFieldCallback ldr r0, _0808743C @ =mapldr_080851BC str r0, [r1] ldr r0, _08087440 @ =CB2_LoadMap @@ -3463,7 +3463,7 @@ _0808742C: bx r1 .align 2, 0 _08087434: .4byte gPaletteFade -_08087438: .4byte gUnknown_0300485C +_08087438: .4byte gFieldCallback _0808743C: .4byte mapldr_080851BC _08087440: .4byte CB2_LoadMap _08087444: .4byte sub_80871D0 @@ -3475,7 +3475,7 @@ mapldr_080851BC: @ 8087448 bl sub_8053E90 bl pal_fill_for_map_transition bl ScriptContext2_Enable - ldr r0, _08087468 @ =gUnknown_0300485C + ldr r0, _08087468 @ =gFieldCallback movs r1, 0 str r1, [r0] ldr r0, _0808746C @ =sub_8087470 @@ -3483,7 +3483,7 @@ mapldr_080851BC: @ 8087448 pop {r0} bx r0 .align 2, 0 -_08087468: .4byte gUnknown_0300485C +_08087468: .4byte gFieldCallback _0808746C: .4byte sub_8087470 thumb_func_end mapldr_080851BC @@ -3951,7 +3951,7 @@ sub_80877D4: @ 80877D4 cmp r0, 0x1 bne _0808780C bl warp_in - ldr r1, _08087818 @ =gUnknown_0300485C + ldr r1, _08087818 @ =gFieldCallback ldr r0, _0808781C @ =sub_8086748 str r0, [r1] ldr r0, _08087820 @ =CB2_LoadMap @@ -3967,7 +3967,7 @@ _0808780C: bx r1 .align 2, 0 _08087814: .4byte gPaletteFade -_08087818: .4byte gUnknown_0300485C +_08087818: .4byte gFieldCallback _0808781C: .4byte sub_8086748 _08087820: .4byte CB2_LoadMap _08087824: .4byte sub_808766C @@ -4159,7 +4159,7 @@ _08087966: bl FieldObjectSetDirection bl sub_8053678 bl warp_in - ldr r1, _080879C8 @ =gUnknown_0300485C + ldr r1, _080879C8 @ =gFieldCallback ldr r0, _080879CC @ =mapldr_080859D4 str r0, [r1] ldr r0, _080879D0 @ =CB2_LoadMap @@ -4175,7 +4175,7 @@ _080879B8: .4byte gUnknown_0839F380 _080879BC: .4byte gPlayerAvatar _080879C0: .4byte gMapObjects _080879C4: .4byte gPaletteFade -_080879C8: .4byte gUnknown_0300485C +_080879C8: .4byte gFieldCallback _080879CC: .4byte mapldr_080859D4 _080879D0: .4byte CB2_LoadMap _080879D4: .4byte sub_80878C4 @@ -4230,7 +4230,7 @@ mapldr_080859D4: @ 8087A28 bl pal_fill_for_map_transition bl ScriptContext2_Enable bl FreezeMapObjects - ldr r1, _08087A64 @ =gUnknown_0300485C + ldr r1, _08087A64 @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08087A68 @ =gMapObjects @@ -4250,7 +4250,7 @@ mapldr_080859D4: @ 8087A28 pop {r0} bx r0 .align 2, 0 -_08087A64: .4byte gUnknown_0300485C +_08087A64: .4byte gFieldCallback _08087A68: .4byte gMapObjects _08087A6C: .4byte gPlayerAvatar _08087A70: .4byte sub_8087A74 @@ -4664,7 +4664,7 @@ sub_8087D78: @ 8087D78 bl warp_in ldr r0, _08087DBC @ =CB2_LoadMap bl SetMainCallback2 - ldr r1, _08087DC0 @ =gUnknown_0300485C + ldr r1, _08087DC0 @ =gFieldCallback ldr r0, _08087DC4 @ =mapldr_08085D88 str r0, [r1] ldr r0, _08087DC8 @ =sub_8087BBC @@ -4678,7 +4678,7 @@ _08087DB4: .align 2, 0 _08087DB8: .4byte gPaletteFade _08087DBC: .4byte CB2_LoadMap -_08087DC0: .4byte gUnknown_0300485C +_08087DC0: .4byte gFieldCallback _08087DC4: .4byte mapldr_08085D88 _08087DC8: .4byte sub_8087BBC thumb_func_end sub_8087D78 @@ -4690,7 +4690,7 @@ mapldr_08085D88: @ 8087DCC bl pal_fill_for_map_transition bl ScriptContext2_Enable bl FreezeMapObjects - ldr r1, _08087E0C @ =gUnknown_0300485C + ldr r1, _08087E0C @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08087E10 @ =gMapObjects @@ -4711,7 +4711,7 @@ mapldr_08085D88: @ 8087DCC pop {r0} bx r0 .align 2, 0 -_08087E0C: .4byte gUnknown_0300485C +_08087E0C: .4byte gFieldCallback _08087E10: .4byte gMapObjects _08087E14: .4byte gPlayerAvatar _08087E18: .4byte sub_8087E1C diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 798285a45..e882e7030 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -617,7 +617,7 @@ sub_8080E88: @ 8080E88 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _08080EB4 @ =gUnknown_0300485C + ldr r0, _08080EB4 @ =gFieldCallback ldr r1, _08080EB8 @ =mapldr_default str r1, [r0] ldr r0, _08080EBC @ =task0A_fade_n_map_maybe @@ -626,7 +626,7 @@ sub_8080E88: @ 8080E88 pop {r0} bx r0 .align 2, 0 -_08080EB4: .4byte gUnknown_0300485C +_08080EB4: .4byte gFieldCallback _08080EB8: .4byte mapldr_default _08080EBC: .4byte task0A_fade_n_map_maybe thumb_func_end sub_8080E88 @@ -638,7 +638,7 @@ sp13E_warp_to_last_warp: @ 8080EC0 bl sub_8053FF8 bl fade_8080918 bl PlayRainSoundEffect - ldr r0, _08080EE4 @ =gUnknown_0300485C + ldr r0, _08080EE4 @ =gFieldCallback ldr r1, _08080EE8 @ =mapldr_default str r1, [r0] ldr r0, _08080EEC @ =task0A_fade_n_map_maybe @@ -647,7 +647,7 @@ sp13E_warp_to_last_warp: @ 8080EC0 pop {r0} bx r0 .align 2, 0 -_08080EE4: .4byte gUnknown_0300485C +_08080EE4: .4byte gFieldCallback _08080EE8: .4byte mapldr_default _08080EEC: .4byte task0A_fade_n_map_maybe thumb_func_end sp13E_warp_to_last_warp @@ -656,7 +656,7 @@ _08080EEC: .4byte task0A_fade_n_map_maybe sub_8080EF0: @ 8080EF0 push {lr} bl ScriptContext2_Enable - ldr r0, _08080F08 @ =gUnknown_0300485C + ldr r0, _08080F08 @ =gFieldCallback ldr r1, _08080F0C @ =mapldr_default str r1, [r0] ldr r0, _08080F10 @ =sub_808115C @@ -665,7 +665,7 @@ sub_8080EF0: @ 8080EF0 pop {r0} bx r0 .align 2, 0 -_08080F08: .4byte gUnknown_0300485C +_08080F08: .4byte gFieldCallback _08080F0C: .4byte mapldr_default _08080F10: .4byte sub_808115C thumb_func_end sub_8080EF0 @@ -674,13 +674,13 @@ _08080F10: .4byte sub_808115C sp13F_fall_to_last_warp: @ 8080F14 push {lr} bl sp13E_warp_to_last_warp - ldr r1, _08080F24 @ =gUnknown_0300485C + ldr r1, _08080F24 @ =gFieldCallback ldr r0, _08080F28 @ =sub_8086748 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08080F24: .4byte gUnknown_0300485C +_08080F24: .4byte gFieldCallback _08080F28: .4byte sub_8086748 thumb_func_end sp13F_fall_to_last_warp @@ -730,14 +730,14 @@ sub_8080F68: @ 8080F68 ldr r0, _08080F90 @ =task0A_fade_n_map_maybe movs r1, 0xA bl CreateTask - ldr r1, _08080F94 @ =gUnknown_0300485C + ldr r1, _08080F94 @ =gFieldCallback ldr r0, _08080F98 @ =sub_8080B78 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080F90: .4byte task0A_fade_n_map_maybe -_08080F94: .4byte gUnknown_0300485C +_08080F94: .4byte gFieldCallback _08080F98: .4byte sub_8080B78 thumb_func_end sub_8080F68 @@ -749,14 +749,14 @@ sub_8080F9C: @ 8080F9C ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe movs r1, 0xA bl CreateTask - ldr r1, _08080FBC @ =gUnknown_0300485C + ldr r1, _08080FBC @ =gFieldCallback ldr r0, _08080FC0 @ =sub_80C791C str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080FB8: .4byte task0A_fade_n_map_maybe -_08080FBC: .4byte gUnknown_0300485C +_08080FBC: .4byte gFieldCallback _08080FC0: .4byte sub_80C791C thumb_func_end sub_8080F9C @@ -1204,7 +1204,7 @@ sub_8081334: @ 8081334 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _08081360 @ =gUnknown_0300485C + ldr r0, _08081360 @ =gFieldCallback ldr r1, _08081364 @ =sub_8080B60 str r1, [r0] ldr r0, _08081368 @ =sub_80812C8 @@ -1213,7 +1213,7 @@ sub_8081334: @ 8081334 pop {r0} bx r0 .align 2, 0 -_08081360: .4byte gUnknown_0300485C +_08081360: .4byte gFieldCallback _08081364: .4byte sub_8080B60 _08081368: .4byte sub_80812C8 thumb_func_end sub_8081334 diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s index 25ede5738..33182fc6a 100644 --- a/asm/fldeff_80C5CD4.s +++ b/asm/fldeff_80C5CD4.s @@ -814,7 +814,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4 cmp r0, 0x1 bne _080C6330 bl sub_80C6264 - ldr r1, _080C6320 @ =gUnknown_0300485C + ldr r1, _080C6320 @ =gFieldCallback ldr r0, _080C6324 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6328 @ =gUnknown_03005CE4 @@ -823,7 +823,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4 .align 2, 0 _080C6318: .4byte gScriptResult _080C631C: .4byte gUnknown_0203923C -_080C6320: .4byte gUnknown_0300485C +_080C6320: .4byte gFieldCallback _080C6324: .4byte sub_808AB90 _080C6328: .4byte gUnknown_03005CE4 _080C632C: .4byte sub_80C639C @@ -835,14 +835,14 @@ _080C6330: cmp r0, 0x1 bne _080C6360 bl sub_80C6264 - ldr r1, _080C6350 @ =gUnknown_0300485C + ldr r1, _080C6350 @ =gFieldCallback ldr r0, _080C6354 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6358 @ =gUnknown_03005CE4 ldr r0, _080C635C @ =sub_80C64A8 b _080C6380 .align 2, 0 -_080C6350: .4byte gUnknown_0300485C +_080C6350: .4byte gFieldCallback _080C6354: .4byte sub_808AB90 _080C6358: .4byte gUnknown_03005CE4 _080C635C: .4byte sub_80C64A8 @@ -858,7 +858,7 @@ _080C636E: b _080C6384 _080C6372: bl sub_80C6264 - ldr r1, _080C638C @ =gUnknown_0300485C + ldr r1, _080C638C @ =gFieldCallback ldr r0, _080C6390 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6394 @ =gUnknown_03005CE4 @@ -871,7 +871,7 @@ _080C6384: pop {r1} bx r1 .align 2, 0 -_080C638C: .4byte gUnknown_0300485C +_080C638C: .4byte gFieldCallback _080C6390: .4byte sub_808AB90 _080C6394: .4byte gUnknown_03005CE4 _080C6398: .4byte sub_80C660C diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index c14e9057d..dcd485d9f 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -18,7 +18,7 @@ SetUpFieldMove_Flash: @ 810CBB4 lsls r0, 24 cmp r0, 0 bne _0810CBF4 - ldr r1, _0810CBE4 @ =gUnknown_0300485C + ldr r1, _0810CBE4 @ =gFieldCallback ldr r0, _0810CBE8 @ =sub_808AB90 str r0, [r1] ldr r1, _0810CBEC @ =gUnknown_03005CE4 @@ -29,7 +29,7 @@ SetUpFieldMove_Flash: @ 810CBB4 .align 2, 0 _0810CBDC: .4byte gMapHeader _0810CBE0: .4byte 0x00000828 -_0810CBE4: .4byte gUnknown_0300485C +_0810CBE4: .4byte gFieldCallback _0810CBE8: .4byte sub_808AB90 _0810CBEC: .4byte gUnknown_03005CE4 _0810CBF0: .4byte sub_810CBFC diff --git a/asm/item_menu.s b/asm/item_menu.s index bb6e59f54..b76f24ccf 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -812,13 +812,13 @@ sub_80A37C0: @ 80A37C0 ldr r0, _080A37F4 @ =sub_80A50C8 str r0, [r1] movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x2 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x3 - bl sub_80F98DC + bl StartVerticalScrollIndicators pop {r0} bx r0 .align 2, 0 @@ -3784,13 +3784,13 @@ sub_80A4E8C: @ 80A4E8C movs r1, 0x1 bl sub_80F979C movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x2 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x3 - bl sub_80F996C + bl PauseVerticalScrollIndicator ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000 lsls r4, 24 asrs r4, 24 @@ -5786,7 +5786,7 @@ sub_80A5EA0: @ 80A5EA0 bl sub_80A5DA0 ldr r1, _080A5EF4 @ =gUnknown_083C16F4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice b _080A5F0C .align 2, 0 _080A5EE8: .4byte gMain @@ -6302,7 +6302,7 @@ sub_80A631C: @ 80A631C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080A6344 @ =gUnknown_0300485C + ldr r2, _080A6344 @ =gFieldCallback ldr r1, _080A6348 @ =sub_80B3050 str r1, [r2] ldr r2, _080A634C @ =gTasks @@ -6318,7 +6318,7 @@ sub_80A631C: @ 80A631C pop {r0} bx r0 .align 2, 0 -_080A6344: .4byte gUnknown_0300485C +_080A6344: .4byte gFieldCallback _080A6348: .4byte sub_80B3050 _080A634C: .4byte gTasks _080A6350: .4byte c2_exit_to_overworld_2_switch @@ -6695,7 +6695,7 @@ sub_80A6650: @ 80A6650 bl sub_80A5D78 ldr r1, _080A666C @ =gUnknown_083C16FC adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -7202,8 +7202,8 @@ sub_80A6A4C: @ 80A6A4C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080A6A74 @ =gUnknown_0300485C - ldr r1, _080A6A78 @ =sub_813A0F8 + ldr r2, _080A6A74 @ =gFieldCallback + ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit str r1, [r2] ldr r2, _080A6A7C @ =gTasks lsls r1, r0, 2 @@ -7218,8 +7218,8 @@ sub_80A6A4C: @ 80A6A4C pop {r0} bx r0 .align 2, 0 -_080A6A74: .4byte gUnknown_0300485C -_080A6A78: .4byte sub_813A0F8 +_080A6A74: .4byte gFieldCallback +_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit _080A6A7C: .4byte gTasks _080A6A80: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80A6A4C diff --git a/asm/learn_move.s b/asm/learn_move.s index 84d244fe8..fdf650a08 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -51,7 +51,7 @@ sub_813269C: @ 813269C bne _081326C0 ldr r0, _081326CC @ =sub_81326D8 bl SetMainCallback2 - ldr r1, _081326D0 @ =gUnknown_0300485C + ldr r1, _081326D0 @ =gFieldCallback ldr r0, _081326D4 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -63,7 +63,7 @@ _081326C0: .align 2, 0 _081326C8: .4byte gPaletteFade _081326CC: .4byte sub_81326D8 -_081326D0: .4byte gUnknown_0300485C +_081326D0: .4byte gFieldCallback _081326D4: .4byte sub_8080990 thumb_func_end sub_813269C diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index f10070110..0f5caf3da 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -161,8 +161,8 @@ _080F9140: _080F9148: .4byte gUnknown_020388C4 thumb_func_end Task_CallYesOrNoCallback - thumb_func_start sub_80F914C -sub_80F914C: @ 80F914C + thumb_func_start DoYesNoFuncWithChoice +DoYesNoFuncWithChoice: @ 80F914C lsls r0, 24 lsrs r0, 24 ldr r3, _080F916C @ =gUnknown_020388C4 @@ -182,7 +182,7 @@ sub_80F914C: @ 80F914C _080F916C: .4byte gUnknown_020388C4 _080F9170: .4byte gTasks _080F9174: .4byte Task_CallYesOrNoCallback - thumb_func_end sub_80F914C + thumb_func_end DoYesNoFuncWithChoice thumb_func_start brm_trade_1 brm_trade_1: @ 80F9178 @@ -1207,8 +1207,8 @@ _080F98D4: .4byte gSprites _080F98D8: .4byte SpriteCallbackDummy thumb_func_end sub_80F98A4 - thumb_func_start sub_80F98DC -sub_80F98DC: @ 80F98DC + thumb_func_start StartVerticalScrollIndicators +StartVerticalScrollIndicators: @ 80F98DC push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -1235,7 +1235,7 @@ _080F9902: _080F9908: .4byte gUnknown_020388C0 _080F990C: .4byte gSprites _080F9910: .4byte sub_80F9834 - thumb_func_end sub_80F98DC + thumb_func_end StartVerticalScrollIndicators thumb_func_start sub_80F9914 sub_80F9914: @ 80F9914 @@ -1284,8 +1284,8 @@ _080F9964: .4byte gUnknown_020388C0 _080F9968: .4byte gSprites thumb_func_end sub_80F9914 - thumb_func_start sub_80F996C -sub_80F996C: @ 80F996C + thumb_func_start PauseVerticalScrollIndicator +PauseVerticalScrollIndicator: @ 80F996C push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -1297,7 +1297,7 @@ sub_80F996C: @ 80F996C pop {r4} pop {r0} bx r0 - thumb_func_end sub_80F996C + thumb_func_end PauseVerticalScrollIndicator thumb_func_start sub_80F9988 sub_80F9988: @ 80F9988 diff --git a/asm/pokeblock.s b/asm/pokeblock.s index 669811f53..74da210b0 100644 --- a/asm/pokeblock.s +++ b/asm/pokeblock.s @@ -1539,7 +1539,7 @@ sub_810C2C8: @ 810C2C8 ldrb r0, [r4] cmp r0, 0x3 bne _0810C2E8 - ldr r1, _0810C310 @ =gUnknown_0300485C + ldr r1, _0810C310 @ =gFieldCallback ldr r0, _0810C314 @ =sub_8080990 str r0, [r1] _0810C2E8: @@ -1559,7 +1559,7 @@ _0810C300: .align 2, 0 _0810C308: .4byte gPaletteFade _0810C30C: .4byte gUnknown_02039244 -_0810C310: .4byte gUnknown_0300485C +_0810C310: .4byte gFieldCallback _0810C314: .4byte sub_8080990 _0810C318: .4byte gUnknown_083F7EA8 thumb_func_end sub_810C2C8 @@ -1912,7 +1912,7 @@ sub_810C5EC: @ 810C5EC bl DisplayYesNoMenu ldr r1, _0810C60C @ =gUnknown_083F7F24 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -1965,9 +1965,9 @@ sub_810C668: @ 810C668 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators ldr r2, _0810C6CC @ =gUnknown_02039248 ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x3] @@ -2075,9 +2075,9 @@ sub_810C748: @ 810C748 lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators bl HandleDestroyMenuCursors movs r0, 0x7 movs r1, 0x4 diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s index 110ccb6e4..3a1552f70 100644 --- a/asm/pokemon_menu.s +++ b/asm/pokemon_menu.s @@ -2215,7 +2215,7 @@ SetUpFieldMove_Surf: @ 808AC48 lsrs r0, 24 cmp r0, 0x1 bne _0808AC84 - ldr r1, _0808AC74 @ =gUnknown_0300485C + ldr r1, _0808AC74 @ =gFieldCallback ldr r0, _0808AC78 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AC7C @ =gUnknown_03005CE4 @@ -2224,7 +2224,7 @@ SetUpFieldMove_Surf: @ 808AC48 movs r0, 0x1 b _0808AC86 .align 2, 0 -_0808AC74: .4byte gUnknown_0300485C +_0808AC74: .4byte gFieldCallback _0808AC78: .4byte sub_808AB90 _0808AC7C: .4byte gUnknown_03005CE4 _0808AC80: .4byte sub_808AC2C @@ -2258,14 +2258,14 @@ SetUpFieldMove_Fly: @ 808ACA8 lsls r0, 24 cmp r0, 0 beq _0808ACD0 - ldr r1, _0808ACC0 @ =gUnknown_0300485C + ldr r1, _0808ACC0 @ =gFieldCallback ldr r0, _0808ACC4 @ =sub_808AB90 str r0, [r1] ldr r1, _0808ACC8 @ =gUnknown_03005CE4 ldr r0, _0808ACCC @ =DoBrailleFlyEffect b _0808ACF2 .align 2, 0 -_0808ACC0: .4byte gUnknown_0300485C +_0808ACC0: .4byte gFieldCallback _0808ACC4: .4byte sub_808AB90 _0808ACC8: .4byte gUnknown_03005CE4 _0808ACCC: .4byte DoBrailleFlyEffect @@ -2282,7 +2282,7 @@ _0808ACD0: .align 2, 0 _0808ACE4: .4byte gMapHeader _0808ACE8: - ldr r1, _0808ACFC @ =gUnknown_0300485C + ldr r1, _0808ACFC @ =gFieldCallback ldr r0, _0808AD00 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AD04 @ =gUnknown_03005CE4 @@ -2294,7 +2294,7 @@ _0808ACF6: pop {r1} bx r1 .align 2, 0 -_0808ACFC: .4byte gUnknown_0300485C +_0808ACFC: .4byte gFieldCallback _0808AD00: .4byte sub_808AB90 _0808AD04: .4byte gUnknown_03005CE4 _0808AD08: .4byte sub_808AC8C @@ -2411,7 +2411,7 @@ SetUpFieldMove_Dive: @ 808ADC8 .align 2, 0 _0808ADE0: .4byte gUnknown_0202FF84 _0808ADE4: - ldr r1, _0808ADF8 @ =gUnknown_0300485C + ldr r1, _0808ADF8 @ =gFieldCallback ldr r0, _0808ADFC @ =sub_808AB90 str r0, [r1] ldr r1, _0808AE00 @ =gUnknown_03005CE4 @@ -2422,7 +2422,7 @@ _0808ADF2: pop {r1} bx r1 .align 2, 0 -_0808ADF8: .4byte gUnknown_0300485C +_0808ADF8: .4byte gFieldCallback _0808ADFC: .4byte sub_808AB90 _0808AE00: .4byte gUnknown_03005CE4 _0808AE04: .4byte sub_808ADAC @@ -2471,7 +2471,7 @@ SetUpFieldMove_Waterfall: @ 808AE24 lsrs r0, 24 cmp r0, 0x1 bne _0808AE80 - ldr r1, _0808AE70 @ =gUnknown_0300485C + ldr r1, _0808AE70 @ =gFieldCallback ldr r0, _0808AE74 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AE78 @ =gUnknown_03005CE4 @@ -2480,7 +2480,7 @@ SetUpFieldMove_Waterfall: @ 808AE24 movs r0, 0x1 b _0808AE82 .align 2, 0 -_0808AE70: .4byte gUnknown_0300485C +_0808AE70: .4byte gFieldCallback _0808AE74: .4byte sub_808AB90 _0808AE78: .4byte gUnknown_03005CE4 _0808AE7C: .4byte sub_808AE08 @@ -2997,7 +2997,7 @@ sub_808B288: @ 808B288 ands r0, r1 cmp r0, 0 bne _0808B2A6 - ldr r0, _0808B2B0 @ =sub_813B6F8 + ldr r0, _0808B2B0 @ =Mailbox_ReturnToMailListAfterDeposit bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -3007,7 +3007,7 @@ _0808B2A6: bx r0 .align 2, 0 _0808B2AC: .4byte gPaletteFade -_0808B2B0: .4byte sub_813B6F8 +_0808B2B0: .4byte Mailbox_ReturnToMailListAfterDeposit thumb_func_end sub_808B288 thumb_func_start sub_808B2B4 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index b3ef00ecf..db16c2788 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1171,7 +1171,7 @@ sub_80961A8: @ 80961A8 ldr r0, [r0] ldrb r0, [r0, 0x5] strb r0, [r1] - ldr r1, _080961CC @ =gUnknown_0300485C + ldr r1, _080961CC @ =gFieldCallback ldr r0, _080961D0 @ =sub_8096130 str r0, [r1] ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch @@ -1181,7 +1181,7 @@ sub_80961A8: @ 80961A8 .align 2, 0 _080961C4: .4byte gUnknown_02038474 _080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gUnknown_0300485C +_080961CC: .4byte gFieldCallback _080961D0: .4byte sub_8096130 _080961D4: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80961A8 diff --git a/asm/roulette.s b/asm/roulette.s index 6382ecf0b..fcfedbd80 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -733,7 +733,7 @@ sub_8115734: @ 8115734 bl MenuPrint ldr r1, _08115778 @ =gUnknown_083F8EBC adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -3245,7 +3245,7 @@ sub_8116B40: @ 8116B40 strh r4, [r0] adds r0, 0x2 strh r4, [r0] - ldr r1, _08116BB4 @ =gUnknown_0300485C + ldr r1, _08116BB4 @ =gFieldCallback ldr r0, _08116BB8 @ =sub_8080990 str r0, [r1] ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch @@ -3261,7 +3261,7 @@ _08116BA4: .4byte 0x02019000 _08116BA8: .4byte gSpriteCoordOffsetX _08116BAC: .4byte gSpriteCoordOffsetY _08116BB0: .4byte REG_BLDCNT -_08116BB4: .4byte gUnknown_0300485C +_08116BB4: .4byte gFieldCallback _08116BB8: .4byte sub_8080990 _08116BBC: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8116B40 @@ -4483,7 +4483,7 @@ sub_81174F8: @ 81174F8 bl sub_814AAF8 ldr r1, _08117524 @ =gUnknown_083F8EB4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 diff --git a/asm/secret_base.s b/asm/secret_base.s index 020953dbe..9fd741aa0 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -671,9 +671,9 @@ sub_80BC980: @ 80BC980 lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 movs r1, 0 movs r2, 0xC @@ -840,7 +840,7 @@ sub_80BCAEC: @ 80BCAEC bl DisplayYesNoMenu ldr r1, _080BCB0C @ =gUnknown_083D13E4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -994,9 +994,9 @@ sub_80BCBF8: @ 80BCBF8 movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators subs r5, 0x8 adds r4, r5 ldr r0, _080BCC50 @ =sub_80BC824 diff --git a/asm/shop.s b/asm/shop.s index ba4c53885..a341e90a1 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1222,7 +1222,7 @@ sub_80B3D38: @ 80B3D38 bl sub_80A3FA0 ldr r1, _080B3D78 @ =gUnknown_083CC708 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice add sp, 0x8 pop {r4} pop {r0} @@ -1767,9 +1767,9 @@ _080B41B8: b _080B4350 _080B41CE: movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 movs r1, 0x1 bl sub_80F979C @@ -1978,9 +1978,9 @@ sub_80B4378: @ 80B4378 bl sub_80B3764 bl sub_80B37EC movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators bl sub_80B32A4 ldr r1, _080B43E8 @ =gTasks lsls r0, r4, 2 @@ -2006,7 +2006,7 @@ sub_80B43F0: @ 80B43F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _080B4428 @ =gUnknown_0300485C + ldr r1, _080B4428 @ =gFieldCallback ldr r0, _080B442C @ =sub_80B3050 str r0, [r1] movs r0, 0x1 @@ -2028,7 +2028,7 @@ sub_80B43F0: @ 80B43F0 pop {r0} bx r0 .align 2, 0 -_080B4428: .4byte gUnknown_0300485C +_080B4428: .4byte gFieldCallback _080B442C: .4byte sub_80B3050 _080B4430: .4byte gTasks _080B4434: .4byte Task_ExitBuyMenu diff --git a/asm/trade.s b/asm/trade.s index a26afa254..e4d45ec73 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -12051,7 +12051,7 @@ sub_804E1A0: @ 804E1A0 bne _0804E1C4 ldr r0, _0804E1D0 @ =sub_804B790 bl SetMainCallback2 - ldr r1, _0804E1D4 @ =gUnknown_0300485C + ldr r1, _0804E1D4 @ =gFieldCallback ldr r0, _0804E1D8 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -12063,7 +12063,7 @@ _0804E1C4: .align 2, 0 _0804E1CC: .4byte gPaletteFade _0804E1D0: .4byte sub_804B790 -_0804E1D4: .4byte gUnknown_0300485C +_0804E1D4: .4byte gFieldCallback _0804E1D8: .4byte sub_8080990 thumb_func_end sub_804E1A0 diff --git a/data/player_pc.s b/data/player_pc.s deleted file mode 100644 index 10f802bbb..000000000 --- a/data/player_pc.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gPCText_OptionDescList:: @ 8406288 - .4byte PCText_TakeOutItems - .4byte PCText_StoreItems - .4byte PCText_ThrowAwayItems - .4byte gMenuText_GoBackToPrev - - .align 2 -gPCText_PlayerPCOptionsText:: @ 8406298 - .4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage - .4byte gPCText_Mailbox, PlayerPC_Mailbox - .4byte SecretBaseText_Decoration, PlayerPC_Decoration - .4byte SecretBaseText_TurnOff, PlayerPC_TurnOff - -gBedroomPC_OptionOrder:: @ 84062B8 - .byte 0, 1, 2, 3 - -gPlayerPC_OptionOrder:: @ 84062BC - .byte 0, 1, 3 - - .align 2 -gPCText_ItemPCOptionsText:: @ 84062C0 - .4byte PCText_WithdrawItem, ItemStorage_Withdraw - .4byte PCText_DepositItem, ItemStorage_Deposit - .4byte PCText_TossItem, ItemStorage_Toss - .4byte gUnknownText_Exit, ItemStorage_Exit - - .align 2 -gUnknown_084062E0:: @ 84062E0 - .4byte ItemStorage_ResumeInputFromYesToss - .4byte ItemStorage_ResumeInputFromNoToss - - .align 2 -gUnknown_084062E8:: @ 84062E8 - .4byte sub_813B578 - .4byte sub_813B610 - - .align 2 -gNewGamePCItems:: @ 84062F0 - .2byte ITEM_POTION, 1 - .2byte ITEM_NONE, 0 - - .align 2 -gUnknown_084062F8:: @ 84062F8 - .4byte OtherText_Read, Mailbox_Read - .4byte gOtherText_MoveToBag, Mailbox_MoveToBag - .4byte OtherText_Give, Mailbox_Give - .4byte gOtherText_CancelNoTerminator, Mailbox_Cancel - -gUnknown_08406318:: @ 8406318 - .string "{STR_VAR_1}{CLEAR_TO 80}$" - -gUnknown_0840631E:: @ 840631E - .string "{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}$" - -gUnknown_08406327:: @ 8406327 - .string "{STR_VAR_1}$" - -gUnknown_0840632A:: @ 840632A - .string "{COLOR RED}{STR_VAR_1}$" - -gUnknown_08406330:: @ 8406330 - .string "{CLEAR_TO 32}$" - - .align 1 -gUnknown_08406334:: @ 8406334 - .2byte 0x5294 - .2byte 0x6B5A - .2byte 0x7FFF - -gUnknown_0840633A:: @ 840633A - .string "{COLOR RED}{STR_VAR_1}$" diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc index 4f121118a..0c6ec79f7 100644 --- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc +++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc @@ -67,7 +67,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_152837:: @ 8152837 releaseall end -gUnknown_08152850:: @ 8152850 +gBrendanHouse_TurnPCOff:: @ 8152850 setvar 0x8004, 1 playsfx SE_PC_OFF special 215 diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc index 7871940ca..1aca3f86e 100644 --- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc +++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc @@ -215,7 +215,7 @@ LittlerootTown_MaysHouse_2F_EventScript_152C5C:: @ 8152C5C releaseall end -gUnknown_08152C75:: @ 8152C75 +gMayHouse_TurnPCOff:: @ 8152C75 setvar 0x8004, 2 playsfx SE_PC_OFF special 215 diff --git a/include/decoration.h b/include/decoration.h index 01a00ee91..2e83a9414 100755 --- a/include/decoration.h +++ b/include/decoration.h @@ -262,7 +262,7 @@ extern u8 gUnknown_020391A8; extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; diff --git a/include/menu_helpers.h b/include/menu_helpers.h index f55a90615..74248e85a 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -7,6 +7,6 @@ struct YesNoFuncTable void (*noFunc)(u8); }; -void sub_80F914C(u8, const struct YesNoFuncTable *); +void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); #endif // GUARD_MENU_HELPERS_H diff --git a/include/player_pc.h b/include/player_pc.h new file mode 100755 index 000000000..5f53d80ac --- /dev/null +++ b/include/player_pc.h @@ -0,0 +1,87 @@ +#ifndef GUARD_PLAYERPC_H +#define GUARD_PLAYERPC_H + +// general task defines +#define TASK gTasks[taskId] +#define FUNC func + +// local task defines +#define PAGE_INDEX data[0] +#define ITEMS_ABOVE_TOP data[1] +#define NUM_ITEMS data[2] +#define NUM_QUANTITY_ROLLER data[3] +#define NUM_PAGE_ITEMS data[4] +// not used +#define CURRENT_ITEM_STORAGE_MENU data[6] +// not used +#define SWAP_ITEM_INDEX data[8] +#define SWITCH_MODE_ACTIVE data[9] + +#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) + +// defined and used in the above macro +enum +{ + ITEM_ID, + QUANTITY +}; + +// player PC menu options +enum +{ + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_DECORATION, + PLAYERPC_MENU_TURNOFF +}; + +// item storage menus +enum +{ + ITEMPC_MENU_WITHDRAW, + ITEMPC_MENU_DEPOSIT, + ITEMPC_MENU_TOSS, + ITEMPC_MENU_EXIT +}; + +// mailbox mail options +enum +{ + MAILBOX_READ, + MAILBOX_MOVE_TO_BAG, + MAILBOX_GIVE, + MAILBOX_CANCEL, +}; + +// special item description handlers +enum +{ + ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7, + ITEMPC_OKAY_TO_THROW_AWAY, + ITEMPC_TOO_IMPORTANT, + ITEMPC_NO_MORE_ROOM, + ITEMPC_THREW_AWAY_ITEM, + ITEMPC_HOW_MANY_TO_TOSS, + ITEMPC_WITHDREW_THING, + ITEMPC_HOW_MANY_TO_WITHDRAW, + ITEMPC_GO_BACK_TO_PREV +}; + +struct MailboxStruct +{ + /*0x00*/ u8 cursorPos; + /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page. + /*0x02*/ u8 itemsAbove; // number of items above the top item on the page. + /*0x03*/ u8 count; // total number of items in mailbox storage. +}; + +extern struct MailboxStruct gMailboxInfo; + +void ReshowPlayerPC(u8 var); +void NewGameInitPCItems(void); +void BedroomPC(void); +void PlayerPC(void); +void ItemStorage_ReturnToMenuAfterDeposit(void); +void Mailbox_ReturnToMailListAfterDeposit(void); + +#endif diff --git a/ld_script.txt b/ld_script.txt index a2555016c..d1da16bfa 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -462,7 +462,7 @@ SECTIONS { data/battle_tower.o(.rodata); data/use_pokeblock.o(.rodata); data/battle_anim_8137220.o(.rodata); - data/player_pc.o(.rodata); + src/player_pc.o(.rodata); src/intro.o(.rodata); data/battle_anim_813F0F4.o(.rodata); data/hall_of_fame.o(.rodata); diff --git a/src/battle_setup.c b/src/battle_setup.c index a70157a43..cb99bf5f5 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -31,7 +31,7 @@ extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern struct Pokemon gEnemyParty[]; extern struct Pokemon gPlayerParty[]; @@ -580,7 +580,7 @@ void HandleWildBattleEnd(void) else { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; } } diff --git a/src/decoration.c b/src/decoration.c index d33931206..6974f7c92 100755 --- a/src/decoration.c +++ b/src/decoration.c @@ -3168,7 +3168,7 @@ void sub_8100038(u8 taskId) void sub_81000A0(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC95C); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC95C); } void sub_81000C4(u8 taskId) @@ -3226,7 +3226,7 @@ void sub_8100174(u8 taskId) void sub_8100248(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC964); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC964); } void sub_810026C(u8 taskId) @@ -3257,7 +3257,7 @@ void c1_overworld_prev_quest(u8 taskId) case 1: sub_81016F4(); FreeSpritePaletteByTag(0xbb8); - gUnknown_0300485C = &sub_8100364; + gFieldCallback = &sub_8100364; SetMainCallback2(c2_exit_to_overworld_2_switch); DestroyTask(taskId); break; @@ -4047,7 +4047,7 @@ void sub_8101460(u8 taskId) void sub_8101518(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC9CC); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9CC); } void sub_810153C(u8 taskId) @@ -4060,7 +4060,7 @@ void sub_810153C(u8 taskId) void sub_810156C(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC9D4); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9D4); } void sub_8101590(u8 taskId) @@ -4089,7 +4089,7 @@ void sub_81015E0(u8 taskId) break; case 1: sub_81016F4(); - gUnknown_0300485C = sub_8101678; + gFieldCallback = sub_8101678; SetMainCallback2(c2_exit_to_overworld_2_switch); DestroyTask(taskId); break; @@ -4184,7 +4184,7 @@ void sub_81017A0(u8 taskId) void sub_8101824(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083ECAA0); + DoYesNoFuncWithChoice(taskId, &gUnknown_083ECAA0); } void sub_8101848(u8 taskId) diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 8fde74852..4a2313499 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -16,7 +16,7 @@ extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern struct SpriteTemplate gSpriteTemplate_CutGrass; @@ -48,7 +48,7 @@ bool8 SetUpFieldMove_Cut(void) if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree? { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A2634; return TRUE; } @@ -67,7 +67,7 @@ bool8 SetUpFieldMove_Cut(void) if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A25E8; return TRUE; } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index f9db40a67..a831676b8 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -16,7 +16,7 @@ extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 UseStrengthScript[]; @@ -26,7 +26,7 @@ bool8 SetUpFieldMove_Strength(void) if (ShouldDoBrailleStrengthEffect()) { gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA38; } else @@ -34,7 +34,7 @@ bool8 SetUpFieldMove_Strength(void) if (npc_before_player_of_type(87) != TRUE) return 0; gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA18; } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 4e8214b07..3a9281ac2 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -18,14 +18,14 @@ static void sub_812C118(u8); extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 SweetScentNothingHereScript[]; bool8 SetUpFieldMove_SweetScent(void) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_812BFD4; return TRUE; } diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 0e6933649..952193ff0 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -9,7 +9,7 @@ extern void sub_8087BA8(void); extern u32 gUnknown_0202FF84[]; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); @@ -20,7 +20,7 @@ bool8 SetUpFieldMove_Teleport(void) { if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = hm_teleport_run_dp02scr; return TRUE; } diff --git a/src/hof_pc.c b/src/hof_pc.c index fcbc3f7e1..ca0c2f370 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -7,7 +7,7 @@ #include "task.h" extern void sub_81428CC(void); -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); static void ReshowPCMenuAfterHallOfFamePC(void); static void Task_WaitForPaletteFade(u8); @@ -21,7 +21,7 @@ void AccessHallOfFamePC(void) void ReturnFromHallOfFamePC(void) { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = ReshowPCMenuAfterHallOfFamePC; + gFieldCallback = ReshowPCMenuAfterHallOfFamePC; } static void ReshowPCMenuAfterHallOfFamePC(void) diff --git a/src/item_use.c b/src/item_use.c index d1c1dbf2a..c04cf9d7a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -28,7 +28,7 @@ #include "vars.h" extern void (* gUnknown_03005D00)(u8); -extern void (* gUnknown_0300485C)(void); +extern void (* gFieldCallback)(void); extern void (* gUnknown_03004AE4)(u8); extern u8 gUnknown_02038561; @@ -150,7 +150,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId) { if (gTasks[taskId].data[2] != 1) { - gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette; + gFieldCallback = (void *)ExecuteItemUseFromBlackPalette; ItemMenu_ConfirmNormalFade(taskId); } else @@ -772,7 +772,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else { - gUnknown_0300485C = (void *)sub_8080E28; + gFieldCallback = (void *)sub_8080E28; sub_810BA7C(1); ItemMenu_ConfirmComplexFade(taskId); } @@ -825,7 +825,7 @@ void sub_80C9C7C(u8 taskId) if(IsPlayerFacingPlantedBerryTree() == TRUE) { gUnknown_03005D00 = sub_80C9D00; - gUnknown_0300485C = ExecuteItemUseFromBlackPalette; + gFieldCallback = ExecuteItemUseFromBlackPalette; gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; gTasks[taskId].func = HandleItemMenuPaletteFade; @@ -944,7 +944,7 @@ void sub_80C9F80(u8 var) { DisplayYesNoMenu(7, 7, 1); sub_80A3FA0(gBGTilemapBuffers[1], 8, 8, 5, 4, 1); - sub_80F914C(var, &gUnknown_083D61F4); + DoYesNoFuncWithChoice(var, &gUnknown_083D61F4); } void sub_80C9FC0(u8 var) diff --git a/src/player_pc.c b/src/player_pc.c index f39d812b6..26dc8ccdc 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -16,152 +16,169 @@ #include "name_string_util.h" #include "mail.h" #include "rom4.h" +#include "player_pc.h" -// task defines -#define PAGE_INDEX data[0] -#define ITEMS_ABOVE_TOP data[1] -#define NUM_ITEMS data[2] -#define NUM_QUANTITY_ROLLER data[3] -#define NUM_PAGE_ITEMS data[4] -// not used -#define CURRENT_ITEM_STORAGE_MENU data[6] -// not used -#define SWAP_ITEM_INDEX data[8] -#define SWITCH_MODE_ACTIVE data[9] - -#define NEW_GAME_PC_ITEMS(i, type) ((u16)(gNewGamePCItems + type)[i * 2]) - -// defined and used in the above macro -enum -{ - ITEM_ID, - QUANTITY +extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); +extern void DoPlayerPCDecoration(u8); +extern void BuyMenuFreeMemory(void); +extern void DestroyVerticalScrollIndicator(u8); +extern void PauseVerticalScrollIndicator(u8); +extern void StartVerticalScrollIndicators(int); +extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args +extern void LoadScrollIndicatorPalette(void); +extern void ClearMailStruct(struct MailStruct *); +extern u8 sub_807D770(void); +extern void sub_808B020(void); +extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); +extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); +extern void sub_80A6A30(void); +extern void sub_80F944C(void); + +extern u8 *gPcItemMenuOptionOrder; +extern u8 gPcItemMenuOptionsNum; + +extern u8 gUnknown_02038561; + +// event scripts +extern u8 gBrendanHouse_TurnPCOff[]; +extern u8 gMayHouse_TurnPCOff[]; + +extern void (*gFieldCallback)(void); + +static void InitPlayerPCMenu(u8 taskId); +static void PlayerPCProcessMenuInput(u8 taskId); +static void InitItemStorageMenu(u8); +static void ItemStorageMenuPrint(const u8 *); +static void ItemStorageMenuProcessInput(u8); +static void ItemStorage_ProcessInput(u8); +static void ItemStorage_SetItemAndMailCount(u8); +static void ItemStorage_DoItemAction(u8); +static void ItemStorage_GoBackToPlayerPCMenu(u8); +static void ItemStorage_HandleQuantityRolling(u8); +static void ItemStorage_DoItemWithdraw(u8); +static void ItemStorage_DoItemToss(u8); +static void ItemStorage_HandleRemoveItem(u8); +static void ItemStorage_WaitPressHandleResumeProcessInput(u8); +static void ItemStorage_HandleResumeProcessInput(u8); +static void ItemStorage_DoItemSwap(u8, bool8); +static void ItemStorage_DrawItemList(u8); +static void ItemStorage_PrintItemPcResponse(u16); +static void ItemStorage_DrawBothListAndDescription(u8); +static void ItemStorage_GoBackToItemPCMenu(u8, u8); +static void ItemStorage_LoadPalette(void); +static u8 GetMailboxMailCount(void); +static void Mailbox_UpdateMailList(void); +static void Mailbox_DrawMailboxMenu(u8); +static void Mailbox_ProcessInput(u8); +static void Mailbox_CloseScrollIndicators(void); +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8); +static void Mailbox_TurnOff(u8); +static void Mailbox_PrintMailOptions(u8); +static void Mailbox_MailOptionsProcessInput(u8); +static void Mailbox_FadeAndReadMail(u8); +static void Mailbox_ReturnToFieldFromReadMail(void); +static void Mailbox_DrawYesNoBeforeMove(u8); +static void Mailbox_DoGiveMailPokeMenu(u8); +static void Mailbox_NoPokemonForMail(u8); +static void Mailbox_Cancel(u8); +static void Mailbox_DrawMailMenuAndDoProcessInput(u8); +static void PlayerPC_ItemStorage(u8 taskId); +static void PlayerPC_Mailbox(u8 taskId); +static void PlayerPC_Decoration(u8 var); +static void PlayerPC_TurnOff(u8 taskId); +static void ItemStorage_Withdraw(u8); +static void ItemStorage_Deposit(u8); +static void ItemStorage_Toss(u8); +static void ItemStorage_Exit(u8); +static void ItemStorage_ResumeInputFromYesToss(u8); +static void ItemStorage_ResumeInputFromNoToss(u8); +static void Mailbox_DoMailMoveToBag(u8); +static void Mailbox_ReturnToInputAfterNo(u8); +static void Mailbox_DoMailRead(u8); +static void Mailbox_MoveToBag(u8); +static void Mailbox_Give(u8); +static void Mailbox_Cancel(u8); + +static const struct TextStruct gPCText_OptionDescList[] = +{ + PCText_TakeOutItems, + PCText_StoreItems, + PCText_ThrowAwayItems, + gMenuText_GoBackToPrev }; -// player PC menu options -enum +static const struct MenuAction2 gPCText_PlayerPCOptionsText[] = { + { SecretBaseText_ItemStorage, PlayerPC_ItemStorage }, + { gPCText_Mailbox, PlayerPC_Mailbox }, + { SecretBaseText_Decoration, PlayerPC_Decoration }, + { SecretBaseText_TurnOff, PlayerPC_TurnOff } +}; + +static const u8 gBedroomPC_OptionOrder[] = +{ PLAYERPC_MENU_ITEMSTORAGE, PLAYERPC_MENU_MAILBOX, PLAYERPC_MENU_DECORATION, PLAYERPC_MENU_TURNOFF }; -// item storage menus -enum +static const u8 gPlayerPC_OptionOrder[] = { - ITEMPC_MENU_WITHDRAW, - ITEMPC_MENU_DEPOSIT, - ITEMPC_MENU_TOSS, - ITEMPC_MENU_EXIT + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_TURNOFF }; -// special item description handlers -enum -{ - ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7, - ITEMPC_OKAY_TO_THROW_AWAY, - ITEMPC_TOO_IMPORTANT, - ITEMPC_NO_MORE_ROOM, - ITEMPC_THREW_AWAY_ITEM, - ITEMPC_HOW_MANY_TO_TOSS, - ITEMPC_WITHDREW_THING, - ITEMPC_HOW_MANY_TO_WITHDRAW, - ITEMPC_GO_BACK_TO_PREV +static const struct MenuAction2 gPCText_ItemPCOptionsText[] = +{ + { PCText_WithdrawItem, ItemStorage_Withdraw }, + { PCText_DepositItem, ItemStorage_Deposit }, + { PCText_TossItem, ItemStorage_Toss }, + { gUnknownText_Exit, ItemStorage_Exit } }; -struct MailboxStruct +static const struct YesNoFuncTable ResumeFromTossYesNoFuncList[] = // ResumeFromTossYesNoFuncList { - /*0x00*/ u8 cursorPos; - /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page. - /*0x02*/ u8 itemsAbove; // number of items above the top item on the page. - /*0x03*/ u8 count; // total number of items in mailbox storage. + ItemStorage_ResumeInputFromYesToss, + ItemStorage_ResumeInputFromNoToss }; -extern struct MailboxStruct gMailboxInfo; - -extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); -extern void DoPlayerPCDecoration(u8); -extern void BuyMenuFreeMemory(void); -extern void DestroyVerticalScrollIndicator(u8); -extern void sub_80A6A30(void); -extern u8 sub_807D770(void); -extern void sub_80F996C(u8); -extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); -extern void sub_80F98DC(int); -extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args -extern void sub_80F944C(void); -extern void LoadScrollIndicatorPalette(void); -extern void ClearMailStruct(struct MailStruct *); -extern void sub_808B020(void); +static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList[] = // ResumeFromWithdrawYesNoFuncList +{ + Mailbox_DoMailMoveToBag, + Mailbox_ReturnToInputAfterNo +}; -extern u16 gNewGamePCItems[]; -extern u16 gUnknown_08406334[3]; +// the use of this struct is meant to be an ItemSlot struct, but NewGameInitPCItems refuses to match without a weird pointer access. +static const struct ItemSlot gNewGamePCItems[] = +{ + { ITEM_POTION, 1 }, + { ITEM_NONE, 0 } +}; -extern u8 *gPcItemMenuOptionOrder; -extern struct MenuAction gPCText_PlayerPCOptionsText[]; +static const struct MenuAction2 gMailboxMailOptions[] = +{ + { OtherText_Read, Mailbox_DoMailRead }, + { gOtherText_MoveToBag, Mailbox_MoveToBag }, + { OtherText_Give, Mailbox_Give }, + { gOtherText_CancelNoTerminator, Mailbox_Cancel } +}; -extern u8 gBedroomPC_OptionOrder[]; -extern u8 gPlayerPC_OptionOrder[]; -extern u8 gUnknown_0840632A[]; -extern u8 gUnknown_08406327[]; -extern u8 gUnknown_08406330[]; -extern u8 gUnknown_0840631E[]; -extern u8 gUnknown_08406318[]; -extern u8 gUnknown_0840633A[]; +static const u8 gNonSelectedItemFormattedText[] = _("{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gSelectedItemFormattedText[] = _("{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gNonSelectedItemQuantityFormatText[] = _("{STR_VAR_1}"); +static const u8 gSelectedItemQuantityFormatText[] = _("{COLOR RED}{STR_VAR_1}"); +static const u8 gUnknown_08406330[] = _("{CLEAR_TO 32}"); -extern u8 gPcItemMenuOptionsNum; +static const u16 gUnknown_08406334[3] = +{ + 0x5294, + 0x6B5A, + 0x7FFF +}; -extern u8 gUnknown_02038561; -extern u8 gUnknown_08152850; -extern u8 gUnknown_08152C75; - -extern void (*gUnknown_0300485C)(void); - -extern u32 gPCText_OptionDescList[]; -extern const struct MenuAction gPCText_ItemPCOptionsText[]; -extern const struct MenuAction gUnknown_084062F8[]; -extern const struct YesNoFuncTable gUnknown_084062E0; -extern const struct YesNoFuncTable gUnknown_084062E8; - -void InitPlayerPCMenu(u8 taskId); -void PlayerPCProcessMenuInput(u8 taskId); -void InitItemStorageMenu(u8); -void ItemStorageMenuPrint(u8 *); -void ItemStorageMenuProcessInput(u8); -void ItemStorage_ProcessInput(u8); -void ItemStorage_SetItemAndMailCount(u8); -void ItemStorage_DoItemAction(u8); -void ItemStorage_GoBackToPlayerPCMenu(u8); -void ItemStorage_HandleQuantityRolling(u8); -void ItemStorage_DoItemWithdraw(u8); -void ItemStorage_DoItemToss(u8); -void ItemStorage_HandleRemoveItem(u8); -void ItemStorage_WaitPressHandleResumeProcessInput(u8); -void ItemStorage_HandleResumeProcessInput(u8); -void ItemStorage_DoItemSwap(u8, bool8); -void ItemStorage_DrawItemList(u8); -void ItemStorage_PrintItemPcResponse(u16); -void ItemStorage_DrawBothListAndDescription(u8); -void ItemStorage_GoBackToItemPCMenu(u8, u8); -void ItemStorage_LoadPalette(void); -u8 GetMailboxMailCount(void); -void Mailbox_UpdateMailList(void); -void Mailbox_DrawMailboxMenu(u8); -void Mailbox_ProcessInput(u8); -void sub_813B27C(void); -void sub_813B294(u8); -void sub_813B320(u8); -void sub_813B348(u8); -void sub_813B3A0(u8); -void sub_813B454(u8); -void sub_813B4F0(void); -void sub_813B554(u8); -void sub_813B66C(u8); -void sub_813B718(u8); -void Mailbox_Cancel(u8); -void sub_813B758(u8); +static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); void NewGameInitPCItems(void) { @@ -175,27 +192,27 @@ void NewGameInitPCItems(void) void BedroomPC(void) { - gPcItemMenuOptionOrder = gBedroomPC_OptionOrder; + gPcItemMenuOptionOrder = (u8 *)gBedroomPC_OptionOrder; gPcItemMenuOptionsNum = 4; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC(void) { - gPcItemMenuOptionOrder = gPlayerPC_OptionOrder; + gPcItemMenuOptionOrder = (u8 *)gPlayerPC_OptionOrder; gPcItemMenuOptionsNum = 3; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void InitPlayerPCMenu(u8 taskId) +static void InitPlayerPCMenu(u8 taskId) { MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1); - PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder); + PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, (struct MenuAction *)gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder); InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9); - gTasks[taskId].func = PlayerPCProcessMenuInput; + TASK.FUNC = PlayerPCProcessMenuInput; } -void PlayerPCProcessMenuInput(u8 taskId) +static void PlayerPCProcessMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -226,13 +243,13 @@ void ReshowPlayerPC(u8 var) DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void PlayerPC_ItemStorage(u8 taskId) +static void PlayerPC_ItemStorage(u8 taskId) { - InitItemStorageMenu(0); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(ITEMPC_MENU_WITHDRAW); + TASK.FUNC = ItemStorageMenuProcessInput; } -void PlayerPC_Mailbox(u8 taskId) +static void PlayerPC_Mailbox(u8 taskId) { MenuZeroFillWindowRect(0, 0, 10, 9); gMailboxInfo.count = GetMailboxMailCount(); @@ -246,26 +263,26 @@ void PlayerPC_Mailbox(u8 taskId) Mailbox_UpdateMailList(); ItemStorage_SetItemAndMailCount(taskId); Mailbox_DrawMailboxMenu(taskId); - gTasks[taskId].func = Mailbox_ProcessInput; + TASK.FUNC = Mailbox_ProcessInput; } } -void PlayerPC_Decoration(u8 var) +static void PlayerPC_Decoration(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); DoPlayerPCDecoration(var); } -void PlayerPC_TurnOff(u8 taskId) +static void PlayerPC_TurnOff(u8 taskId) { if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC and not player PC, so do gender specific handling. { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); if (gSaveBlock2.playerGender == MALE) - ScriptContext1_SetupScript(&gUnknown_08152850); + ScriptContext1_SetupScript(gBrendanHouse_TurnPCOff); else - ScriptContext1_SetupScript(&gUnknown_08152C75); + ScriptContext1_SetupScript(gMayHouse_TurnPCOff); } else { @@ -275,34 +292,34 @@ void PlayerPC_TurnOff(u8 taskId) DestroyTask(taskId); } -void InitItemStorageMenu(u8 var) +static void InitItemStorageMenu(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); MenuDrawTextWindow(0, 0, 11, 9); - PrintMenuItems(1, 1, 4, gPCText_ItemPCOptionsText); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText); InitMenu(0, 1, 1, 4, var, 10); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[var]); + ItemStorageMenuPrint(gPCText_OptionDescList[var].text); } -void ItemStorageMenuPrint(u8 *textPtr) +static void ItemStorageMenuPrint(const u8 *textPtr) { MenuFillWindowRectWithBlankTile(2, 15, 27, 18); MenuPrint(textPtr, 2, 15); } -void ItemStorageMenuProcessInput(u8 var) +static void ItemStorageMenuProcessInput(u8 var) { if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); MoveMenuCursor(-1); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); MoveMenuCursor(1); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } else if (gMain.newKeys & A_BUTTON) { @@ -317,7 +334,7 @@ void ItemStorageMenuProcessInput(u8 var) } } -void Task_ItemStorage_Deposit(u8 taskId) +static void Task_ItemStorage_Deposit(u8 taskId) { if (!gPaletteFade.active) { @@ -326,29 +343,29 @@ void Task_ItemStorage_Deposit(u8 taskId) } } -void ItemStorage_Deposit(u8 taskId) +static void ItemStorage_Deposit(u8 taskId) { - gTasks[taskId].func = Task_ItemStorage_Deposit; + TASK.FUNC = Task_ItemStorage_Deposit; fade_screen(1, 0); } -void sub_813A0C8(u8 taskId) +static void ItemStorage_HandleReturnToProcessInput(u8 taskId) { - if (sub_807D770() == 1) - gTasks[taskId].func = ItemStorageMenuProcessInput; + if (sub_807D770() == TRUE) + TASK.FUNC = ItemStorageMenuProcessInput; } -void sub_813A0F8(void) +void ItemStorage_ReturnToMenuAfterDeposit(void) { MenuDisplayMessageBox(); - InitItemStorageMenu(1); - CreateTask(sub_813A0C8, 0); + InitItemStorageMenu(ITEMPC_MENU_DEPOSIT); + CreateTask(ItemStorage_HandleReturnToProcessInput, 0); pal_fill_black(); } -void ItemStorage_Withdraw(u8 taskId) +static void ItemStorage_Withdraw(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); @@ -362,15 +379,15 @@ void ItemStorage_Withdraw(u8 taskId) ITEMS_ABOVE_TOP = 0; ItemStorage_SetItemAndMailCount(taskId); ItemStorage_GoBackToItemPCMenu(taskId, 0); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Toss(u8 taskId) +static void ItemStorage_Toss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); @@ -384,22 +401,22 @@ void ItemStorage_Toss(u8 taskId) ITEMS_ABOVE_TOP = 0; ItemStorage_SetItemAndMailCount(taskId); ItemStorage_GoBackToItemPCMenu(taskId, 2); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Exit(u8 var) +static void ItemStorage_Exit(u8 var) { HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); ReshowPlayerPC(var); } -void ItemStorage_SetItemAndMailCount(u8 taskId) +static void ItemStorage_SetItemAndMailCount(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; if (NUM_ITEMS > 7) // we have a full page, so set the num of page items appropriately. NUM_PAGE_ITEMS = 8; @@ -412,9 +429,9 @@ void ItemStorage_SetItemAndMailCount(u8 taskId) gMailboxInfo.pageItems = gMailboxInfo.count + 1; } -void ItemStorage_ProcessInput(u8 taskId) +static void ItemStorage_ProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 trueIndex; if (gMain.newAndRepeatedKeys & DPAD_UP) @@ -532,24 +549,24 @@ void ItemStorage_ProcessInput(u8 taskId) } } -void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) +static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) { BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); MenuZeroFillWindowRect(0, 0, 29, 19); MenuDisplayMessageBox(); - InitItemStorageMenu(gTasks[taskId].CURRENT_ITEM_STORAGE_MENU); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(TASK.CURRENT_ITEM_STORAGE_MENU); + TASK.FUNC = ItemStorageMenuProcessInput; } -void ItemStorage_DoItemAction(u8 taskId) +static void ItemStorage_DoItemAction(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; - sub_80F996C(0); - sub_80F996C(1); + PauseVerticalScrollIndicator(0); + PauseVerticalScrollIndicator(1); // PauseVerticalScrollIndicator if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW) { @@ -577,12 +594,12 @@ void ItemStorage_DoItemAction(u8 taskId) NUM_QUANTITY_ROLLER = 1; MenuDrawTextWindow(6, 8, 13, 11); sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); - gTasks[taskId].func = ItemStorage_HandleQuantityRolling; + TASK.FUNC = ItemStorage_HandleQuantityRolling; } -void ItemStorage_HandleQuantityRolling(u8 taskId) +static void ItemStorage_HandleQuantityRolling(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; if(gMain.newAndRepeatedKeys & DPAD_UP) @@ -635,16 +652,16 @@ void ItemStorage_HandleQuantityRolling(u8 taskId) { PlaySE(SE_SELECT); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex? - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } } -void ItemStorage_DoItemWithdraw(u8 taskId) +static void ItemStorage_DoItemWithdraw(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; if(AddBagItem(gSaveBlock1.pcItems[trueIndex].itemId, NUM_QUANTITY_ROLLER) == TRUE) // add item works. @@ -652,19 +669,19 @@ void ItemStorage_DoItemWithdraw(u8 taskId) CopyItemName(gSaveBlock1.pcItems[trueIndex].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); ItemStorage_PrintItemPcResponse(ITEMPC_WITHDREW_THING); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } else { NUM_QUANTITY_ROLLER = 0; ItemStorage_PrintItemPcResponse(ITEMPC_NO_MORE_ROOM); - gTasks[taskId].func = ItemStorage_WaitPressHandleResumeProcessInput; + TASK.FUNC = ItemStorage_WaitPressHandleResumeProcessInput; } } -void ItemStorage_DoItemToss(u8 taskId) +static void ItemStorage_DoItemToss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 var = PAGE_INDEX + ITEMS_ABOVE_TOP; if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE) @@ -673,38 +690,38 @@ void ItemStorage_DoItemToss(u8 taskId) ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); ItemStorage_PrintItemPcResponse(ITEMPC_OKAY_TO_THROW_AWAY); DisplayYesNoMenu(7, 6, 1); - sub_80F914C(taskId, &gUnknown_084062E0); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromTossYesNoFuncList); } else { NUM_QUANTITY_ROLLER = 0; ItemStorage_PrintItemPcResponse(ITEMPC_TOO_IMPORTANT); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } } -void ItemStorage_ResumeInputFromYesToss(u8 taskId) +static void ItemStorage_ResumeInputFromYesToss(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); ItemStorage_PrintItemPcResponse(ITEMPC_THREW_AWAY_ITEM); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } -void ItemStorage_ResumeInputFromNoToss(u8 taskId) +static void ItemStorage_ResumeInputFromNoToss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } -void ItemStorage_HandleRemoveItem(u8 taskId) +static void ItemStorage_HandleRemoveItem(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 oldNumItems; if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) @@ -722,31 +739,31 @@ void ItemStorage_HandleRemoveItem(u8 taskId) } } -void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) +static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) { ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); - sub_80F98DC(0); - sub_80F98DC(1); - gTasks[taskId].func = ItemStorage_ProcessInput; + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + TASK.FUNC = ItemStorage_ProcessInput; } } -void ItemStorage_HandleResumeProcessInput(u8 taskId) +static void ItemStorage_HandleResumeProcessInput(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_DrawBothListAndDescription(taskId); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } -void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) +static void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; SWITCH_MODE_ACTIVE = FALSE; @@ -784,44 +801,44 @@ void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) } } -void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected) +static void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected) { sub_80A4164(gStringVar1, arg1, arg2, arg4); if(isSwapSelected != FALSE) - MenuPrint(gUnknown_0840632A, 0x1A, arg3); + MenuPrint(gSelectedItemQuantityFormatText, 0x1A, arg3); else - MenuPrint(gUnknown_08406327, 0x1A, arg3); + MenuPrint(gNonSelectedItemQuantityFormatText, 0x1A, arg3); } -void ItemStorage_DrawItemVoidQuantity(u8 var) +static void ItemStorage_DrawItemVoidQuantity(u8 var) { MenuPrint(gUnknown_08406330, 0x19, var); } -void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected) +static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected) { CopyItemName(itemSlot->itemId, gStringVar1); if(isSwapSelected != FALSE) - MenuPrint(gUnknown_0840631E, 16, var); + MenuPrint(gSelectedItemFormattedText, 16, var); else - MenuPrint(gUnknown_08406318, 16, var); + MenuPrint(gNonSelectedItemFormattedText, 16, var); } -void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); } -void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); ItemStorage_DrawItemVoidQuantity(var); } -void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); @@ -831,9 +848,9 @@ void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity. } -void ItemStorage_DrawItemList(u8 taskId) +static void ItemStorage_DrawItemList(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; int tempArg; u16 i; u16 yCoord = 0; @@ -895,7 +912,7 @@ weirdCase: DestroyVerticalScrollIndicator(1); } -void ItemStorage_PrintItemPcResponse(u16 itemId) +static void ItemStorage_PrintItemPcResponse(u16 itemId) { u8 *string; @@ -936,9 +953,9 @@ void ItemStorage_PrintItemPcResponse(u16 itemId) sub_8072AB0(string, 8, 0x68, 0x68, 0x30, 1); } -void ItemStorage_DrawBothListAndDescription(u8 taskId) +static void ItemStorage_DrawBothListAndDescription(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; ItemStorage_DrawItemList(taskId); @@ -952,9 +969,9 @@ void ItemStorage_DrawBothListAndDescription(u8 taskId) } } -void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) +static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; sub_80F944C(); LoadScrollIndicatorPalette(); @@ -968,7 +985,7 @@ void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); } -void ItemStorage_LoadPalette(void) +static void ItemStorage_LoadPalette(void) { u16 arr[3]; @@ -978,7 +995,7 @@ void ItemStorage_LoadPalette(void) LoadPalette(&arr[0], 0xD8, 2); } -u8 GetMailboxMailCount(void) +static u8 GetMailboxMailCount(void) { u8 i, j; @@ -989,7 +1006,7 @@ u8 GetMailboxMailCount(void) return i; } -void Mailbox_UpdateMailList(void) +static void Mailbox_UpdateMailList(void) { struct MailStruct mailBuffer; u8 i, j; @@ -1009,7 +1026,7 @@ void Mailbox_UpdateMailList(void) } // WWHHHHHYYYYYYYY SOMEBODY PLEASE FIX THIS -void Mailbox_DrawMailList(u8 taskId) // taskId is unused +static void Mailbox_DrawMailList(u8 taskId) // taskId is unused { u16 yCoord = 0; u16 i = gMailboxInfo.itemsAbove; @@ -1062,7 +1079,7 @@ weirdCase: DestroyVerticalScrollIndicator(1); } -void Mailbox_DrawMailboxMenu(u8 taskId) +static void Mailbox_DrawMailboxMenu(u8 taskId) { sub_80F944C(); LoadScrollIndicatorPalette(); @@ -1075,7 +1092,7 @@ void Mailbox_DrawMailboxMenu(u8 taskId) } // Mailbox_ProcessInput -void Mailbox_ProcessInput(u8 taskId) +static void Mailbox_ProcessInput(u8 taskId) { if(!gPaletteFade.active) { @@ -1083,12 +1100,12 @@ void Mailbox_ProcessInput(u8 taskId) { if(gMailboxInfo.cursorPos != 0) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.cursorPos = MoveMenuCursor(-1); } else if(gMailboxInfo.itemsAbove != 0) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.itemsAbove--; Mailbox_DrawMailList(taskId); } @@ -1097,12 +1114,12 @@ void Mailbox_ProcessInput(u8 taskId) { if(gMailboxInfo.cursorPos != gMailboxInfo.pageItems - 1) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.cursorPos = MoveMenuCursor(1); } else if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos != gMailboxInfo.count) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.itemsAbove++; Mailbox_DrawMailList(taskId); } @@ -1110,135 +1127,135 @@ void Mailbox_ProcessInput(u8 taskId) else if(gMain.newKeys & A_BUTTON) { HandleDestroyMenuCursors(); - PlaySE(5); + PlaySE(SE_SELECT); if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos == gMailboxInfo.count) { - sub_813B320(taskId); + Mailbox_TurnOff(taskId); } else { - sub_813B27C(); - gTasks[taskId].func = sub_813B294; + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_PrintWhatToDoWithPlayerMailText; } } else if(gMain.newKeys & B_BUTTON) { HandleDestroyMenuCursors(); - PlaySE(5); - sub_813B320(taskId); + PlaySE(SE_SELECT); + Mailbox_TurnOff(taskId); } } } -void sub_813B27C(void) +static void Mailbox_CloseScrollIndicators(void) { BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); } -void sub_813B294(u8 taskId) +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId) { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); StringCopy(gStringVar1, gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos].playerName); SanitizeNameString(gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail); - DisplayItemMessageOnField(taskId, gStringVar4, sub_813B348, 0); + DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions, 0); } -void sub_813B300(u8 taskId) +static void Mailbox_ReturnToPlayerPC(u8 taskId) { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); ReshowPlayerPC(taskId); } -void sub_813B320(u8 taskId) +static void Mailbox_TurnOff(u8 taskId) { - sub_813B27C(); - gTasks[taskId].func = sub_813B300; + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_ReturnToPlayerPC; } -void sub_813B348(u8 taskId) +static void Mailbox_PrintMailOptions(u8 taskId) // Mailbox_PrintMailOptions { MenuDrawTextWindow(0, 0, 0xC, 0x9); - PrintMenuItems(1, 1, 4, gUnknown_084062F8); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions); InitMenu(0, 1, 1, 4, 0, 0xB); - gTasks[taskId].func = sub_813B3A0; + TASK.FUNC = Mailbox_MailOptionsProcessInput; } -void sub_813B3A0(u8 taskId) +static void Mailbox_MailOptionsProcessInput(u8 taskId) { if(gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(-1); } else if(gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(1); } else if(gMain.newKeys & A_BUTTON) { - PlaySE(5); - gUnknown_084062F8[GetMenuCursorPos()].func(taskId); + PlaySE(SE_SELECT); + gMailboxMailOptions[GetMenuCursorPos()].func(taskId); } else if(gMain.newKeys & B_BUTTON) { - PlaySE(5); + PlaySE(SE_SELECT); Mailbox_Cancel(taskId); } } -void Mailbox_Read(u8 taskId) +static void Mailbox_DoMailRead(u8 taskId) { fade_screen(1, 0); - gTasks[taskId].func = sub_813B454; + TASK.FUNC = Mailbox_FadeAndReadMail; } -void sub_813B454(u8 taskId) +static void Mailbox_FadeAndReadMail(u8 taskId) { if(!gPaletteFade.active) { - HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], sub_813B4F0, 1); + HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1); DestroyTask(taskId); } } -void sub_813B4A0(u8 taskId) +static void Mailbox_HandleReturnToProcessInput(u8 taskId) // Mailbox_HandleReturnToProcessInput { - if(sub_807D770() == TRUE) - gTasks[taskId].func = Mailbox_ProcessInput; + if(sub_807D770() == TRUE) // is black fade finished? why not gPaletteFade.active? + TASK.FUNC = Mailbox_ProcessInput; } -void sub_813B4D0(void) +static void Mailbox_DoRedrawMailboxMenuAfterReturn(void) { - Mailbox_DrawMailboxMenu(CreateTask(sub_813B4A0, 0)); + Mailbox_DrawMailboxMenu(CreateTask(Mailbox_HandleReturnToProcessInput, 0)); pal_fill_black(); } -void sub_813B4F0(void) +static void Mailbox_ReturnToFieldFromReadMail(void) { - gUnknown_0300485C = sub_813B4D0; + gFieldCallback = Mailbox_DoRedrawMailboxMenuAfterReturn; SetMainCallback2(c2_exit_to_overworld_2_switch); } -void Mailbox_MoveToBag(u8 taskId) +static void Mailbox_MoveToBag(u8 taskId) { HandleDestroyMenuCursors(); StringCopy(gStringVar1, gOtherText_MoveToBag); - MenuPrint(gUnknown_0840633A, 1, 3); - DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, sub_813B554, 0); + MenuPrint(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText + DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove, 0); } -void sub_813B554(u8 taskId) +static void Mailbox_DrawYesNoBeforeMove(u8 taskId) { DisplayYesNoMenu(0x14, 0x8, 0x1); - sub_80F914C(taskId, &gUnknown_084062E8); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromWithdrawYesNoFuncList); } -void sub_813B578(u8 taskId) +static void Mailbox_DoMailMoveToBag(u8 taskId) { struct MailStruct *mail = &gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos]; @@ -1246,11 +1263,11 @@ void sub_813B578(u8 taskId) if(AddBagItem(mail->itemId, 1) == FALSE) { - DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, Mailbox_DrawMailMenuAndDoProcessInput, 0); } else { - DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, Mailbox_DrawMailMenuAndDoProcessInput, 0); ClearMailStruct(mail); Mailbox_UpdateMailList(); @@ -1263,24 +1280,24 @@ void sub_813B578(u8 taskId) } } -void sub_813B610(u8 taskId) +static void Mailbox_ReturnToInputAfterNo(u8 taskId) // Mailbox_ReturnToInputAfterNo { MenuZeroFillWindowRect(0x14, 0x8, 0x1A, 0xD); - sub_813B758(taskId); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); } -void Mailbox_Give(u8 taskId) +static void Mailbox_Give(u8 taskId) { if(CalculatePlayerPartyCount() == 0) - sub_813B718(taskId); + Mailbox_NoPokemonForMail(taskId); // cannot be reached normally else { fade_screen(1, 0); - gTasks[taskId].func = sub_813B66C; + TASK.FUNC = Mailbox_DoGiveMailPokeMenu; } } -void sub_813B66C(u8 taskId) +static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu { if(!gPaletteFade.active) { @@ -1290,9 +1307,9 @@ void sub_813B66C(u8 taskId) } } -void sub_813B6A4(void) +static void Mailbox_UpdateMailListAfterDeposit(void) { - u8 taskId = CreateTask(sub_813B4A0, 0); + u8 taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); u8 oldCount = gMailboxInfo.count; gMailboxInfo.count = GetMailboxMailCount(); @@ -1306,26 +1323,27 @@ void sub_813B6A4(void) pal_fill_black(); } -void sub_813B6F8(void) +void Mailbox_ReturnToMailListAfterDeposit(void) { - gUnknown_0300485C = sub_813B6A4; + gFieldCallback = Mailbox_UpdateMailListAfterDeposit; SetMainCallback2(c2_exit_to_overworld_2_switch); } -void sub_813B718(u8 taskId) +// you always have at least 1 POKeMON and you cannot receive mail before you leave Littleroot: therefore this function cannot be reached normally. +static void Mailbox_NoPokemonForMail(u8 taskId) { - DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, Mailbox_DrawMailMenuAndDoProcessInput, 0); } -void Mailbox_Cancel(u8 taskId) +static void Mailbox_Cancel(u8 taskId) { HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 0xC, 0x9); - sub_813B758(taskId); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); } -void sub_813B758(u8 taskId) +static void Mailbox_DrawMailMenuAndDoProcessInput(u8 taskId) { Mailbox_DrawMailboxMenu(taskId); - gTasks[taskId].func = Mailbox_ProcessInput; + TASK.FUNC = Mailbox_ProcessInput; } diff --git a/src/rom4.c b/src/rom4.c index 79ac6d769..98060c3b1 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -67,7 +67,7 @@ extern u16 (*gUnknown_03000584)(u32); extern u8 gUnknown_03000588; extern u16 word_3004858; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_03004860; extern u8 gFieldLinkPlayerCount; @@ -1082,11 +1082,11 @@ void sub_80543DC(u16 (*a1)(u32)) void sub_80543E8(void) { - if (gUnknown_0300485C) - gUnknown_0300485C(); + if (gFieldCallback) + gFieldCallback(); else mapldr_default(); - gUnknown_0300485C = NULL; + gFieldCallback = NULL; } void CB2_NewGame(void) @@ -1099,7 +1099,7 @@ void CB2_NewGame(void) PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = ExecuteTruckSequence; + gFieldCallback = ExecuteTruckSequence; do_load_map_stuff_loop(&gMain.state); SetFieldVBlankCallback(); set_callback1(c1_overworld); @@ -1119,7 +1119,7 @@ void CB2_WhiteOut(void) player_avatar_init_params_reset(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; val = 0; do_load_map_stuff_loop(&val); SetFieldVBlankCallback(); @@ -1166,7 +1166,7 @@ void sub_8054534(void) void sub_8054588(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080AC4; + gFieldCallback = sub_8080AC4; SetMainCallback2(c2_80567AC); } @@ -1216,7 +1216,7 @@ void sub_805465C(void) sub_8054F70(); set_callback1(sub_8055354); sub_80543DC(sub_8055390); - gUnknown_0300485C = sub_8080A3C; + gFieldCallback = sub_8080A3C; ScriptContext1_Init(); ScriptContext2_Disable(); c2_exit_to_overworld_2_switch(); @@ -1225,28 +1225,28 @@ void sub_805465C(void) void sub_805469C(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = atk17_seteffectuser; + gFieldCallback = atk17_seteffectuser; c2_exit_to_overworld_2_switch(); } void sub_80546B8(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_80809B0; + gFieldCallback = sub_80809B0; c2_exit_to_overworld_2_switch(); } void c2_exit_to_overworld_1_continue_scripts_restart_music(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; c2_exit_to_overworld_2_switch(); } void sub_80546F0(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; c2_exit_to_overworld_2_switch(); } @@ -1280,7 +1280,7 @@ void CB2_ContinueSavedGame(void) } else { - gUnknown_0300485C = sub_805470C; + gFieldCallback = sub_805470C; set_callback1(c1_overworld); c2_exit_to_overworld_2_switch(); } diff --git a/src/rom6.c b/src/rom6.c index a2b52c9aa..a8233eb5b 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -14,7 +14,7 @@ extern u16 gScriptLastTalked; extern u32 gUnknown_0202FF84[]; extern struct MapPosition gUnknown_0203923C; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); extern u8 UseRockSmashScript[]; @@ -122,7 +122,7 @@ bool8 SetUpFieldMove_RockSmash(void) { if (npc_before_player_of_type(0x56) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B53C; return TRUE; } @@ -159,7 +159,7 @@ int SetUpFieldMove_Dig(void) { if (sub_80CA1C8() == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B5D8; return TRUE; } diff --git a/src/safari_zone.c b/src/safari_zone.c index 8c2b63469..986412826 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -29,7 +29,7 @@ EWRAM_DATA u8 gNumSafariBalls = 0; EWRAM_DATA static u16 gSafariZoneStepCounter = 0; EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0}; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_081C340A; extern u8 gUnknown_081C342D; @@ -103,7 +103,7 @@ void sub_80C824C(void) { ScriptContext2_RunNewScript(&gUnknown_081C340A); warp_in(); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; SetMainCallback2(CB2_LoadMap); } else if (gUnknown_02024D26 == 7) diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index 9e833ec34..ee140187f 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -18,7 +18,7 @@ extern u16 gSpecialVar_0x8005; extern u8 gUnknown_02038694; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void OpenPartyMenu(u8, u8); extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); @@ -284,7 +284,7 @@ void sub_80F9EEC(void) { sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0); unk_2018000.unk8 = 3; - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; } void sub_80F9F3C(void) // count pokemon moves diff --git a/src/secret_base.c b/src/secret_base.c index aae3853f9..adcd47d66 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -250,7 +250,7 @@ void sub_80BBA48(u8 taskid) gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++; sub_80BBA14(); warp_in(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); break; @@ -299,7 +299,7 @@ void sub_80BBBEC(u8 taskid) idx = 4 * (gUnknown_020387DC / 10); warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]); warp_in(); - gUnknown_0300485C = sub_80BBB90; + gFieldCallback = sub_80BBB90; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); } @@ -793,7 +793,7 @@ void sub_80BC074(u8 taskid) case 2: copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E); warp_in(); - gUnknown_0300485C = mapldr_default; + gFieldCallback = mapldr_default; SetMainCallback2(CB2_LoadMap); ScriptContext2_Disable(); DestroyTask(taskid); diff --git a/sym_common.txt b/sym_common.txt index f8645c427..407dca9d1 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -145,7 +145,7 @@ gUnknown_03004854: @ 3004854 word_3004858: @ 3004858 .space 0x4 -gUnknown_0300485C: @ 300485C +gFieldCallback: @ 300485C .space 0x4 gUnknown_03004860: @ 3004860 |