diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-01-06 16:19:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-06 16:19:18 -0500 |
commit | e70a084aa964a0df94c609ebfa9717089dd67639 (patch) | |
tree | 996dc1a413c8818d6efb746ecf15c3fae28b983e | |
parent | 103789770b635610ee1c04ed923fdcc7298f878e (diff) | |
parent | 1581631e6286e0ec8178630433e8c15cd7076ead (diff) |
Merge pull request #38 from PikalaxALT/scrcmd
scrcmd
88 files changed, 3171 insertions, 7003 deletions
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s index 29ae446f6..91931bb63 100644 --- a/asm/battle_controller_oak.s +++ b/asm/battle_controller_oak.s @@ -308,7 +308,7 @@ _080E77AC: bhi _080E7838 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _080E780A: movs r0, 0x5 bl PlaySE diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 4db1f94c3..d83245653 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -381,7 +381,7 @@ _0802E5A8: bhi _0802E634 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _0802E606: movs r0, 0x5 bl PlaySE diff --git a/asm/battle_message.s b/asm/battle_message.s index 029ff9ed0..183306f97 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1604,7 +1604,7 @@ _080D7F9C: ldrh r0, [r0] _080D7FA0: mov r1, sp - bl sub_8099E90 + bl CopyItemName mov r4, sp b _080D8382 .align 2, 0 @@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2 _080D869C: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName b _080D86AE _080D86A6: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName _080D86AE: adds r5, 0x3 _080D86B0: diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 499d565f0..529787bf6 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC bhi _0807F6FC ldr r0, _0807F6F8 @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0807F6FC @@ -318,8 +318,8 @@ _0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _0807F8C0: .4byte gBattleTypeFlags thumb_func_end sub_807F888 - thumb_func_start sub_807F8C4 -sub_807F8C4: @ 807F8C4 + thumb_func_start BattleSetup_StartScriptedWildBattle +BattleSetup_StartScriptedWildBattle: @ 807F8C4 push {lr} bl ScriptContext2_Enable ldr r1, _0807F8F8 @ =gMain @@ -344,7 +344,7 @@ sub_807F8C4: @ 807F8C4 _0807F8F8: .4byte gMain _0807F8FC: .4byte sub_807FBA0 _0807F900: .4byte gBattleTypeFlags - thumb_func_end sub_807F8C4 + thumb_func_end BattleSetup_StartScriptedWildBattle thumb_func_start sub_807F904 sub_807F904: @ 807F904 @@ -356,7 +356,7 @@ sub_807F904: @ 807F904 str r0, [r1, 0x8] ldr r0, _0807F94C @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 beq _0807F958 @@ -1512,7 +1512,7 @@ battle_80801F0: @ 80801F0 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap - ldr r1, _08080224 @ =gUnknown_3005074 + ldr r1, _08080224 @ =gSelectedEventObject strb r0, [r1] _08080212: pop {r0} @@ -1521,11 +1521,11 @@ _08080212: _08080218: .4byte gUnknown_20386B0 _0808021C: .4byte gSpecialVar_LastTalked _08080220: .4byte gSaveBlock1Ptr -_08080224: .4byte gUnknown_3005074 +_08080224: .4byte gSelectedEventObject thumb_func_end battle_80801F0 - thumb_func_start sub_8080228 -sub_8080228: @ 8080228 + thumb_func_start BattleSetup_ConfigureTrainerBattle +BattleSetup_ConfigureTrainerBattle: @ 8080228 push {r4,r5,lr} adds r5, r0, 0 bl sub_8080110 @@ -1640,14 +1640,14 @@ _08080326: .align 2, 0 _0808032C: .4byte gUnknown_83C6900 _08080330: .4byte gUnknown_81A4EC1 - thumb_func_end sub_8080228 + thumb_func_end BattleSetup_ConfigureTrainerBattle thumb_func_start TrainerWantsBattle TrainerWantsBattle: @ 8080334 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _08080368 @ =gUnknown_3005074 + ldr r2, _08080368 @ =gSelectedEventObject strb r0, [r2] ldr r4, _0808036C @ =gSpecialVar_LastTalked ldr r3, _08080370 @ =gMapObjects @@ -1659,7 +1659,7 @@ TrainerWantsBattle: @ 8080334 strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 - bl sub_8080228 + bl BattleSetup_ConfigureTrainerBattle ldr r0, _08080374 @ =gUnknown_81A4EB4 bl ScriptContext1_SetupScript bl ScriptContext2_Enable @@ -1667,7 +1667,7 @@ TrainerWantsBattle: @ 8080334 pop {r0} bx r0 .align 2, 0 -_08080368: .4byte gUnknown_3005074 +_08080368: .4byte gSelectedEventObject _0808036C: .4byte gSpecialVar_LastTalked _08080370: .4byte gMapObjects _08080374: .4byte gUnknown_81A4EB4 @@ -1693,7 +1693,7 @@ GetTrainerFlagFromScriptPointer: @ 8080378 thumb_func_start sub_8080398 sub_8080398: @ 8080398 push {r4,lr} - ldr r0, _080803C4 @ =gUnknown_3005074 + ldr r0, _080803C4 @ =gSelectedEventObject ldrb r0, [r0] lsls r4, r0, 3 adds r4, r0 @@ -1713,7 +1713,7 @@ sub_8080398: @ 8080398 pop {r0} bx r0 .align 2, 0 -_080803C4: .4byte gUnknown_3005074 +_080803C4: .4byte gSelectedEventObject _080803C8: .4byte gMapObjects thumb_func_end sub_8080398 @@ -1785,8 +1785,8 @@ HasTrainerAlreadyBeenFought: @ 8080424 bx r1 thumb_func_end HasTrainerAlreadyBeenFought - thumb_func_start trainer_flag_set -trainer_flag_set: @ 808043C + thumb_func_start SetTrainerFlag +SetTrainerFlag: @ 808043C push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1796,10 +1796,10 @@ trainer_flag_set: @ 808043C bl FlagSet pop {r0} bx r0 - thumb_func_end trainer_flag_set + thumb_func_end SetTrainerFlag - thumb_func_start trainer_flag_clear -trainer_flag_clear: @ 8080450 + thumb_func_start ClearTrainerFlag +ClearTrainerFlag: @ 8080450 push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1809,10 +1809,10 @@ trainer_flag_clear: @ 8080450 bl FlagClear pop {r0} bx r0 - thumb_func_end trainer_flag_clear + thumb_func_end ClearTrainerFlag - thumb_func_start sub_8080464 -sub_8080464: @ 8080464 + thumb_func_start BattleSetup_StartTrainerBattle +BattleSetup_StartTrainerBattle: @ 8080464 push {r4,lr} ldr r4, _080804A0 @ =gBattleTypeFlags movs r0, 0x8 @@ -1844,7 +1844,7 @@ _0808048C: _080804A0: .4byte gBattleTypeFlags _080804A4: .4byte gMain _080804A8: .4byte sub_80804AC - thumb_func_end sub_8080464 + thumb_func_end BattleSetup_StartTrainerBattle thumb_func_start sub_80804AC sub_80804AC: @ 80804AC @@ -1992,8 +1992,8 @@ sub_80805D8: @ 80805D8 bx r0 thumb_func_end sub_80805D8 - thumb_func_start sub_80805E8 -sub_80805E8: @ 80805E8 + thumb_func_start BattleSetup_GetScriptAddrAfterBattle +BattleSetup_GetScriptAddrAfterBattle: @ 80805E8 push {lr} ldr r0, _080805F8 @ =gUnknown_20386C4 ldr r0, [r0] @@ -2006,10 +2006,10 @@ _080805F4: .align 2, 0 _080805F8: .4byte gUnknown_20386C4 _080805FC: .4byte gUnknown_81C555B - thumb_func_end sub_80805E8 + thumb_func_end BattleSetup_GetScriptAddrAfterBattle - thumb_func_start sub_8080600 -sub_8080600: @ 8080600 + thumb_func_start BattleSetup_GetTrainerPostBattleScript +BattleSetup_GetTrainerPostBattleScript: @ 8080600 push {lr} ldr r0, _08080610 @ =gUnknown_20386C8 ldr r0, [r0] @@ -2022,7 +2022,7 @@ _0808060C: .align 2, 0 _08080610: .4byte gUnknown_20386C8 _08080614: .4byte gUnknown_81C555B - thumb_func_end sub_8080600 + thumb_func_end BattleSetup_GetTrainerPostBattleScript thumb_func_start sub_8080618 sub_8080618: @ 8080618 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 82922b88f..e4c7f17ba 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C adds r1, r0 ldrh r0, [r1] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 @@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C adds r0, r1 ldrh r0, [r0] ldr r1, _080E7290 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _080E7294 @ =gSpecialVar_Result strh r4, [r0] b _080E72AA diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index b58832931..146a71788 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -733,7 +733,7 @@ sub_813D31C: @ 813D31C bl StringAppend adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0813D394 @ =gUnknown_84643B4 adds r0, r4, 0 bl StringAppend @@ -2497,7 +2497,7 @@ _0813E18A: ldr r0, _0813E1F4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r5, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 bl sub_813EA98 ldrb r0, [r5] @@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C bne _0813E3D8 ldr r1, _0813E3C8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E3CC @ =gStringVar4 ldr r1, _0813E3D0 @ =gUnknown_8416374 adds r0, r4, 0 @@ -2815,7 +2815,7 @@ sub_813E428: @ 813E428 bne _0813E488 ldrh r0, [r6] ldr r1, _0813E478 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E47C @ =gStringVar4 ldr r1, _0813E480 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -2855,7 +2855,7 @@ _0813E4A0: _0813E4A8: ldrh r0, [r6] ldr r1, _0813E4D4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E4D8 @ =gStringVar4 ldr r1, _0813E4DC @ =gUnknown_8416911 adds r0, r4, 0 @@ -3188,7 +3188,7 @@ sub_813E768: @ 813E768 ldr r0, _0813E7D8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0813E7DC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0813E7E0 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 @@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r7, _0813E8C4 @ =gSaveBlock1Ptr ldr r4, [r7] movs r3, 0xA4 diff --git a/asm/bike.s b/asm/bike.s index 915c4bf8f..c85537d3d 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -745,9 +745,9 @@ _080BD5F8: cmp r0, 0 beq _080BD618 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _080BD618: pop {r4} pop {r0} diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 9748301f7..39055b8e9 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -936,7 +936,7 @@ _0806CFBC: adds r4, 0x1 cmp r4, 0x3 ble _0806CFB0 - ldr r0, _0806CFE8 @ =gUnknown_3005074 + ldr r0, _0806CFE8 @ =gSelectedEventObject strb r3, [r0] ldr r1, _0806CFEC @ =gSpecialVar_LastTalked adds r0, r2, r3 @@ -954,7 +954,7 @@ _0806CFDE: bx r1 .align 2, 0 _0806CFE4: .4byte gUnknown_2031DEC -_0806CFE8: .4byte gUnknown_3005074 +_0806CFE8: .4byte gSelectedEventObject _0806CFEC: .4byte gSpecialVar_LastTalked _0806CFF0: .4byte gSpecialVar_Facing thumb_func_end sub_806CF38 @@ -1044,7 +1044,7 @@ _0806D092: _0806D098: .4byte gMapObjects _0806D09C: .4byte gUnknown_826D2D8 _0806D0A0: - ldr r0, _0806D0D4 @ =gUnknown_3005074 + ldr r0, _0806D0D4 @ =gSelectedEventObject strb r5, [r0] ldr r4, _0806D0D8 @ =gSpecialVar_LastTalked ldr r1, _0806D0DC @ =gMapObjects @@ -1069,7 +1069,7 @@ _0806D0C8: pop {r1} bx r1 .align 2, 0 -_0806D0D4: .4byte gUnknown_3005074 +_0806D0D4: .4byte gSelectedEventObject _0806D0D8: .4byte gSpecialVar_LastTalked _0806D0DC: .4byte gMapObjects _0806D0E0: .4byte gSpecialVar_Facing @@ -2195,7 +2195,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 806D964 adds r1, r5, 0 adds r2, r7, 0 bl sub_806DC54 - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DA02 .align 2, 0 @@ -2331,7 +2331,7 @@ _0806DAC4: lsrs r0, 24 cmp r0, 0x1 bne _0806DAE4 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState ldr r0, _0806DAE0 @ =gUnknown_81C1361 bl ScriptContext1_SetupScript movs r0, 0x1 @@ -2339,7 +2339,7 @@ _0806DAC4: .align 2, 0 _0806DAE0: .4byte gUnknown_81C1361 _0806DAE4: - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DAEE _0806DAEC: @@ -2638,7 +2638,7 @@ map_warp_consider_2_to_inside: @ 806DCD0 adds r1, r4, 0 adds r2, r6, 0 bl sub_806DC54 - bl sub_807E4DC + bl DoDoorWarp movs r0, 0x1 b _0806DD32 .align 2, 0 @@ -2990,7 +2990,7 @@ _0806DF98: cmp r0, 0 beq _0806DFB0 bl sub_8055A08 - bl sp13E_warp_to_last_warp + bl DoDiveWarp movs r0, 0xE2 bl PlaySE movs r0, 0x1 diff --git a/asm/field_door.s b/asm/field_door.s index 9c7e5eb10..4384531d0 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -478,8 +478,8 @@ _0805B25C: _0805B264: .4byte gUnknown_835B4B0 thumb_func_end sub_805B210 - thumb_func_start sub_805B268 -sub_805B268: @ 805B268 + thumb_func_start FieldSetDoorOpened +FieldSetDoorOpened: @ 805B268 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -504,10 +504,10 @@ _0805B292: bx r0 .align 2, 0 _0805B298: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B268 + thumb_func_end FieldSetDoorOpened - thumb_func_start sub_805B29C -sub_805B29C: @ 805B29C + thumb_func_start FieldSetDoorClosed +FieldSetDoorClosed: @ 805B29C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -532,10 +532,10 @@ _0805B2C6: bx r0 .align 2, 0 _0805B2CC: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B29C + thumb_func_end FieldSetDoorClosed - thumb_func_start sub_805B2D0 -sub_805B2D0: @ 805B2D0 + thumb_func_start FieldAnimateDoorClose +FieldAnimateDoorClose: @ 805B2D0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -566,10 +566,10 @@ _0805B308: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B2D0 + thumb_func_end FieldAnimateDoorClose - thumb_func_start sub_805B310 -sub_805B310: @ 805B310 + thumb_func_start FieldAnimateDoorOpen +FieldAnimateDoorOpen: @ 805B310 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -600,10 +600,10 @@ _0805B348: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B310 + thumb_func_end FieldAnimateDoorOpen - thumb_func_start sub_805B350 -sub_805B350: @ 805B350 + thumb_func_start FieldIsDoorAnimationRunning +FieldIsDoorAnimationRunning: @ 805B350 push {lr} ldr r0, _0805B360 @ =sub_805B028 bl FuncIsActiveTask @@ -613,10 +613,10 @@ sub_805B350: @ 805B350 bx r1 .align 2, 0 _0805B360: .4byte sub_805B028 - thumb_func_end sub_805B350 + thumb_func_end FieldIsDoorAnimationRunning - thumb_func_start sub_805B364 -sub_805B364: @ 805B364 + thumb_func_start GetDoorSoundEffect +GetDoorSoundEffect: @ 805B364 push {lr} adds r3, r0, 0 adds r2, r1, 0 @@ -635,7 +635,7 @@ _0805B380: _0805B382: pop {r1} bx r1 - thumb_func_end sub_805B364 + thumb_func_end GetDoorSoundEffect thumb_func_start sub_805B388 sub_805B388: @ 805B388 diff --git a/asm/field_effect.s b/asm/field_effect.s index 1cbdc8214..5aa0772dd 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -6955,7 +6955,7 @@ sub_8086944: @ 8086944 cmp r0, 0 beq _08086978 adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _08086978: movs r0, 0 pop {r4} diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 8ccc347e9..494c3e61e 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -661,7 +661,7 @@ _0807E028: ldrsh r0, [r6, r2] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B268 + bl FieldSetDoorOpened movs r0, 0x1 strh r0, [r4, 0x8] b _0807E206 @@ -691,7 +691,7 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -699,12 +699,12 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B310 + bl FieldAnimateDoorOpen movs r0, 0x7 strh r0, [r4, 0x8] b _0807E206 _0807E0A2: - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 beq _0807E0AE @@ -750,7 +750,7 @@ _0807E0FC: ldrsh r0, [r4, r1] movs r2, 0x22 ldrsh r1, [r4, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose movs r0, 0x9 strh r0, [r4, 0x8] b _0807E206 @@ -762,7 +762,7 @@ _0807E10E: lsls r0, 24 cmp r0, 0 beq _0807E206 - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 bne _0807E206 @@ -822,7 +822,7 @@ _0807E198: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r4, 0xA] @@ -1153,8 +1153,8 @@ _0807E434: bx r1 thumb_func_end sub_807E418 - thumb_func_start sub_807E438 -sub_807E438: @ 807E438 + thumb_func_start DoWarp +DoWarp: @ 807E438 push {lr} bl ScriptContext2_Enable bl sub_8055F88 @@ -1174,10 +1174,10 @@ sub_807E438: @ 807E438 _0807E464: .4byte gUnknown_3005020 _0807E468: .4byte sub_807DF64 _0807E46C: .4byte sub_807E718 - thumb_func_end sub_807E438 + thumb_func_end DoWarp - thumb_func_start sp13E_warp_to_last_warp -sp13E_warp_to_last_warp: @ 807E470 + thumb_func_start DoDiveWarp +DoDiveWarp: @ 807E470 push {lr} bl ScriptContext2_Enable bl sub_8055F88 @@ -1195,7 +1195,7 @@ sp13E_warp_to_last_warp: @ 807E470 _0807E494: .4byte gUnknown_3005020 _0807E498: .4byte sub_807DF64 _0807E49C: .4byte sub_807E718 - thumb_func_end sp13E_warp_to_last_warp + thumb_func_end DoDiveWarp thumb_func_start sub_807E4A0 sub_807E4A0: @ 807E4A0 @@ -1228,8 +1228,8 @@ _0807E4D4: .4byte sub_807E980 _0807E4D8: .4byte gTasks thumb_func_end sub_807E4A0 - thumb_func_start sub_807E4DC -sub_807E4DC: @ 807E4DC + thumb_func_start DoDoorWarp +DoDoorWarp: @ 807E4DC push {lr} bl ScriptContext2_Enable ldr r0, _0807E4F4 @ =gUnknown_3005020 @@ -1244,7 +1244,7 @@ sub_807E4DC: @ 807E4DC _0807E4F4: .4byte gUnknown_3005020 _0807E4F8: .4byte sub_807DF64 _0807E4FC: .4byte sub_807E80C - thumb_func_end sub_807E4DC + thumb_func_end DoDoorWarp thumb_func_start sub_807E500 sub_807E500: @ 807E500 @@ -1282,10 +1282,10 @@ _0807E540: .4byte sub_807DF64 _0807E544: .4byte sub_807E784 thumb_func_end sub_807E524 - thumb_func_start sp13F_fall_to_last_warp -sp13F_fall_to_last_warp: @ 807E548 + thumb_func_start DoFallWarp +DoFallWarp: @ 807E548 push {lr} - bl sp13E_warp_to_last_warp + bl DoDiveWarp ldr r1, _0807E558 @ =gUnknown_3005020 ldr r0, _0807E55C @ =sub_8084454 str r0, [r1] @@ -1294,7 +1294,7 @@ sp13F_fall_to_last_warp: @ 807E548 .align 2, 0 _0807E558: .4byte gUnknown_3005020 _0807E55C: .4byte sub_8084454 - thumb_func_end sp13F_fall_to_last_warp + thumb_func_end DoFallWarp thumb_func_start sub_807E560 sub_807E560: @ 807E560 @@ -1690,7 +1690,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -1699,7 +1699,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B310 + bl FieldAnimateDoorOpen lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -1760,7 +1760,7 @@ _0807E8F4: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 308421098..14951c20c 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -1614,8 +1614,8 @@ _0805E9F0: .4byte 0x0000ffff _0805E9F4: .4byte gSprites thumb_func_end AddPseudoFieldObject - thumb_func_start sub_805E9F8 -sub_805E9F8: @ 805E9F8 + thumb_func_start sprite_new +sprite_new: @ 805E9F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1772,7 +1772,7 @@ _0805EB24: _0805EB38: .4byte sub_8068FA8 _0805EB3C: .4byte 0x0000ffff _0805EB40: .4byte gSprites - thumb_func_end sub_805E9F8 + thumb_func_end sprite_new thumb_func_start sub_805EB44 sub_805EB44: @ 805EB44 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index aa68c6ef2..df2588587 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -2818,7 +2818,7 @@ PartyHasMonWithSurf: @ 805C83C _0805C84E: adds r0, r4, 0 movs r1, 0x39 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 cmp r0, 0 beq _0805C860 diff --git a/asm/field_specials.s b/asm/field_specials.s index a4f3e6dc7..4c0b97151 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -33,9 +33,9 @@ _080CA644: movs r4, 0x8D lsls r4, 1 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo pop {r4} pop {r0} bx r0 @@ -3138,7 +3138,7 @@ _080CBDE4: .4byte gSpecialVar_0x8004 thumb_func_start sub_80CBDE8 sub_80CBDE8: @ 80CBDE8 - ldr r1, _080CBDF8 @ =gUnknown_3005074 + ldr r1, _080CBDF8 @ =gSelectedEventObject movs r0, 0 strb r0, [r1] ldr r1, _080CBDFC @ =gUnknown_20370DA @@ -3146,7 +3146,7 @@ sub_80CBDE8: @ 80CBDE8 strh r0, [r1] bx lr .align 2, 0 -_080CBDF8: .4byte gUnknown_3005074 +_080CBDF8: .4byte gSelectedEventObject _080CBDFC: .4byte gUnknown_20370DA thumb_func_end sub_80CBDE8 @@ -3157,7 +3157,7 @@ sub_80CBE00: @ 80CBE00 ldrh r0, [r0] cmp r0, 0xFF bne _080CBE44 - ldr r1, _080CBE1C @ =gUnknown_3005074 + ldr r1, _080CBE1C @ =gSelectedEventObject ldrb r0, [r1] cmp r0, 0 bne _080CBE20 @@ -3165,7 +3165,7 @@ sub_80CBE00: @ 80CBE00 b _080CBE48 .align 2, 0 _080CBE18: .4byte gUnknown_20370DA -_080CBE1C: .4byte gUnknown_3005074 +_080CBE1C: .4byte gSelectedEventObject _080CBE20: ldr r2, _080CBE4C @ =gMapObjects ldrb r1, [r1] @@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 ldr r0, _080CBF00 @ =gUnknown_83F5AF8 lsls r4, 2 @@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4 _080CBF00: .4byte gUnknown_83F5AF8 thumb_func_end TV_PrintIntToStringVar - thumb_func_start sub_80CBF04 -sub_80CBF04: @ 80CBF04 + thumb_func_start CountDigits +CountDigits: @ 80CBF04 push {r4,lr} adds r4, r0, 0 movs r1, 0xA @@ -3366,7 +3366,7 @@ _080CBF9A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80CBF04 + thumb_func_end CountDigits thumb_func_start sub_80CBFA0 sub_80CBFA0: @ 80CBFA0 diff --git a/asm/field_weather.s b/asm/field_weather.s index 77a138ad2..49a1ed95b 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -2804,8 +2804,8 @@ sav1_get_weather_probably: @ 807B130 _0807B13C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_weather_probably - thumb_func_start sub_807B140 -sub_807B140: @ 807B140 + thumb_func_start SetSav1WeatherFromCurrMapHeader +SetSav1WeatherFromCurrMapHeader: @ 807B140 push {r4,r5,lr} ldr r4, _0807B16C @ =gSaveBlock1Ptr ldr r0, [r4] @@ -2828,7 +2828,7 @@ sub_807B140: @ 807B140 .align 2, 0 _0807B16C: .4byte gSaveBlock1Ptr _0807B170: .4byte gMapHeader - thumb_func_end sub_807B140 + thumb_func_end SetSav1WeatherFromCurrMapHeader thumb_func_start SetWeather SetWeather: @ 807B174 diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 147bc65c0..43ec5eede 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -1459,8 +1459,8 @@ sub_80F2934: @ 80F2934 movs r1, 0x9 movs r3, 0xB bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 + bl DoWarp + bl ResetInitialPlayerAvatarState add sp, 0x4 pop {r0} bx r0 diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s index f9fb50cf7..bca296e67 100644 --- a/asm/help_system_812B1E0.s +++ b/asm/help_system_812B1E0.s @@ -967,7 +967,7 @@ _0812B98C: .4byte 0x00000829 _0812B990: ldr r0, _0812B99C @ =0x00000169 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem b _0812BAF6 .align 2, 0 _0812B99C: .4byte 0x00000169 diff --git a/asm/item.s b/asm/item.s index aa64e54fa..800df5f82 100644 --- a/asm/item.s +++ b/asm/item.s @@ -149,8 +149,8 @@ _08099E88: .4byte gSaveBlock1Ptr _08099E8C: .4byte 0x0000054c thumb_func_end sub_8099E44 - thumb_func_start sub_8099E90 -sub_8099E90: @ 8099E90 + thumb_func_start CopyItemName +CopyItemName: @ 8099E90 push {r4,lr} adds r4, r1, 0 lsls r0, 16 @@ -177,7 +177,7 @@ _08099EC4: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8099E90 + thumb_func_end CopyItemName thumb_func_start sub_8099ECC sub_8099ECC: @ 8099ECC @@ -252,8 +252,8 @@ _08099F3C: bx r1 thumb_func_end sub_8099F08 - thumb_func_start sub_8099F40 -sub_8099F40: @ 8099F40 + thumb_func_start CheckBagHasItem +CheckBagHasItem: @ 8099F40 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -310,14 +310,14 @@ _08099FA6: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8099F40 + thumb_func_end CheckBagHasItem thumb_func_start sub_8099FAC sub_8099FAC: @ 8099FAC push {r4,lr} ldr r0, _08099FC0 @ =0x0000016d movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -338,7 +338,7 @@ _08099FD4: _08099FD6: adds r0, r4, 0 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -360,8 +360,8 @@ _08099FF6: _08099FFC: .4byte gSpecialVar_Result thumb_func_end sub_8099FAC - thumb_func_start sub_809A000 -sub_809A000: @ 809A000 + thumb_func_start CheckBagHasSpace +CheckBagHasSpace: @ 809A000 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -428,10 +428,10 @@ _0809A07C: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_809A000 + thumb_func_end CheckBagHasSpace - thumb_func_start sub_809A084 -sub_809A084: @ 809A084 + thumb_func_start AddBagItem +AddBagItem: @ 809A084 push {r4-r7,lr} mov r7, r8 push {r7} @@ -494,7 +494,7 @@ _0809A0F4: lsls r4, 1 adds r0, r4, 0 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0809A132 @@ -522,7 +522,7 @@ _0809A132: ldr r4, _0809A1B0 @ =0x0000016d adds r0, r4, 0 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0809A174 @@ -595,10 +595,10 @@ _0809A1CC: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809A084 + thumb_func_end AddBagItem - thumb_func_start sub_809A1D8 -sub_809A1D8: @ 809A1D8 + thumb_func_start RemoveBagItem +RemoveBagItem: @ 809A1D8 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -667,7 +667,7 @@ _0809A25A: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809A1D8 + thumb_func_end RemoveBagItem thumb_func_start GetPocketByItemId GetPocketByItemId: @ 809A260 @@ -832,8 +832,8 @@ _0809A35C: _0809A370: .4byte gSaveBlock1Ptr thumb_func_end sub_809A33C - thumb_func_start sub_809A374 -sub_809A374: @ 809A374 + thumb_func_start CheckPCHasItem +CheckPCHasItem: @ 809A374 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 @@ -875,10 +875,10 @@ _0809A3C0: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_809A374 + thumb_func_end CheckPCHasItem - thumb_func_start sub_809A3C8 -sub_809A3C8: @ 809A3C8 + thumb_func_start AddPCItem +AddPCItem: @ 809A3C8 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -955,7 +955,7 @@ _0809A458: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809A3C8 + thumb_func_end AddPCItem thumb_func_start sub_809A460 sub_809A460: @ 809A460 diff --git a/asm/item_menu.s b/asm/item_menu.s index 58b74acf3..d08021d15 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -3237,7 +3237,7 @@ sub_810971C: @ 810971C lsrs r0, 16 ldr r1, _081097D8 @ =gStringVar1 mov r10, r1 - bl sub_8099E90 + bl CopyItemName ldr r0, _081097DC @ =gStringVar4 mov r9, r0 adds r1, r6, 0 @@ -3725,7 +3725,7 @@ _08109AD4: ldr r0, _08109BA8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08109BAC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08109BB0 @ =gStringVar4 ldr r1, _08109BB4 @ =gUnknown_84162FF adds r0, r6, 0 @@ -4125,7 +4125,7 @@ sub_8109EA8: @ 8109EA8 lsls r0, 16 lsrs r0, 16 ldr r1, _08109F30 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _08109F34 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] @@ -4200,7 +4200,7 @@ _08109F6E: ldr r0, _08109FF4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r7, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x6 bl sub_810BA3C ldrb r0, [r7] @@ -4447,7 +4447,7 @@ sub_810A18C: @ 810A18C ldr r0, _0810A1BC @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A1C0 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810A1C4 @ =gStringVar4 ldr r1, _0810A1C8 @ =gUnknown_841635E adds r0, r5, 0 @@ -4969,7 +4969,7 @@ _0810A5B4: bne _0810A5F8 ldrh r0, [r6] ldr r1, _0810A5E8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A5EC @ =gStringVar4 ldr r1, _0810A5F0 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -5007,7 +5007,7 @@ _0810A610: _0810A618: ldrh r0, [r6] ldr r1, _0810A644 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A648 @ =gStringVar4 ldr r1, _0810A64C @ =gUnknown_8416911 adds r0, r4, 0 @@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940 ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810A9C0 @ =gStringVar3 ldr r0, _0810A9C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] @@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r3, _0810AAE0 @ =gSaveBlock1Ptr ldr r4, [r3] movs r7, 0xA4 @@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40 ldr r5, _0810ACD0 @ =gSpecialVar_ItemId ldrh r0, [r5] ldrh r1, [r7, 0x10] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -5756,7 +5756,7 @@ sub_810AC40: @ 810AC40 bl sub_80A2294 ldrh r0, [r5] ldr r1, _0810ACD8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810ACDC @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r7, r2] @@ -5839,7 +5839,7 @@ _0810AD1E: cmp r0, 0 beq _0810AD98 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r2, _0810AF98 @ =sub_8030AEC movs r0, 0x6 movs r1, 0 @@ -6317,27 +6317,27 @@ sub_810B108: @ 810B108 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xE movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB7 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x5 - bl sub_809A084 + bl AddBagItem movs r0, 0x3 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem cmp r4, 0x7 beq _0810B160 cmp r4, 0x8 diff --git a/asm/item_pc.s b/asm/item_pc.s index b222b9ca2..8d36ccc81 100644 --- a/asm/item_pc.s +++ b/asm/item_pc.s @@ -1886,7 +1886,7 @@ sub_810E274: @ 810E274 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E348 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810E34C @ =gStringVar4 ldr r1, _0810E350 @ =gUnknown_84162FF adds r0, r6, 0 @@ -2036,7 +2036,7 @@ sub_810E418: @ 810E418 lsrs r4, r0, 16 ldrh r1, [r5, 0x10] adds r0, r4, 0 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2048,7 +2048,7 @@ sub_810E418: @ 810E418 bl sub_80A2294 ldr r1, _0810E4A4 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810E4A8 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r5, r2] @@ -2241,7 +2241,7 @@ sub_810E5E0: @ 810E5E0 lsrs r0, 16 ldr r6, _0810E660 @ =gStringVar1 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810E664 @ =gStringVar4 ldr r1, _0810E668 @ =gUnknown_84177AC adds r0, r5, 0 diff --git a/asm/item_use.s b/asm/item_use.s index 558e175f2..0b6dacdd4 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -1361,7 +1361,7 @@ sub_80A1A44: @ 80A1A44 ldr r4, _080A1A84 @ =gSpecialVar_ItemId ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldrh r0, [r4] bl ItemId_GetPocket lsls r0, 24 @@ -1374,7 +1374,7 @@ sub_80A1A44: @ 80A1A44 bl sub_81089F4 ldrh r0, [r4] ldr r1, _080A1A88 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1A8C @ =gStringVar4 ldr r1, _080A1A90 @ =gUnknown_841658C bl StringExpandPlaceholders @@ -1409,7 +1409,7 @@ sub_80A1A94: @ 80A1A94 bl FlagClear ldrh r0, [r5] ldr r1, _080A1AE4 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1AE8 @ =gStringVar4 ldr r1, _080A1AEC @ =gUnknown_84165D2 bl StringExpandPlaceholders @@ -1435,7 +1435,7 @@ _080A1AF4: bl FlagClear ldrh r0, [r5] ldr r1, _080A1B34 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1B38 @ =gStringVar4 ldr r1, _080A1B3C @ =gUnknown_8416600 bl StringExpandPlaceholders @@ -1597,7 +1597,7 @@ sub_80A1C44: @ 80A1C44 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState bl sub_8085620 adds r0, r4, 0 bl DestroyTask @@ -1844,7 +1844,7 @@ sub_80A1E1C: @ 80A1E1C ldr r0, _080A1E44 @ =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem bl sub_8108CB4 adds r0, r4, 0 bl sub_8108B50 @@ -1959,7 +1959,7 @@ sub_80A1EF4: @ 80A1EF4 bl PlaySE adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem adds r0, r4, 0 bl sub_8042DA4 adds r2, r0, 0 diff --git a/asm/link_rfu.s b/asm/link_rfu.s index 08f81f729..1fa1aab8f 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _080FEC70 _080FEC62: diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index c5947ebc0..01e93a41d 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -3366,7 +3366,7 @@ sub_8117440: @ 8117440 str r5, [sp, 0x4] movs r0, 0 mov r3, r8 - bl saved_warp2_set_2 + bl SetDynamicWarpWithCoords bl warp_in add sp, 0x8 pop {r3} @@ -11969,7 +11969,7 @@ _0811BADA: str r0, [sp, 0x4] movs r0, 0x19 adds r1, r4, 0 - bl sub_805E9F8 + bl sprite_new ldr r1, [sp, 0x8] adds r5, r1, r5 strb r0, [r5] diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 1b406a74d..52c2b342c 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -101,7 +101,7 @@ _080695F6: cmp r0, 0 bne _0806961E ldr r2, _08069640 @ =gMapObjects - ldr r0, _08069644 @ =gUnknown_3005074 + ldr r0, _08069644 @ =gSelectedEventObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -133,7 +133,7 @@ _08069634: .align 2, 0 _0806963C: .4byte gTasks _08069640: .4byte gMapObjects -_08069644: .4byte gUnknown_3005074 +_08069644: .4byte gSelectedEventObject thumb_func_end sub_80695CC thumb_func_start sub_8069648 @@ -159,7 +159,7 @@ _08069666: thumb_func_start LockSelectedMapObject LockSelectedMapObject: @ 806966C push {r4,r5,lr} - ldr r4, _080696B0 @ =gUnknown_3005074 + ldr r4, _080696B0 @ =gSelectedEventObject ldrb r0, [r4] bl FreezeMapObjectsExceptOne ldr r0, _080696B4 @ =sub_80695CC @@ -191,7 +191,7 @@ _080696AA: pop {r0} bx r0 .align 2, 0 -_080696B0: .4byte gUnknown_3005074 +_080696B0: .4byte gSelectedEventObject _080696B4: .4byte sub_80695CC _080696B8: .4byte gMapObjects _080696BC: .4byte gTasks @@ -225,7 +225,7 @@ _080696EC: .4byte gMapObjects sub_80696F0: @ 80696F0 push {r4,lr} ldr r4, _08069738 @ =gMapObjects - ldr r0, _0806973C @ =gUnknown_3005074 + ldr r0, _0806973C @ =gSelectedEventObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -257,13 +257,13 @@ _0806970E: bx r0 .align 2, 0 _08069738: .4byte gMapObjects -_0806973C: .4byte gUnknown_3005074 +_0806973C: .4byte gSelectedEventObject thumb_func_end sub_80696F0 thumb_func_start sub_8069740 sub_8069740: @ 8069740 push {lr} - ldr r0, _0806975C @ =gUnknown_3005074 + ldr r0, _0806975C @ =gSelectedEventObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -276,7 +276,7 @@ sub_8069740: @ 8069740 pop {r0} bx r0 .align 2, 0 -_0806975C: .4byte gUnknown_3005074 +_0806975C: .4byte gSelectedEventObject _08069760: .4byte gMapObjects _08069764: .4byte gSpecialVar_Facing thumb_func_end sub_8069740 @@ -284,7 +284,7 @@ _08069764: .4byte gSpecialVar_Facing thumb_func_start sub_8069768 sub_8069768: @ 8069768 push {lr} - ldr r0, _08069780 @ =gUnknown_3005074 + ldr r0, _08069780 @ =gSelectedEventObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -295,7 +295,7 @@ sub_8069768: @ 8069768 pop {r0} bx r0 .align 2, 0 -_08069780: .4byte gUnknown_3005074 +_08069780: .4byte gSelectedEventObject _08069784: .4byte gMapObjects thumb_func_end sub_8069768 diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index 3a0f709da..612672b93 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -334,7 +334,7 @@ itemid_80BF6D8_mail_related: @ 80BF6D8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF6EE bl InUnionRoom @@ -360,7 +360,7 @@ _080BF702: thumb_func_start sub_80BF708 sub_80BF708: @ 80BF708 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF71A ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers diff --git a/asm/overworld.s b/asm/overworld.s index 5f1e198ac..071cca7e6 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48 bl sub_8054C04 adds r4, r0, 0 ldr r5, _08054C6C @ =gStringVar1 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -118,7 +118,7 @@ _08054C9C: .4byte gUnknown_826D29E thumb_func_start sub_8054CA0 sub_8054CA0: @ 8054CA0 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -157,7 +157,7 @@ _08054D04: .4byte 0x0000404d thumb_func_start sub_8054D08 sub_8054D08: @ 8054D08 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -196,7 +196,7 @@ _08054D6C: .4byte 0x0000404d thumb_func_start sub_8054D70 sub_8054D70: @ 8054D70 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -235,7 +235,7 @@ _08054DD4: .4byte 0x0000404d thumb_func_start sub_8054DD8 sub_8054DD8: @ 8054DD8 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -1084,8 +1084,8 @@ saved_warp2_set: @ 80553E8 _08055418: .4byte gSaveBlock1Ptr thumb_func_end saved_warp2_set - thumb_func_start saved_warp2_set_2 -saved_warp2_set_2: @ 805541C + thumb_func_start SetDynamicWarpWithCoords +SetDynamicWarpWithCoords: @ 805541C push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] @@ -1112,7 +1112,7 @@ saved_warp2_set_2: @ 805541C bx r0 .align 2, 0 _08055450: .4byte gSaveBlock1Ptr - thumb_func_end saved_warp2_set_2 + thumb_func_end SetDynamicWarpWithCoords thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1 copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454 @@ -1185,8 +1185,8 @@ sub_80554BC: @ 80554BC _080554C8: .4byte gUnknown_2031DBC thumb_func_end sub_80554BC - thumb_func_start sub_80554CC -sub_80554CC: @ 80554CC + thumb_func_start SetLastHealLocationWarp +SetLastHealLocationWarp: @ 80554CC push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 @@ -1218,7 +1218,7 @@ _08055500: bx r0 .align 2, 0 _08055508: .4byte gSaveBlock1Ptr - thumb_func_end sub_80554CC + thumb_func_end SetLastHealLocationWarp thumb_func_start sub_805550C sub_805550C: @ 805550C @@ -1281,7 +1281,7 @@ sub_805550C: @ 805550C lsls r4, 24 asrs r4, 24 str r4, [sp] - bl sub_80555A0 + bl SetEscapeWarp _08055590: add sp, 0x4 pop {r4-r7} @@ -1292,8 +1292,8 @@ _08055598: .4byte gUnknown_2031DBC _0805559C: .4byte gSaveBlock1Ptr thumb_func_end sub_805550C - thumb_func_start sub_80555A0 -sub_80555A0: @ 80555A0 + thumb_func_start SetEscapeWarp +SetEscapeWarp: @ 80555A0 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1325,7 +1325,7 @@ sub_80555A0: @ 80555A0 bx r0 .align 2, 0 _080555DC: .4byte gSaveBlock1Ptr - thumb_func_end sub_80555A0 + thumb_func_end SetEscapeWarp thumb_func_start sub_80555E0 sub_80555E0: @ 80555E0 @@ -1342,8 +1342,8 @@ _080555F0: .4byte gUnknown_2031DBC _080555F4: .4byte gSaveBlock1Ptr thumb_func_end sub_80555E0 - thumb_func_start sub_80555F8 -sub_80555F8: @ 80555F8 + thumb_func_start SetFixedDiveWarp +SetFixedDiveWarp: @ 80555F8 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1373,7 +1373,7 @@ sub_80555F8: @ 80555F8 bx r0 .align 2, 0 _08055630: .4byte gUnknown_2031DC4 - thumb_func_end sub_80555F8 + thumb_func_end SetFixedDiveWarp thumb_func_start warp1_set_to_warp2 warp1_set_to_warp2: @ 8055634 @@ -1389,8 +1389,8 @@ _08055644: .4byte gUnknown_2031DBC _08055648: .4byte gUnknown_2031DC4 thumb_func_end warp1_set_to_warp2 - thumb_func_start sub_805564C -sub_805564C: @ 805564C + thumb_func_start SetFixedHoleWarp +SetFixedHoleWarp: @ 805564C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1420,10 +1420,10 @@ sub_805564C: @ 805564C bx r0 .align 2, 0 _08055684: .4byte gUnknown_2031DCC - thumb_func_end sub_805564C + thumb_func_end SetFixedHoleWarp - thumb_func_start sub_8055688 -sub_8055688: @ 8055688 + thumb_func_start SetWarpDestinationToFixedHoleWarp +SetWarpDestinationToFixedHoleWarp: @ 8055688 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 @@ -1464,7 +1464,7 @@ _080556D6: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8055688 + thumb_func_end SetWarpDestinationToFixedHoleWarp thumb_func_start warp1_set_to_sav1w warp1_set_to_sav1w: @ 80556E0 @@ -1712,7 +1712,7 @@ sub_8055864: @ 8055864 adds r0, r5, 0 adds r1, r4, 0 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sav1_reset_battle_music_maybe @@ -1784,7 +1784,7 @@ sub_8055920: @ 8055920 lsls r1, 16 lsrs r1, 16 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C cmp r4, 0 beq _08055974 @@ -1817,7 +1817,7 @@ sub_80559A8: @ 80559A8 ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_5_or_6 bl TrySetMapSaveWarpStatus - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sub_8110920 @@ -1830,8 +1830,8 @@ sub_80559A8: @ 80559A8 _080559E0: .4byte gMapHeader thumb_func_end sub_80559A8 - thumb_func_start sub_80559E4 -sub_80559E4: @ 80559E4 + thumb_func_start ResetInitialPlayerAvatarState +ResetInitialPlayerAvatarState: @ 80559E4 ldr r0, _080559F4 @ =gUnknown_2031DD4 movs r2, 0 movs r1, 0x1 @@ -1841,7 +1841,7 @@ sub_80559E4: @ 80559E4 bx lr .align 2, 0 _080559F4: .4byte gUnknown_2031DD4 - thumb_func_end sub_80559E4 + thumb_func_end ResetInitialPlayerAvatarState thumb_func_start sub_80559F8 sub_80559F8: @ 80559F8 @@ -2295,8 +2295,8 @@ sav1_get_flash_used_on_map: @ 8055D30 _08055D3C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_flash_used_on_map - thumb_func_start sub_8055D40 -sub_8055D40: @ 8055D40 + thumb_func_start SetCurrentMapLayout +SetCurrentMapLayout: @ 8055D40 push {lr} ldr r1, _08055D54 @ =gSaveBlock1Ptr ldr r1, [r1] @@ -2309,7 +2309,7 @@ sub_8055D40: @ 8055D40 .align 2, 0 _08055D54: .4byte gSaveBlock1Ptr _08055D58: .4byte gMapHeader - thumb_func_end sub_8055D40 + thumb_func_end SetCurrentMapLayout thumb_func_start sub_8055D5C sub_8055D5C: @ 8055D5C @@ -2464,15 +2464,15 @@ _08055E6C: _08055E74: .4byte 0x00000131 thumb_func_end sub_8055DC4 - thumb_func_start sub_8055E78 -sub_8055E78: @ 8055E78 + thumb_func_start Overworld_SetSavedMusic +Overworld_SetSavedMusic: @ 8055E78 ldr r1, _08055E80 @ =gSaveBlock1Ptr ldr r1, [r1] strh r0, [r1, 0x2C] bx lr .align 2, 0 _08055E80: .4byte gSaveBlock1Ptr - thumb_func_end sub_8055E78 + thumb_func_end Overworld_SetSavedMusic thumb_func_start sav1_reset_battle_music_maybe sav1_reset_battle_music_maybe: @ 8055E84 @@ -2573,8 +2573,8 @@ _08055F42: bx r0 thumb_func_end Overworld_ChangeMusicToDefault - thumb_func_start sub_8055F48 -sub_8055F48: @ 8055F48 + thumb_func_start Overworld_ChangeMusicTo +Overworld_ChangeMusicTo: @ 8055F48 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -2590,7 +2590,7 @@ _08055F62: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8055F48 + thumb_func_end Overworld_ChangeMusicTo thumb_func_start GetMapMusicFadeoutSpeed GetMapMusicFadeoutSpeed: @ 8055F68 @@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420 bx r0 thumb_func_end sub_8056420 - thumb_func_start sub_805642C -sub_805642C: @ 805642C + thumb_func_start is_c1_link_related_active +is_c1_link_related_active: @ 805642C push {lr} ldr r0, _0805643C @ =gMain ldr r1, [r0] @@ -3243,7 +3243,7 @@ _08056444: _08056446: pop {r1} bx r1 - thumb_func_end sub_805642C + thumb_func_end is_c1_link_related_active thumb_func_start sub_805644C sub_805644C: @ 805644C @@ -3494,7 +3494,7 @@ CB2_NewGame: @ 8056644 bl StopMapMusic bl sub_8056420 bl sub_8054A60 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable @@ -3662,7 +3662,7 @@ _080567D8: .4byte sub_80565B4 thumb_func_start c2_exit_to_overworld_2_switch c2_exit_to_overworld_2_switch: @ 80567DC push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080567F4 ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link @@ -4705,7 +4705,7 @@ mli4_mapscripts_and_other: @ 805709C bl InitPlayerAvatar ldrb r0, [r5] bl SetPlayerAvatarTransitionFlags - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0 movs r1, 0 bl sub_805EC30 @@ -6144,7 +6144,7 @@ _08057C72: bl sub_805833C cmp r0, 0x1 bls _08057CA8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08057CA8 bl sub_800A00C @@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0 thumb_func_start sub_8058244 sub_8058244: @ 8058244 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08058252 movs r0, 0 @@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274 bl sub_800B248 cmp r0, 0x1 bls _080582D8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080582D8 bl sub_800A00C @@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0 bl sub_805833C cmp r0, 0x1 bls _08058304 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08058304 bl sub_800A00C diff --git a/asm/party_menu.s b/asm/party_menu.s index c4980f984..c0e4a79f4 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -3383,7 +3383,7 @@ _08120468: bl GetMonNickname ldr r1, _081204A0 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081204A4 @ =gStringVar4 ldr r1, _081204A8 @ =gUnknown_8416C2A adds r0, r4, 0 @@ -3424,7 +3424,7 @@ sub_81204AC: @ 81204AC bl GetMonNickname ldr r1, _08120500 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120504 @ =gStringVar4 ldr r1, _08120508 @ =gUnknown_8416CAC adds r0, r4, 0 @@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C bl GetMonNickname ldr r1, _0812054C @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120550 @ =gStringVar4 ldr r1, _08120554 @ =gUnknown_8416C49 adds r0, r4, 0 @@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558 bl sub_8124B60 ldr r1, _081205B8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _081205BC @ =gStringVar2 adds r0, r5, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081205C0 @ =gStringVar4 ldr r1, _081205C4 @ =gUnknown_8416CEA adds r0, r4, 0 @@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610 b _0812064E _0812062C: movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _0812064C @@ -4298,7 +4298,7 @@ _08120B86: lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9943,7 +9943,7 @@ _081237CC: beq _081237F8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 ldrsb r0, [r5, r0] mov r1, r8 @@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824 bl sub_81205C8 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _0812389C @ =gTasks lsls r0, r7, 2 adds r0, r7 @@ -10133,17 +10133,17 @@ _08123956: ldr r5, _08123998 @ =gSpecialVar_ItemId ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r6, _0812399C @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081239AC ldrh r0, [r5] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrh r0, [r6] bl sub_8120658 ldr r0, _081239A0 @ =gStringVar4 @@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem mov r0, r8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 @@ -10903,7 +10903,7 @@ _08123FAA: lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48 bhi _08124EB0 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124EB0: mov r1, r8 ldr r0, [r1] @@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC bhi _08124F7C adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124F7C: mov r1, r8 ldr r0, [r1] @@ -13418,7 +13418,7 @@ _0812544C: beq _0812547E adds r0, r6, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem b _0812547E .align 2, 0 _08125474: .4byte gUnknown_203B0C0 @@ -13963,7 +13963,7 @@ sub_8125898: @ 8125898 bl PlaySE ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r2, 0xE ldrsh r1, [r5, r2] adds r1, 0xD @@ -14065,7 +14065,7 @@ _081259A0: bl PlaySE adds r0, r5, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0 ldrsh r1, [r7, r0] adds r1, 0xD @@ -14185,8 +14185,8 @@ _08125ABC: bx r1 thumb_func_end sub_8125A90 - thumb_func_start pokemon_has_move -pokemon_has_move: @ 8125AC0 + thumb_func_start MonKnowsMove +MonKnowsMove: @ 8125AC0 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 @@ -14212,7 +14212,7 @@ _08125AE8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end pokemon_has_move + thumb_func_end MonKnowsMove thumb_func_start sub_8125AF0 sub_8125AF0: @ 8125AF0 @@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48 bhi _08125C84 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08125C84: ldr r1, _08125CD8 @ =gStringVar1 adds r0, r5, 0 @@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350 bl sub_8126440 ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _08126428 @ =gStringVar1 adds r0, r4, 0 bl GetMonNickname @@ -16117,7 +16117,7 @@ _08126AB4: ldr r0, _08126ADC @ =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08126ABE: ldr r1, _08126AE4 @ =gTasks lsls r0, r4, 2 @@ -16269,7 +16269,7 @@ sub_8126BD4: @ 8126BD4 bl sub_80A2294 ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem pop {r4,r5} pop {r0} bx r0 @@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem adds r0, r7, 0 bl sub_81273AC ldr r0, [r6] @@ -17117,7 +17117,7 @@ _0812728E: ldr r6, _081272C4 @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081272CC @@ -17240,7 +17240,7 @@ _0812739C: .4byte gUnknown_203B0A0 _081273A0: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _081273A8: pop {r0} bx r0 @@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC beq _081273C8 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A3C8 + bl AddPCItem b _081273D0 .align 2, 0 _081273C4: .4byte gUnknown_203B0A0 _081273C8: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _081273D0: lsls r0, 24 lsrs r0, 24 diff --git a/asm/player_pc.s b/asm/player_pc.s index c4eab0f30..4fea7bea1 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -25,7 +25,7 @@ _080EB672: ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364 adds r5, r1, r0 ldrh r0, [r5, 0x20] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _080EC3B4 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 37f9e9762..c40afefde 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5151,7 +5151,7 @@ _0808E2E8: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _0808E314 @@ -5504,7 +5504,7 @@ _0808E5E0: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6643,7 +6643,7 @@ _0808EF56: mov r0, sp ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0808EF60: add sp, 0x4 pop {r0} diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8db247b2b..65fc2cb45 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -3587,7 +3587,7 @@ _08136338: ldr r1, [r6] ldr r2, _0813634C @ =0x00003074 adds r1, r2 - bl sub_8099E90 + bl CopyItemName _08136342: add sp, 0x14 pop {r4-r7} @@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208 thumb_func_start sub_8138B4C sub_8138B4C: @ 8138B4C push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08138B84 bl sub_811FA20 @@ -13239,7 +13239,7 @@ _0813B16C: _0813B190: .4byte 0x000032f4 _0813B194: .4byte 0x00003210 _0813B198: - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0813B1C4 ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers diff --git a/asm/scrcmd.s b/asm/scrcmd.s deleted file mode 100644 index e8ffcf3ab..000000000 --- a/asm/scrcmd.s +++ /dev/null @@ -1,5612 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8069ED0 -sub_8069ED0: @ 8069ED0 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED0 - - thumb_func_start sub_8069ED4 -sub_8069ED4: @ 8069ED4 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED4 - - thumb_func_start ScrCmd_end -ScrCmd_end: @ 8069ED8 - push {lr} - bl StopScript - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_end - - thumb_func_start ScrCmd_gotonative -ScrCmd_gotonative: @ 8069EE4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_gotonative - - thumb_func_start sub_8069EFC -sub_8069EFC: @ 8069EFC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F18 @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F1C @ =gStdScripts - cmp r1, r0 - bcs _08069F20 - ldr r0, [r1] - bl _call_via_r0 - b _08069F2C - .align 2, 0 -_08069F18: .4byte gSpecials -_08069F1C: .4byte gStdScripts -_08069F20: - ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r2, _08069F38 @ =gUnknown_83A7290 "0" - movs r1, 0xF1 - movs r3, 0x1 - bl AGBAssert -_08069F2C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08069F34: .4byte gUnknown_83A725C -_08069F38: .4byte gUnknown_83A7290 - thumb_func_end sub_8069EFC - - thumb_func_start sub_8069F3C -sub_8069F3C: @ 8069F3C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F6C @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F70 @ =gStdScripts - cmp r1, r0 - bcs _08069F74 - ldr r0, [r1] - bl _call_via_r0 - strh r0, [r5] - b _08069F80 - .align 2, 0 -_08069F6C: .4byte gSpecials -_08069F70: .4byte gStdScripts -_08069F74: - ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r1, _08069F8C @ =0x00000107 - ldr r2, _08069F90 @ =gUnknown_83A7290 "0" - movs r3, 0x1 - bl AGBAssert -_08069F80: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08069F88: .4byte gUnknown_83A725C -_08069F8C: .4byte 0x00000107 -_08069F90: .4byte gUnknown_83A7290 - thumb_func_end sub_8069F3C - - thumb_func_start ScrCmd_callnative -ScrCmd_callnative: @ 8069F94 - push {lr} - bl ScriptReadWord - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_callnative - - thumb_func_start sub_8069FA4 -sub_8069FA4: @ 8069FA4 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8069FA4 - - thumb_func_start ScrCmd_goto -ScrCmd_goto: @ 8069FB0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_goto - - thumb_func_start ScrCmd_return -ScrCmd_return: @ 8069FC8 - push {lr} - bl ScriptReturn - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_return - - thumb_func_start ScrCmd_call -ScrCmd_call: @ 8069FD4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_call - - thumb_func_start ScrCmd_goto_if -ScrCmd_goto_if: @ 8069FEC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A024 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A01A - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A01A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A024: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_goto_if - - thumb_func_start ScrCmd_call_if -ScrCmd_call_if: @ 806A028 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A060 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A056 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A056: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A060: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_call_if - - thumb_func_start ScrCmd_setvaddress -ScrCmd_setvaddress: @ 806A064 - push {r4,lr} - ldr r4, [r0, 0x8] - subs r4, 0x1 - bl ScriptReadWord - ldr r1, _0806A07C @ =gUnknown_20370A8 - subs r0, r4 - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A07C: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_setvaddress - - thumb_func_start ScrCmd_vgoto -ScrCmd_vgoto: @ 806A080 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0A0 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0A0: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vgoto - - thumb_func_start ScrCmd_vcall -ScrCmd_vcall: @ 806A0A4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0C4 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0C4: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vcall - - thumb_func_start ScrCmd_vgoto_if -ScrCmd_vgoto_if: @ 806A0C8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A104 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A108 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A0FA - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A0FA: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A104: .4byte gUnknown_20370A8 -_0806A108: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vgoto_if - - thumb_func_start ScrCmd_vcall_if -ScrCmd_vcall_if: @ 806A10C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A148 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A14C @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A13E - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A13E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A148: .4byte gUnknown_20370A8 -_0806A14C: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vcall_if - - thumb_func_start ScrCmd_gotostd -ScrCmd_gotostd: @ 806A150 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A178 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A17C @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A170 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptJump -_0806A170: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A178: .4byte gStdScripts -_0806A17C: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd - - thumb_func_start ScrCmd_callstd -ScrCmd_callstd: @ 806A180 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A1A8 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A1AC @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1A0 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptCall -_0806A1A0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A1A8: .4byte gStdScripts -_0806A1AC: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd - - thumb_func_start ScrCmd_gotostd_if -ScrCmd_gotostd_if: @ 806A1B0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A1F0 @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A1E8 - lsls r0, r4, 2 - ldr r1, _0806A1F4 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A1F8 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1E8 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptJump -_0806A1E8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A1F0: .4byte gUnknown_83A7248 -_0806A1F4: .4byte gStdScripts -_0806A1F8: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd_if - - thumb_func_start ScrCmd_callstd_if -ScrCmd_callstd_if: @ 806A1FC - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A23C @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A234 - lsls r0, r4, 2 - ldr r1, _0806A240 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A244 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A234 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptCall -_0806A234: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A23C: .4byte gUnknown_83A7248 -_0806A240: .4byte gStdScripts -_0806A244: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd_if - - thumb_func_start ScrCmd_gotoram -ScrCmd_gotoram: @ 806A248 - push {lr} - ldr r1, _0806A258 @ =gUnknown_20370A4 - ldr r1, [r1] - bl ScriptJump - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A258: .4byte gUnknown_20370A4 - thumb_func_end ScrCmd_gotoram - - thumb_func_start ScrCmd_killscript -ScrCmd_killscript: @ 806A25C - push {r4,lr} - adds r4, r0, 0 - bl ClearRamScript - adds r0, r4, 0 - bl StopScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_killscript - - thumb_func_start ScrCmd_setmysteryeventstatus -ScrCmd_setmysteryeventstatus: @ 806A274 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl SetMysteryEventScriptStatus - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmysteryeventstatus - - thumb_func_start sub_806A28C -sub_806A28C: @ 806A28C - push {r4,lr} - adds r4, r0, 0 - bl sub_8069E48 - adds r2, r0, 0 - cmp r2, 0 - beq _0806A2A8 - ldr r1, _0806A2B0 @ =gUnknown_20370A4 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r0, r4, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A2A8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A2B0: .4byte gUnknown_20370A4 - thumb_func_end sub_806A28C - - thumb_func_start ScrCmd_loadword -ScrCmd_loadword: @ 806A2B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadword - - thumb_func_start ScrCmd_loadbytefromaddr -ScrCmd_loadbytefromaddr: @ 806A2D8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadbytefromaddr - - thumb_func_start ScrCmd_writebytetoaddr -ScrCmd_writebytetoaddr: @ 806A2FC - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - strb r4, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_writebytetoaddr - - thumb_func_start ScrCmd_loadbyte -ScrCmd_loadbyte: @ 806A314 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r2, r0, 0 - adds r2, 0x64 - adds r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_loadbyte - - thumb_func_start ScrCmd_setptrbyte -ScrCmd_setptrbyte: @ 806A330 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setptrbyte - - thumb_func_start ScrCmd_copylocal -ScrCmd_copylocal: @ 806A354 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r0, 0x64 - adds r3, r0, r3 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_copylocal - - thumb_func_start ScrCmd_copybyte -ScrCmd_copybyte: @ 806A374 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadWord - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copybyte - - thumb_func_start ScrCmd_setvar -ScrCmd_setvar: @ 806A390 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setvar - - thumb_func_start ScrCmd_copyvar -ScrCmd_copyvar: @ 806A3B4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copyvar - - thumb_func_start ScrCmd_setorcopyvar -ScrCmd_setorcopyvar: @ 806A3E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setorcopyvar - - thumb_func_start compare_012 -compare_012: @ 806A40C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, r1 - bcs _0806A41E - movs r0, 0 - b _0806A428 -_0806A41E: - cmp r0, r1 - beq _0806A426 - movs r0, 0x2 - b _0806A428 -_0806A426: - movs r0, 0x1 -_0806A428: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start ScrCmd_compare_local_to_local -ScrCmd_compare_local_to_local: @ 806A42C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - lsls r0, 2 - adds r3, r4, 0 - adds r3, 0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r3, r1 - ldrb r1, [r3] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_local - - thumb_func_start ScrCmd_compare_local_to_value -ScrCmd_compare_local_to_value: @ 806A45C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_value - - thumb_func_start ScrCmd_compare_local_to_addr -ScrCmd_compare_local_to_addr: @ 806A484 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r5, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_addr - - thumb_func_start ScrCmd_compare_addr_to_local -ScrCmd_compare_addr_to_local: @ 806A4B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r3, [r4, 0x8] - ldrb r2, [r3] - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x64 - adds r1, r2 - ldrb r1, [r1] - adds r3, 0x1 - str r3, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_local - - thumb_func_start ScrCmd_compare_addr_to_value -ScrCmd_compare_addr_to_value: @ 806A4DC - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_value - - thumb_func_start ScrCmd_compare_addr_to_addr -ScrCmd_compare_addr_to_addr: @ 806A4FC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r5, [r0] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_addr - - thumb_func_start ScrCmd_compare_var_to_value -ScrCmd_compare_var_to_value: @ 806A520 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_value - - thumb_func_start ScrCmd_compare_var_to_var -ScrCmd_compare_var_to_var: @ 806A550 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_var - - thumb_func_start ScrCmd_addvar -ScrCmd_addvar: @ 806A584 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addvar - - thumb_func_start ScrCmd_subvar -ScrCmd_subvar: @ 806A5AC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_subvar - - thumb_func_start ScrCmd_random -ScrCmd_random: @ 806A5DC - push {r4,r5,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, _0806A60C @ =gSpecialVar_Result - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A60C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_random - - thumb_func_start sub_806A610 -sub_806A610: @ 806A610 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A658 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r4, 0 - bl sub_809A824 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A658: .4byte gSpecialVar_Result - thumb_func_end sub_806A610 - - thumb_func_start ScrCmd_takeitem -ScrCmd_takeitem: @ 806A65C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A69C @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A1D8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A69C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takeitem - - thumb_func_start sub_806A6A0 -sub_806A6A0: @ 806A6A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A6E0 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A000 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A6E0: .4byte gSpecialVar_Result - thumb_func_end sub_806A6A0 - - thumb_func_start sub_806A6E4 -sub_806A6E4: @ 806A6E4 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A724 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8099F40 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A724: .4byte gSpecialVar_Result - thumb_func_end sub_806A6E4 - - thumb_func_start ScrCmd_checkitemtype -ScrCmd_checkitemtype: @ 806A728 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806A750 @ =gSpecialVar_Result - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A750: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkitemtype - - thumb_func_start ScrCmd_givepcitem -ScrCmd_givepcitem: @ 806A754 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A794 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A3C8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A794: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givepcitem - - thumb_func_start ScrCmd_checkpcitem -ScrCmd_checkpcitem: @ 806A798 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A7D8 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A374 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A7D8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkpcitem - - thumb_func_start sub_806A7DC -sub_806A7DC: @ 806A7DC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7DC - - thumb_func_start sub_806A7F0 -sub_806A7F0: @ 806A7F0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7F0 - - thumb_func_start sub_806A804 -sub_806A804: @ 806A804 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A804 - - thumb_func_start sub_806A818 -sub_806A818: @ 806A818 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A818 - - thumb_func_start ScrCmd_setflag -ScrCmd_setflag: @ 806A82C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflag - - thumb_func_start ScrCmd_clearflag -ScrCmd_clearflag: @ 806A840 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagClear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_clearflag - - thumb_func_start ScrCmd_checkflag -ScrCmd_checkflag: @ 806A854 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkflag - - thumb_func_start ScrCmd_incrementgamestat -ScrCmd_incrementgamestat: @ 806A870 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl IncrementGameStat - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_incrementgamestat - - thumb_func_start sub_806A888 -sub_806A888: @ 806A888 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r6, r0, 0 - adds r0, r4, 0 - bl GetGameStat - cmp r0, r6 - bcs _0806A8AA - movs r0, 0 - b _0806A8B4 -_0806A8AA: - cmp r0, r6 - bne _0806A8B2 - movs r0, 0x1 - b _0806A8B4 -_0806A8B2: - movs r0, 0x2 -_0806A8B4: - strb r0, [r5, 0x2] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806A888 - - thumb_func_start sub_806A8C0 -sub_806A8C0: @ 806A8C0 - push {r4,lr} - bl ScriptReadHalfword - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8115748 - adds r0, r4, 0 - bl sub_80F85BC - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806A8C0 - - thumb_func_start ScrCmd_animateflash -ScrCmd_animateflash: @ 806A8E0 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_807F028 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_animateflash - - thumb_func_start ScrCmd_setflashradius -ScrCmd_setflashradius: @ 806A8FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl Overworld_SetFlashLevel - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflashradius - - thumb_func_start sub_806A918 -sub_806A918: @ 806A918 - push {lr} - ldr r0, _0806A92C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806A930 - movs r0, 0 - b _0806A932 - .align 2, 0 -_0806A92C: .4byte gPaletteFade -_0806A930: - movs r0, 0x1 -_0806A932: - pop {r1} - bx r1 - thumb_func_end sub_806A918 - - thumb_func_start ScrCmd_fadescreen -ScrCmd_fadescreen: @ 806A938 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x8] - ldrb r0, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - movs r1, 0 - bl fade_screen - ldr r1, _0806A95C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A95C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreen - - thumb_func_start ScrCmd_fadescreenspeed -ScrCmd_fadescreenspeed: @ 806A960 - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r1, 24 - asrs r1, 24 - bl fade_screen - ldr r1, _0806A98C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A98C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreenspeed - - thumb_func_start RunPauseTimer -RunPauseTimer: @ 806A990 - push {lr} - ldr r1, _0806A9A4 @ =gUnknown_20370AE - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0806A9A8 - movs r0, 0 - b _0806A9AA - .align 2, 0 -_0806A9A4: .4byte gUnknown_20370AE -_0806A9A8: - movs r0, 0x1 -_0806A9AA: - pop {r1} - bx r1 - thumb_func_end RunPauseTimer - - thumb_func_start ScrCmd_delay -ScrCmd_delay: @ 806A9B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - ldr r1, _0806A9CC @ =gUnknown_20370AE - strh r0, [r1] - ldr r1, _0806A9D0 @ =RunPauseTimer - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A9CC: .4byte gUnknown_20370AE -_0806A9D0: .4byte RunPauseTimer - thumb_func_end ScrCmd_delay - - thumb_func_start sub_806A9D4 -sub_806A9D4: @ 806A9D4 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D4 - - thumb_func_start sub_806A9D8 -sub_806A9D8: @ 806A9D8 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D8 - - thumb_func_start sub_806A9DC -sub_806A9DC: @ 806A9DC - ldr r0, _0806A9F0 @ =gSpecialVar_0x8000 - movs r1, 0 - strh r1, [r0] - ldr r0, _0806A9F4 @ =gSpecialVar_0x8001 - strh r1, [r0] - ldr r0, _0806A9F8 @ =gSpecialVar_0x8002 - strh r1, [r0] - movs r0, 0 - bx lr - .align 2, 0 -_0806A9F0: .4byte gSpecialVar_0x8000 -_0806A9F4: .4byte gSpecialVar_0x8001 -_0806A9F8: .4byte gSpecialVar_0x8002 - thumb_func_end sub_806A9DC - - thumb_func_start ScrCmd_setweather -ScrCmd_setweather: @ 806A9FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl SetSav1Weather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setweather - - thumb_func_start ScrCmd_resetweather -ScrCmd_resetweather: @ 806AA18 - push {lr} - bl sub_807B140 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetweather - - thumb_func_start ScrCmd_doweather -ScrCmd_doweather: @ 806AA24 - push {lr} - bl DoCurrentWeather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_doweather - - thumb_func_start ScrCmd_setstepcallback -ScrCmd_setstepcallback: @ 806AA30 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl ActivatePerStepCallback - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setstepcallback - - thumb_func_start ScrCmd_setmaplayoutindex -ScrCmd_setmaplayoutindex: @ 806AA48 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_8055D40 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmaplayoutindex - - thumb_func_start ScrCmd_warp -ScrCmd_warp: @ 806AA64 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warp - - thumb_func_start ScrCmd_warpsilent -ScrCmd_warpsilent: @ 806AAEC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sp13E_warp_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpsilent - - thumb_func_start ScrCmd_warpdoor -ScrCmd_warpdoor: @ 806AB74 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E4DC - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpdoor - - thumb_func_start ScrCmd_warphole -ScrCmd_warphole: @ 806ABFC - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, [r0, 0x8] - ldrb r6, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl PlayerGetDestCoords - cmp r6, 0xFF - bne _0806AC3A - cmp r5, 0xFF - bne _0806AC3A - add r0, sp, 0x4 - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - asrs r1, 16 - bl sub_8055688 - b _0806AC5E -_0806AC3A: - lsls r0, r6, 24 - asrs r0, 24 - lsls r1, r5, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - add r3, sp, 0x4 - ldrb r3, [r3] - subs r3, 0x7 - lsls r3, 24 - asrs r3, 24 - ldrb r4, [r4] - subs r4, 0x7 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination -_0806AC5E: - bl sp13F_fall_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warphole - - thumb_func_start sub_806AC70 -sub_806AC70: @ 806AC70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E59C - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AC70 - - thumb_func_start sub_806ACF8 -sub_806ACF8: @ 806ACF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805DAE4 - bl sub_807E500 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806ACF8 - - thumb_func_start ScrCmd_setwarp -ScrCmd_setwarp: @ 806AD8C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwarp - - thumb_func_start ScrCmd_setdynamicwarp -ScrCmd_setdynamicwarp: @ 806AE0C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - lsls r0, 24 - asrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl saved_warp2_set_2 - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdynamicwarp - - thumb_func_start sub_806AE90 -sub_806AE90: @ 806AE90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555F8 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AE90 - - thumb_func_start sub_806AF10 -sub_806AF10: @ 806AF10 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_805564C - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AF10 - - thumb_func_start ScrCmd_setescapewarp -ScrCmd_setescapewarp: @ 806AF90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555A0 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setescapewarp - - thumb_func_start ScrCmd_getplayerxy -ScrCmd_getplayerxy: @ 806B010 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldr r2, _0806B048 @ =gSaveBlock1Ptr - ldr r1, [r2] - ldrh r1, [r1] - strh r1, [r5] - ldr r1, [r2] - ldrh r1, [r1, 0x2] - strh r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B048: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_getplayerxy - - thumb_func_start ScrCmd_getpartysize -ScrCmd_getpartysize: @ 806B04C - push {r4,lr} - ldr r4, _0806B064 @ =gSpecialVar_Result - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B064: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_getpartysize - - thumb_func_start ScrCmd_playse -ScrCmd_playse: @ 806B068 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playse - - thumb_func_start WaitForSoundEffectFinish -WaitForSoundEffectFinish: @ 806B07C - push {lr} - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _0806B08C - movs r0, 0 - b _0806B08E -_0806B08C: - movs r0, 0x1 -_0806B08E: - pop {r1} - bx r1 - thumb_func_end WaitForSoundEffectFinish - - thumb_func_start sub_806B094 -sub_806B094: @ 806B094 - push {lr} - ldr r1, _0806B0A4 @ =WaitForSoundEffectFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0A4: .4byte WaitForSoundEffectFinish - thumb_func_end sub_806B094 - - thumb_func_start ScrCmd_playfanfare -ScrCmd_playfanfare: @ 806B0A8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlayFanfare - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playfanfare - - thumb_func_start WaitForFanfareFinish -WaitForFanfareFinish: @ 806B0BC - push {lr} - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end WaitForFanfareFinish - - thumb_func_start sub_806B0CC -sub_806B0CC: @ 806B0CC - push {lr} - ldr r1, _0806B0DC @ =WaitForFanfareFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0DC: .4byte WaitForFanfareFinish - thumb_func_end sub_806B0CC - - thumb_func_start sub_806B0E0 -sub_806B0E0: @ 806B0E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - adds r5, r1, 0 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B11C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B114 - cmp r2, 0x1 - bne _0806B10E - adds r0, r1, 0 - bl sub_8055E78 -_0806B10E: - adds r0, r5, 0 - bl PlayNewMapMusic -_0806B114: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B11C: .4byte gUnknown_203ADFA - thumb_func_end sub_806B0E0 - - thumb_func_start sub_806B120 -sub_806B120: @ 806B120 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl sub_8055E78 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B120 - - thumb_func_start sub_806B134 -sub_806B134: @ 806B134 - push {lr} - ldr r0, _0806B150 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B148 - bl Overworld_ChangeMusicToDefault -_0806B148: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B150: .4byte gUnknown_203ADFA - thumb_func_end sub_806B134 - - thumb_func_start sub_806B154 -sub_806B154: @ 806B154 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0806B178 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B172 - adds r0, r1, 0 - bl sub_8055F48 -_0806B172: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B178: .4byte gUnknown_203ADFA - thumb_func_end sub_806B154 - - thumb_func_start sub_806B17C -sub_806B17C: @ 806B17C - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B19C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B1A0 - movs r0, 0 - b _0806B1BE - .align 2, 0 -_0806B19C: .4byte gUnknown_203ADFA -_0806B1A0: - cmp r1, 0 - beq _0806B1AE - lsls r0, r1, 26 - lsrs r0, 24 - bl FadeOutBGMTemporarily - b _0806B1B4 -_0806B1AE: - movs r0, 0x4 - bl FadeOutBGMTemporarily -_0806B1B4: - ldr r1, _0806B1C4 @ =IsBGMPausedOrStopped - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 -_0806B1BE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B1C4: .4byte IsBGMPausedOrStopped - thumb_func_end sub_806B17C - - thumb_func_start sub_806B1C8 -sub_806B1C8: @ 806B1C8 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806B1F0 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B1FA - cmp r2, 0 - beq _0806B1F4 - lsls r0, r2, 26 - lsrs r0, 24 - bl FadeInBGM - b _0806B1FA - .align 2, 0 -_0806B1F0: .4byte gUnknown_203ADFA -_0806B1F4: - movs r0, 0x4 - bl FadeInBGM -_0806B1FA: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B1C8 - - thumb_func_start ScrCmd_applymovement -ScrCmd_applymovement: @ 806B200 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _0806B23C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B240 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B23C: .4byte gSaveBlock1Ptr -_0806B240: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement - - thumb_func_start ScrCmd_applymovement_at -ScrCmd_applymovement_at: @ 806B244 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r0, r4, 24 - lsrs r0, 24 - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B284 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B284: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement_at - - thumb_func_start WaitForMovementFinish -WaitForMovementFinish: @ 806B288 - push {lr} - ldr r0, _0806B2A4 @ =gUnknown_20370B0 - ldrb r0, [r0] - ldr r1, _0806B2A8 @ =gUnknown_20370B4 - ldrb r1, [r1] - ldr r2, _0806B2AC @ =gUnknown_20370B2 - ldrb r2, [r2] - bl ScriptMovement_IsObjectMovementFinished - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0806B2A4: .4byte gUnknown_20370B0 -_0806B2A8: .4byte gUnknown_20370B4 -_0806B2AC: .4byte gUnknown_20370B2 - thumb_func_end WaitForMovementFinish - - thumb_func_start ScrCmd_waitmovement -ScrCmd_waitmovement: @ 806B2B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B2CC - ldr r0, _0806B2F0 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B2CC: - ldr r1, _0806B2F4 @ =gUnknown_20370B2 - ldr r0, _0806B2F8 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B2FC @ =gUnknown_20370B4 - movs r0, 0x5 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B300 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B2F0: .4byte gUnknown_20370B0 -_0806B2F4: .4byte gUnknown_20370B2 -_0806B2F8: .4byte gSaveBlock1Ptr -_0806B2FC: .4byte gUnknown_20370B4 -_0806B300: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement - - thumb_func_start ScrCmd_waitmovement_at -ScrCmd_waitmovement_at: @ 806B304 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B320 - ldr r0, _0806B348 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B320: - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B34C @ =gUnknown_20370B2 - strh r2, [r0] - ldr r0, _0806B350 @ =gUnknown_20370B4 - strh r1, [r0] - ldr r1, _0806B354 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B348: .4byte gUnknown_20370B0 -_0806B34C: .4byte gUnknown_20370B2 -_0806B350: .4byte gUnknown_20370B4 -_0806B354: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement_at - - thumb_func_start ScrCmd_removeobject -ScrCmd_removeobject: @ 806B358 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B37C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B37C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_removeobject - - thumb_func_start ScrCmd_removeobject_at -ScrCmd_removeobject_at: @ 806B380 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_removeobject_at - - thumb_func_start ScrCmd_addobject -ScrCmd_addobject: @ 806B3B0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B3D4 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl show_sprite - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B3D4: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_addobject - - thumb_func_start ScrCmd_addobject_at -ScrCmd_addobject_at: @ 806B3D8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl show_sprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addobject_at - - thumb_func_start ScrCmd_setobjectxy -ScrCmd_setobjectxy: @ 806B408 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r5, 24 - lsrs r5, 24 - ldr r1, _0806B46C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r4, 16 - asrs r4, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - adds r3, r4, 0 - bl sub_805F7C4 - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806B46C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_setobjectxy - - thumb_func_start ScrCmd_setobjectxyperm -ScrCmd_setobjectxyperm: @ 806B470 - push {r4-r6,lr} - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r2, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl Overworld_SetMapObjTemplateCoords - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectxyperm - - thumb_func_start ScrCmd_moveobjectoffscreen -ScrCmd_moveobjectoffscreen: @ 806B4C8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B4EC @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_805FE94 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B4EC: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_moveobjectoffscreen - - thumb_func_start ScrCmd_showobject_at -ScrCmd_showobject_at: @ 806B4F0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_showobject_at - - thumb_func_start ScrCmd_hideobject_at -ScrCmd_hideobject_at: @ 806B520 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_hideobject_at - - thumb_func_start ScrCmd_setobjectpriority -ScrCmd_setobjectpriority: @ 806B550 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r5, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r5, 0x8] - ldrb r1, [r3] - adds r4, r3, 0x1 - str r4, [r5, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - adds r3, 0x53 - lsls r3, 24 - lsrs r3, 24 - bl sub_805F3A8 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectpriority - - thumb_func_start ScrCmd_resetobjectpriority -ScrCmd_resetobjectpriority: @ 806B58C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_805F400 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetobjectpriority - - thumb_func_start ScrCmd_faceplayer -ScrCmd_faceplayer: @ 806B5BC - push {r4,lr} - ldr r2, _0806B5EC @ =gMapObjects - ldr r0, _0806B5F0 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0806B5E4 - bl player_get_direction_lower_nybble - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectFaceOppositeDirection -_0806B5E4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B5EC: .4byte gMapObjects -_0806B5F0: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_faceplayer - - thumb_func_start ScrCmd_turnobject -ScrCmd_turnobject: @ 806B5F4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, [r4, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B624 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl FieldObjectTurnByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B624: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_turnobject - - thumb_func_start ScrCmd_setobjectmovementtype -ScrCmd_setobjectmovementtype: @ 806B628 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl Overworld_SetMapObjTemplateMovementType - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectmovementtype - - thumb_func_start ScrCmd_createvobject -ScrCmd_createvobject: @ 806B650 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r4, 16 - asrs r4, 16 - lsls r3, 16 - asrs r3, 16 - str r2, [sp] - str r1, [sp, 0x4] - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_805E9F8 - movs r0, 0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_createvobject - - thumb_func_start ScrCmd_turnvobject -ScrCmd_turnvobject: @ 806B6C0 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_8069058 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_turnvobject - - thumb_func_start ScrCmd_lockall -ScrCmd_lockall: @ 806B6DC - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - bne _0806B6FC - bl ScriptFreezeMapObjects - ldr r1, _0806B6F8 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806B6FE - .align 2, 0 -_0806B6F8: .4byte sub_8069590 -_0806B6FC: - movs r0, 0 -_0806B6FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_lockall - - thumb_func_start ScrCmd_lock -ScrCmd_lock: @ 806B704 - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - beq _0806B714 - movs r0, 0 - b _0806B752 -_0806B714: - ldr r2, _0806B738 @ =gMapObjects - ldr r0, _0806B73C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0806B744 - bl LockSelectedMapObject - ldr r1, _0806B740 @ =sub_8069648 - adds r0, r4, 0 - bl SetupNativeScript - b _0806B750 - .align 2, 0 -_0806B738: .4byte gMapObjects -_0806B73C: .4byte gUnknown_3005074 -_0806B740: .4byte sub_8069648 -_0806B744: - bl ScriptFreezeMapObjects - ldr r1, _0806B758 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript -_0806B750: - movs r0, 0x1 -_0806B752: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B758: .4byte sub_8069590 - thumb_func_end ScrCmd_lock - - thumb_func_start ScrCmd_releaseall -ScrCmd_releaseall: @ 806B75C - push {lr} - bl HideFieldMessageBox - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0806B790 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B790: .4byte gMapObjects - thumb_func_end ScrCmd_releaseall - - thumb_func_start ScrCmd_release -ScrCmd_release: @ 806B794 - push {r4,lr} - bl HideFieldMessageBox - ldr r4, _0806B7E4 @ =gMapObjects - ldr r0, _0806B7E8 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0806B7B6 - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0806B7B6: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B7E4: .4byte gMapObjects -_0806B7E8: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_release - - thumb_func_start sub_806B7EC -sub_806B7EC: @ 806B7EC - ldr r2, _0806B804 @ =gUnknown_20370DC - ldr r3, _0806B808 @ =gUnknown_20370DA - ldrh r1, [r3] - strh r1, [r2] - ldr r1, [r0, 0x8] - ldrb r2, [r1] - strh r2, [r3] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_0806B804: .4byte gUnknown_20370DC -_0806B808: .4byte gUnknown_20370DA - thumb_func_end sub_806B7EC - - thumb_func_start sub_806B80C -sub_806B80C: @ 806B80C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B81A - ldr r0, [r4, 0x64] -_0806B81A: - bl ShowFieldMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B80C - - thumb_func_start sub_806B828 -sub_806B828: @ 806B828 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B836 - ldr r0, [r4, 0x64] -_0806B836: - bl sub_80F7974 - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B828 - - thumb_func_start sub_806B850 -sub_806B850: @ 806B850 - push {lr} - bl sub_80F7998 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B850 - - thumb_func_start sub_806B85C -sub_806B85C: @ 806B85C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B86A - ldr r0, [r4, 0x64] -_0806B86A: - bl ShowFieldAutoScrollMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B85C - - thumb_func_start sub_806B878 -sub_806B878: @ 806B878 - push {lr} - ldr r1, _0806B888 @ =IsFieldMessageBoxHidden - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B888: .4byte IsFieldMessageBoxHidden - thumb_func_end sub_806B878 - - thumb_func_start sub_806B88C -sub_806B88C: @ 806B88C - push {lr} - bl HideFieldMessageBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B88C - - thumb_func_start sub_806B898 -sub_806B898: @ 806B898 - push {r4,lr} - ldr r0, _0806B8F0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - ldr r4, _0806B8F4 @ =gUnknown_3005070 - ldr r0, [r4] - bl sub_806B93C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806B906 - ldr r0, [r4] - bl sub_806B96C - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8069998 - cmp r4, 0 - beq _0806B906 - ldr r0, _0806B8F8 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - beq _0806B906 - bl sub_80699F8 - adds r0, r4, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B8FC - bl sub_8069964 - b _0806B922 - .align 2, 0 -_0806B8F0: .4byte gMain -_0806B8F4: .4byte gUnknown_3005070 -_0806B8F8: .4byte gUnknown_203ADFA -_0806B8FC: - bl sub_80699A4 - bl sub_8069970 - b _0806B922 -_0806B906: - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806B91A - ldr r0, _0806B928 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806B934 -_0806B91A: - ldr r1, _0806B92C @ =gUnknown_20370AC - ldrb r0, [r1] - cmp r0, 0x78 - bne _0806B930 -_0806B922: - movs r0, 0x1 - b _0806B936 - .align 2, 0 -_0806B928: .4byte gUnknown_203ADFA -_0806B92C: .4byte gUnknown_20370AC -_0806B930: - adds r0, 0x1 - strb r0, [r1] -_0806B934: - movs r0, 0 -_0806B936: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B898 - - thumb_func_start sub_806B93C -sub_806B93C: @ 806B93C - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806B958 - ldrb r1, [r2] - subs r1, 0x1 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0] -_0806B958: - subs r0, 0x6B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B966 - movs r0, 0x1 - b _0806B968 -_0806B966: - movs r0, 0 -_0806B968: - pop {r1} - bx r1 - thumb_func_end sub_806B93C - - thumb_func_start sub_806B96C -sub_806B96C: @ 806B96C - push {lr} - ldr r2, _0806B988 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0806B990 - ldr r0, _0806B98C @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x2 - beq _0806B990 - movs r0, 0x1 - b _0806BA36 - .align 2, 0 -_0806B988: .4byte gMain -_0806B98C: .4byte gSpecialVar_Facing -_0806B990: - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806B9AC - ldr r0, _0806B9A8 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x1 - beq _0806B9AC - movs r0, 0x2 - b _0806BA36 - .align 2, 0 -_0806B9A8: .4byte gSpecialVar_Facing -_0806B9AC: - ldrh r1, [r2, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0806B9C8 - ldr r0, _0806B9C4 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x3 - beq _0806B9C8 - movs r0, 0x3 - b _0806BA36 - .align 2, 0 -_0806B9C4: .4byte gSpecialVar_Facing -_0806B9C8: - ldrh r1, [r2, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806B9E4 - ldr r0, _0806B9E0 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x4 - beq _0806B9E4 - movs r0, 0x4 - b _0806BA36 - .align 2, 0 -_0806B9E0: .4byte gSpecialVar_Facing -_0806B9E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0806B9F4 - movs r0, 0x5 - b _0806BA36 -_0806B9F4: - ldrh r2, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0806BA04 - movs r0, 0x6 - b _0806BA36 -_0806BA04: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0806BA10 - movs r0, 0x7 - b _0806BA36 -_0806BA10: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _0806BA1C - movs r0, 0x8 - b _0806BA36 -_0806BA1C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806BA28 - movs r0, 0x9 - b _0806BA36 -_0806BA28: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806BA34 - movs r0, 0 - b _0806BA36 -_0806BA34: - movs r0, 0xA -_0806BA36: - pop {r1} - bx r1 - thumb_func_end sub_806B96C - - thumb_func_start sub_806BA3C -sub_806BA3C: @ 806BA3C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0806BA70 @ =gUnknown_3005070 - str r4, [r0] - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BA58 - ldr r0, _0806BA74 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806BA5E -_0806BA58: - ldr r1, _0806BA78 @ =gUnknown_20370AC - movs r0, 0 - strb r0, [r1] -_0806BA5E: - ldr r1, _0806BA7C @ =sub_806B898 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BA70: .4byte gUnknown_3005070 -_0806BA74: .4byte gUnknown_203ADFA -_0806BA78: .4byte gUnknown_20370AC -_0806BA7C: .4byte sub_806B898 - thumb_func_end sub_806BA3C - - thumb_func_start ScrCmd_yesnobox -ScrCmd_yesnobox: @ 806BA80 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_809CDEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BAA2 - movs r0, 0 - b _0806BAA8 -_0806BAA2: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAA8: - pop {r1} - bx r1 - thumb_func_end ScrCmd_yesnobox - - thumb_func_start ScrCmd_multichoice -ScrCmd_multichoice: @ 806BAAC - push {r4,r5,lr} - ldr r2, [r0, 0x8] - ldrb r5, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r4, r3, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - adds r0, r5, 0 - bl ScriptMenu_Multichoice - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BADA - movs r0, 0 - b _0806BAE0 -_0806BADA: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAE0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoice - - thumb_func_start ScrCmd_multichoicedefault -ScrCmd_multichoicedefault: @ 806BAE8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl ScriptMenu_MultichoiceWithDefault - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB26 - movs r0, 0 - b _0806BB2C -_0806BB26: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB2C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicedefault - - thumb_func_start sub_806BB38 -sub_806BB38: @ 806BB38 - movs r0, 0 - bx lr - thumb_func_end sub_806BB38 - - thumb_func_start ScrCmd_multichoicegrid -ScrCmd_multichoicegrid: @ 806BB3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl sub_809CEC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB7A - movs r0, 0 - b _0806BB80 -_0806BB7A: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB80: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicegrid - - thumb_func_start sub_806BB8C -sub_806BB8C: @ 806BB8C - ldr r1, [r0, 0x8] - adds r1, 0x4 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BB8C - - thumb_func_start sub_806BB98 -sub_806BB98: @ 806BB98 - movs r0, 0 - bx lr - thumb_func_end sub_806BB98 - - thumb_func_start sub_806BB9C -sub_806BB9C: @ 806BB9C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r4, 0 - bl sub_809D2F0 - adds r0, r4, 0 - movs r1, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BB9C - - thumb_func_start sub_806BBD8 -sub_806BBD8: @ 806BBD8 - push {r4,lr} - adds r4, r0, 0 - bl sub_809D3CC - adds r1, r0, 0 - cmp r1, 0 - beq _0806BBF0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806BBF2 -_0806BBF0: - movs r0, 0 -_0806BBF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806BBD8 - - thumb_func_start sub_806BBF8 -sub_806BBF8: @ 806BBF8 - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BBF8 - - thumb_func_start sub_806BC04 -sub_806BC04: @ 806BC04 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - bl ScriptReadWord - adds r4, r0, 0 - cmp r4, 0 - bne _0806BC16 - ldr r4, [r5, 0x64] -_0806BC16: - bl sub_80F6E9C - movs r0, 0 - movs r1, 0x1 - bl sub_80F6EE4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x6 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BC04 - - thumb_func_start sub_806BC40 -sub_806BC40: @ 806BC40 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - cmp r1, 0 - bne _0806BC50 - ldr r1, [r4, 0x64] -_0806BC50: - ldr r4, _0806BC68 @ =gSpecialVar_0x8004 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x6 - bl GetStringWidth - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BC68: .4byte gSpecialVar_0x8004 - thumb_func_end sub_806BC40 - - thumb_func_start ScrCmd_vmessage -ScrCmd_vmessage: @ 806BC6C - push {lr} - bl ScriptReadWord - ldr r1, _0806BC84 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r0, r1 - bl ShowFieldMessage - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BC84: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vmessage - - thumb_func_start ScrCmd_bufferspeciesname -ScrCmd_bufferspeciesname: @ 806BC88 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BCC0 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BCC4 @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BCC0: .4byte gUnknown_83A7294 -_0806BCC4: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferspeciesname - - thumb_func_start ScrCmd_bufferleadmonspeciesname -ScrCmd_bufferleadmonspeciesname: @ 806BCC8 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806BD08 @ =gUnknown_83A7294 - lsls r2, 2 - adds r2, r0 - ldr r4, [r2] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD0C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BD10 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD08: .4byte gUnknown_83A7294 -_0806BD0C: .4byte gPlayerParty -_0806BD10: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferleadmonspeciesname - - thumb_func_start ScrCmd_bufferpartymonnick -ScrCmd_bufferpartymonnick: @ 806BD14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD54 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806BD58 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD54: .4byte gPlayerParty -_0806BD58: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferpartymonnick - - thumb_func_start ScrCmd_bufferitemname -ScrCmd_bufferitemname: @ 806BD5C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BD8C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl sub_8099E90 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD8C: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferitemname - - thumb_func_start sub_806BD90 -sub_806BD90: @ 806BD90 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r7, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _0806BDE4 @ =gUnknown_83A7294 - lsls r0, r7, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099E90 - cmp r5, 0x4 - bne _0806BDEC - cmp r6, 0x1 - bls _0806BDEC - ldr r1, _0806BDE8 @ =gUnknown_83A72A0 - adds r0, r4, 0 - bl StringAppend - b _0806BE22 - .align 2, 0 -_0806BDE4: .4byte gUnknown_83A7294 -_0806BDE8: .4byte gUnknown_83A72A0 -_0806BDEC: - adds r0, r5, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x29 - bhi _0806BE22 - cmp r6, 0x1 - bls _0806BE22 - ldr r0, _0806BE2C @ =gUnknown_83A7294 - lsls r1, r7, 2 - adds r1, r0 - ldr r4, [r1] - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _0806BE22 - adds r0, r4, r0 - subs r0, 0x1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, _0806BE30 @ =gUnknown_83A72A2 - adds r0, r4, 0 - bl StringAppend -_0806BE22: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806BE2C: .4byte gUnknown_83A7294 -_0806BE30: .4byte gUnknown_83A72A2 - thumb_func_end sub_806BD90 - - thumb_func_start sub_806BE34 -sub_806BE34: @ 806BE34 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806BE34 - - thumb_func_start ScrCmd_buffermovename -ScrCmd_buffermovename: @ 806BE50 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BE88 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xD - muls r1, r0 - ldr r0, _0806BE8C @ =gMoveNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BE88: .4byte gUnknown_83A7294 -_0806BE8C: .4byte gMoveNames - thumb_func_end ScrCmd_buffermovename - - thumb_func_start ScrCmd_buffernumberstring -ScrCmd_buffernumberstring: @ 806BE90 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80CBF04 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0806BED0 @ =gUnknown_83A7294 - lsls r5, 2 - adds r5, r0 - ldr r0, [r5] - adds r1, r4, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806BED0: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_buffernumberstring - - thumb_func_start ScrCmd_bufferstdstring -ScrCmd_bufferstdstring: @ 806BED4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - ldr r1, _0806BF0C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - ldr r1, _0806BF10 @ =gUnknown_83E06B8 - lsrs r0, 14 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF0C: .4byte gUnknown_83A7294 -_0806BF10: .4byte gUnknown_83E06B8 - thumb_func_end ScrCmd_bufferstdstring - - thumb_func_start ScrCmd_bufferstring -ScrCmd_bufferstring: @ 806BF14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF38 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF38: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferstring - - thumb_func_start ScrCmd_vloadword -ScrCmd_vloadword: @ 806BF3C - push {lr} - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF58 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF5C @ =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BF58: .4byte gUnknown_20370A8 -_0806BF5C: .4byte gStringVar4 - thumb_func_end ScrCmd_vloadword - - thumb_func_start ScrCmd_vbufferstring -ScrCmd_vbufferstring: @ 806BF60 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF8C @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF90 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF8C: .4byte gUnknown_20370A8 -_0806BF90: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_vbufferstring - - thumb_func_start ScrCmd_bufferboxname -ScrCmd_bufferboxname: @ 806BF94 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806BFCC @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - lsls r0, 24 - lsrs r0, 24 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BFCC: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferboxname - - thumb_func_start ScrCmd_givemon -ScrCmd_givemon: @ 806BFD0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadWord - mov r8, r0 - adds r0, r4, 0 - bl ScriptReadWord - ldr r1, [r4, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - ldr r4, _0806C04C @ =gSpecialVar_Result - str r0, [sp] - str r2, [sp, 0x4] - adds r0, r6, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl ScriptGiveMon - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806C04C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givemon - - thumb_func_start ScrCmd_giveegg -ScrCmd_giveegg: @ 806C050 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C078 @ =gSpecialVar_Result - bl sub_80A01AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C078: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_giveegg - - thumb_func_start ScrCmd_setmonmove -ScrCmd_setmonmove: @ 806C07C - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - adds r2, r4, 0 - bl ScriptSetMonMoveSlot - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmonmove - - thumb_func_start ScrCmd_checkpartymove -ScrCmd_checkpartymove: @ 806C0A8 - push {r4-r7,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _0806C0BC @ =gSpecialVar_Result - movs r0, 0x6 - strh r0, [r1] - movs r6, 0 - b _0806C0F6 - .align 2, 0 -_0806C0BC: .4byte gSpecialVar_Result -_0806C0C0: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806C0F0 - adds r0, r4, 0 - adds r1, r7, 0 - bl pokemon_has_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C0F0 - ldr r0, _0806C0E8 @ =gSpecialVar_Result - strh r6, [r0] - ldr r0, _0806C0EC @ =gSpecialVar_0x8004 - strh r5, [r0] - b _0806C116 - .align 2, 0 -_0806C0E8: .4byte gSpecialVar_Result -_0806C0EC: .4byte gSpecialVar_0x8004 -_0806C0F0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0806C0F6: - cmp r6, 0x5 - bhi _0806C116 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _0806C120 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0806C0C0 -_0806C116: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806C120: .4byte gPlayerParty - thumb_func_end ScrCmd_checkpartymove - - thumb_func_start ScrCmd_givemoney -ScrCmd_givemoney: @ 806C124 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C14A - ldr r0, _0806C154 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl AddMoney -_0806C14A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C154: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_givemoney - - thumb_func_start ScrCmd_takemoney -ScrCmd_takemoney: @ 806C158 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C17E - ldr r0, _0806C188 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl RemoveMoney -_0806C17E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C188: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_takemoney - - thumb_func_start ScrCmd_checkmoney -ScrCmd_checkmoney: @ 806C18C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C1BA - ldr r4, _0806C1C4 @ =gSpecialVar_Result - ldr r0, _0806C1C8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_0806C1BA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C1C4: .4byte gSpecialVar_Result -_0806C1C8: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_checkmoney - - thumb_func_start sub_806C1CC -sub_806C1CC: @ 806C1CC - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C20A - ldr r0, _0806C214 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C20A - ldr r0, _0806C218 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r1, r5, 0 - adds r2, r4, 0 - bl DrawMoneyBox -_0806C20A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C214: .4byte sub_809D6D4 -_0806C218: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C1CC - - thumb_func_start sub_806C21C -sub_806C21C: @ 806C21C - push {lr} - bl HideMoneyBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C21C - - thumb_func_start sub_806C228 -sub_806C228: @ 806C228 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C24E - ldr r0, _0806C254 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - bl ChangeAmountInMoneyBox -_0806C24E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C254: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C228 - - thumb_func_start sub_806C258 -sub_806C258: @ 806C258 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806C290 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C286 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - bl ShowCoinsWindow -_0806C286: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C290: .4byte sub_809D6D4 - thumb_func_end sub_806C258 - - thumb_func_start ScrCmd_hidecoinsbox -ScrCmd_hidecoinsbox: @ 806C294 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl HideCoinsWindow - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_hidecoinsbox - - thumb_func_start ScrCmd_updatecoinsbox -ScrCmd_updatecoinsbox: @ 806C2A8 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl PrintCoinsString - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_updatecoinsbox - - thumb_func_start ScrCmd_trainerbattle -ScrCmd_trainerbattle: @ 806C2C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - bl sub_8080228 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_trainerbattle - - thumb_func_start sub_806C2D8 -sub_806C2D8: @ 806C2D8 - push {lr} - bl sub_8080464 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C2D8 - - thumb_func_start ScrCmd_ontrainerbattleend -ScrCmd_ontrainerbattleend: @ 806C2E4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80805E8 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleend - - thumb_func_start ScrCmd_ontrainerbattleendgoto -ScrCmd_ontrainerbattleendgoto: @ 806C2F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8080600 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleendgoto - - thumb_func_start ScrCmd_checktrainerflag -ScrCmd_checktrainerflag: @ 806C30C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl HasTrainerAlreadyBeenFought - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checktrainerflag - - thumb_func_start ScrCmd_settrainerflag -ScrCmd_settrainerflag: @ 806C330 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_set - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_settrainerflag - - thumb_func_start ScrCmd_cleartrainerflag -ScrCmd_cleartrainerflag: @ 806C34C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_clear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_cleartrainerflag - - thumb_func_start ScrCmd_setwildbattle -ScrCmd_setwildbattle: @ 806C368 - push {r4-r6,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, [r4, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl CreateScriptedWildMon - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwildbattle - - thumb_func_start sub_806C39C -sub_806C39C: @ 806C39C - push {lr} - bl sub_807F8C4 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C39C - - thumb_func_start sub_806C3AC -sub_806C3AC: @ 806C3AC - push {lr} - bl ScriptReadWord - bl sub_809C164 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3AC - - thumb_func_start sub_806C3C0 -sub_806C3C0: @ 806C3C0 - push {lr} - bl ScriptReadWord - bl sub_809C1A0 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3C0 - - thumb_func_start sub_806C3D4 -sub_806C3D4: @ 806C3D4 - push {lr} - bl ScriptReadWord - bl sub_809C1BC - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3D4 - - thumb_func_start ScrCmd_playslotmachine -ScrCmd_playslotmachine: @ 806C3E8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806C40C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl sub_813F804 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end ScrCmd_playslotmachine - - thumb_func_start sub_806C410 -sub_806C410: @ 806C410 - movs r0, 0 - bx lr - thumb_func_end sub_806C410 - - thumb_func_start sub_806C414 -sub_806C414: @ 806C414 - movs r0, 0 - bx lr - thumb_func_end sub_806C414 - - thumb_func_start sub_806C418 -sub_806C418: @ 806C418 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C418 - - thumb_func_start sub_806C424 -sub_806C424: @ 806C424 - movs r0, 0 - bx lr - thumb_func_end sub_806C424 - - thumb_func_start sub_806C428 -sub_806C428: @ 806C428 - movs r0, 0 - bx lr - thumb_func_end sub_806C428 - - thumb_func_start sub_806C42C -sub_806C42C: @ 806C42C - movs r0, 0 - bx lr - thumb_func_end sub_806C42C - - thumb_func_start ScrCmd_dofieldeffect -ScrCmd_dofieldeffect: @ 806C430 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806C454 @ =gUnknown_20370B6 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl FieldEffectStart - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C454: .4byte gUnknown_20370B6 - thumb_func_end ScrCmd_dofieldeffect - - thumb_func_start ScrCmd_setfieldeffectarg -ScrCmd_setfieldeffectarg: @ 806C458 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C484 @ =gFieldEffectArguments - lsls r4, 2 - adds r4, r1 - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C484: .4byte gFieldEffectArguments - thumb_func_end ScrCmd_setfieldeffectarg - - thumb_func_start WaitForFieldEffectFinish -WaitForFieldEffectFinish: @ 806C488 - push {lr} - ldr r0, _0806C49C @ =gUnknown_20370B6 - ldrb r0, [r0] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - beq _0806C4A0 - movs r0, 0 - b _0806C4A2 - .align 2, 0 -_0806C49C: .4byte gUnknown_20370B6 -_0806C4A0: - movs r0, 0x1 -_0806C4A2: - pop {r1} - bx r1 - thumb_func_end WaitForFieldEffectFinish - - thumb_func_start ScrCmd_waitfieldeffect -ScrCmd_waitfieldeffect: @ 806C4A8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C4CC @ =gUnknown_20370B6 - strh r0, [r1] - ldr r1, _0806C4D0 @ =WaitForFieldEffectFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C4CC: .4byte gUnknown_20370B6 -_0806C4D0: .4byte WaitForFieldEffectFinish - thumb_func_end ScrCmd_waitfieldeffect - - thumb_func_start ScrCmd_setrespawn -ScrCmd_setrespawn: @ 806C4D4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_80554CC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setrespawn - - thumb_func_start ScrCmd_checkplayergender -ScrCmd_checkplayergender: @ 806C4F0 - ldr r1, _0806C500 @ =gSpecialVar_Result - ldr r0, _0806C504 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - strh r0, [r1] - movs r0, 0 - bx lr - .align 2, 0 -_0806C500: .4byte gSpecialVar_Result -_0806C504: .4byte gSaveBlock2Ptr - thumb_func_end ScrCmd_checkplayergender - - thumb_func_start ScrCmd_playmoncry -ScrCmd_playmoncry: @ 806C508 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_playmoncry - - thumb_func_start sub_806C540 -sub_806C540: @ 806C540 - push {lr} - ldr r1, _0806C550 @ =IsCryFinished - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C550: .4byte IsCryFinished - thumb_func_end sub_806C540 - - thumb_func_start ScrCmd_setmetatile -ScrCmd_setmetatile: @ 806C554 - push {r4-r7,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - adds r1, r6, 0x7 - lsls r1, 16 - lsrs r6, r1, 16 - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r0, 0 - bne _0806C5B8 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl MapGridSetMetatileIdAt - b _0806C5CA -_0806C5B8: - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r2, r7, 0 - orrs r2, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0806C5CA: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmetatile - - thumb_func_start ScrCmd_opendoor -ScrCmd_opendoor: @ 806C5D4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - adds r5, 0x7 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r4, r0 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B364 - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B310 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_opendoor - - thumb_func_start ScrCmd_closedoor -ScrCmd_closedoor: @ 806C62C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B2D0 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_closedoor - - thumb_func_start sub_806C670 -sub_806C670: @ 806C670 - push {lr} - bl sub_805B350 - lsls r0, 24 - cmp r0, 0 - beq _0806C680 - movs r0, 0 - b _0806C682 -_0806C680: - movs r0, 0x1 -_0806C682: - pop {r1} - bx r1 - thumb_func_end sub_806C670 - - thumb_func_start sub_806C688 -sub_806C688: @ 806C688 - push {lr} - ldr r1, _0806C698 @ =sub_806C670 - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C698: .4byte sub_806C670 - thumb_func_end sub_806C688 - - thumb_func_start ScrCmd_setdooropen -ScrCmd_setdooropen: @ 806C69C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B268 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdooropen - - thumb_func_start ScrCmd_setdoorclosed -ScrCmd_setdoorclosed: @ 806C6E0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B29C - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdoorclosed - - thumb_func_start sub_806C724 -sub_806C724: @ 806C724 - movs r0, 0 - bx lr - thumb_func_end sub_806C724 - - thumb_func_start sub_806C728 -sub_806C728: @ 806C728 - movs r0, 0 - bx lr - thumb_func_end sub_806C728 - - thumb_func_start ScrCmd_checkcoins -ScrCmd_checkcoins: @ 806C72C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - bl GetCoins - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkcoins - - thumb_func_start ScrCmd_givecoins -ScrCmd_givecoins: @ 806C74C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GiveCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C774 - ldr r1, _0806C770 @ =gSpecialVar_Result - movs r0, 0 - b _0806C778 - .align 2, 0 -_0806C770: .4byte gSpecialVar_Result -_0806C774: - ldr r1, _0806C780 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C778: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C780: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givecoins - - thumb_func_start ScrCmd_takecoins -ScrCmd_takecoins: @ 806C784 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl TakeCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C7AC - ldr r1, _0806C7A8 @ =gSpecialVar_Result - movs r0, 0 - b _0806C7B0 - .align 2, 0 -_0806C7A8: .4byte gSpecialVar_Result -_0806C7AC: - ldr r1, _0806C7B8 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C7B0: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C7B8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takecoins - - thumb_func_start sub_806C7BC -sub_806C7BC: @ 806C7BC - push {lr} - bl sub_8069A20 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7BC - - thumb_func_start sub_806C7C8 -sub_806C7C8: @ 806C7C8 - push {lr} - bl sub_8069A2C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7C8 - - thumb_func_start ScrCmd_setmonobedient -ScrCmd_setmonobedient: @ 806C7D4 - push {lr} - sub sp, 0x4 - movs r2, 0x1 - mov r1, sp - strb r2, [r1] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C808 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - mov r2, sp - bl SetMonData - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0806C808: .4byte gPlayerParty - thumb_func_end ScrCmd_setmonobedient - - thumb_func_start ScrCmd_checkmonobedience -ScrCmd_checkmonobedience: @ 806C80C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C83C @ =gSpecialVar_Result - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C840 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - movs r2, 0 - bl GetMonData - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C83C: .4byte gSpecialVar_Result -_0806C840: .4byte gPlayerParty - thumb_func_end ScrCmd_checkmonobedience - - thumb_func_start sub_806C844 -sub_806C844: @ 806C844 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - mov r1, sp - strb r2, [r1] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r3, 0x5 - bhi _0806C87A - movs r0, 0x64 - muls r0, r3 - ldr r1, _0806C884 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - mov r2, sp - bl SetMonData -_0806C87A: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C884: .4byte gPlayerParty - thumb_func_end sub_806C844 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index f1127591d..438f715fa 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -613,8 +613,8 @@ _0809CDE0: _0809CDE8: .4byte gUnknown_83E0748 thumb_func_end sub_809CD48 - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC + thumb_func_start ScriptMenu_YesNo +ScriptMenu_YesNo: @ 809CDEC push {r4,lr} ldr r4, _0809CE04 @ =task_yes_no_maybe adds r0, r4, 0 @@ -649,7 +649,7 @@ _0809CE28: .align 2, 0 _0809CE30: .4byte gSpecialVar_Result _0809CE34: .4byte sub_809D6D4 - thumb_func_end sub_809CDEC + thumb_func_end ScriptMenu_YesNo thumb_func_start sub_809CE38 sub_809CE38: @ 809CE38 @@ -733,8 +733,8 @@ _0809CEBC: _0809CEC4: .4byte gSpecialVar_Result thumb_func_end task_yes_no_maybe - thumb_func_start sub_809CEC8 -sub_809CEC8: @ 809CEC8 + thumb_func_start ScriptMenu_MultichoiceGrid +ScriptMenu_MultichoiceGrid: @ 809CEC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -862,7 +862,7 @@ _0809CFCC: .4byte gSpecialVar_Result _0809CFD0: .4byte sub_809D6D4 _0809CFD4: .4byte gUnknown_83E04B0 _0809CFD8: .4byte gTasks - thumb_func_end sub_809CEC8 + thumb_func_end ScriptMenu_MultichoiceGrid thumb_func_start sub_809CFDC sub_809CFDC: @ 809CFDC @@ -1241,8 +1241,8 @@ _0809D2E8: bx r0 thumb_func_end sub_809D288 - thumb_func_start sub_809D2F0 -sub_809D2F0: @ 809D2F0 + thumb_func_start ScriptMenu_ShowPokemonPic +ScriptMenu_ShowPokemonPic: @ 809D2F0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1344,10 +1344,10 @@ _0809D3C2: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809D2F0 + thumb_func_end ScriptMenu_ShowPokemonPic - thumb_func_start sub_809D3CC -sub_809D3CC: @ 809D3CC + thumb_func_start ScriptMenu_GetPicboxWaitFunc +ScriptMenu_GetPicboxWaitFunc: @ 809D3CC push {lr} ldr r0, _0809D3F0 @ =sub_809D288 bl FindTaskIdByFunc @@ -1374,7 +1374,7 @@ _0809D3FC: _0809D3FE: pop {r1} bx r1 - thumb_func_end sub_809D3CC + thumb_func_end ScriptMenu_GetPicboxWaitFunc thumb_func_start sub_809D404 sub_809D404: @ 809D404 diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s index 191457abe..60f416b48 100644 --- a/asm/script_pokemon_util_80A0058.s +++ b/asm/script_pokemon_util_80A0058.s @@ -170,8 +170,8 @@ _080A0196: bx r1 thumb_func_end ScriptGiveMon - thumb_func_start sub_80A01AC -sub_80A01AC: @ 80A01AC + thumb_func_start ScriptGiveEgg +ScriptGiveEgg: @ 80A01AC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 @@ -202,7 +202,7 @@ sub_80A01AC: @ 80A01AC pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A01AC + thumb_func_end ScriptGiveEgg thumb_func_start CheckForAlivePartyMons CheckForAlivePartyMons: @ 80A01F4 diff --git a/asm/seagallop.s b/asm/seagallop.s index 89f8c2867..f54d0d986 100644 --- a/asm/seagallop.s +++ b/asm/seagallop.s @@ -371,7 +371,7 @@ _08147150: bl warp_in ldr r0, _081471BC @ =sub_805671C bl SetMainCallback2 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState bl sub_81473A0 ldr r0, _081471C0 @ =gUnknown_203F3D0 ldr r0, [r0] diff --git a/asm/shop.s b/asm/shop.s index 60b92410d..25a2311ce 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300 lsrs r5, 16 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName str r6, [r4] str r5, [r4, 0x4] pop {r4-r6} @@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98 _0809BC7C: ldr r1, _0809BC94 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 @@ -2408,7 +2408,7 @@ _0809BDD4: bl PutWindowTilemap ldrh r0, [r4, 0xA] ldr r1, _0809BE40 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0809BE44 @ =gStringVar2 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4 bl PutWindowTilemap ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2826,8 +2826,8 @@ _0809C15A: _0809C160: .4byte gUnknown_203996C thumb_func_end sub_809C138 - thumb_func_start sub_809C164 -sub_809C164: @ 809C164 + thumb_func_start CreatePokemartMenu +CreatePokemartMenu: @ 809C164 push {r4,lr} bl sub_809ABD8 movs r0, 0 @@ -2851,10 +2851,10 @@ sub_809C164: @ 809C164 _0809C194: .4byte EnableBothScriptContexts _0809C198: .4byte gUnknown_203996C _0809C19C: .4byte gMapHeader - thumb_func_end sub_809C164 + thumb_func_end CreatePokemartMenu - thumb_func_start sub_809C1A0 -sub_809C1A0: @ 809C1A0 + thumb_func_start CreateDecorationShop1Menu +CreateDecorationShop1Menu: @ 809C1A0 push {lr} bl sub_809ABD8 movs r0, 0x2 @@ -2865,10 +2865,10 @@ sub_809C1A0: @ 809C1A0 bx r0 .align 2, 0 _0809C1B8: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1A0 + thumb_func_end CreateDecorationShop1Menu - thumb_func_start sub_809C1BC -sub_809C1BC: @ 809C1BC + thumb_func_start CreateDecorationShop2Menu +CreateDecorationShop2Menu: @ 809C1BC push {lr} bl sub_809ABD8 movs r0, 0x3 @@ -2879,7 +2879,7 @@ sub_809C1BC: @ 809C1BC bx r0 .align 2, 0 _0809C1D4: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1BC + thumb_func_end CreateDecorationShop2Menu thumb_func_start sub_809C1D8 sub_809C1D8: @ 809C1D8 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 2d1be0535..07483bb5e 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_813F804 -sub_813F804: @ 813F804 + thumb_func_start PlaySlotMachine +PlaySlotMachine: @ 813F804 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 @@ -39,7 +39,7 @@ _0813F840: bx r0 .align 2, 0 _0813F848: .4byte sub_813F898 - thumb_func_end sub_813F804 + thumb_func_end PlaySlotMachine thumb_func_start sub_813F84C sub_813F84C: @ 813F84C diff --git a/asm/start_menu.s b/asm/start_menu.s index 1d81d0392..4a58b11ad 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54 ldr r0, _0806ED6C @ =gUnknown_20370F5 movs r1, 0 strb r1, [r0] - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _0806ED70 bl sub_806EE34 @@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0 thumb_func_start ShowStartMenu ShowStartMenu: @ 806F258 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0806F26E bl player_bitmagic diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s index bdd06dfff..5e2b048e2 100644 --- a/asm/teachy_tv.s +++ b/asm/teachy_tv.s @@ -398,7 +398,7 @@ sub_815AEE8: @ 815AEE8 movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0815AF30 @@ -443,7 +443,7 @@ sub_815AF5C: @ 815AF5C movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0815AF84 diff --git a/asm/tm_case.s b/asm/tm_case.s index 1539343e8..e942bbc32 100644 --- a/asm/tm_case.s +++ b/asm/tm_case.s @@ -1855,7 +1855,7 @@ sub_8132714: @ 8132714 ldr r0, _08132744 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08132748 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0813274C @ =gStringVar4 ldr r1, _08132750 @ =gUnknown_841635E adds r0, r5, 0 @@ -2093,7 +2093,7 @@ sub_8132908: @ 8132908 bne _08132968 ldrh r0, [r6] ldr r1, _08132958 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813295C @ =gStringVar4 ldr r1, _08132960 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -2133,7 +2133,7 @@ _08132980: _08132988: ldrh r0, [r6] ldr r1, _081329B4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _081329B8 @ =gStringVar4 ldr r1, _081329BC @ =gUnknown_8416911 adds r0, r4, 0 @@ -2506,7 +2506,7 @@ sub_8132CAC: @ 8132CAC ldr r0, _08132D1C @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08132D20 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08132D24 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x4 @@ -2568,7 +2568,7 @@ sub_8132D34: @ 8132D34 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r7, _08132DFC @ =gSaveBlock1Ptr ldr r4, [r7] movs r3, 0xA4 @@ -2729,16 +2729,16 @@ sub_8132E64: @ 8132E64 bl sub_81320AC ldr r0, _08132F0C @ =0x00000121 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r0, _08132F10 @ =0x00000123 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r0, _08132F14 @ =0x00000129 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r0, _08132F18 @ =0x00000143 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r1, _08132F1C @ =sub_815ABFC movs r0, 0x4 movs r2, 0 diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s index c1da74a98..a1ca0da57 100644 --- a/asm/trainer_tower.s +++ b/asm/trainer_tower.s @@ -5,720 +5,6 @@ .text - thumb_func_start sub_815E068 -sub_815E068: @ 815E068 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r5, 0 - cmp r0, 0x1 - beq _0815E0B4 - cmp r0, 0x1 - bgt _0815E084 - cmp r0, 0 - beq _0815E088 - b _0815E0F8 -_0815E084: - cmp r3, 0x2 - bne _0815E0F8 -_0815E088: - movs r4, 0 - ldr r0, _0815E0B0 @ =gUnknown_8479ED8 - ldrb r1, [r0, 0x1] - adds r3, r0, 0 - cmp r1, r2 - beq _0815E0A4 - adds r1, r3, 0 -_0815E096: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x52 - bhi _0815E0A4 - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815E096 -_0815E0A4: - cmp r4, 0x53 - beq _0815E0F8 - lsls r0, r4, 2 - adds r0, r3 - ldrb r5, [r0, 0x2] - b _0815E0F8 - .align 2, 0 -_0815E0B0: .4byte gUnknown_8479ED8 -_0815E0B4: - movs r4, 0 - ldr r1, _0815E0BC @ =gUnknown_847A024 - b _0815E0C8 - .align 2, 0 -_0815E0BC: .4byte gUnknown_847A024 -_0815E0C0: - adds r1, 0x8 - adds r4, 0x1 - cmp r4, 0x9 - bhi _0815E0CE -_0815E0C8: - ldrb r0, [r1, 0x2] - cmp r0, r2 - bne _0815E0C0 -_0815E0CE: - cmp r4, 0xA - beq _0815E0F8 - ldr r0, _0815E0E8 @ =0x00004003 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0815E0F0 - ldr r1, _0815E0EC @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x4] - b _0815E0F8 - .align 2, 0 -_0815E0E8: .4byte 0x00004003 -_0815E0EC: .4byte gUnknown_847A024 -_0815E0F0: - ldr r1, _0815E108 @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x3] -_0815E0F8: - ldr r2, _0815E10C @ =gUnknown_20370DC - ldr r1, _0815E110 @ =gUnknown_20370DA - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E108: .4byte gUnknown_847A024 -_0815E10C: .4byte gUnknown_20370DC -_0815E110: .4byte gUnknown_20370DA - thumb_func_end sub_815E068 - - thumb_func_start sub_815E114 -sub_815E114: @ 815E114 - push {lr} - ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_815E114 - - thumb_func_start sub_815E124 -sub_815E124: @ 815E124 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80D08F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E14C - ldr r0, _0815E154 @ =gMain - ldr r1, _0815E158 @ =sub_815E114 - str r1, [r0, 0x8] - bl sub_80563F0 - ldr r0, _0815E15C @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0815E14C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E154: .4byte gMain -_0815E158: .4byte sub_815E114 -_0815E15C: .4byte sub_800FD9C - thumb_func_end sub_815E124 - - thumb_func_start sub_815E160 -sub_815E160: @ 815E160 - push {r4,lr} - ldr r4, _0815E1AC @ =gBattleTypeFlags - ldr r3, _0815E1B0 @ =0x00080008 - str r3, [r4] - ldr r0, _0815E1B4 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - cmp r0, 0x1 - bne _0815E180 - orrs r0, r3 - str r0, [r4] -_0815E180: - ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A - movs r0, 0 - strh r0, [r1] - bl sub_815E9FC - ldr r0, _0815E1BC @ =sub_815E124 - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayMapChosenOrBattleBGM - bl sub_8080060 - lsls r0, 24 - lsrs r0, 24 - bl sub_80D08B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E1AC: .4byte gBattleTypeFlags -_0815E1B0: .4byte 0x00080008 -_0815E1B4: .4byte gUnknown_203F458 -_0815E1B8: .4byte gTrainerBattleOpponent_A -_0815E1BC: .4byte sub_815E124 - thumb_func_end sub_815E160 - - thumb_func_start sub_815E1C0 -sub_815E1C0: @ 815E1C0 - push {lr} - ldr r0, _0815E1E4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0815E1DE - ldr r3, _0815E1E8 @ =gSpecialVar_Result - ldr r0, _0815E1EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - strh r0, [r3] -_0815E1DE: - pop {r0} - bx r0 - .align 2, 0 -_0815E1E4: .4byte gSpecialVar_0x8005 -_0815E1E8: .4byte gSpecialVar_Result -_0815E1EC: .4byte gUnknown_203F458 - thumb_func_end sub_815E1C0 - - thumb_func_start sub_815E1F0 -sub_815E1F0: @ 815E1F0 - ldr r0, _0815E210 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E214 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E210: .4byte gSaveBlock1Ptr -_0815E214: .4byte 0x00003d34 - thumb_func_end sub_815E1F0 - - thumb_func_start sub_815E218 -sub_815E218: @ 815E218 - push {lr} - ldr r0, _0815E260 @ =gMapHeader - ldrh r0, [r0, 0x12] - mov r12, r0 - ldr r3, _0815E264 @ =0xfffffed6 - add r3, r12 - ldr r0, _0815E268 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E26C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r1, [r1] - cmp r3, r1 - bne _0815E27C - ldr r3, _0815E270 @ =0xfffffed7 - add r3, r12 - ldr r0, _0815E274 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r1, [r1, 0xD] - cmp r3, r1 - bgt _0815E27C - ldr r1, _0815E278 @ =gSpecialVar_Result - movs r0, 0 - b _0815E280 - .align 2, 0 -_0815E260: .4byte gMapHeader -_0815E264: .4byte 0xfffffed6 -_0815E268: .4byte gSaveBlock1Ptr -_0815E26C: .4byte 0x00003d34 -_0815E270: .4byte 0xfffffed7 -_0815E274: .4byte gUnknown_203F458 -_0815E278: .4byte gSpecialVar_Result -_0815E27C: - ldr r1, _0815E288 @ =gSpecialVar_Result - movs r0, 0x1 -_0815E280: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E288: .4byte gSpecialVar_Result - thumb_func_end sub_815E218 - - thumb_func_start sub_815E28C -sub_815E28C: @ 815E28C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _0815E2D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, _0815E2D4 @ =0x00003d34 - adds r1, r0, r5 - ldr r0, _0815E2D8 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - str r0, [r1] - cmp r0, 0x3 - bls _0815E2A8 - movs r0, 0 - str r0, [r1] -_0815E2A8: - bl sub_815EC0C - bl sub_815D834 - cmp r0, 0 - bne _0815E2E0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E2DC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x20 - orrs r0, r2 - b _0815E2FA - .align 2, 0 -_0815E2D0: .4byte gSaveBlock1Ptr -_0815E2D4: .4byte 0x00003d34 -_0815E2D8: .4byte gSpecialVar_0x8005 -_0815E2DC: .4byte 0x00003d42 -_0815E2E0: - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E384 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 -_0815E2FA: - strb r0, [r1] - ldr r6, _0815E388 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r5, _0815E38C @ =0x00003d34 - adds r0, r2, r5 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r2, r0 - movs r0, 0 - mov r8, r0 - mov r0, r8 - strb r0, [r2] - ldr r0, [r6] - adds r1, r0, r5 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r4, _0815E390 @ =0x00003d38 - adds r1, r4 - adds r0, r1 - bl SetVBlankCounter1Ptr - ldr r2, [r6] - adds r3, r2, r5 - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r2, r4 - adds r4, r0 - mov r0, r8 - str r0, [r4] - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r3, _0815E384 @ =0x00003d42 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r6] - adds r5, r1, r5 - ldr r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E384: .4byte 0x00003d42 -_0815E388: .4byte gSaveBlock1Ptr -_0815E38C: .4byte 0x00003d34 -_0815E390: .4byte 0x00003d38 - thumb_func_end sub_815E28C - - thumb_func_start sub_815E394 -sub_815E394: @ 815E394 - push {lr} - bl DisableVBlankCounter1 - ldr r3, _0815E3F8 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r3] - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E400 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 29 - cmp r0, 0 - bge _0815E3C2 - movs r0, 0x1 - strh r0, [r3] -_0815E3C2: - ldrb r2, [r2] - lsls r0, r2, 31 - cmp r0, 0 - beq _0815E3D6 - lsls r0, r2, 30 - cmp r0, 0 - bge _0815E3D6 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_0815E3D6: - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E400 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E3F8: .4byte gSpecialVar_Result -_0815E3FC: .4byte gSaveBlock1Ptr -_0815E400: .4byte 0x00003d34 -_0815E404: .4byte 0x00003d42 - thumb_func_end sub_815E394 - - thumb_func_start sub_815E408 -sub_815E408: @ 815E408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0815E444 @ =gUnknown_847A2B4 - ldr r0, _0815E448 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r0, [r0, 0xF] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - ldr r0, _0815E44C @ =gSaveBlock1Ptr - mov r8, r0 - ldr r2, [r0] - ldr r7, _0815E450 @ =0x00003d34 - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r6, _0815E454 @ =0x00003d42 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 31 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E45C - ldr r1, _0815E458 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E4A0 - .align 2, 0 -_0815E444: .4byte gUnknown_847A2B4 -_0815E448: .4byte gUnknown_203F458 -_0815E44C: .4byte gSaveBlock1Ptr -_0815E450: .4byte 0x00003d34 -_0815E454: .4byte 0x00003d42 -_0815E458: .4byte gSpecialVar_Result -_0815E45C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E49C - ldr r1, _0815E494 @ =gStringVar2 - adds r0, r4, 0 - bl sub_8099E90 - mov r0, r8 - ldr r1, [r0] - adds r0, r1, r7 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r6 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0815E498 @ =gSpecialVar_Result - strh r5, [r0] - b _0815E4A2 - .align 2, 0 -_0815E494: .4byte gStringVar2 -_0815E498: .4byte gSpecialVar_Result -_0815E49C: - ldr r1, _0815E4AC @ =gSpecialVar_Result - movs r0, 0x1 -_0815E4A0: - strh r0, [r1] -_0815E4A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815E4AC: .4byte gSpecialVar_Result - thumb_func_end sub_815E408 - - thumb_func_start sub_815E4B0 -sub_815E4B0: @ 815E4B0 - push {r4-r6,lr} - ldr r6, _0815E4D8 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r1, _0815E4DC @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, r1 - ldr r3, _0815E4E0 @ =0x00003d42 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E4E8 - ldr r1, _0815E4E4 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E534 - .align 2, 0 -_0815E4D8: .4byte gSaveBlock1Ptr -_0815E4DC: .4byte 0x00003d34 -_0815E4E0: .4byte 0x00003d42 -_0815E4E4: .4byte gSpecialVar_Result -_0815E4E8: - ldr r4, _0815E520 @ =0x00003d38 - adds r0, r1, r4 - adds r0, r2, r0 - adds r0, 0x4 - bl sub_815EDDC - ldr r3, [r6] - ldr r2, _0815E524 @ =0x00003d34 - adds r1, r3, r2 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r4, r3, r4 - adds r4, r1 - ldr r4, [r4] - cmp r0, r4 - bls _0815E530 - adds r0, r1, r3 - ldr r3, _0815E528 @ =0x00003d3c - adds r0, r3 - adds r1, r4, 0 - bl sub_815EDF4 - ldr r0, _0815E52C @ =gSpecialVar_Result - strh r5, [r0] - b _0815E536 - .align 2, 0 -_0815E520: .4byte 0x00003d38 -_0815E524: .4byte 0x00003d34 -_0815E528: .4byte 0x00003d3c -_0815E52C: .4byte gSpecialVar_Result -_0815E530: - ldr r1, _0815E55C @ =gSpecialVar_Result - movs r0, 0x1 -_0815E534: - strh r0, [r1] -_0815E536: - ldr r0, _0815E560 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E564 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r3, _0815E568 @ =0x00003d42 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E55C: .4byte gSpecialVar_Result -_0815E560: .4byte gSaveBlock1Ptr -_0815E564: .4byte 0x00003d34 -_0815E568: .4byte 0x00003d42 - thumb_func_end sub_815E4B0 - - thumb_func_start sub_815E56C -sub_815E56C: @ 815E56C - push {r4,lr} - ldr r0, _0815E5A0 @ =gSaveBlock1Ptr - ldr r4, [r0] - ldr r1, _0815E5A4 @ =0x00003d34 - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, r3 - ldr r1, _0815E5A8 @ =0x00003d42 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0815E5BA - subs r1, 0xA - adds r0, r4, r1 - adds r2, r0, r3 - ldr r1, [r2] - ldr r0, _0815E5AC @ =0x00034bbe - cmp r1, r0 - bls _0815E5B0 - adds r0, 0x1 - str r0, [r2] - b _0815E5BA - .align 2, 0 -_0815E5A0: .4byte gSaveBlock1Ptr -_0815E5A4: .4byte 0x00003d34 -_0815E5A8: .4byte 0x00003d42 -_0815E5AC: .4byte 0x00034bbe -_0815E5B0: - ldr r1, _0815E5C0 @ =0x00003d38 - adds r0, r3, r1 - adds r0, r4, r0 - bl SetVBlankCounter1Ptr -_0815E5BA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E5C0: .4byte 0x00003d38 - thumb_func_end sub_815E56C - - thumb_func_start sub_815E5C4 -sub_815E5C4: @ 815E5C4 - ldr r0, _0815E5E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E5E8 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E5EC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E5E4: .4byte gSaveBlock1Ptr -_0815E5E8: .4byte 0x00003d34 -_0815E5EC: .4byte 0x00003d42 - thumb_func_end sub_815E5C4 - thumb_func_start sub_815E5F0 sub_815E5F0: @ 815E5F0 push {lr} @@ -1676,4 +962,59 @@ _0815EDD4: .4byte gUnknown_83FE998 _0815EDD8: .4byte gUnknown_83FE9C4 thumb_func_end sub_815EC8C + thumb_func_start sub_815EDDC +sub_815EDDC: @ 815EDDC + ldr r1, _0815EDF0 @ =gSaveBlock2Ptr + ldr r1, [r1] + movs r2, 0xF2 + lsls r2, 4 + adds r1, r2 + ldr r0, [r0] + ldr r1, [r1] + eors r0, r1 + bx lr + .align 2, 0 +_0815EDF0: .4byte gSaveBlock2Ptr + thumb_func_end sub_815EDDC + + thumb_func_start sub_815EDF4 +sub_815EDF4: @ 815EDF4 + ldr r2, _0815EE08 @ =gSaveBlock2Ptr + ldr r2, [r2] + movs r3, 0xF2 + lsls r3, 4 + adds r2, r3 + ldr r2, [r2] + eors r2, r1 + str r2, [r0] + bx lr + .align 2, 0 +_0815EE08: .4byte gSaveBlock2Ptr + thumb_func_end sub_815EDF4 + + thumb_func_start sub_815EE0C +sub_815EE0C: @ 815EE0C + push {r4-r6,lr} + ldr r6, _0815EE30 @ =gSaveBlock1Ptr + ldr r5, _0815EE34 @ =0x00003d38 + movs r4, 0x3 +_0815EE14: + ldr r0, [r6] + adds r0, r5 + adds r0, 0x4 + ldr r1, _0815EE38 @ =0x00034bbf + bl sub_815EDF4 + adds r5, 0xC + subs r4, 0x1 + cmp r4, 0 + bge _0815EE14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0815EE30: .4byte gSaveBlock1Ptr +_0815EE34: .4byte 0x00003d38 +_0815EE38: .4byte 0x00034bbf + thumb_func_end sub_815EE0C + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s index e7e825483..cabaac727 100644 --- a/asm/unk_810C3A4.s +++ b/asm/unk_810C3A4.s @@ -180,7 +180,7 @@ sub_810C4EC: @ 810C4EC movs r0, 0xB5 lsls r0, 1 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s index a7761148d..c495dc281 100644 --- a/asm/unk_8147AA8.s +++ b/asm/unk_8147AA8.s @@ -2300,14 +2300,14 @@ _08148BFC: beq _08148C54 ldrh r0, [r1, 0x3E] ldrh r1, [r2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _08148C54 ldr r0, [r4] ldrh r0, [r0, 0x3E] movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08148C4C @@ -4162,7 +4162,7 @@ _0814998A: beq _0814999C adds r0, r5, 0 adds r1, r4, 0 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08149984 @@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468 ldr r1, [r5] adds r1, 0x26 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, [r5] adds r0, 0x66 adds r1, r6, 0 @@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C ldr r4, _0814A5AC @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4 ldr r4, _0814A624 @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 diff --git a/asm/unk_814B6F0.s b/asm/unk_814B6F0.s index 90882d61c..8cf90cd23 100644 --- a/asm/unk_814B6F0.s +++ b/asm/unk_814B6F0.s @@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId _0814B87C: ldrh r0, [r1] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0814B884: ldr r4, _0814B8E0 @ =gUnknown_203F3DC ldr r2, [r4] diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s index 0118eff4b..e0448643e 100644 --- a/asm/unk_81507FC.s +++ b/asm/unk_81507FC.s @@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0 _08153758: adds r0, r5, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _0815376A @@ -6249,10 +6249,10 @@ _08153758: _0815376A: adds r0, r6, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem adds r0, r6, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08153784 @@ -9989,7 +9989,7 @@ _08155480: lsrs r0, 16 add r5, sp, 0x70 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10021,7 +10021,7 @@ _08155480: lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s index 116458940..16db54083 100644 --- a/asm/unk_815EDDC.s +++ b/asm/unk_815EDDC.s @@ -5,61 +5,6 @@ .text - thumb_func_start sub_815EDDC -sub_815EDDC: @ 815EDDC - ldr r1, _0815EDF0 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EDF0: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDDC - - thumb_func_start sub_815EDF4 -sub_815EDF4: @ 815EDF4 - ldr r2, _0815EE08 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE08: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDF4 - - thumb_func_start sub_815EE0C -sub_815EE0C: @ 815EE0C - push {r4-r6,lr} - ldr r6, _0815EE30 @ =gSaveBlock1Ptr - ldr r5, _0815EE34 @ =0x00003d38 - movs r4, 0x3 -_0815EE14: - ldr r0, [r6] - adds r0, r5 - adds r0, 0x4 - ldr r1, _0815EE38 @ =0x00034bbf - bl sub_815EDF4 - adds r5, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _0815EE14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815EE30: .4byte gSaveBlock1Ptr -_0815EE34: .4byte 0x00003d38 -_0815EE38: .4byte 0x00034bbf - thumb_func_end sub_815EE0C - thumb_func_start sub_815EE3C sub_815EE3C: @ 815EE3C ldr r1, _0815EE50 @ =gSaveBlock2Ptr diff --git a/data/data_835B488.s b/data/data_835B488.s index 8d2183672..71e98b2ba 100644 --- a/data/data_835B488.s +++ b/data/data_835B488.s @@ -657,29 +657,16 @@ gUnknown_83A720C:: @ 83A720C gUnknown_83A7240:: @ 83A7240 .asciz "0" - .align 2 -gNullScriptPtr:: @ 83A7244 - .incbin "baserom.gba", 0x3A7244, 0x4 - -gUnknown_83A7248:: @ 83A7248 - .incbin "baserom.gba", 0x3A7248, 0x14 - -gUnknown_83A725C:: @ 83A725C - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - - .align 2 -gUnknown_83A7290:: @ 83A7290 - .asciz "0" - - .align 2 -gUnknown_83A7294:: @ 83A7294 - .incbin "baserom.gba", 0x3A7294, 0xC + .section .rodata.83A72A0 gUnknown_83A72A0:: @ 83A72A0 - .incbin "baserom.gba", 0x3A72A0, 0x2 + .string "S$" gUnknown_83A72A2:: @ 83A72A2 - .incbin "baserom.gba", 0x3A72A2, 0x6 + .string "IES$" + +gUnknown_83A72A6:: @ 83A72A6 + .string " " gUnknown_83A72A8:: @ 83A72A8 .incbin "baserom.gba", 0x3A72A8, 0x68 @@ -1560,7 +1547,7 @@ gUnknown_83DFC9C:: @ 83DFC9C gUnknown_83E04B0:: @ 83E04B0 .incbin "baserom.gba", 0x3E04B0, 0x208 -gUnknown_83E06B8:: @ 83E06B8 +gStdStringPtrs:: @ 83E06B8 .incbin "baserom.gba", 0x3E06B8, 0x74 gUnknown_83E072C:: @ 83E072C diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 9c39a96d2..a96e9ff70 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -785,7 +785,7 @@ gUnknown_84162B9:: @ 84162B9 .incbin "baserom.gba", 0x4162B9, 0x4 gUnknown_84162BD:: @ 84162BD - .incbin "baserom.gba", 0x4162BD, 0x7 + .string " BERRY$" gText_Coins:: @ 84162C4 .incbin "baserom.gba", 0x4162C4, 0x24 diff --git a/data/event_scripts.s b/data/event_scripts.s index 9baa201e5..23f6ad5a9 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -40,7 +40,7 @@ gStdScripts:: @ 8160450 .4byte gStdScript_81A676C .4byte gStdScript_81A8E58 .4byte gStdScript_81A4E66 -gStdScripts_End:: +gStdScriptsEnd:: gUnknown_8160478:: @ 8160478 .incbin "baserom.gba", 0x160478, 0x886C diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index 29850d685..2faa40381 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -1,8 +1,8 @@ .align 2 gScriptCmdTable:: @ 815F9B4 - .4byte sub_8069ED0 - .4byte sub_8069ED4 + .4byte ScrCmd_nop + .4byte ScrCmd_nop1 .4byte ScrCmd_end .4byte ScrCmd_return .4byte ScrCmd_call @@ -38,48 +38,48 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_compare_var_to_var .4byte ScrCmd_callnative .4byte ScrCmd_gotonative - .4byte sub_8069EFC - .4byte sub_8069F3C - .4byte sub_8069FA4 + .4byte ScrCmd_special + .4byte ScrCmd_specialvar + .4byte ScrCmd_waitstate .4byte ScrCmd_delay .4byte ScrCmd_setflag .4byte ScrCmd_clearflag .4byte ScrCmd_checkflag - .4byte sub_806A9D4 - .4byte sub_806A9D8 - .4byte sub_806A9DC + .4byte ScrCmd_initclock + .4byte ScrCmd_dodailyevents + .4byte ScrCmd_gettime .4byte ScrCmd_playse - .4byte sub_806B094 + .4byte ScrCmd_waitse .4byte ScrCmd_playfanfare - .4byte sub_806B0CC - .4byte sub_806B0E0 - .4byte sub_806B120 - .4byte sub_806B134 - .4byte sub_806B154 - .4byte sub_806B17C - .4byte sub_806B1C8 + .4byte ScrCmd_waitfanfare + .4byte ScrCmd_playbgm + .4byte ScrCmd_savebgm + .4byte ScrCmd_fadedefaultbgm + .4byte ScrCmd_fadenewbgm + .4byte ScrCmd_fadeoutbgm + .4byte ScrCmd_fadeinbgm .4byte ScrCmd_warp .4byte ScrCmd_warpsilent .4byte ScrCmd_warpdoor .4byte ScrCmd_warphole - .4byte sub_806AC70 + .4byte ScrCmd_warpteleport .4byte ScrCmd_setwarp .4byte ScrCmd_setdynamicwarp - .4byte sub_806AE90 - .4byte sub_806AF10 + .4byte ScrCmd_setdivewarp + .4byte ScrCmd_setholewarp .4byte ScrCmd_getplayerxy .4byte ScrCmd_getpartysize - .4byte sub_806A610 + .4byte ScrCmd_giveitem .4byte ScrCmd_takeitem - .4byte sub_806A6A0 - .4byte sub_806A6E4 + .4byte ScrCmd_checkitemspace + .4byte ScrCmd_checkitem .4byte ScrCmd_checkitemtype .4byte ScrCmd_givepcitem .4byte ScrCmd_checkpcitem - .4byte sub_806A7DC - .4byte sub_806A7F0 - .4byte sub_806A818 - .4byte sub_806A804 + .4byte ScrCmd_givedecoration + .4byte ScrCmd_takedecoration + .4byte ScrCmd_checkdecor + .4byte ScrCmd_checkdecorspace .4byte ScrCmd_applymovement .4byte ScrCmd_applymovement_at .4byte ScrCmd_waitmovement @@ -94,34 +94,34 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_faceplayer .4byte ScrCmd_turnobject .4byte ScrCmd_trainerbattle - .4byte sub_806C2D8 - .4byte ScrCmd_ontrainerbattleend - .4byte ScrCmd_ontrainerbattleendgoto + .4byte ScrCmd_dotrainerbattle + .4byte ScrCmd_gotopostbattlescript + .4byte ScrCmd_gotobeatenscript .4byte ScrCmd_checktrainerflag .4byte ScrCmd_settrainerflag .4byte ScrCmd_cleartrainerflag .4byte ScrCmd_setobjectxyperm .4byte ScrCmd_moveobjectoffscreen .4byte ScrCmd_setobjectmovementtype - .4byte sub_806B878 - .4byte sub_806B80C - .4byte sub_806B88C + .4byte ScrCmd_waitmessage + .4byte ScrCmd_message + .4byte ScrCmd_closemessage .4byte ScrCmd_lockall .4byte ScrCmd_lock .4byte ScrCmd_releaseall .4byte ScrCmd_release - .4byte sub_806BA3C + .4byte ScrCmd_waitbuttonpress .4byte ScrCmd_yesnobox .4byte ScrCmd_multichoice .4byte ScrCmd_multichoicedefault .4byte ScrCmd_multichoicegrid - .4byte sub_806BB38 - .4byte sub_806BB8C - .4byte sub_806BB98 - .4byte sub_806BB9C - .4byte sub_806BBD8 - .4byte sub_806BBF8 - .4byte sub_806BC04 + .4byte ScrCmd_drawbox + .4byte ScrCmd_erasebox + .4byte ScrCmd_drawboxtext + .4byte ScrCmd_showmonpic + .4byte ScrCmd_hidemonpic + .4byte ScrCmd_showcontestwinner + .4byte ScrCmd_braillemessage .4byte ScrCmd_givemon .4byte ScrCmd_giveegg .4byte ScrCmd_setmonmove @@ -130,33 +130,33 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_bufferleadmonspeciesname .4byte ScrCmd_bufferpartymonnick .4byte ScrCmd_bufferitemname - .4byte sub_806BE34 + .4byte ScrCmd_bufferdecorationname .4byte ScrCmd_buffermovename .4byte ScrCmd_buffernumberstring .4byte ScrCmd_bufferstdstring .4byte ScrCmd_bufferstring - .4byte sub_806C3AC - .4byte sub_806C3C0 - .4byte sub_806C3D4 + .4byte ScrCmd_pokemart + .4byte ScrCmd_pokemartdecoration + .4byte ScrCmd_pokemartdecoration2 .4byte ScrCmd_playslotmachine - .4byte sub_806C410 - .4byte sub_806C418 - .4byte sub_806C424 - .4byte sub_806C428 - .4byte sub_806C42C + .4byte ScrCmd_setberrytree + .4byte ScrCmd_choosecontestmon + .4byte ScrCmd_startcontest + .4byte ScrCmd_showcontestresults + .4byte ScrCmd_contestlinktransfer .4byte ScrCmd_random .4byte ScrCmd_givemoney .4byte ScrCmd_takemoney .4byte ScrCmd_checkmoney - .4byte sub_806C1CC - .4byte sub_806C21C - .4byte sub_806C228 - .4byte sub_806C414 + .4byte ScrCmd_showmoneybox + .4byte ScrCmd_hidemoneybox + .4byte ScrCmd_updatemoneybox + .4byte ScrCmd_getpricereduction .4byte ScrCmd_fadescreen .4byte ScrCmd_fadescreenspeed .4byte ScrCmd_setflashradius .4byte ScrCmd_animateflash - .4byte sub_806B85C + .4byte ScrCmd_messageautoscroll .4byte ScrCmd_dofieldeffect .4byte ScrCmd_setfieldeffectarg .4byte ScrCmd_waitfieldeffect @@ -175,16 +175,16 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_turnvobject .4byte ScrCmd_opendoor .4byte ScrCmd_closedoor - .4byte sub_806C688 + .4byte ScrCmd_waitdooranim .4byte ScrCmd_setdooropen .4byte ScrCmd_setdoorclosed - .4byte sub_806C724 - .4byte sub_806C728 + .4byte ScrCmd_addelevmenuitem + .4byte ScrCmd_showelevmenu .4byte ScrCmd_checkcoins .4byte ScrCmd_givecoins .4byte ScrCmd_takecoins .4byte ScrCmd_setwildbattle - .4byte sub_806C39C + .4byte ScrCmd_dowildbattle .4byte ScrCmd_setvaddress .4byte ScrCmd_vgoto .4byte ScrCmd_vcall @@ -193,27 +193,27 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_vmessage .4byte ScrCmd_vloadword .4byte ScrCmd_vbufferstring - .4byte sub_806C258 + .4byte ScrCmd_showcoinsbox .4byte ScrCmd_hidecoinsbox .4byte ScrCmd_updatecoinsbox .4byte ScrCmd_incrementgamestat .4byte ScrCmd_setescapewarp - .4byte sub_806C540 + .4byte ScrCmd_waitmoncry .4byte ScrCmd_bufferboxname - .4byte sub_806B7EC - .4byte sub_806B828 - .4byte sub_806B850 - .4byte sub_806C7BC - .4byte sub_806C7C8 - .4byte sub_806A888 + .4byte ScrCmd_cmdC7 + .4byte ScrCmd_cmdC8 + .4byte ScrCmd_cmdC9 + .4byte ScrCmd_cmdCA + .4byte ScrCmd_cmdCB + .4byte ScrCmd_comparestattoword .4byte ScrCmd_setmonobedient .4byte ScrCmd_checkmonobedience - .4byte sub_806A28C - .4byte sub_806A8C0 - .4byte sub_806ACF8 - .4byte sub_806C844 - .4byte sub_806BC40 - .4byte sub_806BD90 + .4byte ScrCmd_cmdCF + .4byte ScrCmd_cmdD0 + .4byte ScrCmd_warpD1 + .4byte ScrCmd_setmonmetlocation + .4byte ScrCmd_getbraillestringwidth + .4byte ScrCmd_bufferitemnameplural gScriptCmdTableEnd:: @ 815FD08 - .4byte sub_8069ED0 + .4byte ScrCmd_nop diff --git a/data/specials.inc b/data/specials.inc index 171a6fd8e..56b666207 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -327,8 +327,8 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special sub_807B6C0 - def_special sp13E_warp_to_last_warp - def_special sp13F_fall_to_last_warp + def_special DoDiveWarp + def_special DoFallWarp def_special nullsub_75 def_special nullsub_75 def_special sub_80E5E70 diff --git a/data/trainer_tower.s b/data/trainer_tower.s index f90d1dd2b..6065500b5 100644 --- a/data/trainer_tower.s +++ b/data/trainer_tower.s @@ -1,5 +1,7 @@ +#include "constants/items.h" .include "asm/macros.inc" - .include "constants/constants.inc" + .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" .section .rodata @@ -562,7 +564,21 @@ gUnknown_847A284:: @ 847A284 .2byte 0x0131, 0x0175, 0x017d gUnknown_847A2B4:: @ 847A2B4 - .2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda + .2byte ITEM_HP_UP + .2byte ITEM_PROTEIN + .2byte ITEM_IRON + .2byte ITEM_CARBOS + .2byte ITEM_CALCIUM + .2byte ITEM_ZINC + .2byte ITEM_BRIGHT_POWDER + .2byte ITEM_WHITE_HERB + .2byte ITEM_MENTAL_HERB + .2byte ITEM_CHOICE_BAND + .2byte ITEM_KINGS_ROCK + .2byte ITEM_SCOPE_LENS + .2byte ITEM_METAL_COAT + .2byte ITEM_DRAGON_SCALE + .2byte ITEM_UP_GRADE gUnknown_847A2D2:: @ 847A2D2 .2byte 0x011d diff --git a/data/trainer_tower/trainers.inc b/data/trainer_tower/trainers.inc index e2f7dd121..d304a799d 100644 --- a/data/trainer_tower/trainers.inc +++ b/data/trainer_tower/trainers.inc @@ -22,8 +22,8 @@ .macro dummy_tower_team .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -41,8 +41,8 @@ gUnknown_847ABAC:: .byte 0x01, 0x08, 0x00, 0x07 .string "COLE$", 11 - .byte FACILITY_CLASS_YOUNGSTER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNGSTER_2, 0x01 + .align 1 .2byte EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL .2byte EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL @@ -128,8 +128,8 @@ gUnknown_847ABAC:: gUnknown_847AF8C:: .byte 0x02, 0x08, 0x00, 0x0d .string "JAC$", 11 - .byte FACILITY_CLASS_BURGLAR, 0x01, 0x00 - + .byte FACILITY_CLASS_BURGLAR, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING .2byte EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT .2byte EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER @@ -215,8 +215,8 @@ gUnknown_847AF8C:: gUnknown_847B36C:: .byte 0x03, 0x08, 0x00, 0x02 .string "MILY$", 11 - .byte FACILITY_CLASS_PSYCHIC_4, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_4, 0x01 + .align 1 .2byte EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL .2byte EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL @@ -302,8 +302,8 @@ gUnknown_847B36C:: gUnknown_847B74C:: .byte 0x04, 0x08, 0x01, 0x09 .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE .2byte EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE .2byte EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -382,8 +382,8 @@ gUnknown_847B74C:: .byte 255 @ friendship .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN .2byte EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL @@ -468,8 +468,8 @@ gUnknown_847B74C:: gUnknown_847BB2C:: .byte 0x05, 0x08, 0x01, 0x04 .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS .2byte EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES @@ -548,8 +548,8 @@ gUnknown_847BB2C:: .byte 255 @ friendship .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE .2byte EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS @@ -634,8 +634,8 @@ gUnknown_847BB2C:: gUnknown_847BF0C:: .byte 0x06, 0x08, 0x01, 0x00 .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES .2byte EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL @@ -714,8 +714,8 @@ gUnknown_847BF0C:: .byte 255 @ friendship .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN .2byte EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON .2byte EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS @@ -800,8 +800,8 @@ gUnknown_847BF0C:: gUnknown_847C2EC:: .byte 0x07, 0x08, 0x02, 0x0c .string "JORDY$", 11 - .byte FACILITY_CLASS_BIKER, 0x03, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x03 + .align 1 .2byte EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER .2byte EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL .2byte EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL @@ -880,8 +880,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "ERNEST$", 11 - .byte FACILITY_CLASS_BIKER, 0x01, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x01 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL .2byte EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES @@ -960,8 +960,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "GABRIEL$", 11 - .byte FACILITY_CLASS_CUE_BALL, 0x01, 0x00 - + .byte FACILITY_CLASS_CUE_BALL, 0x01 + .align 1 .2byte EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU .2byte EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES .2byte EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -1045,8 +1045,8 @@ gUnknown_847C2EC:: gUnknown_847C6CC:: .byte 0x08, 0x08, 0x02, 0x0e .string "MIKE$", 11 - .byte FACILITY_CLASS_HIKER_2, 0x05, 0x00 - + .byte FACILITY_CLASS_HIKER_2, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER .2byte EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT) @@ -1125,8 +1125,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "REBECCA$", 11 - .byte FACILITY_CLASS_CRUSH_GIRL, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_GIRL, 0x05 + .align 1 .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING .2byte EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1205,8 +1205,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "NICOLAS$", 11 - .byte FACILITY_CLASS_BLACK_BELT_2, 0x05, 0x00 - + .byte FACILITY_CLASS_BLACK_BELT_2, 0x05 + .align 1 .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME .2byte EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES @@ -1290,8 +1290,8 @@ gUnknown_847C6CC:: gUnknown_847CAAC:: .byte 0x09, 0x08, 0x00, 0x00 .string "JOEY$", 11 - .byte FACILITY_CLASS_CAMPER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_CAMPER_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL .2byte EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES .2byte EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL @@ -1377,8 +1377,8 @@ gUnknown_847CAAC:: gUnknown_847CE8C:: .byte 0x0a, 0x08, 0x00, 0x0c .string "LILY$", 11 - .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01 + .align 1 .2byte EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS @@ -1464,8 +1464,8 @@ gUnknown_847CE8C:: gUnknown_847D26C:: .byte 0x0b, 0x08, 0x00, 0x0e .string "BRANDON$", 11 - .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01 + .align 1 .2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES .2byte EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES @@ -1551,8 +1551,8 @@ gUnknown_847D26C:: gUnknown_847D64C:: .byte 0x0c, 0x08, 0x01, 0x02 .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES @@ -1631,8 +1631,8 @@ gUnknown_847D64C:: .byte 255 @ friendship .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES @@ -1717,8 +1717,8 @@ gUnknown_847D64C:: gUnknown_847DA2C:: .byte 0x0d, 0x08, 0x01, 0x0d .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x05, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL .2byte EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1797,8 +1797,8 @@ gUnknown_847DA2C:: .byte 255 @ friendship .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x03, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x03 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1883,8 +1883,8 @@ gUnknown_847DA2C:: gUnknown_847DE0C:: .byte 0x0e, 0x08, 0x01, 0x08 .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY .2byte EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF @@ -1963,8 +1963,8 @@ gUnknown_847DE0C:: .byte 255 @ friendship .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL .2byte EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY @@ -2049,8 +2049,8 @@ gUnknown_847DE0C:: gUnknown_847E1EC:: .byte 0x0f, 0x08, 0x02, 0x06 .string "CHELSEA$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07 + .align 1 .2byte EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF .2byte EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD @@ -2129,8 +2129,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "TRENTON$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07 + .align 1 .2byte EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD .2byte EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS .2byte EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF @@ -2209,8 +2209,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "ALBERT$", 11 - .byte FACILITY_CLASS_COOLTRAINER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_3, 0x07 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING .2byte EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING @@ -2294,8 +2294,8 @@ gUnknown_847E1EC:: gUnknown_847E5CC:: .byte 0x10, 0x08, 0x02, 0x04 .string "CAMRYN$", 11 - .byte FACILITY_CLASS_PICNICKER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_PICNICKER_2, 0x01 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN .2byte EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES @@ -2374,8 +2374,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "NATALIA$", 11 - .byte FACILITY_CLASS_AROMA_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_AROMA_LADY_2, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES .2byte EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF .2byte EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -2454,8 +2454,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "KATHLEEN$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU .2byte EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS @@ -2539,8 +2539,8 @@ gUnknown_847E5CC:: gUnknown_847E9AC:: .byte 0x11, 0x08, 0x00, 0x03 .string "BRADEN$", 11 - .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS .2byte EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS @@ -2626,8 +2626,8 @@ gUnknown_847E9AC:: gUnknown_847ED8C:: .byte 0x12, 0x08, 0x00, 0x0a .string "ALLYSON$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY .2byte EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY .2byte EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK @@ -2713,8 +2713,8 @@ gUnknown_847ED8C:: gUnknown_847F16C:: .byte 0x13, 0x08, 0x00, 0x0e .string "ALBERTO$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x05, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x05 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY .2byte EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES .2byte EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER @@ -2800,8 +2800,8 @@ gUnknown_847F16C:: gUnknown_847F54C:: .byte 0x14, 0x08, 0x01, 0x0c .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST .2byte EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES @@ -2880,8 +2880,8 @@ gUnknown_847F54C:: .byte 255 @ friendship .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES @@ -2966,8 +2966,8 @@ gUnknown_847F54C:: gUnknown_847F92C:: .byte 0x15, 0x08, 0x01, 0x08 .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA .2byte EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS .2byte EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES @@ -3046,8 +3046,8 @@ gUnknown_847F92C:: .byte 255 @ friendship .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF .2byte EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE @@ -3132,8 +3132,8 @@ gUnknown_847F92C:: gUnknown_847FD0C:: .byte 0x16, 0x08, 0x01, 0x05 .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3212,8 +3212,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3292,8 +3292,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -3377,8 +3377,8 @@ gUnknown_847FD0C:: gUnknown_84800EC:: .byte 0x17, 0x08, 0x02, 0x01 .string "PRISCILLA$", 11 - .byte FACILITY_CLASS_TUBER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_TUBER_3, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL .2byte EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES .2byte EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS @@ -3457,8 +3457,8 @@ gUnknown_84800EC:: .byte 0 @ friendship .string "CHARLOTTE$", 11 - .byte FACILITY_CLASS_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LADY_2, 0x01 + .align 1 .2byte EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY .2byte EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY .2byte EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY @@ -3537,8 +3537,8 @@ gUnknown_84800EC:: .byte 255 @ friendship .string "SHANIA$", 11 - .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01 + .align 1 .2byte EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM .2byte EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY .2byte EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE @@ -3622,8 +3622,8 @@ gUnknown_84800EC:: gUnknown_84804CC:: .byte 0x18, 0x08, 0x02, 0x0d .string "BRENNAN$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x01 + .align 1 .2byte EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT .2byte EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL .2byte EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN @@ -3702,8 +3702,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "KADEN$", 11 - .byte FACILITY_CLASS_FISHERMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_FISHERMAN_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC .2byte EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT .2byte EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST @@ -3782,8 +3782,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "EMANUEL$", 11 - .byte FACILITY_CLASS_GENTLEMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_GENTLEMAN_2, 0x01 + .align 1 .2byte EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES .2byte EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS .2byte EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER @@ -3867,8 +3867,8 @@ gUnknown_84804CC:: gUnknown_84808AC:: .byte 0x19, 0x08, 0x00, 0x0c .string "JARRETT$", 11 - .byte FACILITY_CLASS_JUGGLER, 0x02, 0x00 - + .byte FACILITY_CLASS_JUGGLER, 0x02 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL .2byte EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID .2byte EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT @@ -3954,8 +3954,8 @@ gUnknown_84808AC:: gUnknown_8480C8C:: .byte 0x1a, 0x08, 0x00, 0x0d .string "OWEN$", 11 - .byte FACILITY_CLASS_SUPER_NERD, 0x02, 0x00 - + .byte FACILITY_CLASS_SUPER_NERD, 0x02 + .align 1 .2byte EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL .2byte EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL .2byte EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND @@ -4041,8 +4041,8 @@ gUnknown_8480C8C:: gUnknown_848106C:: .byte 0x1b, 0x08, 0x00, 0x01 .string "LORENZO$", 11 - .byte FACILITY_CLASS_PSYCHIC_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_3, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL .2byte EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER .2byte EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT @@ -4128,8 +4128,8 @@ gUnknown_848106C:: gUnknown_848144C:: .byte 0x1c, 0x08, 0x01, 0x0b .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY .2byte EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER .2byte EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES @@ -4208,8 +4208,8 @@ gUnknown_848144C:: .byte 255 @ friendship .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL .2byte EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM .2byte EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START @@ -4294,8 +4294,8 @@ gUnknown_848144C:: gUnknown_848182C:: .byte 0x1d, 0x08, 0x01, 0x03 .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD .2byte EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS @@ -4374,8 +4374,8 @@ gUnknown_848182C:: .byte 255 @ friendship .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD .2byte EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT .2byte EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS @@ -4460,8 +4460,8 @@ gUnknown_848182C:: gUnknown_8481C0C:: .byte 0x1e, 0x08, 0x01, 0x05 .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM) .2byte EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION) @@ -4540,8 +4540,8 @@ gUnknown_8481C0C:: .byte 255 @ friendship .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL .2byte EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL .2byte EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL @@ -4626,8 +4626,8 @@ gUnknown_8481C0C:: gUnknown_8481FEC:: .byte 0x1f, 0x08, 0x02, 0x07 .string "BEN$", 11 - .byte FACILITY_CLASS_ROCKER, 0x01, 0x00 - + .byte FACILITY_CLASS_ROCKER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS .2byte EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM @@ -4706,8 +4706,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "CAMDEN$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x01, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK @@ -4786,8 +4786,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "ZACKERY$", 11 - .byte FACILITY_CLASS_SCIENTIST, 0x01, 0x00 - + .byte FACILITY_CLASS_SCIENTIST, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL @@ -4871,8 +4871,8 @@ gUnknown_8481FEC:: gUnknown_84823CC:: .byte 0x20, 0x08, 0x02, 0x0e .string "MAURA$", 11 - .byte FACILITY_CLASS_BEAUTY_2, 0x02, 0x00 - + .byte FACILITY_CLASS_BEAUTY_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF .2byte EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES .2byte EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE @@ -4951,8 +4951,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "MIKAELA$", 11 - .byte FACILITY_CLASS_LASS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LASS_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE .2byte EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT .2byte EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING @@ -5031,8 +5031,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "FLINT$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x04, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL .2byte EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS diff --git a/include/battle_2.h b/include/battle_2.h index ca8b78805..1f7a2304d 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -43,6 +43,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); bool8 TryRunFromBattle(u8 bank); +void sub_800FD9C(void); extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/battle_setup.h b/include/battle_setup.h index 2806295ca..61395811b 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -11,11 +11,12 @@ void BattleSetup_StartWildBattle(void); void BattleSetup_StartRoamerBattle(void); u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void SetTrainerFlag(u16); +void ClearTrainerFlag(u16); void BattleSetup_StartTrainerBattle(void); u8 *BattleSetup_GetScriptAddrAfterBattle(void); u8 *BattleSetup_GetTrainerPostBattleScript(void); void sub_80803FC(void); +u8 sub_8080060(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index eba76fd61..91e564790 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -3,6 +3,8 @@ #include "global.h" -void sub_8149DFC(u8 a1); +void sub_8149DFC(u8 a0); +bool8 sub_80D08F8(void); +void sub_80D08B8(u8 a0); #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/event_data.h b/include/event_data.h index 13e388bf2..34d103967 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -59,4 +59,7 @@ extern u16 gSpecialVar_0x8014; extern u16 gSpecialVar_Result; extern u16 gSpecialVar_0x8004; +extern u16 gUnknown_20370DA; +extern u16 gUnknown_20370DC; + #endif // GUARD_EVENT_DATA_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 051865210..a2a4d3eac 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -3,14 +3,14 @@ #include "global.h" -void sub_80AF734(void); -void sp13E_warp_to_last_warp(void); -void sub_80AF7D0(void); -void sp13F_fall_to_last_warp(void); +void sub_807DF7C(void); +void DoWarp(void); +void DoDiveWarp(void); +void DoDoorWarp(void); -void sub_80AF848(void); -void sub_80AF87C(void); +void DoFallWarp(void); +void sub_807E59C(void); +void sub_807E500(void); void sub_807DF64(void); -void sub_807DF7C(void); #endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d2ec58979..69e3419de 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -35,7 +35,7 @@ u8 sub_808D4F4(void); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); -void sub_808EBA8(u8, u8, u8, s16, s16); +void sub_805F7C4(u8, u8, u8, s16, s16); void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); @@ -59,13 +59,13 @@ const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); void gpu_pal_allocator_reset__manage_upper_four(void); void sub_808E82C(u8, u8, u8, s16, s16); -void sub_808E7E4(u8, u8, u8); -void sub_808E78C(u8, u8, u8, u8); +void sub_805F400(u8, u8, u8); +void sub_805F3A8(u8, u8, u8, u8); void sub_808E75C(s16, s16); void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); -void sub_808F254(u8, u8, u8); +void sub_805FE94(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); u8 GetOppositeDirection(u8); diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index 2d3f69d95..cd1b19eaf 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -4,6 +4,6 @@ #include "global.h" void UnfreezeMapObjects(void); -void sub_8097B78(u8, u8); +void sub_8069058(u8, u8); #endif diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 297d66441..bb78bd0f3 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -20,5 +20,6 @@ u8 sub_805C808(u8); void SetPlayerAvatarStateMask(u8 mask); void sub_805D9C4(struct Sprite *sprite); void sub_805D154(u8 direction); +void sub_805DAE4(u8 direction); #endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index add61d57c..14d7e5d81 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -4,7 +4,7 @@ #include "global.h" void sub_80AF79C(void); -void sub_80B009C(u8); +void sub_807F028(u8); void sub_80B0244(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_specials.h b/include/field_specials.h index 2b7991b55..2d495fdd5 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -4,6 +4,7 @@ #include "global.h" u8 GetLeadMonIndex(void); +u8 CountDigits(u16 number); void TV_PrintIntToStringVar(u8, int); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_weather.h b/include/field_weather.h index b896259e9..eb80c455a 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -10,6 +10,7 @@ u8 GetSav1Weather(void); void sub_80AEDBC(void); void DoCurrentWeather(void); +void SetSav1WeatherFromCurrMapHeader(void); void sub_807B0C4(u16 *, u16 *, u32); #endif // GUARD_WEATHER_H diff --git a/include/global.h b/include/global.h index 858d95831..f418ff757 100644 --- a/include/global.h +++ b/include/global.h @@ -709,6 +709,21 @@ struct MEventBuffers /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C +struct TrainerTowerLog +{ + u32 unk0; + u32 unk4; + u8 unk8; + u8 unk9; + u8 unkA_0:1; + u8 unkA_1:1; + u8 unkA_2:1; + u8 unkA_3:1; + u8 unkA_4:1; + u8 unkA_5:1; + u8 unkA_6:2; +}; + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -766,7 +781,7 @@ struct SaveBlock1 /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x2A0]; /*0x3D34*/ u32 unkArrayIdx; - /*0x3D38*/ u32 unkArray[4][3]; + /*0x3D38*/ struct TrainerTowerLog unkArray[4]; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/item.h b/include/item.h index 75c56c94d..25177cb6e 100644 --- a/include/item.h +++ b/include/item.h @@ -62,6 +62,8 @@ u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); void sub_809A2DC(void); void sub_809A2A4(void); -void sub_8099E90(u16, u8 *); +void CopyItemName(u16, u8 *); +void sub_809A824(u16 itemId); +bool8 AddBagItem(u16 itemId, u16 amount); #endif // ITEM_H diff --git a/include/main.h b/include/main.h index 3fb254c95..6e9d2a25d 100644 --- a/include/main.h +++ b/include/main.h @@ -66,6 +66,7 @@ void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); void SetVBlankCounter1Ptr(u32 *ptr); +void DisableVBlankCounter1(void); extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h index c8e075658..2927ca26d 100644 --- a/include/map_obj_lock.h +++ b/include/map_obj_lock.h @@ -3,9 +3,9 @@ #include "global.h" -bool8 sub_80983C4(void); +bool8 sub_8069590(void); void ScriptFreezeMapObjects(void); -bool8 sub_809847C(void); +bool8 sub_8069648(void); void LockSelectedMapObject(void); void sub_8098630(void); bool8 sub_8098734(void); diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h new file mode 100644 index 000000000..8d9114b82 --- /dev/null +++ b/include/map_preview_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MAP_PREVIEW_SCREEN_H +#define GUARD_MAP_PREVIEW_SCREEN_H + +void sub_80F85BC(u16 a0); + +#endif //GUARD_MAP_PREVIEW_SCREEN_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 2a68a35e6..ce8e8d697 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -19,5 +19,8 @@ void sub_80F6F54(u8, u8); u8 sub_80F78A8(void); void sub_80F6E9C(void); void sub_80F6EE4(u8 windowId, bool8 transfer); +void sub_80F7974(const u8 *); +u8 GetStartMenuWindowId(void); +void sub_80F7998(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h index 50ac09d9e..fbea3a4d9 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -35,7 +35,10 @@ void Overworld_SetMapObjTemplateMovementType(u8, u8); void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); -void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetDynamicWarpWithCoords(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void Overworld_SetHealLocationWarp(u8); void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8084E2C(s8, s8, s8, s8, s8); @@ -81,11 +84,17 @@ void sub_8055DC4(void); u8 sav1_map_get_name(void); +void SetCurrentMapLayout(u16 mapDataId); +void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y); + +void ResetInitialPlayerAvatarState(void); void sub_8055D40(u16 mapDataId); +void sub_80563F0(void); extern u8 gUnknown_2031DD8; extern u8 gUnknown_2036E28; extern bool8 (* gUnknown_3005024)(void); +void SetLastHealLocationWarp(u8 healLocaionId); #endif //GUARD_ROM4_H diff --git a/include/party_menu.h b/include/party_menu.h index 19e1f7d4e..2e83c1496 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -12,7 +12,7 @@ enum { AILMENT_BRN }; -bool8 pokemon_has_move(struct Pokemon *, u16); +bool8 MonKnowsMove(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); u8 pokemon_ailments_get_primary(u32 status); diff --git a/include/pokemon.h b/include/pokemon.h index e8782af98..4c6240cd4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -670,4 +670,6 @@ void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); +void PlayMapChosenOrBattleBGM(u16 songId); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 5b2d2052b..897c5a42e 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -12,5 +12,6 @@ void SetBoxMonNickFromAnyBox(u8 boxId, u8 monPosition, u8 * newNick); void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); void sub_808BCB4(u8 boxId, u8 monPosition); +u8 * GetBoxNamePtr(u8 boxId); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/quest_log.h b/include/quest_log.h index 9f8a0ea21..31220b86c 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -21,5 +21,10 @@ extern struct UnkStruct_203AE98 * gUnknown_3005E94; void sub_8112720(u8); void sub_8113550(u16, const u16 *); +void sub_8115748(u16); +u8 sub_8112CAC(void); +bool8 sub_81119D4(void (*func)(void)); + +extern u8 gUnknown_203ADFA; #endif //GUARD_QUEST_LOG_H diff --git a/include/script.h b/include/script.h index ebb4caa86..8ffbe1563 100644 --- a/include/script.h +++ b/include/script.h @@ -65,5 +65,14 @@ void sub_80992A0(u8 *script, u16 scriptSize); bool32 sub_8069DFC(void); void sub_8069EA4(u8 * script, u16 scriptSize); u8 * sub_8069E48(void); +void sub_8069998(u8 var); +void sub_80699F8(void); +void sub_8069964(void); +void sub_80699A4(void); +void sub_8069970(void); +void sub_8069A20(void); +void sub_8069A2C(void); + +extern const u8 *gRAMScriptPtr; #endif // GUARD_SCRIPT_H diff --git a/include/script_menu.h b/include/script_menu.h index 1e95570b3..f82b061a5 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -3,7 +3,7 @@ #include "global.h" -extern const u8 *const gUnknown_0858BAF0[9]; +extern const u8 *const gStdStringPtrs[9]; bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); @@ -11,5 +11,6 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); +void sub_809D6D4(void); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/script_movement.h b/include/script_movement.h index ae446812e..2a6dbd2a7 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -5,6 +5,6 @@ bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *); bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); -void sub_80D338C(void); +void sub_80974D8(void); #endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/script_pokemon_util_80A0058.h b/include/script_pokemon_util_80A0058.h new file mode 100644 index 000000000..e1d228589 --- /dev/null +++ b/include/script_pokemon_util_80A0058.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SCRIPT_POKEMON_UTIL_80A0058_H +#define GUARD_SCRIPT_POKEMON_UTIL_80A0058_H + +bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3); +bool8 ScriptGiveEgg(u16 species); +void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot); + +#endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H diff --git a/include/sound.h b/include/sound.h index 34fdfc839..e720fc1a2 100644 --- a/include/sound.h +++ b/include/sound.h @@ -31,6 +31,7 @@ void PlayCry3(u16 species, s8 pan, u8 mode); void PlayCry4(u16 species, s8 pan, u8 mode); void PlayCry5(u16 species, u8 mode); void PlayCry6(u16 species, s8 pan, u8 mode); +void PlayCry7(u16 species, u8 mode); void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode); bool8 IsCryFinished(void); void StopCryAndClearCrySongs(void); diff --git a/ld_script.txt b/ld_script.txt index 8d188156b..5bfe7f28c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -103,7 +103,7 @@ SECTIONS { asm/map_obj_lock.o(.text); asm/text_window_graphics.o(.text); src/script.o(.text); - asm/scrcmd.o(.text); + src/scrcmd.o(.text); asm/field_control_avatar.o(.text); asm/event_data.o(.text); asm/coord_event_weather.o(.text); @@ -370,6 +370,8 @@ SECTIONS { src/metatile_behavior.o(.rodata); data/metatile_behavior.o(.rodata); data/data_835B488.o(.rodata); + src/scrcmd.o(.rodata); + data/data_835B488.o(.rodata.83A72A0); src/battle_ai_script_commands.o(.rodata); data/data_83F5738.o(.rodata); src/save.o(.rodata); diff --git a/src/load_save.c b/src/load_save.c index da55869aa..6f388e451 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -287,7 +287,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey) int i; for(i = 0; i < 4; i++) - ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i][1], encryptionKey); + ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i].unk4, encryptionKey); sub_8054F38(encryptionKey); ApplyNewEncryptionKeyToBagItems_(encryptionKey); diff --git a/src/quest_log.c b/src/quest_log.c index 4f462505a..a01cbde2d 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -4312,7 +4312,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1) const u16 * sub_8114C8C(const u16 * a0) { const u16 *r4 = sub_8113E88(28, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A391); return r4 + 1; } @@ -4329,7 +4329,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1) const u16 * sub_8114CE4(const u16 * a0) { const u16 *r4 = sub_8113E88(29, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A3DA); return r4 + 1; } diff --git a/src/scrcmd.c b/src/scrcmd.c new file mode 100644 index 000000000..911ad2a42 --- /dev/null +++ b/src/scrcmd.c @@ -0,0 +1,2270 @@ +#include "global.h" +#include "gba/isagbprint.h" +#include "palette.h" +#include "script.h" +#include "mystery_event_script.h" +#include "event_data.h" +#include "random.h" +#include "item.h" +#include "overworld.h" +#include "field_screen_effect.h" +#include "quest_log.h" +#include "map_preview_screen.h" +#include "field_weather.h" +#include "field_tasks.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" +#include "sound.h" +#include "script_movement.h" +#include "field_map_obj.h" +#include "field_map_obj_helpers.h" +#include "map_obj_lock.h" +#include "field_message_box.h" +#include "new_menu_helpers.h" +#include "window.h" +#include "start_menu.h" +#include "script_menu.h" +#include "string_util.h" +#include "data2.h" +#include "field_specials.h" +#include "constants/items.h" +#include "script_pokemon_util_80A0058.h" +#include "pokemon_storage_system.h" +#include "party_menu.h" +#include "money.h" +#include "coins.h" +#include "battle_setup.h" +#include "shop.h" +#include "script_pokemon_80F8.h" +#include "slot_machine.h" +#include "field_effect.h" +#include "fieldmap.h" +#include "field_door.h" + +extern u16 (*const gSpecials[])(void); +extern u16 (*const gSpecialsEnd[])(void); +extern const u8 *const gStdScripts[]; +extern const u8 *const gStdScriptsEnd[]; + +EWRAM_DATA ptrdiff_t gVScriptOffset = 0; +EWRAM_DATA u8 gUnknown_20370AC = 0; +EWRAM_DATA u16 sPauseCounter = 0; +EWRAM_DATA u16 sMovingNpcId = 0; +EWRAM_DATA u16 sMovingNpcMapBank = 0; +EWRAM_DATA u16 sMovingNpcMapId = 0; +EWRAM_DATA u16 sFieldEffectScriptId = 0; + +extern u8 gSelectedEventObject; + +// This is defined in here so the optimizer can't see its value when compiling +// script.c. +void * const gNullScriptPtr = NULL; + +const u8 sScriptConditionTable[6][3] = + { +// < = > + 1, 0, 0, // < + 0, 1, 0, // = + 0, 0, 1, // > + 1, 1, 0, // <= + 0, 1, 1, // >= + 1, 0, 1, // != + }; + + + +#define SCRCMD_DEF(name) bool8 ScrCmd_##name(struct ScriptContext *ctx) + +SCRCMD_DEF(nop) +{ + return FALSE; +} + +SCRCMD_DEF(nop1) +{ + return FALSE; +} + +SCRCMD_DEF(end) +{ + StopScript(ctx); + return FALSE; +} + +SCRCMD_DEF(gotonative) +{ + bool8 (*func)(void) = (bool8 (*)(void))ScriptReadWord(ctx); + SetupNativeScript(ctx, func); + return TRUE; +} + +SCRCMD_DEF(special) +{ + u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); + if (specialPtr < gSpecialsEnd) + (*specialPtr)(); + else + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 241); + return FALSE; +} + +SCRCMD_DEF(specialvar) +{ + u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); + u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); + if (specialPtr < gSpecialsEnd) + *varPtr = (*specialPtr)(); + else + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 263); + return FALSE; +} + +SCRCMD_DEF(callnative) +{ + void (*func )(void) = ((void (*)(void))ScriptReadWord(ctx)); + func(); + return FALSE; +} + +SCRCMD_DEF(waitstate) +{ + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(goto) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptJump(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(return) +{ + ScriptReturn(ctx); + return FALSE; +} + +SCRCMD_DEF(call) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptCall(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(goto_if) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(call_if) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(setvaddress) +{ + u32 addr1 = (u32)ctx->scriptPtr - 1; + u32 addr2 = ScriptReadWord(ctx); + + gVScriptOffset = addr2 - addr1; + return FALSE; +} + +SCRCMD_DEF(vgoto) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptJump(ctx, scrptr - gVScriptOffset); + return FALSE; +} + +SCRCMD_DEF(vcall) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptCall(ctx, scrptr - gVScriptOffset); + return FALSE; +} + +SCRCMD_DEF(vgoto_if) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(vcall_if) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, scrptr); + return FALSE; +} + +SCRCMD_DEF(gotostd) +{ + u8 stdIdx = ScriptReadByte(ctx); + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptJump(ctx, *script); + return FALSE; +} + +SCRCMD_DEF(callstd) +{ + u8 stdIdx = ScriptReadByte(ctx); + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptCall(ctx, *script); + return FALSE; +} + +SCRCMD_DEF(gotostd_if) +{ + u8 condition = ScriptReadByte(ctx); + u8 stdIdx = ScriptReadByte(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptJump(ctx, *script); + } + return FALSE; +} + +SCRCMD_DEF(callstd_if) +{ + u8 condition = ScriptReadByte(ctx); + u8 stdIdx = ScriptReadByte(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptCall(ctx, *script); + } + return FALSE; +} + +SCRCMD_DEF(gotoram) +{ + ScriptJump(ctx, gRAMScriptPtr); + return FALSE; +} + +SCRCMD_DEF(killscript) +{ + ClearRamScript(); + StopScript(ctx); + return TRUE; +} + +SCRCMD_DEF(setmysteryeventstatus) +{ + SetMysteryEventScriptStatus(ScriptReadByte(ctx)); + return FALSE; +} + +SCRCMD_DEF(cmdCF) +{ + const u8 * script = sub_8069E48(); + if (script != NULL) + { + gRAMScriptPtr = ctx->scriptPtr; + ScriptJump(ctx, script); + } + return FALSE; +} + +SCRCMD_DEF(loadword) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = ScriptReadWord(ctx); + return FALSE; +} + +SCRCMD_DEF(loadbytefromaddr) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = *(const u8 *)ScriptReadWord(ctx); + return FALSE; +} + +SCRCMD_DEF(writebytetoaddr) +{ + u8 value = ScriptReadByte(ctx); + *(u8 *)ScriptReadWord(ctx) = value; + return FALSE; +} + +SCRCMD_DEF(loadbyte) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = ScriptReadByte(ctx); + return FALSE; +} + +SCRCMD_DEF(setptrbyte) +{ + u8 which = ScriptReadByte(ctx); + *(u8 *)ScriptReadWord(ctx) = ctx->data[which]; + return FALSE; +} + +SCRCMD_DEF(copylocal) +{ + u8 whichDst = ScriptReadByte(ctx); + u8 whichSrc = ScriptReadByte(ctx); + ctx->data[whichDst] = ctx->data[whichSrc]; + return FALSE; +} + +SCRCMD_DEF(copybyte) +{ + u8 * dest = (u8 *)ScriptReadWord(ctx); + *dest = *(const u8 *)ScriptReadWord(ctx); + return FALSE; +} + +SCRCMD_DEF(setvar) +{ + u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *varPtr = ScriptReadHalfword(ctx); + return FALSE; +} + +SCRCMD_DEF(copyvar) +{ + u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); + u16 * srcPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *destPtr = *srcPtr; + return FALSE; +} + +SCRCMD_DEF(setorcopyvar) +{ + u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *destPtr = VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +u8 compare_012(u16 left, u16 right) +{ + if (left < right) + return 0; + else if (left == right) + return 1; + else + return 2; +} + +// comparelocaltolocal +SCRCMD_DEF(compare_local_to_local) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +// comparelocaltoimm +SCRCMD_DEF(compare_local_to_value) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_local_to_addr) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_addr_to_local) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_addr_to_value) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_addr_to_addr) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_var_to_value) +{ + const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); + const u16 value2 = ScriptReadHalfword(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +SCRCMD_DEF(compare_var_to_var) +{ + const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); + const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = compare_012(*ptr1, *ptr2); + return FALSE; +} + +SCRCMD_DEF(addvar) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr += ScriptReadHalfword(ctx); + return FALSE; +} + +SCRCMD_DEF(subvar) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr -= VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +SCRCMD_DEF(random) +{ + u16 max = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = Random() % max; + return FALSE; +} + +SCRCMD_DEF(giveitem) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = AddBagItem(itemId, (u8)quantity); + sub_809A824(itemId); + return FALSE; +} + +SCRCMD_DEF(takeitem) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = RemoveBagItem(itemId, (u8)quantity); + return FALSE; +} + +SCRCMD_DEF(checkitemspace) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckBagHasSpace(itemId, (u8)quantity); + return FALSE; +} + +SCRCMD_DEF(checkitem) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckBagHasItem(itemId, (u8)quantity); + return FALSE; +} + +SCRCMD_DEF(checkitemtype) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = GetPocketByItemId(itemId); + return FALSE; +} + +SCRCMD_DEF(givepcitem) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = AddPCItem(itemId, quantity); + return FALSE; +} + +SCRCMD_DEF(checkpcitem) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckPCHasItem(itemId, quantity); + return FALSE; +} + +SCRCMD_DEF(givedecoration) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationAdd(decorId); + return FALSE; +} + +SCRCMD_DEF(takedecoration) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationRemove(decorId); + return FALSE; +} + +SCRCMD_DEF(checkdecorspace) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationCheckSpace(decorId); + return FALSE; +} + +SCRCMD_DEF(checkdecor) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = CheckHasDecoration(decorId); + return FALSE; +} + +SCRCMD_DEF(setflag) +{ + FlagSet(ScriptReadHalfword(ctx)); + return FALSE; +} + +SCRCMD_DEF(clearflag) +{ + FlagClear(ScriptReadHalfword(ctx)); + return FALSE; +} + +SCRCMD_DEF(checkflag) +{ + ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +SCRCMD_DEF(incrementgamestat) +{ + IncrementGameStat(ScriptReadByte(ctx)); + return FALSE; +} + +SCRCMD_DEF(comparestattoword) +{ + u8 statIdx = ScriptReadByte(ctx); + u32 value = ScriptReadWord(ctx); + u32 statValue = GetGameStat(statIdx); + + if (statValue < value) + ctx ->comparisonResult = 0; + else if (statValue == value) + ctx->comparisonResult = 1; + else + ctx->comparisonResult = 2; + return FALSE; +} + +SCRCMD_DEF(cmdD0) +{ + u16 value = ScriptReadHalfword(ctx); + sub_8115748(value); + sub_80F85BC(value); + return FALSE; +} + +SCRCMD_DEF(animateflash) +{ + sub_807F028(ScriptReadByte(ctx)); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(setflashradius) +{ + u16 flashLevel = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetFlashLevel(flashLevel); + return FALSE; +} + +static bool8 IsPaletteNotActive(void) +{ + if (!gPaletteFade.active) + return TRUE; + else + return FALSE; +} + +SCRCMD_DEF(fadescreen) +{ + fade_screen(ScriptReadByte(ctx), 0); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +SCRCMD_DEF(fadescreenspeed) +{ + u8 mode = ScriptReadByte(ctx); + u8 speed = ScriptReadByte(ctx); + + fade_screen(mode, speed); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +static bool8 RunPauseTimer(void) +{ + sPauseCounter--; + + if (sPauseCounter == 0) + return TRUE; + else + return FALSE; +} + +SCRCMD_DEF(delay) +{ + sPauseCounter = ScriptReadHalfword(ctx); + SetupNativeScript(ctx, RunPauseTimer); + return TRUE; +} + +SCRCMD_DEF(initclock) +{ +// u8 hour = VarGet(ScriptReadHalfword(ctx)); +// u8 minute = VarGet(ScriptReadHalfword(ctx)); +// +// RtcInitLocalTimeOffset(hour, minute); + return FALSE; +} + +SCRCMD_DEF(dodailyevents) +{ +// DoTimeBasedEvents(); + return FALSE; +} + +SCRCMD_DEF(gettime) +{ +// RtcCalcLocalTime(); +// gSpecialVar_0x8000 = gLocalTime.hours; +// gSpecialVar_0x8001 = gLocalTime.minutes; +// gSpecialVar_0x8002 = gLocalTime.seconds; + gSpecialVar_0x8000 = 0; + gSpecialVar_0x8001 = 0; + gSpecialVar_0x8002 = 0; + return FALSE; +} + +SCRCMD_DEF(setweather) +{ + u16 weather = VarGet(ScriptReadHalfword(ctx)); + + SetSav1Weather(weather); + return FALSE; +} + +SCRCMD_DEF(resetweather) +{ + SetSav1WeatherFromCurrMapHeader(); + return FALSE; +} + +SCRCMD_DEF(doweather) +{ + DoCurrentWeather(); + return FALSE; +} + +SCRCMD_DEF(setstepcallback) +{ + ActivatePerStepCallback(ScriptReadByte(ctx)); + return FALSE; +} + +SCRCMD_DEF(setmaplayoutindex) +{ + u16 value = VarGet(ScriptReadHalfword(ctx)); + + SetCurrentMapLayout(value); + return FALSE; +} + +SCRCMD_DEF(warp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(warpsilent) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoDiveWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(warpdoor) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoDoorWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(warphole) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u16 x; + u16 y; + + PlayerGetDestCoords(&x, &y); + if (mapGroup == 0xFF && mapNum == 0xFF) + SetWarpDestinationToFixedHoleWarp(x - 7, y - 7); + else + Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7); + DoFallWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(warpteleport) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_807E59C(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(warpD1) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_805DAE4(player_get_direction_lower_nybble()); + sub_807E500(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +SCRCMD_DEF(setwarp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +SCRCMD_DEF(setdynamicwarp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetDynamicWarpWithCoords(0, mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +SCRCMD_DEF(setdivewarp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +SCRCMD_DEF(setholewarp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +SCRCMD_DEF(setescapewarp) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetEscapeWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +SCRCMD_DEF(getplayerxy) +{ + u16 *pX = GetVarPointer(ScriptReadHalfword(ctx)); + u16 *pY = GetVarPointer(ScriptReadHalfword(ctx)); + + *pX = gSaveBlock1Ptr->pos.x; + *pY = gSaveBlock1Ptr->pos.y; + return FALSE; +} + +SCRCMD_DEF(getpartysize) +{ + gSpecialVar_Result = CalculatePlayerPartyCount(); + return FALSE; +} + +SCRCMD_DEF(playse) +{ + PlaySE(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForSoundEffectFinish(void) +{ + if (!IsSEPlaying()) + return TRUE; + else + return FALSE; +} + +SCRCMD_DEF(waitse) +{ + SetupNativeScript(ctx, WaitForSoundEffectFinish); + return TRUE; +} + +SCRCMD_DEF(playfanfare) +{ + PlayFanfare(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFanfareFinish(void) +{ + return IsFanfareTaskInactive(); +} + +SCRCMD_DEF(waitfanfare) +{ + SetupNativeScript(ctx, WaitForFanfareFinish); + return TRUE; +} + +SCRCMD_DEF(playbgm) +{ + u16 songId = ScriptReadHalfword(ctx); + bool8 val = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (val == TRUE) + Overworld_SetSavedMusic(songId); + PlayNewMapMusic(songId); + return FALSE; +} + +SCRCMD_DEF(savebgm) +{ + Overworld_SetSavedMusic(ScriptReadHalfword(ctx)); + return FALSE; +} + +SCRCMD_DEF(fadedefaultbgm) +{ + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + Overworld_ChangeMusicToDefault(); + return FALSE; +} + +SCRCMD_DEF(fadenewbgm) +{ + u16 music = ScriptReadHalfword(ctx); + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + Overworld_ChangeMusicTo(music); + return FALSE; +} + +SCRCMD_DEF(fadeoutbgm) +{ + u8 speed = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (speed != 0) + FadeOutBGMTemporarily(4 * speed); + else + FadeOutBGMTemporarily(4); + SetupNativeScript(ctx, IsBGMPausedOrStopped); + return TRUE; +} + +SCRCMD_DEF(fadeinbgm) +{ + u8 speed = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (speed != 0) + FadeInBGM(4 * speed); + else + FadeInBGM(4); + return FALSE; +} + +SCRCMD_DEF(applymovement) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + const void *movementScript = (const void *)ScriptReadWord(ctx); + + ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +SCRCMD_DEF(applymovement_at) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + const void *movementScript = (const void *)ScriptReadWord(ctx); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + ScriptMovement_StartObjectMovementScript(localId, mapNum, mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +static bool8 WaitForMovementFinish(void) +{ + return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank); +} + +SCRCMD_DEF(waitmovement) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + if (localId != 0) + sMovingNpcId = localId; + sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup; + sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +SCRCMD_DEF(waitmovement_at) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapBank; + u8 mapId; + + if (localId != 0) + sMovingNpcId = localId; + mapBank = ScriptReadByte(ctx); + mapId = ScriptReadByte(ctx); + sMovingNpcMapBank = mapBank; + sMovingNpcMapId = mapId; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +SCRCMD_DEF(removeobject) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +SCRCMD_DEF(removeobject_at) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup); + return FALSE; +} + +SCRCMD_DEF(addobject) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + + show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +SCRCMD_DEF(addobject_at) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + show_sprite(objectId, mapNum, mapGroup); + return FALSE; +} + +SCRCMD_DEF(setobjectxy) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_805F7C4(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y); + return FALSE; +} + +SCRCMD_DEF(setobjectxyperm) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetMapObjTemplateCoords(localId, x, y); + return FALSE; +} + +SCRCMD_DEF(moveobjectoffscreen) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +SCRCMD_DEF(showobject_at) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0); + return FALSE; +} + +SCRCMD_DEF(hideobject_at) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1); + return FALSE; +} + +SCRCMD_DEF(setobjectpriority) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 priority = ScriptReadByte(ctx); + + sub_805F3A8(localId, mapNum, mapGroup, priority + 83); + return FALSE; +} + +SCRCMD_DEF(resetobjectpriority) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + sub_805F400(localId, mapNum, mapGroup); + return FALSE; +} + +SCRCMD_DEF(faceplayer) +{ + if (gMapObjects[gSelectedEventObject].active) + { + FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject], + player_get_direction_lower_nybble()); + } + return FALSE; +} + +SCRCMD_DEF(turnobject) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 direction = ScriptReadByte(ctx); + + FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction); + return FALSE; +} + +SCRCMD_DEF(setobjectmovementtype) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 movementType = ScriptReadByte(ctx); + + Overworld_SetMapObjTemplateMovementType(localId, movementType); + return FALSE; +} + +SCRCMD_DEF(createvobject) +{ + u8 graphicsId = ScriptReadByte(ctx); + u8 v2 = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u32 y = VarGet(ScriptReadHalfword(ctx)); + u8 elevation = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sprite_new(graphicsId, v2, x, y, elevation, direction); + return FALSE; +} + +SCRCMD_DEF(turnvobject) +{ + u8 v1 = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sub_8069058(v1, direction); + return FALSE; +} + +SCRCMD_DEF(lockall) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_8069590); + return TRUE; + } +} + +SCRCMD_DEF(lock) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + if (gMapObjects[gSelectedEventObject].active) + { + LockSelectedMapObject(); + SetupNativeScript(ctx, sub_8069648); + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_8069590); + } + return TRUE; + } +} + +SCRCMD_DEF(releaseall) +{ + u8 playerObjectId; + + HideFieldMessageBox(); + playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); + return FALSE; +} + +SCRCMD_DEF(release) +{ + u8 playerObjectId; + + HideFieldMessageBox(); + if (gMapObjects[gSelectedEventObject].active) + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]); + playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); + return FALSE; +} + +SCRCMD_DEF(cmdC7) +{ + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = ScriptReadByte(ctx); + return FALSE; +} + +SCRCMD_DEF(message) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + ShowFieldMessage(msg); + return FALSE; +} + +SCRCMD_DEF(cmdC8) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + sub_80F7974(msg); + CopyWindowToVram(GetStartMenuWindowId(), 1); + return FALSE; +} + +SCRCMD_DEF(cmdC9) +{ + sub_80F7998(); + return FALSE; +} + +SCRCMD_DEF(messageautoscroll) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + ShowFieldAutoScrollMessage(msg); + return FALSE; +} + +SCRCMD_DEF(waitmessage) +{ + SetupNativeScript(ctx, IsFieldMessageBoxHidden); + return TRUE; +} + +SCRCMD_DEF(closemessage) +{ + HideFieldMessageBox(); + return FALSE; +} + +extern IWRAM_DATA struct ScriptContext * gUnknown_3005070; + +bool8 sub_806B93C(struct ScriptContext * ctx); +u8 sub_806B96C(struct ScriptContext * ctx); + +bool8 WaitForAorBPress(void) +{ + if (gMain.newKeys & A_BUTTON) + return TRUE; + if (gMain.newKeys & B_BUTTON) + return TRUE; + + if (sub_806B93C(gUnknown_3005070) == TRUE) + { + u8 r4 = sub_806B96C(gUnknown_3005070); + sub_8069998(r4); + if (r4) + { + if (gUnknown_203ADFA != 2) + { + sub_80699F8(); + if (r4 < 9 || r4 > 10) + sub_8069964(); + else + { + sub_80699A4(); + sub_8069970(); + } + return TRUE; + } + } + } + if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + { + if (gUnknown_20370AC == 120) + return TRUE; + else + gUnknown_20370AC++; + } + + return FALSE; +} + +bool8 sub_806B93C(struct ScriptContext * ctx) +{ + const u8 * script = ctx->scriptPtr; + u8 nextCmd = *script; + if (nextCmd == 3) // return + { + script = ctx->stack[ctx->stackDepth - 1]; + nextCmd = *script; + } + if (nextCmd < 0x6B || nextCmd > 0x6C) // releaseall or release + return FALSE; + else + return TRUE; +} + +u8 sub_806B96C(struct ScriptContext * ctx) +{ + if (gMain.heldKeys & DPAD_UP && gSpecialVar_Facing != 2) + return 1; + + if (gMain.heldKeys & DPAD_DOWN && gSpecialVar_Facing != 1) + return 2; + + if (gMain.heldKeys & DPAD_LEFT && gSpecialVar_Facing != 3) + return 3; + + if (gMain.heldKeys & DPAD_RIGHT && gSpecialVar_Facing != 4) + return 4; + + if (gMain.newKeys & L_BUTTON) + return 5; + + if (gMain.heldKeys & R_BUTTON) + return 6; + + if (gMain.heldKeys & START_BUTTON) + return 7; + + if (gMain.heldKeys & SELECT_BUTTON) + return 8; + + if (gMain.newKeys & A_BUTTON) + return 9; + + if (gMain.newKeys & B_BUTTON) + return 10; + + return 0; +} + +SCRCMD_DEF(waitbuttonpress) +{ + gUnknown_3005070 = ctx; + + if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + gUnknown_20370AC = 0; + SetupNativeScript(ctx, WaitForAorBPress); + return TRUE; +} + +SCRCMD_DEF(yesnobox) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + + if (ScriptMenu_YesNo(left, top) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +SCRCMD_DEF(multichoice) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +SCRCMD_DEF(multichoicedefault) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 defaultChoice = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +SCRCMD_DEF(drawbox) +{ + /*u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + MenuDrawTextWindow(left, top, right, bottom);*/ + return FALSE; +} + +SCRCMD_DEF(multichoicegrid) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 numColumns = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +SCRCMD_DEF(erasebox) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + // MenuZeroFillWindowRect(left, top, right, bottom); + return FALSE; +} + +SCRCMD_DEF(drawboxtext) +{ +// u8 left = ScriptReadByte(ctx); +// u8 top = ScriptReadByte(ctx); +// u8 multichoiceId = ScriptReadByte(ctx); +// u8 ignoreBPress = ScriptReadByte(ctx); + + /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + }*/ + return FALSE; +} + +SCRCMD_DEF(showmonpic) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + ScriptMenu_ShowPokemonPic(species, x, y); + PlayCry7(species, 0); + return FALSE; +} + +SCRCMD_DEF(hidemonpic) +{ + bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc(); + + if (func == NULL) + return FALSE; + SetupNativeScript(ctx, func); + return TRUE; +} + +SCRCMD_DEF(showcontestwinner) +{ + u8 v1 = ScriptReadByte(ctx); + + /* + if (v1) + sub_812FDA8(v1); + ShowContestWinner(); + ScriptContext1_Stop(); + return TRUE; + */ + + return FALSE; +} + +SCRCMD_DEF(braillemessage) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + if (ptr == NULL) + ptr = (u8 *)ctx->data[0]; + + sub_80F6E9C(); + sub_80F6EE4(0, 1); + AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL); + return FALSE; +} + +SCRCMD_DEF(getbraillestringwidth) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + if (ptr == NULL) + ptr = (u8 *)ctx->data[0]; + + gSpecialVar_0x8004 = GetStringWidth(6, ptr, -1); + return FALSE; +} + +SCRCMD_DEF(vmessage) +{ + u32 v1 = ScriptReadWord(ctx); + + ShowFieldMessage((u8 *)(v1 - gVScriptOffset)); + return FALSE; +} + +u8 * const sScriptStringVars[] = +{ + gStringVar1, + gStringVar2, + gStringVar3, +}; + +SCRCMD_DEF(bufferspeciesname) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 species = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]); + return FALSE; +} + +SCRCMD_DEF(bufferleadmonspeciesname) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + + u8 *dest = sScriptStringVars[stringVarIndex]; + u8 partyIndex = GetLeadMonIndex(); + u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL); + StringCopy(dest, gSpeciesNames[species]); + return FALSE; +} + +SCRCMD_DEF(bufferpartymonnick) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); + StringGetEnd10(sScriptStringVars[stringVarIndex]); + return FALSE; +} + +SCRCMD_DEF(bufferitemname) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + return FALSE; +} + +extern const u8 gUnknown_83A72A0[]; +extern const u8 gUnknown_83A72A2[]; + +SCRCMD_DEF(bufferitemnameplural) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + if (itemId == ITEM_POKE_BALL && quantity >= 2) + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A0); + else if (itemId >= ITEM_CHERI_BERRY && itemId < ITEM_ENIGMA_BERRY && quantity >= 2) + { + u16 strlength = StringLength(sScriptStringVars[stringVarIndex]); + if (strlength != 0) + { + u8 * endptr = sScriptStringVars[stringVarIndex] + strlength; + endptr[-1] = EOS; + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A2); + } + } + + return FALSE; +} + +SCRCMD_DEF(bufferdecorationname) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 decorId = VarGet(ScriptReadHalfword(ctx)); + +// StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name); + return FALSE; +} + +SCRCMD_DEF(buffermovename) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 moveId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]); + return FALSE; +} + +SCRCMD_DEF(buffernumberstring) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + u8 v2 = CountDigits(v1); + + ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2); + return FALSE; +} + +SCRCMD_DEF(bufferstdstring) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gStdStringPtrs[index]); + return FALSE; +} + +/* +SCRCMD_DEF(buffercontesttype) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + sub_818E868(sScriptStringVars[stringVarIndex], index); + return FALSE; +} +*/ + +SCRCMD_DEF(bufferstring) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + const u8 *text = (u8 *)ScriptReadWord(ctx); + + StringCopy(sScriptStringVars[stringVarIndex], text); + return FALSE; +} + +SCRCMD_DEF(vloadword) +{ + const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gVScriptOffset); + + StringExpandPlaceholders(gStringVar4, ptr); + return FALSE; +} + +SCRCMD_DEF(vbufferstring) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u32 addr = ScriptReadWord(ctx); + + const u8 *src = (u8 *)(addr - gVScriptOffset); + u8 *dest = sScriptStringVars[stringVarIndex]; + StringCopy(dest, src); + return FALSE; +} + +SCRCMD_DEF(bufferboxname) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 boxId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], GetBoxNamePtr(boxId)); + return FALSE; +} + +SCRCMD_DEF(givemon) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 level = ScriptReadByte(ctx); + u16 item = VarGet(ScriptReadHalfword(ctx)); + u32 unkParam1 = ScriptReadWord(ctx); + u32 unkParam2 = ScriptReadWord(ctx); + u8 unkParam3 = ScriptReadByte(ctx); + + gSpecialVar_Result = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3); + return FALSE; +} + +SCRCMD_DEF(giveegg) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = ScriptGiveEgg(species); + return FALSE; +} + +SCRCMD_DEF(setmonmove) +{ + u8 partyIndex = ScriptReadByte(ctx); + u8 slot = ScriptReadByte(ctx); + u16 move = ScriptReadHalfword(ctx); + + ScriptSetMonMoveSlot(partyIndex, move, slot); + return FALSE; +} + +SCRCMD_DEF(checkpartymove) +{ + u8 i; + u16 moveId = ScriptReadHalfword(ctx); + + gSpecialVar_Result = PARTY_SIZE; + for (i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL); + if (!species) + break; + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE) + { + gSpecialVar_Result = i; + gSpecialVar_0x8004 = species; + break; + } + } + return FALSE; +} + +SCRCMD_DEF(givemoney) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + AddMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +SCRCMD_DEF(takemoney) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + RemoveMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +SCRCMD_DEF(checkmoney) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + gSpecialVar_Result = IsEnoughMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +SCRCMD_DEF(showmoneybox) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore && sub_81119D4(sub_809D6D4) != TRUE) + DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y); + return FALSE; +} + +SCRCMD_DEF(hidemoneybox) +{ + /*u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx);*/ + + HideMoneyBox(); + return FALSE; +} + +SCRCMD_DEF(updatemoneybox) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + ChangeAmountInMoneyBox(GetMoney(&gSaveBlock1Ptr->money)); + return FALSE; +} + +SCRCMD_DEF(showcoinsbox) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + if (sub_81119D4(sub_809D6D4) != TRUE) + ShowCoinsWindow(GetCoins(), x, y); + return FALSE; +} + +SCRCMD_DEF(hidecoinsbox) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + HideCoinsWindow(); + return FALSE; +} + +SCRCMD_DEF(updatecoinsbox) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + PrintCoinsString(GetCoins()); + return FALSE; +} + +SCRCMD_DEF(trainerbattle) +{ + ctx->scriptPtr = BattleSetup_ConfigureTrainerBattle(ctx->scriptPtr); + return FALSE; +} + +SCRCMD_DEF(dotrainerbattle) +{ + BattleSetup_StartTrainerBattle(); + return TRUE; +} + +SCRCMD_DEF(gotopostbattlescript) +{ + ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle(); + return FALSE; +} + +SCRCMD_DEF(gotobeatenscript) +{ + ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript(); + return FALSE; +} + +SCRCMD_DEF(checktrainerflag) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = HasTrainerAlreadyBeenFought(index); + return FALSE; +} + +SCRCMD_DEF(settrainerflag) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + SetTrainerFlag(index); + return FALSE; +} + +SCRCMD_DEF(cleartrainerflag) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + ClearTrainerFlag(index); + return FALSE; +} + +SCRCMD_DEF(setwildbattle) +{ + u16 species = ScriptReadHalfword(ctx); + u8 level = ScriptReadByte(ctx); + u16 item = ScriptReadHalfword(ctx); + + CreateScriptedWildMon(species, level, item); + return FALSE; +} + +SCRCMD_DEF(dowildbattle) +{ + BattleSetup_StartScriptedWildBattle(); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(pokemart) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreatePokemartMenu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(pokemartdecoration) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop1Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(pokemartdecoration2) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop2Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(playslotmachine) +{ + u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); + + PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music); + ScriptContext1_Stop(); + return TRUE; +} + +SCRCMD_DEF(setberrytree) +{ +// u8 treeId = ScriptReadByte(ctx); +// u8 berry = ScriptReadByte(ctx); +// u8 growthStage = ScriptReadByte(ctx); +// +// if (berry == 0) +// PlantBerryTree(treeId, 0, growthStage, FALSE); +// else +// PlantBerryTree(treeId, berry, growthStage, FALSE); + return FALSE; +} + +SCRCMD_DEF(getpricereduction) +{ +// u16 value = VarGet(ScriptReadHalfword(ctx)); +// +// gSpecialVar_Result = GetPriceReduction(value); + return FALSE; +} + +SCRCMD_DEF(choosecontestmon) +{ +// sub_81B9404(); + ScriptContext1_Stop(); + return TRUE; +} + + +SCRCMD_DEF(startcontest) +{ +// sub_80F840C(); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +SCRCMD_DEF(showcontestresults) +{ +// sub_80F8484(); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +SCRCMD_DEF(contestlinktransfer) +{ +// sub_80F84C4(gSpecialVar_ContestCategory); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +SCRCMD_DEF(dofieldeffect) +{ + u16 effectId = VarGet(ScriptReadHalfword(ctx)); + + sFieldEffectScriptId = effectId; + FieldEffectStart(sFieldEffectScriptId); + return FALSE; +} + +SCRCMD_DEF(setfieldeffectarg) +{ + u8 argNum = ScriptReadByte(ctx); + + gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFieldEffectFinish(void) +{ + if (!FieldEffectActiveListContains(sFieldEffectScriptId)) + return TRUE; + else + return FALSE; +} + +SCRCMD_DEF(waitfieldeffect) +{ + sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx)); + SetupNativeScript(ctx, WaitForFieldEffectFinish); + return TRUE; +} + +SCRCMD_DEF(setrespawn) +{ + u16 healLocationId = VarGet(ScriptReadHalfword(ctx)); + + SetLastHealLocationWarp(healLocationId); + return FALSE; +} + +SCRCMD_DEF(checkplayergender) +{ + gSpecialVar_Result = gSaveBlock2Ptr->playerGender; + return FALSE; +} + +SCRCMD_DEF(playmoncry) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u16 mode = VarGet(ScriptReadHalfword(ctx)); + + PlayCry7(species, mode); + return FALSE; +} + +SCRCMD_DEF(waitmoncry) +{ + SetupNativeScript(ctx, IsCryFinished); + return TRUE; +} + +SCRCMD_DEF(setmetatile) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + u16 tileId = VarGet(ScriptReadHalfword(ctx)); + u16 v8 = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + if (!v8) + MapGridSetMetatileIdAt(x, y, tileId); + else + MapGridSetMetatileIdAt(x, y, tileId | 0xC00); + return FALSE; +} + +SCRCMD_DEF(opendoor) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + PlaySE(GetDoorSoundEffect(x, y)); + FieldAnimateDoorOpen(x, y); + return FALSE; +} + +SCRCMD_DEF(closedoor) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldAnimateDoorClose(x, y); + return FALSE; +} + +static bool8 IsDoorAnimationStopped(void) +{ + if (!FieldIsDoorAnimationRunning()) + return TRUE; + else + return FALSE; +} + +SCRCMD_DEF(waitdooranim) +{ + SetupNativeScript(ctx, IsDoorAnimationStopped); + return TRUE; +} + +SCRCMD_DEF(setdooropen) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorOpened(x, y); + return FALSE; +} + +SCRCMD_DEF(setdoorclosed) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorClosed(x, y); + return FALSE; +} + +SCRCMD_DEF(addelevmenuitem) +{ +// u8 v3 = ScriptReadByte(ctx); +// u16 v5 = VarGet(ScriptReadHalfword(ctx)); +// u16 v7 = VarGet(ScriptReadHalfword(ctx)); +// u16 v9 = VarGet(ScriptReadHalfword(ctx)); + + //ScriptAddElevatorMenuItem(v3, v5, v7, v9); + return FALSE; +} + +SCRCMD_DEF(showelevmenu) +{ + /*ScriptShowElevatorMenu(); + ScriptContext1_Stop(); + return TRUE;*/ + return FALSE; +} + +SCRCMD_DEF(checkcoins) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = GetCoins(); + return FALSE; +} + +SCRCMD_DEF(givecoins) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (GiveCoins(coins) == TRUE) + gSpecialVar_Result = 0; + else + gSpecialVar_Result = 1; + return FALSE; +} + +SCRCMD_DEF(takecoins) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (TakeCoins(coins) == TRUE) + gSpecialVar_Result = 0; + else + gSpecialVar_Result = 1; + return FALSE; +} + +SCRCMD_DEF(cmdCA) +{ + sub_8069A20(); + return FALSE; +} + +SCRCMD_DEF(cmdCB) +{ + sub_8069A2C(); + return FALSE; +} + +// This command will force the Pokémon to be obedient, you don't get to make it disobedient. +SCRCMD_DEF(setmonobedient) +{ + bool8 obedient = TRUE; + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient); + return FALSE; +} + +SCRCMD_DEF(checkmonobedience) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL); + return FALSE; +} + +SCRCMD_DEF(setmonmetlocation) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + u8 location = ScriptReadByte(ctx); + + if (partyIndex < PARTY_SIZE) + SetMonData(&gPlayerParty[partyIndex], MON_DATA_MET_LOCATION, &location); + return FALSE; +} diff --git a/src/script.c b/src/script.c index 59ef4e579..d7246752c 100644 --- a/src/script.c +++ b/src/script.c @@ -19,7 +19,7 @@ enum }; EWRAM_DATA u8 gUnknown_20370A0 = 0; -EWRAM_DATA u8 *gUnknown_20370A4 = NULL; +EWRAM_DATA const u8 *gRAMScriptPtr = NULL; // ewram bss /*IWRAM_DATA*/ static u8 sScriptContext1Status; @@ -485,7 +485,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec u8 *GetRamScript(u8 objectId, u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - gUnknown_20370A4 = NULL; + gRAMScriptPtr = NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return script; if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup) @@ -501,7 +501,7 @@ u8 *GetRamScript(u8 objectId, u8 *script) } else { - gUnknown_20370A4 = script; + gRAMScriptPtr = script; return scriptData->script; } } diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 91132c07b..f4e18eee6 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -1,5 +1,6 @@ #include "global.h" #include "main.h" +#include "task.h" #include "constants/flags.h" #include "constants/vars.h" #include "malloc.h" @@ -11,7 +12,12 @@ #include "cereader_tool.h" #include "easy_chat.h" #include "text.h" +#include "battle_setup.h" +#include "battle_transition.h" +#include "battle.h" +#include "battle_2.h" #include "overworld.h" +#include "item.h" struct UnkStruct_8479D34 { @@ -28,7 +34,6 @@ struct UnkSubstruct_203F458_000C_004 /* 0x000 */ u8 unk_000[11]; /* 0x00B */ u8 unk_00B; /* 0x00C */ u8 unk_00C; - /* 0x00D */ u8 unk_00D; /* 0x00E */ u16 unk_00E[6]; /* 0x01A */ u16 unk_01A[6]; /* 0x026 */ u16 unk_026[6]; @@ -38,7 +43,8 @@ struct UnkSubstruct_203F458_000C_004 struct UnkSubstruct_203F458_000C { - /* 0x000 */ u8 filler_000[2]; + /* 0x000 */ u8 unk_000; + /* 0x000 */ u8 unk_001; /* 0x002 */ u8 unk_002; /* 0x003 */ u8 unk_003; /* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3]; @@ -122,15 +128,19 @@ void sub_815E8CC(void); void sub_815E908(void); void sub_815E948(void); void sub_815E9C8(void); +void sub_815E9FC(void); void sub_815EC0C(void); +u32 sub_815EDDC(u32 *); +void sub_815EDF4(u32 *, u32); extern const struct UnkStruct_8479D34 gUnknown_8479D34[15]; +extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; +extern const struct UnkStruct_847A024 gUnknown_847A024[10]; extern void (*const gUnknown_847A230[])(void); extern const struct Unk_203F458_Header gUnknown_84827AC; extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8]; extern const u16 gUnknown_847A284[8][3]; -extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; -extern const struct UnkStruct_847A024 gUnknown_847A024[10]; +extern const u16 gUnknown_847A2B4[]; bool32 sub_815D7BC(void * dest, void * buffer) { @@ -280,7 +290,7 @@ void sub_815DA54(void) gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B; gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C; - SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]); + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); sub_815DD2C(); } @@ -430,12 +440,12 @@ void sub_815DD44(void) if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.unk_0000.unk0) { gSpecialVar_Result = 3; - sub_8055D40(0x132); + SetCurrentMapLayout(0x132); } else { gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; - sub_8055D40(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]); + SetCurrentMapLayout(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]); sub_815DDB0(); } } @@ -692,3 +702,159 @@ void sub_815DF54(void) "_0815E064: .4byte gStringVar4"); } #endif // NONMATCHING + +void sub_815E068(u8 battleType, u8 facilityClass) +{ + u16 r5 = FALSE; + s32 r4; + switch (battleType) + { + case 0: + case 2: + for (r4 = 0; r4 < NELEMS(gUnknown_8479ED8); r4++) + { + if (gUnknown_8479ED8[r4].unk1 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_8479ED8)) + r5 = gUnknown_8479ED8[r4].unk2; + break; + case 1: + for (r4 = 0; r4 < NELEMS(gUnknown_847A024); r4++) + { + if (gUnknown_847A024[r4].unk2 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_847A024)) + { + if (VarGet(VAR_0x4003)) + r5 = gUnknown_847A024[r4].unk4; + else + r5 = gUnknown_847A024[r4].unk3; + } + break; + } + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = r5; +} + +void sub_815E114(void) +{ + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void sub_815E124(u8 taskId) +{ + if (sub_80D08F8() == TRUE) + { + gMain.savedCallback = sub_815E114; + sub_80563F0(); + SetMainCallback2(sub_800FD9C); + DestroyTask(taskId); + } +} + +void sub_815E160(void) +{ + gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_FACTORY; + if (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002 == 1) + gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; + gTrainerBattleOpponent_A = 0; + sub_815E9FC(); + CreateTask(sub_815E124, 1); + PlayMapChosenOrBattleBGM(0); + sub_80D08B8(sub_8080060()); +} + +void sub_815E1C0(void) +{ + if (!gSpecialVar_0x8005) + gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; +} + +void sub_815E1F0(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++; +} + +void sub_815E218(void) +{ + u16 mapDataId = gMapHeader.mapDataId; + if (mapDataId - 0x12A == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - 0x129 <= gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_001) + gSpecialVar_Result = FALSE; + else + gSpecialVar_Result = TRUE; +} + +void sub_815E28C(void) +{ + gSaveBlock1Ptr->unkArrayIdx = gSpecialVar_0x8005; + if (gSaveBlock1Ptr->unkArrayIdx >= NELEMS(gSaveBlock1Ptr->unkArray)) + gSaveBlock1Ptr->unkArrayIdx = 0; + sub_815EC0C(); + if (!sub_815D834()) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = TRUE; + else + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 = 0; + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 0; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = FALSE; +} + +void sub_815E394(void) +{ + DisableVBlankCounter1(); + gSpecialVar_Result = 0; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + gSpecialVar_Result++; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 && gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result++; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = TRUE; +} + +void sub_815E408(void) +{ + u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.unk_0008->unk_003]; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0) + gSpecialVar_Result = 2; + else if (AddBagItem(itemId, 1) == 1) + { + CopyItemName(itemId, gStringVar2); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE; + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; +} + +void sub_815E4B0(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result = 2; + else if (sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4) > gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0) + { + sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = TRUE; +} + +void sub_815E56C(void) +{ + if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + { + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999; + else + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + } +} + +void sub_815E5C4(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = 1; +} diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 4d42f270d..579800576 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -65,7 +65,7 @@ struct VsSeekerStruct extern u16 gSpecialVar_LastTalked; extern struct MapObject gMapObjects[MAP_OBJECTS_COUNT]; -extern u8 gUnknown_3005074; +extern u8 gSelectedEventObject; // static declarations static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL; @@ -1012,7 +1012,7 @@ void sub_810CB90(void) sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual. sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->mapobj_unk_18]); gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0; - if (gUnknown_3005074 == sp0) + if (gSelectedEventObject == sp0) r4_2->animPattern = gUnknown_8453F67[r4_2->mapobj_unk_18]; else r4_2->animPattern = 0x08; diff --git a/sym_common.txt b/sym_common.txt index f63c4f277..333dae222 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -175,7 +175,7 @@ gUnknown_300506C: @ 300506C gUnknown_3005070: @ 3005070 .space 0x4 -gUnknown_3005074: @ 3005074 +gSelectedEventObject: @ 3005074 .space 0x4 gUnknown_3005078: @ 3005078 diff --git a/sym_ewram.txt b/sym_ewram.txt index f8e0df713..fbb152faa 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -633,29 +633,9 @@ gUnknown_203709C: @ 203709C .space 0x4 .include "src/script.o" + .include "src/scrcmd.o" - .align 2 -gUnknown_20370A8: @ 20370A8 - .space 0x4 - -gUnknown_20370AC: @ 20370AC - .space 0x2 - -gUnknown_20370AE: @ 20370AE - .space 0x2 - -gUnknown_20370B0: @ 20370B0 - .space 0x2 - -gUnknown_20370B2: @ 20370B2 - .space 0x2 - -gUnknown_20370B4: @ 20370B4 - .space 0x2 - -gUnknown_20370B6: @ 20370B6 - .space 0x2 - + .align 2 gSpecialVar_0x8000: @ 20370B8 .space 0x2 |