summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-10-14 11:36:28 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-10-14 11:36:28 +0200
commit455202eca00fd1b51e9ba8b75434d97ae5c750a8 (patch)
tree153b1b85ae6864fec7bf880d9dd90fe6ef9a55c6
parent14e41d6c508e5c425dff8f2c4933ae4c8b7ab762 (diff)
parent0d38d443b561f9baaae12324712503dfccaf01ea (diff)
Merge branch 'master' into decompile_rom3
-rwxr-xr-xasm/battle_frontier_1.s6
-rwxr-xr-xasm/battle_frontier_2.s6
-rw-r--r--asm/battle_setup.s60
-rwxr-xr-xasm/battle_tower.s10
-rw-r--r--asm/battle_transition.s4
-rw-r--r--asm/bike.s4
-rw-r--r--asm/cable_club.s20
-rw-r--r--asm/clock.s6
-rw-r--r--asm/coins.s16
-rw-r--r--asm/contest.s12
-rw-r--r--asm/contest_ai.s2
-rw-r--r--asm/contest_effect.s2
-rw-r--r--asm/contest_link_80F57C4.s10
-rwxr-xr-xasm/contest_link_81D9DE4.s2
-rw-r--r--asm/decoration.s4
-rw-r--r--asm/decoration_inventory.s6
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/field_door.s36
-rw-r--r--asm/field_effect.s54
-rw-r--r--asm/field_effect_helpers.s56
-rw-r--r--asm/field_ground_effect.s24
-rw-r--r--asm/field_message_box.s18
-rw-r--r--asm/field_player_avatar.s8
-rw-r--r--asm/field_poison.s2
-rw-r--r--asm/field_screen.s34
-rw-r--r--asm/field_tasks.s8
-rw-r--r--asm/fldeff_80F9BCC.s32
-rwxr-xr-xasm/fldeff_cut.s4
-rwxr-xr-xasm/fldeff_groundshake.s4
-rw-r--r--asm/fldeff_strength.s4
-rw-r--r--asm/fldeff_sweetscent.s2
-rw-r--r--asm/fldeff_teleport.s2
-rw-r--r--asm/item.s12
-rwxr-xr-xasm/item_menu.s2
-rw-r--r--asm/item_use.s4
-rw-r--r--asm/link.s8
-rw-r--r--asm/map_obj_8097404.s10
-rw-r--r--asm/map_obj_lock.s16
-rw-r--r--asm/mystery_event_script.s8
-rwxr-xr-xasm/party_menu.s12
-rw-r--r--asm/player_pc.s2
-rwxr-xr-xasm/pokemon_storage_system.s2
-rw-r--r--asm/record_mixing.s2
-rw-r--r--asm/rom4.s114
-rw-r--r--asm/rom6.s72
-rw-r--r--asm/scrcmd.s5744
-rw-r--r--asm/script_menu.s38
-rwxr-xr-xasm/script_movement.s12
-rw-r--r--asm/script_pokemon_util_80F87D8.s34
-rw-r--r--asm/secret_base.s4
-rw-r--r--asm/shop.s2
-rw-r--r--asm/slot_machine.s6
-rwxr-xr-xasm/trainer_rematch.s2
-rw-r--r--asm/trainer_see.s12
-rw-r--r--data/event_script_command_function_table.inc454
-rw-r--r--data/event_scripts.s6
-rw-r--r--data/scrcmd.s14
-rw-r--r--include/battle_frontier_2.h9
-rw-r--r--include/battle_setup.h9
-rw-r--r--include/clock.h8
-rw-r--r--include/coins.h4
-rw-r--r--include/contest.h2
-rw-r--r--include/contest_link_80F57C4.h8
-rw-r--r--include/contest_painting.h6
-rw-r--r--include/data2.h19
-rw-r--r--include/decoration.h5
-rw-r--r--include/decoration_inventory.h10
-rw-r--r--include/event_data.h2
-rw-r--r--include/field_door.h11
-rw-r--r--include/field_effect.h9
-rw-r--r--include/field_fadetransition.h12
-rwxr-xr-xinclude/field_map_obj.h3
-rw-r--r--include/field_map_obj_helpers.h7
-rw-r--r--include/field_message_box.h18
-rw-r--r--include/field_player_avatar.h6
-rw-r--r--include/field_screen_effect.h8
-rw-r--r--include/field_specials.h6
-rw-r--r--include/field_tasks.h6
-rw-r--r--include/field_weather.h12
-rw-r--r--include/fieldmap.h8
-rw-r--r--include/item.h1
-rw-r--r--include/map_obj_lock.h11
-rw-r--r--include/menu.h1
-rw-r--r--include/money.h2
-rw-r--r--include/mystery_event_script.h8
-rw-r--r--include/new_menu_helpers.h9
-rw-r--r--include/overworld.h58
-rw-r--r--include/palette.h3
-rw-r--r--include/party_menu.h6
-rw-r--r--include/pokemon_3.h7
-rw-r--r--include/rom4.h34
-rw-r--r--include/rom6.h2
-rw-r--r--include/script.h4
-rw-r--r--include/script_menu.h12
-rw-r--r--include/script_movement.h8
-rw-r--r--include/script_pokemon_80F8.h10
-rw-r--r--include/script_pokemon_81B9.h6
-rw-r--r--include/shop.h10
-rw-r--r--include/slot_machine.h6
-rw-r--r--include/text.h3
-rw-r--r--include/trainer_see.h1
-rw-r--r--include/tv.h8
-rw-r--r--ld_script.txt4
-rw-r--r--src/battle_util.c3274
-rwxr-xr-xsrc/braille_puzzles.c8
-rw-r--r--src/coins.c2
-rw-r--r--src/event_data.c52
-rwxr-xr-xsrc/field_map_obj.c28
-rwxr-xr-xsrc/field_special_scene.c18
-rw-r--r--src/lilycove_lady.c2
-rw-r--r--src/money.c4
-rw-r--r--src/new_game.c4
-rw-r--r--src/palette.c6
-rw-r--r--src/pokemon_2.c2
-rw-r--r--src/reset_save_heap.c2
-rw-r--r--src/safari_zone.c2
-rw-r--r--src/scrcmd.c2451
-rw-r--r--src/script.c4
-rw-r--r--src/text.c2
-rw-r--r--src/tv.c30
-rw-r--r--sym_ewram.txt23
121 files changed, 3591 insertions, 9777 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
index 4c44855f9..7ac60f1be 100755
--- a/asm/battle_frontier_1.s
+++ b/asm/battle_frontier_1.s
@@ -14296,7 +14296,7 @@ sub_81963F0: @ 81963F0
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl sub_80D338C
- bl sub_809757C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
_08196446:
movs r0, 0x1
@@ -14680,7 +14680,7 @@ sub_8196748: @ 8196748
ldr r4, =gUnknown_085500A4
_08196750:
ldrh r0, [r4]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _0819675E
@@ -14706,7 +14706,7 @@ sub_8196774: @ 8196774
ldr r5, =gUnknown_085500A4
_0819677E:
ldrh r0, [r5]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _0819679A
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 88ee1c1ed..37ddc7ac6 100755
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -27306,7 +27306,7 @@ _081A8A74:
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
adds r3, r7, 0
- bl exec_movement
+ bl ScriptMovement_StartObjectMovementScript
b _081A8AD4
.pool
_081A8ACC:
@@ -27540,7 +27540,7 @@ _081A8C72:
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
- bl exec_movement
+ bl ScriptMovement_StartObjectMovementScript
b _081A8D32
.pool
_081A8C9C:
@@ -27618,7 +27618,7 @@ _081A8D12:
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
- bl exec_movement
+ bl ScriptMovement_StartObjectMovementScript
_081A8D32:
mov r0, r9
adds r0, 0x1
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index b345ca96d..5c7196579 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -299,8 +299,8 @@ sub_80B086C: @ 80B086C
.pool
thumb_func_end sub_80B086C
- thumb_func_start sub_80B08A8
-sub_80B08A8: @ 80B08A8
+ thumb_func_start BattleSetup_StartScriptedWildBattle
+BattleSetup_StartScriptedWildBattle: @ 80B08A8
push {lr}
bl ScriptContext2_Enable
ldr r1, =gMain
@@ -323,7 +323,7 @@ sub_80B08A8: @ 80B08A8
pop {r0}
bx r0
.pool
- thumb_func_end sub_80B08A8
+ thumb_func_end BattleSetup_StartScriptedWildBattle
thumb_func_start sub_80B08EC
sub_80B08EC: @ 80B08EC
@@ -1357,7 +1357,7 @@ sub_80B1158: @ 80B1158
movs r1, 0x5
movs r2, 0
movs r3, 0
- bl sub_80F9244
+ bl ScriptGiveMon
bl ResetTasks
bl PlayBattleBGM
ldr r0, =sub_80B11A8
@@ -1686,9 +1686,9 @@ _080B141A:
.pool
thumb_func_end battle_80801F0
- thumb_func_start TrainerBattleConfigure
-@ u8 *TrainerBattleConfigure(u8 *args)
-TrainerBattleConfigure: @ 80B1430
+ thumb_func_start BattleSetup_ConfigureTrainerBattle
+@ u8 *BattleSetup_ConfigureTrainerBattle(u8 *args)
+BattleSetup_ConfigureTrainerBattle: @ 80B1430
push {r4,r5,lr}
adds r5, r0, 0
bl InitTrainerBattleVariables
@@ -1872,7 +1872,7 @@ _080B161E:
pop {r1}
bx r1
.pool
- thumb_func_end TrainerBattleConfigure
+ thumb_func_end BattleSetup_ConfigureTrainerBattle
thumb_func_start SingleTrainerWantsBattle
@ void SingleTrainerWantsBattle(u8 trainerFieldObjectId, u8 *trainerScript)
@@ -1892,7 +1892,7 @@ SingleTrainerWantsBattle: @ 80B162C
strh r0, [r4]
adds r1, 0x1
adds r0, r1, 0
- bl TrainerBattleConfigure
+ bl BattleSetup_ConfigureTrainerBattle
ldr r0, =gUnknown_08271354
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
@@ -1920,7 +1920,7 @@ TwoTrainersWantBattle: @ 80B1670
strh r0, [r4]
adds r1, 0x1
adds r0, r1, 0
- bl TrainerBattleConfigure
+ bl BattleSetup_ConfigureTrainerBattle
pop {r4}
pop {r0}
bx r0
@@ -2056,8 +2056,8 @@ sub_80B178C: @ 80B178C
bx r0
thumb_func_end sub_80B178C
- thumb_func_start trainer_flag_check
-trainer_flag_check: @ 80B17A0
+ thumb_func_start HasTrainerAlreadyBeenFought
+HasTrainerAlreadyBeenFought: @ 80B17A0
push {lr}
lsls r0, 16
movs r1, 0xA0
@@ -2069,7 +2069,7 @@ trainer_flag_check: @ 80B17A0
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end trainer_flag_check
+ thumb_func_end HasTrainerAlreadyBeenFought
thumb_func_start trainer_flag_set
trainer_flag_set: @ 80B17B8
@@ -2092,13 +2092,13 @@ trainer_flag_clear: @ 80B17CC
lsls r1, 19
adds r0, r1
lsrs r0, 16
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
thumb_func_end trainer_flag_clear
- thumb_func_start sub_80B17E0
-sub_80B17E0: @ 80B17E0
+ thumb_func_start BattleSetup_StartTrainerBattle
+BattleSetup_StartTrainerBattle: @ 80B17E0
push {r4,lr}
ldr r0, =gUnknown_030060A8
ldrb r0, [r0]
@@ -2217,7 +2217,7 @@ _080B190C:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80B17E0
+ thumb_func_end BattleSetup_StartTrainerBattle
thumb_func_start sub_80B1918
sub_80B1918: @ 80B1918
@@ -2413,8 +2413,8 @@ _080B1AF4:
bx r0
thumb_func_end sub_80B1A14
- thumb_func_start sub_80B1AF8
-sub_80B1AF8: @ 80B1AF8
+ thumb_func_start BattleSetup_GetScriptAddrAfterBattle
+BattleSetup_GetScriptAddrAfterBattle: @ 80B1AF8
push {lr}
ldr r0, =gUnknown_02038BEC
ldr r0, [r0]
@@ -2425,10 +2425,10 @@ _080B1B04:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80B1AF8
+ thumb_func_end BattleSetup_GetScriptAddrAfterBattle
- thumb_func_start sub_80B1B10
-sub_80B1B10: @ 80B1B10
+ thumb_func_start BattleSetup_GetTrainerPostBattleScript
+BattleSetup_GetTrainerPostBattleScript: @ 80B1B10
push {lr}
ldr r1, =gUnknown_02038BF8
ldrb r2, [r1]
@@ -2462,7 +2462,7 @@ _080B1B56:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80B1B10
+ thumb_func_end BattleSetup_GetTrainerPostBattleScript
thumb_func_start special_trainer_unable_to_battle
special_trainer_unable_to_battle: @ 80B1B60
@@ -2796,7 +2796,7 @@ _080B1DCE:
ldrh r0, [r4]
cmp r0, 0
beq _080B1DE2
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
bne _080B1DCA
@@ -2895,7 +2895,7 @@ sub_80B1E94: @ 80B1E94
lsls r0, r4, 4
adds r0, r5
ldrh r0, [r0]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3076,7 +3076,7 @@ _080B1FE2:
ldrh r0, [r4]
cmp r0, 0
beq _080B1FCA
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080B1FD4
@@ -3127,7 +3127,7 @@ _080B203A:
ldrh r0, [r4]
cmp r0, 0
beq _080B201E
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080B2028
@@ -3233,7 +3233,7 @@ sub_80B20F4: @ 80B20F4
lsls r0, r1, 4
adds r0, r4
ldrh r0, [r0, 0x2]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080B211E
@@ -3509,7 +3509,7 @@ sub_80B2318: @ 80B2318
lsrs r4, r0, 12
adds r6, r4, r7
ldrh r0, [r6]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3527,7 +3527,7 @@ _080B2338:
adds r4, r6, 0x2
_080B2346:
ldrh r0, [r4]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080B2360
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 4d86e8d28..74c84e34c 100755
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -3548,11 +3548,11 @@ _08163E2C:
movs r0, 0
strb r0, [r4]
ldr r0, =gUnknown_08224158
- bl TrainerBattleConfigure
+ bl BattleSetup_ConfigureTrainerBattle
movs r0, 0x1
strb r0, [r4]
ldr r0, =gUnknown_08224167
- bl TrainerBattleConfigure
+ bl BattleSetup_ConfigureTrainerBattle
ldr r0, =gPartnerTrainerId
strh r5, [r0]
ldr r0, =sub_8163A8C
@@ -4364,7 +4364,7 @@ _081644E0:
strb r0, [r1, 0x1]
movs r0, 0xD8
lsls r0, 2
- bl FlagReset
+ bl FlagClear
ldr r0, [r6]
adds r0, r5
ldrh r0, [r0]
@@ -4525,7 +4525,7 @@ _08164660:
adds r1, 0xC0
strb r0, [r1, 0x1]
ldr r0, =0x00000361
- bl FlagReset
+ bl FlagClear
ldr r0, [r6]
adds r0, r5
ldrh r0, [r0]
@@ -6056,7 +6056,7 @@ _081653E0:
bne _081653F8
bl sub_80F01B8
movs r0, 0x77
- bl FlagReset
+ bl FlagClear
_081653F8:
pop {r0}
bx r0
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index a6e44f087..2f9637594 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -2151,7 +2151,7 @@ sub_8147018: @ 8147018
ands r5, r0
movs r1, 0
mov r8, r4
- ldr r6, =gFieldEffectSpawnParams
+ ldr r6, =gFieldEffectArguments
_08147046:
lsls r5, 16
asrs r5, 16
@@ -2221,7 +2221,7 @@ _081470C4:
sub_81470D0: @ 81470D0
push {r4,r5,lr}
ldr r0, =gUnknown_085C8E68
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
movs r2, 0
ldrsh r1, [r5, r2]
movs r3, 0x4
diff --git a/asm/bike.s b/asm/bike.s
index 7ea4a4598..b5d40a312 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -2013,9 +2013,9 @@ _0811A0B0:
bl SetPlayerAvatarTransitionFlags
ldr r4, =0x00000193
adds r0, r4, 0
- bl sav1_set_battle_music_maybe
+ bl Overworld_SetSavedMusic
adds r0, r4, 0
- bl sub_80858C4
+ bl Overworld_ChangeMusicTo
_0811A0C4:
pop {r4}
pop {r0}
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 8f0eef7eb..15ba76e9c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -434,7 +434,7 @@ sub_80B2688: @ 80B2688
movs r0, 0x15
bl PlaySE
ldr r0, =gUnknown_082780B3
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
ldr r0, =sub_80B270C
b _080B26FA
.pool
@@ -442,7 +442,7 @@ _080B26EC:
movs r0, 0x16
bl PlaySE
ldr r0, =gUnknown_08278131
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
ldr r0, =sub_80B2918
_080B26FA:
str r0, [r4]
@@ -545,7 +545,7 @@ sub_80B275C: @ 80B275C
movs r3, 0x1
bl ConvertIntToDecimalStringN
ldr r0, =gUnknown_082780F2
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
mov r0, r9
subs r0, 0x8
add r0, r8
@@ -598,7 +598,7 @@ sub_80B2804: @ 80B2804
beq _080B2878
_080B2852:
ldr r0, =gUnknown_082780B3
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -719,7 +719,7 @@ sub_80B2918: @ 80B2918
cmp r0, 0x1
bhi _080B297C
bl sub_800AC34
- bl textbox_close
+ bl HideFieldMessageBox
ldr r0, =sub_80B2CB0
b _080B29E4
.pool
@@ -730,7 +730,7 @@ _080B297C:
bne _080B2994
_080B2984:
bl sub_80097E8
- bl textbox_close
+ bl HideFieldMessageBox
ldr r0, =sub_80B2CB0
b _080B29E4
.pool
@@ -814,7 +814,7 @@ _080B2A42:
_080B2A4A:
bl sub_80097E8
_080B2A4E:
- bl textbox_close
+ bl HideFieldMessageBox
ldr r0, =gTasks
lsls r1, r7, 2
adds r1, r7
@@ -1151,7 +1151,7 @@ sub_80B2D2C: @ 80B2D2C
bl sub_80B241C
ldrb r0, [r4, 0x12]
bl RemoveWindow
- bl textbox_close
+ bl HideFieldMessageBox
bl EnableBothScriptContexts
adds r0, r5, 0
bl DestroyTask
@@ -2303,7 +2303,7 @@ _080B375A:
b _080B37CC
.pool
_080B376C:
- bl sub_809833C
+ bl IsFieldMessageBoxHidden
lsls r0, 24
cmp r0, 0
beq _080B37CC
@@ -2325,7 +2325,7 @@ _080B378C:
beq _080B37B2
b _080B37CC
_080B379E:
- bl textbox_close
+ bl HideFieldMessageBox
movs r0, 0
strh r0, [r5, 0x8]
bl sub_80872C4
diff --git a/asm/clock.s b/asm/clock.s
index 01c7e964e..5d771a8b6 100644
--- a/asm/clock.s
+++ b/asm/clock.s
@@ -27,8 +27,8 @@ sub_809E778: @ 809E778
.pool
thumb_func_end sub_809E778
- thumb_func_start sub_809E7B0
-sub_809E7B0: @ 809E7B0
+ thumb_func_start DoTimeBasedEvents
+DoTimeBasedEvents: @ 809E7B0
push {r4,lr}
ldr r0, =0x00000895
bl FlagGet
@@ -50,7 +50,7 @@ _0809E7DA:
pop {r0}
bx r0
.pool
- thumb_func_end sub_809E7B0
+ thumb_func_end DoTimeBasedEvents
thumb_func_start sub_809E7E8
sub_809E7E8: @ 809E7E8
diff --git a/asm/coins.s b/asm/coins.s
index ea55dd85c..d2b6cbb47 100644
--- a/asm/coins.s
+++ b/asm/coins.s
@@ -5,9 +5,9 @@
.text
- thumb_func_start AddCoins
-@ bool8 AddCoins(u16 toAdd)
-AddCoins: @ 8145C80
+ thumb_func_start GiveCoins
+@ bool8 GiveCoins(u16 toAdd)
+GiveCoins: @ 8145C80
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -44,11 +44,11 @@ _08145CC0:
pop {r1}
bx r1
.pool
- thumb_func_end AddCoins
+ thumb_func_end GiveCoins
- thumb_func_start SubtractCoins
-@ bool8 SubtractCoins(u16 toSub)
-SubtractCoins: @ 8145CCC
+ thumb_func_start TakeCoins
+@ bool8 TakeCoins(u16 toSub)
+TakeCoins: @ 8145CCC
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -69,6 +69,6 @@ _08145CEE:
pop {r4}
pop {r1}
bx r1
- thumb_func_end SubtractCoins
+ thumb_func_end TakeCoins
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index 1a51555bf..819ccd3f7 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -6313,7 +6313,7 @@ _080DAE1E:
movs r0, 0x4
b _080DAE9A
_080DAE2E:
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080DAE82
@@ -8456,7 +8456,7 @@ sub_80DBED4: @ 80DBED4
adds r0, r1
ldrb r1, [r0]
lsls r1, 1
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
lsls r0, 3
adds r1, r0
@@ -11805,7 +11805,7 @@ sub_80DD9F0: @ 80DD9F0
ldrb r1, [r0, 0x1]
lsls r1, 29
lsrs r1, 29
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r2, [r0]
lsls r0, r2, 2
adds r0, r2
@@ -14260,7 +14260,7 @@ _080DEDE6:
b _080DEF90
.pool
_080DEE00:
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080DEE4C
@@ -14383,7 +14383,7 @@ _080DEF02:
mov r2, r9
lsls r1, r2, 5
adds r0, r1
- ldr r1, =gUnknown_02039F2C
+ ldr r1, =gScriptContestCategory
ldrh r1, [r1]
ldr r3, =0x00002e9a
adds r0, r3
@@ -14485,7 +14485,7 @@ _080DEFE6:
b _080DF03A
.pool
_080DEFF8:
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080DF038
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index af2ee5286..f937633da 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -1352,7 +1352,7 @@ sub_8156CF4: @ 8156CF4
ldr r0, =gUnknown_02039F34
ldr r0, [r0]
ldr r1, [r0, 0xC]
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
strh r0, [r1, 0x18]
ldr r1, =gAIScriptPtr
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 09c06b079..3b88e16e0 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -2590,7 +2590,7 @@ ContestEffectFunc_080E6778: @ 80E6778
adds r0, r3
ldrb r0, [r0, 0x1]
lsls r0, 29
- ldr r1, =gUnknown_02039F2C
+ ldr r1, =gScriptContestCategory
lsrs r0, 29
ldrh r1, [r1]
cmp r0, r1
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index 34e2811d9..f20070978 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -3008,7 +3008,7 @@ _080F7236:
bl CopyToBgTilemapBufferRect
movs r5, 0xF
_080F7240:
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0
bne _080F725C
@@ -4640,7 +4640,7 @@ sub_80F7F30: @ 80F7F30
adds r5, r0, 0
cmp r5, 0
beq _080F7F5E
- ldr r4, =gUnknown_02039F2C
+ ldr r4, =gScriptContestCategory
ldrb r0, [r4]
ldr r1, =gUnknown_02039F2E
ldrb r1, [r1]
@@ -4666,7 +4666,7 @@ sub_80F7F7C: @ 80F7F7C
muls r1, r0
ldr r0, =gPlayerParty
adds r2, r1, r0
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080F7FEE
@@ -4730,7 +4730,7 @@ sub_80F7FFC: @ 80F7FFC
beq _080F8010
b _080F8250
_080F8010:
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bls _080F801A
@@ -5488,7 +5488,7 @@ _080F8678:
bl sub_80F86E0
ldr r1, =gUnknown_02039F2B
strb r0, [r1]
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrb r0, [r0]
bl sub_80DB09C
ldr r1, =sub_80FCF40
diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s
index 3fd8f56f1..5f9c25d7c 100755
--- a/asm/contest_link_81D9DE4.s
+++ b/asm/contest_link_81D9DE4.s
@@ -370,7 +370,7 @@ sub_81DA10C: @ 81DA10C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrb r0, [r0]
bl sub_80DB09C
ldr r1, =sub_80FCF40
diff --git a/asm/decoration.s b/asm/decoration.s
index 89bfbe3bf..0798e3165 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -2094,7 +2094,7 @@ sub_8127B04: @ 8127B04
lsls r4, 24
asrs r4, 24
str r4, [sp]
- bl warp1_set
+ bl Overworld_SetWarpDestination
bl warp_in
add sp, 0x4
pop {r4,r5}
@@ -2490,7 +2490,7 @@ _08127E34:
cmp r0, 0x1
bne _08127F1C
adds r0, r4, 0
- bl FlagReset
+ bl FlagClear
movs r2, 0
ldr r0, [r7, 0x4]
ldrb r4, [r0]
diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s
index 52d490c20..7a909f585 100644
--- a/asm/decoration_inventory.s
+++ b/asm/decoration_inventory.s
@@ -156,8 +156,8 @@ _08161910:
bx r1
thumb_func_end sub_81618D0
- thumb_func_start sub_8161918
-sub_8161918: @ 8161918
+ thumb_func_start CheckHasDecoration
+CheckHasDecoration: @ 8161918
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -193,7 +193,7 @@ _08161958:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_8161918
+ thumb_func_end CheckHasDecoration
thumb_func_start DecorationAdd
DecorationAdd: @ 8161960
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index fbbc85c25..a85169b61 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -9914,7 +9914,7 @@ _0811EF48:
adds r1, r5, 0
bl ConvertEasyChatWordsToString
adds r0, r4, 0
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
_0811EF58:
pop {r4,r5}
pop {r0}
diff --git a/asm/field_door.s b/asm/field_door.s
index 4602158df..037c76566 100644
--- a/asm/field_door.s
+++ b/asm/field_door.s
@@ -581,8 +581,8 @@ sub_808A83C: @ 808A83C
.pool
thumb_func_end sub_808A83C
- thumb_func_start sub_808A854
-sub_808A854: @ 808A854
+ thumb_func_start FieldSetDoorOpened
+FieldSetDoorOpened: @ 808A854
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -602,10 +602,10 @@ _0808A876:
pop {r0}
bx r0
.pool
- thumb_func_end sub_808A854
+ thumb_func_end FieldSetDoorOpened
- thumb_func_start sub_808A880
-sub_808A880: @ 808A880
+ thumb_func_start FieldSetDoorClosed
+FieldSetDoorClosed: @ 808A880
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -625,10 +625,10 @@ _0808A8A2:
pop {r0}
bx r0
.pool
- thumb_func_end sub_808A880
+ thumb_func_end FieldSetDoorClosed
- thumb_func_start sub_808A8AC
-sub_808A8AC: @ 808A8AC
+ thumb_func_start FieldAnimateDoorClose
+FieldAnimateDoorClose: @ 808A8AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -654,10 +654,10 @@ _0808A8DC:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_808A8AC
+ thumb_func_end FieldAnimateDoorClose
- thumb_func_start task_overworld_door_add_if_role_69_for_opening_door_at
-task_overworld_door_add_if_role_69_for_opening_door_at: @ 808A8E4
+ thumb_func_start FieldAnimateDoorOpen
+FieldAnimateDoorOpen: @ 808A8E4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -683,10 +683,10 @@ _0808A914:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end task_overworld_door_add_if_role_69_for_opening_door_at
+ thumb_func_end FieldAnimateDoorOpen
- thumb_func_start sub_808A91C
-sub_808A91C: @ 808A91C
+ thumb_func_start FieldIsDoorAnimationRunning
+FieldIsDoorAnimationRunning: @ 808A91C
push {lr}
ldr r0, =task50_overworld_door
bl FuncIsActiveTask
@@ -695,10 +695,10 @@ sub_808A91C: @ 808A91C
pop {r1}
bx r1
.pool
- thumb_func_end sub_808A91C
+ thumb_func_end FieldIsDoorAnimationRunning
- thumb_func_start cur_mapdata_get_door_sound_at
-cur_mapdata_get_door_sound_at: @ 808A930
+ thumb_func_start GetDoorSoundEffect
+GetDoorSoundEffect: @ 808A930
push {lr}
adds r3, r0, 0
adds r2, r1, 0
@@ -725,7 +725,7 @@ _0808A95C:
_0808A95E:
pop {r1}
bx r1
- thumb_func_end cur_mapdata_get_door_sound_at
+ thumb_func_end GetDoorSoundEffect
thumb_func_start sub_808A964
sub_808A964: @ 808A964
diff --git a/asm/field_effect.s b/asm/field_effect.s
index c8ccc49b4..323e56bfe 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -1989,7 +1989,7 @@ task00_8084310: @ 80B6A24
cmp r0, 0
beq _080B6A8A
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -2100,7 +2100,7 @@ _080B6B3E:
cmp r0, 0
bne _080B6B58
bl ScriptContext2_Disable
- bl sub_809757C
+ bl UnfreezeMapObjects
adds r0, r5, 0
bl DestroyTask
_080B6B58:
@@ -2459,7 +2459,7 @@ sub_80B6E18: @ 80B6E18
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_809757C
+ bl UnfreezeMapObjects
bl InstallCameraPanAheadCallback
ldr r0, =sub_80B6B94
bl FindTaskIdByFunc
@@ -3111,7 +3111,7 @@ oei_waterfall: @ 80B734C
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
ldr r2, [r2]
strh r2, [r1, 0xA]
bl _call_via_r4
@@ -3188,7 +3188,7 @@ waterfall_1_do_anim_probably: @ 80B73F0
bne _080B7420
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3304,7 +3304,7 @@ sub_80B74D0: @ 80B74D0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
ldr r2, [r3]
strh r2, [r1, 0x26]
ldr r2, [r3, 0x4]
@@ -3363,7 +3363,7 @@ dive_2_unknown: @ 80B7558
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x26
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3536,7 +3536,7 @@ sub_80B76B8: @ 80B76B8
strh r0, [r2, 0x26]
movs r0, 0x1
strh r0, [r4, 0xE]
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r5, 0x10
ldrsh r0, [r1, r5]
str r0, [r3]
@@ -3835,7 +3835,7 @@ sub_80B791C: @ 80B791C
lsls r0, 24
cmp r0, 0
beq _080B795C
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -3919,7 +3919,7 @@ sub_80B79BC: @ 80B79BC
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
- bl sub_809757C
+ bl UnfreezeMapObjects
ldr r0, =sub_80B7890
bl FindTaskIdByFunc
lsls r0, 24
@@ -3935,7 +3935,7 @@ _080B79E6:
thumb_func_start sub_80B79F4
sub_80B79F4: @ 80B79F4
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -4090,7 +4090,7 @@ sub_80B7B18: @ 80B7B18
ldrsh r0, [r5, r2]
cmp r0, 0x3
ble _080B7B6C
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -4222,7 +4222,7 @@ _080B7C2C:
thumb_func_start sub_80B7C48
sub_80B7C48: @ 80B7C48
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -4583,7 +4583,7 @@ _080B7F32:
ands r0, r1
strb r0, [r6, 0x1]
bl ScriptContext2_Disable
- bl sub_809757C
+ bl UnfreezeMapObjects
ldr r0, =sub_80B7E94
bl FindTaskIdByFunc
lsls r0, 24
@@ -5194,7 +5194,7 @@ sub_80B8410: @ 80B8410
bne _080B8484
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_809757C
+ bl UnfreezeMapObjects
ldr r0, =sub_80B8250
bl FindTaskIdByFunc
lsls r0, 24
@@ -5229,7 +5229,7 @@ _080B84BE:
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
@@ -5252,7 +5252,7 @@ _080B84BE:
thumb_func_start sub_80B84F8
sub_80B84F8: @ 80B84F8
push {r4-r6,lr}
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldr r0, [r5]
movs r6, 0x80
lsls r6, 24
@@ -6292,12 +6292,12 @@ sub_80B8D44: @ 80B8D44
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r0, [r0]
strh r0, [r1, 0x26]
bl sav1_reset_battle_music_maybe
ldr r0, =0x0000016d
- bl sub_80858C4
+ bl Overworld_ChangeMusicTo
movs r0, 0
pop {r1}
bx r1
@@ -6421,7 +6421,7 @@ sub_80B8E60: @ 80B8E60
lsls r0, 24
cmp r0, 0
beq _080B8E96
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r1, 0x26
ldrsh r0, [r4, r1]
movs r1, 0x80
@@ -6473,7 +6473,7 @@ sub_80B8EA8: @ 80B8EA8
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r6, r2]
str r0, [r1]
@@ -6527,7 +6527,7 @@ sub_80B8F24: @ 80B8F24
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_81555AC
- bl sub_809757C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
movs r0, 0x9
bl FieldEffectActiveListRemove
@@ -6704,7 +6704,7 @@ sub_80B90CC: @ 80B90CC
strb r0, [r2, 0x5]
ldr r0, =sub_80B9128
str r0, [r2, 0x1C]
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r0, [r0]
strh r0, [r2, 0x30]
movs r0, 0x9E
@@ -6793,7 +6793,7 @@ sub_80B91A4: @ 80B91A4
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r0, [r0]
strh r0, [r1, 0xA]
movs r0, 0
@@ -6884,7 +6884,7 @@ sub_80B925C: @ 80B925C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -7922,7 +7922,7 @@ _080B9ACA:
sub_80B9ADC: @ 80B9ADC
push {r4,lr}
sub sp, 0x4
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldrb r0, [r4]
ldrb r1, [r4, 0x4]
ldrb r2, [r4, 0x8]
@@ -8343,7 +8343,7 @@ _080B9E24:
sub_80B9E28: @ 80B9E28
push {r4-r7,lr}
sub sp, 0x4
- ldr r7, =gFieldEffectSpawnParams
+ ldr r7, =gFieldEffectArguments
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 223a27937..754a8f7ff 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -574,7 +574,7 @@ _0815432E:
thumb_func_start oei_shadow
oei_shadow: @ 8154340
push {r4,r5,lr}
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldrb r0, [r5]
ldrb r1, [r5, 0x4]
ldrb r2, [r5, 0x8]
@@ -742,7 +742,7 @@ _08154498:
oei_grass_normal: @ 81544AC
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -951,7 +951,7 @@ _08154648:
thumb_func_start sub_8154658
sub_8154658: @ 8154658
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1080,7 +1080,7 @@ _0815474C:
sub_8154758: @ 8154758
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -1282,7 +1282,7 @@ _081548EA:
thumb_func_start sub_81548FC
sub_81548FC: @ 81548FC
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1336,7 +1336,7 @@ _08154958:
thumb_func_start sub_815496C
sub_815496C: @ 815496C
push {r4-r6,lr}
- ldr r6, =gFieldEffectSpawnParams
+ ldr r6, =gFieldEffectArguments
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -1537,7 +1537,7 @@ _08154AF2:
thumb_func_start sub_8154B04
sub_8154B04: @ 8154B04
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1591,7 +1591,7 @@ _08154B62:
thumb_func_start sub_8154B78
sub_8154B78: @ 8154B78
push {r4,r5,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1646,7 +1646,7 @@ _08154BD8:
thumb_func_start sub_8154BEC
sub_8154BEC: @ 8154BEC
push {r4,r5,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1777,7 +1777,7 @@ _08154CE4:
thumb_func_start sub_8154CEC
sub_8154CEC: @ 8154CEC
push {r4-r6,lr}
- ldr r6, =gFieldEffectSpawnParams
+ ldr r6, =gFieldEffectArguments
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -1922,7 +1922,7 @@ _08154E0A:
thumb_func_start sub_8154E1C
sub_8154E1C: @ 8154E1C
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1976,7 +1976,7 @@ _08154E78:
thumb_func_start oei_water_drop_tall
oei_water_drop_tall: @ 8154E8C
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2030,7 +2030,7 @@ _08154EE8:
thumb_func_start sub_8154EFC
sub_8154EFC: @ 8154EFC
push {r4-r7,lr}
- ldr r7, =gFieldEffectSpawnParams
+ ldr r7, =gFieldEffectArguments
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
@@ -2193,7 +2193,7 @@ oei_ripples: @ 8155054
push {r4,lr}
ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x14]
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
movs r2, 0
ldrsh r1, [r4, r2]
movs r3, 0x4
@@ -2238,7 +2238,7 @@ _081550A0:
thumb_func_start sub_81550B4
sub_81550B4: @ 81550B4
push {r4-r6,lr}
- ldr r6, =gFieldEffectSpawnParams
+ ldr r6, =gFieldEffectArguments
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -2393,7 +2393,7 @@ _081551E4:
thumb_func_start sub_81551F0
sub_81551F0: @ 81551F0
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2445,7 +2445,7 @@ _08155248:
thumb_func_start sub_815525C
sub_815525C: @ 815525C
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2497,7 +2497,7 @@ _081552B4:
thumb_func_start sub_81552C8
sub_81552C8: @ 81552C8
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2549,7 +2549,7 @@ _08155320:
thumb_func_start sub_8155334
sub_8155334: @ 8155334
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2603,7 +2603,7 @@ ash: @ 81553A0
push {r4,lr}
lsls r2, 16
lsrs r2, 16
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
lsls r0, 16
asrs r0, 16
str r0, [r4]
@@ -2630,7 +2630,7 @@ ash: @ 81553A0
oei_ash: @ 81553D4
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -2809,7 +2809,7 @@ _0815552C:
thumb_func_start sub_8155534
sub_8155534: @ 8155534
push {r4,r5,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3261,7 +3261,7 @@ _08155888:
thumb_func_start sub_8155890
sub_8155890: @ 8155890
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3315,7 +3315,7 @@ _081558EC:
thumb_func_start sub_8155900
sub_8155900: @ 8155900
push {r4-r7,lr}
- ldr r7, =gFieldEffectSpawnParams
+ ldr r7, =gFieldEffectArguments
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
@@ -3505,7 +3505,7 @@ _08155A76:
thumb_func_start sub_8155A88
sub_8155A88: @ 8155A88
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3586,7 +3586,7 @@ _08155B20:
thumb_func_start sub_8155B2C
sub_8155B2C: @ 8155B2C
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3689,7 +3689,7 @@ ShowDisguiseFieldEffect: @ 8155BD0
lsrs r6, r1, 24
lsls r2, 24
lsrs r7, r2, 24
- ldr r5, =gFieldEffectSpawnParams
+ ldr r5, =gFieldEffectArguments
ldrb r0, [r5]
ldrb r1, [r5, 0x4]
ldrb r2, [r5, 0x8]
@@ -3950,7 +3950,7 @@ _08155DD8:
thumb_func_start sub_8155DDC
sub_8155DDC: @ 8155DDC
push {r4,lr}
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r0, [r4]
adds r0, 0x7
str r0, [r4]
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index 7d05dbd98..2152a5c5b 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -1166,7 +1166,7 @@ _08096E8C:
@ void GroundEffect_SpawnOnTallGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_SpawnOnTallGrass: @ 8096E90
push {lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1205,7 +1205,7 @@ GroundEffect_SpawnOnTallGrass: @ 8096E90
@ void GroundEffect_StepOnTallGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_StepOnTallGrass: @ 8096EDC
push {lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1244,7 +1244,7 @@ GroundEffect_StepOnTallGrass: @ 8096EDC
@ void GroundEffect_SpawnOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_SpawnOnLongGrass: @ 8096F28
push {lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1283,7 +1283,7 @@ GroundEffect_SpawnOnLongGrass: @ 8096F28
@ void GroundEffect_StepOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_StepOnLongGrass: @ 8096F74
push {lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1413,7 +1413,7 @@ DoTracksGroundEffect_Footprints: @ 8097044
mov r0, sp
movs r2, 0x4
bl memcpy
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x14
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -1449,7 +1449,7 @@ DoTracksGroundEffect_BikeTireTracks: @ 8097094
ldr r0, [r4, 0x14]
cmp r1, r0
beq _080970D6
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r1, 0x14
ldrsh r0, [r4, r1]
str r0, [r2]
@@ -1520,7 +1520,7 @@ GroundEffect_JumpOnTallGrass: @ 8097110
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -1562,7 +1562,7 @@ _0809715A:
@ void GroundEffect_JumpOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnLongGrass: @ 8097168
push {lr}
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
@@ -1585,7 +1585,7 @@ GroundEffect_JumpOnLongGrass: @ 8097168
@ void GroundEffect_JumpOnShallowWater(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnShallowWater: @ 8097190
push {r4,lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1611,7 +1611,7 @@ GroundEffect_JumpOnShallowWater: @ 8097190
@ void GroundEffect_JumpOnWater(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnWater: @ 80971C0
push {r4,lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1637,7 +1637,7 @@ GroundEffect_JumpOnWater: @ 80971C0
@ void GroundEffect_JumpLandingDust(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpLandingDust: @ 80971F0
push {r4,lr}
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1685,7 +1685,7 @@ GroundEffect_HotSprings: @ 8097230
@ void GroundEffect_Seaweed(struct npc_state *fieldObject, struct obj *object)
GroundEffect_Seaweed: @ 8097240
push {lr}
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index b86b6b738..0c1fae6de 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -181,8 +181,8 @@ _08098272:
bx r1
thumb_func_end sub_8098238
- thumb_func_start box_related_two__3
-box_related_two__3: @ 8098278
+ thumb_func_start ShowFieldAutoScrollMessage
+ShowFieldAutoScrollMessage: @ 8098278
push {lr}
adds r1, r0, 0
ldr r2, =gUnknown_020375BC
@@ -202,7 +202,7 @@ _08098298:
_0809829A:
pop {r1}
bx r1
- thumb_func_end box_related_two__3
+ thumb_func_end ShowFieldAutoScrollMessage
thumb_func_start sub_80982A0
sub_80982A0: @ 80982A0
@@ -267,8 +267,8 @@ textbox_auto_and_task_add: @ 8098304
bx r0
thumb_func_end textbox_auto_and_task_add
- thumb_func_start textbox_close
-textbox_close: @ 8098314
+ thumb_func_start HideFieldMessageBox
+HideFieldMessageBox: @ 8098314
push {lr}
bl task_del_textbox
movs r0, 0
@@ -280,7 +280,7 @@ textbox_close: @ 8098314
pop {r0}
bx r0
.pool
- thumb_func_end textbox_close
+ thumb_func_end HideFieldMessageBox
thumb_func_start textbox_any_visible
textbox_any_visible: @ 8098330
@@ -290,8 +290,8 @@ textbox_any_visible: @ 8098330
.pool
thumb_func_end textbox_any_visible
- thumb_func_start sub_809833C
-sub_809833C: @ 809833C
+ thumb_func_start IsFieldMessageBoxHidden
+IsFieldMessageBoxHidden: @ 809833C
push {lr}
ldr r0, =gUnknown_020375BC
ldrb r0, [r0]
@@ -305,7 +305,7 @@ _08098350:
_08098352:
pop {r1}
bx r1
- thumb_func_end sub_809833C
+ thumb_func_end IsFieldMessageBoxHidden
thumb_func_start sub_8098358
sub_8098358: @ 8098358
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 9f47c0a55..34ff54f61 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -1522,7 +1522,7 @@ PlayerAvatarTransition_Surfing: @ 808B4D8
bl FieldObjectTurn
movs r0, 0x8
bl SetPlayerAvatarStateMask
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3517,7 +3517,7 @@ _0808C3F0:
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]
@@ -3897,7 +3897,7 @@ sub_808C750: @ 808C750
lsrs r4, 24
bl ScriptContext2_Enable
bl sav1_reset_battle_music_maybe
- bl sub_8085898
+ bl Overworld_ChangeMusicToDefault
ldr r2, =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0xF7
@@ -4858,7 +4858,7 @@ fishF: @ 808CF2C
ldr r0, =gPlayerAvatar
strb r1, [r0, 0x6]
bl ScriptContext2_Disable
- bl sub_809757C
+ bl UnfreezeMapObjects
movs r0, 0
movs r1, 0x1
bl sub_8197434
diff --git a/asm/field_poison.s b/asm/field_poison.s
index fde35ecce..652026523 100644
--- a/asm/field_poison.s
+++ b/asm/field_poison.s
@@ -178,7 +178,7 @@ _080F96A8:
strh r0, [r4]
b _080F9722
_080F96AE:
- bl sub_809833C
+ bl IsFieldMessageBoxHidden
lsls r0, 24
cmp r0, 0
beq _080F9722
diff --git a/asm/field_screen.s b/asm/field_screen.s
index 83fea2f44..4ab8a5a53 100644
--- a/asm/field_screen.s
+++ b/asm/field_screen.s
@@ -7503,8 +7503,8 @@ _080AED78:
bx r0
thumb_func_end bag_add_task0_by_acit
- thumb_func_start sub_80AED7C
-sub_80AED7C: @ 80AED7C
+ thumb_func_start SetSav1Weather
+SetSav1Weather: @ 80AED7C
push {r4,r5,lr}
ldr r4, =gSaveBlock1Ptr
ldr r1, [r4]
@@ -7525,7 +7525,7 @@ sub_80AED7C: @ 80AED7C
pop {r0}
bx r0
.pool
- thumb_func_end sub_80AED7C
+ thumb_func_end SetSav1Weather
thumb_func_start sav1_get_weather_probably
sav1_get_weather_probably: @ 80AEDAC
@@ -7564,7 +7564,7 @@ sub_80AEDBC: @ 80AEDBC
thumb_func_start sub_80AEDF0
sub_80AEDF0: @ 80AEDF0
push {lr}
- bl sub_80AED7C
+ bl SetSav1Weather
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
@@ -7576,7 +7576,7 @@ sub_80AEDF0: @ 80AEDF0
thumb_func_start sub_80AEE08
sub_80AEE08: @ 80AEE08
push {lr}
- bl sub_80AED7C
+ bl SetSav1Weather
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
@@ -7585,8 +7585,8 @@ sub_80AEE08: @ 80AEE08
bx r0
thumb_func_end sub_80AEE08
- thumb_func_start sub_80AEE20
-sub_80AEE20: @ 80AEE20
+ thumb_func_start DoCurrentWeather
+DoCurrentWeather: @ 80AEE20
push {r4,r5,lr}
bl sav1_get_weather_probably
lsls r0, 24
@@ -7627,7 +7627,7 @@ _080AEE6E:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80AEE20
+ thumb_func_end DoCurrentWeather
thumb_func_start sub_80AEE84
sub_80AEE84: @ 80AEE84
@@ -8390,7 +8390,7 @@ _080AF480:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_808A854
+ bl FieldSetDoorOpened
movs r0, 0x1
strh r0, [r5, 0x8]
b _080AF54A
@@ -8427,7 +8427,7 @@ _080AF4DC:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_808A8AC
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -8461,7 +8461,7 @@ _080AF520:
cmp r0, 0x1
beq _080AF54A
_080AF536:
- bl sub_809757C
+ bl UnfreezeMapObjects
movs r0, 0x4
strh r0, [r5, 0x8]
b _080AF54A
@@ -8550,7 +8550,7 @@ _080AF5EC:
lsls r0, 24
cmp r0, 0
beq _080AF60A
- bl sub_809757C
+ bl UnfreezeMapObjects
movs r0, 0x3
strh r0, [r5, 0x8]
b _080AF60A
@@ -8593,7 +8593,7 @@ _080AF644:
bl sub_80AF71C
cmp r0, 0
beq _080AF65A
- bl sub_809757C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r5, 0
bl DestroyTask
@@ -9142,7 +9142,7 @@ _080AFAD4:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl cur_mapdata_get_door_sound_at
+ bl GetDoorSoundEffect
lsls r0, 16
lsrs r0, 16
bl PlaySE
@@ -9151,7 +9151,7 @@ _080AFAD4:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl task_overworld_door_add_if_role_69_for_opening_door_at
+ bl FieldAnimateDoorOpen
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -9211,7 +9211,7 @@ _080AFB6C:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_808A8AC
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -9996,7 +9996,7 @@ _080B0198:
bl sub_808D1B4
cmp r0, 0x1
beq _080B01B6
- bl sub_809757C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r5, 0
bl DestroyTask
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
index 6f8174fd8..39bd3b545 100644
--- a/asm/field_tasks.s
+++ b/asm/field_tasks.s
@@ -46,7 +46,7 @@ _0809D8CA:
ands r0, r1
cmp r0, 0
beq _0809D8FC
- bl sub_809E7B0
+ bl DoTimeBasedEvents
ldrh r0, [r4]
adds r0, 0x1
b _0809D8FA
@@ -144,8 +144,8 @@ _0809D992:
.pool
thumb_func_end overworld_ensure_per_step_coros_running
- thumb_func_start activate_per_step_callback
-activate_per_step_callback: @ 809D9A8
+ thumb_func_start ActivatePerStepCallback
+ActivatePerStepCallback: @ 809D9A8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -180,7 +180,7 @@ _0809D9EA:
pop {r4}
pop {r0}
bx r0
- thumb_func_end activate_per_step_callback
+ thumb_func_end ActivatePerStepCallback
thumb_func_start wild_encounter_reset_coro_args
wild_encounter_reset_coro_args: @ 809D9F0
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index 3ad2a398b..63acc9982 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -486,7 +486,7 @@ sub_80F9F78: @ 80F9F78
ands r0, r1
cmp r0, 0
beq _080F9FC0
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080F9FAE
@@ -517,7 +517,7 @@ _080F9FB6:
movs r0, 0x18
b _080F9FFC
_080F9FC0:
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080F9FEA
@@ -643,7 +643,7 @@ _080FA0C4:
sub_80FA0DC: @ 80FA0DC
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -701,7 +701,7 @@ sub_80FA13C: @ 80FA13C
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -778,7 +778,7 @@ sub_80FA1D8: @ 80FA1D8
sub_80FA1E8: @ 80FA1E8
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -836,13 +836,13 @@ sub_80FA248: @ 80FA248
ands r2, r0
cmp r2, 0x96
bne _080FA26A
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r0, 0
str r0, [r1, 0x1C]
_080FA26A:
cmp r2, 0x9C
bne _080FA274
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
movs r0, 0x2
str r0, [r1, 0x1C]
_080FA274:
@@ -858,7 +858,7 @@ _080FA274:
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -891,7 +891,7 @@ sub_80FA2D8: @ 80FA2D8
adds r4, r0, 0
movs r0, 0x9B
bl PlaySE
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r1, [r0, 0x1C]
adds r2, r4, 0
adds r2, 0x2A
@@ -917,7 +917,7 @@ sub_80FA304: @ 80FA304
asrs r0, 16
cmp r0, 0x27
ble _080FA32E
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r0, [r0, 0x1C]
cmp r0, 0
beq _080FA322
@@ -951,7 +951,7 @@ sub_80FA33C: @ 80FA33C
sub_80FA34C: @ 80FA34C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -1009,7 +1009,7 @@ sub_80FA3AC: @ 80FA3AC
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -1807,7 +1807,7 @@ sub_80FAA7C: @ 80FAA7C
mov r0, sp
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
@@ -1930,7 +1930,7 @@ door_restore_tilemap: @ 80FABA4
adds r5, r0, 0
movs r0, 0x83
bl PlaySE
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
subs r1, 0x1
@@ -1953,7 +1953,7 @@ _080FABDC:
lsls r2, 2
bl MapGridSetMetatileIdAt
_080FABEA:
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, =0x0000020a
@@ -1988,7 +1988,7 @@ sub_80FAC24: @ 80FAC24
strh r0, [r5, 0x2E]
b _080FAC54
_080FAC38:
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, =0x00000e8c
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index 7f67185a9..e31bf22e2 100755
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -385,7 +385,7 @@ hm2_ruin_valley: @ 80D3A50
movs r0, 0x1
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -421,7 +421,7 @@ sub_80D3A6C: @ 80D3A6C
sub_80D3A9C: @ 80D3A9C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/fldeff_groundshake.s b/asm/fldeff_groundshake.s
index cb0d2e2d8..81d92430e 100755
--- a/asm/fldeff_groundshake.s
+++ b/asm/fldeff_groundshake.s
@@ -161,7 +161,7 @@ sub_81BE79C: @ 81BE79C
beq _081BE7B8
movs r0, 0xA7
lsls r0, 1
- bl FlagReset
+ bl FlagClear
b _081BE7EE
.pool
_081BE7B8:
@@ -188,7 +188,7 @@ _081BE7D4:
_081BE7E6:
movs r0, 0xA7
lsls r0, 1
- bl FlagReset
+ bl FlagClear
_081BE7EE:
pop {r4}
pop {r0}
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index 98764625e..947517ed5 100644
--- a/asm/fldeff_strength.s
+++ b/asm/fldeff_strength.s
@@ -40,7 +40,7 @@ _08145DF2:
sub_8145E0C: @ 8145E0C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -66,7 +66,7 @@ sub_8145E2C: @ 8145E2C
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- ldr r0, =gFieldEffectSpawnParams
+ ldr r0, =gFieldEffectArguments
ldr r1, [r0]
movs r0, 0x64
muls r0, r1
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
index 5c83b455d..ea7b2653a 100644
--- a/asm/fldeff_sweetscent.s
+++ b/asm/fldeff_sweetscent.s
@@ -24,7 +24,7 @@ hm2_sweet_scent: @ 8159F10
movs r0, 0x33
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
index e4f4bce42..d77e29dd2 100644
--- a/asm/fldeff_teleport.s
+++ b/asm/fldeff_teleport.s
@@ -39,7 +39,7 @@ hm_teleport_run_dp02scr: @ 817C8FC
movs r0, 0x3F
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/item.s b/asm/item.s
index 97582e190..89177c5d4 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -676,8 +676,8 @@ _080D6D04:
.pool
thumb_func_end sub_80D6CE4
- thumb_func_start sub_80D6D1C
-sub_80D6D1C: @ 80D6D1C
+ thumb_func_start CheckPCHasItem
+CheckPCHasItem: @ 80D6D1C
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
@@ -717,10 +717,10 @@ _080D6D68:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_80D6D1C
+ thumb_func_end CheckPCHasItem
- thumb_func_start sub_80D6D70
-sub_80D6D70: @ 80D6D70
+ thumb_func_start AddPCItem
+AddPCItem: @ 80D6D70
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -819,7 +819,7 @@ _080D6E3A:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80D6D70
+ thumb_func_end AddPCItem
thumb_func_start sub_80D6E48
sub_80D6E48: @ 80D6E48
diff --git a/asm/item_menu.s b/asm/item_menu.s
index c1f94b4e9..1e4dfca49 100755
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -5388,7 +5388,7 @@ _081ADB6C:
ldrh r0, [r4]
mov r3, r8
ldrh r1, [r3, 0x10]
- bl sub_80D6D70
+ bl AddPCItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
diff --git a/asm/item_use.s b/asm/item_use.s
index 42b2d8bc0..d3c724166 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -2215,7 +2215,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234
ldr r0, =0x000008ad
bl FlagSet
ldr r0, =0x000008ae
- bl FlagReset
+ bl FlagClear
ldr r0, =gStringVar4
ldr r1, =gText_UsedVar2WildLured
bl StringExpandPlaceholders
@@ -2225,7 +2225,7 @@ _080FE278:
ldr r0, =0x000008ae
bl FlagSet
ldr r0, =0x000008ad
- bl FlagReset
+ bl FlagClear
ldr r0, =gStringVar4
ldr r1, =gText_UsedVar2WildRepelled
bl StringExpandPlaceholders
diff --git a/asm/link.s b/asm/link.s
index 96f18bac4..291f71a57 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -21117,7 +21117,7 @@ sub_8014290: @ 8014290
asrs r5, 24
str r5, [sp]
adds r3, r4, 0
- bl warp1_set
+ bl Overworld_SetWarpDestination
ldr r0, [r6]
movs r1, 0x4
ldrsb r1, [r0, r1]
@@ -21182,7 +21182,7 @@ sub_8014304: @ 8014304
adds r0, r4, 0
adds r1, r5, 0
mov r3, r8
- bl warp1_set
+ bl Overworld_SetWarpDestination
bl warp_in
add sp, 0x4
pop {r3}
@@ -28312,7 +28312,7 @@ _080181BC:
sub_80181CC: @ 80181CC
push {lr}
bl ScriptContext2_Enable
- bl sub_80983E8
+ bl ScriptFreezeMapObjects
pop {r0}
bx r0
thumb_func_end sub_80181CC
@@ -31292,7 +31292,7 @@ flag_clear_x63: @ 8019A64
adds r0, r1
lsls r0, 16
lsrs r0, 16
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
.pool
diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s
index 4ed8e3bcd..96ffc2254 100644
--- a/asm/map_obj_8097404.s
+++ b/asm/map_obj_8097404.s
@@ -205,8 +205,8 @@ _0809756C:
.pool
thumb_func_end npc_sync_anim_pause_bits
- thumb_func_start sub_809757C
-sub_809757C: @ 809757C
+ thumb_func_start UnfreezeMapObjects
+UnfreezeMapObjects: @ 809757C
push {r4,r5,lr}
movs r4, 0
ldr r5, =gMapObjects
@@ -231,7 +231,7 @@ _08097598:
pop {r0}
bx r0
.pool
- thumb_func_end sub_809757C
+ thumb_func_end UnfreezeMapObjects
thumb_func_start little_step
@ void little_step(struct obj *object, u8 direction)
@@ -1396,7 +1396,7 @@ oe_exec_and_other_stuff: @ 8097DD0
adds r0, r1, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -1434,7 +1434,7 @@ DoRippleFieldEffect: @ 8097E14
adds r4, r1, 0
ldrb r0, [r0, 0x5]
bl GetFieldObjectGraphicsInfo
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r3, 0x20
ldrsh r1, [r4, r3]
str r1, [r2]
diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s
index 60757cdd0..ee60814f5 100644
--- a/asm/map_obj_lock.s
+++ b/asm/map_obj_lock.s
@@ -59,8 +59,8 @@ _080983E2:
bx r1
thumb_func_end sub_80983C4
- thumb_func_start sub_80983E8
-sub_80983E8: @ 80983E8
+ thumb_func_start ScriptFreezeMapObjects
+ScriptFreezeMapObjects: @ 80983E8
push {lr}
bl player_bitmagic
ldr r0, =sub_80983A4
@@ -69,7 +69,7 @@ sub_80983E8: @ 80983E8
pop {r0}
bx r0
.pool
- thumb_func_end sub_80983E8
+ thumb_func_end ScriptFreezeMapObjects
thumb_func_start sub_8098400
sub_8098400: @ 8098400
@@ -149,8 +149,8 @@ _0809849A:
bx r1
thumb_func_end sub_809847C
- thumb_func_start sub_80984A0
-sub_80984A0: @ 80984A0
+ thumb_func_start LockSelectedMapObject
+LockSelectedMapObject: @ 80984A0
push {r4,r5,lr}
ldr r4, =gSelectedMapObject
ldrb r0, [r4]
@@ -184,7 +184,7 @@ _080984DE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80984A0
+ thumb_func_end LockSelectedMapObject
thumb_func_start sub_80984F4
sub_80984F4: @ 80984F4
@@ -203,7 +203,7 @@ sub_80984F4: @ 80984F4
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl sub_80D338C
- bl sub_809757C
+ bl UnfreezeMapObjects
pop {r0}
bx r0
.pool
@@ -239,7 +239,7 @@ _08098542:
adds r0, r4
bl FieldObjectClearAnimIfSpecialAnimFinished
bl sub_80D338C
- bl sub_809757C
+ bl UnfreezeMapObjects
pop {r4}
pop {r0}
bx r0
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index d544f689f..ce8591981 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -46,7 +46,7 @@ sub_8153804: @ 8153804
ldr r1, =gUnknown_08674C86
bl StringExpandPlaceholders
movs r0, 0x3
- bl sub_81538C4
+ bl SetMysteryEventScriptStatus
pop {r0}
bx r0
.pool
@@ -140,13 +140,13 @@ _081538AC:
.pool
thumb_func_end sub_81538A0
- thumb_func_start sub_81538C4
-sub_81538C4: @ 81538C4
+ thumb_func_start SetMysteryEventScriptStatus
+SetMysteryEventScriptStatus: @ 81538C4
ldr r1, =gUnknown_0203BBC0
str r0, [r1, 0x6C]
bx lr
.pool
- thumb_func_end sub_81538C4
+ thumb_func_end SetMysteryEventScriptStatus
thumb_func_start sub_81538D0
sub_81538D0: @ 81538D0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 334c96985..50dc3c54e 100755
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -10051,7 +10051,7 @@ task_launch_hm_phase_2: @ 81B5750
cmp r0, 0x1
bne _081B577C
bl brm_get_selected_species
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 16
lsrs r0, 16
str r0, [r1]
@@ -10135,7 +10135,7 @@ _081B57FE:
hm_surf_run_dp02scr: @ 81B5804
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -10239,7 +10239,7 @@ sub_81B58A8: @ 81B58A8
hm2_waterfall: @ 81B58D4
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -10299,7 +10299,7 @@ _081B594E:
sub_81B5958: @ 81B5958
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -10314,7 +10314,7 @@ sub_81B5958: @ 81B5958
sub_81B5974: @ 81B5974
push {lr}
bl sub_809D1E8
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1, 0x4]
@@ -15205,7 +15205,7 @@ sub_81B841C: @ 81B841C
beq _081B8438
adds r0, r1, 0
movs r1, 0x1
- bl sub_80D6D70
+ bl AddPCItem
b _081B8440
.pool
_081B8438:
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 14062347c..cd91ed3e1 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -31,7 +31,7 @@ _0816AE1A:
ldrh r0, [r0]
adds r1, r6
ldrh r1, [r1]
- bl sub_80D6D70
+ bl AddPCItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 6c4c7ff13..298409e9c 100755
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -6902,7 +6902,7 @@ sub_80CABE0: @ 80CABE0
cmp r1, r0
beq _080CAC0A
ldr r0, =0x000008d7
- bl FlagReset
+ bl FlagClear
ldr r4, =0x00004036
bl StorageGetCurrentBox
adds r1, r0, 0
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 9be8bade0..7e9ea30d1 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -2266,7 +2266,7 @@ sub_80E7F68: @ 80E7F68
bne _080E7FE4
ldrh r0, [r4]
movs r1, 0x1
- bl sub_80D6D1C
+ bl CheckPCHasItem
lsls r0, 24
cmp r0, 0
bne _080E7FE4
diff --git a/asm/rom4.s b/asm/rom4.s
index 0a624620d..bf682fc51 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -36,15 +36,15 @@ flag_var_implications_of_teleport_: @ 8084660
push {lr}
bl player_avatar_init_params_reset
ldr r0, =0x0000088b
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088d
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088c
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000889
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000888
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
.pool
@@ -55,15 +55,15 @@ sub_808469C: @ 808469C
push {lr}
bl player_avatar_init_params_reset
ldr r0, =0x0000088b
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088d
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088c
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000889
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000888
- bl FlagReset
+ bl FlagClear
ldr r0, =gUnknown_08271862
bl ScriptContext2_RunNewScript
pop {r0}
@@ -76,15 +76,15 @@ flagmods_08054D70: @ 80846E4
push {lr}
bl player_avatar_init_params_reset
ldr r0, =0x0000088b
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088d
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088c
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000889
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000888
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
.pool
@@ -95,15 +95,15 @@ sub_8084720: @ 8084720
push {r4,lr}
bl player_avatar_init_params_reset
ldr r0, =0x0000088b
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088d
- bl FlagReset
+ bl FlagClear
ldr r0, =0x0000088c
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000889
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000888
- bl FlagReset
+ bl FlagClear
ldr r4, =0x00004039
adds r0, r4, 0
bl VarGet
@@ -128,7 +128,7 @@ _08084764:
sub_8084788: @ 8084788
push {lr}
ldr r0, =0x0000088c
- bl FlagReset
+ bl FlagClear
bl sub_8085B2C
bl wild_pokemon_reroll
bl UpdateLocationHistoryForRoamer
@@ -324,8 +324,8 @@ _080848F4:
.pool
thumb_func_end CopyFieldObjectTemplateCoordsToSav1
- thumb_func_start update_saveblock1_field_object_coords
-update_saveblock1_field_object_coords: @ 8084910
+ thumb_func_start Overworld_SetMapObjTemplateCoords
+Overworld_SetMapObjTemplateCoords: @ 8084910
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
@@ -356,10 +356,10 @@ _08084944:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end update_saveblock1_field_object_coords
+ thumb_func_end Overworld_SetMapObjTemplateCoords
- thumb_func_start update_saveblock1_field_object_movement_behavior
-update_saveblock1_field_object_movement_behavior: @ 808494C
+ thumb_func_start Overworld_SetMapObjTemplateMovementType
+Overworld_SetMapObjTemplateMovementType: @ 808494C
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -387,7 +387,7 @@ _08084978:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end update_saveblock1_field_object_movement_behavior
+ thumb_func_end Overworld_SetMapObjTemplateMovementType
thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw
mapdata_load_assets_to_gpu_and_full_redraw: @ 8084980
@@ -710,9 +710,9 @@ warp_in: @ 8084BD8
bx r0
thumb_func_end warp_in
- thumb_func_start warp1_set
-@ void warp1_set(char bank, char map, char warpid, char enter_x, char enter_y)
-warp1_set: @ 8084BEC
+ thumb_func_start Overworld_SetWarpDestination
+@ void Overworld_SetWarpDestination(char bank, char map, char warpid, char enter_x, char enter_y)
+Overworld_SetWarpDestination: @ 8084BEC
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -741,7 +741,7 @@ warp1_set: @ 8084BEC
pop {r0}
bx r0
.pool
- thumb_func_end warp1_set
+ thumb_func_end Overworld_SetWarpDestination
thumb_func_start warp1_set_2
@ void warp1_set_2(char bank, char map, char warpid)
@@ -757,7 +757,7 @@ warp1_set_2: @ 8084C28
movs r3, 0x1
negs r3, r3
str r3, [sp]
- bl warp1_set
+ bl Overworld_SetWarpDestination
add sp, 0x4
pop {r0}
bx r0
@@ -857,7 +857,7 @@ sub_8084CCC: @ 8084CCC
lsls r4, 24
asrs r4, 24
str r4, [sp]
- bl warp1_set
+ bl Overworld_SetWarpDestination
_08084CFA:
add sp, 0x4
pop {r4}
@@ -879,8 +879,8 @@ copy_saved_warp3_bank_and_enter_x_to_warp1: @ 8084D04
.pool
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
- thumb_func_start sub_8084D1C
-sub_8084D1C: @ 8084D1C
+ thumb_func_start Overworld_SetHealLocationWarp
+Overworld_SetHealLocationWarp: @ 8084D1C
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
@@ -911,7 +911,7 @@ _08084D50:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8084D1C
+ thumb_func_end Overworld_SetHealLocationWarp
thumb_func_start sub_8084D5C
sub_8084D5C: @ 8084D5C
@@ -1126,7 +1126,7 @@ _08084EF0:
lsls r4, r6, 24
asrs r4, 24
str r4, [sp]
- bl warp1_set
+ bl Overworld_SetWarpDestination
_08084F0A:
add sp, 0x4
pop {r4-r6}
@@ -1289,7 +1289,7 @@ sub_8084FF8: @ 8084FF8
lsls r4, r5, 24
asrs r4, 24
str r4, [sp]
- bl warp1_set
+ bl Overworld_SetWarpDestination
b _0808504C
_08085030:
bl mapheader_run_script_with_tag_x6
@@ -1365,7 +1365,7 @@ mliX_load_map: @ 8085098
negs r3, r3
str r3, [sp]
adds r2, r3, 0
- bl warp1_set
+ bl Overworld_SetWarpDestination
ldr r4, =gMapHeader
ldrb r0, [r4, 0x14]
cmp r0, 0x3A
@@ -1382,7 +1382,7 @@ _080850C8:
adds r0, r6, 0
adds r1, r5, 0
bl sub_80B21B4
- bl sub_809E7B0
+ bl DoTimeBasedEvents
bl sub_80AEDBC
bl sub_8085B2C
bl update_sav1_flash_used_on_map
@@ -1404,7 +1404,7 @@ _08085116:
bl sub_80A0A2C
bl UpdateLocationHistoryForRoamer
bl RoamerMove
- bl sub_80AEE20
+ bl DoCurrentWeather
bl wild_encounter_reset_coro_args
bl mapheader_run_script_with_tag_x5
ldr r2, =gMapHeader
@@ -1481,14 +1481,14 @@ _080851A2:
bl sub_80B21B4
cmp r7, 0x1
beq _080851EE
- bl sub_809E7B0
+ bl DoTimeBasedEvents
_080851EE:
bl sub_80AEDBC
bl sub_8085B2C
cmp r5, 0
beq _08085200
ldr r0, =0x00000888
- bl FlagReset
+ bl FlagClear
_08085200:
bl update_sav1_flash_used_on_map
bl sav1_reset_battle_music_maybe
@@ -1858,8 +1858,8 @@ _080854DE:
.pool
thumb_func_end update_sav1_flash_used_on_map
- thumb_func_start sub_80854EC
-sub_80854EC: @ 80854EC
+ thumb_func_start Overworld_SetFlashLevel
+Overworld_SetFlashLevel: @ 80854EC
push {lr}
adds r1, r0, 0
cmp r1, 0
@@ -1878,7 +1878,7 @@ _080854FE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80854EC
+ thumb_func_end Overworld_SetFlashLevel
thumb_func_start sav1_get_flash_used_on_map
sav1_get_flash_used_on_map: @ 8085514
@@ -2263,14 +2263,14 @@ _080857E8:
.pool
thumb_func_end sub_8085784
- thumb_func_start sav1_set_battle_music_maybe
-sav1_set_battle_music_maybe: @ 80857F4
+ thumb_func_start Overworld_SetSavedMusic
+Overworld_SetSavedMusic: @ 80857F4
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x2C]
bx lr
.pool
- thumb_func_end sav1_set_battle_music_maybe
+ thumb_func_end Overworld_SetSavedMusic
thumb_func_start sav1_reset_battle_music_maybe
sav1_reset_battle_music_maybe: @ 8085800
@@ -2339,8 +2339,8 @@ _08085890:
bx r0
thumb_func_end sub_8085810
- thumb_func_start sub_8085898
-sub_8085898: @ 8085898
+ thumb_func_start Overworld_ChangeMusicToDefault
+Overworld_ChangeMusicToDefault: @ 8085898
push {r4,lr}
bl GetCurrentMapMusic
adds r4, r0, 0
@@ -2360,10 +2360,10 @@ _080858BE:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8085898
+ thumb_func_end Overworld_ChangeMusicToDefault
- thumb_func_start sub_80858C4
-sub_80858C4: @ 80858C4
+ thumb_func_start Overworld_ChangeMusicTo
+Overworld_ChangeMusicTo: @ 80858C4
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -2383,7 +2383,7 @@ _080858E4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80858C4
+ thumb_func_end Overworld_ChangeMusicTo
thumb_func_start is_warp1_light_level_8_or_9
is_warp1_light_level_8_or_9: @ 80858F0
@@ -3525,8 +3525,8 @@ _08086278:
_08086286:
bl CopyFieldObjectTemplateCoordsToSav1
_0808628A:
- bl sub_809757C
- bl sub_809E7B0
+ bl UnfreezeMapObjects
+ bl DoTimeBasedEvents
bl sub_8084788
ldr r0, =gMapHeader
ldrh r1, [r0, 0x12]
diff --git a/asm/rom6.s b/asm/rom6.s
index 39c09c13a..b729369c8 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -167,7 +167,7 @@ sub_8135578: @ 8135578
cmp r4, 0
bne _081355FC
bl player_get_direction_lower_nybble
- ldr r6, =gFieldEffectSpawnParams
+ ldr r6, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r6, 0x4]
@@ -303,7 +303,7 @@ _081356AC:
sub_81356C4: @ 81356C4
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -380,7 +380,7 @@ hm2_dig: @ 8135760
movs r0, 0x26
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -3381,7 +3381,7 @@ hm2_flash: @ 8137178
lsls r4, 24
lsrs r4, 24
bl brm_get_pokemon_selection
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -4337,7 +4337,7 @@ sub_8137988: @ 8137988
.pool
_081379C8:
ldr r0, =0x0000089a
- bl FlagReset
+ bl FlagClear
_081379CE:
pop {r0}
bx r0
@@ -5030,7 +5030,7 @@ _08137F6E:
movs r1, 0
bl VarSet
movs r0, 0
- bl sav1_set_battle_music_maybe
+ bl Overworld_SetSavedMusic
_08137F7C:
pop {r4}
pop {r0}
@@ -5056,7 +5056,7 @@ sub_8137F90: @ 8137F90
sub_8137FB0: @ 8137FB0
push {lr}
ldr r0, =0x0000088d
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
.pool
@@ -6485,7 +6485,7 @@ sub_8138B8C: @ 8138B8C
movs r0, 0x13
movs r1, 0
movs r3, 0x6
- bl warp1_set
+ bl Overworld_SetWarpDestination
b _08138BC2
.pool
_08138BB0:
@@ -6496,7 +6496,7 @@ _08138BB0:
movs r0, 0x13
movs r1, 0x1
movs r3, 0x6
- bl warp1_set
+ bl Overworld_SetWarpDestination
_08138BC2:
add sp, 0x4
pop {r0}
@@ -6537,7 +6537,7 @@ _08138BF6:
thumb_func_start sub_8138C04
sub_8138C04: @ 8138C04
push {r4,lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7051,7 +7051,7 @@ sub_8138FEC: @ 8138FEC
ldr r1, =gSpecialVar_0x8004
ldr r0, =0x000001f5
strh r0, [r1]
- bl FlagReset
+ bl FlagClear
pop {r0}
bx r0
.pool
@@ -7060,7 +7060,7 @@ sub_8138FEC: @ 8138FEC
thumb_func_start sub_8139004
sub_8139004: @ 8139004
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7084,7 +7084,7 @@ _0813902A:
thumb_func_start sub_8139030
sub_8139030: @ 8139030
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7108,7 +7108,7 @@ _08139056:
thumb_func_start sub_813905C
sub_813905C: @ 813905C
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7132,7 +7132,7 @@ _08139082:
thumb_func_start sub_8139088
sub_8139088: @ 8139088
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7156,7 +7156,7 @@ _081390AE:
thumb_func_start sub_81390B4
sub_81390B4: @ 81390B4
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7295,7 +7295,7 @@ RemoveScriptFieldObject: @ 81391AC
thumb_func_start sub_81391D0
sub_81391D0: @ 81391D0
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7479,7 +7479,7 @@ _08139342:
thumb_func_start sub_8139348
sub_8139348: @ 8139348
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7507,7 +7507,7 @@ sub_8139370: @ 8139370
movs r1, 0x1
mov r0, sp
strb r1, [r0]
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7538,7 +7538,7 @@ _081393B6:
thumb_func_start sub_81393C8
sub_81393C8: @ 81393C8
push {lr}
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@@ -7858,7 +7858,7 @@ sub_8139648: @ 8139648
cmp r0, 0x1
beq _08139664
movs r0, 0x14
- bl sub_80AED7C
+ bl SetSav1Weather
_08139664:
pop {r0}
bx r0
@@ -7876,14 +7876,14 @@ sub_8139668: @ 8139668
cmp r0, 0x1
beq _08139684
movs r0, 0x15
- bl sub_80AED7C
+ bl SetSav1Weather
_08139684:
pop {r0}
bx r0
thumb_func_end sub_8139668
- thumb_func_start GetIdxOfFirstPartyMemberThatIsNotAnEgg
-GetIdxOfFirstPartyMemberThatIsNotAnEgg: @ 8139688
+ thumb_func_start GetLeadMonIndex
+GetLeadMonIndex: @ 8139688
push {r4-r6,lr}
bl CalculatePlayerPartyCount
lsls r0, 24
@@ -7926,7 +7926,7 @@ _081396D8:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end GetIdxOfFirstPartyMemberThatIsNotAnEgg
+ thumb_func_end GetLeadMonIndex
thumb_func_start sub_81396E0
sub_81396E0: @ 81396E0
@@ -11039,7 +11039,7 @@ _0813B0F8:
ldr r0, =sub_813B160
movs r1, 0x8
bl CreateTask
- ldr r3, =gFieldEffectSpawnParams
+ ldr r3, =gFieldEffectArguments
movs r0, 0x1
str r0, [r3]
movs r0, 0x3A
@@ -11074,7 +11074,7 @@ _0813B13A:
adds r0, r5, r0
ldrb r2, [r0]
movs r0, 0x1
- bl update_saveblock1_field_object_coords
+ bl Overworld_SetMapObjTemplateCoords
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -11238,7 +11238,7 @@ _0813B27E:
cmp r0, r4
beq _0813B2A6
ldr r0, =0x000008d7
- bl FlagReset
+ bl FlagClear
_0813B2A6:
ldr r0, =0x00004036
lsrs r1, r7, 16
@@ -11778,7 +11778,7 @@ _0813B728:
cmp r0, 0x2
bne _0813B790
ldr r0, =gUnknown_0824979B
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
b _0813B790
.pool
_0813B74C:
@@ -11787,7 +11787,7 @@ _0813B74C:
cmp r0, 0x3
bne _0813B790
ldr r0, =gUnknown_0824979B
- bl box_related_two__3
+ bl ShowFieldAutoScrollMessage
b _0813B790
.pool
_0813B764:
@@ -12075,7 +12075,7 @@ sub_813B9A0: @ 813B9A0
cmp r1, r0
bne _0813B9B6
movs r0, 0x3
- bl sub_8084D1C
+ bl Overworld_SetHealLocationWarp
_0813B9B6:
pop {r0}
bx r0
@@ -12187,16 +12187,16 @@ sub_813BA60: @ 813BA60
adds r1, r2
strh r0, [r1]
ldr r0, =0x00000315
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000316
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00000317
- bl FlagReset
+ bl FlagClear
movs r0, 0xC6
lsls r0, 2
- bl FlagReset
+ bl FlagClear
ldr r0, =0x000002da
- bl FlagReset
+ bl FlagClear
ldr r0, =0x00004095
movs r1, 0x1
bl VarSet
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
deleted file mode 100644
index e8a838010..000000000
--- a/asm/scrcmd.s
+++ /dev/null
@@ -1,5744 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start s00_nop
-s00_nop: @ 80992CC
- movs r0, 0
- bx lr
- thumb_func_end s00_nop
-
- thumb_func_start s01_nop
-s01_nop: @ 80992D0
- movs r0, 0
- bx lr
- thumb_func_end s01_nop
-
- thumb_func_start s02_end
-s02_end: @ 80992D4
- push {lr}
- bl StopScript
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s02_end
-
- thumb_func_start s24_execute_ASM_2
-s24_execute_ASM_2: @ 80992E0
- 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 s24_execute_ASM_2
-
- thumb_func_start s25_extended_cmd
-s25_extended_cmd: @ 80992F8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- ldr r1, =gUnknown_081DBA64
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s25_extended_cmd
-
- thumb_func_start s26_extended_cmd_setvar
-s26_extended_cmd_setvar: @ 8099318
- push {r4-r6,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r6, r0, 0
- ldr r4, =gUnknown_081DBA64
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 14
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- strh r0, [r6]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s26_extended_cmd_setvar
-
- thumb_func_start s23_execute_ASM
-s23_execute_ASM: @ 809934C
- push {lr}
- bl ScriptReadWord
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s23_execute_ASM
-
- thumb_func_start s27_set_to_waitstate
-s27_set_to_waitstate: @ 809935C
- push {lr}
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s27_set_to_waitstate
-
- thumb_func_start s05_goto
-s05_goto: @ 8099368
- 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 s05_goto
-
- thumb_func_start s03_return
-s03_return: @ 8099380
- push {lr}
- bl ScriptReturn
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s03_return
-
- thumb_func_start s04_call
-s04_call: @ 809938C
- 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 s04_call
-
- thumb_func_start s06_if_jump
-@ int s06_if_jump(script_env *env)
-s06_if_jump: @ 80993A4
- 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, =gUnknown_085102C0
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080993D2
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_080993D2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s06_if_jump
-
- thumb_func_start s07_if_call
-s07_if_call: @ 80993E0
- 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, =gUnknown_085102C0
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0809940E
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_0809940E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s07_if_call
-
- thumb_func_start sB8_set_virtual_address
-@ int sB8_set_virtual_address(script_env *env)
-sB8_set_virtual_address: @ 809941C
- push {r4,lr}
- ldr r4, [r0, 0x8]
- subs r4, 0x1
- bl ScriptReadWord
- ldr r1, =gUnknown_020375C4
- subs r0, r4
- str r0, [r1]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sB8_set_virtual_address
-
- thumb_func_start sB9_virtual_jump
-@ int sB9_virtual_jump(script_env *env)
-sB9_virtual_jump: @ 8099438
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, =gUnknown_020375C4
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptJump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sB9_virtual_jump
-
- thumb_func_start sBA_virtual_call
-sBA_virtual_call: @ 809945C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, =gUnknown_020375C4
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptCall
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBA_virtual_call
-
- thumb_func_start sBB_virtual_if_jump
-sBB_virtual_if_jump: @ 8099480
- 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, =gUnknown_020375C4
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, =gUnknown_085102C0
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080994B2
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_080994B2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBB_virtual_if_jump
-
- thumb_func_start sBC_virtual_if_call
-sBC_virtual_if_call: @ 80994C4
- 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, =gUnknown_020375C4
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, =gUnknown_085102C0
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080994F6
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_080994F6:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBC_virtual_if_call
-
- thumb_func_start s08_jumpstd
-s08_jumpstd: @ 8099508
- 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, =gUnknown_081DC2A0
- adds r1, r0
- ldr r0, =gUnknown_081DC2CC
- cmp r1, r0
- bcs _08099528
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptJump
-_08099528:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s08_jumpstd
-
- thumb_func_start s09_callstd
-s09_callstd: @ 8099538
- 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, =gUnknown_081DC2A0
- adds r1, r0
- ldr r0, =gUnknown_081DC2CC
- cmp r1, r0
- bcs _08099558
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptCall
-_08099558:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s09_callstd
-
- thumb_func_start s0A_jumpstd_if
-s0A_jumpstd_if: @ 8099568
- 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, =gUnknown_085102C0
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080995A0
- lsls r0, r4, 2
- ldr r1, =gUnknown_081DC2A0
- adds r1, r0, r1
- ldr r0, =gUnknown_081DC2CC
- cmp r1, r0
- bcs _080995A0
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptJump
-_080995A0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s0A_jumpstd_if
-
- thumb_func_start s0B_callstd_if
-s0B_callstd_if: @ 80995B4
- 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, =gUnknown_085102C0
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080995EC
- lsls r0, r4, 2
- ldr r1, =gUnknown_081DC2A0
- adds r1, r0, r1
- ldr r0, =gUnknown_081DC2CC
- cmp r1, r0
- bcs _080995EC
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptCall
-_080995EC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s0B_callstd_if
-
- thumb_func_start s0C_restore_execution_after_sCF
-s0C_restore_execution_after_sCF: @ 8099600
- push {lr}
- ldr r1, =gUnknown_020375C0
- ldr r1, [r1]
- bl ScriptJump
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s0C_restore_execution_after_sCF
-
- thumb_func_start s0D_endscript_killram
-s0D_endscript_killram: @ 8099614
- 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 s0D_endscript_killram
-
- thumb_func_start s0E_set_byte
-s0E_set_byte: @ 809962C
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_81538C4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s0E_set_byte
-
- thumb_func_start s0F_u32_var_to_const
-@ int s0F_u32_var_to_const(script_env *env)
-s0F_u32_var_to_const: @ 8099644
- 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 s0F_u32_var_to_const
-
- thumb_func_start s12_u32_var_to_ptr
-@ int s12_u32_var_to_ptr(script_env *env)
-s12_u32_var_to_ptr: @ 8099668
- 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 s12_u32_var_to_ptr
-
- thumb_func_start s11_u8_ptr_to_const
-@ int s11_u8_ptr_to_const(script_env *env)
-s11_u8_ptr_to_const: @ 809968C
- 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 s11_u8_ptr_to_const
-
- thumb_func_start s10_u8_var_to_const
-@ int s10_u8_var_to_const(script_env *env)
-s10_u8_var_to_const: @ 80996A4
- 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 s10_u8_var_to_const
-
- thumb_func_start s13_u8_var_to_ptr
-@ int s13_u8_var_to_ptr(script_env *env)
-s13_u8_var_to_ptr: @ 80996C0
- 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 s13_u8_var_to_ptr
-
- thumb_func_start s14_u32_var_to_var
-s14_u32_var_to_var: @ 80996E4
- 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 s14_u32_var_to_var
-
- thumb_func_start s15_u8_ptr_to_ptr
-s15_u8_ptr_to_ptr: @ 8099704
- 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 s15_u8_ptr_to_ptr
-
- thumb_func_start s16_u16_gvar_to_const
-s16_u16_gvar_to_const: @ 8099720
- 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 s16_u16_gvar_to_const
-
- thumb_func_start s19_u16_gvar_gvar
-s19_u16_gvar_gvar: @ 8099744
- 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 s19_u16_gvar_gvar
-
- thumb_func_start s1A_u16_gvar_gvar
-s1A_u16_gvar_gvar: @ 8099770
- 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 s1A_u16_gvar_gvar
-
- thumb_func_start compare_012
-compare_012: @ 809979C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, r1
- bcs _080997AE
- movs r0, 0
- b _080997B8
-_080997AE:
- cmp r0, r1
- beq _080997B6
- movs r0, 0x2
- b _080997B8
-_080997B6:
- movs r0, 0x1
-_080997B8:
- pop {r1}
- bx r1
- thumb_func_end compare_012
-
- thumb_func_start s1B_cmp_u8_var_var
-s1B_cmp_u8_var_var: @ 80997BC
- 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 s1B_cmp_u8_var_var
-
- thumb_func_start s1C_cmp_u8_var_const
-s1C_cmp_u8_var_const: @ 80997EC
- 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 s1C_cmp_u8_var_const
-
- thumb_func_start s1D_cmp_u8_var_ptr
-s1D_cmp_u8_var_ptr: @ 8099814
- 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 s1D_cmp_u8_var_ptr
-
- thumb_func_start s1E_cmp_u8_ptr_var
-s1E_cmp_u8_ptr_var: @ 8099840
- 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 s1E_cmp_u8_ptr_var
-
- thumb_func_start s1F_cmp_u8_ptr_const
-s1F_cmp_u8_ptr_const: @ 809986C
- 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 s1F_cmp_u8_ptr_const
-
- thumb_func_start s20_cmp_u8_ptr_ptr
-s20_cmp_u8_ptr_ptr: @ 809988C
- 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 s20_cmp_u8_ptr_ptr
-
- thumb_func_start s21_cmp_u16_gvar_const
-s21_cmp_u16_gvar_const: @ 80998B0
- 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 s21_cmp_u16_gvar_const
-
- thumb_func_start s22_cmp_u16_gvar_gvar
-s22_cmp_u16_gvar_gvar: @ 80998E0
- 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 s22_cmp_u16_gvar_gvar
-
- thumb_func_start s17_u16_gvar_add_const
-s17_u16_gvar_add_const: @ 8099914
- 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 s17_u16_gvar_add_const
-
- thumb_func_start sub_809993C
-sub_809993C: @ 809993C
- 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 sub_809993C
-
- thumb_func_start s8F_get_random_val
-s8F_get_random_val: @ 809996C
- 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, =gScriptResult
- 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
- .pool
- thumb_func_end s8F_get_random_val
-
- thumb_func_start sub_80999A0
-sub_80999A0: @ 80999A0
- 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, =gScriptResult
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80999A0
-
- thumb_func_start sub_80999E4
-sub_80999E4: @ 80999E4
- 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, =gScriptResult
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl RemoveBagItem
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80999E4
-
- thumb_func_start sub_8099A28
-sub_8099A28: @ 8099A28
- 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, =gScriptResult
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl CheckBagHasSpace
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099A28
-
- thumb_func_start sub_8099A6C
-sub_8099A6C: @ 8099A6C
- 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, =gScriptResult
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099A6C
-
- thumb_func_start s48_get_item_type
-s48_get_item_type: @ 8099AB0
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gScriptResult
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s48_get_item_type
-
- thumb_func_start sub_8099ADC
-sub_8099ADC: @ 8099ADC
- 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, =gScriptResult
- adds r0, r4, 0
- bl sub_80D6D70
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099ADC
-
- thumb_func_start sub_8099B20
-sub_8099B20: @ 8099B20
- 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, =gScriptResult
- adds r0, r4, 0
- bl sub_80D6D1C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099B20
-
- thumb_func_start sub_8099B64
-sub_8099B64: @ 8099B64
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl DecorationAdd
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099B64
-
- thumb_func_start sub_8099B90
-sub_8099B90: @ 8099B90
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl DecorationRemove
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099B90
-
- thumb_func_start sub_8099BBC
-sub_8099BBC: @ 8099BBC
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl DecorationCheckSpace
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099BBC
-
- thumb_func_start sub_8099BE8
-sub_8099BE8: @ 8099BE8
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl sub_8161918
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099BE8
-
- thumb_func_start s29_flag_set
-@ int s29_flag_set(script_env *env)
-s29_flag_set: @ 8099C14
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s29_flag_set
-
- thumb_func_start s2A_flag_clear
-@ int s2A_flag_clear(script_env *env)
-s2A_flag_clear: @ 8099C28
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagReset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2A_flag_clear
-
- thumb_func_start s2B_flag_check
-@ int s2B_flag_check(script_env *env)
-s2B_flag_check: @ 8099C3C
- 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 s2B_flag_check
-
- thumb_func_start sC3_unknown
-@ int sC3_unknown(script_env *env)
-sC3_unknown: @ 8099C58
- 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 sC3_unknown
-
- thumb_func_start s9A_unknown
-@ int s9A_unknown(script_env *env)
-s9A_unknown: @ 8099C70
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_80B009C
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s9A_unknown
-
- thumb_func_start s99_unknown
-@ int s99_unknown(script_env *env)
-s99_unknown: @ 8099C8C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_80854EC
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s99_unknown
-
- thumb_func_start sub_8099CA8
-sub_8099CA8: @ 8099CA8
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08099CC0
- movs r0, 0
- b _08099CC2
- .pool
-_08099CC0:
- movs r0, 0x1
-_08099CC2:
- pop {r1}
- bx r1
- thumb_func_end sub_8099CA8
-
- thumb_func_start s97_screen_special_effect
-@ int s97_screen_special_effect(script_env *env)
-s97_screen_special_effect: @ 8099CC8
- 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, =sub_8099CA8
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s97_screen_special_effect
-
- thumb_func_start s98_refade_with_timer
-@ int s98_refade_with_timer(script_env *env)
-s98_refade_with_timer: @ 8099CF0
- 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, =sub_8099CA8
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s98_refade_with_timer
-
- thumb_func_start sub_8099D20
-@ int sub_8099D20(script_env *env)
-sub_8099D20: @ 8099D20
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- cmp r4, 0x1
- beq _08099D3E
- cmp r4, 0x1
- bgt _08099D3A
- cmp r4, 0
- beq _08099D60
- b _08099D3E
-_08099D3A:
- cmp r4, 0x2
- beq _08099D60
-_08099D3E:
- ldr r0, =gPlttBufferUnfaded
- ldr r1, =gPaletteDecompressionBuffer
- ldr r2, =0x04000100
- bl CpuSet
- adds r0, r4, 0
- movs r1, 0
- bl fade_screen
- b _08099D72
- .pool
-_08099D60:
- ldr r0, =gPaletteDecompressionBuffer
- ldr r1, =gPlttBufferUnfaded
- ldr r2, =0x04000100
- bl CpuSet
- adds r0, r4, 0
- movs r1, 0
- bl fade_screen
-_08099D72:
- ldr r1, =sub_8099CA8
- adds r0, r5, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8099D20
-
- thumb_func_start s28_pause_asm
-s28_pause_asm: @ 8099D94
- push {lr}
- ldr r1, =gUnknown_020375C8
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _08099DAC
- movs r0, 0
- b _08099DAE
- .pool
-_08099DAC:
- movs r0, 0x1
-_08099DAE:
- pop {r1}
- bx r1
- thumb_func_end s28_pause_asm
-
- thumb_func_start s28_pause
-@ int s28_pause(script_env *env)
-s28_pause: @ 8099DB4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- ldr r1, =gUnknown_020375C8
- strh r0, [r1]
- ldr r1, =s28_pause_asm
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s28_pause
-
- thumb_func_start s2C_unknown
-@ int s2C_unknown(script_env *env)
-s2C_unknown: @ 8099DD8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- 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 RtcInitLocalTimeOffset
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s2C_unknown
-
- thumb_func_start s2D_unknown
-@ int s2D_unknown(script_env *env)
-s2D_unknown: @ 8099E10
- push {lr}
- bl sub_809E7B0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2D_unknown
-
- thumb_func_start s2E_unknown
-@ int s2E_unknown(script_env *env)
-s2E_unknown: @ 8099E1C
- push {lr}
- bl RtcCalcLocalTime
- ldr r2, =gSpecialVar_0x8000
- ldr r1, =gLocalTime
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- ldr r2, =gSpecialVar_0x8001
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- ldr r2, =gSpecialVar_0x8002
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s2E_unknown
-
- thumb_func_start sA4_set_weather_data
-@ int sA4_set_weather_data(script_env *env)
-sA4_set_weather_data: @ 8099E54
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_80AED7C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA4_set_weather_data
-
- thumb_func_start sA3_set_standard_weather_data
-@ int sA3_set_standard_weather_data(script_env *env)
-sA3_set_standard_weather_data: @ 8099E70
- push {lr}
- bl sub_80AEDBC
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA3_set_standard_weather_data
-
- thumb_func_start sub_8099E7C
-@ int sub_8099E7C(script_env *env)
-sub_8099E7C: @ 8099E7C
- push {lr}
- bl sub_80AEE20
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8099E7C
-
- thumb_func_start sA6_activate_per_step_callback_eg_ash
-@ int sA6_activate_per_step_callback_eg_ash(script_env *env)
-sA6_activate_per_step_callback_eg_ash: @ 8099E88
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl activate_per_step_callback
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA6_activate_per_step_callback_eg_ash
-
- thumb_func_start sA7_set_new_map_footer
-@ int sA7_set_new_map_footer(script_env *env)
-sA7_set_new_map_footer: @ 8099EA0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8085524
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA7_set_new_map_footer
-
- thumb_func_start s39_warp_sfx
-@ int s39_warp_sfx(script_env *env)
-s39_warp_sfx: @ 8099EBC
- 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 warp1_set
- bl sub_80AF734
- bl player_avatar_init_params_reset
- 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 s39_warp_sfx
-
- thumb_func_start s3A_warp_new_music
-@ int s3A_warp_new_music(script_env *env)
-s3A_warp_new_music: @ 8099F44
- 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 warp1_set
- bl sp13E_warp_to_last_warp
- bl player_avatar_init_params_reset
- 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 s3A_warp_new_music
-
- thumb_func_start s3B_warp_keep_music
-@ int s3B_warp_keep_music(script_env *env)
-s3B_warp_keep_music: @ 8099FCC
- 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 warp1_set
- bl sub_80AF7D0
- bl player_avatar_init_params_reset
- 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 s3B_warp_keep_music
-
- thumb_func_start sub_809A054
-sub_809A054: @ 809A054
- 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 _0809A092
- cmp r5, 0xFF
- bne _0809A092
- 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_8084EBC
- b _0809A0B6
-_0809A092:
- 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 warp1_set
-_0809A0B6:
- bl sp13F_fall_to_last_warp
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809A054
-
- thumb_func_start s3D_warp_v4
-s3D_warp_v4: @ 809A0C8
- 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 warp1_set
- bl sub_80AF848
- bl player_avatar_init_params_reset
- 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 s3D_warp_v4
-
- thumb_func_start sub_809A150
-sub_809A150: @ 809A150
- 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 warp1_set
- bl sub_80AF87C
- bl player_avatar_init_params_reset
- 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_809A150
-
- thumb_func_start s3E_set_new_map
-s3E_set_new_map: @ 809A1D8
- 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 warp1_set
- 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 s3E_set_new_map
-
- thumb_func_start s3F_set_new_map_DMA
-s3F_set_new_map_DMA: @ 809A258
- 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 s3F_set_new_map_DMA
-
- thumb_func_start sub_809A2DC
-sub_809A2DC: @ 809A2DC
- 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_8084E2C
- 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_809A2DC
-
- thumb_func_start sub_809A35C
-sub_809A35C: @ 809A35C
- 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_8084E80
- 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_809A35C
-
- thumb_func_start sC4_unknown
-sC4_unknown: @ 809A3DC
- 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_8084DD4
- 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 sC4_unknown
-
- thumb_func_start s42_get_map_camera_pos
-@ int s42_get_map_camera_pos(script_env *env)
-s42_get_map_camera_pos: @ 809A45C
- 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, =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
- .pool
- thumb_func_end s42_get_map_camera_pos
-
- thumb_func_start s43_get_player_party_count
-s43_get_player_party_count: @ 809A498
- push {r4,lr}
- ldr r4, =gScriptResult
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s43_get_player_party_count
-
- thumb_func_start s2F_music_play
-s2F_music_play: @ 809A4B4
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2F_music_play
-
- thumb_func_start s30_music_check_asm
-s30_music_check_asm: @ 809A4C8
- push {lr}
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0809A4D8
- movs r0, 0
- b _0809A4DA
-_0809A4D8:
- movs r0, 0x1
-_0809A4DA:
- pop {r1}
- bx r1
- thumb_func_end s30_music_check_asm
-
- thumb_func_start s30_music_check
-s30_music_check: @ 809A4E0
- push {lr}
- ldr r1, =s30_music_check_asm
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end s30_music_check
-
- thumb_func_start s31_PlayFanfare
-s31_PlayFanfare: @ 809A4F4
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlayFanfare
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s31_PlayFanfare
-
- thumb_func_start s32_fanfare_wait_asm
-s32_fanfare_wait_asm: @ 809A508
- push {lr}
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end s32_fanfare_wait_asm
-
- thumb_func_start s32_fanfare_wait
-s32_fanfare_wait: @ 809A518
- push {lr}
- ldr r1, =s32_fanfare_wait_asm
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end s32_fanfare_wait
-
- thumb_func_start s33_play_music
-@ int s33_play_music(script_env *env)
-s33_play_music: @ 809A52C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r2, r0, 16
- adds r5, r2, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0x1
- bne _0809A54C
- adds r0, r2, 0
- bl sav1_set_battle_music_maybe
-_0809A54C:
- adds r0, r5, 0
- bl PlayNewMapMusic
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s33_play_music
-
- thumb_func_start s34_unknown
-s34_unknown: @ 809A55C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl sav1_set_battle_music_maybe
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s34_unknown
-
- thumb_func_start s35_fade_to_default
-s35_fade_to_default: @ 809A570
- push {lr}
- bl sub_8085898
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s35_fade_to_default
-
- thumb_func_start s36_fade_to_music
-s36_fade_to_music: @ 809A57C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl sub_80858C4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s36_fade_to_music
-
- thumb_func_start s37_fadeout
-s37_fadeout: @ 809A590
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- beq _0809A5AA
- lsls r0, r1, 26
- lsrs r0, 24
- bl FadeOutBGMTemporarily
- b _0809A5B0
-_0809A5AA:
- movs r0, 0x4
- bl FadeOutBGMTemporarily
-_0809A5B0:
- ldr r1, =IsBGMPausedOrStopped
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s37_fadeout
-
- thumb_func_start s38_fadein
-s38_fadein: @ 809A5C4
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- cmp r2, 0
- beq _0809A5DC
- lsls r0, r2, 26
- lsrs r0, 24
- bl FadeInBGM
- b _0809A5E2
-_0809A5DC:
- movs r0, 0x4
- bl FadeInBGM
-_0809A5E2:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s38_fadein
-
- thumb_func_start s4F_execute_movement
-s4F_execute_movement: @ 809A5E8
- 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, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl exec_movement
- ldr r0, =gUnknown_020375CA
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s4F_execute_movement
-
- thumb_func_start s50_execute_movement_remote
-s50_execute_movement_remote: @ 809A62C
- 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 exec_movement
- ldr r0, =gUnknown_020375CA
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s50_execute_movement_remote
-
- thumb_func_start s51a_0806B288
-s51a_0806B288: @ 809A670
- push {lr}
- ldr r0, =gUnknown_020375CA
- ldrb r0, [r0]
- ldr r1, =gUnknown_020375CE
- ldrb r1, [r1]
- ldr r2, =gUnknown_020375CC
- ldrb r2, [r2]
- bl sub_80D3340
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end s51a_0806B288
-
- thumb_func_start s51_waitmove
-s51_waitmove: @ 809A698
- 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 _0809A6B4
- ldr r0, =gUnknown_020375CA
- strh r1, [r0]
-_0809A6B4:
- ldr r1, =gUnknown_020375CC
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, =gUnknown_020375CE
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, =s51a_0806B288
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s51_waitmove
-
- thumb_func_start s52_waitmove_remote
-s52_waitmove_remote: @ 809A6EC
- 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 _0809A708
- ldr r0, =gUnknown_020375CA
- strh r1, [r0]
-_0809A708:
- 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, =gUnknown_020375CC
- strh r2, [r0]
- ldr r0, =gUnknown_020375CE
- strh r1, [r0]
- ldr r1, =s51a_0806B288
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s52_waitmove_remote
-
- thumb_func_start s53_hide_sprite
-s53_hide_sprite: @ 809A740
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s53_hide_sprite
-
- thumb_func_start s54_hide_sprite_set_coords
-s54_hide_sprite_set_coords: @ 809A768
- 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 s54_hide_sprite_set_coords
-
- thumb_func_start s55_show_sprite
-s55_show_sprite: @ 809A798
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s55_show_sprite
-
- thumb_func_start s56_show_sprite_set_coords
-s56_show_sprite_set_coords: @ 809A7C0
- 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 s56_show_sprite_set_coords
-
- thumb_func_start s57_move_sprites
-s57_move_sprites: @ 809A7F0
- 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, =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_808EBA8
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s57_move_sprites
-
- thumb_func_start s63_new_sprite_location_permanent
-s63_new_sprite_location_permanent: @ 809A858
- 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 update_saveblock1_field_object_coords
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s63_new_sprite_location_permanent
-
- thumb_func_start s64_set_sprite_top_left_corner
-s64_set_sprite_top_left_corner: @ 809A8B0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_808F254
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s64_set_sprite_top_left_corner
-
- thumb_func_start s58_npc_f1_clear_x20
-s58_npc_f1_clear_x20: @ 809A8D8
- 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 s58_npc_f1_clear_x20
-
- thumb_func_start s59_npc_f1_set_x20
-s59_npc_f1_set_x20: @ 809A908
- 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 s59_npc_f1_set_x20
-
- thumb_func_start sA8_unknown
-sA8_unknown: @ 809A938
- 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_808E78C
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sA8_unknown
-
- thumb_func_start sA9_unknown
-sA9_unknown: @ 809A974
- 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_808E7E4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sA9_unknown
-
- thumb_func_start s5A_face_player
-s5A_face_player: @ 809A9A4
- push {r4,lr}
- ldr r2, =gMapObjects
- ldr r0, =gSelectedMapObject
- 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 _0809A9CC
- bl player_get_direction_lower_nybble
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectFaceOppositeDirection
-_0809A9CC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s5A_face_player
-
- thumb_func_start s5B_npc_set_direction
-s5B_npc_set_direction: @ 809A9DC
- 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, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl FieldObjectTurnByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s5B_npc_set_direction
-
- thumb_func_start s65_set_sprite_behaviour
-s65_set_sprite_behaviour: @ 809AA10
- 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 update_saveblock1_field_object_movement_behavior
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s65_set_sprite_behaviour
-
- thumb_func_start sAA_create_new_sprite
-sAA_create_new_sprite: @ 809AA38
- 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 sprite_new
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sAA_create_new_sprite
-
- thumb_func_start sAB_unknown
-sAB_unknown: @ 809AAA8
- 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_8097B78
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sAB_unknown
-
- thumb_func_start sub_809AAC4
-sub_809AAC4: @ 809AAC4
- push {r4,lr}
- adds r4, r0, 0
- bl is_c1_link_related_active
- cmp r0, 0
- bne _0809AAE4
- bl sub_80983E8
- ldr r1, =sub_80983C4
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0809AAE6
- .pool
-_0809AAE4:
- movs r0, 0
-_0809AAE6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AAC4
-
- thumb_func_start sub_809AAEC
-sub_809AAEC: @ 809AAEC
- push {r4,lr}
- adds r4, r0, 0
- bl is_c1_link_related_active
- cmp r0, 0
- beq _0809AAFC
- movs r0, 0
- b _0809AB3A
-_0809AAFC:
- ldr r2, =gMapObjects
- ldr r0, =gSelectedMapObject
- 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 _0809AB2C
- bl sub_80984A0
- ldr r1, =sub_809847C
- adds r0, r4, 0
- bl SetupNativeScript
- b _0809AB38
- .pool
-_0809AB2C:
- bl sub_80983E8
- ldr r1, =sub_80983C4
- adds r0, r4, 0
- bl SetupNativeScript
-_0809AB38:
- movs r0, 0x1
-_0809AB3A:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809AAEC
-
- thumb_func_start s6B_release
-s6B_release: @ 809AB44
- push {lr}
- bl textbox_close
- 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, =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80D338C
- bl sub_809757C
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s6B_release
-
- thumb_func_start s6C_release_2
-s6C_release_2: @ 809AB7C
- push {r4,lr}
- bl textbox_close
- ldr r4, =gMapObjects
- ldr r0, =gSelectedMapObject
- 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 _0809AB9E
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
-_0809AB9E:
- 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_80D338C
- bl sub_809757C
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s6C_release_2
-
- thumb_func_start s67_execute_box
-s67_execute_box: @ 809ABD4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0809ABE2
- ldr r0, [r4, 0x64]
-_0809ABE2:
- bl ShowFieldMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s67_execute_box
-
- thumb_func_start sub_809ABF0
-sub_809ABF0: @ 809ABF0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0809ABFE
- ldr r0, [r4, 0x64]
-_0809ABFE:
- bl sub_8098238
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809ABF0
-
- thumb_func_start s9B_unknown
-s9B_unknown: @ 809AC0C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r3, r0, 0
- cmp r3, 0
- bne _0809AC1C
- ldr r3, [r4, 0x64]
-_0809AC1C:
- ldr r2, =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- bl box_related_two__3
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s9B_unknown
-
- thumb_func_start sub_809AC3C
-sub_809AC3C: @ 809AC3C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- bl ScriptReadWord
- adds r4, r0, 0
- cmp r4, 0
- bne _0809AC4E
- ldr r4, [r5, 0x64]
-_0809AC4E:
- bl sub_81973A4
- movs r0, 0
- movs r1, 0x1
- bl sub_81973C4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl PrintTextOnWindow
- movs r0, 0
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809AC3C
-
- thumb_func_start sub_809AC78
-sub_809AC78: @ 809AC78
- push {lr}
- ldr r1, =sub_809833C
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809AC78
-
- thumb_func_start s68_close_box
-s68_close_box: @ 809AC8C
- push {lr}
- bl textbox_close
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s68_close_box
-
- thumb_func_start sub_809AC98
-sub_809AC98: @ 809AC98
- push {lr}
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809ACB8
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0809ACB8
- movs r0, 0
- b _0809ACBA
- .pool
-_0809ACB8:
- movs r0, 0x1
-_0809ACBA:
- pop {r1}
- bx r1
- thumb_func_end sub_809AC98
-
- thumb_func_start sub_809ACC0
-sub_809ACC0: @ 809ACC0
- push {lr}
- ldr r1, =sub_809AC98
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809ACC0
-
- thumb_func_start s6E_yes_no
-s6E_yes_no: @ 809ACD4
- 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 yes_no_box
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809ACF6
- movs r0, 0
- b _0809ACFC
-_0809ACF6:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0809ACFC:
- pop {r1}
- bx r1
- thumb_func_end s6E_yes_no
-
- thumb_func_start s6F_multichoice
-s6F_multichoice: @ 809AD00
- 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 Multichoice
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809AD2E
- movs r0, 0
- b _0809AD34
-_0809AD2E:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0809AD34:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s6F_multichoice
-
- thumb_func_start sub_809AD3C
-sub_809AD3C: @ 809AD3C
- 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_80E1E58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809AD7A
- movs r0, 0
- b _0809AD80
-_0809AD7A:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0809AD80:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809AD3C
-
- thumb_func_start sub_809AD8C
-sub_809AD8C: @ 809AD8C
- movs r0, 0
- bx lr
- thumb_func_end sub_809AD8C
-
- thumb_func_start sub_809AD90
-sub_809AD90: @ 809AD90
- 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_80E21D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809ADCE
- movs r0, 0
- b _0809ADD4
-_0809ADCE:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0809ADD4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809AD90
-
- thumb_func_start s73_nop_skip_word
-s73_nop_skip_word: @ 809ADE0
- ldr r1, [r0, 0x8]
- adds r1, 0x4
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end s73_nop_skip_word
-
- thumb_func_start sub_809ADEC
-sub_809ADEC: @ 809ADEC
- ldr r1, [r0, 0x8]
- adds r1, 0x4
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_809ADEC
-
- thumb_func_start sub_809ADF8
-sub_809ADF8: @ 809ADF8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl sub_80E2900
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809ADF8
-
- thumb_func_start s76_close_picture_box
-s76_close_picture_box: @ 809AE28
- push {r4,lr}
- adds r4, r0, 0
- bl picbox_close
- adds r1, r0, 0
- cmp r1, 0
- beq _0809AE40
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0809AE42
-_0809AE40:
- movs r0, 0
-_0809AE42:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s76_close_picture_box
-
- thumb_func_start sub_809AE48
-sub_809AE48: @ 809AE48
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- cmp r2, 0
- beq _0809AE5C
- adds r0, r2, 0
- bl sub_812FDA8
-_0809AE5C:
- bl sub_80F8ADC
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809AE48
-
- thumb_func_start sub_809AE6C
-sub_809AE6C: @ 809AE6C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r4, =gStringVar4
- adds r1, 0x6
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x6
- adds r1, r4, 0
- bl GetStringWidth
- lsrs r0, 3
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1C
- bls _0809AE9C
- movs r7, 0x1C
-_0809AE9C:
- movs r5, 0x4
- ldrb r0, [r4]
- adds r2, r7, 0x2
- add r1, sp, 0x18
- mov r8, r1
- cmp r0, 0xFF
- beq _0809AEC0
- adds r1, r4, 0
-_0809AEAC:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFE
- bne _0809AEBA
- adds r0, r5, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
-_0809AEBA:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0809AEAC
-_0809AEC0:
- cmp r5, 0x12
- bls _0809AEC6
- movs r5, 0x12
-_0809AEC6:
- lsls r0, r2, 24
- lsrs r0, 24
- movs r2, 0x1E
- subs r2, r0
- lsrs r0, r2, 31
- adds r2, r0
- asrs r2, 1
- lsls r2, 24
- adds r0, r5, 0x2
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x14
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r4, 1
- lsls r4, 24
- lsrs r6, r2, 24
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- lsrs r2, 24
- lsrs r3, r4, 24
- movs r1, 0x80
- lsls r1, 18
- adds r4, r1
- lsrs r4, 24
- subs r6, r2, r6
- subs r6, 0x1
- lsls r6, 3
- adds r6, 0x3
- lsls r6, 24
- lsrs r6, 24
- subs r4, r3
- subs r4, 0x1
- lsls r4, 27
- lsrs r4, 24
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- str r5, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- bl sub_8198A50
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r5, =gUnknown_03000F30
- mov r0, r8
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0x85
- lsls r1, 2
- movs r2, 0xE0
- bl sub_809882C
- ldrb r0, [r5]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r5]
- ldr r2, =gStringVar4
- str r4, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x6
- adds r3, r6, 0
- bl PrintTextOnWindow
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809AE6C
-
- thumb_func_start sub_809AF94
-sub_809AF94: @ 809AF94
- push {lr}
- bl sub_809BDB4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_809AF94
-
- thumb_func_start sBD_virtual_message
-sBD_virtual_message: @ 809AFA0
- push {lr}
- bl ScriptReadWord
- ldr r1, =gUnknown_020375C4
- ldr r1, [r1]
- subs r0, r1
- bl ShowFieldMessage
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBD_virtual_message
-
- thumb_func_start s7D_load_pokename
-s7D_load_pokename: @ 809AFBC
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s7D_load_pokename
-
- thumb_func_start s7E_load_first_pokenames
-s7E_load_first_pokenames: @ 809AFFC
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, =gUnknown_085102D4
- lsls r2, 2
- adds r2, r0
- ldr r4, [r2]
- bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s7E_load_first_pokenames
-
- thumb_func_start s7F_load_pokename_team
-s7F_load_pokename_team: @ 809B048
- 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, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_085102D4
- 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
- .pool
- thumb_func_end s7F_load_pokename_team
-
- thumb_func_start s80_load_item_name
-s80_load_item_name: @ 809B090
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl CopyItemName
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s80_load_item_name
-
- thumb_func_start sub_809B0C4
-sub_809B0C4: @ 809B0C4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr 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 r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r0, =gUnknown_085102D4
- lsls r6, 2
- adds r6, r0
- ldr r1, [r6]
- adds r0, r4, 0
- bl CopyItemNameHandlePlural
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B0C4
-
- thumb_func_start sub_809B114
-sub_809B114: @ 809B114
- 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
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsrs r1, 11
- ldr r2, =gDecorations + 1
- adds r1, r2
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B114
-
- thumb_func_start s82_load_item_name
-s82_load_item_name: @ 809B150
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s82_load_item_name
-
- thumb_func_start s83_load_textvar_var
-s83_load_textvar_var: @ 809B190
- 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_80EF370
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_085102D4
- 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
- .pool
- thumb_func_end s83_load_textvar_var
-
- thumb_func_start s84_load_textvar_std_expression
-s84_load_textvar_std_expression: @ 809B1D4
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- ldr r1, =gUnknown_0858BAF0
- lsrs r0, 14
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s84_load_textvar_std_expression
-
- thumb_func_start sub_809B214
-sub_809B214: @ 809B214
- 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
- adds r1, r0, 0
- ldr r0, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsls r1, 24
- lsrs r1, 24
- bl sub_818E868
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B214
-
- thumb_func_start s85_load_textvar_pointer
-s85_load_textvar_pointer: @ 809B248
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s85_load_textvar_pointer
-
- thumb_func_start sBE_virtual_load_text
-sBE_virtual_load_text: @ 809B270
- push {lr}
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, =gUnknown_020375C4
- ldr r0, [r0]
- subs r1, r0
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBE_virtual_load_text
-
- thumb_func_start sBF_virtual_load_textbuffer
-sBF_virtual_load_textbuffer: @ 809B294
- 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, =gUnknown_020375C4
- ldr r0, [r0]
- subs r1, r0
- ldr r0, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sBF_virtual_load_textbuffer
-
- thumb_func_start sC6_load_textvar_box_label
-sC6_load_textvar_box_label: @ 809B2C8
- 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, =gUnknown_085102D4
- 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
- .pool
- thumb_func_end sC6_load_textvar_box_label
-
- thumb_func_start s79_give_pokemon
-s79_give_pokemon: @ 809B304
- 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, =gScriptResult
- str r0, [sp]
- str r2, [sp, 0x4]
- adds r0, r6, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_80F9244
- 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
- .pool
- thumb_func_end s79_give_pokemon
-
- thumb_func_start s7A_create_egg
-s7A_create_egg: @ 809B384
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gScriptResult
- bl sub_80F92C8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s7A_create_egg
-
- thumb_func_start s7B_change_pokedata_AP
-s7B_change_pokedata_AP: @ 809B3B0
- 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 sub_80F9400
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s7B_change_pokedata_AP
-
- thumb_func_start sub_809B3DC
-sub_809B3DC: @ 809B3DC
- push {r4-r7,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, =gScriptResult
- movs r0, 0x6
- strh r0, [r1]
- movs r6, 0
- b _0809B42A
- .pool
-_0809B3F4:
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809B424
- adds r0, r4, 0
- adds r1, r7, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809B424
- ldr r0, =gScriptResult
- strh r6, [r0]
- ldr r0, =gSpecialVar_0x8004
- strh r5, [r0]
- b _0809B44A
- .pool
-_0809B424:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0809B42A:
- cmp r6, 0x5
- bhi _0809B44A
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, =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 _0809B3F4
-_0809B44A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B3DC
-
- thumb_func_start s90_AddMoney
-@ int s90_AddMoney(script_env *env)
-s90_AddMoney: @ 809B458
- 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 _0809B47E
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- bl AddMoney
-_0809B47E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s90_AddMoney
-
- thumb_func_start s91_SubtractMoney
-@ int s91_SubtractMoney(script_env *env)
-s91_SubtractMoney: @ 809B48C
- 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 _0809B4B2
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- bl SubtractMoney
-_0809B4B2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s91_SubtractMoney
-
- thumb_func_start s92_check_money
-@ int s92_check_money(script_env *env)
-s92_check_money: @ 809B4C0
- 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 _0809B4EE
- ldr r4, =gScriptResult
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_0809B4EE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s92_check_money
-
- thumb_func_start s93_display_money
-@ int s93_display_money(script_env *env)
-s93_display_money: @ 809B500
- 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 _0809B530
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl GetMoney
- adds r1, r5, 0
- adds r2, r4, 0
- bl DrawMoneyBox
-_0809B530:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s93_display_money
-
- thumb_func_start s94_hide_money
-s94_hide_money: @ 809B53C
- push {lr}
- bl HideMoneyBox
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s94_hide_money
-
- thumb_func_start s95_update_money
-@ int s95_update_money(script_env *env)
-s95_update_money: @ 809B548
- 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 _0809B56E
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl GetMoney
- bl ChangeAmountInMoneyBox
-_0809B56E:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s95_update_money
-
- thumb_func_start sub_809B578
-sub_809B578: @ 809B578
- 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 GetCoins
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- adds r2, r4, 0
- bl ShowCoinsWindow
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B578
-
- thumb_func_start sC1_hide_coins
-sC1_hide_coins: @ 809B5A0
- 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 sC1_hide_coins
-
- thumb_func_start sC2_update_coins
-sC2_update_coins: @ 809B5B4
- 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 sC2_update_coins
-
- thumb_func_start s5C_trainer_battle_configure_and_start
-s5C_trainer_battle_configure_and_start: @ 809B5D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- bl TrainerBattleConfigure
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s5C_trainer_battle_configure_and_start
-
- thumb_func_start sub_809B5E4
-sub_809B5E4: @ 809B5E4
- push {lr}
- bl sub_80B17E0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809B5E4
-
- thumb_func_start sub_809B5F0
-sub_809B5F0: @ 809B5F0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B1AF8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809B5F0
-
- thumb_func_start sub_809B604
-@ bool8 sub_809B604(struct script_env *env)
-sub_809B604: @ 809B604
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B1B10
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809B604
-
- thumb_func_start s60_check_trainer_flag
-s60_check_trainer_flag: @ 809B618
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_check
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s60_check_trainer_flag
-
- thumb_func_start s61_set_trainer_flag
-s61_set_trainer_flag: @ 809B63C
- 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 s61_set_trainer_flag
-
- thumb_func_start s62_unset_trainer_flag
-s62_unset_trainer_flag: @ 809B658
- 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 s62_unset_trainer_flag
-
- thumb_func_start sB6_load_battle
-sB6_load_battle: @ 809B674
- 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 sub_80F93A0
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sB6_load_battle
-
- thumb_func_start sub_809B6A8
-sub_809B6A8: @ 809B6A8
- push {lr}
- bl sub_80B08A8
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809B6A8
-
- thumb_func_start s86_pokemart
-s86_pokemart: @ 809B6B8
- push {lr}
- bl ScriptReadWord
- bl CreatePokemartMenu
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s86_pokemart
-
- thumb_func_start s87_pokemartdecor
-s87_pokemartdecor: @ 809B6CC
- push {lr}
- bl ScriptReadWord
- bl CreateDecorationShop1Menu
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s87_pokemartdecor
-
- thumb_func_start s88_pokemartbp
-s88_pokemartbp: @ 809B6E0
- push {lr}
- bl ScriptReadWord
- bl CreateDecorationShop2Menu
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s88_pokemartbp
-
- thumb_func_start s89_open_casino_game1
-s89_open_casino_game1: @ 809B6F4
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl sub_812A540
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end s89_open_casino_game1
-
- thumb_func_start berry_script_cmd
-@ bool8 berry_script_cmd(struct script_env *env)
-berry_script_cmd: @ 809B71C
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r4, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r3, 0
- bne _0809B744
- adds r0, r5, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
- b _0809B750
-_0809B744:
- adds r0, r5, 0
- adds r1, r3, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
-_0809B750:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end berry_script_cmd
-
- thumb_func_start sub_809B758
-sub_809B758: @ 809B758
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl GetPriceReduction
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B758
-
- thumb_func_start sub_809B784
-sub_809B784: @ 809B784
- push {lr}
- bl sub_81B9404
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809B784
-
- thumb_func_start sub_809B794
-sub_809B794: @ 809B794
- push {lr}
- bl sub_80F840C
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809B794
-
- thumb_func_start sub_809B7A4
-sub_809B7A4: @ 809B7A4
- push {lr}
- bl sub_80F8484
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_809B7A4
-
- thumb_func_start sub_809B7B4
-sub_809B7B4: @ 809B7B4
- push {lr}
- ldr r0, =gUnknown_02039F2C
- ldrb r0, [r0]
- bl sub_80F84C4
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B7B4
-
- thumb_func_start s9C_execute_HM
-s9C_execute_HM: @ 809B7CC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gUnknown_020375D0
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl FieldEffectStart
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end s9C_execute_HM
-
- thumb_func_start s9D_set_HM_animation_data
-s9D_set_HM_animation_data: @ 809B7F4
- 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, =gFieldEffectSpawnParams
- lsls r4, 2
- adds r4, r1
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s9D_set_HM_animation_data
-
- thumb_func_start sub_809B824
-sub_809B824: @ 809B824
- push {lr}
- ldr r0, =gUnknown_020375D0
- ldrb r0, [r0]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _0809B83C
- movs r0, 0
- b _0809B83E
- .pool
-_0809B83C:
- movs r0, 0x1
-_0809B83E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B824
-
- thumb_func_start s9E_checkarray_HM_animation
-s9E_checkarray_HM_animation: @ 809B844
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, =gUnknown_020375D0
- strh r0, [r1]
- ldr r1, =sub_809B824
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end s9E_checkarray_HM_animation
-
- thumb_func_start s9F_changeposition_fly
-s9F_changeposition_fly: @ 809B870
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_8084D1C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s9F_changeposition_fly
-
- thumb_func_start sA0_check_gender
-sA0_check_gender: @ 809B88C
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- movs r0, 0
- bx lr
- .pool
- thumb_func_end sA0_check_gender
-
- thumb_func_start sA1_play_cry
-sA1_play_cry: @ 809B8A4
- 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 PlayCry5
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sA1_play_cry
-
- thumb_func_start sub_809B8DC
-sub_809B8DC: @ 809B8DC
- push {lr}
- ldr r1, =IsCryFinished
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809B8DC
-
- thumb_func_start sA2_setmaptile
-sA2_setmaptile: @ 809B8F0
- 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 _0809B954
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl MapGridSetMetatileIdAt
- b _0809B966
-_0809B954:
- 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
-_0809B966:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sA2_setmaptile
-
- thumb_func_start sAC_open_door
-sAC_open_door: @ 809B970
- 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 cur_mapdata_get_door_sound_at
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- adds r0, r5, 0
- adds r1, r4, 0
- bl task_overworld_door_add_if_role_69_for_opening_door_at
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sAC_open_door
-
- thumb_func_start sub_809B9C8
-sub_809B9C8: @ 809B9C8
- 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_808A8AC
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B9C8
-
- thumb_func_start sub_809BA0C
-sub_809BA0C: @ 809BA0C
- push {lr}
- bl sub_808A91C
- lsls r0, 24
- cmp r0, 0
- beq _0809BA1C
- movs r0, 0
- b _0809BA1E
-_0809BA1C:
- movs r0, 0x1
-_0809BA1E:
- pop {r1}
- bx r1
- thumb_func_end sub_809BA0C
-
- thumb_func_start sub_809BA24
-sub_809BA24: @ 809BA24
- push {lr}
- ldr r1, =sub_809BA0C
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BA24
-
- thumb_func_start sub_809BA38
-sub_809BA38: @ 809BA38
- 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_808A854
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809BA38
-
- thumb_func_start sub_809BA7C
-sub_809BA7C: @ 809BA7C
- 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_808A880
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809BA7C
-
- thumb_func_start sub_809BAC0
-sub_809BAC0: @ 809BAC0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809BAC0
-
- thumb_func_start sub_809BAFC
-sub_809BAFC: @ 809BAFC
- movs r0, 0
- bx lr
- thumb_func_end sub_809BAFC
-
- thumb_func_start sB3_get_coin_amount
-sB3_get_coin_amount: @ 809BB00
- 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 sB3_get_coin_amount
-
- thumb_func_start sub_809BB20
-sub_809BB20: @ 809BB20
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl AddCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809BB48
- ldr r1, =gScriptResult
- movs r0, 0
- b _0809BB4C
- .pool
-_0809BB48:
- ldr r1, =gScriptResult
- movs r0, 0x1
-_0809BB4C:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BB20
-
- thumb_func_start sub_809BB58
-sub_809BB58: @ 809BB58
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl SubtractCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809BB80
- ldr r1, =gScriptResult
- movs r0, 0
- b _0809BB84
- .pool
-_0809BB80:
- ldr r1, =gScriptResult
- movs r0, 0x1
-_0809BB84:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BB58
-
- thumb_func_start sub_809BB90
-sub_809BB90: @ 809BB90
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A89A0
- ldr r1, =gUnknown_020375CA
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BB90
-
- thumb_func_start sub_809BBB4
-sub_809BBB4: @ 809BBB4
- push {lr}
- bl sub_81A8AF8
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_809BBB4
-
- thumb_func_start ScrCmd_MossdeepGymSwitch
-ScrCmd_MossdeepGymSwitch: @ 809BBC0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A8934
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_MossdeepGymSwitch
-
- thumb_func_start sub_809BBDC
-sub_809BBDC: @ 809BBDC
- push {lr}
- bl sub_81A895C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_809BBDC
-
- thumb_func_start sub_809BBE8
-sub_809BBE8: @ 809BBE8
- push {lr}
- bl sub_80B47BC
- ldr r1, =gSelectedMapObject
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BBE8
-
- thumb_func_start sub_809BBFC
-sub_809BBFC: @ 809BBFC
- push {r4,lr}
- adds r4, r0, 0
- bl is_c1_link_related_active
- cmp r0, 0
- beq _0809BC0C
- movs r0, 0
- b _0809BC30
-_0809BC0C:
- ldr r2, =gMapObjects
- ldr r0, =gSelectedMapObject
- 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 _0809BC2E
- bl sub_8098630
- ldr r1, =sub_8098734
- adds r0, r4, 0
- bl SetupNativeScript
-_0809BC2E:
- movs r0, 0x1
-_0809BC30:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BBFC
-
- thumb_func_start sCD_set_obedient_bit
-sCD_set_obedient_bit: @ 809BC44
- 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, =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- mov r2, sp
- bl SetMonData
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .pool
- thumb_func_end sCD_set_obedient_bit
-
- thumb_func_start sCE_check_obedient_bit
-sCE_check_obedient_bit: @ 809BC7C
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gScriptResult
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sCE_check_obedient_bit
-
- thumb_func_start sCF_execute_RAM_script_DMA
-sCF_execute_RAM_script_DMA: @ 809BCB4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8099244
- adds r2, r0, 0
- cmp r2, 0
- beq _0809BCD0
- ldr r1, =gUnknown_020375C0
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r0, r4, 0
- adds r1, r2, 0
- bl ScriptJump
-_0809BCD0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sCF_execute_RAM_script_DMA
-
- thumb_func_start sD1_warp_v5
-sD1_warp_v5: @ 809BCDC
- 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 warp1_set
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_808D074
- bl sub_80B0244
- bl player_avatar_init_params_reset
- 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 sD1_warp_v5
-
- thumb_func_start sub_809BD70
-sub_809BD70: @ 809BD70
- 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 _0809BDA6
- movs r0, 0x64
- muls r0, r3
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- mov r2, sp
- bl SetMonData
-_0809BDA6:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BD70
-
- thumb_func_start sub_809BDB4
-sub_809BDB4: @ 809BDB4
- push {r4,lr}
- ldr r4, =gUnknown_03000F30
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_819746C
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809BDB4
-
- thumb_func_start sub_809BDD0
-sub_809BDD0: @ 809BDD0
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- bl GetTrainerClassNameFromId
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BDD0
-
- thumb_func_start sub_809BE0C
-sub_809BE0C: @ 809BE0C
- 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, =gUnknown_085102D4
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- bl GetTrainerNameFromId
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809BE0C
-
- thumb_func_start sub_809BE48
-sub_809BE48: @ 809BE48
- ldr r1, =gUnknown_020375CA
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_809BE48
-
- thumb_func_start sub_809BE54
-sub_809BE54: @ 809BE54
- 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 warp1_set
- bl sub_80AF79C
- bl player_avatar_init_params_reset
- 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_809BE54
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 8aecbf696..55ce5736a 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -5,9 +5,9 @@
.text
- thumb_func_start Multichoice
-@ bool8 Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-Multichoice: @ 80E1E08
+ thumb_func_start ScriptMenu_Multichoice
+@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
+ScriptMenu_Multichoice: @ 80E1E08
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -44,10 +44,10 @@ _080E1E4E:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end Multichoice
+ thumb_func_end ScriptMenu_Multichoice
- thumb_func_start sub_80E1E58
-sub_80E1E58: @ 80E1E58
+ thumb_func_start ScriptMenu_MultichoiceWithDefault
+ScriptMenu_MultichoiceWithDefault: @ 80E1E58
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -91,7 +91,7 @@ _080E1EAA:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_80E1E58
+ thumb_func_end ScriptMenu_MultichoiceWithDefault
thumb_func_start sub_80E1EB8
sub_80E1EB8: @ 80E1EB8
@@ -379,8 +379,8 @@ _080E20FC:
.pool
thumb_func_end sub_80E2058
- thumb_func_start yes_no_box
-yes_no_box: @ 80E2108
+ thumb_func_start ScriptMenu_YesNo
+ScriptMenu_YesNo: @ 80E2108
push {r4,lr}
ldr r4, =task_yes_no_maybe
adds r0, r4, 0
@@ -405,7 +405,7 @@ _080E213A:
pop {r4}
pop {r1}
bx r1
- thumb_func_end yes_no_box
+ thumb_func_end ScriptMenu_YesNo
thumb_func_start sub_80E2140
sub_80E2140: @ 80E2140
@@ -485,8 +485,8 @@ _080E21C4:
.pool
thumb_func_end task_yes_no_maybe
- thumb_func_start sub_80E21D0
-sub_80E21D0: @ 80E21D0
+ thumb_func_start ScriptMenu_MultichoiceGrid
+ScriptMenu_MultichoiceGrid: @ 80E21D0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -627,7 +627,7 @@ _080E22E8:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80E21D0
+ thumb_func_end ScriptMenu_MultichoiceGrid
thumb_func_start sub_80E2308
sub_80E2308: @ 80E2308
@@ -1334,8 +1334,8 @@ _080E28F8:
bx r0
thumb_func_end task_picbox
- thumb_func_start sub_80E2900
-sub_80E2900: @ 80E2900
+ thumb_func_start ScriptMenu_ShowPokemonPic
+ScriptMenu_ShowPokemonPic: @ 80E2900
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1422,10 +1422,10 @@ _080E29BA:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_80E2900
+ thumb_func_end ScriptMenu_ShowPokemonPic
- thumb_func_start picbox_close
-picbox_close: @ 80E29C4
+ thumb_func_start ScriptMenu_GetPicboxWaitFunc
+ScriptMenu_GetPicboxWaitFunc: @ 80E29C4
push {lr}
ldr r0, =task_picbox
bl FindTaskIdByFunc
@@ -1449,7 +1449,7 @@ _080E29F4:
_080E29F6:
pop {r1}
bx r1
- thumb_func_end picbox_close
+ thumb_func_end ScriptMenu_GetPicboxWaitFunc
thumb_func_start sub_80E29FC
sub_80E29FC: @ 80E29FC
diff --git a/asm/script_movement.s b/asm/script_movement.s
index f28fc9d44..5f06fd179 100755
--- a/asm/script_movement.s
+++ b/asm/script_movement.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start exec_movement
-exec_movement: @ 80D32E8
+ thumb_func_start ScriptMovement_StartObjectMovementScript
+ScriptMovement_StartObjectMovementScript: @ 80D32E8
push {r4,lr}
sub sp, 0x4
adds r4, r3, 0
@@ -47,10 +47,10 @@ _080D3332:
pop {r1}
bx r1
.pool
- thumb_func_end exec_movement
+ thumb_func_end ScriptMovement_StartObjectMovementScript
- thumb_func_start sub_80D3340
-sub_80D3340: @ 80D3340
+ thumb_func_start ScriptMovement_IsObjectMovementFinished
+ScriptMovement_IsObjectMovementFinished: @ 80D3340
push {r4,lr}
sub sp, 0x4
lsls r0, 24
@@ -87,7 +87,7 @@ _080D3384:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80D3340
+ thumb_func_end ScriptMovement_IsObjectMovementFinished
thumb_func_start sub_80D338C
sub_80D338C: @ 80D338C
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index 52e3b40db..18d7b7fe3 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -83,7 +83,7 @@ sub_80F8850: @ 80F8850
thumb_func_start sub_80F8864
sub_80F8864: @ 80F8864
push {lr}
- ldr r0, =gUnknown_02039F2C
+ ldr r0, =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080F88A4
@@ -397,8 +397,8 @@ sub_80F8ACC: @ 80F8ACC
.pool
thumb_func_end sub_80F8ACC
- thumb_func_start sub_80F8ADC
-sub_80F8ADC: @ 80F8ADC
+ thumb_func_start ShowContestWinner
+ShowContestWinner: @ 80F8ADC
push {lr}
ldr r0, =sub_812FDEC
bl SetMainCallback2
@@ -408,7 +408,7 @@ sub_80F8ADC: @ 80F8ADC
pop {r0}
bx r0
.pool
- thumb_func_end sub_80F8ADC
+ thumb_func_end ShowContestWinner
thumb_func_start sub_80F8AFC
sub_80F8AFC: @ 80F8AFC
@@ -1269,9 +1269,9 @@ _080F922C:
.pool
thumb_func_end sp000_heal_pokemon
- thumb_func_start sub_80F9244
-@ void sub_80F9244(s16 species_num, u8 level, int held_item)
-sub_80F9244: @ 80F9244
+ thumb_func_start ScriptGiveMon
+@ void ScriptGiveMon(s16 species_num, u8 level, int held_item)
+ScriptGiveMon: @ 80F9244
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -1332,10 +1332,10 @@ _080F92B8:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_80F9244
+ thumb_func_end ScriptGiveMon
- thumb_func_start sub_80F92C8
-sub_80F92C8: @ 80F92C8
+ thumb_func_start ScriptGiveEgg
+ScriptGiveEgg: @ 80F92C8
push {lr}
sub sp, 0x68
adds r1, r0, 0
@@ -1357,7 +1357,7 @@ sub_80F92C8: @ 80F92C8
add sp, 0x68
pop {r1}
bx r1
- thumb_func_end sub_80F92C8
+ thumb_func_end ScriptGiveEgg
thumb_func_start sub_80F92F8
sub_80F92F8: @ 80F92F8
@@ -1450,8 +1450,8 @@ _080F9392:
.pool
thumb_func_end sub_80F9370
- thumb_func_start sub_80F93A0
-sub_80F93A0: @ 80F93A0
+ thumb_func_start CreateScriptedWildMon
+CreateScriptedWildMon: @ 80F93A0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1496,10 +1496,10 @@ _080F93EE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80F93A0
+ thumb_func_end CreateScriptedWildMon
- thumb_func_start sub_80F9400
-sub_80F9400: @ 80F9400
+ thumb_func_start ScriptSetMonMoveSlot
+ScriptSetMonMoveSlot: @ 80F9400
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -1525,7 +1525,7 @@ _080F941C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80F9400
+ thumb_func_end ScriptSetMonMoveSlot
thumb_func_start sub_80F9438
sub_80F9438: @ 80F9438
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 0e47eaf4f..d433f5df2 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -861,7 +861,7 @@ sub_80E916C: @ 80E916C
asrs r0, 24
str r0, [sp]
adds r0, r5, 0
- bl warp1_set
+ bl Overworld_SetWarpDestination
bl warp_in
ldr r1, =gFieldCallback
ldr r0, =sub_80E9108
@@ -1208,7 +1208,7 @@ _080E9462:
adds r0, 0xAE
lsls r0, 16
lsrs r0, 16
- bl FlagReset
+ bl FlagClear
ldrb r0, [r6]
ldr r5, =gSaveBlock1Ptr
ldr r2, [r5]
diff --git a/asm/shop.s b/asm/shop.s
index 08e935bb1..94756624c 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -2465,7 +2465,7 @@ BuyMenuSubtractMoney: @ 80E0F88
lsls r2, 6
adds r1, r2
ldr r1, [r1]
- bl SubtractMoney
+ bl RemoveMoney
movs r0, 0x5F
bl PlaySE
ldr r0, [r5]
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 6bd62ed9f..6390ae992 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -55,8 +55,8 @@ _0812A530:
.pool
thumb_func_end sub_812A4DC
- thumb_func_start sub_812A540
-sub_812A540: @ 812A540
+ thumb_func_start PlaySlotMachine
+PlaySlotMachine: @ 812A540
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
@@ -85,7 +85,7 @@ sub_812A540: @ 812A540
pop {r0}
bx r0
.pool
- thumb_func_end sub_812A540
+ thumb_func_end PlaySlotMachine
thumb_func_start sub_812A588
sub_812A588: @ 812A588
diff --git a/asm/trainer_rematch.s b/asm/trainer_rematch.s
index 0c30cfea9..b814934a3 100755
--- a/asm/trainer_rematch.s
+++ b/asm/trainer_rematch.s
@@ -185,7 +185,7 @@ _081DA6D4:
adds r0, r1
adds r0, r6
ldrh r0, [r0]
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
bne _081DA6F0
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index d638498ee..59dd9f74b 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -734,7 +734,7 @@ sub_80B417C: @ 80B417C
push {r4,r5,lr}
adds r5, r1, 0
adds r4, r2, 0
- ldr r1, =gFieldEffectSpawnParams
+ ldr r1, =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -1050,7 +1050,7 @@ sub_80B43E0: @ 80B43E0
lsls r0, 24
cmp r0, 0
beq _080B4426
- ldr r2, =gFieldEffectSpawnParams
+ ldr r2, =gFieldEffectArguments
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]
@@ -1303,7 +1303,7 @@ sub_80B45D0: @ 80B45D0
ldr r1, =gScriptResult
movs r0, 0x1
strh r0, [r1]
- bl sub_809757C
+ bl UnfreezeMapObjects
ldr r0, =gUnknown_03006090
ldrb r0, [r0, 0xC]
bl sub_80974D0
@@ -1432,7 +1432,7 @@ sub_80B46D8: @ 80B46D8
orrs r3, r4
mov r4, r12
strb r3, [r4]
- ldr r4, =gFieldEffectSpawnParams
+ ldr r4, =gFieldEffectArguments
ldr r3, [r4]
strh r3, [r0, 0x2E]
ldr r3, [r4, 0x4]
@@ -1609,7 +1609,7 @@ sub_80B4808: @ 80B4808
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
movs r0, 0xFF
- bl exec_movement
+ bl ScriptMovement_StartObjectMovementScript
b _080B489E
.pool
_080B4870:
@@ -1633,7 +1633,7 @@ _080B4870:
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
movs r0, 0xFF
- bl exec_movement
+ bl ScriptMovement_StartObjectMovementScript
_080B489E:
movs r0, 0xFF
bl sub_809BE48
diff --git a/data/event_script_command_function_table.inc b/data/event_script_command_function_table.inc
index f44cdb7db..7cd00c37d 100644
--- a/data/event_script_command_function_table.inc
+++ b/data/event_script_command_function_table.inc
@@ -1,229 +1,229 @@
.align 2
gScriptCmdTable:: @ 81DB67C
- .4byte s00_nop
- .4byte s01_nop
- .4byte s02_end
- .4byte s03_return
- .4byte s04_call
- .4byte s05_goto
- .4byte s06_if_jump
- .4byte s07_if_call
- .4byte s08_jumpstd
- .4byte s09_callstd
- .4byte s0A_jumpstd_if
- .4byte s0B_callstd_if
- .4byte s0C_restore_execution_after_sCF
- .4byte s0D_endscript_killram
- .4byte s0E_set_byte
- .4byte s0F_u32_var_to_const
- .4byte s10_u8_var_to_const
- .4byte s11_u8_ptr_to_const
- .4byte s12_u32_var_to_ptr
- .4byte s13_u8_var_to_ptr
- .4byte s14_u32_var_to_var
- .4byte s15_u8_ptr_to_ptr
- .4byte s16_u16_gvar_to_const
- .4byte s17_u16_gvar_add_const
- .4byte sub_809993C
- .4byte s19_u16_gvar_gvar
- .4byte s1A_u16_gvar_gvar
- .4byte s1B_cmp_u8_var_var
- .4byte s1C_cmp_u8_var_const
- .4byte s1D_cmp_u8_var_ptr
- .4byte s1E_cmp_u8_ptr_var
- .4byte s1F_cmp_u8_ptr_const
- .4byte s20_cmp_u8_ptr_ptr
- .4byte s21_cmp_u16_gvar_const
- .4byte s22_cmp_u16_gvar_gvar
- .4byte s23_execute_ASM
- .4byte s24_execute_ASM_2
- .4byte s25_extended_cmd
- .4byte s26_extended_cmd_setvar
- .4byte s27_set_to_waitstate
- .4byte s28_pause
- .4byte s29_flag_set
- .4byte s2A_flag_clear
- .4byte s2B_flag_check
- .4byte s2C_unknown
- .4byte s2D_unknown
- .4byte s2E_unknown
- .4byte s2F_music_play
- .4byte s30_music_check
- .4byte s31_PlayFanfare
- .4byte s32_fanfare_wait
- .4byte s33_play_music
- .4byte s34_unknown
- .4byte s35_fade_to_default
- .4byte s36_fade_to_music
- .4byte s37_fadeout
- .4byte s38_fadein
- .4byte s39_warp_sfx
- .4byte s3A_warp_new_music
- .4byte s3B_warp_keep_music
- .4byte sub_809A054
- .4byte s3D_warp_v4
- .4byte s3E_set_new_map
- .4byte s3F_set_new_map_DMA
- .4byte sub_809A2DC
- .4byte sub_809A35C
- .4byte s42_get_map_camera_pos
- .4byte s43_get_player_party_count
- .4byte sub_80999A0
- .4byte sub_80999E4
- .4byte sub_8099A28
- .4byte sub_8099A6C
- .4byte s48_get_item_type
- .4byte sub_8099ADC
- .4byte sub_8099B20
- .4byte sub_8099B64
- .4byte sub_8099B90
- .4byte sub_8099BE8
- .4byte sub_8099BBC
- .4byte s4F_execute_movement
- .4byte s50_execute_movement_remote
- .4byte s51_waitmove
- .4byte s52_waitmove_remote
- .4byte s53_hide_sprite
- .4byte s54_hide_sprite_set_coords
- .4byte s55_show_sprite
- .4byte s56_show_sprite_set_coords
- .4byte s57_move_sprites
- .4byte s58_npc_f1_clear_x20
- .4byte s59_npc_f1_set_x20
- .4byte s5A_face_player
- .4byte s5B_npc_set_direction
- .4byte s5C_trainer_battle_configure_and_start
- .4byte sub_809B5E4
- .4byte sub_809B5F0
- .4byte sub_809B604
- .4byte s60_check_trainer_flag
- .4byte s61_set_trainer_flag
- .4byte s62_unset_trainer_flag
- .4byte s63_new_sprite_location_permanent
- .4byte s64_set_sprite_top_left_corner
- .4byte s65_set_sprite_behaviour
- .4byte sub_809AC78
- .4byte s67_execute_box
- .4byte s68_close_box
- .4byte sub_809AAC4
- .4byte sub_809AAEC
- .4byte s6B_release
- .4byte s6C_release_2
- .4byte sub_809ACC0
- .4byte s6E_yes_no
- .4byte s6F_multichoice
- .4byte sub_809AD3C
- .4byte sub_809AD90
- .4byte sub_809AD8C
- .4byte s73_nop_skip_word
- .4byte sub_809ADEC
- .4byte sub_809ADF8
- .4byte s76_close_picture_box
- .4byte sub_809AE48
- .4byte sub_809AE6C
- .4byte s79_give_pokemon
- .4byte s7A_create_egg
- .4byte s7B_change_pokedata_AP
- .4byte sub_809B3DC
- .4byte s7D_load_pokename
- .4byte s7E_load_first_pokenames
- .4byte s7F_load_pokename_team
- .4byte s80_load_item_name
- .4byte sub_809B114
- .4byte s82_load_item_name
- .4byte s83_load_textvar_var
- .4byte s84_load_textvar_std_expression
- .4byte s85_load_textvar_pointer
- .4byte s86_pokemart
- .4byte s87_pokemartdecor
- .4byte s88_pokemartbp
- .4byte s89_open_casino_game1
- .4byte berry_script_cmd
- .4byte sub_809B784
- .4byte sub_809B794
- .4byte sub_809B7A4
- .4byte sub_809B7B4
- .4byte s8F_get_random_val
- .4byte s90_AddMoney
- .4byte s91_SubtractMoney
- .4byte s92_check_money
- .4byte s93_display_money
- .4byte s94_hide_money
- .4byte s95_update_money
- .4byte sub_809B758
- .4byte s97_screen_special_effect
- .4byte s98_refade_with_timer
- .4byte s99_unknown
- .4byte s9A_unknown
- .4byte s9B_unknown
- .4byte s9C_execute_HM
- .4byte s9D_set_HM_animation_data
- .4byte s9E_checkarray_HM_animation
- .4byte s9F_changeposition_fly
- .4byte sA0_check_gender
- .4byte sA1_play_cry
- .4byte sA2_setmaptile
- .4byte sA3_set_standard_weather_data
- .4byte sA4_set_weather_data
- .4byte sub_8099E7C
- .4byte sA6_activate_per_step_callback_eg_ash
- .4byte sA7_set_new_map_footer
- .4byte sA8_unknown
- .4byte sA9_unknown
- .4byte sAA_create_new_sprite
- .4byte sAB_unknown
- .4byte sAC_open_door
- .4byte sub_809B9C8
- .4byte sub_809BA24
- .4byte sub_809BA38
- .4byte sub_809BA7C
- .4byte sub_809BAC0
- .4byte sub_809BAFC
- .4byte sB3_get_coin_amount
- .4byte sub_809BB20
- .4byte sub_809BB58
- .4byte sB6_load_battle
- .4byte sub_809B6A8
- .4byte sB8_set_virtual_address
- .4byte sB9_virtual_jump
- .4byte sBA_virtual_call
- .4byte sBB_virtual_if_jump
- .4byte sBC_virtual_if_call
- .4byte sBD_virtual_message
- .4byte sBE_virtual_load_text
- .4byte sBF_virtual_load_textbuffer
- .4byte sub_809B578
- .4byte sC1_hide_coins
- .4byte sC2_update_coins
- .4byte sC3_unknown
- .4byte sC4_unknown
- .4byte sub_809B8DC
- .4byte sC6_load_textvar_box_label
- .4byte s01_nop
- .4byte s01_nop
- .4byte s01_nop
- .4byte s01_nop
- .4byte s01_nop
- .4byte s01_nop
- .4byte sCD_set_obedient_bit
- .4byte sCE_check_obedient_bit
- .4byte sCF_execute_RAM_script_DMA
- .4byte s01_nop
- .4byte sD1_warp_v5
- .4byte sub_809BD70
- .4byte sub_809BB90
- .4byte sub_809BBB4
- .4byte ScrCmd_MossdeepGymSwitch
- .4byte sub_809BBDC
- .4byte sub_809A150
- .4byte sub_809BBE8
- .4byte sub_809BBFC
- .4byte sub_809AF94
- .4byte sub_809AC3C
- .4byte sub_8099D20
- .4byte sub_809BDD0
- .4byte sub_809BE0C
- .4byte sub_809ABF0
- .4byte sub_809BE54
- .4byte sub_809B214
- .4byte sub_809B0C4
+ .4byte ScrCmd_nop
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_end
+ .4byte ScrCmd_return
+ .4byte ScrCmd_call
+ .4byte ScrCmd_goto
+ .4byte ScrCmd_goto_if
+ .4byte ScrCmd_call_if
+ .4byte ScrCmd_gotostd
+ .4byte ScrCmd_callstd
+ .4byte ScrCmd_gotostd_if
+ .4byte ScrCmd_callstd_if
+ .4byte ScrCmd_gotoram
+ .4byte ScrCmd_killscript
+ .4byte ScrCmd_setmysteryeventstatus
+ .4byte ScrCmd_loadword
+ .4byte ScrCmd_loadbyte
+ .4byte ScrCmd_writebytetoaddr
+ .4byte ScrCmd_loadbytefromaddr
+ .4byte ScrCmd_setptrbyte
+ .4byte ScrCmd_copylocal
+ .4byte ScrCmd_copybyte
+ .4byte ScrCmd_setvar
+ .4byte ScrCmd_addvar
+ .4byte ScrCmd_subvar
+ .4byte ScrCmd_copyvar
+ .4byte ScrCmd_setorcopyvar
+ .4byte ScrCmd_compare_local_to_local
+ .4byte ScrCmd_compare_local_to_value
+ .4byte ScrCmd_compare_local_to_addr
+ .4byte ScrCmd_compare_addr_to_local
+ .4byte ScrCmd_compare_addr_to_value
+ .4byte ScrCmd_compare_addr_to_addr
+ .4byte ScrCmd_compare_var_to_value
+ .4byte ScrCmd_compare_var_to_var
+ .4byte ScrCmd_callnative
+ .4byte ScrCmd_gotonative
+ .4byte ScrCmd_special
+ .4byte ScrCmd_specialvar
+ .4byte ScrCmd_waitstate
+ .4byte ScrCmd_delay
+ .4byte ScrCmd_setflag
+ .4byte ScrCmd_clearflag
+ .4byte ScrCmd_checkflag
+ .4byte ScrCmd_initclock
+ .4byte ScrCmd_dodailyevents
+ .4byte ScrCmd_gettime
+ .4byte ScrCmd_playse
+ .4byte ScrCmd_waitse
+ .4byte ScrCmd_playfanfare
+ .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 ScrCmd_warpteleport
+ .4byte ScrCmd_setwarp
+ .4byte ScrCmd_setdynamicwarp
+ .4byte ScrCmd_setdivewarp
+ .4byte ScrCmd_setholewarp
+ .4byte ScrCmd_getplayerxy
+ .4byte ScrCmd_countpokemon
+ .4byte ScrCmd_additem
+ .4byte ScrCmd_removeitem
+ .4byte ScrCmd_checkitemspace
+ .4byte ScrCmd_checkitem
+ .4byte ScrCmd_checkitemtype
+ .4byte ScrCmd_addpcitem
+ .4byte ScrCmd_checkpcitem
+ .4byte ScrCmd_adddecor
+ .4byte ScrCmd_removedecor
+ .4byte ScrCmd_hasdecor
+ .4byte ScrCmd_checkdecor
+ .4byte ScrCmd_applymovement
+ .4byte ScrCmd_applymovement_at
+ .4byte ScrCmd_waitmovement
+ .4byte ScrCmd_waitmovement_at
+ .4byte ScrCmd_removeobject
+ .4byte ScrCmd_removeobject_at
+ .4byte ScrCmd_addobject
+ .4byte ScrCmd_addobject_at
+ .4byte ScrCmd_setobjectxy
+ .4byte ScrCmd_showobject
+ .4byte ScrCmd_hideobject
+ .4byte ScrCmd_faceplayer
+ .4byte ScrCmd_turnobject
+ .4byte ScrCmd_trainerbattle
+ .4byte ScrCmd_battlebegin
+ .4byte ScrCmd_ontrainerbattleend
+ .4byte ScrCmd_ontrainerbattleendgoto
+ .4byte ScrCmd_checktrainerflag
+ .4byte ScrCmd_settrainerflag
+ .4byte ScrCmd_cleartrainerflag
+ .4byte ScrCmd_setobjectxyperm
+ .4byte ScrCmd_moveobjectoffscreen
+ .4byte ScrCmd_setobjectmovementtype
+ .4byte ScrCmd_waitmessage
+ .4byte ScrCmd_message
+ .4byte ScrCmd_closemessage
+ .4byte ScrCmd_lockall
+ .4byte ScrCmd_lock
+ .4byte ScrCmd_releaseall
+ .4byte ScrCmd_release
+ .4byte ScrCmd_waitbutton
+ .4byte ScrCmd_yesnobox
+ .4byte ScrCmd_multichoice
+ .4byte ScrCmd_multichoicedefault
+ .4byte ScrCmd_multichoicegrid
+ .4byte ScrCmd_drawbox
+ .4byte ScrCmd_erasebox
+ .4byte ScrCmd_drawboxtext
+ .4byte ScrCmd_drawpokepic
+ .4byte ScrCmd_erasepokepic
+ .4byte ScrCmd_drawcontestwinner
+ .4byte ScrCmd_braillemessage
+ .4byte ScrCmd_givepoke
+ .4byte ScrCmd_giveegg
+ .4byte ScrCmd_setpokemove
+ .4byte ScrCmd_checkpokemove
+ .4byte ScrCmd_getspeciesname
+ .4byte ScrCmd_getfirstpartypokename
+ .4byte ScrCmd_getpartypokename
+ .4byte ScrCmd_getitemname
+ .4byte ScrCmd_getdecorname
+ .4byte ScrCmd_getmovename
+ .4byte ScrCmd_getnumberstring
+ .4byte ScrCmd_getstdstring
+ .4byte ScrCmd_getstring
+ .4byte ScrCmd_pokemart
+ .4byte ScrCmd_pokemartdecor
+ .4byte ScrCmd_pokemartbp
+ .4byte ScrCmd_playslotmachine
+ .4byte ScrCmd_plantberrytree
+ .4byte ScrCmd_choosecontestpkmn
+ .4byte ScrCmd_startcontest
+ .4byte ScrCmd_showcontestresults
+ .4byte ScrCmd_contestlinktransfer
+ .4byte ScrCmd_random
+ .4byte ScrCmd_givemoney
+ .4byte ScrCmd_takemoney
+ .4byte ScrCmd_checkmoney
+ .4byte ScrCmd_showmoneybox
+ .4byte ScrCmd_hidemoneybox
+ .4byte ScrCmd_updatemoneybox
+ .4byte ScrCmd_getpricereduction
+ .4byte ScrCmd_fadescreen
+ .4byte ScrCmd_fadescreendelay
+ .4byte ScrCmd_setdarklevel
+ .4byte ScrCmd_animdarklevel
+ .4byte ScrCmd_messageautoscroll
+ .4byte ScrCmd_dofieldeffect
+ .4byte ScrCmd_setfieldeffect
+ .4byte ScrCmd_waitfieldeffect
+ .4byte ScrCmd_sethealplace
+ .4byte ScrCmd_checkplayergender
+ .4byte ScrCmd_playpokecry
+ .4byte ScrCmd_setmaptile
+ .4byte ScrCmd_resetweather
+ .4byte ScrCmd_setweather
+ .4byte ScrCmd_doweather
+ .4byte ScrCmd_tileeffect
+ .4byte ScrCmd_setmaplayoutindex
+ .4byte ScrCmd_setobjectpriority
+ .4byte ScrCmd_resetobjectpriority
+ .4byte ScrCmd_createvobject
+ .4byte ScrCmd_turnvobject
+ .4byte ScrCmd_opendoor
+ .4byte ScrCmd_closedoor
+ .4byte ScrCmd_waitdooranim
+ .4byte ScrCmd_setdooropen
+ .4byte ScrCmd_setdoorclosed
+ .4byte ScrCmd_addelevmenuitem
+ .4byte ScrCmd_showelevmenu
+ .4byte ScrCmd_checkcoins
+ .4byte ScrCmd_givecoins
+ .4byte ScrCmd_takecoins
+ .4byte ScrCmd_setwildbattle
+ .4byte ScrCmd_dowildbattle
+ .4byte ScrCmd_setvaddress
+ .4byte ScrCmd_vgoto
+ .4byte ScrCmd_vcall
+ .4byte ScrCmd_vgoto_if
+ .4byte ScrCmd_vcall_if
+ .4byte ScrCmd_vmessage
+ .4byte ScrCmd_vloadword
+ .4byte ScrCmd_vgetstring
+ .4byte ScrCmd_showcoinsbox
+ .4byte ScrCmd_hidecoinsbox
+ .4byte ScrCmd_updatecoinsbox
+ .4byte ScrCmd_incrementgamestat
+ .4byte ScrCmd_setescapewarp
+ .4byte ScrCmd_waitpokecry
+ .4byte ScrCmd_getboxname
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_setpokeobedient
+ .4byte ScrCmd_checkpokeobedience
+ .4byte ScrCmd_cmdCF
+ .4byte ScrCmd_nop1
+ .4byte ScrCmd_warpD1
+ .4byte ScrCmd_setpokemetlocation
+ .4byte ScrCmd_mossdeepgym1
+ .4byte ScrCmd_mossdeepgym2
+ .4byte ScrCmd_mossdeepgym3
+ .4byte ScrCmd_mossdeepgym4
+ .4byte ScrCmd_warpD7
+ .4byte ScrCmd_cmdD8
+ .4byte ScrCmd_cmdD9
+ .4byte ScrCmd_cmdDA
+ .4byte ScrCmd_cmdDB
+ .4byte ScrCmd_fadescreenswapbuffers
+ .4byte ScrCmd_gettrainerclass
+ .4byte ScrCmd_gettrainername
+ .4byte ScrCmd_pokenavcall
+ .4byte ScrCmd_warpE0
+ .4byte ScrCmd_getcontesttype
+ .4byte ScrCmd_getitemnameplural
diff --git a/data/event_scripts.s b/data/event_scripts.s
index e700ad181..0f6ea494e 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -12,13 +12,13 @@ gScriptCmdTableEnd:: @ 81DBA08
gSpecialVars:: @ 81DBA0C
.incbin "baserom.gba", 0x1dba0c, 0x58
-gUnknown_081DBA64:: @ 81DBA64
+gSpecials:: @ 81DBA64
.incbin "baserom.gba", 0x1dba64, 0x83c
-gUnknown_081DC2A0:: @ 81DC2A0
+gStdScripts:: @ 81DC2A0
.incbin "baserom.gba", 0x1dc2a0, 0x2c
-gUnknown_081DC2CC:: @ 81DC2CC
+gStdScripts_End:: @ 81DC2CC
.incbin "baserom.gba", 0x1dc2cc, 0x34ee
gUnknown_081DF7BA:: @ 81DF7BA
diff --git a/data/scrcmd.s b/data/scrcmd.s
deleted file mode 100644
index dfa802684..000000000
--- a/data/scrcmd.s
+++ /dev/null
@@ -1,14 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gNullScriptPtr:: @ 85102BC
- .incbin "baserom.gba", 0x5102bc, 0x4
-
-gUnknown_085102C0:: @ 85102C0
- .incbin "baserom.gba", 0x5102c0, 0x14
-
-gUnknown_085102D4:: @ 85102D4
- .incbin "baserom.gba", 0x5102d4, 0xc
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
new file mode 100644
index 000000000..4f37248cc
--- /dev/null
+++ b/include/battle_frontier_2.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_BATTLE_FRONTIER_2_H
+#define GUARD_BATTLE_FRONTIER_2_H
+
+void sub_81A8934(u8);
+void sub_81A895C(void);
+u16 sub_81A89A0(u8);
+void sub_81A8AF8(void);
+
+#endif // GUARD_BATTLE_FRONTIER_2_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 80fb55da2..e4acd8601 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,6 +1,15 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
+void BattleSetup_StartScriptedWildBattle(void);
u8 BattleSetup_GetTerrainId(void);
+u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
+
+u8 HasTrainerAlreadyBeenFought(u16);
+void trainer_flag_set(u16);
+void trainer_flag_clear(u16);
+void BattleSetup_StartTrainerBattle(void);
+u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+u8 *BattleSetup_GetTrainerPostBattleScript(void);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/clock.h b/include/clock.h
new file mode 100644
index 000000000..4e6560c91
--- /dev/null
+++ b/include/clock.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_CLOCK_H
+#define GUARD_CLOCK_H
+
+// TODO: time of day and seconds in a day defines
+
+void DoTimeBasedEvents(void);
+
+#endif
diff --git a/include/coins.h b/include/coins.h
index 43434b227..996519605 100644
--- a/include/coins.h
+++ b/include/coins.h
@@ -6,7 +6,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y);
void HideCoinsWindow(void);
u16 GetCoins(void);
void SetCoins(u16 coinAmount);
-bool8 AddCoins(u16 toAdd);
-bool8 SubtractCoins(u16 toSub);
+bool8 GiveCoins(u16 toAdd);
+bool8 TakeCoins(u16 toSub);
#endif // GUARD_COINS_H
diff --git a/include/contest.h b/include/contest.h
index 6eda956b4..5c473bd2c 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -11,7 +11,7 @@ struct ContestStruct_02039E00 {
extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
extern u8 gUnknown_02039F24;
-extern EWRAM_DATA u16 gUnknown_02039F2C;
+extern EWRAM_DATA u16 gScriptContestCategory;
extern EWRAM_DATA u8 gUnknown_02039F2E;
extern EWRAM_DATA u8 gUnknown_02039F30;
diff --git a/include/contest_link_80F57C4.h b/include/contest_link_80F57C4.h
new file mode 100644
index 000000000..98523c175
--- /dev/null
+++ b/include/contest_link_80F57C4.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_CONTEST_LINK_80F57C4_H
+#define GUARD_CONTEST_LINK_80F57C4_H
+
+void sub_80F840C(void);
+void sub_80F8484(void);
+void sub_80F84C4(u8);
+
+#endif // GUARD_CONTEST_LINK_80F57C4_H
diff --git a/include/contest_painting.h b/include/contest_painting.h
new file mode 100644
index 000000000..f8366a997
--- /dev/null
+++ b/include/contest_painting.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CONTESTPAINTING_H
+#define GUARD_CONTESTPAINTING_H
+
+void sub_812FDA8(u32);
+
+#endif
diff --git a/include/data2.h b/include/data2.h
new file mode 100644
index 000000000..db9532811
--- /dev/null
+++ b/include/data2.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_DATA2_H
+#define GUARD_DATA2_H
+
+struct MonCoords
+{
+ // This would use a bitfield, but some function
+ // uses it as a u8 and casting won't match.
+ u8 coords; // u8 x:4, y:4;
+ u8 y_offset;
+};
+
+extern struct MonCoords gTrainerBackPicCoords[];
+
+extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
+extern const u8 gMoveNames[][13];
+extern const u8 gAbilityNames[][13];
+extern const u8 gTypeNames[][7];
+
+#endif // GUARD_DATA2_H
diff --git a/include/decoration.h b/include/decoration.h
index c089bdc83..bbb77d127 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -125,8 +125,6 @@ enum DecoId {
/*120*/ DECOR_REGISTEEL_DOLL
};
-// Exported type declarations
-
struct Decoration
{
/*0x00*/ u8 id;
@@ -139,9 +137,6 @@ struct Decoration
/*0x1c*/ const u16 *tiles;
};
-// Exported RAM declarations
-
-// Exported ROM declarations
extern const struct Decoration gDecorations[];
#endif //GUARD_DECORATION_H
diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h
new file mode 100644
index 000000000..5ca345933
--- /dev/null
+++ b/include/decoration_inventory.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_DECORATION_INVENTORY_H
+#define GUARD_DECORATION_INVENTORY_H
+
+void ClearDecorationInventories(void);
+u8 CheckHasDecoration(u8);
+u8 DecorationAdd(u8);
+u8 DecorationCheckSpace(u8);
+s8 DecorationRemove(u8);
+
+#endif // GUARD_DECORATION_INVENTORY_H
diff --git a/include/event_data.h b/include/event_data.h
index a2a501283..0bd11fdcd 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -27,7 +27,7 @@ bool8 VarSet(u16 id, u16 value);
u8 VarGetFieldObjectGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
-u8 FlagReset(u16 id);
+u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
extern u16 gSpecialVar_0x8000;
diff --git a/include/field_door.h b/include/field_door.h
new file mode 100644
index 000000000..f1dfc551d
--- /dev/null
+++ b/include/field_door.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FIELDDOOR_H
+#define GUARD_FIELDDOOR_H
+
+void FieldSetDoorOpened(u32, u32);
+void FieldSetDoorClosed(u32, u32);
+s8 FieldAnimateDoorClose(u32, u32);
+s8 FieldAnimateDoorOpen(u32, u32);
+bool8 FieldIsDoorAnimationRunning(void);
+u32 GetDoorSoundEffect(u32 x, u32 y);
+
+#endif
diff --git a/include/field_effect.h b/include/field_effect.h
index 7ec26b3d7..aa3f7eba0 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -1,7 +1,3 @@
-//
-// Created by Scott Norton on 9/15/17.
-//
-
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
@@ -73,8 +69,9 @@ enum FieldEffectScriptIdx
FLDEFF_USE_TELEPORT
};
-extern u32 gFieldEffectSpawnParams[8];
-
u8 FieldEffectStart(u8);
+bool8 FieldEffectActiveListContains(u8 id);
+
+extern u32 gFieldEffectArguments[8];
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
new file mode 100644
index 000000000..7c2d16a24
--- /dev/null
+++ b/include/field_fadetransition.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_FIELD_FADETRANSITION_H
+#define GUARD_FIELD_FADETRANSITION_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_80AF848(void);
+void sub_80AF87C(void);
+
+#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 40cc64054..b18b6cfd3 100755
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -33,6 +33,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 pal_patch_for_npc(u16, u8);
void sub_808E16C(s16, s16);
void sub_8092FF0(s16, s16, s16 *, s16 *);
@@ -63,6 +64,7 @@ void npc_coords_shift(struct MapObject *, s16, s16);
void sub_808EB08(struct MapObject *, s16, s16);
void sub_808F254(u8, u8, u8);
void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *));
+u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 GetOppositeDirection(u8);
u8 GetStepInPlaceDelay4AnimId(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
@@ -71,6 +73,7 @@ u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
+u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
// Exported data declarations
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
new file mode 100644
index 000000000..ba797ec98
--- /dev/null
+++ b/include/field_map_obj_helpers.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FIELDMAPOBJHELP_H
+#define GUARD_FIELDMAPOBJHELP_H
+
+void UnfreezeMapObjects(void);
+void sub_8097B78(u8, u8);
+
+#endif
diff --git a/include/field_message_box.h b/include/field_message_box.h
index e33d52ccf..432c9078b 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -1,12 +1,10 @@
-#ifndef GUARD_field_message_box_H
-#define GUARD_field_message_box_H
+#ifndef GUARD_FIELD_MESSAGE_BOX_H
+#define GUARD_FIELD_MESSAGE_BOX_H
-// Exported type declarations
+bool8 ShowFieldMessage(const u8 *message);
+bool8 sub_8098238(const u8 *message);
+bool8 ShowFieldAutoScrollMessage(const u8 *message);
+void HideFieldMessageBox(void);
+bool8 IsFieldMessageBoxHidden(void);
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void ShowFieldMessage(const u8 *);
-
-#endif //GUARD_field_message_box_H
+#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index a787cf805..5c16e9414 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -1,7 +1,3 @@
-//
-// Created by Scott Norton on 9/6/17.
-//
-
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
@@ -14,4 +10,6 @@ u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
+void sub_808D074(u8);
+
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
new file mode 100644
index 000000000..ef81c2f9e
--- /dev/null
+++ b/include/field_screen_effect.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_FIELD_SCREEN_EFFECT_H
+#define GUARD_FIELD_SCREEN_EFFECT_H
+
+void sub_80AF79C(void);
+void sub_80B009C(u8);
+void sub_80B0244(void);
+
+#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_specials.h b/include/field_specials.h
new file mode 100644
index 000000000..1f8fbf147
--- /dev/null
+++ b/include/field_specials.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_SPECIALS_H
+#define GUARD_FIELD_SPECIALS_H
+
+u8 GetLeadMonIndex(void);
+
+#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
new file mode 100644
index 000000000..2a2a772d8
--- /dev/null
+++ b/include/field_tasks.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_TASKS_H
+#define GUARD_FIELD_TASKS_H
+
+void ActivatePerStepCallback(u8);
+
+#endif // GUARD_FIELD_TASKS_H
diff --git a/include/field_weather.h b/include/field_weather.h
new file mode 100644
index 000000000..e12107e70
--- /dev/null
+++ b/include/field_weather.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_WEATHER_H
+#define GUARD_WEATHER_H
+
+void fade_screen(u8, s8);
+
+void SetSav1Weather(u32);
+u8 GetSav1Weather(void);
+void sub_80AEDBC(void);
+
+void DoCurrentWeather(void);
+
+#endif // GUARD_WEATHER_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index e95e4e0ce..3efc5e36f 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -1,19 +1,11 @@
-//
-// Created by scott on 9/16/2017.
-//
-
#ifndef GUARD_FIELDMAP_H
#define GUARD_FIELDMAP_H
-// Exported type declarations
-
-// Exported RAM declarations
extern struct MapCoords {
int width;
int height;
} gUnknown_03005DC0;
-// Exported ROM declarations
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
diff --git a/include/item.h b/include/item.h
index e642ca608..a136f03ec 100644
--- a/include/item.h
+++ b/include/item.h
@@ -31,6 +31,7 @@ extern struct BagPocket gBagPockets[];
void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
void CopyItemName(u16 itemId, u8 *string);
+void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
bool8 CheckBagHasSpace(u16 itemId, u16 count);
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
new file mode 100644
index 000000000..a10648f2f
--- /dev/null
+++ b/include/map_obj_lock.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_MAP_OBJ_LOCK_H
+#define GUARD_MAP_OBJ_LOCK_H
+
+bool8 sub_80983C4(void);
+void ScriptFreezeMapObjects(void);
+bool8 sub_809847C(void);
+void LockSelectedMapObject(void);
+void sub_8098630(void);
+bool8 sub_8098734(void);
+
+#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/menu.h b/include/menu.h
index 766aa9d39..66ac73e03 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -19,5 +19,6 @@ void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
+void sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
#endif // GUARD_MENU_H
diff --git a/include/money.h b/include/money.h
index 22a3657f6..5c7c1c984 100644
--- a/include/money.h
+++ b/include/money.h
@@ -5,7 +5,7 @@ u32 GetMoney(u32* moneyPtr);
void SetMoney(u32* moneyPtr, u32 newValue);
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
void AddMoney(u32* moneyPtr, u32 toAdd);
-void SubtractMoney(u32* moneyPtr, u32 toSub);
+void RemoveMoney(u32* moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void);
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
new file mode 100644
index 000000000..ab23a8d00
--- /dev/null
+++ b/include/mystery_event_script.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
+#define GUARD_MYSTERY_EVENT_SCRIPT_H
+
+u32 RunMysteryEventScript(u8 *);
+void SetMysteryEventScriptStatus(u32 val);
+u16 GetRecordMixingGift(void);
+
+#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
new file mode 100644
index 000000000..6377897d3
--- /dev/null
+++ b/include/new_menu_helpers.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_NEW_MENU_HELPERS_H
+#define GUARD_NEW_MENU_HELPERS_H
+
+void sub_81973A4(void);
+void sub_81973C4(u8, u8);
+void sub_819746C(u8 windowId, bool8 copyToVram);
+void sub_81973FC(u8, u8);
+
+#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
new file mode 100644
index 000000000..0475e8e8c
--- /dev/null
+++ b/include/overworld.h
@@ -0,0 +1,58 @@
+#ifndef GUARD_ROM4_H
+#define GUARD_ROM4_H
+
+struct UnkPlayerStruct
+{
+ u8 player_field_0;
+ u8 player_field_1;
+};
+
+struct LinkPlayerMapObject
+{
+ u8 active;
+ u8 linkPlayerId;
+ u8 mapObjId;
+ u8 mode;
+};
+
+struct UCoords32
+{
+ u32 x, y;
+};
+
+extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
+
+void IncrementGameStat(u8 index);
+
+void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
+void Overworld_SetMapObjTemplateMovementType(u8, u8);
+
+void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+
+void saved_warp2_set_2(int unused, 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);
+void sub_8084E80(s8, s8, s8, s8, s8);
+void sub_8084EBC(s16, s16);
+
+void player_avatar_init_params_reset(void);
+
+void Overworld_SetFlashLevel(s32 a1);
+//u8 Overworld_GetFlashLevel(void);
+void sub_8085524(u16);
+
+void Overworld_SetSavedMusic(u16);
+void Overworld_ChangeMusicToDefault(void);
+void Overworld_ChangeMusicTo(u16);
+
+bool32 is_c1_link_related_active(void);
+
+void strange_npc_table_clear(void);
+const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8);
+void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
+void sub_8086230(void);
+void c2_exit_to_overworld_2_switch(void);
+void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+
+#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index de2cf0083..d3bcd2271 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -8,6 +8,9 @@
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
#define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade
+#define PLTT_BUFFER_SIZE 0x200
+#define PLTT_DECOMP_BUFFER_SIZE (PLTT_BUFFER_SIZE * 2)
+
enum
{
FAST_FADE_IN_FROM_WHITE,
diff --git a/include/party_menu.h b/include/party_menu.h
new file mode 100644
index 000000000..175aba639
--- /dev/null
+++ b/include/party_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_PARTY_MENU_H
+#define GUARD_PARTY_MENU_H
+
+bool8 pokemon_has_move(struct Pokemon *, u16);
+
+#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
new file mode 100644
index 000000000..5c9862d57
--- /dev/null
+++ b/include/pokemon_3.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_POKEMON_3_H
+#define GUARD_POKEMON_3_H
+
+const u8* GetTrainerClassNameFromId(u16 trainerId);
+const u8* GetTrainerNameFromId(u16 trainerId);
+
+#endif // GUARD_POKEMON_3_H
diff --git a/include/rom4.h b/include/rom4.h
deleted file mode 100644
index c7e46eecb..000000000
--- a/include/rom4.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef GUARD_ROM4_H
-#define GUARD_ROM4_H
-
-struct UnkPlayerStruct
-{
- u8 player_field_0;
- u8 player_field_1;
-};
-
-struct LinkPlayerMapObject
-{
- u8 active;
- u8 linkPlayerId;
- u8 mapObjId;
- u8 mode;
-};
-
-struct UCoords32
-{
- u32 x, y;
-};
-
-
-extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
-
-void strange_npc_table_clear(void);
-const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8);
-void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
-void sub_8086230(void);
-void c2_exit_to_overworld_2_switch(void);
-void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
-
-#endif //GUARD_ROM4_H
diff --git a/include/rom6.h b/include/rom6.h
index 006e93910..0e9927855 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -2,6 +2,6 @@
#define GUARD_ROM6_H
void sub_81357FC(u8, void(void));
-u8 GetIdxOfFirstPartyMemberThatIsNotAnEgg(void);
+u8 GetLeadMonIndex(void);
#endif //GUARD_ROM6_H
diff --git a/include/script.h b/include/script.h
index ec6a212bc..2b5f8c2ce 100644
--- a/include/script.h
+++ b/include/script.h
@@ -28,8 +28,8 @@ void StopScript(struct ScriptContext *ctx);
bool8 RunScriptCommand(struct ScriptContext *ctx);
u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
const u8 *ScriptPop(struct ScriptContext *ctx);
-void ScriptJump(struct ScriptContext *ctx, u8 *ptr);
-void ScriptCall(struct ScriptContext *ctx, u8 *ptr);
+void ScriptJump(struct ScriptContext *ctx, const u8 *ptr);
+void ScriptCall(struct ScriptContext *ctx, const u8 *ptr);
void ScriptReturn(struct ScriptContext *ctx);
u16 ScriptReadHalfword(struct ScriptContext *ctx);
u32 ScriptReadWord(struct ScriptContext *ctx);
diff --git a/include/script_menu.h b/include/script_menu.h
index de80d28d4..717eda041 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -1,11 +1,13 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
extern const u8 *const gUnknown_0858BAF0[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);
+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);
+
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/script_movement.h b/include/script_movement.h
new file mode 100644
index 000000000..4c3fa6002
--- /dev/null
+++ b/include/script_movement.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_SCRIPT_MOVEMENT_H
+#define GUARD_SCRIPT_MOVEMENT_H
+
+bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
+bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
+void sub_80D338C(void);
+
+#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h
new file mode 100644
index 000000000..8dd7ed0c0
--- /dev/null
+++ b/include/script_pokemon_80F8.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_SCRIPTPOKE80F8_H
+#define GUARD_SCRIPTPOKE80F8_H
+
+void ShowContestWinner(void);
+u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
+u8 ScriptGiveEgg(u16);
+void CreateScriptedWildMon(u16, u8, u16);
+void ScriptSetMonMoveSlot(u8, u16, u8);
+
+#endif
diff --git a/include/script_pokemon_81B9.h b/include/script_pokemon_81B9.h
new file mode 100644
index 000000000..1b8563ee6
--- /dev/null
+++ b/include/script_pokemon_81B9.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SCRIPTPOKE81B9_H
+#define GUARD_SCRIPTPOKE81B9_H
+
+void sub_81B9404(void);
+
+#endif
diff --git a/include/shop.h b/include/shop.h
index ac5b512ca..d3e86408c 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -1,12 +1,10 @@
#ifndef GUARD_SHOP_H
#define GUARD_SHOP_H
-// Exported type declarations
-
-// Exported RAM declarations
-
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
-// Exported ROM declarations
+void CreatePokemartMenu(const u16 *);
+void CreateDecorationShop1Menu(const u16 *);
+void CreateDecorationShop2Menu(const u16 *);
-#endif //GUARD_SHOP_H
+#endif // GUARD_SHOP_H
diff --git a/include/slot_machine.h b/include/slot_machine.h
new file mode 100644
index 000000000..8334e56fc
--- /dev/null
+++ b/include/slot_machine.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SLOT_MACHINE_H
+#define GUARD_SLOT_MACHINE_H
+
+void PlaySlotMachine(u8, void *);
+
+#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/text.h b/include/text.h
index c09b41ad3..594661717 100644
--- a/include/text.h
+++ b/include/text.h
@@ -170,6 +170,7 @@ typedef struct {
u8 flag_0:1;
u8 flag_1:1;
u8 flag_2:1;
+ u8 flag_3:1;
} TextFlags;
extern TextFlags gTextFlags;
@@ -195,7 +196,7 @@ u8 gGlyphDimensions[0x2];
void SetFontsPointer(const struct FontInfo *fonts);
void DeactivateAllTextPrinters(void);
-u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
+u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
void RunTextPrinters(void);
bool16 IsTextPrinterActive(u8 id);
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 3f39783b8..ab035d9f8 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -2,6 +2,7 @@
#define GUARD_TRAINER_SEE_H
void sub_80B4578(struct MapObject *);
+u8 sub_80B47BC(void);
void sub_8155D78(struct MapObject *);
#endif //GUARD_TRAINER_SEE_H
diff --git a/include/tv.h b/include/tv.h
index b85cac82a..9495387ef 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -1,12 +1,6 @@
#ifndef GUARD_TV_H
#define GUARD_TV_H
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
extern u8 *const gTVStringVarPtrs[3];
void ClearTVShowData(void);
@@ -16,6 +10,6 @@ bool8 GetPriceReduction(u8 newsKind);
u8 GetRibbonCount(struct Pokemon *pokemon);
void sub_80EE184(void);
void sub_80F14F8(TVShow *shows);
-int sub_80EF370(int value);
+size_t sub_80EF370(int value);
#endif //GUARD_TV_H
diff --git a/ld_script.txt b/ld_script.txt
index 029068874..9c4300fbc 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -101,7 +101,7 @@ SECTIONS {
asm/map_obj_lock.o(.text);
src/text_window.o(.text);
src/script.o(.text);
- asm/scrcmd.o(.text);
+ src/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
src/event_data.o(.text);
asm/coord_event_weather.o(.text);
@@ -354,7 +354,7 @@ SECTIONS {
data/field_ground_effect.o(.rodata);
data/map_obj_8097404.o(.rodata);
data/text_window.o(.rodata);
- data/scrcmd.o(.rodata);
+ src/scrcmd.o(.rodata);
data/coord_event_weather.o(.rodata);
data/field_tasks.o(.rodata);
data/reset_rtc_screen.o(.rodata);
diff --git a/src/battle_util.c b/src/battle_util.c
index 636e27bdf..0a0badb33 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -132,6 +132,8 @@ extern const u8 BattleScript_MoveHPDrain[];
extern const u8 BattleScript_MoveHPDrain_PPLoss[];
extern const u8 BattleScript_FlashFireBoost[];
extern const u8 BattleScript_FlashFireBoost_PPLoss[];
+extern const u8 gUnknown_082DB592[];
+extern const u8 gUnknown_082DB591[];
extern const u8 BattleScript_ColorChangeActivates[];
extern const u8 BattleScript_RoughSkinActivates[];
extern const u8 BattleScript_ApplySecondaryEffect[];
@@ -1859,13 +1861,12 @@ u8 CastformDataTypeChange(u8 bank)
return formChange;
}
-// We meet again, ABE.
-#ifdef NONMATCHING
+// The largest function in the game, but even it could not save itself from decompiling.
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
u8 effect = 0;
- struct Pokemon* pokeAtk;
- struct Pokemon* pokeDef;
+ struct Pokemon *pokeAtk;
+ struct Pokemon *pokeDef;
u16 speciesAtk;
u16 speciesDef;
u32 pidAtk;
@@ -1893,12 +1894,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning?
{
- int i; // r4
+ u8 moveType;
+ s32 i;
u16 move;
- // Hmm...
- #define moveType moveArg
- //u16 moveType;
u8 side;
+ u8 target1;
if (special)
gLastUsedAbility = special;
@@ -1918,44 +1918,45 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (caseID)
{
case ABILITYEFFECT_ON_SWITCHIN: // 0
- //_08042A18
if (gBankAttacker >= gNoOfAllBanks)
gBankAttacker = bank;
switch (gLastUsedAbility)
{
case ABILITYEFFECT_SWITCH_IN_WEATHER:
- //_08042A86
- switch (weather_get_current())
+ if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
{
- case 3:
- case 5:
- case 13:
- if (!(gBattleWeather & WEATHER_RAIN_ANY))
- {
- gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
- gBattleScripting.animArg1 = 0xA;
- gBattleScripting.bank = bank;
- effect++;
- }
- break;
- case 8:
- if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
- {
- gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
- gBattleScripting.animArg1 = 0xC;
- gBattleScripting.bank = bank;
- effect++;
- }
- break;
- case 12:
- if (!(gBattleWeather & WEATHER_SUN_ANY))
+ switch (weather_get_current())
{
- gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
- gBattleScripting.animArg1 = 0xB;
- gBattleScripting.bank = bank;
- effect++;
+ case 3:
+ case 5:
+ case 13:
+ if (!(gBattleWeather & WEATHER_RAIN_ANY))
+ {
+ gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
+ gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES;
+ gBattleScripting.bank = bank;
+ effect++;
+ }
+ break;
+ case 8:
+ if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
+ {
+ gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
+ gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES;
+ gBattleScripting.bank = bank;
+ effect++;
+ }
+ break;
+ case 12:
+ if (!(gBattleWeather & WEATHER_SUN_ANY))
+ {
+ gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
+ gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES;
+ gBattleScripting.bank = bank;
+ effect++;
+ }
+ break;
}
- break;
}
if (effect)
{
@@ -1964,7 +1965,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_DRIZZLE:
- //_08042B78
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT))
{
gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY);
@@ -1974,7 +1974,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_SAND_STREAM:
- //_08042BA8
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
@@ -1984,7 +1983,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_DROUGHT:
- //_08042BD8
if (!(gBattleWeather & WEATHER_SUN_PERMANENT))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
@@ -1994,7 +1992,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_INTIMIDATE:
- //_08042C08
if (!(gSpecialStatuses[bank].intimidatedPoke))
{
gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES;
@@ -2002,13 +1999,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_FORECAST:
- //_08042C3C
effect = CastformDataTypeChange(bank);
if (effect != 0)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
gBattleScripting.bank = bank;
- gBattleStruct->formToChangeInto = effect - 1;
+ *(&gBattleStruct->formToChangeInto) = effect - 1;
}
break;
case ABILITY_TRACE:
@@ -2021,18 +2017,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_CLOUD_NINE:
case ABILITY_AIR_LOCK:
{
- u8 i;
-
- for (i = 0; i < gNoOfAllBanks; i++)
+ // that's a weird choice for a variable, why not use i or bank?
+ for (target1 = 0; target1 < gNoOfAllBanks; target1++)
{
- // TODO: i should be in r6 here
- //asm("":::"r4","r5");
- effect = CastformDataTypeChange(i);
+ effect = CastformDataTypeChange(target1);
if (effect != 0)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
- gBattleScripting.bank = i;
- gBattleStruct->formToChangeInto = effect - 1;
+ gBattleScripting.bank = target1;
+ *(&gBattleStruct->formToChangeInto) = effect - 1;
break;
}
}
@@ -2041,18 +2034,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_ENDTURN: // 1
- //_08042CDC
if (gBattleMons[bank].hp != 0)
{
gBankAttacker = bank;
switch (gLastUsedAbility)
{
case ABILITY_RAIN_DISH:
- //_08042D22
if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY)
&& gBattleMons[bank].maxHP > gBattleMons[bank].hp)
{
- gLastUsedAbility = ABILITY_RAIN_DISH; //why
+ gLastUsedAbility = ABILITY_RAIN_DISH; // why
BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates);
gBattleMoveDamage = gBattleMons[bank].maxHP / 16;
if (gBattleMoveDamage == 0)
@@ -2062,7 +2053,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_SHED_SKIN:
- //_08042DA0
if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0)
{
if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON))
@@ -2076,7 +2066,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
gBattleMons[bank].status1 = 0;
- gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nighmare glitch
+ gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch
gBattleScripting.bank = gActiveBank = bank;
BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates);
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
@@ -2085,7 +2075,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_SPEED_BOOST:
- //_08042E84
if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2)
{
gBattleMons[bank].statStages[STAT_STAGE_SPEED]++;
@@ -2103,7 +2092,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_MOVES_BLOCK: // 2
- //_08042EF8
if (gLastUsedAbility == ABILITY_SOUNDPROOF)
{
for (i = 0; sSoundMovesTable[i] != 0xFFFF; i++)
@@ -2132,6 +2120,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
else
gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
+
effect = 1;
}
break;
@@ -2142,11 +2131,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
else
gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
+
effect = 1;
}
break;
case ABILITY_FLASH_FIRE:
- //_0804305C
if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE))
{
if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE))
@@ -2156,6 +2145,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
+
gBattleResources->flags->flags[bank] |= UNKNOWN_FLAG_FLASH_FIRE;
effect = 2;
}
@@ -2166,6 +2156,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
+
effect = 2;
}
}
@@ -2176,9 +2167,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleMons[bank].maxHP == gBattleMons[bank].hp)
{
if ((gProtectStructs[gBankAttacker].notFirstStrike))
- gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
+ gBattlescriptCurrInstr = gUnknown_082DB592;
else
- gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
+ gBattlescriptCurrInstr = gUnknown_082DB591;
}
else
{
@@ -2191,11 +2182,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CONTACT: // 4
- //_080431AC
switch (gLastUsedAbility)
{
case ABILITY_COLOR_CHANGE:
- //_08043288
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& move != MOVE_STRUGGLE
&& gBattleMoves[move].power != 0
@@ -2206,17 +2195,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleMons[bank].type1 = moveType;
gBattleMons[bank].type2 = moveType;
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 3;
- gBattleTextBuff1[2] = moveType;
- gBattleTextBuff1[3] = 0xFF;
+ PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType)
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ColorChangeActivates;
effect++;
}
break;
case ABILITY_ROUGH_SKIN:
- //_08043350
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& gBattleMons[gBankAttacker].hp != 0
&& !gProtectStructs[gBankAttacker].confusionSelfDmg
@@ -2232,7 +2217,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_EFFECT_SPORE:
- //_08043410
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& gBattleMons[gBankAttacker].hp != 0
&& !gProtectStructs[gBankAttacker].confusionSelfDmg
@@ -2244,9 +2228,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3;
} while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0);
- if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
- gBattleCommunication[MOVE_EFFECT_BYTE] += 2;
- gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40;
+
+ if (gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_BURN)
+ gBattleCommunication[MOVE_EFFECT_BYTE] += 2; // 5 MOVE_EFFECT_PARALYSIS
+
+ gBattleCommunication[MOVE_EFFECT_BYTE] += MOVE_EFFECT_AFFECTS_USER;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2261,7 +2247,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
&& (Random() % 3) == 0)
{
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_POISON;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2276,7 +2262,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
&& (Random() % 3) == 0)
{
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2291,7 +2277,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
&& (Random() % 3) == 0)
{
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2299,7 +2285,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_CUTE_CHARM:
- //_0804379C
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& gBattleMons[gBankAttacker].hp != 0
&& !gProtectStructs[gBankAttacker].confusionSelfDmg
@@ -2310,10 +2295,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS
&& GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef)
&& !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
- && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF
- && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF)
+ && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS
+ && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS)
{
- gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10);
+ gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankTarget);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
effect++;
@@ -2323,28 +2308,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
break;
case ABILITYEFFECT_IMMUNITY: // 5
{
- #define i bank
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (bank = 0; bank < gNoOfAllBanks; bank++)
{
- switch (gBattleMons[i].ability)
+ switch (gBattleMons[bank].ability)
{
case ABILITY_IMMUNITY:
- if (gBattleMons[i].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00?
+ if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER))
{
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
effect = 1;
}
break;
case ABILITY_OWN_TEMPO:
- //_08043A7C
- if (gBattleMons[i].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn);
effect = 2;
}
break;
case ABILITY_LIMBER:
- if (gBattleMons[i].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
effect = 1;
@@ -2352,30 +2335,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
break;
case ABILITY_INSOMNIA:
case ABILITY_VITAL_SPIRIT:
- if (gBattleMons[i].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS_SLEEP)
{
- gBattleMons[i].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
effect = 1;
}
break;
case ABILITY_WATER_VEIL:
- if (gBattleMons[i].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS_BURN)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
effect = 1;
}
break;
case ABILITY_MAGMA_ARMOR:
- if (gBattleMons[i].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
effect = 1;
}
break;
case ABILITY_OBLIVIOUS:
- //_08043B70
- if (gBattleMons[i].status2 & STATUS2_INFATUATION)
+ if (gBattleMons[bank].status2 & STATUS2_INFATUATION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
effect = 3;
@@ -2387,56 +2369,52 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (effect)
{
case 1: // status cleared
- gBattleMons[i].status1 = 0;
+ gBattleMons[bank].status1 = 0;
break;
case 2: // get rid of confusion
- gBattleMons[i].status2 &= ~(STATUS2_CONFUSION);
+ gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
break;
case 3: // get rid of infatuation
- gBattleMons[i].status2 &= ~(STATUS2_INFATUATION);
+ gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
break;
}
+
BattleScriptPushCursor();
gBattlescriptCurrInstr = gUnknown_082DB68C;
- gBattleScripting.bank = i;
- gActiveBank = i;
+ gBattleScripting.bank = bank;
+ gActiveBank = bank;
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
return effect;
}
}
- #undef i
}
break;
case ABILITYEFFECT_FORECAST: // 6
+ for (bank = 0; bank < gNoOfAllBanks; bank++)
{
- #define i bank
- for (i = 0; i < gNoOfAllBanks; i++)
+ if (gBattleMons[bank].ability == ABILITY_FORECAST)
{
- if (gBattleMons[i].ability == ABILITY_FORECAST)
+ effect = CastformDataTypeChange(bank);
+ if (effect)
{
- effect = CastformDataTypeChange(i);
- if (effect)
- {
- BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
- gBattleScripting.bank = i;
- gBattleStruct->formToChangeInto = effect - 1;
- return effect;
- }
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
+ gBattleScripting.bank = bank;
+ *(&gBattleStruct->formToChangeInto) = effect - 1;
+ return effect;
}
}
- #undef i
}
break;
case ABILITYEFFECT_SYNCHRONIZE: // 7
- //_08043CBC
if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT))
{
gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT);
- gBattleStruct->synchronizeMoveEffect &= 0x3F;
- if (gBattleStruct->synchronizeMoveEffect == 6)
- gBattleStruct->synchronizeMoveEffect = 2;
- gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + 0x40;
+ gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN);
+ if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC)
+ gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON;
+
+ gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER;
gBattleScripting.bank = gBankTarget;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
@@ -2448,9 +2426,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT))
{
gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT);
- gBattleStruct->synchronizeMoveEffect &= 0x3F;
- if (gBattleStruct->synchronizeMoveEffect == 6)
- gBattleStruct->synchronizeMoveEffect = 2;
+ gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN);
+ if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC)
+ gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON;
+
gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect;
gBattleScripting.bank = gBankAttacker;
BattleScriptPushCursor();
@@ -2478,15 +2457,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
{
- u8 opposite = (GetBankIdentity(i) ^ 1) & 1;
- u8 target1 = GetBankByIdentity(opposite);
- u8 target2 = GetBankByIdentity(opposite + 2);
+ u8 target2;
+ side = (GetBankIdentity(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
+ target1 = GetBankByIdentity(side);
+ target2 = GetBankByIdentity(side + BIT_MON);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
- gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | opposite);
+ gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side);
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
effect++;
@@ -2522,16 +2502,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gStatuses3[i] &= ~(STATUS3_TRACE);
gBattleScripting.bank = i;
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = gActiveBank;
- gBattleTextBuff1[3] = gBattlePartyID[gActiveBank];
- gBattleTextBuff1[4] = EOS;
-
- gBattleTextBuff2[0] = 0xFD;
- gBattleTextBuff2[1] = 9;
- gBattleTextBuff2[2] = gLastUsedAbility;
- gBattleTextBuff2[3] = EOS;
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank])
+ PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility)
break;
}
}
@@ -2656,3045 +2628,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
}
- if (effect && caseID < 0xC && gLastUsedAbility != 0xFF)
+
+ if (effect && caseID < ABILITYEFFECT_CHECK_OTHER_SIDE && gLastUsedAbility != 0xFF)
RecordAbilityBattle(bank, gLastUsedAbility);
}
return effect;
}
-#else
-__attribute__((naked))
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
-{
- asm(
- "\n\
- .syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x28\n\
- ldr r4, [sp, 0x48]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x4]\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r10, r1\n\
- lsls r2, 24\n\
- lsrs r6, r2, 24\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- mov r8, r3\n\
- lsls r4, 16\n\
- lsrs r4, 16\n\
- movs r0, 0\n\
- mov r9, r0\n\
- ldr r5, =gBankAttacker\n\
- ldr r1, =gNoOfAllBanks\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc _08042864\n\
- mov r1, r10\n\
- strb r1, [r5]\n\
-_08042864:\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08042894\n\
- ldr r1, =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, =gPlayerParty\n\
- b _080428A4\n\
- .pool\n\
-_08042894:\n\
- ldr r1, =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, =gEnemyParty\n\
-_080428A4:\n\
- adds r7, r1, r0\n\
- ldr r5, =gBankTarget\n\
- ldr r1, =gNoOfAllBanks\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc _080428B6\n\
- mov r2, r10\n\
- strb r2, [r5]\n\
-_080428B6:\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080428E8\n\
- ldr r1, =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, =gPlayerParty\n\
- b _080428F8\n\
- .pool\n\
-_080428E8:\n\
- ldr r1, =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, =gEnemyParty\n\
-_080428F8:\n\
- adds r5, r1, r0\n\
- adds r0, r7, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0x8]\n\
- adds r0, r7, 0\n\
- movs r1, 0\n\
- bl GetMonData\n\
- str r0, [sp, 0x10]\n\
- adds r0, r5, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0xC]\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl GetMonData\n\
- str r0, [sp, 0x14]\n\
- ldr r0, =gBattleTypeFlags\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0804293A\n\
- bl _0804443A\n\
-_0804293A:\n\
- mov r3, r8\n\
- cmp r3, 0\n\
- beq _08042958\n\
- ldr r0, =gLastUsedAbility\n\
- strb r3, [r0]\n\
- adds r7, r0, 0\n\
- b _0804296E\n\
- .pool\n\
-_08042958:\n\
- ldr r2, =gLastUsedAbility\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r5, r10\n\
- muls r5, r0\n\
- adds r0, r5, 0\n\
- adds r0, r1\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- strb r0, [r2]\n\
- adds r7, r2, 0\n\
-_0804296E:\n\
- cmp r4, 0\n\
- beq _08042980\n\
- adds r5, r4, 0\n\
- b _08042984\n\
- .pool\n\
-_08042980:\n\
- ldr r0, =gCurrentMove\n\
- ldrh r5, [r0]\n\
-_08042984:\n\
- ldr r1, =gBattleStruct\n\
- ldr r0, [r1]\n\
- ldrb r0, [r0, 0x13]\n\
- mov r8, r1\n\
- cmp r0, 0\n\
- beq _080429A0\n\
- movs r3, 0x3F\n\
- ands r3, r0\n\
- b _080429AC\n\
- .pool\n\
-_080429A0:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r3, [r0, 0x2]\n\
-_080429AC:\n\
- ldr r0, [sp, 0x4]\n\
- cmp r0, 0x13\n\
- bls _080429B6\n\
- bl _0804441E\n\
-_080429B6:\n\
- lsls r0, 2\n\
- ldr r1, =_080429C8\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
-_080429C8:\n\
- .4byte _08042A18\n\
- .4byte _08042CDC\n\
- .4byte _08042EF8\n\
- .4byte _08042F8C\n\
- .4byte _080431AC\n\
- .4byte _08043908\n\
- .4byte _08043C6C\n\
- .4byte _08043CBC\n\
- .4byte _08043D40\n\
- .4byte _08043DC4\n\
- .4byte _08043FE4\n\
- .4byte _08043E08\n\
- .4byte _08044028\n\
- .4byte _08044084\n\
- .4byte _080440E0\n\
- .4byte _080441DC\n\
- .4byte _08044220\n\
- .4byte _0804427C\n\
- .4byte _080443EC\n\
- .4byte _08044196\n\
-_08042A18:\n\
- ldr r2, =gBankAttacker\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r1, [r2]\n\
- adds r5, r0, 0\n\
- ldrb r3, [r5]\n\
- cmp r1, r3\n\
- bcc _08042A2A\n\
- mov r0, r10\n\
- strb r0, [r2]\n\
-_08042A2A:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0x2D\n\
- bne _08042A32\n\
- b _08042BA8\n\
-_08042A32:\n\
- cmp r0, 0x2D\n\
- bgt _08042A64\n\
- cmp r0, 0xD\n\
- bne _08042A3C\n\
- b _08042CA4\n\
-_08042A3C:\n\
- cmp r0, 0xD\n\
- bgt _08042A54\n\
- cmp r0, 0x2\n\
- bne _08042A46\n\
- b _08042B78\n\
-_08042A46:\n\
- bl _0804441E\n\
- .pool\n\
-_08042A54:\n\
- cmp r0, 0x16\n\
- bne _08042A5A\n\
- b _08042C08\n\
-_08042A5A:\n\
- cmp r0, 0x24\n\
- bne _08042A60\n\
- b _08042C68\n\
-_08042A60:\n\
- bl _0804441E\n\
-_08042A64:\n\
- cmp r0, 0x46\n\
- bne _08042A6A\n\
- b _08042BD8\n\
-_08042A6A:\n\
- cmp r0, 0x46\n\
- bgt _08042A78\n\
- cmp r0, 0x3B\n\
- bne _08042A74\n\
- b _08042C3C\n\
-_08042A74:\n\
- bl _0804441E\n\
-_08042A78:\n\
- cmp r0, 0x4D\n\
- bne _08042A7E\n\
- b _08042CA4\n\
-_08042A7E:\n\
- cmp r0, 0xFF\n\
- beq _08042A86\n\
- bl _0804441E\n\
-_08042A86:\n\
- ldr r0, =gBattleTypeFlags\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 17\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08042B4C\n\
- bl weather_get_current\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- subs r0, 0x3\n\
- cmp r0, 0xA\n\
- bhi _08042B4C\n\
- lsls r0, 2\n\
- ldr r1, =_08042AB4\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
-_08042AB4:\n\
- .4byte _08042AE0\n\
- .4byte _08042B4C\n\
- .4byte _08042AE0\n\
- .4byte _08042B4C\n\
- .4byte _08042B4C\n\
- .4byte _08042B04\n\
- .4byte _08042B4C\n\
- .4byte _08042B4C\n\
- .4byte _08042B4C\n\
- .4byte _08042B28\n\
- .4byte _08042AE0\n\
-_08042AE0:\n\
- ldr r2, =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08042B4C\n\
- movs r0, 0x5\n\
- strh r0, [r2]\n\
- ldr r1, =gBattleScripting\n\
- movs r0, 0xA\n\
- strb r0, [r1, 0x10]\n\
- mov r2, r10\n\
- strb r2, [r1, 0x17]\n\
- b _08042B42\n\
- .pool\n\
-_08042B04:\n\
- ldr r3, =gBattleWeather\n\
- ldrh r1, [r3]\n\
- movs r2, 0x18\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08042B4C\n\
- strh r2, [r3]\n\
- ldr r1, =gBattleScripting\n\
- movs r0, 0xC\n\
- strb r0, [r1, 0x10]\n\
- mov r3, r10\n\
- strb r3, [r1, 0x17]\n\
- b _08042B42\n\
- .pool\n\
-_08042B28:\n\
- ldr r3, =gBattleWeather\n\
- ldrh r1, [r3]\n\
- movs r2, 0x60\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08042B4C\n\
- strh r2, [r3]\n\
- ldr r1, =gBattleScripting\n\
- movs r0, 0xB\n\
- strb r0, [r1, 0x10]\n\
- mov r5, r10\n\
- strb r5, [r1, 0x17]\n\
-_08042B42:\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08042B4C:\n\
- mov r0, r9\n\
- cmp r0, 0\n\
- bne _08042B56\n\
- bl _0804443A\n\
-_08042B56:\n\
- bl weather_get_current\n\
- ldr r1, =gBattleCommunication\n\
- strb r0, [r1, 0x5]\n\
- ldr r0, =gUnknown_082DACE7\n\
- bl BattleScriptPushCursorAndCallback\n\
- bl _0804441E\n\
- .pool\n\
-_08042B78:\n\
- ldr r2, =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x4\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042B88\n\
- bl _0804441E\n\
-_08042B88:\n\
- movs r0, 0x5\n\
- strh r0, [r2]\n\
- ldr r0, =BattleScript_DrizzleActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- mov r1, r10\n\
- strb r1, [r0, 0x17]\n\
- bl _080443D0\n\
- .pool\n\
-_08042BA8:\n\
- ldr r2, =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042BB8\n\
- bl _0804441E\n\
-_08042BB8:\n\
- movs r0, 0x18\n\
- strh r0, [r2]\n\
- ldr r0, =BattleScript_SandstreamActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- mov r2, r10\n\
- strb r2, [r0, 0x17]\n\
- bl _080443D0\n\
- .pool\n\
-_08042BD8:\n\
- ldr r2, =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042BE8\n\
- bl _0804441E\n\
-_08042BE8:\n\
- movs r0, 0x60\n\
- strh r0, [r2]\n\
- ldr r0, =BattleScript_DroughtActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- mov r3, r10\n\
- strb r3, [r0, 0x17]\n\
- bl _080443D0\n\
- .pool\n\
-_08042C08:\n\
- ldr r0, =gSpecialStatuses\n\
- mov r5, r10\n\
- lsls r2, r5, 2\n\
- adds r1, r2, r5\n\
- lsls r1, 2\n\
- adds r3, r1, r0\n\
- ldrb r0, [r3]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08042C20\n\
- bl _0804441E\n\
-_08042C20:\n\
- ldr r1, =gStatuses3\n\
- adds r1, r2, r1\n\
- ldr r0, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 12\n\
- orrs r0, r2\n\
- str r0, [r1]\n\
- ldrb r0, [r3]\n\
- movs r1, 0x8\n\
- b _08042C92\n\
- .pool\n\
-_08042C3C:\n\
- mov r0, r10\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- bne _08042C50\n\
- bl _0804443A\n\
-_08042C50:\n\
- ldr r0, =BattleScript_CastformChange\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- mov r1, r10\n\
- strb r1, [r0, 0x17]\n\
- bl _080442E2\n\
- .pool\n\
-_08042C68:\n\
- ldr r0, =gSpecialStatuses\n\
- mov r3, r10\n\
- lsls r2, r3, 2\n\
- adds r1, r2, r3\n\
- lsls r1, 2\n\
- adds r3, r1, r0\n\
- ldrb r0, [r3]\n\
- lsls r0, 27\n\
- cmp r0, 0\n\
- bge _08042C80\n\
- bl _0804441E\n\
-_08042C80:\n\
- ldr r1, =gStatuses3\n\
- adds r1, r2, r1\n\
- ldr r0, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 13\n\
- orrs r0, r2\n\
- str r0, [r1]\n\
- ldrb r0, [r3]\n\
- movs r1, 0x10\n\
-_08042C92:\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- bl _0804441E\n\
- .pool\n\
-_08042CA4:\n\
- movs r6, 0\n\
- ldrb r5, [r5]\n\
- cmp r6, r5\n\
- bcc _08042CB0\n\
- bl _0804441E\n\
-_08042CB0:\n\
- adds r0, r6, 0\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- beq _08042CC4\n\
- bl _080442D8\n\
-_08042CC4:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r6, r0\n\
- bcc _08042CB0\n\
- bl _0804441E\n\
- .pool\n\
-_08042CDC:\n\
- ldr r5, =gBattleMons\n\
- mov r8, r5\n\
- movs r0, 0x58\n\
- mov r6, r10\n\
- muls r6, r0\n\
- adds r4, r6, r5\n\
- ldrh r0, [r4, 0x28]\n\
- cmp r0, 0\n\
- bne _08042CF2\n\
- bl _0804441E\n\
-_08042CF2:\n\
- ldr r0, =gBankAttacker\n\
- mov r1, r10\n\
- strb r1, [r0]\n\
- ldrb r5, [r7]\n\
- cmp r5, 0x2C\n\
- beq _08042D22\n\
- cmp r5, 0x2C\n\
- bgt _08042D14\n\
- cmp r5, 0x3\n\
- bne _08042D08\n\
- b _08042E84\n\
-_08042D08:\n\
- bl _0804441E\n\
- .pool\n\
-_08042D14:\n\
- cmp r5, 0x36\n\
- bne _08042D1A\n\
- b _08042ED0\n\
-_08042D1A:\n\
- cmp r5, 0x3D\n\
- beq _08042DA0\n\
- bl _0804441E\n\
-_08042D22:\n\
- movs r0, 0\n\
- str r0, [sp]\n\
- movs r0, 0x13\n\
- movs r1, 0\n\
- movs r2, 0xD\n\
- movs r3, 0\n\
- bl AbilityBattleEffects\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0\n\
- beq _08042D3E\n\
- bl _0804441E\n\
-_08042D3E:\n\
- str r0, [sp]\n\
- movs r0, 0x13\n\
- movs r1, 0\n\
- movs r2, 0x4D\n\
- movs r3, 0\n\
- bl AbilityBattleEffects\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08042D56\n\
- bl _0804441E\n\
-_08042D56:\n\
- ldr r0, =gBattleWeather\n\
- ldrh r1, [r0]\n\
- movs r0, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08042D66\n\
- bl _0804441E\n\
-_08042D66:\n\
- ldrh r0, [r4, 0x2C]\n\
- ldrh r2, [r4, 0x28]\n\
- cmp r0, r2\n\
- bhi _08042D72\n\
- bl _0804441E\n\
-_08042D72:\n\
- strb r5, [r7]\n\
- ldr r0, =BattleScript_RainDishActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r1, =gBattleMoveDamage\n\
- ldrh r0, [r4, 0x2C]\n\
- lsrs r0, 4\n\
- str r0, [r1]\n\
- cmp r0, 0\n\
- bne _08042D8A\n\
- movs r0, 0x1\n\
- str r0, [r1]\n\
-_08042D8A:\n\
- ldr r0, [r1]\n\
- negs r0, r0\n\
- str r0, [r1]\n\
- bl _080443D0\n\
- .pool\n\
-_08042DA0:\n\
- mov r0, r8\n\
- adds r0, 0x4C\n\
- adds r5, r6, r0\n\
- ldrb r0, [r5]\n\
- cmp r0, 0\n\
- bne _08042DB0\n\
- bl _0804441E\n\
-_08042DB0:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- cmp r4, 0\n\
- beq _08042DCA\n\
- bl _0804441E\n\
-_08042DCA:\n\
- ldr r0, [r5]\n\
- movs r1, 0x88\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042DDC\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_PoisonJpn\n\
- bl StringCopy\n\
-_08042DDC:\n\
- ldr r0, [r5]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042DEE\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_SleepJpn\n\
- bl StringCopy\n\
-_08042DEE:\n\
- ldr r0, [r5]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042E00\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_ParalysisJpn\n\
- bl StringCopy\n\
-_08042E00:\n\
- ldr r0, [r5]\n\
- movs r1, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042E12\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_BurnJpn\n\
- bl StringCopy\n\
-_08042E12:\n\
- ldr r0, [r5]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042E24\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_IceJpn\n\
- bl StringCopy\n\
-_08042E24:\n\
- str r4, [r5]\n\
- mov r1, r8\n\
- adds r1, 0x50\n\
- adds r1, r6, r1\n\
- ldr r0, [r1]\n\
- ldr r2, =0xf7ffffff\n\
- ands r0, r2\n\
- str r0, [r1]\n\
- ldr r0, =gBattleScripting\n\
- ldr r4, =gActiveBank\n\
- mov r3, r10\n\
- strb r3, [r4]\n\
- strb r3, [r0, 0x17]\n\
- ldr r0, =BattleScript_ShedSkinActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- str r5, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x28\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl EmitSetMonData\n\
- ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
- bl _080443D0\n\
- .pool\n\
-_08042E84:\n\
- ldrb r2, [r4, 0x1B]\n\
- movs r0, 0x1B\n\
- ldrsb r0, [r4, r0]\n\
- cmp r0, 0xB\n\
- ble _08042E92\n\
- bl _0804441E\n\
-_08042E92:\n\
- ldr r0, =gDisableStructs\n\
- mov r5, r10\n\
- lsls r1, r5, 3\n\
- subs r1, r5\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x16]\n\
- cmp r0, 0x2\n\
- bne _08042EA8\n\
- bl _0804441E\n\
-_08042EA8:\n\
- adds r0, r2, 0x1\n\
- movs r1, 0\n\
- strb r0, [r4, 0x1B]\n\
- ldr r4, =gBattleScripting\n\
- movs r0, 0x11\n\
- strb r0, [r4, 0x10]\n\
- strb r1, [r4, 0x11]\n\
- ldr r0, =BattleScript_SpeedBoostActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- strb r5, [r4, 0x17]\n\
- bl _080443D0\n\
- .pool\n\
-_08042ED0:\n\
- ldr r2, =gDisableStructs\n\
- ldrb r0, [r0]\n\
- lsls r1, r0, 3\n\
- subs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r2\n\
- ldrb r3, [r1, 0x18]\n\
- lsls r0, r3, 31\n\
- lsrs r0, 31\n\
- movs r2, 0x1\n\
- eors r2, r0\n\
- movs r0, 0x2\n\
- negs r0, r0\n\
- ands r0, r3\n\
- orrs r0, r2\n\
- strb r0, [r1, 0x18]\n\
- bl _0804441E\n\
- .pool\n\
-_08042EF8:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0x2B\n\
- beq _08042F02\n\
- bl _0804441E\n\
-_08042F02:\n\
- movs r4, 0\n\
- ldr r0, =sSoundMovesTable\n\
- ldrh r2, [r0]\n\
- ldr r3, =0x0000ffff\n\
- adds r1, r0, 0\n\
- cmp r2, r3\n\
- bne _08042F14\n\
- bl _0804441E\n\
-_08042F14:\n\
- cmp r2, r5\n\
- beq _08042F2C\n\
- adds r2, r1, 0\n\
-_08042F1A:\n\
- adds r2, 0x2\n\
- adds r4, 0x1\n\
- ldrh r0, [r2]\n\
- cmp r0, r3\n\
- bne _08042F28\n\
- bl _0804441E\n\
-_08042F28:\n\
- cmp r0, r5\n\
- bne _08042F1A\n\
-_08042F2C:\n\
- lsls r0, r4, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- ldr r0, =0x0000ffff\n\
- cmp r1, r0\n\
- bne _08042F3C\n\
- bl _0804441E\n\
-_08042F3C:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 5\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08042F62\n\
- ldr r0, =gHitMarker\n\
- ldr r1, [r0]\n\
- movs r2, 0x80\n\
- lsls r2, 4\n\
- orrs r1, r2\n\
- str r1, [r0]\n\
-_08042F62:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_SoundproofProtected\n\
- str r0, [r1]\n\
- movs r0, 0x1\n\
- mov r9, r0\n\
- bl _08044424\n\
- .pool\n\
-_08042F8C:\n\
- cmp r5, 0\n\
- bne _08042F94\n\
- bl _0804441E\n\
-_08042F94:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0xB\n\
- beq _08043004\n\
- cmp r0, 0xB\n\
- bgt _08042FA4\n\
- cmp r0, 0xA\n\
- beq _08042FAA\n\
- b _08043126\n\
-_08042FA4:\n\
- cmp r0, 0x12\n\
- beq _0804305C\n\
- b _08043126\n\
-_08042FAA:\n\
- cmp r3, 0xD\n\
- beq _08042FB0\n\
- b _08043126\n\
-_08042FB0:\n\
- ldr r0, =gBattleMoves\n\
- lsls r1, r5, 1\n\
- adds r1, r5\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _08042FC2\n\
- b _08043126\n\
-_08042FC2:\n\
- ldr r1, =gProtectStructs\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08042FF0\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_MoveHPDrain\n\
- b _08042FF4\n\
- .pool\n\
-_08042FF0:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\
-_08042FF4:\n\
- str r0, [r1]\n\
- movs r1, 0x1\n\
- b _08043124\n\
- .pool\n\
-_08043004:\n\
- cmp r3, 0xB\n\
- beq _0804300A\n\
- b _08043126\n\
-_0804300A:\n\
- ldr r0, =gBattleMoves\n\
- lsls r1, r5, 1\n\
- adds r1, r5\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _0804301C\n\
- b _08043126\n\
-_0804301C:\n\
- ldr r1, =gProtectStructs\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08043048\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_MoveHPDrain\n\
- b _0804304C\n\
- .pool\n\
-_08043048:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\
-_0804304C:\n\
- str r0, [r1]\n\
- movs r2, 0x1\n\
- mov r9, r2\n\
- b _08043126\n\
- .pool\n\
-_0804305C:\n\
- cmp r3, 0xA\n\
- bne _08043126\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043126\n\
- ldr r2, =gBattleResources\n\
- ldr r0, [r2]\n\
- ldr r0, [r0, 0x4]\n\
- mov r5, r10\n\
- lsls r1, r5, 2\n\
- adds r0, r1\n\
- ldr r3, [r0]\n\
- movs r4, 0x1\n\
- ands r3, r4\n\
- adds r5, r1, 0\n\
- cmp r3, 0\n\
- bne _080430EC\n\
- ldr r0, =gBattleCommunication\n\
- strb r3, [r0, 0x5]\n\
- ldr r1, =gProtectStructs\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _080430C8\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_FlashFireBoost\n\
- b _080430CC\n\
- .pool\n\
-_080430C8:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\
-_080430CC:\n\
- str r0, [r1]\n\
- ldr r0, [r2]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r5\n\
- ldr r0, [r1]\n\
- movs r2, 0x1\n\
- orrs r0, r2\n\
- str r0, [r1]\n\
- movs r0, 0x2\n\
- mov r9, r0\n\
- b _08043126\n\
- .pool\n\
-_080430EC:\n\
- ldr r0, =gBattleCommunication\n\
- strb r4, [r0, 0x5]\n\
- ldr r1, =gProtectStructs\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _0804311C\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_FlashFireBoost\n\
- b _08043120\n\
- .pool\n\
-_0804311C:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\
-_08043120:\n\
- str r0, [r1]\n\
- movs r1, 0x2\n\
-_08043124:\n\
- mov r9, r1\n\
-_08043126:\n\
- mov r2, r9\n\
- cmp r2, 0x1\n\
- beq _08043130\n\
- bl _0804441E\n\
-_08043130:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r0, r1\n\
- ldrh r0, [r1, 0x2C]\n\
- ldrh r5, [r1, 0x28]\n\
- cmp r0, r5\n\
- bne _0804318C\n\
- ldr r1, =gProtectStructs\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08043178\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =gUnknown_082DB592\n\
- str r0, [r1]\n\
- bl _0804441E\n\
- .pool\n\
-_08043178:\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =gUnknown_082DB591\n\
- str r0, [r1]\n\
- bl _0804441E\n\
- .pool\n\
-_0804318C:\n\
- ldr r2, =gBattleMoveDamage\n\
- ldrh r0, [r1, 0x2C]\n\
- lsrs r0, 2\n\
- str r0, [r2]\n\
- cmp r0, 0\n\
- bne _0804319C\n\
- mov r0, r9\n\
- str r0, [r2]\n\
-_0804319C:\n\
- ldr r0, [r2]\n\
- negs r0, r0\n\
- str r0, [r2]\n\
- bl _0804441E\n\
- .pool\n\
-_080431AC:\n\
- ldrb r0, [r7]\n\
- subs r0, 0x9\n\
- cmp r0, 0x2F\n\
- bls _080431B8\n\
- bl _0804441E\n\
-_080431B8:\n\
- lsls r0, 2\n\
- ldr r1, =_080431C8\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
-_080431C8:\n\
- .4byte _080435E4\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _08043288\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _08043350\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _08043410\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _08043508\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _080436C0\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804441E\n\
- .4byte _0804379C\n\
-_08043288:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043298\n\
- bl _0804441E\n\
-_08043298:\n\
- cmp r5, 0xA5\n\
- bne _080432A0\n\
- bl _0804441E\n\
-_080432A0:\n\
- ldr r0, =gBattleMoves\n\
- lsls r1, r5, 1\n\
- adds r1, r5\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _080432B4\n\
- bl _0804441E\n\
-_080432B4:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080432DC\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080432DC\n\
- bl _0804441E\n\
-_080432DC:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r1, r0, r1\n\
- adds r4, r1, 0\n\
- adds r4, 0x21\n\
- ldrb r0, [r4]\n\
- cmp r0, r3\n\
- bne _080432F6\n\
- bl _0804441E\n\
-_080432F6:\n\
- adds r2, r1, 0\n\
- adds r2, 0x22\n\
- ldrb r0, [r2]\n\
- cmp r0, r3\n\
- bne _08043304\n\
- bl _0804441E\n\
-_08043304:\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- bne _0804330E\n\
- bl _0804441E\n\
-_0804330E:\n\
- strb r3, [r4]\n\
- strb r3, [r2]\n\
- ldr r1, =gBattleTextBuff1\n\
- movs r0, 0xFD\n\
- strb r0, [r1]\n\
- movs r0, 0x3\n\
- strb r0, [r1, 0x1]\n\
- strb r3, [r1, 0x2]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x3]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_ColorChangeActivates\n\
- str r0, [r1]\n\
- bl _080443D0\n\
- .pool\n\
-_08043350:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043360\n\
- bl _0804441E\n\
-_08043360:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r3, r0, r1\n\
- ldrh r0, [r3, 0x28]\n\
- cmp r0, 0\n\
- bne _08043376\n\
- bl _0804441E\n\
-_08043376:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08043388\n\
- bl _0804441E\n\
-_08043388:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080433B0\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080433B0\n\
- bl _0804441E\n\
-_080433B0:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r2, 0x1\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080433CA\n\
- bl _0804441E\n\
-_080433CA:\n\
- ldr r1, =gBattleMoveDamage\n\
- ldrh r0, [r3, 0x2C]\n\
- lsrs r0, 4\n\
- str r0, [r1]\n\
- cmp r0, 0\n\
- bne _080433D8\n\
- str r2, [r1]\n\
-_080433D8:\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_RoughSkinActivates\n\
- str r0, [r1]\n\
- bl _080443D0\n\
- .pool\n\
-_08043410:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043420\n\
- bl _0804441E\n\
-_08043420:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _08043436\n\
- bl _0804441E\n\
-_08043436:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08043448\n\
- bl _0804441E\n\
-_08043448:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043470\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043470\n\
- bl _0804441E\n\
-_08043470:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043488\n\
- bl _0804441E\n\
-_08043488:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0xA\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _080434A0\n\
- bl _0804441E\n\
-_080434A0:\n\
- ldr r5, =gBattleCommunication\n\
- movs r4, 0x3\n\
-_080434A4:\n\
- bl Random\n\
- ands r0, r4\n\
- strb r0, [r5, 0x3]\n\
- cmp r0, 0\n\
- beq _080434A4\n\
- ldr r1, =gBattleCommunication\n\
- ldrb r0, [r1, 0x3]\n\
- cmp r0, 0x3\n\
- bne _080434BC\n\
- adds r0, 0x2\n\
- strb r0, [r1, 0x3]\n\
-_080434BC:\n\
- ldrb r0, [r1, 0x3]\n\
- adds r0, 0x40\n\
- strb r0, [r1, 0x3]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _080443D0\n\
- .pool\n\
-_08043508:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043518\n\
- bl _0804441E\n\
-_08043518:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _0804352E\n\
- bl _0804441E\n\
-_0804352E:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08043540\n\
- bl _0804441E\n\
-_08043540:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043568\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043568\n\
- bl _0804441E\n\
-_08043568:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043580\n\
- bl _0804441E\n\
-_08043580:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08043598\n\
- bl _0804441E\n\
-_08043598:\n\
- ldr r1, =gBattleCommunication\n\
- movs r0, 0x42\n\
- strb r0, [r1, 0x3]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _080443D0\n\
- .pool\n\
-_080435E4:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080435F4\n\
- bl _0804441E\n\
-_080435F4:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _0804360A\n\
- bl _0804441E\n\
-_0804360A:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _0804361C\n\
- bl _0804441E\n\
-_0804361C:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043644\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043644\n\
- bl _0804441E\n\
-_08043644:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0804365C\n\
- bl _0804441E\n\
-_0804365C:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08043674\n\
- bl _0804441E\n\
-_08043674:\n\
- ldr r1, =gBattleCommunication\n\
- movs r0, 0x45\n\
- strb r0, [r1, 0x3]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _080443D0\n\
- .pool\n\
-_080436C0:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080436D0\n\
- bl _0804441E\n\
-_080436D0:\n\
- ldr r1, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _080436E6\n\
- bl _0804441E\n\
-_080436E6:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _080436F8\n\
- bl _0804441E\n\
-_080436F8:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043710\n\
- bl _0804441E\n\
-_08043710:\n\
- ldr r2, =gSpecialStatuses\n\
- ldr r0, =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043738\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043738\n\
- bl _0804441E\n\
-_08043738:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08043750\n\
- bl _0804441E\n\
-_08043750:\n\
- ldr r1, =gBattleCommunication\n\
- movs r0, 0x43\n\
- strb r0, [r1, 0x3]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _080443D0\n\
- .pool\n\
-_0804379C:\n\
- ldr r0, =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080437AC\n\
- bl _0804441E\n\
-_080437AC:\n\
- ldr r6, =gBattleMons\n\
- ldr r3, =gBankAttacker\n\
- mov r8, r3\n\
- ldrb r1, [r3]\n\
- movs r7, 0x58\n\
- adds r0, r1, 0\n\
- muls r0, r7\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _080437C6\n\
- bl _0804441E\n\
-_080437C6:\n\
- ldr r0, =gProtectStructs\n\
- lsls r1, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _080437D8\n\
- bl _0804441E\n\
-_080437D8:\n\
- ldr r1, =gBattleMoves\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080437F0\n\
- bl _0804441E\n\
-_080437F0:\n\
- ldr r3, =gSpecialStatuses\n\
- ldr r5, =gBankTarget\n\
- ldrb r1, [r5]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r2, r0, 2\n\
- adds r0, r3, 0\n\
- adds r0, 0x8\n\
- adds r0, r2, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043818\n\
- adds r0, r3, 0\n\
- adds r0, 0xC\n\
- adds r0, r2, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08043818\n\
- bl _0804441E\n\
-_08043818:\n\
- adds r0, r1, 0\n\
- muls r0, r7\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _08043828\n\
- bl _0804441E\n\
-_08043828:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08043840\n\
- bl _0804441E\n\
-_08043840:\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- muls r0, r7\n\
- adds r0, r6\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xC\n\
- bne _08043854\n\
- bl _0804441E\n\
-_08043854:\n\
- ldr r0, [sp, 0x8]\n\
- ldr r1, [sp, 0x10]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- adds r4, r0, 0\n\
- ldr r0, [sp, 0xC]\n\
- ldr r1, [sp, 0x14]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r4, 24\n\
- lsls r0, 24\n\
- cmp r4, r0\n\
- bne _08043872\n\
- bl _0804441E\n\
-_08043872:\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- muls r0, r7\n\
- adds r4, r6, 0\n\
- adds r4, 0x50\n\
- adds r0, r4\n\
- ldr r0, [r0]\n\
- movs r1, 0xF0\n\
- lsls r1, 12\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0804388E\n\
- bl _0804441E\n\
-_0804388E:\n\
- ldr r0, [sp, 0x8]\n\
- ldr r1, [sp, 0x10]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xFF\n\
- bne _080438A2\n\
- bl _0804441E\n\
-_080438A2:\n\
- ldr r0, [sp, 0xC]\n\
- ldr r1, [sp, 0x14]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xFF\n\
- bne _080438B6\n\
- bl _0804441E\n\
-_080438B6:\n\
- mov r3, r8\n\
- ldrb r0, [r3]\n\
- adds r2, r0, 0\n\
- muls r2, r7\n\
- adds r2, r4\n\
- ldr r1, =gBitTable\n\
- ldrb r0, [r5]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- lsls r1, 16\n\
- ldr r0, [r2]\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_CuteCharmActivates\n\
- str r0, [r1]\n\
- bl _080443D0\n\
- .pool\n\
-_08043908:\n\
- movs r5, 0\n\
- mov r10, r5\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _08043918\n\
- bl _0804441E\n\
-_08043918:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r1\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- subs r0, 0x7\n\
- adds r2, r1, 0\n\
- cmp r0, 0x41\n\
- bls _08043932\n\
- b _08043B96\n\
-_08043932:\n\
- lsls r0, 2\n\
- ldr r1, =_08043948\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
-_08043948:\n\
- .4byte _08043AAC\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B70\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043AD4\n\
- .4byte _08043B96\n\
- .4byte _08043A50\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043A7C\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B40\n\
- .4byte _08043B10\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043B96\n\
- .4byte _08043AD4\n\
-_08043A50:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, =0x00000f88\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043A6A\n\
- b _08043B96\n\
-_08043A6A:\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_PoisonJpn\n\
- b _08043B5C\n\
- .pool\n\
-_08043A7C:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043A96\n\
- b _08043B96\n\
-_08043A96:\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_ConfusionJpn\n\
- bl StringCopy\n\
- movs r2, 0x2\n\
- mov r9, r2\n\
- b _08043B9C\n\
- .pool\n\
-_08043AAC:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043B96\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_ParalysisJpn\n\
- b _08043B5C\n\
- .pool\n\
-_08043AD4:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r2, 0\n\
- adds r0, 0x4C\n\
- adds r0, r3, r0\n\
- ldr r0, [r0]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043B96\n\
- adds r2, 0x50\n\
- adds r2, r3, r2\n\
- ldr r0, [r2]\n\
- ldr r1, =0xf7ffffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_SleepJpn\n\
- bl StringCopy\n\
- movs r0, 0x1\n\
- mov r9, r0\n\
- b _08043B9C\n\
- .pool\n\
-_08043B10:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043B96\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_BurnJpn\n\
- bl StringCopy\n\
- movs r2, 0x1\n\
- mov r9, r2\n\
- b _08043B9C\n\
- .pool\n\
-_08043B40:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043B96\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_IceJpn\n\
-_08043B5C:\n\
- bl StringCopy\n\
- movs r5, 0x1\n\
- mov r9, r5\n\
- b _08043B9C\n\
- .pool\n\
-_08043B70:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0xF0\n\
- lsls r1, 12\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08043B96\n\
- ldr r0, =gBattleTextBuff1\n\
- ldr r1, =gStatusConditionString_LoveJpn\n\
- bl StringCopy\n\
- movs r2, 0x3\n\
- mov r9, r2\n\
-_08043B96:\n\
- mov r3, r9\n\
- cmp r3, 0\n\
- beq _08043C50\n\
-_08043B9C:\n\
- mov r5, r9\n\
- cmp r5, 0x2\n\
- beq _08043BD0\n\
- cmp r5, 0x2\n\
- bgt _08043BB4\n\
- cmp r5, 0x1\n\
- beq _08043BBC\n\
- b _08043BFC\n\
- .pool\n\
-_08043BB4:\n\
- mov r0, r9\n\
- cmp r0, 0x3\n\
- beq _08043BE8\n\
- b _08043BFC\n\
-_08043BBC:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x4C\n\
- adds r2, r1\n\
- movs r0, 0\n\
- b _08043BFA\n\
- .pool\n\
-_08043BD0:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x50\n\
- adds r2, r1\n\
- ldr r0, [r2]\n\
- movs r1, 0x8\n\
- negs r1, r1\n\
- b _08043BF8\n\
- .pool\n\
-_08043BE8:\n\
- ldr r1, =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x50\n\
- adds r2, r1\n\
- ldr r0, [r2]\n\
- ldr r1, =0xfff0ffff\n\
-_08043BF8:\n\
- ands r0, r1\n\
-_08043BFA:\n\
- str r0, [r2]\n\
-_08043BFC:\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =gUnknown_082DB68C\n\
- str r0, [r1]\n\
- ldr r0, =gBattleScripting\n\
- mov r1, r10\n\
- strb r1, [r0, 0x17]\n\
- ldr r4, =gActiveBank\n\
- strb r1, [r4]\n\
- ldrb r1, [r4]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- ldr r1, =gBattleMons + 0x4C\n\
- adds r0, r1\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x28\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl EmitSetMonData\n\
- ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
- bl _0804443A\n\
- .pool\n\
-_08043C50:\n\
- mov r0, r10\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcs _08043C64\n\
- b _08043918\n\
-_08043C64:\n\
- bl _0804441E\n\
- .pool\n\
-_08043C6C:\n\
- movs r2, 0\n\
- mov r10, r2\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _08043C7A\n\
- b _0804441E\n\
-_08043C7A:\n\
- ldr r4, =gBattleMons\n\
-_08043C7C:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r0, r4\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x3B\n\
- bne _08043CA0\n\
- mov r0, r10\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- beq _08043CA0\n\
- b _080442FC\n\
-_08043CA0:\n\
- mov r0, r10\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _08043C7C\n\
- b _0804441E\n\
- .pool\n\
-_08043CBC:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0x1C\n\
- beq _08043CC4\n\
- b _0804441E\n\
-_08043CC4:\n\
- ldr r4, =gHitMarker\n\
- ldr r1, [r4]\n\
- movs r0, 0x80\n\
- lsls r0, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043CD4\n\
- b _0804441E\n\
-_08043CD4:\n\
- ldr r0, =0xffffbfff\n\
- ands r1, r0\n\
- str r1, [r4]\n\
- mov r5, r8\n\
- ldr r1, [r5]\n\
- adds r1, 0xB2\n\
- ldrb r2, [r1]\n\
- movs r0, 0x3F\n\
- ands r0, r2\n\
- strb r0, [r1]\n\
- ldr r0, [r5]\n\
- adds r1, r0, 0\n\
- adds r1, 0xB2\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x6\n\
- bne _08043CF8\n\
- movs r0, 0x2\n\
- strb r0, [r1]\n\
-_08043CF8:\n\
- ldr r1, =gBattleCommunication\n\
- mov r2, r8\n\
- ldr r0, [r2]\n\
- adds r0, 0xB2\n\
- ldrb r0, [r0]\n\
- adds r0, 0x40\n\
- strb r0, [r1, 0x3]\n\
- ldr r1, =gBattleScripting\n\
- ldr r0, =gBankTarget\n\
- ldrb r0, [r0]\n\
- strb r0, [r1, 0x17]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_SynchronizeActivates\n\
- str r0, [r1]\n\
- ldr r0, [r4]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r4]\n\
- b _080443D0\n\
- .pool\n\
-_08043D40:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0x1C\n\
- beq _08043D48\n\
- b _0804441E\n\
-_08043D48:\n\
- ldr r4, =gHitMarker\n\
- ldr r1, [r4]\n\
- movs r0, 0x80\n\
- lsls r0, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08043D58\n\
- b _0804441E\n\
-_08043D58:\n\
- ldr r0, =0xffffbfff\n\
- ands r1, r0\n\
- str r1, [r4]\n\
- mov r3, r8\n\
- ldr r1, [r3]\n\
- adds r1, 0xB2\n\
- ldrb r2, [r1]\n\
- movs r0, 0x3F\n\
- ands r0, r2\n\
- strb r0, [r1]\n\
- ldr r0, [r3]\n\
- adds r1, r0, 0\n\
- adds r1, 0xB2\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x6\n\
- bne _08043D7C\n\
- movs r0, 0x2\n\
- strb r0, [r1]\n\
-_08043D7C:\n\
- ldr r1, =gBattleCommunication\n\
- mov r3, r8\n\
- ldr r0, [r3]\n\
- adds r0, 0xB2\n\
- ldrb r0, [r0]\n\
- strb r0, [r1, 0x3]\n\
- ldr r1, =gBattleScripting\n\
- ldr r0, =gBankAttacker\n\
- ldrb r0, [r0]\n\
- strb r0, [r1, 0x17]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =BattleScript_SynchronizeActivates\n\
- str r0, [r1]\n\
- ldr r0, [r4]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r4]\n\
- b _080443D0\n\
- .pool\n\
-_08043DC4:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- blt _08043DD0\n\
- b _0804441E\n\
-_08043DD0:\n\
- ldr r0, =gBattleMons\n\
- adds r5, r1, 0\n\
- ldr r2, =gStatuses3\n\
- adds r3, r0, 0\n\
- adds r3, 0x20\n\
- movs r6, 0x80\n\
- lsls r6, 12\n\
-_08043DDE:\n\
- ldrb r1, [r3]\n\
- cmp r1, 0x16\n\
- bne _08043DEE\n\
- ldr r0, [r2]\n\
- ands r0, r6\n\
- cmp r0, 0\n\
- beq _08043DEE\n\
- b _08044324\n\
-_08043DEE:\n\
- adds r2, 0x4\n\
- adds r3, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r5\n\
- blt _08043DDE\n\
- b _0804441E\n\
- .pool\n\
-_08043E08:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08043E14\n\
- b _0804441E\n\
-_08043E14:\n\
- ldr r5, =gActiveBank\n\
- mov r8, r5\n\
- ldr r0, =gBattleMons\n\
- adds r0, 0x20\n\
- str r0, [sp, 0x1C]\n\
- movs r1, 0\n\
- str r1, [sp, 0x20]\n\
-_08043E22:\n\
- ldr r2, [sp, 0x1C]\n\
- ldrb r0, [r2]\n\
- cmp r0, 0x24\n\
- beq _08043E2C\n\
- b _08043FBE\n\
-_08043E2C:\n\
- ldr r0, =gStatuses3\n\
- ldr r3, [sp, 0x20]\n\
- adds r0, r3, r0\n\
- ldr r1, [r0]\n\
- movs r0, 0x80\n\
- lsls r0, 13\n\
- ands r1, r0\n\
- str r3, [sp, 0x18]\n\
- cmp r1, 0\n\
- bne _08043E42\n\
- b _08043FBE\n\
-_08043E42:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankIdentity\n\
- movs r1, 0x1\n\
- adds r5, r0, 0\n\
- eors r5, r1\n\
- ands r5, r1\n\
- adds r0, r5, 0\n\
- bl GetBankByIdentity\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r0, r5, 0x2\n\
- bl GetBankByIdentity\n\
- lsls r0, 24\n\
- lsrs r7, r0, 24\n\
- ldr r0, =gBattleTypeFlags\n\
- ldr r0, [r0]\n\
- movs r2, 0x1\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- bne _08043E74\n\
- b _08043F84\n\
-_08043E74:\n\
- movs r1, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r1\n\
- ldr r3, =gBattleMons\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08043F40\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08043EFC\n\
- movs r1, 0x58\n\
- adds r0, r7, 0\n\
- muls r0, r1\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08043EFC\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08043EFC\n\
- str r2, [sp, 0x24]\n\
- bl Random\n\
- ldr r2, [sp, 0x24]\n\
- adds r1, r2, 0\n\
- ands r1, r0\n\
- lsls r1, 1\n\
- orrs r5, r1\n\
- adds r0, r5, 0\n\
- bl GetBankByIdentity\n\
- mov r2, r8\n\
- strb r0, [r2]\n\
- ldrb r0, [r2]\n\
- movs r3, 0x58\n\
- muls r0, r3\n\
- ldr r5, =gBattleMons\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- ldr r1, [sp, 0x1C]\n\
- strb r0, [r1]\n\
- ldrb r0, [r2]\n\
- muls r0, r3\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- ldr r2, =gLastUsedAbility\n\
- strb r0, [r2]\n\
- b _08043FAC\n\
- .pool\n\
-_08043EFC:\n\
- ldr r3, =gBattleMons\n\
- movs r2, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r2\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08043F40\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08043F40\n\
- mov r5, r8\n\
- strb r6, [r5]\n\
- adds r1, r4, 0\n\
- muls r1, r2\n\
- adds r1, r3\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r1, 0x20\n\
- strb r0, [r1]\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- b _08043FA8\n\
- .pool\n\
-_08043F40:\n\
- ldr r3, =gBattleMons\n\
- movs r2, 0x58\n\
- adds r0, r7, 0\n\
- muls r0, r2\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08043FB6\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08043FB6\n\
- mov r5, r8\n\
- strb r7, [r5]\n\
- adds r1, r4, 0\n\
- muls r1, r2\n\
- adds r1, r3\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r1, 0x20\n\
- strb r0, [r1]\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- b _08043FA8\n\
- .pool\n\
-_08043F84:\n\
- mov r2, r8\n\
- strb r6, [r2]\n\
- movs r3, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r3\n\
- ldr r5, =gBattleMons\n\
- adds r0, r5\n\
- adds r2, r0, 0\n\
- adds r2, 0x20\n\
- ldrb r1, [r2]\n\
- cmp r1, 0\n\
- beq _08043FB6\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _08043FB6\n\
- ldr r0, [sp, 0x1C]\n\
- strb r1, [r0]\n\
- ldrb r0, [r2]\n\
-_08043FA8:\n\
- ldr r1, =gLastUsedAbility\n\
- strb r0, [r1]\n\
-_08043FAC:\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08043FB6:\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- beq _08043FBE\n\
- b _08044340\n\
-_08043FBE:\n\
- ldr r3, [sp, 0x1C]\n\
- adds r3, 0x58\n\
- str r3, [sp, 0x1C]\n\
- ldr r5, [sp, 0x20]\n\
- adds r5, 0x4\n\
- str r5, [sp, 0x20]\n\
- adds r4, 0x1\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bge _08043FD6\n\
- b _08043E22\n\
-_08043FD6:\n\
- b _0804441E\n\
- .pool\n\
-_08043FE4:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- blt _08043FF0\n\
- b _0804441E\n\
-_08043FF0:\n\
- ldr r0, =gBattleMons\n\
- adds r5, r1, 0\n\
- ldr r2, =gStatuses3\n\
- adds r3, r0, 0\n\
- adds r3, 0x20\n\
- movs r6, 0x80\n\
- lsls r6, 12\n\
-_08043FFE:\n\
- ldrb r1, [r3]\n\
- cmp r1, 0x16\n\
- bne _0804400E\n\
- ldr r0, [r2]\n\
- ands r0, r6\n\
- cmp r0, 0\n\
- beq _0804400E\n\
- b _080443B4\n\
-_0804400E:\n\
- adds r2, 0x4\n\
- adds r3, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r5\n\
- blt _08043FFE\n\
- b _0804441E\n\
- .pool\n\
-_08044028:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _0804403E\n\
- b _0804441E\n\
-_0804403E:\n\
- ldr r7, =gBattleMons\n\
-_08044040:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r3, r4, 0x1\n\
- cmp r0, r5\n\
- beq _0804406A\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _0804406A\n\
- ldr r0, =gLastUsedAbility\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_0804406A:\n\
- adds r4, r3, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044040\n\
- b _0804441E\n\
- .pool\n\
-_08044084:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _0804409A\n\
- b _0804441E\n\
-_0804409A:\n\
- ldr r7, =gBattleMons\n\
-_0804409C:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r3, r4, 0x1\n\
- cmp r0, r5\n\
- bne _080440C6\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _080440C6\n\
- ldr r0, =gLastUsedAbility\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_080440C6:\n\
- adds r4, r3, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _0804409C\n\
- b _0804441E\n\
- .pool\n\
-_080440E0:\n\
- ldrb r0, [r7]\n\
- cmp r0, 0xFD\n\
- beq _08044104\n\
- cmp r0, 0xFE\n\
- beq _0804413C\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- adds r5, r0, 0\n\
- ldrb r0, [r5]\n\
- cmp r4, r0\n\
- blt _080440F8\n\
- b _0804441E\n\
-_080440F8:\n\
- ldr r2, =gBattleMons\n\
- b _08044174\n\
- .pool\n\
-_08044104:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044110\n\
- b _0804441E\n\
-_08044110:\n\
- ldr r5, =gStatuses3\n\
- movs r2, 0x80\n\
- lsls r2, 9\n\
- adds r1, r0, 0\n\
-_08044118:\n\
- lsls r0, r4, 2\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- ands r0, r2\n\
- adds r3, r4, 0x1\n\
- cmp r0, 0\n\
- beq _0804412C\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_0804412C:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _08044118\n\
- b _0804441E\n\
- .pool\n\
-_0804413C:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044148\n\
- b _0804441E\n\
-_08044148:\n\
- ldr r5, =gStatuses3\n\
- movs r2, 0x80\n\
- lsls r2, 10\n\
- adds r1, r0, 0\n\
-_08044150:\n\
- lsls r0, r4, 2\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- ands r0, r2\n\
- adds r3, r4, 0x1\n\
- cmp r0, 0\n\
- beq _08044164\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08044164:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _08044150\n\
- b _0804441E\n\
- .pool\n\
-_08044174:\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r2\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _0804418C\n\
- strb r6, [r7]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_0804418C:\n\
- adds r4, r3, 0\n\
- ldrb r1, [r5]\n\
- cmp r4, r1\n\
- blt _08044174\n\
- b _0804441E\n\
-_08044196:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _080441A2\n\
- b _0804441E\n\
-_080441A2:\n\
- ldr r2, =gBattleMons\n\
- mov r8, r2\n\
- adds r2, r0, 0\n\
- movs r5, 0x58\n\
-_080441AA:\n\
- adds r0, r4, 0\n\
- muls r0, r5\n\
- mov r3, r8\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _080441CC\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _080441CC\n\
- strb r6, [r7]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_080441CC:\n\
- adds r4, r3, 0\n\
- cmp r4, r2\n\
- blt _080441AA\n\
- b _0804441E\n\
- .pool\n\
-_080441DC:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _080441E8\n\
- b _0804441E\n\
-_080441E8:\n\
- ldr r7, =gBattleMons\n\
- adds r1, r0, 0\n\
- movs r5, 0x58\n\
- ldr r2, =gLastUsedAbility\n\
-_080441F0:\n\
- adds r0, r4, 0\n\
- muls r0, r5\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _0804420C\n\
- cmp r4, r10\n\
- beq _0804420C\n\
- strb r6, [r2]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_0804420C:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _080441F0\n\
- b _0804441E\n\
- .pool\n\
-_08044220:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044236\n\
- b _0804441E\n\
-_08044236:\n\
- ldr r7, =gBattleMons\n\
-_08044238:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, r5\n\
- beq _08044264\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _08044264\n\
- ldr r0, =gLastUsedAbility\n\
- strb r6, [r0]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08044264:\n\
- adds r4, 0x1\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044238\n\
- b _0804441E\n\
- .pool\n\
-_0804427C:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044292\n\
- b _0804441E\n\
-_08044292:\n\
- ldr r7, =gBattleMons\n\
-_08044294:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, r5\n\
- bne _080442C0\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _080442C0\n\
- ldr r0, =gLastUsedAbility\n\
- strb r6, [r0]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_080442C0:\n\
- adds r4, 0x1\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08044294\n\
- b _0804441E\n\
- .pool\n\
-_080442D8:\n\
- ldr r0, =BattleScript_CastformChange\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- strb r6, [r0, 0x17]\n\
-_080442E2:\n\
- ldr r0, =gBattleStruct\n\
- ldr r0, [r0]\n\
- adds r0, 0x7F\n\
- mov r1, r9\n\
- subs r1, 0x1\n\
- strb r1, [r0]\n\
- b _0804441E\n\
- .pool\n\
-_080442FC:\n\
- ldr r0, =BattleScript_CastformChange\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r0, =gBattleScripting\n\
- mov r5, r10\n\
- strb r5, [r0, 0x17]\n\
- ldr r0, =gBattleStruct\n\
- ldr r0, [r0]\n\
- adds r0, 0x7F\n\
- mov r1, r9\n\
- subs r1, 0x1\n\
- strb r1, [r0]\n\
- b _0804443A\n\
- .pool\n\
-_08044324:\n\
- strb r1, [r7]\n\
- ldr r0, [r2]\n\
- ldr r1, =0xfff7ffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- ldr r0, =gUnknown_082DB4B8\n\
- bl BattleScriptPushCursorAndCallback\n\
- b _080443C8\n\
- .pool\n\
-_08044340:\n\
- ldr r0, =BattleScript_TraceActivates\n\
- bl BattleScriptPushCursorAndCallback\n\
- ldr r1, =gStatuses3\n\
- ldr r0, [sp, 0x18]\n\
- adds r1, r0, r1\n\
- ldr r0, [r1]\n\
- ldr r2, =0xffefffff\n\
- ands r0, r2\n\
- str r0, [r1]\n\
- ldr r0, =gBattleScripting\n\
- strb r4, [r0, 0x17]\n\
- ldr r1, =gBattleTextBuff1\n\
- movs r4, 0xFD\n\
- strb r4, [r1]\n\
- movs r0, 0x4\n\
- strb r0, [r1, 0x1]\n\
- ldr r2, =gActiveBank\n\
- ldrb r0, [r2]\n\
- strb r0, [r1, 0x2]\n\
- ldr r3, =gBattlePartyID\n\
- ldrb r0, [r2]\n\
- lsls r0, 1\n\
- adds r0, r3\n\
- ldrh r0, [r0]\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- ldr r1, =gBattleTextBuff2\n\
- strb r4, [r1]\n\
- movs r0, 0x9\n\
- strb r0, [r1, 0x1]\n\
- ldr r0, =gLastUsedAbility\n\
- ldrb r0, [r0]\n\
- strb r0, [r1, 0x2]\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- strb r0, [r1, 0x3]\n\
- b _0804441E\n\
- .pool\n\
-_080443B4:\n\
- strb r1, [r7]\n\
- ldr r0, [r2]\n\
- ldr r1, =0xfff7ffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- bl BattleScriptPushCursor\n\
- ldr r1, =gBattlescriptCurrInstr\n\
- ldr r0, =gUnknown_082DB4C1\n\
- str r0, [r1]\n\
-_080443C8:\n\
- ldr r0, =gBattleStruct\n\
- ldr r0, [r0]\n\
- adds r0, 0xD8\n\
- strb r4, [r0]\n\
-_080443D0:\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- b _0804441E\n\
- .pool\n\
-_080443EC:\n\
- movs r4, 0\n\
- ldr r0, =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- bge _0804441E\n\
- ldr r0, =gBattleMons\n\
- adds r2, r1, 0\n\
- adds r1, r0, 0\n\
- adds r1, 0x20\n\
- ldr r3, =gLastUsedAbility\n\
-_08044400:\n\
- ldrb r0, [r1]\n\
- cmp r0, r6\n\
- bne _08044416\n\
- cmp r4, r10\n\
- beq _08044416\n\
- strb r6, [r3]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08044416:\n\
- adds r1, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r2\n\
- blt _08044400\n\
-_0804441E:\n\
- mov r1, r9\n\
- cmp r1, 0\n\
- beq _0804443A\n\
-_08044424:\n\
- ldr r2, [sp, 0x4]\n\
- cmp r2, 0xB\n\
- bhi _0804443A\n\
- ldr r1, =gLastUsedAbility\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFF\n\
- beq _0804443A\n\
- adds r1, r0, 0\n\
- mov r0, r10\n\
- bl RecordAbilityBattle\n\
-_0804443A:\n\
- mov r0, r9\n\
- add sp, 0x28\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .pool\n\
- .syntax divided");
-}
-#endif // NONMATCHING
void BattleScriptExecute(const u8* BS_ptr)
{
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index 83d32b56c..9a6f0371c 100755
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -220,7 +220,7 @@ bool8 ShouldDoBrailleStrengthEffect(void)
void sub_8179834(void)
{
- gFieldEffectSpawnParams[0] = brm_get_pokemon_selection();
+ gFieldEffectArguments[0] = brm_get_pokemon_selection();
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
}
@@ -256,7 +256,7 @@ bool8 ShouldDoBrailleFlyEffect(void)
void sub_8179918(void)
{
- gFieldEffectSpawnParams[0] = brm_get_pokemon_selection();
+ gFieldEffectArguments[0] = brm_get_pokemon_selection();
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
}
@@ -417,7 +417,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void)
}
// TODO: Find what flags 2 and 3 are.
FlagSet(3);
- FlagReset(2);
+ FlagClear(2);
return FALSE;
}
#else
@@ -568,7 +568,7 @@ _08179B44:\n\
movs r0, 0x3\n\
bl FlagSet\n\
movs r0, 0x2\n\
- bl FlagReset\n\
+ bl FlagClear\n\
_08179B5A:\n\
movs r0, 0\n\
_08179B5C:\n\
diff --git a/src/coins.c b/src/coins.c
index 4ee601b22..e651bc6ca 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -54,7 +54,7 @@ void SetCoins(u16 coinAmount)
}
/* Can't match it lol
-bool8 AddCoins(u16 toAdd)
+bool8 GiveCoins(u16 toAdd)
{
u16 newAmount;
u16 ownedCoins = GetCoins();
diff --git a/src/event_data.c b/src/event_data.c
index fb2edb063..19a310db5 100644
--- a/src/event_data.c
+++ b/src/event_data.c
@@ -40,11 +40,11 @@ void ClearTempFieldEventData(void)
{
memset(gSaveBlock1Ptr->flags, 0, TEMP_FLAGS_SIZE);
memset(gSaveBlock1Ptr->vars, 0, TEMP_VARS_SIZE);
- FlagReset(SYS_ENC_UP_ITEM);
- FlagReset(SYS_ENC_DOWN_ITEM);
- FlagReset(SYS_USE_STRENGTH);
- FlagReset(SYS_CTRL_OBJ_DELETE);
- FlagReset(SYS_UNKNOWN_880);
+ FlagClear(SYS_ENC_UP_ITEM);
+ FlagClear(SYS_ENC_DOWN_ITEM);
+ FlagClear(SYS_USE_STRENGTH);
+ FlagClear(SYS_CTRL_OBJ_DELETE);
+ FlagClear(SYS_UNKNOWN_880);
}
// probably had different flag splits at one point.
@@ -58,7 +58,7 @@ void DisableNationalPokedex(void)
u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
gSaveBlock2Ptr->pokedex.nationalMagic = 0;
*nationalDexVar = 0;
- FlagReset(SYS_NATIONAL_DEX);
+ FlagClear(SYS_NATIONAL_DEX);
}
void EnableNationalPokedex(void)
@@ -82,7 +82,7 @@ bool32 IsNationalPokedexEnabled(void)
void DisableMysteryEvent(void)
{
- FlagReset(SYS_MYSTERY_EVENT_ENABLE);
+ FlagClear(SYS_MYSTERY_EVENT_ENABLE);
}
void EnableMysteryEvent(void)
@@ -97,7 +97,7 @@ bool32 IsMysteryEventEnabled(void)
void DisableMysteryGift(void)
{
- FlagReset(SYS_MYSTERY_GIFT_ENABLE);
+ FlagClear(SYS_MYSTERY_GIFT_ENABLE);
}
void EnableMysteryGift(void)
@@ -112,22 +112,22 @@ bool32 IsMysteryGiftEnabled(void)
void sub_809D4D8(void)
{
- FlagReset(0x1E4);
- FlagReset(0x1E5);
- FlagReset(0x1E6);
- FlagReset(0x1E7);
- FlagReset(0x1E8);
- FlagReset(0x1E9);
- FlagReset(0x1EA);
- FlagReset(0x1EB);
- FlagReset(0x1EC);
- FlagReset(0x1ED);
- FlagReset(0x1EE);
- FlagReset(0x1EF);
- FlagReset(0x1F0);
- FlagReset(0x1F1);
- FlagReset(0x1F2);
- FlagReset(0x1F3);
+ FlagClear(0x1E4);
+ FlagClear(0x1E5);
+ FlagClear(0x1E6);
+ FlagClear(0x1E7);
+ FlagClear(0x1E8);
+ FlagClear(0x1E9);
+ FlagClear(0x1EA);
+ FlagClear(0x1EB);
+ FlagClear(0x1EC);
+ FlagClear(0x1ED);
+ FlagClear(0x1EE);
+ FlagClear(0x1EF);
+ FlagClear(0x1F0);
+ FlagClear(0x1F1);
+ FlagClear(0x1F2);
+ FlagClear(0x1F3);
}
void sub_809D570(void)
@@ -145,7 +145,7 @@ void sub_809D570(void)
void DisableResetRTC(void)
{
VarSet(VAR_RESET_RTC_ENABLE, 0);
- FlagReset(SYS_RESET_RTC_ENABLE);
+ FlagClear(SYS_RESET_RTC_ENABLE);
}
void EnableResetRTC(void)
@@ -214,7 +214,7 @@ u8 FlagSet(u16 id)
return 0;
}
-u8 FlagReset(u16 id)
+u8 FlagClear(u16 id)
{
u8 *ptr = GetFlagPointer(id);
if (ptr)
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index e80e402c8..e822fc1ca 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -3,7 +3,7 @@
#include "global.h"
#include "malloc.h"
#include "sprite.h"
-#include "rom4.h"
+#include "overworld.h"
#include "rng.h"
#include "event_scripts.h"
#include "berry.h"
@@ -2386,10 +2386,10 @@ bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite
{
if (!(sprite->data7 & 0x0004) && sprite->animNum == 4)
{
- gFieldEffectSpawnParams[0] = mapObject->coords2.x;
- gFieldEffectSpawnParams[1] = mapObject->coords2.y;
- gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
- gFieldEffectSpawnParams[3] = sprite->oam.priority;
+ gFieldEffectArguments[0] = mapObject->coords2.x;
+ gFieldEffectArguments[1] = mapObject->coords2.y;
+ gFieldEffectArguments[2] = sprite->subpriority - 1;
+ gFieldEffectArguments[3] = sprite->oam.priority;
FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
sprite->animNum = berryStage;
}
@@ -2425,10 +2425,10 @@ bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite
sprite->data1 = 3;
sprite->data2 = 0;
sprite->data7 |= 0x0002;
- gFieldEffectSpawnParams[0] = mapObject->coords2.x;
- gFieldEffectSpawnParams[1] = mapObject->coords2.y;
- gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
- gFieldEffectSpawnParams[3] = sprite->oam.priority;
+ gFieldEffectArguments[0] = mapObject->coords2.x;
+ gFieldEffectArguments[1] = mapObject->coords2.y;
+ gFieldEffectArguments[2] = sprite->subpriority - 1;
+ gFieldEffectArguments[3] = sprite->oam.priority;
FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
return TRUE;
}
@@ -3425,7 +3425,7 @@ void FieldObjectCB_TreeDisguise(struct Sprite *sprite)
mapObject = &gMapObjects[sprite->data0];
if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7))
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_TREE_DISGUISE);
mapObject->mapobj_unk_21 = 1;
sprite->data7 ++;
@@ -3446,7 +3446,7 @@ void FieldObjectCB_MountainDisguise(struct Sprite *sprite)
mapObject = &gMapObjects[sprite->data0];
if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7))
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_MOUNTAIN_DISGUISE);
mapObject->mapobj_unk_21 = 1;
sprite->data7 ++;
@@ -4693,7 +4693,7 @@ bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite)
bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1);
sprite->data2 = 1;
return TRUE;
@@ -4701,7 +4701,7 @@ bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *s
bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2);
sprite->data2 = 1;
return TRUE;
@@ -4709,7 +4709,7 @@ bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *s
bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_HEART_ICON);
sprite->data2 = 1;
return TRUE;
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index 9c35a33da..54c1d8144 100755
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -13,10 +13,10 @@
#define SECONDS(value) ((signed) (60.0 * value + 0.5))
extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h
-extern void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-extern bool8 sub_80D3340(u8, u8, u8);
+extern void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+extern bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
extern bool32 CountSSTidalStep(u16);
-extern bool8 exec_movement(u8, u8, u8, u8 *);
+extern bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *);
extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
extern void sp13E_warp_to_last_warp(void);
extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
@@ -264,7 +264,7 @@ bool8 sub_80FB59C(void)
}
else
{
- warp1_set(mapGroup, mapNum, -1, x, y);
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y);
return TRUE;
}
}
@@ -287,7 +287,7 @@ void Task_HandlePorthole(u8 taskId)
case IDLE_CHECK: // idle and move.
if (gMain.newKeys & A_BUTTON)
data[1] = 1;
- if (!sub_80D3340(0xFF, location->mapNum, location->mapGroup))
+ if (!ScriptMovement_IsObjectMovementFinished(0xFF, location->mapNum, location->mapGroup))
return;
if (CountSSTidalStep(1) == TRUE)
{
@@ -308,18 +308,18 @@ void Task_HandlePorthole(u8 taskId)
// run this once.
if (*var == 2) // which direction?
{
- exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB);
+ ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB);
data[0] = IDLE_CHECK; // run case 1.
}
else
{
- exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD);
+ ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD);
data[0] = IDLE_CHECK; // run case 1.
}
break;
case EXIT_PORTHOLE: // exit porthole.
- FlagReset(0x4001);
- FlagReset(0x4000);
+ FlagClear(0x4001);
+ FlagClear(0x4000);
copy_saved_warp2_bank_and_enter_x_to_warp1(0);
sp13E_warp_to_last_warp();
DestroyTask(taskId);
diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c
index 9f38824f9..3b7ae49f2 100644
--- a/src/lilycove_lady.c
+++ b/src/lilycove_lady.c
@@ -4,7 +4,7 @@
#include "global.h"
#include "main.h"
-#include "rom4.h"
+#include "overworld.h"
#include "rom6.h"
#include "event_data.h"
#include "script.h"
diff --git a/src/money.c b/src/money.c
index 65a45b158..98f25a42a 100644
--- a/src/money.c
+++ b/src/money.c
@@ -110,7 +110,7 @@ void AddMoney(u32* moneyPtr, u32 toAdd)
SetMoney(moneyPtr, toSet);
}
-void SubtractMoney(u32* moneyPtr, u32 toSub)
+void RemoveMoney(u32* moneyPtr, u32 toSub)
{
u32 toSet = GetMoney(moneyPtr);
@@ -130,7 +130,7 @@ bool8 IsEnoughForCostInVar0x8005(void)
void SubtractMoneyFromVar0x8005(void)
{
- SubtractMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005);
+ RemoveMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005);
}
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed)
diff --git a/src/new_game.c b/src/new_game.c
index d01aa69d4..d0666dd71 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -29,7 +29,7 @@ extern u8 gUnknown_030060B0;
// TODO: replace those declarations with file headers
extern u16 GetGeneratedTrainerIdLower(void);
extern void ClearContestWinnerPicsInContestHall(void);
-extern void warp1_set(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos);
+extern void Overworld_SetWarpDestination(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos);
extern void warp_in(void);
extern void sub_80BB358(void);
extern void ResetBagScrollPositions(void);
@@ -131,7 +131,7 @@ void sub_8084400(void)
void WarpToTruck(void)
{
- warp1_set(25, 40, -1, -1, -1); // inside of truck
+ Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck
warp_in();
}
diff --git a/src/palette.c b/src/palette.c
index d60efdbc5..d4bb593da 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -53,13 +53,13 @@ static void UpdateBlendRegisters(void);
static bool8 IsSoftwarePaletteFadeFinishing(void);
static void sub_80A2D54(u8 taskId);
-EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0};
-EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0};
+EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0};
+EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0};
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
static EWRAM_DATA u32 gFiller_2037FE0 = 0;
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
-EWRAM_DATA u8 gPaletteDecompressionBuffer[0x400] = {0};
+EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
.uid = 0xFFFF,
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index ee54f0e4d..27441f952 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1089,7 +1089,7 @@ u8 SendMonToPC(struct Pokemon* mon)
gSpecialVar_0x8012 = boxNo;
gSpecialVar_0x8013 = boxPos;
if (get_unknown_box_id() != boxNo)
- FlagReset(SYS_STORAGE_UNKNOWN_FLAG);
+ FlagClear(SYS_STORAGE_UNKNOWN_FLAG);
VarSet(VAR_STORAGE_UNKNOWN, boxNo);
return MON_GIVEN_TO_PC;
}
diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c
index b786ff9f8..d4dbc5f42 100644
--- a/src/reset_save_heap.c
+++ b/src/reset_save_heap.c
@@ -5,7 +5,7 @@
#include "load_save.h"
#include "save.h"
#include "new_game.h"
-#include "rom4.h"
+#include "overworld.h"
#include "malloc.h"
void sub_81700F8(void)
diff --git a/src/safari_zone.c b/src/safari_zone.c
index f7ef28577..a1ec38920 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -60,7 +60,7 @@ void SetSafariZoneFlag(void)
void ResetSafariZoneFlag(void)
{
- FlagReset(SYS_SAFARI_MODE);
+ FlagClear(SYS_SAFARI_MODE);
}
void EnterSafariMode(void)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index b56a53caf..af314609c 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1,15 +1,2452 @@
-
-// Includes
#include "global.h"
+#include "battle_frontier_2.h"
+#include "battle_setup.h"
+#include "berry.h"
+#include "clock.h"
+#include "coins.h"
+#include "contest_link_80F57C4.h"
+#include "contest_painting.h"
+#include "data2.h"
+#include "decoration.h"
+#include "decoration_inventory.h"
+#include "event_data.h"
+#include "field_door.h"
+#include "field_effect.h"
+#include "field_fadetransition.h"
+#include "field_map_obj.h"
+#include "field_map_obj_helpers.h"
+#include "field_message_box.h"
+#include "field_player_avatar.h"
+#include "field_screen_effect.h"
+#include "field_specials.h"
+#include "field_tasks.h"
+#include "field_weather.h"
+#include "fieldmap.h"
+#include "item.h"
+#include "lilycove_lady.h"
+#include "main.h"
+#include "map_obj_lock.h"
+#include "menu.h"
+#include "money.h"
+#include "mystery_event_script.h"
+#include "new_menu_helpers.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pokemon_3.h"
+#include "pokemon_storage_system.h"
+#include "rng.h"
+#include "overworld.h"
+#include "rtc.h"
+#include "script.h"
+#include "script_menu.h"
+#include "script_movement.h"
+#include "script_pokemon_80F8.h"
+#include "script_pokemon_81B9.h"
+#include "shop.h"
+#include "slot_machine.h"
+#include "sound.h"
+#include "string_util.h"
+#include "text.h"
+#include "text_window.h"
+#include "trainer_see.h"
+#include "tv.h"
+#include "window.h"
+
+typedef u16 (*SpecialFunc)(void);
+typedef void (*NativeFunc)(void);
+
+extern u32 gUnknown_020375C0;
+
+static EWRAM_DATA u32 gUnknown_020375C4 = 0;
+static EWRAM_DATA u16 sPauseCounter = 0;
+static EWRAM_DATA u16 sMovingNpcId = 0;
+static EWRAM_DATA u16 sMovingNpcMapBank = 0;
+static EWRAM_DATA u16 sMovingNpcMapId = 0;
+static EWRAM_DATA u16 sFieldEffectScriptId = 0;
-// Static type declarations
+extern u16 gSpecialVar_0x8000;
+extern u16 gSpecialVar_0x8001;
+extern u16 gSpecialVar_0x8002;
+extern u16 gSpecialVar_0x8004;
-// Static RAM declarations
+extern u16 gScriptResult;
+
+extern u16 gScriptContestCategory;
IWRAM_DATA u8 gUnknown_03000F30;
-// Static ROM declarations
+extern const SpecialFunc gSpecials[];
+extern const u8 *gStdScripts[];
+extern const u8 *gStdScripts_End[];
+
+void sub_809BDB4(void);
+
+// This is defined in here so the optimizer can't see its value when compiling
+// script.c.
+void * const gNullScriptPtr = NULL;
+
+static const u8 sScriptConditionTable[6][3] =
+{
+// < = >
+ 1, 0, 0, // <
+ 0, 1, 0, // =
+ 0, 0, 1, // >
+ 1, 1, 0, // <=
+ 0, 1, 1, // >=
+ 1, 0, 1, // !=
+};
+
+static u8 * const sScriptStringVars[] =
+{
+ gStringVar1,
+ gStringVar2,
+ gStringVar3,
+};
+
+bool8 ScrCmd_nop(struct ScriptContext *ctx)
+{
+ return FALSE;
+}
+
+bool8 ScrCmd_nop1(struct ScriptContext *ctx)
+{
+ return FALSE;
+}
+
+bool8 ScrCmd_end(struct ScriptContext *ctx)
+{
+ StopScript(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotonative(struct ScriptContext *ctx)
+{
+ bool8 (*addr)(void) = (bool8 (*)(void))ScriptReadWord(ctx);
+
+ SetupNativeScript(ctx, addr);
+ return TRUE;
+}
+
+bool8 ScrCmd_special(struct ScriptContext *ctx)
+{
+ u16 index = ScriptReadHalfword(ctx);
+
+ gSpecials[index]();
+ return FALSE;
+}
+
+bool8 ScrCmd_specialvar(struct ScriptContext *ctx)
+{
+ u16 *var = GetVarPointer(ScriptReadHalfword(ctx));
+
+ *var = gSpecials[ScriptReadHalfword(ctx)]();
+ return FALSE;
+}
+
+bool8 ScrCmd_callnative(struct ScriptContext *ctx)
+{
+ NativeFunc func = (NativeFunc)ScriptReadWord(ctx);
+
+ func();
+ return FALSE;
+}
+
+bool8 ScrCmd_waitstate(struct ScriptContext *ctx)
+{
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_goto(struct ScriptContext *ctx)
+{
+ const u8 *ptr = (const u8 *)ScriptReadWord(ctx);
+
+ ScriptJump(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_return(struct ScriptContext *ctx)
+{
+ ScriptReturn(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_call(struct ScriptContext *ctx)
+{
+ const u8 *ptr = (const u8 *)ScriptReadWord(ctx);
+
+ ScriptCall(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_goto_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 *ptr = (const u8 *)ScriptReadWord(ctx);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptJump(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_call_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 *ptr = (const u8 *)ScriptReadWord(ctx);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptCall(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_setvaddress(struct ScriptContext *ctx)
+{
+ u32 addr1 = (u32)ctx->scriptPtr - 1;
+ u32 addr2 = ScriptReadWord(ctx);
+
+ gUnknown_020375C4 = addr2 - addr1;
+ return FALSE;
+}
+
+bool8 ScrCmd_vgoto(struct ScriptContext *ctx)
+{
+ u32 addr = ScriptReadWord(ctx);
+
+ ScriptJump(ctx, (u8 *)(addr - gUnknown_020375C4));
+ return FALSE;
+}
+
+bool8 ScrCmd_vcall(struct ScriptContext *ctx)
+{
+ u32 addr = ScriptReadWord(ctx);
+
+ ScriptCall(ctx, (u8 *)(addr - gUnknown_020375C4));
+ return FALSE;
+}
+
+bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptJump(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_vcall_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptCall(ctx, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotostd(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+ const u8 **ptr = &gStdScripts[index];
+
+ if (ptr < gStdScripts_End)
+ ScriptJump(ctx, *ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_callstd(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+ const u8 **ptr = &gStdScripts[index];
+
+ if (ptr < gStdScripts_End)
+ ScriptCall(ctx, *ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ u8 index = ScriptReadByte(ctx);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ {
+ const u8 **ptr = &gStdScripts[index];
+ if (ptr < gStdScripts_End)
+ ScriptJump(ctx, *ptr);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_callstd_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ u8 index = ScriptReadByte(ctx);
+
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ {
+ const u8 **ptr = &gStdScripts[index];
+ if (ptr < gStdScripts_End)
+ ScriptCall(ctx, *ptr);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_gotoram(struct ScriptContext *ctx)
+{
+ ScriptJump(ctx, (const u8 *)gUnknown_020375C0);
+ return FALSE;
+}
+
+bool8 ScrCmd_killscript(struct ScriptContext *ctx)
+{
+ ClearRamScript();
+ StopScript(ctx);
+ return TRUE;
+}
+
+bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx)
+{
+ u8 value = ScriptReadByte(ctx);
+
+ SetMysteryEventScriptStatus(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_loadword(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+
+ ctx->data[index] = ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+
+ ctx->data[index] = *(const u8 *)ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx)
+{
+ u8 value = ScriptReadByte(ctx);
+
+ *(u8 *)ScriptReadWord(ctx) = value;
+ return FALSE;
+}
+
+bool8 ScrCmd_loadbyte(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+
+ ctx->data[index] = ScriptReadByte(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+
+ *(u8 *)ScriptReadWord(ctx) = ctx->data[index];
+ return FALSE;
+}
+
+bool8 ScrCmd_copylocal(struct ScriptContext *ctx)
+{
+ u8 destIndex = ScriptReadByte(ctx);
+ u8 srcIndex = ScriptReadByte(ctx);
+
+ ctx->data[destIndex] = ctx->data[srcIndex];
+ return FALSE;
+}
+
+bool8 ScrCmd_copybyte(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)ScriptReadWord(ctx);
+ *ptr = *(const u8 *)ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_setvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr = ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_copyvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr = *GetVarPointer(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr = VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+u8 compare_012(u16 a1, u16 a2)
+{
+ if (a1 < a2)
+ return 0;
+ if (a1 == a2)
+ return 1;
+ return 2;
+}
+
+// comparelocaltolocal
+bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+// comparelocaltoimm
+bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx)
+{
+ const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 value2 = ScriptReadHalfword(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx)
+{
+ const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
+
+ ctx->comparisonResult = compare_012(*ptr1, *ptr2);
+ return FALSE;
+}
+
+bool8 ScrCmd_addvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr += ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_subvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr -= VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_random(struct ScriptContext *ctx)
+{
+ u16 max = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = Random() % max;
+ return FALSE;
+}
+
+bool8 ScrCmd_additem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = AddBagItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_removeitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = RemoveBagItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = CheckBagHasSpace(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = CheckBagHasItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = GetPocketByItemId(itemId);
+ return FALSE;
+}
+
+bool8 ScrCmd_addpcitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = AddPCItem(itemId, quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = CheckPCHasItem(itemId, quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_adddecor(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = DecorationAdd(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_removedecor(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = DecorationRemove(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = DecorationCheckSpace(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_hasdecor(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = CheckHasDecoration(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_setflag(struct ScriptContext *ctx)
+{
+ FlagSet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_clearflag(struct ScriptContext *ctx)
+{
+ FlagClear(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_checkflag(struct ScriptContext *ctx)
+{
+ ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx)
+{
+ IncrementGameStat(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_animdarklevel(struct ScriptContext *ctx)
+{
+ sub_80B009C(ScriptReadByte(ctx));
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_setdarklevel(struct ScriptContext *ctx)
+{
+ u16 flashLevel = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetFlashLevel(flashLevel);
+ return FALSE;
+}
+
+static bool8 IsPaletteNotActive(void)
+{
+ if (!gPaletteFade.active)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
+{
+ fade_screen(ScriptReadByte(ctx), 0);
+ SetupNativeScript(ctx, IsPaletteNotActive);
+ return TRUE;
+}
+
+bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
+{
+ u8 mode = ScriptReadByte(ctx);
+ u8 delay = ScriptReadByte(ctx);
+
+ fade_screen(mode, delay);
+ SetupNativeScript(ctx, IsPaletteNotActive);
+ return TRUE;
+}
+
+bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx)
+{
+ u8 mode = ScriptReadByte(ctx);
+
+ switch (mode)
+ {
+ case 1:
+ default:
+ CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE);
+ fade_screen(mode, 0);
+ break;
+ case 0:
+ case 2:
+ CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE);
+ fade_screen(mode, 0);
+ break;
+ }
+
+ SetupNativeScript(ctx, IsPaletteNotActive);
+ return TRUE;
+}
+
+static bool8 RunPauseTimer(void)
+{
+ sPauseCounter--;
+
+ if (sPauseCounter == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_delay(struct ScriptContext *ctx)
+{
+ sPauseCounter = ScriptReadHalfword(ctx);
+ SetupNativeScript(ctx, RunPauseTimer);
+ return TRUE;
+}
+
+bool8 ScrCmd_initclock(struct ScriptContext *ctx)
+{
+ u8 hour = VarGet(ScriptReadHalfword(ctx));
+ u8 minute = VarGet(ScriptReadHalfword(ctx));
+
+ RtcInitLocalTimeOffset(hour, minute);
+ return FALSE;
+}
+
+bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx)
+{
+ DoTimeBasedEvents();
+ return FALSE;
+}
+
+bool8 ScrCmd_gettime(struct ScriptContext *ctx)
+{
+ RtcCalcLocalTime();
+ gSpecialVar_0x8000 = gLocalTime.hours;
+ gSpecialVar_0x8001 = gLocalTime.minutes;
+ gSpecialVar_0x8002 = gLocalTime.seconds;
+ return FALSE;
+}
+
+bool8 ScrCmd_setweather(struct ScriptContext *ctx)
+{
+ u16 weather = VarGet(ScriptReadHalfword(ctx));
+
+ SetSav1Weather(weather);
+ return FALSE;
+}
+
+bool8 ScrCmd_resetweather(struct ScriptContext *ctx)
+{
+ sub_80AEDBC();
+ return FALSE;
+}
+
+bool8 ScrCmd_doweather(struct ScriptContext *ctx)
+{
+ DoCurrentWeather();
+ return FALSE;
+}
+
+bool8 ScrCmd_tileeffect(struct ScriptContext *ctx)
+{
+ ActivatePerStepCallback(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_setmaplayoutindex(struct ScriptContext *ctx)
+{
+ u16 value = VarGet(ScriptReadHalfword(ctx));
+
+ sub_8085524(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_warp(struct ScriptContext *ctx)
+{
+ 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_80AF734();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpsilent(struct ScriptContext *ctx)
+{
+ 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);
+ sp13E_warp_to_last_warp();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpdoor(struct ScriptContext *ctx)
+{
+ 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_80AF7D0();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_warphole(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u16 x;
+ u16 y;
+
+ PlayerGetDestCoords(&x, &y);
+ if (mapGroup == 0xFF && mapNum == 0xFF)
+ sub_8084EBC(x - 7, y - 7);
+ else
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7);
+ sp13F_fall_to_last_warp();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
+{
+ 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_80AF848();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpD7(struct ScriptContext *ctx)
+{
+ 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_80AF87C();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_setwarp(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_setdynamicwarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ saved_warp2_set_2(0, mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_8084E2C(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setholewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_8084E80(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setescapewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_8084DD4(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx)
+{
+ u16 *pX = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 *pY = GetVarPointer(ScriptReadHalfword(ctx));
+
+ *pX = gSaveBlock1Ptr->pos.x;
+ *pY = gSaveBlock1Ptr->pos.y;
+ return FALSE;
+}
+
+bool8 ScrCmd_countpokemon(struct ScriptContext *ctx)
+{
+ gScriptResult = CalculatePlayerPartyCount();
+ return FALSE;
+}
+
+bool8 ScrCmd_playse(struct ScriptContext *ctx)
+{
+ PlaySE(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForSoundEffectFinish(void)
+{
+ if (!IsSEPlaying())
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_waitse(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, WaitForSoundEffectFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_playfanfare(struct ScriptContext *ctx)
+{
+ PlayFanfare(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForFanfareFinish(void)
+{
+ return IsFanfareTaskInactive();
+}
+
+bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, WaitForFanfareFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_playbgm(struct ScriptContext *ctx)
+{
+ u16 songId = ScriptReadHalfword(ctx);
+ bool8 val = ScriptReadByte(ctx);
+
+ if (val == TRUE)
+ Overworld_SetSavedMusic(songId);
+ PlayNewMapMusic(songId);
+ return FALSE;
+}
+
+bool8 ScrCmd_savebgm(struct ScriptContext *ctx)
+{
+ Overworld_SetSavedMusic(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx)
+{
+ Overworld_ChangeMusicToDefault();
+ return FALSE;
+}
+
+bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx)
+{
+ Overworld_ChangeMusicTo(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx)
+{
+ u8 speed = ScriptReadByte(ctx);
+
+ if (speed != 0)
+ FadeOutBGMTemporarily(4 * speed);
+ else
+ FadeOutBGMTemporarily(4);
+ SetupNativeScript(ctx, IsBGMPausedOrStopped);
+ return TRUE;
+}
+
+bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx)
+{
+ u8 speed = ScriptReadByte(ctx);
+
+ if (speed != 0)
+ FadeInBGM(4 * speed);
+ else
+ FadeInBGM(4);
+ return FALSE;
+}
+
+bool8 ScrCmd_applymovement(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx)
+{
+ 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);
+}
+
+bool8 ScrCmd_waitmovement(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ if (localId != 0)
+ sMovingNpcId = localId;
+ sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup;
+ sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum;
+ SetupNativeScript(ctx, WaitForMovementFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_removeobject(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_addobject(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+
+ show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_addobject_at(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ show_sprite(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_808EBA8(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetMapObjTemplateCoords(localId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ sub_808F254(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_showobject(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_hideobject(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 priority = ScriptReadByte(ctx);
+
+ sub_808E78C(localId, mapNum, mapGroup, priority + 83);
+ return FALSE;
+}
+
+bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ sub_808E7E4(localId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
+{
+ if (gMapObjects[gSelectedMapObject].active)
+ {
+ FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject],
+ player_get_direction_lower_nybble());
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_turnobject(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 direction = ScriptReadByte(ctx);
+
+ FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 movementType = ScriptReadByte(ctx);
+
+ Overworld_SetMapObjTemplateMovementType(localId, movementType);
+ return FALSE;
+}
+
+bool8 ScrCmd_createvobject(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_turnvobject(struct ScriptContext *ctx)
+{
+ u8 v1 = ScriptReadByte(ctx);
+ u8 direction = ScriptReadByte(ctx);
+
+ sub_8097B78(v1, direction);
+ return FALSE;
+}
+
+bool8 ScrCmd_lockall(struct ScriptContext *ctx)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ ScriptFreezeMapObjects();
+ SetupNativeScript(ctx, sub_80983C4);
+ return TRUE;
+ }
+}
+
+bool8 ScrCmd_lock(struct ScriptContext *ctx)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ if (gMapObjects[gSelectedMapObject].active)
+ {
+ LockSelectedMapObject();
+ SetupNativeScript(ctx, sub_809847C);
+ }
+ else
+ {
+ ScriptFreezeMapObjects();
+ SetupNativeScript(ctx, sub_80983C4);
+ }
+ return TRUE;
+ }
+}
+
+bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
+{
+ u8 objectId;
+
+ HideFieldMessageBox();
+ objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
+ sub_80D338C();
+ UnfreezeMapObjects();
+ return FALSE;
+}
+
+bool8 ScrCmd_release(struct ScriptContext *ctx)
+{
+ u8 objectId;
+
+ HideFieldMessageBox();
+ if (gMapObjects[gSelectedMapObject].active)
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedMapObject]);
+ objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
+ sub_80D338C();
+ UnfreezeMapObjects();
+ return FALSE;
+}
+
+bool8 ScrCmd_message(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ ShowFieldMessage(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_pokenavcall(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ sub_8098238(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ gTextFlags.flag_2 = TRUE;
+ gTextFlags.flag_3 = TRUE;
+ ShowFieldAutoScrollMessage(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdDB(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ sub_81973A4();
+ sub_81973C4(0, 1);
+ PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0);
+ return FALSE;
+}
+
+bool8 ScrCmd_waitmessage(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsFieldMessageBoxHidden);
+ return TRUE;
+}
+
+bool8 ScrCmd_closemessage(struct ScriptContext *ctx)
+{
+ HideFieldMessageBox();
+ return FALSE;
+}
+
+static bool8 WaitForAorBPress(void)
+{
+ if (gMain.newKeys & A_BUTTON)
+ return TRUE;
+ if (gMain.newKeys & B_BUTTON)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 ScrCmd_waitbutton(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, WaitForAorBPress);
+ return TRUE;
+}
+
+bool8 ScrCmd_yesnobox(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+
+ if (ScriptMenu_YesNo(left, top) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_multichoice(struct ScriptContext *ctx)
+{
+ 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;
+ }
+}
+
+bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx)
+{
+ 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;
+ }
+}
+
+bool8 ScrCmd_drawbox(struct ScriptContext *ctx)
+{
+ /*u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 right = ScriptReadByte(ctx);
+ u8 bottom = ScriptReadByte(ctx);
+
+ MenuDrawTextWindow(left, top, right, bottom);*/
+ return FALSE;
+}
+
+bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx)
+{
+ 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;
+ }
+}
+
+bool8 ScrCmd_erasebox(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 right = ScriptReadByte(ctx);
+ u8 bottom = ScriptReadByte(ctx);
+
+ // MenuZeroFillWindowRect(left, top, right, bottom);
+ return FALSE;
+}
+
+bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_drawpokepic(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ ScriptMenu_ShowPokemonPic(species, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_erasepokepic(struct ScriptContext *ctx)
+{
+ bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc();
+
+ if (func == NULL)
+ return FALSE;
+ SetupNativeScript(ctx, func);
+ return TRUE;
+}
+
+bool8 ScrCmd_drawcontestwinner(struct ScriptContext *ctx)
+{
+ u8 v1 = ScriptReadByte(ctx);
+
+ if (v1)
+ sub_812FDA8(v1);
+ ShowContestWinner();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+// Lots of math, can't figure it out.
+/*
+bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)ScriptReadWord(ctx);
+ struct WindowTemplate template1;
+ struct WindowTemplate template2;
+ int i;
+ u8 width;
+ u8 height;
+ int temp1;
+ int temp2;
+ u8 x;
+ u8 y;
+
+ StringExpandPlaceholders(gStringVar4, ptr + 6);
+
+ width = GetStringWidth(6, gStringVar4, -1) / 8;
+
+ if (width > 0x1C)
+ width = 0x1C;
+
+ for (i = 0, height = 4; gStringVar4[i] != 0xFF;)
+ {
+ if (gStringVar4[i++] == 0xFE)
+ height += 3;
+ }
+
+ if (height > 0x12)
+ height = 0x12;
+
+ x = width + 2;
+ temp1 = (0x1E - x) / 2;
+ x = temp1 + 1;
+ temp1 = ((x - temp1 - 1) * 8 + 3);
+
+ y = height + 2;
+ temp2 = (0x14 - y) / 2;
+ y = temp2 + 2;
+ temp2 = ((y - temp2 - 1) * 8);
+
+ sub_8198A50(&template1, 0, x, y, width, height, 0xF, 0x1);
+ template2 = template1;
+ gUnknown_03000F30 = AddWindow(&template2);
+ sub_809882C(gUnknown_03000F30, 0x214, 0xE0);
+ sub_81973FC(gUnknown_03000F30, 0);
+ PutWindowTilemap(gUnknown_03000F30);
+ FillWindowPixelBuffer(gUnknown_03000F30, 0x11);
+ PrintTextOnWindow(gUnknown_03000F30, 6, gStringVar4, temp1, temp2, 0xFF, 0x0);
+ CopyWindowToVram(gUnknown_03000F30, 3);
+ return FALSE;
+}*/
+__attribute__((naked))
+bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
+{
+ asm("push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, #0x20\n\
+ bl ScriptReadWord\n\
+ add r1, r0, #0\n\
+ ldr r4, =gStringVar4\n\
+ add r1, #0x6\n\
+ add r0, r4, #0\n\
+ bl StringExpandPlaceholders\n\
+ mov r2, #0x1\n\
+ neg r2, r2\n\
+ mov r0, #0x6\n\
+ add r1, r4, #0\n\
+ bl GetStringWidth\n\
+ lsr r0, #3\n\
+ lsl r0, #24\n\
+ lsr r7, r0, #24\n\
+ cmp r7, #0x1C\n\
+ bls _0809AE9C\n\
+ mov r7, #0x1C\n\
+_0809AE9C:\n\
+ mov r5, #0x4\n\
+ ldrb r0, [r4]\n\
+ add r2, r7, #0x2\n\
+ add r1, sp, #0x18\n\
+ mov r8, r1\n\
+ cmp r0, #0xFF\n\
+ beq _0809AEC0\n\
+ add r1, r4, #0\n\
+_0809AEAC:\n\
+ ldrb r0, [r1]\n\
+ add r1, #0x1\n\
+ cmp r0, #0xFE\n\
+ bne _0809AEBA\n\
+ add r0, r5, #0x3\n\
+ lsl r0, #24\n\
+ lsr r5, r0, #24\n\
+_0809AEBA:\n\
+ ldrb r0, [r1]\n\
+ cmp r0, #0xFF\n\
+ bne _0809AEAC\n\
+_0809AEC0:\n\
+ cmp r5, #0x12\n\
+ bls _0809AEC6\n\
+ mov r5, #0x12\n\
+_0809AEC6:\n\
+ lsl r0, r2, #24\n\
+ lsr r0, #24\n\
+ mov r2, #0x1E\n\
+ sub r2, r0\n\
+ lsr r0, r2, #31\n\
+ add r2, r0\n\
+ asr r2, #1\n\
+ lsl r2, #24\n\
+ add r0, r5, #0x2\n\
+ lsl r0, #24\n\
+ lsr r0, #24\n\
+ mov r4, #0x14\n\
+ sub r4, r0\n\
+ lsr r0, r4, #31\n\
+ add r4, r0\n\
+ asr r4, #1\n\
+ lsl r4, #24\n\
+ lsr r6, r2, #24\n\
+ mov r0, #0x80\n\
+ lsl r0, #17\n\
+ add r2, r0\n\
+ lsr r2, #24\n\
+ lsr r3, r4, #24\n\
+ mov r1, #0x80\n\
+ lsl r1, #18\n\
+ add r4, r1\n\
+ lsr r4, #24\n\
+ sub r6, r2, r6\n\
+ sub r6, #0x1\n\
+ lsl r6, #3\n\
+ add r6, #0x3\n\
+ lsl r6, #24\n\
+ lsr r6, #24\n\
+ sub r4, r3\n\
+ sub r4, #0x1\n\
+ lsl r4, #27\n\
+ lsr r4, #24\n\
+ add r3, #0x1\n\
+ lsl r3, #24\n\
+ lsr r3, #24\n\
+ str r7, [sp]\n\
+ str r5, [sp, #0x4]\n\
+ mov r0, #0xF\n\
+ str r0, [sp, #0x8]\n\
+ mov r0, #0x1\n\
+ str r0, [sp, #0xC]\n\
+ add r0, sp, #0x10\n\
+ mov r1, #0\n\
+ bl sub_8198A50\n\
+ ldr r0, [sp, #0x10]\n\
+ ldr r1, [sp, #0x14]\n\
+ str r0, [sp, #0x18]\n\
+ str r1, [sp, #0x1C]\n\
+ ldr r5, =gUnknown_03000F30\n\
+ mov r0, r8\n\
+ bl AddWindow\n\
+ strb r0, [r5]\n\
+ ldrb r0, [r5]\n\
+ mov r1, #0x85\n\
+ lsl r1, #2\n\
+ mov r2, #0xE0\n\
+ bl sub_809882C\n\
+ ldrb r0, [r5]\n\
+ mov r1, #0\n\
+ bl sub_81973FC\n\
+ ldrb r0, [r5]\n\
+ bl PutWindowTilemap\n\
+ ldrb r0, [r5]\n\
+ mov r1, #0x11\n\
+ bl FillWindowPixelBuffer\n\
+ ldrb r0, [r5]\n\
+ ldr r2, =gStringVar4\n\
+ str r4, [sp]\n\
+ mov r1, #0xFF\n\
+ str r1, [sp, #0x4]\n\
+ mov r1, #0\n\
+ str r1, [sp, #0x8]\n\
+ mov r1, #0x6\n\
+ add r3, r6, #0\n\
+ bl PrintTextOnWindow\n\
+ ldrb r0, [r5]\n\
+ mov r1, #0x3\n\
+ bl CopyWindowToVram\n\
+ mov r0, #0\n\
+ add sp, #0x20\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .pool");
+}
+
+bool8 ScrCmd_cmdDA(struct ScriptContext *ctx)
+{
+ sub_809BDB4();
+ return FALSE;
+}
+
+bool8 ScrCmd_vmessage(struct ScriptContext *ctx)
+{
+ u32 v1 = ScriptReadWord(ctx);
+
+ ShowFieldMessage((u8 *)(v1 - gUnknown_020375C4));
+ return FALSE;
+}
+
+bool8 ScrCmd_getspeciesname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]);
+ return FALSE;
+}
+
+bool8 ScrCmd_getfirstpartypokename(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_getpartypokename(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]);
+ StringGetEnd10(sScriptStringVars[stringVarIndex]);
+ return FALSE;
+}
+
+bool8 ScrCmd_getitemname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
+ CopyItemName(itemId, sScriptStringVars[stringVarIndex]);
+ return FALSE;
+}
+
+bool8 ScrCmd_getitemnameplural(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ CopyItemNameHandlePlural(itemId, sScriptStringVars[stringVarIndex], quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_getdecorname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 decorId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name);
+ return FALSE;
+}
+
+bool8 ScrCmd_getmovename(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 moveId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]);
+ return FALSE;
+}
+
+bool8 ScrCmd_getnumberstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 v1 = VarGet(ScriptReadHalfword(ctx));
+ u8 v2 = sub_80EF370(v1);
+
+ ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2);
+ return FALSE;
+}
+
+bool8 ScrCmd_getstdstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gUnknown_0858BAF0[index]);
+ return FALSE;
+}
+
+bool8 ScrCmd_getcontesttype(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ sub_818E868(sScriptStringVars[stringVarIndex], index);
+ return FALSE;
+}
+
+bool8 ScrCmd_getstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ const u8 *text = (u8 *)ScriptReadWord(ctx);
+
+ StringCopy(sScriptStringVars[stringVarIndex], text);
+ return FALSE;
+}
+
+bool8 ScrCmd_vloadword(struct ScriptContext *ctx)
+{
+ const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4);
+
+ StringExpandPlaceholders(gStringVar4, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_vgetstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u32 addr = ScriptReadWord(ctx);
+
+ const u8 *src = (u8 *)(addr - gUnknown_020375C4);
+ u8 *dest = sScriptStringVars[stringVarIndex];
+ StringCopy(dest, src);
+ return FALSE;
+}
+
+bool8 ScrCmd_getboxname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 boxId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], GetBoxNamePtr(boxId));
+ return FALSE;
+}
+
+bool8 ScrCmd_givepoke(struct ScriptContext *ctx)
+{
+ 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);
+
+ gScriptResult = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3);
+ return FALSE;
+}
+
+bool8 ScrCmd_giveegg(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = ScriptGiveEgg(species);
+ return FALSE;
+}
+
+bool8 ScrCmd_setpokemove(struct ScriptContext *ctx)
+{
+ u8 partyIndex = ScriptReadByte(ctx);
+ u8 slot = ScriptReadByte(ctx);
+ u16 move = ScriptReadHalfword(ctx);
+
+ ScriptSetMonMoveSlot(partyIndex, move, slot);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkpokemove(struct ScriptContext *ctx)
+{
+ u8 i;
+ u16 moveId = ScriptReadHalfword(ctx);
+
+ gScriptResult = 6;
+ for (i = 0; i < 6; i++)
+ {
+ u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
+ if (!species)
+ break;
+ // UB: GetMonData() arguments don't match function definition
+ if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE)
+ {
+ gScriptResult = i;
+ gSpecialVar_0x8004 = species;
+ break;
+ }
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ AddMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_takemoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ RemoveMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkmoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ gScriptResult = IsEnoughMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx)
+{
+ /*u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);*/
+
+ HideMoneyBox();
+ return FALSE;
+}
+
+bool8 ScrCmd_updatemoneybox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ ChangeAmountInMoneyBox(GetMoney(&gSaveBlock1Ptr->money));
+ return FALSE;
+}
+
+bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ ShowCoinsWindow(GetCoins(), x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidecoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ HideCoinsWindow();
+ return FALSE;
+}
+
+bool8 ScrCmd_updatecoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ PrintCoinsString(GetCoins());
+ return FALSE;
+}
+
+bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_ConfigureTrainerBattle(ctx->scriptPtr);
+ return FALSE;
+}
+
+bool8 ScrCmd_battlebegin(struct ScriptContext *ctx)
+{
+ BattleSetup_StartTrainerBattle();
+ return TRUE;
+}
+
+bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle();
+ return FALSE;
+}
+
+bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript();
+ return FALSE;
+}
+
+bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ ctx->comparisonResult = HasTrainerAlreadyBeenFought(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ trainer_flag_set(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ trainer_flag_clear(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
+{
+ u16 species = ScriptReadHalfword(ctx);
+ u8 level = ScriptReadByte(ctx);
+ u16 item = ScriptReadHalfword(ctx);
+
+ CreateScriptedWildMon(species, level, item);
+ return FALSE;
+}
+
+bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx)
+{
+ BattleSetup_StartScriptedWildBattle();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreatePokemartMenu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreateDecorationShop1Menu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreateDecorationShop2Menu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
+{
+ u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx));
+
+ PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_plantberrytree(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx)
+{
+ u16 value = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = GetPriceReduction(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_choosecontestpkmn(struct ScriptContext *ctx)
+{
+ sub_81B9404();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+
+bool8 ScrCmd_startcontest(struct ScriptContext *ctx)
+{
+ sub_80F840C();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx)
+{
+ sub_80F8484();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
+{
+ sub_80F84C4(gScriptContestCategory);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx)
+{
+ u16 effectId = VarGet(ScriptReadHalfword(ctx));
+
+ sFieldEffectScriptId = effectId;
+ FieldEffectStart(sFieldEffectScriptId);
+ return FALSE;
+}
+
+bool8 ScrCmd_setfieldeffect(struct ScriptContext *ctx)
+{
+ u8 argNum = ScriptReadByte(ctx);
+
+ gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForFieldEffectFinish(void)
+{
+ if (!FieldEffectActiveListContains(sFieldEffectScriptId))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx)
+{
+ sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx));
+ SetupNativeScript(ctx, WaitForFieldEffectFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_sethealplace(struct ScriptContext *ctx)
+{
+ u16 healLocationId = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetHealLocationWarp(healLocationId);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx)
+{
+ gScriptResult = gSaveBlock2Ptr->playerGender;
+ return FALSE;
+}
+
+bool8 ScrCmd_playpokecry(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+ u16 mode = VarGet(ScriptReadHalfword(ctx));
+
+ PlayCry5(species, mode);
+ return FALSE;
+}
+
+bool8 ScrCmd_waitpokecry(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsCryFinished);
+ return TRUE;
+}
+
+bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_opendoor(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ PlaySE(GetDoorSoundEffect(x, y));
+ FieldAnimateDoorOpen(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_closedoor(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_waitdooranim(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsDoorAnimationStopped);
+ return TRUE;
+}
+
+bool8 ScrCmd_setdooropen(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ FieldSetDoorOpened(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ FieldSetDoorClosed(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx)
+{
+ 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;
+}
+
+bool8 ScrCmd_showelevmenu(struct ScriptContext *ctx)
+{
+ /*ScriptShowElevatorMenu();
+ ScriptContext1_Stop();
+ return TRUE;*/
+ return FALSE;
+}
+
+bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr = GetCoins();
+ return FALSE;
+}
+
+bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
+{
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+
+ if (GiveCoins(coins) == TRUE)
+ gScriptResult = 0;
+ else
+ gScriptResult = 1;
+ return FALSE;
+}
+
+bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
+{
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+
+ if (TakeCoins(coins) == TRUE)
+ gScriptResult = 0;
+ else
+ gScriptResult = 1;
+ return FALSE;
+}
+
+bool8 ScrCmd_mossdeepgym1(struct ScriptContext *ctx)
+{
+ u16 v1 = VarGet(ScriptReadHalfword(ctx));
+
+ sMovingNpcId = sub_81A89A0(v1);
+ return FALSE;
+}
+
+bool8 ScrCmd_mossdeepgym2(struct ScriptContext *ctx)
+{
+ sub_81A8AF8();
+ return FALSE;
+}
+
+bool8 ScrCmd_mossdeepgym3(struct ScriptContext *ctx)
+{
+ u16 v1 = VarGet(ScriptReadHalfword(ctx));
+
+ sub_81A8934(v1);
+ return FALSE;
+}
+
+bool8 ScrCmd_mossdeepgym4(struct ScriptContext *ctx)
+{
+ sub_81A895C();
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdD8(struct ScriptContext *ctx)
+{
+ gSelectedMapObject = sub_80B47BC();
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdD9(struct ScriptContext *ctx)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ if (gMapObjects[gSelectedMapObject].active)
+ {
+ sub_8098630();
+ SetupNativeScript(ctx, sub_8098734);
+ }
+ return TRUE;
+ }
+}
+
+// This command will force the Pokémon to be obedient, you don't get to choose which value to set its obedience to
+bool8 ScrCmd_setpokeobedient(struct ScriptContext *ctx)
+{
+ bool8 obedient = TRUE;
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkpokeobedience(struct ScriptContext *ctx)
+{
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ gScriptResult = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL);
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdCF(struct ScriptContext *ctx)
+{
+ const u8* v1 = sub_8099244();
+
+ if (v1)
+ {
+ ((u8*)gUnknown_020375C0) = ctx->scriptPtr;
+ ScriptJump(ctx, v1);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_warpD1(struct ScriptContext *ctx)
+{
+ 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_808D074(player_get_direction_lower_nybble());
+ sub_80B0244();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
+
+bool8 ScrCmd_setpokemetlocation(struct ScriptContext *ctx)
+{
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+ u8 location = ScriptReadByte(ctx);
+
+ if (partyIndex < PARTY_SIZE)
+ SetMonData(&gPlayerParty[partyIndex], MON_DATA_MET_LOCATION, &location);
+ return FALSE;
+}
+
+void sub_809BDB4(void)
+{
+ sub_819746C(gUnknown_03000F30, 1);
+ RemoveWindow(gUnknown_03000F30);
+}
+
+bool8 ScrCmd_gettrainerclass(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 trainerClassId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], GetTrainerClassNameFromId(trainerClassId));
+ return FALSE;
+}
+
+bool8 ScrCmd_gettrainername(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 trainerClassId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], GetTrainerNameFromId(trainerClassId));
+ return FALSE;
+}
+
+void sub_809BE48(u16 npcId)
+{
+ sMovingNpcId = npcId;
+}
-// .rodata
+bool8 ScrCmd_warpE0(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
-// .text
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ sub_80AF79C();
+ player_avatar_init_params_reset();
+ return TRUE;
+}
diff --git a/src/script.c b/src/script.c
index b2809a137..5a1c5daa9 100644
--- a/src/script.c
+++ b/src/script.c
@@ -134,12 +134,12 @@ const u8 *ScriptPop(struct ScriptContext *ctx)
return ctx->stack[ctx->stackDepth];
}
-void ScriptJump(struct ScriptContext *ctx, u8 *ptr)
+void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
{
ctx->scriptPtr = ptr;
}
-void ScriptCall(struct ScriptContext *ctx, u8 *ptr)
+void ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
{
ScriptPush(ctx, ctx->scriptPtr);
ctx->scriptPtr = ptr;
diff --git a/src/text.c b/src/text.c
index 7cc46cd92..8108a6867 100644
--- a/src/text.c
+++ b/src/text.c
@@ -145,7 +145,7 @@ void DeactivateAllTextPrinters (void)
gTextPrinters[printer].sub_union.sub.active = 0;
}
-u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
+u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
{
struct TextSubPrinter subPrinter;
diff --git a/src/tv.c b/src/tv.c
index 73b346068..7f64b46ac 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -2,7 +2,7 @@
// Includes
#include "global.h"
#include "rtc.h"
-#include "rom4.h"
+#include "overworld.h"
#include "map_constants.h"
#include "rng.h"
#include "event_data.h"
@@ -838,7 +838,7 @@ void UpdateTVScreensOnMap(int width, int height)
}
else if (FlagGet(SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xff || FindAnyTVNewsOnTheAir() != 0xff || IsTVShowInSearchOfTrainersAiring()))
{
- FlagReset(SYS_TV_WATCH);
+ FlagClear(SYS_TV_WATCH);
SetTVMetatilesOnMap(width, height, 0x3);
}
break;
@@ -1263,7 +1263,7 @@ void InterviewAfter_ContestLiveUpdates(void)
show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES;
show2->contestLiveUpdates.active = TRUE;
StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName);
- show2->contestLiveUpdates.category = gUnknown_02039F2C;
+ show2->contestLiveUpdates.category = gScriptContestCategory;
show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies;
show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2;
@@ -1527,7 +1527,7 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 a0)
if (sCurTVShowSlot != -1)
{
show->bravoTrainer.contestResult = a0;
- show->bravoTrainer.contestCategory = gUnknown_02039F2C;
+ show->bravoTrainer.contestCategory = gScriptContestCategory;
show->bravoTrainer.contestRank = gUnknown_02039F2E;
show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname);
@@ -1675,7 +1675,7 @@ void InterviewAfter_FanClubLetter(void)
show->fanclubLetter.kind = TVSHOW_FAN_CLUB_LETTER;
show->fanclubLetter.active = TRUE;
StringCopy(show->fanclubLetter.playerName, gSaveBlock2Ptr->playerName);
- show->fanclubLetter.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL);
+ show->fanclubLetter.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
tv_store_id_2x(show);
show->fanclubLetter.language = gGameLanguage;
}
@@ -1700,21 +1700,21 @@ void InterviewAfter_PkmnFanClubOpinions(void)
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
show->fanclubOpinions.kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS;
show->fanclubOpinions.active = TRUE;
- show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_FRIENDSHIP, NULL) >> 4;
+ show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_FRIENDSHIP, NULL) >> 4;
show->fanclubOpinions.questionAsked = gSpecialVar_0x8007;
StringCopy(show->fanclubOpinions.playerName, gSaveBlock2Ptr->playerName);
- GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname);
+ GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname);
StripExtCtrlCodes(show->fanclubOpinions.nickname);
- show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL);
+ show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
tv_store_id_2x(show);
show->fanclubOpinions.language = gGameLanguage;
- if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
+ if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
{
show->fanclubOpinions.pokemonNameLanguage = LANGUAGE_JAPANESE;
}
else
{
- show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE);
+ show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE);
}
}
@@ -3073,7 +3073,7 @@ void TV_PrintIntToStringVar(u8 varIdx, int value)
ConvertIntToDecimalStringN(gTVStringVarPtrs[varIdx], value, STR_CONV_MODE_LEFT_ALIGN, nDigits);
}
-int sub_80EF370(int value)
+size_t sub_80EF370(int value)
{
if (value / 10 == 0)
{
@@ -3246,7 +3246,7 @@ void InterviewBefore_FanClubLetter(void)
FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_LETTER);
if (!gScriptResult)
{
- StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]);
+ StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]);
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words, 6);
}
}
@@ -3265,8 +3265,8 @@ void InterviewBefore_PkmnFanClubOpinions(void)
FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_PKMN_FAN_CLUB_OPINIONS);
if (!gScriptResult)
{
- StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]);
- GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, gStringVar2);
+ StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]);
+ GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2);
StringGetEnd10(gStringVar2);
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words, 2);
}
@@ -3336,7 +3336,7 @@ bool8 sub_80EF88C(u8 monIdx)
bool8 sub_80EF8F8(void)
{
- return sub_80EF88C(GetIdxOfFirstPartyMemberThatIsNotAnEgg());
+ return sub_80EF88C(GetLeadMonIndex());
}
void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx)
diff --git a/sym_ewram.txt b/sym_ewram.txt
index f2203e25c..bc6ba2cfb 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -680,24 +680,9 @@ gUnknown_020375BC: @ 20375BC
gUnknown_020375C0: @ 20375C0
.space 0x4
-gUnknown_020375C4: @ 20375C4
- .space 0x4
-
-gUnknown_020375C8: @ 20375C8
- .space 0x2
-
-gUnknown_020375CA: @ 20375CA
- .space 0x2
-
-gUnknown_020375CC: @ 20375CC
- .space 0x2
-
-gUnknown_020375CE: @ 20375CE
- .space 0x2
-
-gUnknown_020375D0: @ 20375D0
- .space 0x4
+ .include "src/scrcmd.o"
+ .align 2
gUnknown_020375D4: @ 20375D4
.space 0x2
@@ -878,7 +863,7 @@ gUnknown_02038C00: @ 2038C00
gUnknown_02038C04: @ 2038C04
.space 0x4
-gFieldEffectSpawnParams: @ 2038C08
+gFieldEffectArguments: @ 2038C08
.space 0x20
gUnknown_02038C28: @ 2038C28
@@ -1061,7 +1046,7 @@ gUnknown_02039F2A: @ 2039F2A
gUnknown_02039F2B: @ 2039F2B
.space 0x1
-gUnknown_02039F2C: @ 2039F2C
+gScriptContestCategory: @ 2039F2C
.space 0x2
gUnknown_02039F2E: @ 2039F2E