summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2017-09-19 19:42:32 -0500
committerDiegoisawesome <diego@domoreaweso.me>2017-09-19 19:42:32 -0500
commitd273493cbb1ef8ecda5c87908d07fffc1d68cd6f (patch)
treea08642a5b0d91c17f1ccf7bf2d69c321ddd653d4 /asm
parentfcc94f9722609ffa67c045cf8a7539690a68b080 (diff)
parentf94074b6027d1efe067fd972127eb7730cbef2e0 (diff)
Merge remote-tracking branch 'pret/master'
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s94
-rw-r--r--asm/battle_3.s11164
-rw-r--r--asm/battle_4.s320
-rw-r--r--asm/battle_5.s16
-rw-r--r--asm/battle_anim_80FE840.s4
-rw-r--r--asm/battle_anim_8170478.s2
-rw-r--r--asm/battle_dome_cards.s1
-rw-r--r--asm/battle_link_817C95C.s16
-rw-r--r--asm/battle_message.s4
-rw-r--r--asm/battle_transition.s4
-rw-r--r--asm/bike.s92
-rw-r--r--asm/braille_puzzles.s4
-rw-r--r--asm/field_camera.s2
-rw-r--r--asm/field_control_avatar.s6
-rw-r--r--asm/field_effect.s146
-rw-r--r--asm/field_effect_helpers.s62
-rw-r--r--asm/field_ground_effect.s24
-rw-r--r--asm/field_map_obj.s20270
-rw-r--r--asm/field_player_avatar.s168
-rw-r--r--asm/field_tasks.s2
-rw-r--r--asm/fieldmap.s14
-rw-r--r--asm/fldeff_80F9BCC.s54
-rwxr-xr-xasm/fldeff_cut.s6
-rw-r--r--asm/fldeff_emotion.s4
-rwxr-xr-xasm/fldeff_groundshake.s2
-rw-r--r--asm/fldeff_strength.s4
-rw-r--r--asm/fldeff_sweetscent.s4
-rw-r--r--asm/fldeff_teleport.s2
-rw-r--r--asm/link.s4
-rw-r--r--asm/map_obj_8097404.s26
-rw-r--r--asm/map_obj_lock.s2
-rwxr-xr-xasm/party_menu.s10
-rw-r--r--asm/pokemon_item_effect.s2
-rwxr-xr-xasm/pokenav.s22
-rw-r--r--asm/porthole.s2
-rw-r--r--asm/recorded_battle.s2
-rw-r--r--asm/rom3.s10
-rw-r--r--asm/rom4.s30
-rw-r--r--asm/rom6.s18
-rw-r--r--asm/scrcmd.s2
-rw-r--r--asm/secret_base.s2
-rw-r--r--asm/trainer_see.s10
42 files changed, 599 insertions, 32034 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index cc9af9b3f..fb0073566 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -6434,7 +6434,7 @@ _08039FDC:
strb r1, [r0]
ldr r2, =gBattleWeather
strh r1, [r2]
- ldr r1, =gUnknown_020243D0
+ ldr r1, =gWishFutureKnock
movs r2, 0
movs r3, 0
_0803A004:
@@ -7808,7 +7808,7 @@ _0803ABD4:
movs r2, 0
bl dp01_build_cmdbuf_x00_a_b_0
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
@@ -7857,7 +7857,7 @@ bc_load_battlefield: @ 803AC34
movs r0, 0
bl dp01_build_cmdbuf_x2E_a
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattleMainFunc
ldr r0, =sub_803AC84
str r0, [r1]
@@ -8040,7 +8040,7 @@ _0803ADCA:
movs r0, 0
bl dp01_build_cmdbuf_x07_7_7_7
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803ADE4:
ldr r5, =gBattleTypeFlags
ldr r0, [r5]
@@ -8057,7 +8057,7 @@ _0803ADE4:
movs r0, 0
bl dp01_build_cmdbuf_x07_7_7_7
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803AE0A:
ldrb r0, [r4]
bl GetBankSide
@@ -8114,7 +8114,7 @@ _0803AE96:
movs r0, 0
bl dp01_build_cmdbuf_x04_4_4_4
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
@@ -8153,7 +8153,7 @@ _0803AEEA:
movs r0, 0
bl dp01_build_cmdbuf_x07_7_7_7
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803AEF6:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -8172,7 +8172,7 @@ _0803AEF6:
movs r0, 0
bl dp01_build_cmdbuf_x07_7_7_7
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803AF20:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -8282,7 +8282,7 @@ _0803AFFA:
movs r2, 0x80
bl dp01_build_cmdbuf_x30_TODO
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
movs r7, 0
mov r6, r8
mov r5, sp
@@ -8334,7 +8334,7 @@ _0803B072:
movs r2, 0x80
bl dp01_build_cmdbuf_x30_TODO
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattleMainFunc
ldr r0, =bc_battle_begin_message
b _0803B10A
@@ -8522,7 +8522,7 @@ _0803B20E:
movs r0, 0
bl dp01_build_cmdbuf_x2F_2F_2F_2F
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803B228:
ldrb r0, [r4]
adds r0, 0x1
@@ -8596,7 +8596,7 @@ _0803B2B2:
movs r0, 0
bl dp01_build_cmdbuf_x2F_2F_2F_2F
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
ldr r1, =0x00008040
@@ -8793,7 +8793,7 @@ _0803B45E:
movs r0, 0
bl dp01_build_cmdbuf_x2F_2F_2F_2F
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803B478:
ldrb r0, [r4]
adds r0, 0x1
@@ -8877,7 +8877,7 @@ _0803B51A:
movs r0, 0
bl dp01_build_cmdbuf_x2F_2F_2F_2F
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
@@ -8949,7 +8949,7 @@ _0803B5B2:
movs r2, 0
bl dp01_build_cmdbuf_x05_a_b_c
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803B5D4:
ldrb r0, [r4]
adds r0, 0x1
@@ -9177,7 +9177,7 @@ _0803B79A:
ldrb r1, [r0]
movs r0, 0
movs r2, 0
- bl berry_effects_maybe
+ bl ItemBattleEffects
lsls r0, 24
cmp r0, 0
beq _0803B7BC
@@ -9208,7 +9208,7 @@ _0803B7DA:
mov r8, r1
movs r7, 0x6
ldr r6, =gUnknown_0202421C
- ldr r2, =gUnknown_02024274
+ ldr r2, =gChosenMovesByBanks
movs r4, 0xFF
movs r3, 0
_0803B7EA:
@@ -9328,7 +9328,7 @@ bc_8013B1C: @ 803B904
cmp r0, 0
bne _0803B994
ldr r1, =gBattleMainFunc
- ldr r0, =sub_803B9BC
+ ldr r0, =BattleTurnPassed
str r0, [r1]
ldr r3, =gNoOfAllBanks
ldr r1, =gBattleCommunication
@@ -9404,8 +9404,8 @@ _0803B994:
.pool
thumb_func_end bc_8013B1C
- thumb_func_start sub_803B9BC
-sub_803B9BC: @ 803B9BC
+ thumb_func_start BattleTurnPassed
+BattleTurnPassed: @ 803B9BC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -9416,13 +9416,13 @@ sub_803B9BC: @ 803B9BC
ldrb r0, [r0]
cmp r0, 0
bne _0803B9EA
- bl sub_80401D0
+ bl UpdateTurnCounters
lsls r0, 24
cmp r0, 0
beq _0803B9DE
b _0803BB78
_0803B9DE:
- bl sub_8040924
+ bl TurnBasedEffects
lsls r0, 24
cmp r0, 0
beq _0803B9EA
@@ -9514,7 +9514,7 @@ _0803BAB2:
ldr r7, =gUnknown_0202421C
movs r6, 0xFF
movs r5, 0
- ldr r3, =gUnknown_02024274
+ ldr r3, =gChosenMovesByBanks
_0803BACC:
adds r1, r2, r7
ldrb r0, [r1]
@@ -9586,7 +9586,7 @@ _0803BB78:
pop {r0}
bx r0
.pool
- thumb_func_end sub_803B9BC
+ thumb_func_end BattleTurnPassed
thumb_func_start sub_803BB88
sub_803BB88: @ 803BB88
@@ -10178,7 +10178,7 @@ _0803C0A8:
.4byte _0803C6C4
.4byte _0803C4B4
_0803C0DC:
- bl sub_80400C8
+ bl AreAllMovesUnusable
lsls r0, 24
cmp r0, 0
beq _0803C134
@@ -10223,7 +10223,7 @@ _0803C134:
ldrh r2, [r0, 0x6]
cmp r2, 0
beq _0803C188
- ldr r1, =gUnknown_02024274
+ ldr r1, =gChosenMovesByBanks
lsls r0, r4, 1
adds r0, r1
strh r2, [r0]
@@ -10552,7 +10552,7 @@ _0803C410:
_0803C42E:
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0803C6C4
.pool
_0803C440:
@@ -10596,7 +10596,7 @@ _0803C48C:
movs r0, 0
bl sub_8033E6C
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0803C6C4
.pool
_0803C4B4:
@@ -10660,7 +10660,7 @@ _0803C532:
movs r0, 0
bl dp01_build_cmdbuf_x32_32_32_32
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
bl _0803CD70
.pool
_0803C550:
@@ -10813,7 +10813,7 @@ _0803C6AE:
bl dp01_build_cmdbuf_x32_32_32_32
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0803CD70
.pool
_0803C6C4:
@@ -11083,7 +11083,7 @@ _0803C942:
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, =gUnknown_02024274
+ ldr r0, =gChosenMovesByBanks
ldrb r2, [r6]
lsls r5, r2, 1
adds r5, r0
@@ -11299,7 +11299,7 @@ _0803CB66:
ldr r4, =gActiveBank
_0803CB68:
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803CB6E:
ldr r0, =gBattleCommunication
ldrb r1, [r4]
@@ -12704,7 +12704,7 @@ _0803D71C:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- ldr r1, =gUnknown_02024274
+ ldr r1, =gChosenMovesByBanks
ldrb r3, [r5]
lsls r0, r3, 1
adds r0, r1
@@ -13861,7 +13861,7 @@ _0803E2DC:
adds r0, r1
adds r3, 0xC
adds r0, r3
- ldr r1, =gUnknown_02024274
+ ldr r1, =gChosenMovesByBanks
lsls r2, 1
adds r2, r1
ldrh r3, [r0]
@@ -14400,7 +14400,7 @@ _0803E7EC:
movs r0, 0x4
strb r0, [r1, 0x5]
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6AD
+ ldr r0, =BattleScript_MoveUsedLoafingAround
str r0, [r1]
b _0803E824
.pool
@@ -15661,7 +15661,7 @@ _0803F430:
b _0803F47A
.pool
_0803F43C:
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r0, [r0]
b _0803F47A
.pool
@@ -15674,7 +15674,7 @@ _0803F44C:
b _0803F47A
.pool
_0803F458:
- ldr r0, =gUnknown_0202420D
+ ldr r0, =gBank1
ldrb r0, [r0]
b _0803F47A
.pool
@@ -15786,9 +15786,9 @@ _0803F4DE:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803F532:
add sp, 0x4
pop {r4-r7}
@@ -15933,9 +15933,9 @@ _0803F5F0:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803F658:
add sp, 0x4
pop {r3-r5}
@@ -16065,9 +16065,9 @@ _0803F6FE:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0803F762:
add sp, 0x4
pop {r3-r5}
@@ -16132,8 +16132,8 @@ _0803F7EE:
.pool
thumb_func_end sub_803F790
- thumb_func_start dp01_battle_side_mark_buffer_for_execution
-dp01_battle_side_mark_buffer_for_execution: @ 803F800
+ thumb_func_start MarkBufferBankForExecution
+MarkBufferBankForExecution: @ 803F800
push {lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -16167,7 +16167,7 @@ _0803F844:
pop {r0}
bx r0
.pool
- thumb_func_end dp01_battle_side_mark_buffer_for_execution
+ thumb_func_end MarkBufferBankForExecution
thumb_func_start sub_803F850
sub_803F850: @ 803F850
@@ -16312,7 +16312,7 @@ b_std_message: @ 803F964
adds r1, r2, 0
bl dp01_build_cmdbuf_x10_TODO
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
pop {r4}
pop {r0}
bx r0
diff --git a/asm/battle_3.s b/asm/battle_3.s
deleted file mode 100644
index f2e384c86..000000000
--- a/asm/battle_3.s
+++ /dev/null
@@ -1,11164 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start b_movescr_stack_push
-b_movescr_stack_push: @ 803FAD8
- push {r4,lr}
- ldr r1, =gBattleResources
- ldr r1, [r1]
- ldr r3, [r1, 0x8]
- adds r4, r3, 0
- adds r4, 0x20
- ldrb r1, [r4]
- adds r2, r1, 0x1
- strb r2, [r4]
- lsls r1, 24
- lsrs r1, 22
- adds r3, r1
- str r0, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end b_movescr_stack_push
-
- thumb_func_start b_movescr_stack_push_cursor
-b_movescr_stack_push_cursor: @ 803FAFC
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r2, [r0, 0x8]
- adds r3, r2, 0
- adds r3, 0x20
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 22
- adds r2, r0
- ldr r0, =gBattlescriptCurrInstr
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .pool
- thumb_func_end b_movescr_stack_push_cursor
-
- thumb_func_start b_movescr_stack_pop_cursor
-b_movescr_stack_pop_cursor: @ 803FB24
- ldr r3, =gBattlescriptCurrInstr
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r3]
- bx lr
- .pool
- thumb_func_end b_movescr_stack_pop_cursor
-
- thumb_func_start sub_803FB4C
-sub_803FB4C: @ 803FB4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r2, =gBattleMons
- ldr r1, =gBattleBufferB
- ldr r3, =gActiveBank
- ldrb r4, [r3]
- lsls r0, r4, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r4
- adds r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r5, [r0]
- ldr r1, =gBattleStruct
- lsls r0, r4, 1
- adds r0, 0xC8
- ldr r1, [r1]
- adds r1, r0
- mov r8, r1
- ldr r1, =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x4]
- adds r7, r3, 0
- adds r3, r1, 0
- cmp r0, r5
- bne _0803FC06
- cmp r5, 0
- beq _0803FC06
- ldr r0, =gBattleScripting
- strb r4, [r0, 0x17]
- ldr r0, =gCurrentMove
- strh r5, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0803FBF8
- ldr r1, =gUnknown_02024230
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DAE2A
- str r1, [r0]
- ldr r0, =gProtectStructs
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FC06
- .pool
-_0803FBF8:
- ldr r0, =gUnknown_02024220
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r0
- ldr r0, =gUnknown_082DAE1F
- str r0, [r1]
- movs r6, 0x1
-_0803FC06:
- ldr r1, =gLastUsedMovesByBanks
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _0803FC90
- cmp r5, 0xA5
- beq _0803FC90
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0803FC90
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0803FC7C
- ldr r1, =gUnknown_02024230
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB098
- str r1, [r0]
- ldr r0, =gProtectStructs
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FC8E
- .pool
-_0803FC7C:
- ldr r1, =gUnknown_02024220
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB089
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FC8E:
- ldr r3, =gDisableStructs
-_0803FC90:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _0803FD1A
- ldr r0, =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0803FD1A
- ldr r0, =gCurrentMove
- strh r5, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0803FD08
- ldr r1, =gUnknown_02024230
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB0AF
- str r1, [r0]
- ldr r0, =gProtectStructs
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FD1A
- .pool
-_0803FD08:
- ldr r1, =gUnknown_02024220
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB0A0
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD1A:
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r1, r5, 0
- bl sub_8040130
- lsls r0, 24
- cmp r0, 0
- beq _0803FD8E
- ldr r0, =gCurrentMove
- strh r5, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0803FD7C
- ldr r1, =gUnknown_02024230
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB185
- str r1, [r0]
- ldr r0, =gProtectStructs
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FD8E
- .pool
-_0803FD7C:
- ldr r1, =gUnknown_02024220
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB181
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD8E:
- ldr r1, =gBattleMons
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803FDC4
- ldr r1, =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- b _0803FDCE
- .pool
-_0803FDC4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FDCE:
- ldr r2, =gStringBank
- ldr r1, =gActiveBank
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r0, =gBattleMons
- mov r12, r0
- adds r7, r1, 0
- cmp r4, 0x1D
- bne _0803FE58
- mov r0, r8
- ldrh r1, [r0]
- adds r2, r1, 0
- cmp r2, 0
- beq _0803FE58
- ldr r0, =0x0000ffff
- cmp r2, r0
- beq _0803FE58
- cmp r2, r5
- beq _0803FE58
- ldr r0, =gCurrentMove
- strh r1, [r0]
- ldr r2, =gLastUsedItem
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 10
- ands r1, r0
- ldrb r2, [r7]
- cmp r1, 0
- beq _0803FE48
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FE58
- .pool
-_0803FE48:
- ldr r1, =gUnknown_02024220
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB812
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FE58:
- ldr r0, =gBattleBufferB
- ldrb r3, [r7]
- lsls r1, r3, 9
- adds r0, 0x2
- adds r1, r0
- movs r0, 0x58
- muls r0, r3
- ldrb r1, [r1]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803FEB8
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0803FEA8
- ldr r0, =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- b _0803FEB8
- .pool
-_0803FEA8:
- ldr r1, =gUnknown_02024220
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB076
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FEB8:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_803FB4C
-
- thumb_func_start CheckMoveLimitations
-CheckMoveLimitations: @ 803FECC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- ldr r1, =gBattleStruct
- lsls r0, r7, 1
- adds r0, 0xC8
- ldr r1, [r1]
- adds r1, r0
- str r1, [sp, 0x4]
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803FF1C
- ldr r2, =gEnigmaBerries
- lsls r1, r7, 3
- subs r0, r1, r7
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- b _0803FF2E
- .pool
-_0803FF1C:
- ldrh r0, [r1, 0x2E]
- str r3, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, r7, 3
- ldr r3, [sp, 0x14]
-_0803FF2E:
- ldr r0, =gStringBank
- strb r7, [r0]
- movs r0, 0
- mov r9, r0
- lsls r2, r7, 1
- str r2, [sp, 0xC]
- ldr r5, =gDisableStructs
- mov r12, r5
- ldr r0, =gBattleMons
- movs r2, 0x58
- adds r6, r7, 0
- muls r6, r2
- str r6, [sp, 0x8]
- ldr r2, =gBattleMons + 0xC
- adds r5, r6, r2
- movs r6, 0
- str r6, [sp, 0x10]
- mov r10, r0
- subs r0, r1, r7
- lsls r0, 2
- mov r8, r0
- ldr r6, =gBitTable
-_0803FF5A:
- ldrh r0, [r5]
- cmp r0, 0
- bne _0803FF70
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803FF70
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0803FF70:
- ldr r0, [sp, 0x8]
- add r0, r9
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803FF90
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _0803FF90
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0803FF90:
- mov r1, r8
- add r1, r12
- ldrh r0, [r5]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bne _0803FFAC
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _0803FFAC
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0803FFAC:
- movs r0, 0x58
- adds r2, r7, 0
- muls r2, r0
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldr r1, =gBattleMons + 0xC
- adds r0, r1
- mov r12, r0
- ldr r1, =gLastUsedMovesByBanks
- ldr r0, [sp, 0xC]
- adds r1, r0, r1
- str r1, [sp, 0x18]
- mov r1, r12
- ldrh r1, [r1]
- mov r12, r1
- ldr r0, [sp, 0x18]
- ldrh r0, [r0]
- cmp r12, r0
- bne _0803FFEE
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _0803FFEE
- mov r0, r10
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bge _0803FFEE
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0803FFEE:
- ldr r0, =gDisableStructs
- add r0, r8
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _0804001C
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0804001C
- ldr r2, =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0804001C
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0804001C:
- ldrh r1, [r5]
- adds r0, r7, 0
- str r3, [sp, 0x14]
- bl sub_8040130
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _0804003E
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0804003E
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0804003E:
- ldr r1, =gDisableStructs
- mov r0, r8
- adds r2, r0, r1
- ldrb r0, [r2, 0xE]
- lsls r0, 28
- mov r12, r1
- cmp r0, 0
- beq _0804005E
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5]
- cmp r0, r1
- beq _0804005E
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0804005E:
- ldr r2, [sp]
- cmp r2, 0x1D
- bne _08040080
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- cmp r1, 0
- beq _08040080
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _08040080
- ldrh r2, [r5]
- cmp r1, r2
- beq _08040080
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08040080:
- adds r6, 0x4
- adds r5, 0x2
- ldr r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x10]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x3
- bgt _08040096
- b _0803FF5A
-_08040096:
- adds r0, r4, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckMoveLimitations
-
- thumb_func_start sub_80400C8
-sub_80400C8: @ 80400C8
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0xFF
- bl CheckMoveLimitations
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bne _0804010C
- ldr r0, =gProtectStructs
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, =gUnknown_02024220
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =gUnknown_082DB072
- str r1, [r0]
- b _0804011E
- .pool
-_0804010C:
- ldr r0, =gProtectStructs
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0804011E:
- movs r0, 0
- cmp r3, 0xF
- bne _08040126
- movs r0, 0x1
-_08040126:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80400C8
-
- thumb_func_start sub_8040130
-sub_8040130: @ 8040130
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r6, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bge _080401B4
- ldr r7, =gBattleMons + 0xC
- mov r8, r7
-_0804015A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r9, r0
- beq _080401AA
- ldr r1, =gStatuses3
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _080401AA
- movs r2, 0
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- adds r0, r1, r7
- ldrh r0, [r0]
- cmp r5, r0
- beq _080401A0
- mov r4, r8
- adds r0, r1, r4
-_08040192:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080401AA
- ldrh r1, [r0]
- cmp r5, r1
- bne _08040192
-_080401A0:
- cmp r2, 0x3
- bgt _080401AA
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080401AA:
- adds r4, r3, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804015A
-_080401B4:
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8040130
-
- thumb_func_start sub_80401D0
-sub_80401D0: @ 80401D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, =gBankAttacker
- mov r2, r9
- strb r2, [r1]
- ldr r0, =gNoOfAllBanks
- ldrb r4, [r0]
- adds r6, r1, 0
- mov r10, r0
- ldr r7, =gBankTarget
- ldr r3, =gBattleStruct
- mov r12, r3
- cmp r9, r4
- bcs _08040224
- ldr r2, =gAbsentBankFlags
- ldrb r1, [r2]
- ldr r5, =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08040224
- adds r3, r6, 0
-_08040206:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08040224
- ldrb r0, [r2]
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08040206
-_08040224:
- movs r0, 0
- strb r0, [r7]
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- beq _0804025E
- ldr r2, =gAbsentBankFlags
- ldrb r1, [r2]
- ldr r5, =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _0804025E
- adds r3, r7, 0
-_08040240:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _0804025E
- ldrb r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08040240
-_0804025E:
- mov r1, r12
- ldr r0, [r1]
- ldrb r0, [r0, 0x3]
- cmp r0, 0xA
- bls _0804026A
- b _080408F6
-_0804026A:
- lsls r0, 2
- ldr r1, =_08040290
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08040290:
- .4byte _080402BC
- .4byte _08040342
- .4byte _08040408
- .4byte _080404D4
- .4byte _080405B0
- .4byte _08040668
- .4byte _0804071C
- .4byte _080407A0
- .4byte _08040810
- .4byte _08040868
- .4byte _080408EC
-_080402BC:
- movs r5, 0
- ldr r1, =gNoOfAllBanks
- mov r10, r1
- ldrb r2, [r1]
- cmp r5, r2
- bge _080402D6
- ldr r2, =gTurnOrder
-_080402CA:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r3, [r1]
- cmp r5, r3
- blt _080402CA
-_080402D6:
- movs r5, 0
- b _08040324
- .pool
-_080402E4:
- adds r4, r5, 0x1
- adds r6, r4, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08040322
- ldr r7, =gTurnOrder
- ldr r0, =gNoOfAllBanks
- mov r10, r0
- lsls r1, r5, 24
- mov r8, r1
-_080402F8:
- adds r0, r5, r7
- ldrb r0, [r0]
- adds r1, r4, r7
- ldrb r1, [r1]
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _08040318
- lsls r1, r4, 24
- lsrs r1, 24
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_803CEDC
-_08040318:
- adds r4, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _080402F8
-_08040322:
- adds r5, r6, 0
-_08040324:
- mov r1, r10
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080402E4
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- ldr r0, [r2]
- adds r0, 0xDB
- movs r1, 0
- strb r1, [r0]
- mov r12, r2
-_08040342:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08040350
- b _0804062C
-_08040350:
- ldr r3, =gActiveBank
- mov r8, r3
- movs r7, 0
- ldr r6, =gBankAttacker
- ldr r5, =gBattleTextBuff1
-_0804035A:
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r4, [r0]
- ldr r2, =gSideTimers
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- strb r0, [r6]
- mov r3, r8
- strb r0, [r3]
- ldr r0, =gSideAffecting
- adds r3, r1, r0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080403BC
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- movs r4, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _080403BC
- ldrh r0, [r3]
- ldr r2, =0x0000fffe
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, =gUnknown_082DACFA
- bl b_call_bc_move_exec
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x73
- strb r0, [r5, 0x2]
- strb r7, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r4
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080403BC:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xDB
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- mov r3, r9
- cmp r3, 0
- beq _080403D2
- b _080408FE
-_080403D2:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0804035A
- b _0804062C
- .pool
-_08040408:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08040416
- b _08040570
-_08040416:
- movs r0, 0x2
- mov r10, r0
- movs r2, 0
- mov r8, r2
- ldr r7, =gBankAttacker
- ldr r5, =gBattleTextBuff1
-_08040422:
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r4, [r0]
- ldr r2, =gSideTimers
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x3]
- strb r0, [r7]
- ldr r3, =gActiveBank
- strb r0, [r3]
- ldr r0, =gSideAffecting
- adds r3, r1, r0
- ldrh r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804048A
- ldrb r0, [r2, 0x2]
- subs r0, 0x1
- strb r0, [r2, 0x2]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _0804048A
- ldrh r0, [r3]
- ldr r2, =0x0000fffd
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, =gUnknown_082DACFA
- bl b_call_bc_move_exec
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- mov r3, r10
- strb r3, [r5, 0x1]
- movs r0, 0x71
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0804048A:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xDB
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- mov r1, r9
- cmp r1, 0
- beq _080404A0
- b _080408FE
-_080404A0:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08040422
- b _08040570
- .pool
-_080404D4:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08040570
- ldr r0, =gActiveBank
- mov r10, r0
- movs r2, 0
- mov r8, r2
- ldr r7, =gBankAttacker
- ldr r5, =gBattleTextBuff1
-_080404EC:
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r4, [r0]
- ldr r1, =gSideTimers
- lsls r3, r4, 1
- adds r0, r3, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x5]
- strb r0, [r7]
- mov r2, r10
- strb r0, [r2]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0804054E
- subs r0, 0x1
- strb r0, [r1, 0x4]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _0804054E
- ldr r2, =gSideAffecting
- adds r2, r3, r2
- ldrh r0, [r2]
- ldr r3, =0x0000feff
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldr r0, =gUnknown_082DACFA
- bl b_call_bc_move_exec
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x36
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0804054E:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xDB
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- mov r1, r9
- cmp r1, 0
- beq _08040564
- b _080408FE
-_08040564:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080404EC
-_08040570:
- mov r2, r9
- cmp r2, 0
- beq _08040578
- b _080408FE
-_08040578:
- mov r3, r12
- ldr r0, [r3]
- ldrb r1, [r0, 0x3]
- adds r1, 0x1
- strb r1, [r0, 0x3]
- ldr r0, [r3]
- adds r0, 0xDB
- strb r2, [r0]
- b _080408F6
- .pool
-_080405B0:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0804062C
- ldr r6, =gActiveBank
- ldr r5, =gBankAttacker
-_080405C0:
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r4, [r0]
- ldr r2, =gSideTimers
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x7]
- strb r0, [r5]
- strb r0, [r6]
- ldr r0, =gSideAffecting
- adds r3, r1, r0
- ldrh r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804060A
- ldrb r0, [r2, 0x6]
- subs r0, 0x1
- strb r0, [r2, 0x6]
- lsls r0, 24
- cmp r0, 0
- bne _0804060A
- ldrh r0, [r3]
- ldr r2, =0x0000ffdf
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, =gUnknown_082DAD0B
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0804060A:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xDB
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- mov r3, r9
- cmp r3, 0
- beq _08040620
- b _080408FE
-_08040620:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDB
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080405C0
-_0804062C:
- mov r0, r9
- cmp r0, 0
- beq _08040634
- b _080408FE
-_08040634:
- mov r1, r12
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- adds r1, 0x1
- strb r1, [r0, 0x3]
- mov r2, r12
- ldr r0, [r2]
- adds r0, 0xDB
- mov r3, r9
- strb r3, [r0]
- b _080408F6
- .pool
-_08040668:
- mov r2, r12
- ldr r0, [r2]
- adds r0, 0xDB
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080406E8
- ldr r4, =gActiveBank
- ldr r5, =gTurnOrder
-_0804067C:
- ldr r0, [r2]
- adds r0, 0xDB
- ldrb r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, =gUnknown_020243D0
- adds r0, 0x20
- ldrb r2, [r4]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _080406C4
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080406C4
- ldr r1, =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080406C4
- ldr r0, =gBankTarget
- strb r2, [r0]
- ldr r0, =gUnknown_082DB0B7
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080406C4:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xDB
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- mov r3, r9
- cmp r3, 0
- beq _080406DA
- b _080408FE
-_080406DA:
- ldr r0, [r2]
- adds r0, 0xDB
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0804067C
-_080406E8:
- mov r0, r9
- cmp r0, 0
- beq _080406F0
- b _080408FE
-_080406F0:
- mov r2, r12
- ldr r1, [r2]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- b _080408F6
- .pool
-_0804071C:
- ldr r3, =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0804072A
- b _080408C8
-_0804072A:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- bne _08040776
- ldr r1, =gUnknown_020243D0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08040768
- ldr r0, =0x0000fffe
- ands r0, r2
- ldr r1, =0x0000fffd
- ands r0, r1
- strh r0, [r3]
- ldr r1, =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08040794
- .pool
-_08040768:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _08040782
- b _08040790
-_08040776:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08040790
-_08040782:
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08040794
- .pool
-_08040790:
- ldr r0, =gBattleCommunication
- strb r1, [r0, 0x5]
-_08040794:
- ldr r0, =gUnknown_082DAC2C
- b _080408BA
- .pool
-_080407A0:
- ldr r3, =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _080407AE
- b _080408C8
-_080407AE:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _080407E8
- ldr r1, =gUnknown_020243D0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080407E8
- ldr r0, =0x0000fff7
- ands r0, r2
- strh r0, [r3]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DACC9
- b _080407EC
- .pool
-_080407E8:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAC47
-_080407EC:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, =gBattleScripting
- movs r2, 0
- movs r0, 0xC
- strb r0, [r1, 0x10]
- ldr r0, =gBattleCommunication
- strb r2, [r0, 0x5]
- b _080408B8
- .pool
-_08040810:
- ldr r3, =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- beq _080408C8
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08040854
- ldr r1, =gUnknown_020243D0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08040854
- ldr r0, =0x0000ffdf
- ands r0, r2
- strh r0, [r3]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DACE0
- b _08040858
- .pool
-_08040854:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DACD2
-_08040858:
- str r0, [r1]
- adds r3, r1, 0
- b _080408B8
- .pool
-_08040868:
- ldr r3, =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080408C8
- ldr r1, =gUnknown_020243D0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080408A4
- ldr r0, =0x0000ff7f
- ands r0, r2
- strh r0, [r3]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DACC9
- b _080408A8
- .pool
-_080408A4:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAC47
-_080408A8:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, =gBattleScripting
- movs r0, 0xD
- strb r0, [r1, 0x10]
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080408B8:
- ldr r0, [r3]
-_080408BA:
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080408C8:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- mov r12, r2
- b _080408F6
- .pool
-_080408EC:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080408F6:
- mov r3, r9
- cmp r3, 0
- bne _080408FE
- b _0804025E
-_080408FE:
- ldr r0, =gBattleMainFunc
- ldr r1, [r0]
- ldr r0, =sub_803B9BC
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80401D0
-
- thumb_func_start sub_8040924
-sub_8040924: @ 8040924
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r2, =gHitMarker
- ldr r0, [r2]
- ldr r1, =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r5, =gBattleStruct
- ldr r2, [r5]
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r2, 0x1]
- adds r7, r5, 0
- mov r8, r0
- ldrb r3, [r0]
- cmp r1, r3
- bcc _08040954
- bl _08041338
-_08040954:
- bl _0804132E
- .pool
-_08040968:
- ldr r3, =gActiveBank
- ldr r4, =gBankAttacker
- ldr r1, =gTurnOrder
- ldr r5, [r5]
- ldrb r0, [r5, 0x1]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- strb r0, [r3]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- adds r6, r3, 0
- cmp r1, 0
- beq _080409B0
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- bl _0804131C
- .pool
-_080409B0:
- ldrb r0, [r5]
- cmp r0, 0x13
- bls _080409BA
- bl _08041312
-_080409BA:
- lsls r0, 2
- ldr r1, =_080409C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080409C8:
- .4byte _08040A18
- .4byte _08040A78
- .4byte _08040A96
- .4byte _08040AC6
- .4byte _08040B44
- .4byte _08040B8C
- .4byte _08040C0C
- .4byte _08040C54
- .4byte _08040CB8
- .4byte _08040D00
- .4byte _08040E60
- .4byte _08040F7C
- .4byte _08041024
- .4byte _080410E8
- .4byte _0804119C
- .4byte _080411BC
- .4byte _08041208
- .4byte _08041238
- .4byte _08040AAE
- .4byte _08041304
-_08040A18:
- ldr r1, =gStatuses3
- ldrb r3, [r6]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _08040A30
- bl _080412DE
-_08040A30:
- ldr r0, =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r0, r1, r0
- ldrh r2, [r0, 0x28]
- ldrh r5, [r0, 0x2C]
- cmp r2, r5
- bne _08040A44
- bl _080412DE
-_08040A44:
- cmp r2, 0
- bne _08040A4C
- bl _080412DE
-_08040A4C:
- ldr r1, =gBattleMoveDamage
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08040A5C
- movs r0, 0x1
- str r0, [r1]
-_08040A5C:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r0, =gUnknown_082DB0EE
- bl _080412D0
- .pool
-_08040A78:
- ldrb r1, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08040A92
- bl _080412DE
-_08040A92:
- bl _080412D4
-_08040A96:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0
- bl berry_effects_maybe
- lsls r0, 24
- cmp r0, 0
- bne _08040AAA
- bl _080412DE
-_08040AAA:
- bl _080412D4
-_08040AAE:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0x1
- bl berry_effects_maybe
- lsls r0, 24
- cmp r0, 0
- bne _08040AC2
- bl _080412DE
-_08040AC2:
- bl _080412D4
-_08040AC6:
- ldr r0, =gStatuses3
- ldrb r2, [r6]
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08040ADC
- bl _080412DE
-_08040ADC:
- ldr r3, =gBattleMons
- movs r5, 0x3
- ands r5, r1
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08040AF4
- bl _080412DE
-_08040AF4:
- adds r0, r2, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08040B04
- bl _080412DE
-_08040B04:
- ldr r0, =gBankTarget
- strb r5, [r0]
- ldr r2, =gBattleMoveDamage
- ldrb r0, [r6]
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _08040B1E
- movs r0, 0x1
- str r0, [r2]
-_08040B1E:
- ldr r1, =gBattleScripting
- strb r5, [r1, 0x10]
- ldrb r0, [r4]
- strb r0, [r1, 0x11]
- ldr r0, =gUnknown_082DAD15
- b _080412D0
- .pool
-_08040B44:
- ldr r2, =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040B60
- b _080412DE
-_08040B60:
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08040B6A
- b _080412DE
-_08040B6A:
- ldr r2, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _08040B7A
- movs r0, 0x1
- str r0, [r2]
-_08040B7A:
- ldr r0, =gUnknown_082DB23D
- b _080412D0
- .pool
-_08040B8C:
- ldr r4, =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- mov r8, r7
- mov r2, r8
- muls r2, r0
- adds r3, r4, 0
- adds r3, 0x4C
- adds r0, r2, r3
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08040BAA
- b _080412DE
-_08040BAA:
- adds r1, r2, r4
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08040BB4
- b _080412DE
-_08040BB4:
- ldr r5, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r5]
- cmp r0, 0
- bne _08040BC4
- movs r0, 0x1
- str r0, [r5]
-_08040BC4:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r2, r0, r3
- ldr r1, [r2]
- movs r4, 0xF0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, r4
- beq _08040BE4
- movs r7, 0x80
- lsls r7, 1
- adds r0, r1, r7
- str r0, [r2]
-_08040BE4:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r3
- ldr r0, [r0]
- ands r0, r4
- lsrs r0, 8
- ldr r1, [r5]
- muls r0, r1
- str r0, [r5]
- ldr r0, =gUnknown_082DB23D
- b _080412D0
- .pool
-_08040C0C:
- ldr r2, =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08040C28
- b _080412DE
-_08040C28:
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08040C32
- b _080412DE
-_08040C32:
- ldr r2, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _08040C42
- movs r0, 0x1
- str r0, [r2]
-_08040C42:
- ldr r0, =gUnknown_082DB25F
- b _080412D0
- .pool
-_08040C54:
- ldr r4, =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r1, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r5, r1, r0
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 20
- ands r0, r2
- cmp r0, 0
- bne _08040C70
- b _080412DE
-_08040C70:
- adds r3, r1, r4
- ldrh r0, [r3, 0x28]
- cmp r0, 0
- bne _08040C7A
- b _080412DE
-_08040C7A:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08040CAC
- ldr r1, =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _08040C9A
- movs r0, 0x1
- str r0, [r1]
-_08040C9A:
- ldr r0, =gUnknown_082DB33F
- b _080412D0
- .pool
-_08040CAC:
- ldr r0, =0xf7ffffff
- ands r2, r0
- str r2, [r5]
- b _080412DE
- .pool
-_08040CB8:
- ldr r2, =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 21
- ands r0, r1
- cmp r0, 0
- bne _08040CD6
- b _080412DE
-_08040CD6:
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08040CE0
- b _080412DE
-_08040CE0:
- ldr r2, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08040CF0
- movs r0, 0x1
- str r0, [r2]
-_08040CF0:
- ldr r0, =gUnknown_082DB350
- b _080412D0
- .pool
-_08040D00:
- ldr r3, =gBattleMons
- mov r8, r3
- ldrb r0, [r6]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- movs r5, 0x50
- add r5, r8
- mov r10, r5
- adds r4, r1, r5
- ldr r2, [r4]
- movs r5, 0xE0
- lsls r5, 8
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08040D24
- b _080412DE
-_08040D24:
- mov r7, r8
- adds r0, r1, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08040D30
- b _080412DE
-_08040D30:
- ldr r1, =0xffffe000
- adds r0, r2, r1
- str r0, [r4]
- ldrb r4, [r6]
- adds r0, r4, 0
- muls r0, r3
- add r0, r10
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _08040DC0
- ldr r1, =gBattleScripting
- ldr r0, =gBattleStruct
- ldr r2, [r0]
- lsls r0, r4, 1
- adds r0, r2
- ldrb r0, [r0, 0x4]
- strb r0, [r1, 0x10]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x11]
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0, 0x4]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB30E
- str r0, [r1]
- ldr r2, =gBattleMoveDamage
- ldrb r0, [r6]
- muls r0, r3
- add r0, r8
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r2]
- cmp r0, 0
- bne _08040DEC
- movs r0, 0x1
- str r0, [r2]
- b _08040DEC
- .pool
-_08040DC0:
- ldr r2, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldrb r1, [r6]
- ldr r0, =gBattleStruct
- ldr r3, [r0]
- lsls r1, 1
- adds r1, r3
- ldrb r0, [r1, 0x4]
- strb r0, [r2, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- ldrb r0, [r0, 0x5]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB320
- str r0, [r1]
-_08040DEC:
- ldr r0, [r1]
- b _080412D0
- .pool
-_08040E00:
- movs r0, 0x8
- negs r0, r0
- ands r3, r0
- str r3, [r2]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- mov r0, r10
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, =gUnknown_082DB234
- bl b_call_bc_move_exec
- ldr r4, =gActiveBank
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- add r0, r9
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08040EC8
- .pool
-_08040E60:
- ldr r2, =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x70
- ands r1, r0
- adds r7, r2, 0
- cmp r1, 0
- beq _08040F6A
- movs r0, 0
- strb r0, [r4]
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0
- beq _08040EC8
- mov r10, r7
- adds r6, r4, 0
- movs r1, 0x58
- mov r8, r1
- movs r3, 0x4C
- adds r3, r7
- mov r9, r3
- str r0, [sp, 0x4]
- movs r5, 0x7
- mov r12, r5
-_08040E9A:
- ldrb r4, [r6]
- mov r1, r8
- muls r1, r4
- mov r0, r9
- adds r2, r1, r0
- ldr r3, [r2]
- adds r0, r3, 0
- mov r5, r12
- ands r0, r5
- cmp r0, 0
- beq _08040EBA
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08040E00
-_08040EBA:
- adds r0, r4, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bcc _08040E9A
-_08040EC8:
- ldr r2, =gBankAttacker
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08040EE8
- movs r3, 0x2
- mov r9, r3
- b _08041318
- .pool
-_08040EE8:
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r2, =gBattleMons
- ldrb r0, [r5]
- movs r7, 0x58
- adds r1, r0, 0
- muls r1, r7
- adds r6, r2, 0
- adds r6, 0x50
- adds r1, r6
- ldr r0, [r1]
- subs r0, 0x10
- str r0, [r1]
- ldrb r0, [r5]
- bl sub_803F90C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08040F2C
- ldrb r0, [r5]
- bl CancelMultiTurnMoves
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08040F60
- .pool
-_08040F2C:
- ldrb r3, [r5]
- adds r0, r3, 0
- muls r0, r7
- adds r2, r0, r6
- ldr r0, [r2]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08040F54
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- b _08040F60
- .pool
-_08040F54:
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r3, 0
- bl CancelMultiTurnMoves
-_08040F60:
- ldr r0, =gUnknown_082DB2A6
- bl b_call_bc_move_exec
- movs r5, 0x1
- mov r9, r5
-_08040F6A:
- mov r7, r9
- cmp r7, 0x2
- bne _08040F72
- b _08041312
-_08040F72:
- b _080412DE
- .pool
-_08040F7C:
- ldr r1, =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- muls r0, r7
- adds r5, r1, 0
- adds r5, 0x50
- adds r2, r0, r5
- ldr r1, [r2]
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08040F9A
- b _080412DE
-_08040F9A:
- ldr r3, =0xfffffc00
- adds r0, r1, r3
- str r0, [r2]
- ldrb r0, [r6]
- bl sub_803F90C
- lsls r0, 24
- cmp r0, 0
- beq _08040FBC
- ldrb r0, [r6]
- bl CancelMultiTurnMoves
- b _080412DE
- .pool
-_08040FBC:
- ldrb r0, [r6]
- muls r0, r7
- adds r2, r0, r5
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _08040FCE
- b _080412DE
-_08040FCE:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08040FDA
- b _080412DE
-_08040FDA:
- ldr r0, =0xffffefff
- ands r1, r0
- str r1, [r2]
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x7
- ands r0, r4
- cmp r0, 0
- beq _08040FF2
- b _080412DE
-_08040FF2:
- ldr r1, =gBattleCommunication
- movs r0, 0x47
- strb r0, [r1, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl sub_8048760
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- bne _08041010
- b _080412D4
-_08041010:
- ldr r0, =gUnknown_082DB2AF
- bl b_call_bc_move_exec
- b _080412D4
- .pool
-_08041024:
- ldr r0, =gDisableStructs
- ldrb r3, [r6]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r5, r1, r0
- ldrb r1, [r5, 0xB]
- lsls r1, 28
- adds r7, r0, 0
- cmp r1, 0
- bne _0804103C
- b _080412DE
-_0804103C:
- movs r4, 0
- ldr r2, =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r5, 0x4]
- ldrh r1, [r1]
- cmp r0, r1
- beq _0804107A
- mov r12, r7
- mov r8, r2
- adds r5, r6, 0
- movs r3, 0x58
-_0804105A:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804107A
- ldrb r2, [r5]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r12
- lsls r0, r4, 1
- muls r2, r3
- adds r0, r2
- add r0, r8
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0804105A
-_0804107A:
- cmp r4, 0x4
- bne _080410AC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x4]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- b _080412DE
- .pool
-_080410AC:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r3, [r2, 0xB]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- adds r2, r1, 0
- cmp r2, 0
- beq _080410D4
- b _080412DE
-_080410D4:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x4]
- ldr r0, =gUnknown_082DAE23
- b _080412D0
- .pool
-_080410E8:
- ldr r3, =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldrb r5, [r2, 0xE]
- lsls r4, r5, 28
- cmp r4, 0
- bne _080410FE
- b _080412DE
-_080410FE:
- ldr r7, =gBattleMons
- mov r8, r7
- ldrb r0, [r2, 0xC]
- lsls r0, 1
- movs r7, 0x58
- muls r1, r7
- adds r0, r1
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- beq _0804113C
- movs r0, 0
- strh r0, [r2, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- b _080412DE
- .pool
-_0804113C:
- lsrs r1, r4, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r1
- strb r0, [r2, 0xE]
- cmp r1, 0
- beq _08041172
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- muls r1, r7
- ldrb r0, [r0, 0xC]
- adds r1, r0
- mov r0, r8
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _08041172
- b _080412DE
-_08041172:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldr r0, =gUnknown_082DAE37
- b _080412D0
- .pool
-_0804119C:
- ldr r0, =gStatuses3
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- beq _080411B4
- adds r0, r2, 0
- subs r0, 0x8
- str r0, [r1]
-_080411B4:
- ldr r1, [r7]
- b _080412E2
- .pool
-_080411BC:
- ldr r2, =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x12]
- lsls r1, r2, 28
- cmp r1, 0
- beq _080411F6
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x12]
- cmp r1, 0
- bne _080411F6
- ldr r0, =gStatuses3
- ldrb r2, [r6]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, =0xfffffdff
- ands r0, r1
- str r0, [r2]
-_080411F6:
- ldr r1, [r7]
- b _080412E2
- .pool
-_08041208:
- ldr r2, =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x13]
- lsls r1, r2, 28
- cmp r1, 0
- beq _0804122E
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x13]
-_0804122E:
- ldr r1, [r7]
- b _080412E2
- .pool
-_08041238:
- ldr r4, =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _080412DE
- ldr r5, =0xfffff800
- adds r0, r1, r5
- str r0, [r2]
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _080412DE
- ldr r3, =gBattleMons
- movs r5, 0x58
- adds r1, r2, 0
- muls r1, r5
- adds r4, r3, 0
- adds r4, 0x4C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080412DE
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _080412DE
- cmp r0, 0xF
- beq _080412DE
- adds r0, r2, 0
- bl sub_8050650
- lsls r0, 24
- cmp r0, 0
- bne _080412DE
- ldrb r0, [r6]
- bl CancelMultiTurnMoves
- bl Random
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, =gUnknown_0202420E
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r0, =gUnknown_082DB378
-_080412D0:
- bl b_call_bc_move_exec
-_080412D4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080412DE:
- ldr r0, =gBattleStruct
- ldr r1, [r0]
-_080412E2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08041312
- .pool
-_08041304:
- ldr r1, [r7]
- movs r0, 0
- strb r0, [r1]
- ldr r1, [r7]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_08041312:
- mov r7, r9
- cmp r7, 0
- beq _0804131C
-_08041318:
- mov r0, r9
- b _08041344
-_0804131C:
- ldr r5, =gBattleStruct
- ldr r2, [r5]
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r2, 0x1]
- adds r7, r5, 0
- mov r8, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08041338
-_0804132E:
- ldrb r0, [r2]
- cmp r0, 0x13
- bhi _08041338
- bl _08040968
-_08041338:
- ldr r0, =gHitMarker
- ldr r1, [r0]
- ldr r2, =0xfeffffdf
- ands r1, r2
- str r1, [r0]
- movs r0, 0
-_08041344:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8040924
-
- thumb_func_start sub_8041364
-sub_8041364: @ 8041364
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, =gHitMarker
- ldr r0, [r2]
- ldr r1, =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r1, =gBattleStruct
- ldr r3, [r1]
- movs r4, 0xD0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r2
- adds r6, r1, 0
- cmp r0, 0x1
- bne _0804138E
- b _08041548
-_0804138E:
- cmp r0, 0x1
- bgt _080413A4
- cmp r0, 0
- beq _080413AC
- b _08041708
- .pool
-_080413A4:
- cmp r0, 0x2
- bne _080413AA
- b _0804169A
-_080413AA:
- b _08041708
-_080413AC:
- ldr r2, =0x000001a1
- adds r0, r3, r2
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r0]
- mov r8, r1
- ldrb r7, [r1]
- cmp r0, r7
- bcc _080413BE
- b _08041532
-_080413BE:
- ldr r4, =gActiveBank
- ldr r5, =gBattleTextBuff1
- ldr r7, =gUnknown_020243D0
- movs r0, 0x18
- adds r0, r7
- mov r12, r0
-_080413CA:
- ldr r0, [r6]
- adds r3, r0, r2
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0804140C
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08041520
- .pool
-_0804140C:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r1, =gUnknown_020243D0
- ldrb r0, [r4]
- adds r2, r0, r1
- ldrb r0, [r2]
- mov r9, r1
- cmp r0, 0
- bne _08041422
- b _08041520
-_08041422:
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08041520
- ldr r1, =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08041520
- lsls r0, r2, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r0, 0xF8
- bne _0804145C
- ldr r0, =gBattleCommunication
- strb r3, [r0, 0x5]
- b _08041462
- .pool
-_0804145C:
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08041462:
- movs r0, 0xFD
- strb r0, [r5]
- movs r6, 0x2
- movs r0, 0x2
- strb r0, [r5, 0x1]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- strb r0, [r5, 0x2]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r5, 0x3]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldr r5, =gBankTarget
- ldrb r0, [r4]
- strb r0, [r5]
- ldr r1, =gBankAttacker
- adds r0, r7, 0x4
- ldrb r2, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, =gBattleMoveDamage
- ldrb r0, [r4]
- lsls r0, 2
- adds r1, r7, 0
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r2, =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, =0x0000ffff
- str r1, [r0]
- ldr r0, =gUnknown_082DAFE4
- bl b_call_bc_move_exec
- ldrb r1, [r4]
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0
- beq _080414CC
- b _08041664
-_080414CC:
- eors r1, r6
- mov r3, r9
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080414DA
- b _08041664
-_080414DA:
- ldrb r0, [r5]
- bl GetBankIdentity
- ldr r2, =gSideAffecting
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- ldr r4, =0x0000ffbf
- adds r2, r4, 0
- ands r1, r2
- strh r1, [r0]
- b _08041664
- .pool
-_08041520:
- ldr r0, [r6]
- ldr r2, =0x000001a1
- adds r0, r2
- ldrb r0, [r0]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08041532
- b _080413CA
-_08041532:
- ldr r0, [r6]
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- ldr r3, =0x000001a1
- adds r1, r0, r3
- movs r0, 0
- strb r0, [r1]
-_08041548:
- adds r3, r6, 0
- ldr r0, [r6]
- ldr r2, =0x000001a1
- adds r0, r2
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r0]
- mov r8, r1
- ldrb r4, [r1]
- cmp r0, r4
- bcc _0804155E
- b _08041684
-_0804155E:
- ldr r5, =gActiveBank
- ldr r4, =gBattleTextBuff1
- ldr r7, =gDisableStructs
- mov r12, r7
- ldr r0, =gBankAttacker
- mov r9, r0
-_0804156A:
- ldr r1, =gTurnOrder
- ldr r0, [r3]
- adds r3, r0, r2
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- mov r1, r9
- strb r0, [r1]
- strb r0, [r5]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080415BC
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08041670
- .pool
-_080415BC:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r7, =gStatuses3
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08041670
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xF]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r4, 0x4]
- movs r0, 0xFF
- strb r0, [r4, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r3, r12
- adds r4, r0, r3
- ldrb r3, [r4, 0xF]
- lsls r1, r3, 28
- cmp r1, 0
- bne _08041644
- lsls r2, 2
- adds r2, r7
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r3, =gBattleMoveDamage
- ldr r2, =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- str r0, [r3]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAF05
- b _0804165C
- .pool
-_08041644:
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r7, 0x10
- negs r7, r7
- adds r0, r7, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0xF]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAF20
-_0804165C:
- str r0, [r1]
- ldr r0, [r1]
- bl b_call_bc_move_exec
-_08041664:
- movs r0, 0x1
- b _08041714
- .pool
-_08041670:
- adds r3, r6, 0
- ldr r0, [r6]
- ldr r2, =0x000001a1
- adds r0, r2
- ldrb r0, [r0]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08041684
- b _0804156A
-_08041684:
- ldr r0, [r6]
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r6]
- ldr r3, =0x000001a1
- adds r1, r0, r3
- movs r0, 0
- strb r0, [r1]
-_0804169A:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- beq _08041708
- ldr r0, [r6]
- adds r0, 0xDA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08041708
- ldr r1, =gBattleMons
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08041708
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- beq _08041708
- movs r4, 0
-_080416C6:
- lsls r0, r4, 24
- lsrs r0, 24
- bl CancelMultiTurnMoves
- adds r4, 0x1
- cmp r4, 0x1
- ble _080416C6
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB8F3
- str r0, [r1]
- bl b_call_bc_move_exec
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- movs r4, 0xD0
- lsls r4, 1
- adds r1, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08041664
- .pool
-_08041708:
- mov r7, r10
- ldr r0, [r7]
- ldr r1, =0xfeffffdf
- ands r0, r1
- str r0, [r7]
- movs r0, 0
-_08041714:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8041364
-
- thumb_func_start sub_8041728
-sub_8041728: @ 8041728
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08041770
- b _08041A0A
- .pool
-_08041744:
- ldr r0, =gUnknown_082DA7C4
- bl b_call_bc_move_exec
- ldr r0, [r5]
- adds r0, 0x4D
- movs r1, 0x2
- b _08041764
- .pool
-_08041758:
- ldr r0, =gUnknown_082DA7CD
- bl b_call_bc_move_exec
- ldr r0, [r5]
- adds r0, 0x4D
- movs r1, 0x5
-_08041764:
- strb r1, [r0]
-_08041766:
- movs r0, 0x1
- b _08041A0C
- .pool
-_08041770:
- ldr r0, =gBattleStruct
- mov r8, r0
-_08041774:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08041782
- b _080419FC
-_08041782:
- lsls r0, 2
- ldr r1, =_08041794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08041794:
- .4byte _080417B4
- .4byte _08041806
- .4byte _080418A0
- .4byte _080418E2
- .4byte _080418F6
- .4byte _08041960
- .4byte _08041994
- .4byte _080419FC
-_080417B4:
- mov r4, r8
- ldr r0, [r4]
- adds r0, 0x4E
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0x4D
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r5, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- bge _08041806
- ldr r6, =gAbsentBankFlags
-_080417D4:
- ldrb r0, [r6]
- ldr r2, =gBitTable
- lsls r1, r5, 2
- adds r1, r2
- ldr r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _080417FC
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x6
- movs r2, 0x6
- bl sub_80423F4
- lsls r0, 24
- cmp r0, 0
- bne _080417FC
- ldrb r0, [r6]
- bics r0, r4
- strb r0, [r6]
-_080417FC:
- adds r5, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- blt _080417D4
-_08041806:
- ldr r0, =gBattleStruct
- mov r8, r0
- ldr r1, =gUnknown_0202420D
- mov r12, r1
- ldr r2, =gBankTarget
- mov r5, r8
- ldr r7, =gBattleMons
- ldr r6, =gBattlePartyID
-_08041816:
- ldr r3, [r5]
- adds r1, r3, 0
- adds r1, 0x4E
- ldrb r0, [r1]
- strb r0, [r2]
- mov r4, r12
- strb r0, [r4]
- ldrb r4, [r1]
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0804185E
- adds r0, r3, 0
- adds r0, 0xDF
- ldrb r1, [r0]
- ldr r3, =gBitTable
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0804185E
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- lsls r0, r4, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0804185E
- b _08041744
-_0804185E:
- ldr r0, [r5]
- adds r0, 0x4E
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, =gNoOfAllBanks
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08041816
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x4D
- movs r1, 0x3
- strb r1, [r0]
- b _080419FC
- .pool
-_080418A0:
- ldr r0, =gUnknown_0202420D
- ldrb r0, [r0]
- bl sub_803F9EC
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0x4E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080418D8
- ldr r0, [r2]
- adds r0, 0x4D
- movs r1, 0x3
- strb r1, [r0]
- b _080419FA
- .pool
-_080418D8:
- ldr r0, [r2]
- adds r0, 0x4D
- movs r1, 0x1
- strb r1, [r0]
- b _080419FA
-_080418E2:
- mov r4, r8
- ldr r0, [r4]
- adds r0, 0x4E
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0x4D
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080418F6:
- ldr r0, =gUnknown_0202420D
- mov r12, r0
- ldr r7, =gBankTarget
- ldr r5, =gBattleStruct
- ldr r2, =gBattleMons
- ldr r6, =gBitTable
-_08041902:
- ldr r0, [r5]
- adds r4, r0, 0
- adds r4, 0x4E
- ldrb r0, [r4]
- strb r0, [r7]
- mov r1, r12
- strb r0, [r1]
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08041930
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08041930
- b _08041758
-_08041930:
- adds r0, r3, 0x1
- strb r0, [r4]
- ldr r1, =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08041902
- b _08041978
- .pool
-_08041960:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x4E
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, =gNoOfAllBanks
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08041988
-_08041978:
- mov r4, r8
- ldr r0, [r4]
- adds r0, 0x4D
- movs r1, 0x6
- strb r1, [r0]
- b _080419FC
- .pool
-_08041988:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x4D
- movs r1, 0x4
- strb r1, [r0]
- b _080419FC
-_08041994:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080419AE
- b _08041766
-_080419AE:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080419C4
- b _08041766
-_080419C4:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl berry_effects_maybe
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080419D8
- b _08041766
-_080419D8:
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080419EE
- b _08041766
-_080419EE:
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r1, 0x4D
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080419FA:
- mov r8, r2
-_080419FC:
- mov r4, r8
- ldr r0, [r4]
- adds r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _08041A0A
- b _08041774
-_08041A0A:
- movs r0, 0
-_08041A0C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8041728
-
- thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
-b_clear_atk_up_if_hit_flag_unless_enraged: @ 8041A1C
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, =gNoOfAllBanks
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _08041A54
- ldr r4, =gUnknown_02024274
- movs r6, 0x80
- lsls r6, 16
- ldr r2, =gBattleMons + 0x50
-_08041A32:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _08041A48
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _08041A48
- ldr r0, =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_08041A48:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _08041A32
-_08041A54:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
-
- thumb_func_start sub_8041A6C
-sub_8041A6C: @ 8041A6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, =gBattleScripting + 4
- mov r10, r1
- ldr r2, =gBattleStruct
- mov r8, r2
- b _08041A9A
- .pool
-_08041A90:
- mov r3, r9
- cmp r3, 0
- beq _08041A9A
- bl _08042388
-_08041A9A:
- mov r4, r8
- ldr r0, [r4]
- ldr r7, =0x000001a3
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0xE
- bls _08041AAC
- bl _08042376
-_08041AAC:
- lsls r0, 2
- ldr r1, =_08041AC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08041AC0:
- .4byte _08041AFC
- .4byte _08041B48
- .4byte _08041C90
- .4byte _08041D50
- .4byte _08041DC4
- .4byte _08041E40
- .4byte _08041EB8
- .4byte _08041F38
- .4byte _08041FC0
- .4byte _08042028
- .4byte _08042114
- .4byte _08042194
- .4byte _08042234
- .4byte _0804231C
- .4byte _08042376
-_08041AFC:
- ldr r1, =gBattleMons
- ldr r3, =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, =gStatuses3
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, =0xffffbfff
- ands r0, r1
- str r0, [r2]
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x000001a3
- adds r1, r0, r2
- bl _08042370
- .pool
-_08041B48:
- ldr r7, =gBattleMons
- ldr r4, =gBankAttacker
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r3, 0x7
- mov r8, r3
- ands r0, r3
- cmp r0, 0
- bne _08041B68
- b _08041C6E
-_08041B68:
- adds r0, r1, 0
- bl sub_8050650
- lsls r0, 24
- cmp r0, 0
- beq _08041BC8
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08041C6E
- .pool
-_08041BC8:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08041BDC
- movs r3, 0x2
-_08041BDC:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08041BF4
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08041BF8
-_08041BF4:
- subs r0, r1, r3
- str r0, [r2]
-_08041BF8:
- ldr r2, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _08041C50
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAD
- beq _08041C6E
- cmp r0, 0xD6
- beq _08041C6E
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB213
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08041C6E
- .pool
-_08041C50:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
- str r0, [r1]
- movs r1, 0x2
- mov r9, r1
-_08041C6E:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r3, =0x000001a3
- adds r2, r0, r3
- b _0804216A
- .pool
-_08041C90:
- ldr r1, =gBattleMons
- ldr r7, =gBankAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08041D30
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08041D08
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08041CD6
- b _08042162
-_08041CD6:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB26A
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _08041D28
- .pool
-_08041D08:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB277
- str r0, [r1]
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
-_08041D28:
- movs r7, 0x2
- mov r9, r7
- ldr r0, =gBattleStruct
- mov r8, r0
-_08041D30:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x000001a3
- adds r1, r0, r2
- b _08042370
- .pool
-_08041D50:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _08041D66
- b _08042162
-_08041D66:
- ldr r0, =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08041D7A
- b _08042162
-_08041D7A:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6AD
- str r0, [r1]
- ldr r2, =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0804215E
- .pool
-_08041DC4:
- ldr r1, =gBattleMons
- ldr r3, =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _08041E10
- ldr r0, =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082D9462
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08041E10:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r3, =0x000001a3
- adds r2, r0, r3
- b _0804216A
- .pool
-_08041E40:
- ldr r1, =gBattleMons
- ldr r3, =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08041E8C
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, =gProtectStructs
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB29B
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r4, 0x1
- mov r9, r4
-_08041E8C:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r7, =0x000001a3
- adds r2, r0, r7
- b _0804216A
- .pool
-_08041EB8:
- ldr r0, =gDisableStructs
- ldr r3, =gBankAttacker
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, =gCurrentMove
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08041F04
- cmp r1, 0
- beq _08041F04
- ldr r0, =gProtectStructs
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, =gBattleScripting
- ldrb r0, [r3]
- strb r0, [r1, 0x17]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAE14
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
-_08041F04:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r3, =0x000001a3
- adds r2, r0, r3
- b _0804216A
- .pool
-_08041F38:
- ldr r0, =gDisableStructs
- ldr r4, =gBankAttacker
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08041F8C
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08041F8C
- ldr r0, =gProtectStructs
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB0A4
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r4, 0x1
- mov r9, r4
-_08041F8C:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r7, =0x000001a3
- adds r2, r0, r7
- b _0804216A
- .pool
-_08041FC0:
- ldr r4, =gBankAttacker
- ldrb r0, [r4]
- ldr r1, =gCurrentMove
- ldrh r1, [r1]
- bl sub_8040130
- lsls r0, 24
- cmp r0, 0
- beq _08041FFE
- ldr r0, =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB176
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
-_08041FFE:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r3, =0x000001a3
- adds r2, r0, r3
- b _0804216A
- .pool
-_08042028:
- ldr r7, =gBattleMons
- ldr r5, =gBankAttacker
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _080420FA
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _080420E8
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _0804207C
- ldr r1, =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- bl b_movescr_stack_push_cursor
- b _080420C6
- .pool
-_0804207C:
- ldr r0, =gBattleCommunication
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, =gBattleMoveDamage
- str r0, [r1]
- ldr r0, =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_080420C6:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB2BD
- b _080420F0
- .pool
-_080420E8:
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB300
-_080420F0:
- str r0, [r1]
- movs r4, 0x1
- mov r9, r4
- ldr r7, =gBattleStruct
- mov r8, r7
-_080420FA:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x000001a3
- adds r1, r0, r2
- b _08042370
- .pool
-_08042114:
- ldr r1, =gBattleMons
- ldr r4, =gBankAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042162
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08042162
- ldr r0, =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB28B
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_0804215E:
- movs r3, 0x1
- mov r9, r3
-_08042162:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldr r4, =0x000001a3
- adds r2, r0, r4
-_0804216A:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r8, r1
- b _08042376
- .pool
-_08042194:
- ldr r1, =gBattleMons
- ldr r4, =gBankAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- beq _0804220E
- lsrs r0, r1, 16
- bl CountTrailingZeroBits
- ldr r1, =gBattleScripting
- strb r0, [r1, 0x17]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080421D8
- bl b_movescr_stack_push_cursor
- b _08042200
- .pool
-_080421D8:
- ldr r0, =gUnknown_082DB334
- bl b_movescr_stack_push
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
-_08042200:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB327
- str r0, [r1]
- movs r7, 0x1
- mov r9, r7
- ldr r0, =gBattleStruct
- mov r8, r0
-_0804220E:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x000001a3
- adds r1, r0, r2
- b _08042370
- .pool
-_08042234:
- ldr r1, =gBattleMons
- ldr r6, =gBankAttacker
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08042306
- ldr r7, =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r2, [r6]
- adds r0, r2, 0
- muls r0, r5
- adds r0, r1
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08042280
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAD71
- b _08042300
- .pool
-_08042280:
- ldr r3, =gUnknown_020241F8
- lsls r0, r2, 2
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0
- beq _080422FC
- ldr r1, =gCurrentMove
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, =gBankTarget
- ldr r1, =gUnknown_02024288
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080422CA
- movs r0, 0x75
- movs r1, 0x1
- bl GetMoveTarget
- strb r0, [r4]
-_080422CA:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DAD7C
- str r0, [r1]
- ldr r2, =gBattleStruct
- mov r8, r2
- b _08042302
- .pool
-_080422FC:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DADC4
-_08042300:
- str r0, [r1]
-_08042302:
- movs r3, 0x1
- mov r9, r3
-_08042306:
- mov r4, r8
- ldr r0, [r4]
- ldr r7, =0x000001a3
- adds r1, r0, r7
- b _08042370
- .pool
-_0804231C:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08042368
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08042360
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB277
- str r0, [r1]
- ldr r1, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08042360:
- movs r0, 0x2
- mov r9, r0
- ldr r1, =gBattleStruct
- mov r8, r1
-_08042368:
- mov r2, r8
- ldr r0, [r2]
- ldr r3, =0x000001a3
- adds r1, r0, r3
-_08042370:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08042376:
- mov r4, r8
- ldr r0, [r4]
- ldr r7, =0x000001a3
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _08042388
- bl _08041A90
-_08042388:
- mov r0, r9
- cmp r0, 0x2
- bne _080423B4
- ldr r4, =gActiveBank
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, =gBattleMons + 0x4C
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080423B4:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8041A6C
-
- thumb_func_start sub_80423F4
-sub_80423F4: @ 80423F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08042424
- movs r0, 0
- b _080426A0
- .pool
-_08042424:
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _0804249C
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _08042442
- ldr r2, =gPlayerParty
- mov r8, r2
-_08042442:
- movs r0, 0x2
- ands r0, r4
- lsls r0, 24
- lsrs r6, r0, 25
- lsls r0, r6, 1
- adds r4, r0, r6
- adds r0, r4, 0x3
- cmp r4, r0
- bge _0804248C
- adds r7, r0, 0
-_08042456:
- movs r0, 0x64
- muls r0, r4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08042486
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08042486
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _0804248C
-_08042486:
- adds r4, 0x1
- cmp r4, r7
- blt _08042456
-_0804248C:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- b _08042556
- .pool
-_0804249C:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0804256C
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080424E4
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080424D0
- ldr r2, =gPlayerParty
- mov r8, r2
- adds r0, r4, 0
- bl sub_806D864
- lsls r0, 24
- lsrs r7, r0, 24
- b _08042502
- .pool
-_080424D0:
- ldr r0, =gEnemyParty
- mov r8, r0
- movs r1, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
- b _0804250C
- .pool
-_080424E4:
- adds r0, r4, 0
- bl sub_806D864
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _08042502
- ldr r2, =gPlayerParty
- mov r8, r2
-_08042502:
- adds r0, r7, 0
- bl sub_806D82C
- lsls r0, 24
- lsrs r6, r0, 24
-_0804250C:
- lsls r0, r6, 1
- adds r4, r0, r6
- adds r1, r4, 0x3
- mov r9, r0
- cmp r4, r1
- bge _08042550
- adds r7, r1, 0
-_0804251A:
- movs r0, 0x64
- muls r0, r4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0804254A
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0804254A
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08042550
-_0804254A:
- adds r4, 0x1
- cmp r4, r7
- blt _0804251A
-_08042550:
- movs r1, 0
- mov r2, r9
- adds r0, r2, r6
-_08042556:
- adds r0, 0x3
- cmp r4, r0
- bne _0804255E
- movs r1, 0x1
-_0804255E:
- adds r0, r1, 0
- b _080426A0
- .pool
-_0804256C:
- movs r0, 0x80
- lsls r0, 8
- ands r1, r0
- cmp r1, 0
- beq _080425DA
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080425DA
- ldr r0, =gEnemyParty
- mov r8, r0
- movs r6, 0x3
- cmp r4, 0x1
- bne _08042590
- movs r6, 0
-_08042590:
- adds r4, r6, 0
- adds r6, r4, 0x3
- b _0804259E
- .pool
-_0804259C:
- adds r4, 0x1
-_0804259E:
- cmp r4, r6
- bge _080425D2
- movs r0, 0x64
- muls r0, r4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0804259C
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0804259C
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0804259C
-_080425D2:
- movs r0, 0
- cmp r4, r6
- bne _080426A0
- b _0804269E
-_080425DA:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08042608
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, =gEnemyParty
- mov r8, r2
- b _08042620
- .pool
-_08042608:
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gPlayerParty
- mov r8, r0
-_08042620:
- mov r1, r10
- cmp r1, 0x6
- bne _08042630
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08042630:
- mov r2, r9
- cmp r2, 0x6
- bne _08042640
- ldr r1, =gBattlePartyID
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08042640:
- movs r4, 0
-_08042642:
- movs r0, 0x64
- muls r0, r4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08042692
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08042692
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08042692
- cmp r4, r10
- beq _08042692
- cmp r4, r9
- beq _08042692
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r7, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r4, r0
- beq _08042692
- adds r0, r6, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r4, r0
- bne _08042698
-_08042692:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08042642
-_08042698:
- movs r0, 0
- cmp r4, 0x6
- bne _080426A0
-_0804269E:
- movs r0, 0x1
-_080426A0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80423F4
-
- thumb_func_start castform_switch
-castform_switch: @ 80426BC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, =0x00000181
- cmp r1, r0
- bne _08042760
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _08042760
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _08042760
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0804270E
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08042734
-_0804270E:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08042734
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08042734
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08042818
- .pool
-_08042734:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08042760
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08042764
-_08042760:
- movs r0, 0
- b _08042818
-_08042764:
- ldr r1, =gBattleWeather
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _08042792
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _08042792
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08042792
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_08042792:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080427BE
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _080427BE
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _080427BE
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_080427BE:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080427EA
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _080427EA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _080427EA
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_080427EA:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08042816
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08042816
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08042816
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08042816:
- adds r0, r5, 0
-_08042818:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end castform_switch
-
- thumb_func_start AbilityBattleEffects
-AbilityBattleEffects: @ 8042828
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, =gBankAttacker
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08042864
- mov r1, r10
- strb r1, [r5]
-_08042864:
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08042894
- ldr r1, =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _080428A4
- .pool
-_08042894:
- ldr r1, =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_080428A4:
- adds r7, r1, r0
- ldr r5, =gBankTarget
- ldr r1, =gNoOfAllBanks
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080428B6
- mov r2, r10
- strb r2, [r5]
-_080428B6:
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080428E8
- ldr r1, =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _080428F8
- .pool
-_080428E8:
- ldr r1, =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_080428F8:
- adds r5, r1, r0
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804293A
- bl _0804443A
-_0804293A:
- mov r3, r8
- cmp r3, 0
- beq _08042958
- ldr r0, =gLastUsedAbility
- strb r3, [r0]
- adds r7, r0, 0
- b _0804296E
- .pool
-_08042958:
- ldr r2, =gLastUsedAbility
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- adds r7, r2, 0
-_0804296E:
- cmp r4, 0
- beq _08042980
- adds r5, r4, 0
- b _08042984
- .pool
-_08042980:
- ldr r0, =gCurrentMove
- ldrh r5, [r0]
-_08042984:
- ldr r1, =gBattleStruct
- ldr r0, [r1]
- ldrb r0, [r0, 0x13]
- mov r8, r1
- cmp r0, 0
- beq _080429A0
- movs r3, 0x3F
- ands r3, r0
- b _080429AC
- .pool
-_080429A0:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x2]
-_080429AC:
- ldr r0, [sp, 0x4]
- cmp r0, 0x13
- bls _080429B6
- bl _0804441E
-_080429B6:
- lsls r0, 2
- ldr r1, =_080429C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080429C8:
- .4byte _08042A18
- .4byte _08042CDC
- .4byte _08042EF8
- .4byte _08042F8C
- .4byte _080431AC
- .4byte _08043908
- .4byte _08043C6C
- .4byte _08043CBC
- .4byte _08043D40
- .4byte _08043DC4
- .4byte _08043FE4
- .4byte _08043E08
- .4byte _08044028
- .4byte _08044084
- .4byte _080440E0
- .4byte _080441DC
- .4byte _08044220
- .4byte _0804427C
- .4byte _080443EC
- .4byte _08044196
-_08042A18:
- ldr r2, =gBankAttacker
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r2]
- adds r5, r0, 0
- ldrb r3, [r5]
- cmp r1, r3
- bcc _08042A2A
- mov r0, r10
- strb r0, [r2]
-_08042A2A:
- ldrb r0, [r7]
- cmp r0, 0x2D
- bne _08042A32
- b _08042BA8
-_08042A32:
- cmp r0, 0x2D
- bgt _08042A64
- cmp r0, 0xD
- bne _08042A3C
- b _08042CA4
-_08042A3C:
- cmp r0, 0xD
- bgt _08042A54
- cmp r0, 0x2
- bne _08042A46
- b _08042B78
-_08042A46:
- bl _0804441E
- .pool
-_08042A54:
- cmp r0, 0x16
- bne _08042A5A
- b _08042C08
-_08042A5A:
- cmp r0, 0x24
- bne _08042A60
- b _08042C68
-_08042A60:
- bl _0804441E
-_08042A64:
- cmp r0, 0x46
- bne _08042A6A
- b _08042BD8
-_08042A6A:
- cmp r0, 0x46
- bgt _08042A78
- cmp r0, 0x3B
- bne _08042A74
- b _08042C3C
-_08042A74:
- bl _0804441E
-_08042A78:
- cmp r0, 0x4D
- bne _08042A7E
- b _08042CA4
-_08042A7E:
- cmp r0, 0xFF
- beq _08042A86
- bl _0804441E
-_08042A86:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08042B4C
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _08042B4C
- lsls r0, 2
- ldr r1, =_08042AB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08042AB4:
- .4byte _08042AE0
- .4byte _08042B4C
- .4byte _08042AE0
- .4byte _08042B4C
- .4byte _08042B4C
- .4byte _08042B04
- .4byte _08042B4C
- .4byte _08042B4C
- .4byte _08042B4C
- .4byte _08042B28
- .4byte _08042AE0
-_08042AE0:
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08042B4C
- movs r0, 0x5
- strh r0, [r2]
- ldr r1, =gBattleScripting
- movs r0, 0xA
- strb r0, [r1, 0x10]
- mov r2, r10
- strb r2, [r1, 0x17]
- b _08042B42
- .pool
-_08042B04:
- ldr r3, =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08042B4C
- strh r2, [r3]
- ldr r1, =gBattleScripting
- movs r0, 0xC
- strb r0, [r1, 0x10]
- mov r3, r10
- strb r3, [r1, 0x17]
- b _08042B42
- .pool
-_08042B28:
- ldr r3, =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08042B4C
- strh r2, [r3]
- ldr r1, =gBattleScripting
- movs r0, 0xB
- strb r0, [r1, 0x10]
- mov r5, r10
- strb r5, [r1, 0x17]
-_08042B42:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08042B4C:
- mov r0, r9
- cmp r0, 0
- bne _08042B56
- bl _0804443A
-_08042B56:
- bl weather_get_current
- ldr r1, =gBattleCommunication
- strb r0, [r1, 0x5]
- ldr r0, =gUnknown_082DACE7
- bl b_push_move_exec
- bl _0804441E
- .pool
-_08042B78:
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08042B88
- bl _0804441E
-_08042B88:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, =gUnknown_082DB430
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- bl _080443D0
- .pool
-_08042BA8:
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08042BB8
- bl _0804441E
-_08042BB8:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, =gUnknown_082DB470
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- mov r2, r10
- strb r2, [r0, 0x17]
- bl _080443D0
- .pool
-_08042BD8:
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042BE8
- bl _0804441E
-_08042BE8:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, =gUnknown_082DB52A
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- mov r3, r10
- strb r3, [r0, 0x17]
- bl _080443D0
- .pool
-_08042C08:
- ldr r0, =gSpecialStatuses
- mov r5, r10
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _08042C20
- bl _0804441E
-_08042C20:
- ldr r1, =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _08042C92
- .pool
-_08042C3C:
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _08042C50
- bl _0804443A
-_08042C50:
- ldr r0, =gUnknown_082DB4A9
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- bl _080442E2
- .pool
-_08042C68:
- ldr r0, =gSpecialStatuses
- mov r3, r10
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _08042C80
- bl _0804441E
-_08042C80:
- ldr r1, =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_08042C92:
- orrs r0, r1
- strb r0, [r3]
- bl _0804441E
- .pool
-_08042CA4:
- movs r6, 0
- ldrb r5, [r5]
- cmp r6, r5
- bcc _08042CB0
- bl _0804441E
-_08042CB0:
- adds r0, r6, 0
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _08042CC4
- bl _080442D8
-_08042CC4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08042CB0
- bl _0804441E
- .pool
-_08042CDC:
- ldr r5, =gBattleMons
- mov r8, r5
- movs r0, 0x58
- mov r6, r10
- muls r6, r0
- adds r4, r6, r5
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08042CF2
- bl _0804441E
-_08042CF2:
- ldr r0, =gBankAttacker
- mov r1, r10
- strb r1, [r0]
- ldrb r5, [r7]
- cmp r5, 0x2C
- beq _08042D22
- cmp r5, 0x2C
- bgt _08042D14
- cmp r5, 0x3
- bne _08042D08
- b _08042E84
-_08042D08:
- bl _0804441E
- .pool
-_08042D14:
- cmp r5, 0x36
- bne _08042D1A
- b _08042ED0
-_08042D1A:
- cmp r5, 0x3D
- beq _08042DA0
- bl _0804441E
-_08042D22:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08042D3E
- bl _0804441E
-_08042D3E:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08042D56
- bl _0804441E
-_08042D56:
- ldr r0, =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08042D66
- bl _0804441E
-_08042D66:
- ldrh r0, [r4, 0x2C]
- ldrh r2, [r4, 0x28]
- cmp r0, r2
- bhi _08042D72
- bl _0804441E
-_08042D72:
- strb r5, [r7]
- ldr r0, =gUnknown_082DB45C
- bl b_push_move_exec
- ldr r1, =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08042D8A
- movs r0, 0x1
- str r0, [r1]
-_08042D8A:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _080443D0
- .pool
-_08042DA0:
- mov r0, r8
- adds r0, 0x4C
- adds r5, r6, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08042DB0
- bl _0804441E
-_08042DB0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08042DCA
- bl _0804441E
-_08042DCA:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _08042DDC
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC70
- bl StringCopy
-_08042DDC:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08042DEE
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC78
- bl StringCopy
-_08042DEE:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042E00
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC80
- bl StringCopy
-_08042E00:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08042E12
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC88
- bl StringCopy
-_08042E12:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08042E24
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC90
- bl StringCopy
-_08042E24:
- str r4, [r5]
- mov r1, r8
- adds r1, 0x50
- adds r1, r6, r1
- ldr r0, [r1]
- ldr r2, =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, =gBattleScripting
- ldr r4, =gActiveBank
- mov r3, r10
- strb r3, [r4]
- strb r3, [r0, 0x17]
- ldr r0, =gUnknown_082DB484
- bl b_push_move_exec
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _080443D0
- .pool
-_08042E84:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _08042E92
- bl _0804441E
-_08042E92:
- ldr r0, =gDisableStructs
- mov r5, r10
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _08042EA8
- bl _0804441E
-_08042EA8:
- adds r0, r2, 0x1
- movs r1, 0
- strb r0, [r4, 0x1B]
- ldr r4, =gBattleScripting
- movs r0, 0x11
- strb r0, [r4, 0x10]
- strb r1, [r4, 0x11]
- ldr r0, =gUnknown_082DB444
- bl b_push_move_exec
- strb r5, [r4, 0x17]
- bl _080443D0
- .pool
-_08042ED0:
- ldr r2, =gDisableStructs
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _0804441E
- .pool
-_08042EF8:
- ldrb r0, [r7]
- cmp r0, 0x2B
- beq _08042F02
- bl _0804441E
-_08042F02:
- movs r4, 0
- ldr r0, =gUnknown_0831BCF8
- ldrh r2, [r0]
- ldr r3, =0x0000ffff
- adds r1, r0, 0
- cmp r2, r3
- bne _08042F14
- bl _0804441E
-_08042F14:
- cmp r2, r5
- beq _08042F2C
- adds r2, r1, 0
-_08042F1A:
- adds r2, 0x2
- adds r4, 0x1
- ldrh r0, [r2]
- cmp r0, r3
- bne _08042F28
- bl _0804441E
-_08042F28:
- cmp r0, r5
- bne _08042F1A
-_08042F2C:
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08042F3C
- bl _0804441E
-_08042F3C:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _08042F62
- ldr r0, =gHitMarker
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_08042F62:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB61F
- str r0, [r1]
- movs r0, 0x1
- mov r9, r0
- bl _08044424
- .pool
-_08042F8C:
- cmp r5, 0
- bne _08042F94
- bl _0804441E
-_08042F94:
- ldrb r0, [r7]
- cmp r0, 0xB
- beq _08043004
- cmp r0, 0xB
- bgt _08042FA4
- cmp r0, 0xA
- beq _08042FAA
- b _08043126
-_08042FA4:
- cmp r0, 0x12
- beq _0804305C
- b _08043126
-_08042FAA:
- cmp r3, 0xD
- beq _08042FB0
- b _08043126
-_08042FB0:
- ldr r0, =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08042FC2
- b _08043126
-_08042FC2:
- ldr r1, =gProtectStructs
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08042FF0
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB56F
- b _08042FF4
- .pool
-_08042FF0:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB56E
-_08042FF4:
- str r0, [r1]
- movs r1, 0x1
- b _08043124
- .pool
-_08043004:
- cmp r3, 0xB
- beq _0804300A
- b _08043126
-_0804300A:
- ldr r0, =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0804301C
- b _08043126
-_0804301C:
- ldr r1, =gProtectStructs
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08043048
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB56F
- b _0804304C
- .pool
-_08043048:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB56E
-_0804304C:
- str r0, [r1]
- movs r2, 0x1
- mov r9, r2
- b _08043126
- .pool
-_0804305C:
- cmp r3, 0xA
- bne _08043126
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08043126
- ldr r2, =gBattleResources
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- mov r5, r10
- lsls r1, r5, 2
- adds r0, r1
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _080430EC
- ldr r0, =gBattleCommunication
- strb r3, [r0, 0x5]
- ldr r1, =gProtectStructs
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _080430C8
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB5A8
- b _080430CC
- .pool
-_080430C8:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB5A7
-_080430CC:
- str r0, [r1]
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- adds r1, r5
- ldr r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- str r0, [r1]
- movs r0, 0x2
- mov r9, r0
- b _08043126
- .pool
-_080430EC:
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, =gProtectStructs
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0804311C
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB5A8
- b _08043120
- .pool
-_0804311C:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB5A7
-_08043120:
- str r0, [r1]
- movs r1, 0x2
-_08043124:
- mov r9, r1
-_08043126:
- mov r2, r9
- cmp r2, 0x1
- beq _08043130
- bl _0804441E
-_08043130:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r5, [r1, 0x28]
- cmp r0, r5
- bne _0804318C
- ldr r1, =gProtectStructs
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08043178
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB592
- str r0, [r1]
- bl _0804441E
- .pool
-_08043178:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB591
- str r0, [r1]
- bl _0804441E
- .pool
-_0804318C:
- ldr r2, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _0804319C
- mov r0, r9
- str r0, [r2]
-_0804319C:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _0804441E
- .pool
-_080431AC:
- ldrb r0, [r7]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _080431B8
- bl _0804441E
-_080431B8:
- lsls r0, 2
- ldr r1, =_080431C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080431C8:
- .4byte _080435E4
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _08043288
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _08043350
- .4byte _0804441E
- .4byte _0804441E
- .4byte _08043410
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _08043508
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _080436C0
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804441E
- .4byte _0804379C
-_08043288:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08043298
- bl _0804441E
-_08043298:
- cmp r5, 0xA5
- bne _080432A0
- bl _0804441E
-_080432A0:
- ldr r0, =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080432B4
- bl _0804441E
-_080432B4:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080432DC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080432DC
- bl _0804441E
-_080432DC:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r4, r1, 0
- adds r4, 0x21
- ldrb r0, [r4]
- cmp r0, r3
- bne _080432F6
- bl _0804441E
-_080432F6:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r3
- bne _08043304
- bl _0804441E
-_08043304:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _0804330E
- bl _0804441E
-_0804330E:
- strb r3, [r4]
- strb r3, [r2]
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r3, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB64D
- str r0, [r1]
- bl _080443D0
- .pool
-_08043350:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08043360
- bl _0804441E
-_08043360:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r3, r0, r1
- ldrh r0, [r3, 0x28]
- cmp r0, 0
- bne _08043376
- bl _0804441E
-_08043376:
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08043388
- bl _0804441E
-_08043388:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080433B0
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080433B0
- bl _0804441E
-_080433B0:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080433CA
- bl _0804441E
-_080433CA:
- ldr r1, =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _080433D8
- str r2, [r1]
-_080433D8:
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB654
- str r0, [r1]
- bl _080443D0
- .pool
-_08043410:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08043420
- bl _0804441E
-_08043420:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08043436
- bl _0804441E
-_08043436:
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08043448
- bl _0804441E
-_08043448:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043470
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043470
- bl _0804441E
-_08043470:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08043488
- bl _0804441E
-_08043488:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080434A0
- bl _0804441E
-_080434A0:
- ldr r5, =gBattleCommunication
- movs r4, 0x3
-_080434A4:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _080434A4
- ldr r1, =gBattleCommunication
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _080434BC
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_080434BC:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67C
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _080443D0
- .pool
-_08043508:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08043518
- bl _0804441E
-_08043518:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0804352E
- bl _0804441E
-_0804352E:
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08043540
- bl _0804441E
-_08043540:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043568
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043568
- bl _0804441E
-_08043568:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08043580
- bl _0804441E
-_08043580:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08043598
- bl _0804441E
-_08043598:
- ldr r1, =gBattleCommunication
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67C
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _080443D0
- .pool
-_080435E4:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080435F4
- bl _0804441E
-_080435F4:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0804360A
- bl _0804441E
-_0804360A:
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0804361C
- bl _0804441E
-_0804361C:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043644
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043644
- bl _0804441E
-_08043644:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804365C
- bl _0804441E
-_0804365C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08043674
- bl _0804441E
-_08043674:
- ldr r1, =gBattleCommunication
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67C
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _080443D0
- .pool
-_080436C0:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080436D0
- bl _0804441E
-_080436D0:
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080436E6
- bl _0804441E
-_080436E6:
- ldr r0, =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _080436F8
- bl _0804441E
-_080436F8:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08043710
- bl _0804441E
-_08043710:
- ldr r2, =gSpecialStatuses
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043738
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043738
- bl _0804441E
-_08043738:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08043750
- bl _0804441E
-_08043750:
- ldr r1, =gBattleCommunication
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67C
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _080443D0
- .pool
-_0804379C:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080437AC
- bl _0804441E
-_080437AC:
- ldr r6, =gBattleMons
- ldr r3, =gBankAttacker
- mov r8, r3
- ldrb r1, [r3]
- movs r7, 0x58
- adds r0, r1, 0
- muls r0, r7
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080437C6
- bl _0804441E
-_080437C6:
- ldr r0, =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _080437D8
- bl _0804441E
-_080437D8:
- ldr r1, =gBattleMoves
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080437F0
- bl _0804441E
-_080437F0:
- ldr r3, =gSpecialStatuses
- ldr r5, =gBankTarget
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043818
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08043818
- bl _0804441E
-_08043818:
- adds r0, r1, 0
- muls r0, r7
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08043828
- bl _0804441E
-_08043828:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08043840
- bl _0804441E
-_08043840:
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08043854
- bl _0804441E
-_08043854:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08043872
- bl _0804441E
-_08043872:
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r4, r6, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _0804388E
- bl _0804441E
-_0804388E:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080438A2
- bl _0804441E
-_080438A2:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080438B6
- bl _0804441E
-_080438B6:
- mov r3, r8
- ldrb r0, [r3]
- adds r2, r0, 0
- muls r2, r7
- adds r2, r4
- ldr r1, =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB66F
- str r0, [r1]
- bl _080443D0
- .pool
-_08043908:
- movs r5, 0
- mov r10, r5
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08043918
- bl _0804441E
-_08043918:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _08043932
- b _08043B96
-_08043932:
- lsls r0, 2
- ldr r1, =_08043948
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08043948:
- .4byte _08043AAC
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B70
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043AD4
- .4byte _08043B96
- .4byte _08043A50
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043A7C
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B40
- .4byte _08043B10
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043B96
- .4byte _08043AD4
-_08043A50:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _08043A6A
- b _08043B96
-_08043A6A:
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC70
- b _08043B5C
- .pool
-_08043A7C:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08043A96
- b _08043B96
-_08043A96:
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC98
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _08043B9C
- .pool
-_08043AAC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08043B96
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC80
- b _08043B5C
- .pool
-_08043AD4:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08043B96
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC78
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _08043B9C
- .pool
-_08043B10:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08043B96
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC88
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _08043B9C
- .pool
-_08043B40:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08043B96
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC90
-_08043B5C:
- bl StringCopy
- movs r5, 0x1
- mov r9, r5
- b _08043B9C
- .pool
-_08043B70:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _08043B96
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BCA0
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_08043B96:
- mov r3, r9
- cmp r3, 0
- beq _08043C50
-_08043B9C:
- mov r5, r9
- cmp r5, 0x2
- beq _08043BD0
- cmp r5, 0x2
- bgt _08043BB4
- cmp r5, 0x1
- beq _08043BBC
- b _08043BFC
- .pool
-_08043BB4:
- mov r0, r9
- cmp r0, 0x3
- beq _08043BE8
- b _08043BFC
-_08043BBC:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _08043BFA
- .pool
-_08043BD0:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _08043BF8
- .pool
-_08043BE8:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, =0xfff0ffff
-_08043BF8:
- ands r0, r1
-_08043BFA:
- str r0, [r2]
-_08043BFC:
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB68C
- str r0, [r1]
- ldr r0, =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- ldr r4, =gActiveBank
- strb r1, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, =gBattleMons + 0x4C
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _0804443A
- .pool
-_08043C50:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcs _08043C64
- b _08043918
-_08043C64:
- bl _0804441E
- .pool
-_08043C6C:
- movs r2, 0
- mov r10, r2
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08043C7A
- b _0804441E
-_08043C7A:
- ldr r4, =gBattleMons
-_08043C7C:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _08043CA0
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _08043CA0
- b _080442FC
-_08043CA0:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08043C7C
- b _0804441E
- .pool
-_08043CBC:
- ldrb r0, [r7]
- cmp r0, 0x1C
- beq _08043CC4
- b _0804441E
-_08043CC4:
- ldr r4, =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _08043CD4
- b _0804441E
-_08043CD4:
- ldr r0, =0xffffbfff
- ands r1, r0
- str r1, [r4]
- mov r5, r8
- ldr r1, [r5]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _08043CF8
- movs r0, 0x2
- strb r0, [r1]
-_08043CF8:
- ldr r1, =gBattleCommunication
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xB2
- ldrb r0, [r0]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r1, =gBattleScripting
- ldr r0, =gBankTarget
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67F
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _080443D0
- .pool
-_08043D40:
- ldrb r0, [r7]
- cmp r0, 0x1C
- beq _08043D48
- b _0804441E
-_08043D48:
- ldr r4, =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _08043D58
- b _0804441E
-_08043D58:
- ldr r0, =0xffffbfff
- ands r1, r0
- str r1, [r4]
- mov r3, r8
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _08043D7C
- movs r0, 0x2
- strb r0, [r1]
-_08043D7C:
- ldr r1, =gBattleCommunication
- mov r3, r8
- ldr r0, [r3]
- adds r0, 0xB2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- ldr r1, =gBattleScripting
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB67F
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _080443D0
- .pool
-_08043DC4:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- blt _08043DD0
- b _0804441E
-_08043DD0:
- ldr r0, =gBattleMons
- adds r5, r1, 0
- ldr r2, =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08043DDE:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08043DEE
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08043DEE
- b _08044324
-_08043DEE:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08043DDE
- b _0804441E
- .pool
-_08043E08:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08043E14
- b _0804441E
-_08043E14:
- ldr r5, =gActiveBank
- mov r8, r5
- ldr r0, =gBattleMons
- adds r0, 0x20
- str r0, [sp, 0x1C]
- movs r1, 0
- str r1, [sp, 0x20]
-_08043E22:
- ldr r2, [sp, 0x1C]
- ldrb r0, [r2]
- cmp r0, 0x24
- beq _08043E2C
- b _08043FBE
-_08043E2C:
- ldr r0, =gStatuses3
- ldr r3, [sp, 0x20]
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r3, [sp, 0x18]
- cmp r1, 0
- bne _08043E42
- b _08043FBE
-_08043E42:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankIdentity
- movs r1, 0x1
- adds r5, r0, 0
- eors r5, r1
- ands r5, r1
- adds r0, r5, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08043E74
- b _08043F84
-_08043E74:
- movs r1, 0x58
- adds r0, r6, 0
- muls r0, r1
- ldr r3, =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043F40
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08043EFC
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043EFC
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08043EFC
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r5, r1
- adds r0, r5, 0
- bl GetBankByPlayerAI
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r5, =gBattleMons
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, =gLastUsedAbility
- strb r0, [r2]
- b _08043FAC
- .pool
-_08043EFC:
- ldr r3, =gBattleMons
- movs r2, 0x58
- adds r0, r6, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043F40
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08043F40
- mov r5, r8
- strb r6, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08043FA8
- .pool
-_08043F40:
- ldr r3, =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043FB6
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08043FB6
- mov r5, r8
- strb r7, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08043FA8
- .pool
-_08043F84:
- mov r2, r8
- strb r6, [r2]
- movs r3, 0x58
- adds r0, r6, 0
- muls r0, r3
- ldr r5, =gBattleMons
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _08043FB6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08043FB6
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_08043FA8:
- ldr r1, =gLastUsedAbility
- strb r0, [r1]
-_08043FAC:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08043FB6:
- mov r2, r9
- cmp r2, 0
- beq _08043FBE
- b _08044340
-_08043FBE:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- adds r5, 0x4
- str r5, [sp, 0x20]
- adds r4, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bge _08043FD6
- b _08043E22
-_08043FD6:
- b _0804441E
- .pool
-_08043FE4:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- blt _08043FF0
- b _0804441E
-_08043FF0:
- ldr r0, =gBattleMons
- adds r5, r1, 0
- ldr r2, =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08043FFE:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _0804400E
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _0804400E
- b _080443B4
-_0804400E:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08043FFE
- b _0804441E
- .pool
-_08044028:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804403E
- b _0804441E
-_0804403E:
- ldr r7, =gBattleMons
-_08044040:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- beq _0804406A
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _0804406A
- ldr r0, =gLastUsedAbility
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_0804406A:
- adds r4, r3, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044040
- b _0804441E
- .pool
-_08044084:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804409A
- b _0804441E
-_0804409A:
- ldr r7, =gBattleMons
-_0804409C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- bne _080440C6
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _080440C6
- ldr r0, =gLastUsedAbility
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_080440C6:
- adds r4, r3, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804409C
- b _0804441E
- .pool
-_080440E0:
- ldrb r0, [r7]
- cmp r0, 0xFD
- beq _08044104
- cmp r0, 0xFE
- beq _0804413C
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r4, r0
- blt _080440F8
- b _0804441E
-_080440F8:
- ldr r2, =gBattleMons
- b _08044174
- .pool
-_08044104:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044110
- b _0804441E
-_08044110:
- ldr r5, =gStatuses3
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_08044118:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _0804412C
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_0804412C:
- adds r4, r3, 0
- cmp r4, r1
- blt _08044118
- b _0804441E
- .pool
-_0804413C:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044148
- b _0804441E
-_08044148:
- ldr r5, =gStatuses3
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_08044150:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08044164
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08044164:
- adds r4, r3, 0
- cmp r4, r1
- blt _08044150
- b _0804441E
- .pool
-_08044174:
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _0804418C
- strb r6, [r7]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_0804418C:
- adds r4, r3, 0
- ldrb r1, [r5]
- cmp r4, r1
- blt _08044174
- b _0804441E
-_08044196:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _080441A2
- b _0804441E
-_080441A2:
- ldr r2, =gBattleMons
- mov r8, r2
- adds r2, r0, 0
- movs r5, 0x58
-_080441AA:
- adds r0, r4, 0
- muls r0, r5
- mov r3, r8
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _080441CC
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080441CC
- strb r6, [r7]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_080441CC:
- adds r4, r3, 0
- cmp r4, r2
- blt _080441AA
- b _0804441E
- .pool
-_080441DC:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _080441E8
- b _0804441E
-_080441E8:
- ldr r7, =gBattleMons
- adds r1, r0, 0
- movs r5, 0x58
- ldr r2, =gLastUsedAbility
-_080441F0:
- adds r0, r4, 0
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _0804420C
- cmp r4, r10
- beq _0804420C
- strb r6, [r2]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_0804420C:
- adds r4, r3, 0
- cmp r4, r1
- blt _080441F0
- b _0804441E
- .pool
-_08044220:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044236
- b _0804441E
-_08044236:
- ldr r7, =gBattleMons
-_08044238:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _08044264
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08044264
- ldr r0, =gLastUsedAbility
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08044264:
- adds r4, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044238
- b _0804441E
- .pool
-_0804427C:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044292
- b _0804441E
-_08044292:
- ldr r7, =gBattleMons
-_08044294:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _080442C0
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _080442C0
- ldr r0, =gLastUsedAbility
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080442C0:
- adds r4, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08044294
- b _0804441E
- .pool
-_080442D8:
- ldr r0, =gUnknown_082DB4A9
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- strb r6, [r0, 0x17]
-_080442E2:
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- mov r1, r9
- subs r1, 0x1
- strb r1, [r0]
- b _0804441E
- .pool
-_080442FC:
- ldr r0, =gUnknown_082DB4A9
- bl b_push_move_exec
- ldr r0, =gBattleScripting
- mov r5, r10
- strb r5, [r0, 0x17]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- mov r1, r9
- subs r1, 0x1
- strb r1, [r0]
- b _0804443A
- .pool
-_08044324:
- strb r1, [r7]
- ldr r0, [r2]
- ldr r1, =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, =gUnknown_082DB4B8
- bl b_push_move_exec
- b _080443C8
- .pool
-_08044340:
- ldr r0, =gUnknown_082DB452
- bl b_push_move_exec
- ldr r1, =gStatuses3
- ldr r0, [sp, 0x18]
- adds r1, r0, r1
- ldr r0, [r1]
- ldr r2, =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, =gBattleScripting
- strb r4, [r0, 0x17]
- ldr r1, =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, =gBattlePartyID
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, =gBattleTextBuff2
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, =gLastUsedAbility
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _0804441E
- .pool
-_080443B4:
- strb r1, [r7]
- ldr r0, [r2]
- ldr r1, =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB4C1
- str r0, [r1]
-_080443C8:
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xD8
- strb r4, [r0]
-_080443D0:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _0804441E
- .pool
-_080443EC:
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- bge _0804441E
- ldr r0, =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, =gLastUsedAbility
-_08044400:
- ldrb r0, [r1]
- cmp r0, r6
- bne _08044416
- cmp r4, r10
- beq _08044416
- strb r6, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08044416:
- adds r1, 0x58
- adds r4, 0x1
- cmp r4, r2
- blt _08044400
-_0804441E:
- mov r1, r9
- cmp r1, 0
- beq _0804443A
-_08044424:
- ldr r2, [sp, 0x4]
- cmp r2, 0xB
- bhi _0804443A
- ldr r1, =gLastUsedAbility
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0804443A
- adds r1, r0, 0
- mov r0, r10
- bl RecordAbilityBattle
-_0804443A:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AbilityBattleEffects
-
- thumb_func_start b_call_bc_move_exec
-b_call_bc_move_exec: @ 8044458
- ldr r1, =gBattlescriptCurrInstr
- str r0, [r1]
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r2, [r0, 0xC]
- adds r3, r2, 0
- adds r3, 0x20
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 22
- adds r2, r0
- ldr r1, =gBattleMainFunc
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, =bc_move_exec_returning
- str r0, [r1]
- ldr r1, =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end b_call_bc_move_exec
-
- thumb_func_start b_push_move_exec
-b_push_move_exec: @ 8044498
- push {r4,lr}
- adds r4, r0, 0
- bl b_movescr_stack_push_cursor
- ldr r0, =gBattlescriptCurrInstr
- str r4, [r0]
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r2, [r0, 0xC]
- adds r3, r2, 0
- adds r3, 0x20
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 22
- adds r2, r0
- ldr r1, =gBattleMainFunc
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, =sub_803E08C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end b_push_move_exec
-
- thumb_func_start berry_effects_maybe
-berry_effects_maybe: @ 80444DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0xC]
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r4, =gLastUsedItem
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08044534
- ldr r1, =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r0, [r0, 0x1A]
- b _08044548
- .pool
-_08044534:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_08044548:
- mov r9, r0
- ldr r1, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- str r0, [sp, 0x14]
- cmp r0, 0xAF
- bne _0804457C
- ldr r1, =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r8, r3
- ldrb r0, [r0, 0x1A]
- b _08044592
- .pool
-_0804457C:
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_08044592:
- str r0, [sp, 0x10]
- ldr r2, =gBattleMons
- ldr r0, =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- cmp r4, 0xAF
- beq _080445B2
- adds r0, r4, 0
- bl ItemId_GetHoldEffect
- adds r0, r4, 0
- bl ItemId_GetHoldEffectParam
-_080445B2:
- ldr r0, [sp, 0x8]
- cmp r0, 0x4
- bls _080445BC
- bl _0804582A
-_080445BC:
- lsls r0, 2
- ldr r1, =_080445D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080445D4:
- .4byte _080445E8
- .4byte _08044688
- .4byte _0804582A
- .4byte _08045280
- .4byte _080456D0
-_080445E8:
- cmp r5, 0x17
- beq _08044618
- cmp r5, 0x20
- beq _080445F4
- bl _0804582A
-_080445F4:
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08044604
- bl _0804582A
-_08044604:
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4A
- movs r1, 0x2
- strb r1, [r0]
- bl _0804582A
- .pool
-_08044618:
- ldr r1, =gBattleMons
- mov r8, r1
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0804462E:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0804463C
- strb r2, [r1]
- movs r5, 0x5
- str r5, [sp, 0xC]
-_0804463C:
- adds r1, 0x1
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- mov r3, r10
- cmp r3, 0
- bge _0804462E
- ldr r5, [sp, 0xC]
- cmp r5, 0
- bne _08044654
- bl _0804582A
-_08044654:
- ldr r0, =gBattleScripting
- strb r7, [r0, 0x17]
- ldr r0, =gStringBank
- strb r7, [r0]
- ldr r1, =gActiveBank
- ldr r0, =gBankAttacker
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, =gUnknown_082DB7AE
- bl b_call_bc_move_exec
- bl _0804582A
- .pool
-_08044688:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x28]
- mov r8, r1
- cmp r0, 0
- bne _0804469C
- bl _0804582A
-_0804469C:
- subs r0, r5, 0x1
- cmp r0, 0x2A
- bls _080446A6
- bl _080451D6
-_080446A6:
- lsls r0, 2
- ldr r1, =_080446B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080446B8:
- .4byte _08044764
- .4byte _08044F44
- .4byte _08045008
- .4byte _08044F74
- .4byte _08044FA8
- .4byte _08044FD8
- .4byte _080447B0
- .4byte _08045044
- .4byte _08045074
- .4byte _0804497C
- .4byte _080449FC
- .4byte _08044A78
- .4byte _08044B0C
- .4byte _08044BA0
- .4byte _08044C34
- .4byte _08044C9C
- .4byte _08044CF0
- .4byte _08044D44
- .4byte _08044DAC
- .4byte _08044E10
- .4byte _08044E5C
- .4byte _080451D6
- .4byte _080448B0
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451A0
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _080451D6
- .4byte _0804491C
-_08044764:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r2, r0, r1
- ldrh r0, [r2, 0x2C]
- ldrh r1, [r2, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0804477A
- bl _080451D6
-_0804477A:
- cmp r6, 0
- beq _08044782
- bl _080451D6
-_08044782:
- ldr r4, =gBattleMoveDamage
- mov r3, r9
- str r3, [r4]
- ldrh r3, [r2, 0x28]
- mov r5, r9
- adds r0, r3, r5
- ldrh r1, [r2, 0x2C]
- cmp r0, r1
- ble _08044798
- subs r0, r1, r3
- str r0, [r4]
-_08044798:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- ldr r0, =gUnknown_082DB7C4
- bl b_call_bc_move_exec
- b _08044B02
- .pool
-_080447B0:
- cmp r6, 0
- beq _080447B8
- bl _080451D6
-_080447B8:
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080447DC
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _080447EA
- .pool
-_080447DC:
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_080447EA:
- adds r4, r1, r0
- movs r1, 0
- mov r10, r1
- add r5, sp, 0x4
-_080447F2:
- mov r1, r10
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r10
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r6, 0
- beq _08044822
- ldrb r0, [r5]
- cmp r0, 0
- beq _0804482C
-_08044822:
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _080447F2
-_0804482C:
- mov r5, r10
- cmp r5, 0x4
- bne _08044836
- bl _080451D6
-_08044836:
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r2, r0, 24
- add r0, sp, 0x4
- ldrb r0, [r0]
- mov r3, r9
- adds r1, r0, r3
- cmp r1, r2
- ble _08044860
- add r0, sp, 0x4
- strb r2, [r0]
- b _08044864
- .pool
-_08044860:
- add r0, sp, 0x4
- strb r1, [r0]
-_08044864:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_082DB7E1
- bl b_call_bc_move_exec
- mov r1, r10
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- add r5, sp, 0x4
- str r5, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r0, 0x3
- str r0, [sp, 0xC]
- bl _080451DE
- .pool
-_080448B0:
- ldr r0, =gBattleMons
- movs r1, 0x58
- muls r1, r7
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_080448C0:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _080448CE
- strb r2, [r1]
- movs r5, 0x5
- str r5, [sp, 0xC]
-_080448CE:
- adds r1, 0x1
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- mov r3, r10
- cmp r3, 0
- bge _080448C0
- movs r5, 0x8
- mov r10, r5
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _080448EA
- bl _0804582A
-_080448EA:
- ldr r0, =gBattleScripting
- strb r7, [r0, 0x17]
- ldr r0, =gStringBank
- strb r7, [r0]
- ldr r1, =gActiveBank
- ldr r0, =gBankAttacker
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, =gUnknown_082DB7AE
- bl b_call_bc_move_exec
- bl _080451D6
- .pool
-_0804491C:
- movs r0, 0x58
- muls r0, r7
- mov r2, r8
- adds r1, r0, r2
- ldrh r0, [r1, 0x28]
- ldrh r3, [r1, 0x2C]
- cmp r0, r3
- bcc _08044930
- bl _080451D6
-_08044930:
- cmp r6, 0
- beq _08044938
- bl _080451D6
-_08044938:
- ldr r3, =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r3]
- cmp r0, 0
- bne _08044948
- movs r0, 0x1
- str r0, [r3]
-_08044948:
- ldrh r2, [r1, 0x28]
- ldr r0, [r3]
- adds r0, r2, r0
- ldrh r1, [r1, 0x2C]
- cmp r0, r1
- ble _08044958
- subs r0, r1, r2
- str r0, [r3]
-_08044958:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
- ldr r0, =gUnknown_082DB7F1
- bl b_call_bc_move_exec
- movs r0, 0x4
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- bl RecordItemEffectBattle
- bl _080451D6
- .pool
-_0804497C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x18]
- adds r4, r1, 0
- add r4, r8
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _08044996
- bl _080451D6
-_08044996:
- cmp r6, 0
- beq _0804499E
- bl _080451D6
-_0804499E:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r5, =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _080449C2
- movs r0, 0x1
- str r0, [r5]
-_080449C2:
- ldrh r2, [r4, 0x28]
- ldr r0, [r5]
- adds r0, r2, r0
- ldrh r1, [r4, 0x2C]
- cmp r0, r1
- ble _080449D2
- subs r0, r1, r2
- str r0, [r5]
-_080449D2:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x18]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0
- bl GetFlavourRelationByPersonality
- lsls r0, 24
- cmp r0, 0
- bge _080449F0
- b _08044B7C
-_080449F0:
- b _08044B90
- .pool
-_080449FC:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- str r5, [sp, 0x1C]
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _08044A14
- bl _080451D6
-_08044A14:
- cmp r6, 0
- beq _08044A1C
- bl _080451D6
-_08044A1C:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r6, 0x1
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08044A40
- str r6, [r4]
-_08044A40:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _08044A50
- subs r0, r1, r2
- str r0, [r4]
-_08044A50:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r1, [sp, 0x1C]
- adds r0, r1, r0
- ldr r0, [r0]
- movs r1, 0x1
- bl GetFlavourRelationByPersonality
- lsls r0, 24
- cmp r0, 0
- bge _08044A6E
- b _08044C0E
-_08044A6E:
- b _08044C24
- .pool
-_08044A78:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- str r3, [sp, 0x20]
- adds r5, r3, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _08044A90
- b _080451D6
-_08044A90:
- cmp r6, 0
- beq _08044A96
- b _080451D6
-_08044A96:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08044ABC
- movs r0, 0x1
- str r0, [r4]
-_08044ABC:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _08044ACC
- subs r0, r1, r2
- str r0, [r4]
-_08044ACC:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x2
- bl GetFlavourRelationByPersonality
- lsls r0, 24
- cmp r0, 0
- bge _08044AFC
- ldr r0, =gUnknown_082DB824
- bl b_call_bc_move_exec
- b _08044B02
- .pool
-_08044AFC:
- ldr r0, =gUnknown_082DB7C4
- bl b_call_bc_move_exec
-_08044B02:
- movs r0, 0x4
- str r0, [sp, 0xC]
- b _080451DE
- .pool
-_08044B0C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x24]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _08044B24
- b _080451D6
-_08044B24:
- cmp r6, 0
- beq _08044B2A
- b _080451D6
-_08044B2A:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08044B50
- movs r0, 0x1
- str r0, [r4]
-_08044B50:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _08044B60
- subs r0, r1, r2
- str r0, [r4]
-_08044B60:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x24]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x3
- bl GetFlavourRelationByPersonality
- lsls r0, 24
- cmp r0, 0
- bge _08044B90
-_08044B7C:
- ldr r0, =gUnknown_082DB824
- bl b_call_bc_move_exec
- b _08044B96
- .pool
-_08044B90:
- ldr r0, =gUnknown_082DB7C4
- bl b_call_bc_move_exec
-_08044B96:
- movs r3, 0x4
- str r3, [sp, 0xC]
- b _080451DE
- .pool
-_08044BA0:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- str r5, [sp, 0x28]
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _08044BB6
- b _080451D6
-_08044BB6:
- cmp r6, 0
- beq _08044BBC
- b _080451D6
-_08044BBC:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08044BE2
- movs r0, 0x1
- str r0, [r4]
-_08044BE2:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _08044BF2
- subs r0, r1, r2
- str r0, [r4]
-_08044BF2:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r1, [sp, 0x28]
- adds r0, r1, r0
- ldr r0, [r0]
- movs r1, 0x4
- bl GetFlavourRelationByPersonality
- lsls r0, 24
- cmp r0, 0
- bge _08044C24
-_08044C0E:
- ldr r0, =gUnknown_082DB824
- bl b_call_bc_move_exec
- b _08044C2A
- .pool
-_08044C24:
- ldr r0, =gUnknown_082DB7C4
- bl b_call_bc_move_exec
-_08044C2A:
- movs r2, 0x4
- str r2, [sp, 0xC]
- b _080451DE
- .pool
-_08044C34:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r5, r0, r3
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044C4C
- b _080451D6
-_08044C4C:
- cmp r6, 0
- beq _08044C52
- b _080451D6
-_08044C52:
- movs r0, 0x19
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _08044C5C
- b _080451D6
-_08044C5C:
- ldr r1, =gBattleTextBuff1
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, =gBattleTextBuff2
- strb r2, [r1]
- strb r6, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r6, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- movs r0, 0x11
- strb r0, [r1, 0x1A]
- movs r0, 0xF
- b _08044DF0
- .pool
-_08044C9C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044CB4
- b _080451D6
-_08044CB4:
- cmp r6, 0
- beq _08044CBA
- b _080451D6
-_08044CBA:
- movs r0, 0x1A
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _08044CC4
- b _080451D6
-_08044CC4:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- movs r0, 0x12
- strb r0, [r1, 0x1A]
- movs r0, 0x10
- b _08044D8A
- .pool
-_08044CF0:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r5, r0, r3
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044D08
- b _080451D6
-_08044D08:
- cmp r6, 0
- beq _08044D0E
- b _080451D6
-_08044D0E:
- movs r0, 0x1B
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _08044D18
- b _080451D6
-_08044D18:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- movs r0, 0x13
- strb r0, [r1, 0x1A]
- movs r0, 0x11
- b _08044DF0
- .pool
-_08044D44:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044D5C
- b _080451D6
-_08044D5C:
- cmp r6, 0
- beq _08044D62
- b _080451D6
-_08044D62:
- movs r0, 0x1C
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _08044D6C
- b _080451D6
-_08044D6C:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- movs r0, 0x14
- strb r0, [r1, 0x1A]
- movs r0, 0x12
-_08044D8A:
- strb r0, [r1, 0x10]
- strb r6, [r1, 0x11]
- ldr r0, =gUnknown_082DB84E
- bl b_call_bc_move_exec
- movs r2, 0x5
- str r2, [sp, 0xC]
- b _080451DE
- .pool
-_08044DAC:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r5, r0, r3
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044DC4
- b _080451D6
-_08044DC4:
- cmp r6, 0
- beq _08044DCA
- b _080451D6
-_08044DCA:
- movs r0, 0x1D
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _08044DD4
- b _080451D6
-_08044DD4:
- ldr r1, =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- movs r0, 0x15
- strb r0, [r1, 0x1A]
- movs r0, 0x13
-_08044DF0:
- strb r0, [r1, 0x10]
- strb r6, [r1, 0x11]
- ldr r0, =gUnknown_082DB84E
- bl b_call_bc_move_exec
- movs r5, 0x5
- str r5, [sp, 0xC]
- b _080451DE
- .pool
-_08044E10:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r1, r8
- adds r0, r5, r1
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044E2A
- b _080451D6
-_08044E2A:
- cmp r6, 0
- beq _08044E30
- b _080451D6
-_08044E30:
- mov r0, r8
- adds r0, 0x50
- adds r1, r5, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08044E46
- b _080451D6
-_08044E46:
- orrs r2, r3
- str r2, [r1]
- ldr r0, =gUnknown_082DB869
- bl b_call_bc_move_exec
- movs r2, 0x2
- str r2, [sp, 0xC]
- b _080451DE
- .pool
-_08044E5C:
- cmp r6, 0
- beq _08044E62
- b _080451D6
-_08044E62:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r3, r8
- adds r0, r5, r3
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _08044E7C
- b _080451D6
-_08044E7C:
- movs r0, 0
- mov r10, r0
- adds r0, r5, 0x1
- mov r1, r8
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _08044EAC
- mov r0, r8
- adds r0, 0x19
- adds r1, r5, r0
-_08044E98:
- adds r1, 0x1
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x4
- bgt _08044EAC
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _08044E98
-_08044EAC:
- mov r5, r10
- cmp r5, 0x5
- bne _08044EB4
- b _080451D6
-_08044EB4:
- movs r0, 0x58
- muls r0, r7
- adds r4, r0, 0x1
- ldr r5, =gBattleMons + 0x18
-_08044EBC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- beq _08044EBC
- ldr r1, =gBattleTextBuff1
- movs r2, 0
- movs r3, 0xFD
- strb r3, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- mov r0, r10
- adds r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, =gBattleTextBuff2
- strb r3, [r0]
- strb r2, [r0, 0x1]
- movs r1, 0xD1
- strb r1, [r0, 0x2]
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- movs r1, 0xD2
- strb r1, [r0, 0x5]
- strb r2, [r0, 0x6]
- subs r1, 0xD3
- strb r1, [r0, 0x7]
- ldr r0, =gUnknown_0202420E
- strb r7, [r0]
- ldr r1, =gBattleScripting
- mov r0, r10
- adds r0, 0x21
- strb r0, [r1, 0x1A]
- adds r0, 0x6
- strb r0, [r1, 0x10]
- strb r2, [r1, 0x11]
- ldr r0, =gUnknown_082DB84E
- bl b_call_bc_move_exec
- movs r0, 0x5
- str r0, [sp, 0xC]
- b _080451DE
- .pool
-_08044F44:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08044F5C
- b _080451D6
-_08044F5C:
- movs r0, 0x41
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, =gUnknown_082DB706
- bl b_call_bc_move_exec
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _080451DE
- .pool
-_08044F74:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- bne _08044F8C
- b _080451D6
-_08044F8C:
- ldr r0, =0xfffff077
- ands r2, r0
- str r2, [r1]
- ldr r0, =gUnknown_082DB71E
- bl b_call_bc_move_exec
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _080451DE
- .pool
-_08044FA8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _08044FC0
- b _080451D6
-_08044FC0:
- movs r0, 0x11
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, =gUnknown_082DB736
- bl b_call_bc_move_exec
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _080451DE
- .pool
-_08044FD8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _08044FF0
- b _080451D6
-_08044FF0:
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, =gUnknown_082DB74E
- bl b_call_bc_move_exec
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _080451DE
- .pool
-_08045008:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- mov r0, r8
- adds r0, 0x4C
- adds r2, r3, r0
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08045020
- b _080451D6
-_08045020:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- mov r1, r8
- adds r1, 0x50
- adds r1, r3, r1
- ldr r0, [r1]
- ldr r2, =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, =gUnknown_082DB766
- b _0804518A
- .pool
-_08045044:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0804505C
- b _080451D6
-_0804505C:
- movs r0, 0x8
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, =gUnknown_082DB77E
- bl b_call_bc_move_exec
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _080451DE
- .pool
-_08045074:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r0, r8
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r2, [r4]
- ldrb r0, [r4]
- cmp r0, 0
- bne _0804509A
- mov r0, r8
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0804509A
- b _080451D6
-_0804509A:
- movs r3, 0
- mov r10, r3
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _080450B2
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC70
- bl StringCopy
- movs r0, 0x1
- mov r10, r0
-_080450B2:
- ldr r0, [r4]
- movs r1, 0x7
- mov r9, r1
- ands r0, r1
- mov r6, r8
- adds r6, 0x50
- cmp r0, 0
- beq _080450D8
- adds r2, r5, r6
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC78
- bl StringCopy
- movs r2, 0x1
- add r10, r2
-_080450D8:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080450EE
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC80
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_080450EE:
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08045104
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC88
- bl StringCopy
- movs r0, 0x1
- add r10, r0
-_08045104:
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804511A
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC90
- bl StringCopy
- movs r1, 0x1
- add r10, r1
-_0804511A:
- adds r0, r5, r6
- ldr r0, [r0]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _08045132
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC98
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_08045132:
- mov r5, r10
- cmp r5, 0x1
- bgt _08045164
- ldr r1, =gBattleCommunication
- movs r0, 0
- b _08045168
- .pool
-_08045164:
- ldr r1, =gBattleCommunication
- movs r0, 0x1
-_08045168:
- strb r0, [r1, 0x5]
- ldr r2, =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- movs r1, 0
- str r1, [r0]
- adds r2, 0x50
- adds r3, r2
- ldr r0, [r3]
- subs r1, 0x8
- ands r0, r1
- str r0, [r3]
- ldr r0, =gUnknown_082DB794
-_0804518A:
- bl b_call_bc_move_exec
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _080451DE
- .pool
-_080451A0:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- beq _080451D6
- ldr r0, =0xfff0ffff
- ands r2, r0
- str r2, [r1]
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BCA0
- bl StringCopy
- ldr r0, =gUnknown_082DB794
- bl b_call_bc_move_exec
- ldr r1, =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r1, 0x2
- str r1, [sp, 0xC]
-_080451D6:
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _080451DE
- b _0804582A
-_080451DE:
- ldr r0, =gBattleScripting
- strb r7, [r0, 0x17]
- ldr r0, =gStringBank
- strb r7, [r0]
- ldr r4, =gActiveBank
- ldr r0, =gBankAttacker
- strb r7, [r0]
- strb r7, [r4]
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- beq _08045220
- cmp r3, 0x3
- beq _08045226
- b _0804582A
- .pool
-_08045220:
- movs r0, 0x58
- muls r0, r7
- b _0804568C
-_08045226:
- ldr r4, =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _08045242
- b _0804582A
-_08045242:
- ldr r1, =gDisableStructs
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, =gBitTable
- mov r5, r10
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08045262
- b _0804582A
-_08045262:
- adds r1, r5, r3
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- add r0, sp, 0x4
- ldrb r0, [r0]
- strb r0, [r1]
- b _0804582A
- .pool
-_08045280:
- movs r7, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0804528C
- b _0804582A
-_0804528C:
- ldr r4, =gLastUsedItem
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080452C0
- ldr r1, =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- b _080452D0
- .pool
-_080452C0:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
-_080452D0:
- subs r0, r5, 0x2
- cmp r0, 0x1A
- bls _080452D8
- b _08045674
-_080452D8:
- lsls r0, 2
- ldr r1, =_080452E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080452E8:
- .4byte _08045354
- .4byte _08045444
- .4byte _08045390
- .4byte _080453CC
- .4byte _08045408
- .4byte _08045674
- .4byte _0804548C
- .4byte _08045520
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045614
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _08045674
- .4byte _080454C8
-_08045354:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0804536A
- b _08045674
-_0804536A:
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB70C
- str r0, [r1]
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0804567A
- .pool
-_08045390:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _080453A6
- b _08045674
-_080453A6:
- ldr r0, =0xfffff077
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB724
- str r0, [r1]
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _0804567A
- .pool
-_080453CC:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080453E2
- b _08045674
-_080453E2:
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB73C
- str r0, [r1]
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0804567A
- .pool
-_08045408:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0804541E
- b _08045674
-_0804541E:
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB754
- str r0, [r1]
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0804567A
- .pool
-_08045444:
- ldr r2, =gBattleMons
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r3, r4, r0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0804545E
- b _08045674
-_0804545E:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- adds r2, 0x50
- adds r2, r4, r2
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB76C
- b _080455DC
- .pool
-_0804548C:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080454A2
- b _08045674
-_080454A2:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB784
- str r0, [r1]
- movs r0, 0x2
- str r0, [sp, 0xC]
- b _0804567A
- .pool
-_080454C8:
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _080454E0
- b _08045674
-_080454E0:
- ldr r0, =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BCA0
- bl StringCopy
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB79A
- str r0, [r1]
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _0804567A
- .pool
-_08045520:
- ldr r4, =gBattleMons
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- adds r0, r4, 0
- adds r0, 0x4C
- adds r6, r5, r0
- ldr r2, [r6]
- ldrb r0, [r6]
- cmp r0, 0
- bne _08045548
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08045548
- b _08045674
-_08045548:
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _08045558
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC70
- bl StringCopy
-_08045558:
- ldr r0, [r6]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- adds r4, 0x50
- cmp r0, 0
- beq _08045578
- adds r2, r5, r4
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC78
- bl StringCopy
-_08045578:
- ldr r0, [r6]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0804558A
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC80
- bl StringCopy
-_0804558A:
- ldr r0, [r6]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0804559C
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC88
- bl StringCopy
-_0804559C:
- ldr r0, [r6]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080455AE
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC90
- bl StringCopy
-_080455AE:
- adds r5, r4
- ldr r0, [r5]
- mov r3, r8
- ands r0, r3
- cmp r0, 0
- beq _080455C2
- ldr r0, =gBattleTextBuff1
- ldr r1, =gUnknown_0831BC98
- bl StringCopy
-_080455C2:
- movs r4, 0
- str r4, [r6]
- ldr r0, [r5]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r5]
- bl b_movescr_stack_push_cursor
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB79A
-_080455DC:
- str r0, [r1]
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _0804567A
- .pool
-_08045614:
- ldr r0, =gBattleMons
- mov r8, r0
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0804562A:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _08045638
- strb r2, [r1]
- movs r5, 0x5
- str r5, [sp, 0xC]
-_08045638:
- adds r1, 0x1
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- mov r3, r10
- cmp r3, 0
- bge _0804562A
- ldr r5, [sp, 0xC]
- cmp r5, 0
- beq _080456B8
- ldr r0, =gBattleScripting
- strb r7, [r0, 0x17]
- ldr r0, =gStringBank
- strb r7, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB7B4
- str r0, [r1]
- b _0804582A
- .pool
-_08045674:
- ldr r0, [sp, 0xC]
- cmp r0, 0
- beq _080456B8
-_0804567A:
- ldr r0, =gBattleScripting
- strb r7, [r0, 0x17]
- ldr r0, =gStringBank
- strb r7, [r0]
- ldr r4, =gActiveBank
- strb r7, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
-_0804568C:
- ldr r1, =gBattleMons + 0x4C
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0804582A
- .pool
-_080456B8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcs _080456C8
- b _0804528C
-_080456C8:
- b _0804582A
- .pool
-_080456D0:
- ldr r7, =gBattleMoveDamage
- ldr r0, [r7]
- cmp r0, 0
- bne _080456DA
- b _0804582A
-_080456DA:
- mov r1, r8
- cmp r1, 0x1E
- beq _080456EC
- cmp r1, 0x3E
- beq _08045794
- b _0804582A
- .pool
-_080456EC:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080456FA
- b _0804582A
-_080456FA:
- ldr r2, =gSpecialStatuses
- ldr r4, =gBankTarget
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08045720
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08045720
- b _0804582A
-_08045720:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x10]
- cmp r0, r2
- bcs _0804582A
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804582A
- ldr r2, =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0804582A
- ldr r1, =gBattleCommunication
- movs r0, 0x8
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- movs r0, 0
- movs r1, 0
- bl sub_8048760
- bl b_movescr_stack_pop_cursor
- b _0804582A
- .pool
-_08045794:
- ldr r0, =gBattleMoveFlags
- ldrb r0, [r0]
- movs r5, 0x29
- ands r5, r0
- cmp r5, 0
- bne _0804582A
- ldr r1, =gSpecialStatuses
- ldr r4, =gBankTarget
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r6, r1, 0x4
- adds r0, r6
- ldr r1, [r0]
- cmp r1, 0
- beq _0804582A
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _0804582A
- ldr r0, =gBankAttacker
- ldrb r3, [r0]
- cmp r3, r2
- beq _0804582A
- ldr r2, =gBattleMons
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0804582A
- cmp r1, 0
- beq _0804582A
- ldr r0, =gLastUsedItem
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0]
- ldr r0, =gStringBank
- strb r3, [r0]
- ldr r0, =gBattleScripting
- strb r3, [r0, 0x17]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [sp, 0x10]
- bl __divsi3
- negs r0, r0
- str r0, [r7]
- ldrb r1, [r4]
- cmp r0, 0
- bne _0804580C
- movs r0, 0x1
- negs r0, r0
- str r0, [r7]
-_0804580C:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r5, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB7F7
- str r0, [r1]
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_0804582A:
- ldr r0, [sp, 0xC]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end berry_effects_maybe
-
- thumb_func_start sub_8045868
-sub_8045868: @ 8045868
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gDisableStructs
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0
- strb r2, [r1, 0x10]
- ldr r1, =gBattleMons
- movs r2, 0x58
- adds r3, r0, 0
- muls r3, r2
- adds r1, 0x50
- adds r3, r1
- ldr r1, [r3]
- ldr r2, =0xfdffffff
- ands r1, r2
- str r1, [r3]
- ldr r1, =gStatuses3
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r2, =0xffffbfff
- ands r1, r2
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_8045868
-
- thumb_func_start sub_80458B4
-sub_80458B4: @ 80458B4
- push {lr}
- ldr r0, =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _080458D0
- ldr r1, =gBattleScriptingCommandsTable
- ldr r0, =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_080458D0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80458B4
-
- thumb_func_start GetMoveTarget
-GetMoveTarget: @ 80458E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- movs r5, 0
- cmp r0, 0
- beq _080458FE
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0804590A
-_080458FE:
- ldr r1, =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x6]
-_0804590A:
- cmp r6, 0x40
- bls _08045910
- b _08045C20
-_08045910:
- lsls r0, r6, 2
- ldr r1, =_08045924
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08045924:
- .4byte _08045A28
- .4byte _08045B28
- .4byte _08045C1C
- .4byte _08045C20
- .4byte _08045B40
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045B28
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C1C
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045B28
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045C20
- .4byte _08045B28
-_08045A28:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gSideTimers
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08045A5A
- ldr r1, =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08045A5A
- b _08045B70
-_08045A5A:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r7, 1
- mov r8, r0
-_08045A6A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gNoOfAllBanks
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, =gBankAttacker
- ldrb r3, [r6]
- cmp r5, r3
- beq _08045A6A
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _08045A6A
- ldr r0, =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08045A6A
- ldr r0, =gBattleMoves
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xD
- beq _08045AB8
- b _08045C20
-_08045AB8:
- ldrb r1, [r6]
- str r2, [sp]
- movs r0, 0x10
- movs r2, 0x1F
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08045ACE
- b _08045C20
-_08045ACE:
- ldr r2, =gBattleMons
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08045AE2
- b _08045C20
-_08045AE2:
- movs r4, 0x2
- eors r5, r4
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r5, 0
- bl RecordAbilityBattle
- ldr r1, =gSpecialStatuses
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- b _08045C20
- .pool
-_08045B28:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- b _08045BD2
- .pool
-_08045B40:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gSideTimers
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08045B80
- ldr r1, =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08045B80
-_08045B70:
- adds r5, r4, 0
- b _08045C20
- .pool
-_08045B80:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r4, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08045BFC
- movs r0, 0x4
- ands r6, r0
- cmp r6, 0
- beq _08045BFC
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08045BC0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08045BBC
- movs r0, 0x1
- b _08045BD2
- .pool
-_08045BBC:
- movs r0, 0x3
- b _08045BD2
-_08045BC0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08045BD0
- movs r0, 0
- b _08045BD2
-_08045BD0:
- movs r0, 0x2
-_08045BD2:
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08045C20
- movs r0, 0x2
- eors r5, r0
- b _08045C20
- .pool
-_08045BFC:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- b _08045C20
- .pool
-_08045C1C:
- ldr r0, =gBankAttacker
- ldrb r5, [r0]
-_08045C20:
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- strb r5, [r0, 0xC]
- adds r0, r5, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetMoveTarget
-
- thumb_func_start sub_8045C44
-sub_8045C44: @ 8045C44
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08045C8A
- ldr r0, =gBattlePartyID
- lsls r4, 1
- adds r5, r4, r0
- ldrh r0, [r5]
- movs r7, 0x64
- muls r0, r7
- ldr r6, =gPlayerParty
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xCD
- lsls r1, 1
- cmp r0, r1
- beq _08045C98
- ldrh r0, [r5]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0x97
- beq _08045C98
-_08045C8A:
- movs r0, 0x1
- b _08045CAE
- .pool
-_08045C98:
- ldr r0, =gBattlePartyID
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- movs r2, 0
- bl GetMonData
-_08045CAE:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8045C44
-
- thumb_func_start sub_8045CBC
-sub_8045CBC: @ 8045CBC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- movs r6, 0
- ldr r5, =gBattleTypeFlags
- ldr r0, [r5]
- ldr r1, =0x02000002
- ands r0, r1
- cmp r0, 0
- bne _08045DAC
- ldr r4, =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08045DAC
- ldrb r0, [r4]
- bl sub_8045C44
- cmp r0, 0
- beq _08045D76
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- beq _08045D08
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08045DAC
-_08045D08:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- ldr r0, =0x003f0100
- ands r0, r1
- cmp r0, 0
- bne _08045DAC
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- cmp r1, 0
- bne _08045DAC
- ldr r2, =gBattleMons
- ldr r0, =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x54
- adds r0, r1, r0
- ldr r0, [r0]
- adds r2, 0x3C
- adds r1, r2
- bl IsOtherTrainer
- lsls r0, 24
- cmp r0, 0
- beq _08045DAC
- ldr r0, =0x0000086e
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08045DAC
- movs r6, 0xA
- ldr r0, =0x00000868
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08045D5A
- movs r6, 0x1E
-_08045D5A:
- ldr r0, =0x0000086a
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08045D68
- movs r6, 0x32
-_08045D68:
- ldr r0, =0x0000086c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08045D76
- movs r6, 0x46
-_08045D76:
- ldr r5, =gBattleMons
- ldr r0, =gBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r7, 0x58
- muls r0, r7
- adds r0, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r6
- bls _08045DAC
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- adds r0, r2, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r0, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _08045DD4
-_08045DAC:
- movs r0, 0
- b _08045FD0
- .pool
-_08045DD4:
- ldr r3, =gCurrentMove
- ldrh r0, [r3]
- cmp r0, 0x63
- bne _08045DEA
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r2, =0xff7fffff
- ands r1, r2
- str r1, [r0]
-_08045DEA:
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08045E20
- ldrh r0, [r3]
- cmp r0, 0xAD
- beq _08045E0A
- cmp r0, 0xD6
- bne _08045E20
-_08045E0A:
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB695
- b _08045F7A
- .pool
-_08045E20:
- bl Random
- movs r5, 0xFF
- adds r1, r5, 0
- ands r1, r0
- ldr r7, =gBattleMons
- ldr r2, =gBankAttacker
- mov r9, r2
- ldrb r3, [r2]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r3
- adds r0, r7
- adds r0, 0x2A
- ldrb r2, [r0]
- adds r0, r2, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _08045EE8
- ldr r6, =gBitTable
- ldr r5, =gCurrMovePos
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- adds r0, r3, 0
- movs r2, 0xFF
- bl CheckMoveLimitations
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bne _08045E68
- b _08045F6A
-_08045E68:
- ldr r1, =gUnknown_020241E9
- mov r8, r1
- movs r7, 0x3
-_08045E6E:
- bl Random
- ands r0, r7
- mov r2, r8
- strb r0, [r2]
- strb r0, [r5]
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- bne _08045E6E
- ldr r4, =gRandomMove
- ldr r3, =gBattleMons
- ldr r0, =gCurrMovePos
- ldrb r0, [r0]
- lsls r0, 1
- ldr r1, =gBankAttacker
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6A5
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, =gBankTarget
- strb r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 14
- b _08045FCA
- .pool
-_08045EE8:
- subs r0, r2, r6
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- adds r4, r5, 0
- ands r4, r0
- cmp r4, r6
- bge _08045F64
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r7, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _08045F64
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _08045F64
- cmp r0, 0xF
- beq _08045F64
- movs r2, 0
- ldr r0, =gNoOfAllBanks
- ldrb r3, [r0]
- mov r8, r0
- cmp r2, r3
- bge _08045F4A
- ldr r0, [r7, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _08045F4A
- adds r1, r7, 0
- adds r1, 0x50
- movs r5, 0x70
-_08045F3A:
- adds r1, 0x58
- adds r2, 0x1
- cmp r2, r3
- bge _08045F4A
- ldr r0, [r1]
- ands r0, r5
- cmp r0, 0
- beq _08045F3A
-_08045F4A:
- mov r0, r8
- ldrb r0, [r0]
- cmp r2, r0
- bne _08045F64
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6D9
- b _08045F7A
- .pool
-_08045F64:
- subs r4, r6
- cmp r4, r6
- blt _08045F8C
-_08045F6A:
- bl Random
- ldr r2, =gBattleCommunication
- movs r1, 0x3
- ands r1, r0
- strb r1, [r2, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6AD
-_08045F7A:
- str r0, [r1]
- movs r0, 0x1
- b _08045FD0
- .pool
-_08045F8C:
- ldr r4, =gBankAttacker
- ldrb r1, [r4]
- movs r0, 0x58
- muls r1, r0
- ldr r0, =gBattleMons
- adds r1, r0
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- str r0, [sp, 0x8]
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, =gBattleMoveDamage
- str r0, [r1]
- ldr r1, =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB6F0
- str r0, [r1]
- ldr r2, =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
-_08045FCA:
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
-_08045FD0:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8045CBC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_4.s b/asm/battle_4.s
index 9106fa174..91dc67d0f 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -48,7 +48,7 @@ _08046020:
b _08046396
.pool
_08046064:
- bl sub_8041A6C
+ bl AtkCanceller_UnableToUseMove
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -132,7 +132,7 @@ _08046108:
ands r0, r1
cmp r0, 0
bne _08046160
- bl sub_8045CBC
+ bl IsPokeDisobedient
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -1339,10 +1339,10 @@ _08046B72:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
mov r7, r9
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08046BDC:
ldr r2, =gHitMarker
ldr r0, [r2]
@@ -3431,7 +3431,7 @@ _08047D44:
adds r0, 0x1
strb r0, [r5, 0x19]
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08047D88:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -3535,7 +3535,7 @@ _08047E76:
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -3763,7 +3763,7 @@ _0804807C:
b _080480E0
.pool
_08048098:
- ldr r0, =gUnknown_020241F8
+ ldr r0, =gTakenDmg
ldr r2, =gActiveBank
ldrb r1, [r2]
lsls r1, 2
@@ -3777,14 +3777,14 @@ _08048098:
adds r5, r2, 0
cmp r0, 0
bne _080480D4
- ldr r1, =gUnknown_02024288
+ ldr r1, =gTakenDmgBanks
ldrb r0, [r5]
adds r0, r1
ldr r1, =gBankAttacker
b _080480DC
.pool
_080480D4:
- ldr r1, =gUnknown_02024288
+ ldr r1, =gTakenDmgBanks
ldrb r0, [r5]
adds r0, r1
ldr r1, =gBankTarget
@@ -3965,9 +3965,9 @@ _0804823A:
movs r1, 0x2A
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804829A
.pool
_08048274:
@@ -4090,7 +4090,7 @@ _08048372:
_08048376:
bl dp01_build_cmdbuf_x2B_aa_0
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _080483C8
_08048382:
ldrb r1, [r1]
@@ -4112,7 +4112,7 @@ _0804839E:
bl dp01_build_cmdbuf_x2B_aa_0
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _080483C8
.pool
_080483B0:
@@ -4125,7 +4125,7 @@ _080483B0:
bl dp01_build_cmdbuf_x2B_aa_0
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_080483C8:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -4384,7 +4384,7 @@ atk11_printstring_playeronly: @ 80485D0
movs r0, 0
bl dp01_build_cmdbuf_x11_TODO
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r4]
adds r0, 0x3
str r0, [r4]
@@ -4511,7 +4511,7 @@ atk14_printfromtable_playeronly: @ 80486C4
movs r0, 0
bl dp01_build_cmdbuf_x11_TODO
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x5
str r0, [r5]
@@ -4555,8 +4555,8 @@ _0804874E:
.pool
thumb_func_end sub_8048728
- thumb_func_start sub_8048760
-sub_8048760: @ 8048760
+ thumb_func_start SetMoveEffect
+SetMoveEffect: @ 8048760
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -4578,7 +4578,7 @@ sub_8048760: @ 8048760
ands r0, r3
cmp r0, 0
beq _080487B8
- ldr r2, =gUnknown_0202420E
+ ldr r2, =gEffectBank
ldr r0, =gBankAttacker
ldrb r0, [r0]
strb r0, [r2]
@@ -4592,7 +4592,7 @@ sub_8048760: @ 8048760
b _080487C4
.pool
_080487B8:
- ldr r2, =gUnknown_0202420E
+ ldr r2, =gEffectBank
ldr r0, =gBankTarget
ldrb r0, [r0]
strb r0, [r2]
@@ -4670,7 +4670,7 @@ _08048828:
.pool
_08048880:
ldr r3, =gBattleMons
- ldr r2, =gUnknown_0202420E
+ ldr r2, =gEffectBank
ldrb r1, [r2]
movs r0, 0x58
muls r0, r1
@@ -5123,7 +5123,7 @@ _08048BEA:
str r2, [sp, 0x4]
_08048C26:
ldr r4, =gBattleMons
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r3, [r0]
movs r0, 0x58
adds r2, r3, 0
@@ -5360,7 +5360,7 @@ _08048DFC:
bne _08048E50
bl Random
ldr r2, =gBattleMons
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldrb r3, [r1]
movs r1, 0x58
muls r3, r1
@@ -5376,7 +5376,7 @@ _08048DFC:
.pool
_08048E50:
ldr r2, =gBattleMons
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r1, [r0]
movs r0, 0x58
muls r1, r0
@@ -5395,7 +5395,7 @@ _08048E64:
ldr r0, [r0]
str r0, [r2]
ldr r4, =gActiveBank
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldrb r0, [r1]
strb r0, [r4]
ldrb r1, [r1]
@@ -5408,9 +5408,9 @@ _08048E64:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r2, =gHitMarker
ldr r1, [r2]
movs r0, 0x80
@@ -5777,7 +5777,7 @@ _0804925A:
strb r0, [r4, 0x3]
movs r0, 0
movs r1, 0
- bl sub_8048760
+ bl SetMoveEffect
b _080499B2
.pool
_0804927C:
@@ -6131,7 +6131,7 @@ _080495A8:
ands r0, r1
cmp r0, 0
bne _080495D4
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x29
adds r0, r4, r0
ldrb r1, [r0]
@@ -6242,10 +6242,10 @@ _0804967C:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
mov r2, r10
ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r7]
strb r0, [r4]
ldrb r0, [r7]
@@ -6260,9 +6260,9 @@ _0804967C:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -6368,9 +6368,9 @@ _080497C2:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -6500,7 +6500,7 @@ _08049900:
movs r5, 0
movs r1, 0
strh r1, [r0, 0x2E]
- ldr r2, =gUnknown_020243D0
+ ldr r2, =gWishFutureKnock
adds r2, 0x29
adds r2, r4, r2
ldr r3, =gBitTable
@@ -6568,7 +6568,7 @@ _080499B8:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8048760
+ thumb_func_end SetMoveEffect
thumb_func_start atk15_seteffectwithchancetarget
atk15_seteffectwithchancetarget: @ 80499D4
@@ -6646,13 +6646,13 @@ _08049A50:
_08049A7E:
movs r0, 0
movs r1, 0x80
- bl sub_8048760
+ bl SetMoveEffect
b _08049AA2
.pool
_08049A90:
movs r0, 0
movs r1, 0
- bl sub_8048760
+ bl SetMoveEffect
b _08049AA2
_08049A9A:
ldr r1, =gBattlescriptCurrInstr
@@ -6676,7 +6676,7 @@ atk16_seteffectprimary: @ 8049AC0
push {lr}
movs r0, 0x1
movs r1, 0
- bl sub_8048760
+ bl SetMoveEffect
pop {r0}
bx r0
thumb_func_end atk16_seteffectprimary
@@ -6686,7 +6686,7 @@ atk17_seteffectsecondary: @ 8049AD0
push {lr}
movs r0, 0
movs r1, 0
- bl sub_8048760
+ bl SetMoveEffect
pop {r0}
bx r0
thumb_func_end atk17_seteffectsecondary
@@ -7006,9 +7006,9 @@ _08049D34:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattleTextBuff1
movs r0, 0xFD
strb r0, [r1]
@@ -7066,7 +7066,7 @@ atk1A_faint_animation: @ 8049E40
movs r0, 0
bl dp01_build_cmdbuf_x0A_A_A_A
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -7122,9 +7122,9 @@ _08049EB4:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08049EDC:
bl sub_803A75C
ldr r1, =gBattlescriptCurrInstr
@@ -7665,7 +7665,7 @@ atk23_getexp: @ 804A32C
ldr r0, [r0]
ldrb r0, [r0, 0x1]
bl get_battle_side_of_something
- ldr r1, =gUnknown_0202420D
+ ldr r1, =gBank1
strb r0, [r1]
ldr r2, =gUnknown_020243FE
movs r1, 0x2
@@ -7697,7 +7697,7 @@ _0804A38C:
.4byte _0804AC40
.4byte _0804AC88
_0804A3A8:
- ldr r4, =gUnknown_0202420D
+ ldr r4, =gBank1
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -7792,7 +7792,7 @@ _0804A486:
ble _0804A418
ldr r3, =gBaseStats
ldr r2, =gBattleMons
- ldr r0, =gUnknown_0202420D
+ ldr r0, =gBank1
ldrb r1, [r0]
movs r0, 0x58
muls r1, r0
@@ -8183,7 +8183,7 @@ _0804A78E:
ldr r1, =gPlayerParty
adds r0, r1
ldr r3, =gBattleMons
- ldr r1, =gUnknown_0202420D
+ ldr r1, =gBank1
ldrb r2, [r1]
movs r1, 0x58
muls r1, r2
@@ -8299,7 +8299,7 @@ _0804A85A:
movs r0, 0
bl dp01_build_cmdbuf_x19_a_bb
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804A92A:
ldr r1, =gBattleScripting
ldrb r0, [r1, 0x1C]
@@ -8672,7 +8672,7 @@ _0804AC88:
cmp r5, 0
bne _0804ACB2
ldr r4, =gBattleMons
- ldr r2, =gUnknown_0202420D
+ ldr r2, =gBank1
ldrb r0, [r2]
movs r1, 0x58
muls r0, r1
@@ -9941,7 +9941,7 @@ _0804B624:
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x2
@@ -10192,7 +10192,7 @@ _0804B822:
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r4]
adds r0, 0x7
str r0, [r4]
@@ -10235,7 +10235,7 @@ _0804B894:
movs r0, 0
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x7
_0804B8A8:
@@ -10291,7 +10291,7 @@ _0804B8FA:
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0xA
@@ -10333,7 +10333,7 @@ _0804B960:
movs r0, 0
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r6]
_0804B972:
adds r0, 0xA
@@ -10613,7 +10613,7 @@ _0804BB6C:
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, =gBattlescriptCurrInstr
ldr r0, [r0]
ldrb r1, [r0, 0x3]
@@ -10720,7 +10720,7 @@ _0804BC68:
movs r1, 0x1
bl dp01_build_cmdbuf_x33_a_33_33
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804C15A
.pool
_0804BC80:
@@ -10730,7 +10730,7 @@ _0804BC80:
movs r1, 0
bl dp01_build_cmdbuf_x33_a_33_33
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r1, [r6]
lsls r1, 2
adds r1, r5
@@ -10986,9 +10986,9 @@ _0804BEBA:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
bl b_movescr_stack_push_cursor
ldr r1, =gBattlescriptCurrInstr
ldr r0, =gUnknown_082DB282
@@ -11177,7 +11177,7 @@ _0804C088:
movs r0, 0x3
movs r1, 0
movs r2, 0
- bl berry_effects_maybe
+ bl ItemBattleEffects
lsls r0, 24
cmp r0, 0
beq _0804C184
@@ -11191,7 +11191,7 @@ _0804C0A8:
movs r0, 0x4
movs r1, 0
movs r2, 0
- bl berry_effects_maybe
+ bl ItemBattleEffects
_0804C0B2:
lsls r0, 24
cmp r0, 0
@@ -11254,7 +11254,7 @@ _0804C120:
movs r1, 0
bl dp01_build_cmdbuf_x33_a_33_33
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, =gStatuses3
ldrb r2, [r5]
lsls r2, 2
@@ -12061,7 +12061,7 @@ atk4B_return_atk_to_ball: @ 804C844
movs r1, 0
bl dp01_build_cmdbuf_x06_a
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804C872:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -12108,7 +12108,7 @@ atk4C_copy_poke_data: @ 804C894
movs r1, 0
bl dp01_build_cmdbuf_x00_a_b_0
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -12206,7 +12206,7 @@ _0804C93E:
bl GetBankSide
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x29
adds r0, r2, r0
ldrb r1, [r0]
@@ -12401,7 +12401,7 @@ _0804CB3E:
movs r0, 0
bl dp01_build_cmdbuf_x05_a_b_c
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r4]
adds r0, 0x3
str r0, [r4]
@@ -12864,7 +12864,7 @@ sub_804CF10: @ 804CF10
movs r3, 0
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -12959,7 +12959,7 @@ _0804CFE2:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D098
.pool
_0804D054:
@@ -12992,7 +12992,7 @@ _0804D088:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D098:
ldrb r0, [r4]
adds r0, 0x1
@@ -13049,7 +13049,7 @@ _0804D0B8:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D170
.pool
_0804D120:
@@ -13085,7 +13085,7 @@ _0804D15C:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
movs r0, 0x1
mov r9, r0
_0804D170:
@@ -13128,7 +13128,7 @@ _0804D170:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D22E
.pool
_0804D1D8:
@@ -13169,7 +13169,7 @@ _0804D214:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D22E:
ldr r6, =gBitTable
ldr r0, [r6, 0x4]
@@ -13206,7 +13206,7 @@ _0804D22E:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D2E4
.pool
_0804D290:
@@ -13242,7 +13242,7 @@ _0804D2CC:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
movs r0, 0x2
mov r2, r9
orrs r2, r0
@@ -13287,7 +13287,7 @@ _0804D2E4:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D3A2
.pool
_0804D34C:
@@ -13328,7 +13328,7 @@ _0804D388:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D3A2:
ldr r1, =gSpecialStatuses
ldrb r0, [r1]
@@ -13365,7 +13365,7 @@ _0804D3E8:
bl sub_8034464
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D3FA:
ldr r1, =gSpecialStatuses
ldrb r0, [r1, 0x14]
@@ -13402,7 +13402,7 @@ _0804D43C:
bl sub_8034464
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D450:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -13471,7 +13471,7 @@ _0804D482:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D52A
.pool
_0804D4F8:
@@ -13542,7 +13542,7 @@ _0804D52A:
movs r0, 0
bl dp01_build_cmdbuf_x2A_2A_2A_2A
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804D5DA
.pool
_0804D5A8:
@@ -13585,7 +13585,7 @@ _0804D5F8:
ldr r0, =gHitMarker
ldr r0, [r0]
lsrs r5, r0, 28
- ldr r1, =gUnknown_0202420D
+ ldr r1, =gBank1
movs r0, 0
strb r0, [r1]
ldr r4, =gBitTable
@@ -13731,7 +13731,7 @@ _0804D6E0:
movs r3, 0
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r6]
adds r0, 0x6
str r0, [r6]
@@ -13770,7 +13770,7 @@ _0804D77C:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D792:
ldrb r0, [r4]
adds r0, 0x1
@@ -13812,7 +13812,7 @@ _0804D7F4:
movs r2, 0
bl sub_8034464
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804D804:
add sp, 0x4
pop {r3,r4}
@@ -14340,7 +14340,7 @@ _0804DC88:
ldrb r1, [r5]
movs r0, 0
movs r2, 0
- bl berry_effects_maybe
+ bl ItemBattleEffects
lsls r0, 24
cmp r0, 0
bne _0804DD8E
@@ -14414,7 +14414,7 @@ _0804DD0C:
ldr r0, =gHitMarker
ldr r0, [r0]
lsrs r4, r0, 28
- ldr r1, =gUnknown_0202420D
+ ldr r1, =gBank1
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -14471,7 +14471,7 @@ atk53_trainer_slide: @ 804DDA8
movs r0, 0
bl dp01_build_cmdbuf_x08_8_8_8
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -14497,7 +14497,7 @@ atk54_effectiveness_sound: @ 804DDD8
movs r0, 0
bl dp01_build_cmdbuf_x2B_aa_0
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r4]
adds r0, 0x3
str r0, [r4]
@@ -14524,7 +14524,7 @@ atk55_play_sound: @ 804DE14
movs r2, 0
bl sub_8034300
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r4]
adds r0, 0x3
str r0, [r4]
@@ -14546,7 +14546,7 @@ atk56_fainting_cry: @ 804DE50
movs r0, 0
bl dp01_build_cmdbuf_x2D_2D_2D_2D
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -14568,7 +14568,7 @@ atk57: @ 804DE80
movs r0, 0
bl dp01_build_cmdbuf_x37_a
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
@@ -14592,7 +14592,7 @@ atk58_return_to_ball: @ 804DEB8
movs r1, 0x1
bl dp01_build_cmdbuf_x06_a
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -15327,7 +15327,7 @@ _0804E55A:
bl dp01_build_cmdbuf_x29_29_29_29
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x2
@@ -15596,7 +15596,7 @@ _0804E794:
movs r2, 0
bl dp01_build_cmdbuf_x00_a_b_0
ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
@@ -15786,7 +15786,7 @@ _0804E926:
bl dp01_build_cmdbuf_x30_TODO
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x2
@@ -15813,7 +15813,7 @@ atk62_08025C6C: @ 804E960
movs r0, 0
bl dp01_build_cmdbuf_x31_31_31_31
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -15911,7 +15911,7 @@ atk64_statusanimation: @ 804E9F4
movs r1, 0
bl dp01_build_cmdbuf_x1B_aaaa_b
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804EA54:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -15982,7 +15982,7 @@ atk65_status2animation: @ 804EA84
movs r1, 0x1
bl dp01_build_cmdbuf_x1B_aaaa_b
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804EAFC:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -16046,7 +16046,7 @@ atk66_chosenstatusanimation: @ 804EB2C
movs r0, 0
bl dp01_build_cmdbuf_x1B_aaaa_b
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804EB96:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -16392,9 +16392,9 @@ atk6A_removeitem: @ 804EE58
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
@@ -17139,7 +17139,7 @@ atk6F_set_visible: @ 804F50C
movs r1, 0
bl dp01_build_cmdbuf_x33_a_33_33
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -17208,7 +17208,7 @@ atk71_buffer_move_to_learn: @ 804F59C
thumb_func_start atk72_jump_if_can_run_frombattle
atk72_jump_if_can_run_frombattle: @ 804F5B4
push {lr}
- ldr r0, =gUnknown_0202420D
+ ldr r0, =gBank1
ldrb r0, [r0]
bl sub_803EC20
lsls r0, 24
@@ -17905,7 +17905,7 @@ _0804FC18:
bl sub_8033E10
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804FD70
.pool
_0804FC2C:
@@ -17969,7 +17969,7 @@ _0804FCA2:
movs r1, 0
bl dp01_build_cmdbuf_x06_a
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _0804FD70
.pool
_0804FCC4:
@@ -18038,7 +18038,7 @@ _0804FD5C:
bl sub_8034300
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_0804FD70:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -18253,7 +18253,7 @@ _0804FF14:
movs r0, 0
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
@@ -18340,9 +18340,9 @@ atk79_setatkhptozero: @ 804FFE4
movs r1, 0x2A
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
@@ -18672,7 +18672,7 @@ _080502F4:
strh r0, [r2]
ldr r0, =gBattleCommunication
strb r1, [r0, 0x5]
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x28
movs r1, 0x5
strb r1, [r0]
@@ -19010,9 +19010,9 @@ _080505B8:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x5
@@ -19072,8 +19072,8 @@ atk83_nop: @ 8050640
.pool
thumb_func_end atk83_nop
- thumb_func_start sub_8050650
-sub_8050650: @ 8050650
+ thumb_func_start UproarWakeUpCheck
+UproarWakeUpCheck: @ 8050650
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -19148,7 +19148,7 @@ _080506E2:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8050650
+ thumb_func_end UproarWakeUpCheck
thumb_func_start atk84_jump_if_cant_sleep
atk84_jump_if_cant_sleep: @ 80506EC
@@ -19167,7 +19167,7 @@ atk84_jump_if_cant_sleep: @ 80506EC
orrs r4, r0
ldr r6, =gBankTarget
ldrb r0, [r6]
- bl sub_8050650
+ bl UproarWakeUpCheck
lsls r0, 24
cmp r0, 0
beq _08050720
@@ -20133,7 +20133,7 @@ atk8B_setbide: @ 8050F40
ldrh r1, [r1]
movs r2, 0
strh r1, [r0]
- ldr r1, =gUnknown_020241F8
+ ldr r1, =gTakenDmg
ldrb r0, [r3]
lsls r0, 2
adds r0, r1
@@ -21477,7 +21477,7 @@ _08051AEC:
ldr r1, =gBattleCommunication
movs r0, 0x3
strb r0, [r1, 0x5]
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x28
movs r1, 0x5
strb r1, [r0]
@@ -21878,7 +21878,7 @@ atk98_status_icon_update: @ 8051E48
movs r0, 0
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
@@ -21912,7 +21912,7 @@ _08051EA0:
movs r0, 0
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08051EDC:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -21949,7 +21949,7 @@ _08051EDC:
movs r0, 0
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08051F2C:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -22251,7 +22251,7 @@ _080521CA:
bl dp01_build_cmdbuf_x38_a
mov r2, r8
ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattleCommunication
movs r0, 0
_080521EC:
@@ -23769,10 +23769,10 @@ _08052E7A:
movs r1, 0x3
movs r2, 0
movs r3, 0x10
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattleTextBuff1
movs r0, 0xFD
strb r0, [r1]
@@ -24378,9 +24378,9 @@ _08053304:
movs r0, 0
movs r2, 0
movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_080533B8:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -24723,9 +24723,9 @@ _080536BC:
movs r0, 0
movs r1, 0x28
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_080536DE:
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -25708,7 +25708,7 @@ _08053F2A:
lsls r0, 31
cmp r0, 0
bne _08054030
- ldr r0, =gUnknown_02024274
+ ldr r0, =gChosenMovesByBanks
lsls r1, r3, 1
adds r1, r0
ldrh r0, [r1]
@@ -25824,7 +25824,7 @@ _08054088:
ldr r1, =gBattleCommunication
movs r0, 0x4
strb r0, [r1, 0x5]
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x28
movs r1, 0x5
strb r1, [r0]
@@ -26413,7 +26413,7 @@ atkC3_setfutureattack: @ 8054598
mov r5, r8
push {r5-r7}
sub sp, 0x14
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
mov r8, r0
ldr r6, =gBankTarget
ldrb r1, [r6]
@@ -26965,7 +26965,7 @@ _08054A78:
ldr r0, =gBattleCommunication
movs r1, 0x5
strb r1, [r0, 0x5]
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x28
strb r1, [r0]
_08054A86:
@@ -27031,7 +27031,7 @@ _08054AF4:
movs r0, 0
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x5
@@ -27202,9 +27202,9 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8054C60
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
b _08054CD6
.pool
_08054CBC:
@@ -27492,7 +27492,7 @@ _08054EE8:
ands r0, r1
cmp r0, 0
bne _08054F46
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r2, r0, 0
adds r2, 0x29
adds r0, r4, r2
@@ -27633,10 +27633,10 @@ _08055010:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldr r1, =gBankAttacker
ldrb r0, [r1]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r7]
strb r0, [r4]
ldrb r0, [r7]
@@ -27649,9 +27649,9 @@ _08055010:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldrb r0, [r7]
mov r2, r10
ldr r1, [r2]
@@ -27813,7 +27813,7 @@ atkD4_wish_effect: @ 80551C0
b _0805528C
.pool
_080551D8:
- ldr r1, =gUnknown_020243D0
+ ldr r1, =gWishFutureKnock
ldr r4, =gBankAttacker
adds r0, r1, 0
adds r0, 0x20
@@ -27845,7 +27845,7 @@ _08055210:
ldr r4, =gBankTarget
ldrb r0, [r4]
strb r0, [r1, 0x2]
- ldr r0, =gUnknown_020243D0
+ ldr r0, =gWishFutureKnock
adds r0, 0x24
ldrb r5, [r4]
adds r0, r5
@@ -28875,9 +28875,9 @@ atkE2_switchout_abilities: @ 8055A78
movs r0, 0
movs r1, 0x28
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08055AD2:
ldr r0, [r5]
adds r0, 0x2
@@ -29276,7 +29276,7 @@ _08055E2C:
movs r1, 0
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
@@ -29296,12 +29296,12 @@ atkE7_castform_data_change: @ 8055E64
str r0, [r1]
ldr r0, =gBattleScripting
ldrb r0, [r0, 0x17]
- bl castform_switch
+ bl CastformDataTypeChange
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08055E8E
- ldr r0, =gUnknown_082DB4A9
+ ldr r0, =BattleScript_CastformChange
bl b_push_move_exec
ldr r0, =gBattleStruct
ldr r0, [r0]
@@ -29529,9 +29529,9 @@ atkEA_recycleitem: @ 8056014
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x5
@@ -29676,7 +29676,7 @@ atkEC_pursuit_sth: @ 805616C
ldrb r0, [r0]
cmp r0, 0
bne _0805620C
- ldr r1, =gUnknown_02024274
+ ldr r1, =gChosenMovesByBanks
lsls r0, r3, 1
adds r0, r1
ldrh r2, [r0]
@@ -29725,7 +29725,7 @@ _08056226:
thumb_func_start atkED_802B4B4
atkED_802B4B4: @ 8056230
push {r4,lr}
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldr r3, =gBankAttacker
ldrb r0, [r3]
strb r0, [r1]
@@ -29841,7 +29841,7 @@ _0805630E:
movs r1, 0x5
bl dp01_build_cmdbuf_x0D_a
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, =gUnknown_082DBE02
b _08056694
@@ -29856,7 +29856,7 @@ _0805635C:
movs r1, 0x4
bl dp01_build_cmdbuf_x0D_a
ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, =gUnknown_082DBDCA
b _08056694
@@ -30082,7 +30082,7 @@ _08056564:
bl dp01_build_cmdbuf_x0D_a
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r1, =gBattlescriptCurrInstr
ldr r0, =gUnknown_082DBD84
str r0, [r1]
@@ -30148,7 +30148,7 @@ _08056614:
bl dp01_build_cmdbuf_x0D_a
ldr r0, =gActiveBank
ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
cmp r4, 0x4
bne _0805668C
ldr r1, =gBattlescriptCurrInstr
@@ -31146,7 +31146,7 @@ sub_8056EF8: @ 8056EF8
movs r0, 0
bl dp01_build_cmdbuf_x09_9_9_9
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
ldr r0, [r5]
adds r0, 0x2
str r0, [r5]
diff --git a/asm/battle_5.s b/asm/battle_5.s
index 064171dd8..3db603531 100644
--- a/asm/battle_5.s
+++ b/asm/battle_5.s
@@ -398,7 +398,7 @@ _0805729A:
cmp r0, 0
beq _08057372
mov r0, r9
- bl sub_8050650
+ bl UproarWakeUpCheck
lsls r0, 24
cmp r0, 0
beq _080572FC
@@ -419,7 +419,7 @@ _0805729A:
mov r2, r10
strb r0, [r2, 0x5]
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
+ ldr r0, =BattleScript_MoveUsedWokeUp
str r0, [r1]
movs r0, 0x2
mov r8, r0
@@ -461,7 +461,7 @@ _08057322:
cmp r4, 0
beq _08057354
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB213
+ ldr r0, =BattleScript_MoveUsedIsAsleep
str r0, [r1]
movs r1, 0x2
mov r8, r1
@@ -478,7 +478,7 @@ _08057354:
ldr r0, =gBattleCommunication
strb r4, [r0, 0x5]
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
+ ldr r0, =BattleScript_MoveUsedWokeUp
str r0, [r1]
movs r2, 0x2
mov r8, r2
@@ -513,7 +513,7 @@ _08057390:
cmp r5, 0
beq _080573D4
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB26A
+ ldr r0, =BattleScript_MoveUsedIsFrozen
str r0, [r1]
b _080573EC
.pool
@@ -525,7 +525,7 @@ _080573D4:
str r0, [r4]
bl b_movescr_stack_push_cursor
ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB277
+ ldr r0, =BattleScript_MoveUsedUnfroze
str r0, [r1]
mov r0, r10
strb r5, [r0, 0x5]
@@ -562,9 +562,9 @@ _08057406:
movs r1, 0x28
movs r2, 0
movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
+ bl EmitSetAttributes
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
_08057430:
mov r0, r8
add sp, 0x4
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index fc2c36fc8..f35b2f7da 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -50069,7 +50069,7 @@ sub_8117E94: @ 8117E94
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gAnimationBankTarget
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
bl move_anim_task_del
@@ -50136,7 +50136,7 @@ sub_8117F30: @ 8117F30
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gAnimationBankTarget
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
bl move_anim_task_del
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index c64dd69e5..abbca8ff7 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -5069,7 +5069,7 @@ sub_8172ED0: @ 8172ED0
lsls r0, 24
lsrs r0, 24
ldr r2, =gAnimationBankTarget
- ldr r1, =gUnknown_0202420E
+ ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
bl move_anim_task_del
diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s
index 8bb1971c4..2661d4667 100644
--- a/asm/battle_dome_cards.s
+++ b/asm/battle_dome_cards.s
@@ -1277,5 +1277,4 @@ _0818D9A2:
bx r1
.pool
thumb_func_end sub_818D97C
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s
index a08d34cad..94ae7ad7f 100644
--- a/asm/battle_link_817C95C.s
+++ b/asm/battle_link_817C95C.s
@@ -44,7 +44,7 @@ _0817C988:
bl GetBankSide
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -145,7 +145,7 @@ _0817CA9C:
bl GetBankIdentity
lsls r0, 24
lsrs r5, r0, 25
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r0, [r0]
bl GetBankIdentity
lsls r0, 24
@@ -1302,7 +1302,7 @@ _0817D6F2:
bl _0817E0A6
_0817D704:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
@@ -1396,7 +1396,7 @@ _0817D7B2:
.pool
_0817D7D8:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
@@ -1440,7 +1440,7 @@ _0817D7D8:
.pool
_0817D838:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
@@ -1628,7 +1628,7 @@ _0817D9AE:
b _0817E086
_0817D9C2:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
@@ -1703,7 +1703,7 @@ _0817DA48:
.pool
_0817DA68:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
@@ -1791,7 +1791,7 @@ _0817DB10:
.pool
_0817DB24:
ldr r5, =gBattlePartyID
- ldr r6, =gUnknown_0202420E
+ ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 60051a8f5..ef5ecbf9c 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -1349,7 +1349,7 @@ _0814ED5E:
bl _0814F5BE
.pool
_0814ED70:
- ldr r5, =gUnknown_0202420E
+ ldr r5, =gEffectBank
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -1695,7 +1695,7 @@ _0814F0A8:
.pool
_0814F0B8:
ldr r1, =gAbilitiesPerBank
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
_0814F0BC:
ldrb r0, [r0]
_0814F0BE:
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index 9709fb54f..6406a3f24 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, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
_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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
movs r2, 0
ldrsh r1, [r5, r2]
movs r3, 0x4
diff --git a/asm/bike.s b/asm/bike.s
index 22d52c0fa..7ea4a4598 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -15,7 +15,7 @@ MovePlayerOnBike: @ 8119164
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -72,7 +72,7 @@ CheckMovementInputMachBike: @ 81191CC
cmp r1, 0
bne _081191F4
strb r0, [r4]
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r0, [r2, 0xB]
cmp r0, 0
bne _08119208
@@ -81,7 +81,7 @@ CheckMovementInputMachBike: @ 81191CC
b _0811921C
.pool
_081191F4:
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
cmp r1, r3
beq _08119218
ldrb r0, [r2, 0x2]
@@ -126,7 +126,7 @@ sub_8119238: @ 8119238
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -161,7 +161,7 @@ sub_8119280: @ 8119280
lsls r0, 24
lsrs r5, r0, 24
adds r7, r5, 0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -255,7 +255,7 @@ sub_8119344: @ 8119344
lsls r0, 24
lsrs r5, r0, 24
adds r7, r5, 0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0xB]
cmp r0, 0
beq _0811935A
@@ -352,7 +352,7 @@ CheckMovementInputAcroBike: @ 8119400
lsls r2, 16
lsrs r2, 16
ldr r4, =gUnknown_0859749C
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r3, [r3, 0x8]
lsls r3, 2
adds r3, r4
@@ -377,7 +377,7 @@ CheckMovementInputAcroBikeNormal: @ 811942C
bl player_get_direction_upper_nybble
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
movs r0, 0
strb r0, [r2, 0xA]
ldrb r1, [r4]
@@ -417,11 +417,11 @@ _0811946C:
b _081194C0
_0811948A:
ldrb r0, [r4]
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
cmp r0, r3
beq _081194BC
_08119492:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x2]
adds r2, r0, 0
cmp r1, 0x2
@@ -453,7 +453,7 @@ _081194C0:
CheckMovementInputAcroBikeChangingDirection: @ 81194C8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r0, [r4, 0x9]
strb r0, [r5]
ldrb r0, [r4, 0xA]
@@ -520,7 +520,7 @@ CheckMovementInputAcroBikeStandingWheelie: @ 8119540
bl player_get_direction_upper_nybble
lsls r0, 24
lsrs r6, r0, 24
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r1, [r5, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -553,7 +553,7 @@ _08119594:
adds r0, 0x1
strb r0, [r5, 0xA]
_0811959A:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r0, [r1, 0xA]
cmp r0, 0x27
bls _081195B4
@@ -608,7 +608,7 @@ CheckMovementInputAcroBikeBunnyHop: @ 81195E0
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -661,7 +661,7 @@ _08119668:
movs r0, 0x6
b _08119676
_0811966E:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x2
strb r0, [r1, 0x2]
movs r0, 0x7
@@ -693,7 +693,7 @@ CheckMovementInputAcroBikeMovingWheelie: @ 8119688
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -732,7 +732,7 @@ _081196F6:
movs r0, 0x4
b _08119750
_081196FC:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x2
strb r0, [r1, 0x2]
movs r0, 0xC
@@ -770,7 +770,7 @@ _08119736:
movs r0, 0x5
b _08119750
_08119748:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x2
strb r0, [r1, 0x2]
movs r0, 0xA
@@ -797,7 +797,7 @@ CheckMovementInputAcroBikeUnknownMode5: @ 8119764
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -836,7 +836,7 @@ CheckMovementInputAcroBikeUnknownMode6: @ 81197C0
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
movs r3, 0
strb r3, [r4, 0x8]
bl CheckMovementInputAcroBike
@@ -863,7 +863,7 @@ sub_81197F4: @ 81197F4
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -893,7 +893,7 @@ sub_8119830: @ 8119830
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -961,7 +961,7 @@ sub_81198C0: @ 81198C0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -990,7 +990,7 @@ sub_81198FC: @ 81198FC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1019,7 +1019,7 @@ sub_8119938: @ 8119938
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1048,7 +1048,7 @@ sub_8119974: @ 8119974
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1077,7 +1077,7 @@ sub_81199B0: @ 81199B0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1156,7 +1156,7 @@ _08119A50:
bl sub_81197F4
b _08119A84
_08119A58:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -1198,7 +1198,7 @@ sub_8119AA4: @ 8119AA4
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
- ldr r7, =gUnknown_02037590
+ ldr r7, =gPlayerAvatar
ldrb r1, [r7, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1267,7 +1267,7 @@ sub_8119B34: @ 8119B34
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
- ldr r7, =gUnknown_02037590
+ ldr r7, =gPlayerAvatar
ldrb r1, [r7, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1336,7 +1336,7 @@ sub_8119BC4: @ 8119BC4
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1396,7 +1396,7 @@ sub_8119C3C: @ 8119C3C
lsrs r3, r0, 16
lsls r1, 16
lsrs r2, r1, 16
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -1421,7 +1421,7 @@ sub_8119C64: @ 8119C64
bl sub_8119DF8
lsls r0, 24
lsrs r2, r0, 24
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldr r0, [r4, 0xC]
movs r1, 0xF
ands r0, r1
@@ -1443,7 +1443,7 @@ _08119C9A:
movs r0, 0xF
adds r2, r5, 0
ands r2, r0
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldr r0, [r4, 0x10]
movs r1, 0xF
ands r0, r1
@@ -1532,7 +1532,7 @@ sub_8119D30: @ 8119D30
_08119D36:
ldr r0, =gUnknown_085974C0
adds r4, r5, r0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldr r1, [r0, 0xC]
ldr r2, [r0, 0x10]
ldr r0, [r4, 0x8]
@@ -1570,7 +1570,7 @@ _08119D7A:
sub_8119D80: @ 8119D80
push {r4,lr}
lsls r0, 24
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldr r2, [r3, 0xC]
lsls r2, 4
movs r1, 0xF0
@@ -1604,7 +1604,7 @@ _08119D9C:
sub_8119DBC: @ 8119DBC
push {r4,lr}
lsls r0, 24
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldr r2, [r3, 0x10]
lsls r2, 4
movs r1, 0xF0
@@ -1681,7 +1681,7 @@ sub_8119E38: @ 8119E38
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -1922,7 +1922,7 @@ _08119FF2:
sub_8119FF8: @ 8119FF8
push {r4,lr}
sub sp, 0x4
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x18
ands r0, r1
@@ -1966,7 +1966,7 @@ player_should_look_direction_be_enforced_upon_movement: @ 811A044
cmp r0, 0
beq _0811A078
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1996,7 +1996,7 @@ GetOnOffBike: @ 811A080
ldr r1, =gUnknown_02037348
movs r0, 0
strb r0, [r1]
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -2026,7 +2026,7 @@ _0811A0C4:
thumb_func_start sub_811A0D0
sub_811A0D0: @ 811A0D0
push {lr}
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
movs r3, 0
strb r3, [r2, 0x8]
strb r3, [r2, 0x9]
@@ -2064,7 +2064,7 @@ _0811A0FA:
sub_811A114: @ 811A114
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
strb r0, [r2, 0xA]
lsrs r1, r0, 1
adds r0, r1
@@ -2075,7 +2075,7 @@ sub_811A114: @ 811A114
thumb_func_start sub_811A128
sub_811A128: @ 811A128
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0xA]
strb r0, [r1, 0xB]
@@ -2091,7 +2091,7 @@ sub_811A138: @ 811A138
mov r0, sp
movs r2, 0x6
bl memcpy
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -2130,7 +2130,7 @@ _0811A182:
sub_811A188: @ 811A188
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r1, [r5]
movs r0, 0x4
ands r0, r1
diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s
index ceaddbdf0..095b1b793 100644
--- a/asm/braille_puzzles.s
+++ b/asm/braille_puzzles.s
@@ -271,7 +271,7 @@ _0817982E:
sub_8179834: @ 8179834
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -367,7 +367,7 @@ _08179912:
sub_8179918: @ 8179918
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/field_camera.s b/asm/field_camera.s
index cead2954c..35359f444 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -1082,7 +1082,7 @@ CameraPanningCB_PanAhead: @ 808A360
b _0808A3FC
.pool
_0808A374:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x3]
cmp r0, 0x1
bne _0808A394
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 0e83f4b80..5c515ae3d 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -44,7 +44,7 @@ process_overworld_input: @ 809BF08
lsls r2, 16
lsrs r2, 16
mov r8, r2
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r6, [r0, 0x3]
ldrb r0, [r0, 0x2]
mov r9, r0
@@ -567,7 +567,7 @@ _0809C32E:
.pool
_0809C33C:
movs r4, 0
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
_0809C340:
ldrb r0, [r1]
cmp r0, 0x1
@@ -1368,7 +1368,7 @@ _0809CA04:
bl sub_80B215C
bl AdjustFriendship_step
bl sub_81D4998
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
diff --git a/asm/field_effect.s b/asm/field_effect.s
index c40098993..08670f556 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -2033,7 +2033,7 @@ mapldr_08084390: @ 80B6AA4
movs r1, 0
bl CreateTask
ldr r4, =gMapObjects
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2163,7 +2163,7 @@ sub_80B6BCC: @ 80B6BCC
mov r5, r8
push {r5,r6}
mov r9, r0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0x5]
lsls r5, r0, 3
adds r5, r0
@@ -2256,7 +2256,7 @@ _080B6C88:
sub_80B6C90: @ 80B6C90
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0x4]
lsls r2, r0, 4
adds r2, r0
@@ -2309,7 +2309,7 @@ sub_80B6C90: @ 80B6C90
sub_80B6D04: @ 80B6D04
push {r4-r6,lr}
adds r4, r0, 0
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2454,7 +2454,7 @@ _080B6E0E:
thumb_func_start sub_80B6E18
sub_80B6E18: @ 80B6E18
push {lr}
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
@@ -2551,7 +2551,7 @@ sub_80B6EC0: @ 80B6EC0
sub_80B6EE0: @ 80B6EE0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2664,7 +2664,7 @@ sub_80B6FA8: @ 80B6FA8
sub_80B6FB8: @ 80B6FB8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -2702,7 +2702,7 @@ _080B6FF6:
sub_80B7004: @ 80B7004
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -2828,7 +2828,7 @@ sub_80B7114: @ 80B7114
sub sp, 0x4
adds r5, r0, 0
bl CameraObjectReset2
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -2883,7 +2883,7 @@ _080B717E:
sub_80B7190: @ 80B7190
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -2914,7 +2914,7 @@ sub_80B7190: @ 80B7190
sub_80B71D0: @ 80B71D0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -2962,7 +2962,7 @@ _080B721E:
sub_80B7230: @ 80B7230
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -2993,7 +2993,7 @@ sub_80B7230: @ 80B7230
sub_80B7270: @ 80B7270
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3063,7 +3063,7 @@ _080B72EE:
thumb_func_start sub_80B72F4
sub_80B72F4: @ 80B72F4
push {r4,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -3111,7 +3111,7 @@ oei_waterfall: @ 80B734C
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
ldr r2, [r2]
strh r2, [r1, 0xA]
bl _call_via_r4
@@ -3138,7 +3138,7 @@ _080B7396:
ldrsh r2, [r4, r0]
lsls r2, 2
adds r2, r5
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r1, r0, 3
adds r1, r0
@@ -3162,7 +3162,7 @@ sub_80B73D0: @ 80B73D0
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrh r0, [r4, 0x8]
@@ -3188,7 +3188,7 @@ waterfall_1_do_anim_probably: @ 80B73F0
bne _080B7420
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3268,7 +3268,7 @@ _080B748E:
cmp r4, 0
bne _080B74C4
bl ScriptContext2_Disable
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
strb r4, [r0, 0x6]
ldr r0, =sub_80B7384
bl FindTaskIdByFunc
@@ -3304,7 +3304,7 @@ sub_80B74D0: @ 80B74D0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
ldr r2, [r3]
strh r2, [r1, 0x26]
ldr r2, [r3, 0x4]
@@ -3347,7 +3347,7 @@ _080B751E:
thumb_func_start dive_1_lock
dive_1_lock: @ 80B7544
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
movs r1, 0x1
strb r1, [r2, 0x6]
ldrh r1, [r0, 0x8]
@@ -3363,7 +3363,7 @@ dive_2_unknown: @ 80B7558
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x26
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3393,7 +3393,7 @@ dive_3_unknown: @ 80B7580
cmp r0, 0
bne _080B75C4
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -3437,7 +3437,7 @@ sub_80B75F0: @ 80B75F0
lsrs r0, 24
ldr r6, =gUnknown_0855C438
ldr r2, =gTasks
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
@@ -3480,7 +3480,7 @@ sub_80B764C: @ 80B764C
bl CameraObjectReset2
movs r0, 0
bl SetCameraPanningCallback
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
movs r2, 0x1
strb r2, [r0, 0x6]
ldrb r0, [r5, 0x3]
@@ -3536,7 +3536,7 @@ sub_80B76B8: @ 80B76B8
strh r0, [r2, 0x26]
movs r0, 0x1
strh r0, [r4, 0xE]
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r5, 0x10
ldrsh r0, [r1, r5]
str r0, [r3]
@@ -3767,7 +3767,7 @@ sub_80B7890: @ 80B7890
lsrs r0, 24
ldr r6, =gUnknown_0855C450
ldr r2, =gTasks
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
@@ -3808,7 +3808,7 @@ sub_80B78EC: @ 80B78EC
adds r4, r1, 0
bl CameraObjectReset2
bl player_bitmagic
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrb r0, [r4, 0x1]
@@ -3835,7 +3835,7 @@ sub_80B791C: @ 80B791C
lsls r0, 24
cmp r0, 0
beq _080B795C
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -3915,7 +3915,7 @@ sub_80B79BC: @ 80B79BC
lsls r0, 24
cmp r0, 0
beq _080B79E6
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
@@ -3935,7 +3935,7 @@ _080B79E6:
thumb_func_start sub_80B79F4
sub_80B79F4: @ 80B79F4
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -4016,7 +4016,7 @@ sub_80B7A8C: @ 80B7A8C
lsrs r0, 24
ldr r6, =gUnknown_0855C460
ldr r2, =gTasks
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
@@ -4057,7 +4057,7 @@ sub_80B7AE8: @ 80B7AE8
adds r4, r1, 0
bl player_bitmagic
bl CameraObjectReset2
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrb r0, [r4, 0x3]
@@ -4090,7 +4090,7 @@ sub_80B7B18: @ 80B7B18
ldrsh r0, [r5, r2]
cmp r0, 0x3
ble _080B7B6C
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -4359,7 +4359,7 @@ sub_80B7D34: @ 80B7D34
bl music_something
bl sub_80AF0B4
_080B7D60:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4466,7 +4466,7 @@ mapldr_080859D4: @ 80B7E48
movs r0, 0
str r0, [r1]
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4537,7 +4537,7 @@ sub_80B7EE8: @ 80B7EE8
mov r0, sp
movs r2, 0x5
bl memcpy
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4695,7 +4695,7 @@ sub_80B8034: @ 80B8034
mov r0, sp
movs r2, 0x5
bl memcpy
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4765,7 +4765,7 @@ sub_80B80C4: @ 80B80C4
mov r0, sp
movs r2, 0x5
bl memcpy
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4911,7 +4911,7 @@ mapldr_08085D88: @ 80B8200
movs r0, 0
str r0, [r1]
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4961,7 +4961,7 @@ sub_80B8280: @ 80B8280
lsls r0, 24
cmp r0, 0
beq _080B82F6
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x4]
lsls r2, r0, 4
adds r2, r0
@@ -5027,7 +5027,7 @@ sub_80B830C: @ 80B830C
mov r0, sp
movs r2, 0x5
bl memcpy
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -5156,7 +5156,7 @@ sub_80B8410: @ 80B8410
mov r0, sp
movs r2, 0x5
bl memcpy
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -5229,7 +5229,7 @@ _080B84BE:
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldr r0, [r5]
movs r6, 0x80
lsls r6, 24
@@ -6292,7 +6292,7 @@ sub_80B8D44: @ 80B8D44
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0]
strh r0, [r1, 0x26]
bl sav1_reset_battle_music_maybe
@@ -6335,7 +6335,7 @@ sub_80B8DB4: @ 80B8DB4
adds r4, r0, 0
bl ScriptContext2_Enable
bl player_bitmagic
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
movs r0, 0x8
@@ -6374,7 +6374,7 @@ sub_80B8DB4: @ 80B8DB4
sub_80B8E14: @ 80B8E14
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6410,7 +6410,7 @@ _080B8E50:
sub_80B8E60: @ 80B8E60
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6421,7 +6421,7 @@ sub_80B8E60: @ 80B8E60
lsls r0, 24
cmp r0, 0
beq _080B8E96
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x26
ldrsh r0, [r4, r1]
movs r1, 0x80
@@ -6449,7 +6449,7 @@ sub_80B8EA8: @ 80B8EA8
lsls r0, 24
cmp r0, 0
bne _080B8F12
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -6473,7 +6473,7 @@ sub_80B8EA8: @ 80B8EA8
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r6, r2]
str r0, [r1]
@@ -6498,7 +6498,7 @@ _080B8F12:
thumb_func_start sub_80B8F24
sub_80B8F24: @ 80B8F24
push {r4,r5,lr}
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r1, [r5, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6704,7 +6704,7 @@ sub_80B90CC: @ 80B90CC
strb r0, [r2, 0x5]
ldr r0, =sub_80B9128
str r0, [r2, 0x1C]
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0]
strh r0, [r1, 0xA]
movs r0, 0
@@ -6829,7 +6829,7 @@ sub_80B91D4: @ 80B91D4
sub_80B9204: @ 80B9204
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6870,7 +6870,7 @@ _080B924C:
sub_80B925C: @ 80B925C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6884,7 +6884,7 @@ sub_80B925C: @ 80B925C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -6906,7 +6906,7 @@ sub_80B92A0: @ 80B92A0
lsls r0, 24
cmp r0, 0
bne _080B92E8
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6955,7 +6955,7 @@ sub_80B92F8: @ 80B92F8
strh r0, [r4, 0xC]
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -6975,7 +6975,7 @@ _080B932C:
sub_80B933C: @ 80B933C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7023,7 +7023,7 @@ sub_80B9390: @ 80B9390
asrs r0, 16
cmp r0, 0x7
ble _080B9406
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7087,7 +7087,7 @@ sub_80B9418: @ 80B9418
asrs r0, 16
cmp r0, 0x9
ble _080B9464
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -7582,7 +7582,7 @@ sub_80B97D4: @ 80B97D4
sub_80B9804: @ 80B9804
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7673,7 +7673,7 @@ sub_80B98B8: @ 80B98B8
cmp r0, 0
bne _080B9910
_080B98D0:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7720,7 +7720,7 @@ sub_80B9924: @ 80B9924
mov r0, sp
movs r2, 0x24
bl memcpy
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r1, r0, 4
adds r1, r0
@@ -7760,7 +7760,7 @@ sub_80B9978: @ 80B9978
lsls r0, 24
cmp r0, 0
beq _080B99DC
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r5, r0, 3
adds r5, r0
@@ -7810,7 +7810,7 @@ _080B99DC:
sub_80B99F0: @ 80B99F0
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7872,7 +7872,7 @@ sub_80B9A60: @ 80B9A60
lsls r0, 16
cmp r0, 0
bne _080B9ACA
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -7922,7 +7922,7 @@ _080B9ACA:
sub_80B9ADC: @ 80B9ADC
push {r4,lr}
sub sp, 0x4
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
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 69c67672c..76ba35fd2 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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -827,7 +827,7 @@ unc_grass_normal: @ 8154550
lsrs r4, r0, 8
lsls r0, 24
lsrs r7, r0, 24
- ldr r3, =gUnknown_02037334
+ ldr r3, =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -951,7 +951,7 @@ _08154648:
thumb_func_start sub_8154658
sub_8154658: @ 8154658
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -1166,7 +1166,7 @@ unc_grass_tall: @ 8154800
lsrs r7, r0, 8
lsls r0, 24
lsrs r6, r0, 24
- ldr r3, =gUnknown_02037334
+ ldr r3, =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -1282,7 +1282,7 @@ _081548EA:
thumb_func_start sub_81548FC
sub_81548FC: @ 81548FC
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -2766,7 +2766,7 @@ sub_81554AC: @ 81554AC
ldrsh r1, [r4, r2]
bl CurrentMapDrawMetatileAt
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2809,7 +2809,7 @@ _0815552C:
thumb_func_start sub_8155534
sub_8155534: @ 8155534
push {r4,r5,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4]
adds r0, 0x7
str r0, [r4]
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index e4c6631d4..7d05dbd98 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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
deleted file mode 100644
index 223e29ad7..000000000
--- a/asm/field_map_obj.s
+++ /dev/null
@@ -1,20270 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start npc_clear_ids_and_state
-npc_clear_ids_and_state: @ 808D3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r2, 0x24
- bl memset
- movs r0, 0xFF
- strb r0, [r4, 0x8]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_clear_ids_and_state
-
- thumb_func_start npcs_clear_ids_and_state
-npcs_clear_ids_and_state: @ 808D410
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gMapObjects
-_0808D416:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl npc_clear_ids_and_state
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0808D416
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npcs_clear_ids_and_state
-
- thumb_func_start sub_808D438
-sub_808D438: @ 808D438
- push {lr}
- bl strange_npc_table_clear
- bl npcs_clear_ids_and_state
- bl ClearPlayerAvatarInfo
- bl sub_808D450
- pop {r0}
- bx r0
- thumb_func_end sub_808D438
-
- thumb_func_start sub_808D450
-sub_808D450: @ 808D450
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x54]
- mov r9, r0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r1, [r4, 0x1]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r6, 0x4
- orrs r0, r6
- strb r0, [r4]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r0, [r4, 0x1]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r6
- strb r0, [r4]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808D450
-
- thumb_func_start sub_808D4F4
-sub_808D4F4: @ 808D4F4
- push {lr}
- movs r1, 0
- ldr r2, =gMapObjects
- ldrb r0, [r2]
- b _0808D518
- .pool
-_0808D504:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _0808D51E
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
-_0808D518:
- lsls r0, 31
- cmp r0, 0
- bne _0808D504
-_0808D51E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_808D4F4
-
- thumb_func_start GetFieldObjectIdByLocalIdAndMap
-@ u8 GetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
-GetFieldObjectIdByLocalIdAndMap: @ 808D524
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0xFE
- bls _0808D53C
- bl GetFieldObjectIdByLocalId
- b _0808D540
-_0808D53C:
- bl GetFieldObjectIdByLocalIdAndMapInternal
-_0808D540:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalIdAndMap
-
- thumb_func_start TryGetFieldObjectIdByLocalIdAndMap
-@ bool8 TryGetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId, u8 *fieldObjectId)
-TryGetFieldObjectIdByLocalIdAndMap: @ 808D548
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectIdByLocalIdAndMap
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _0808D56A
- movs r0, 0
- b _0808D56C
-_0808D56A:
- movs r0, 0x1
-_0808D56C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldObjectIdByLocalIdAndMap
-
- thumb_func_start GetFieldObjectIdByXY
-@ u8 GetFieldObjectIdByXY(s16 x, s16 y)
-GetFieldObjectIdByXY: @ 808D574
- push {r4-r6,lr}
- movs r3, 0
- ldr r5, =gMapObjects
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
-_0808D582:
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r5
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _0808D5A2
- movs r6, 0x10
- ldrsh r0, [r2, r6]
- cmp r0, r4
- bne _0808D5A2
- movs r6, 0x12
- ldrsh r0, [r2, r6]
- cmp r0, r1
- beq _0808D5AC
-_0808D5A2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0808D582
-_0808D5AC:
- adds r0, r3, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFieldObjectIdByXY
-
- thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal
-@ u8 GetFieldObjectIdByLocalIdAndMapInternal(u8 localId, u8 mapId, u8 mapGroupId)
-GetFieldObjectIdByLocalIdAndMapInternal: @ 808D5B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- ldr r6, =gMapObjects
-_0808D5CA:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- ldrb r0, [r3]
- lsls r0, 31
- cmp r0, 0
- beq _0808D5F4
- ldrb r0, [r3, 0x8]
- cmp r0, r5
- bne _0808D5F4
- ldrb r0, [r3, 0x9]
- cmp r0, r4
- bne _0808D5F4
- ldrb r0, [r3, 0xA]
- cmp r0, r2
- bne _0808D5F4
- adds r0, r1, 0
- b _0808D600
- .pool
-_0808D5F4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _0808D5CA
- movs r0, 0x10
-_0808D600:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal
-
- thumb_func_start GetFieldObjectIdByLocalId
-@ u8 GetFieldObjectIdByLocalId(u8 localId)
-GetFieldObjectIdByLocalId: @ 808D608
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, =gMapObjects
-_0808D612:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0808D630
- ldrb r0, [r1, 0x8]
- cmp r0, r3
- bne _0808D630
- adds r0, r2, 0
- b _0808D63C
- .pool
-_0808D630:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0808D612
- movs r0, 0x10
-_0808D63C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalId
-
- thumb_func_start InitFieldObjectStateFromTemplate
-@ u8 InitFieldObjectStateFromTemplate(struct FieldObjectTemplate *fieldObjectTemplate, u8 mapId, u8 mapGroupId)
-InitFieldObjectStateFromTemplate: @ 808D644
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldrb r0, [r5]
- adds r1, r6, 0
- adds r2, r7, 0
- mov r3, sp
- bl GetAvailableFieldObjectSlot
- lsls r0, 24
- cmp r0, 0
- beq _0808D66E
- movs r0, 0x10
- b _0808D762
-_0808D66E:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl npc_clear_ids_and_state
- ldrh r3, [r5, 0x4]
- adds r3, 0x7
- lsls r3, 16
- lsrs r3, 16
- ldrh r2, [r5, 0x6]
- adds r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- strb r0, [r4, 0x5]
- ldrb r0, [r5, 0x9]
- strb r0, [r4, 0x6]
- ldrb r0, [r5]
- strb r0, [r4, 0x8]
- strb r6, [r4, 0x9]
- strb r7, [r4, 0xA]
- strh r3, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r3, [r4, 0x10]
- strh r2, [r4, 0x12]
- strh r3, [r4, 0x14]
- strh r2, [r4, 0x16]
- ldrb r0, [r5, 0x8]
- movs r7, 0xF
- adds r1, r7, 0
- ands r1, r0
- ldrb r2, [r4, 0xB]
- movs r0, 0x10
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0xB]
- ldrb r1, [r5, 0x8]
- lsls r1, 4
- ands r0, r7
- orrs r0, r1
- strb r0, [r4, 0xB]
- ldrb r1, [r5, 0xA]
- lsls r1, 28
- movs r0, 0xF
- mov r9, r0
- lsrs r1, 28
- ldrb r2, [r4, 0x19]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x19]
- ldrb r1, [r5, 0xA]
- lsrs r1, 4
- lsls r1, 4
- ands r0, r7
- orrs r0, r1
- strb r0, [r4, 0x19]
- ldrh r0, [r5, 0xC]
- strb r0, [r4, 0x7]
- ldrh r0, [r5, 0xE]
- strb r0, [r4, 0x1D]
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r5, 0x9]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- strb r1, [r0]
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- adds r0, r4, 0
- bl FieldObjectHandleDynamicGraphicsId
- ldr r1, =gUnknown_0850557C
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808D75E
- ldrb r2, [r4, 0x19]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- bne _0808D746
- lsls r0, r2, 28
- lsrs r0, 28
- adds r0, 0x1
- mov r1, r9
- ands r0, r1
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x19]
-_0808D746:
- ldrb r2, [r4, 0x19]
- movs r0, 0xF0
- ands r0, r2
- cmp r0, 0
- bne _0808D75E
- lsrs r1, r2, 4
- adds r1, 0x1
- lsls r1, 4
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x19]
-_0808D75E:
- mov r0, sp
- ldrb r0, [r0]
-_0808D762:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end InitFieldObjectStateFromTemplate
-
- thumb_func_start sub_808D77C
-sub_808D77C: @ 808D77C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, =gMapHeader
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0808D7FE
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _0808D7A8
- bl sub_81AAA40
- lsls r0, 24
- lsrs r6, r0, 24
- b _0808D7CA
- .pool
-_0808D7A8:
- bl InTrainerHill
- cmp r0, 0
- beq _0808D7C6
- movs r6, 0x2
- b _0808D7CA
-_0808D7B4:
- ldr r0, [r7]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- adds r0, r4, 0
- bl InitFieldObjectStateFromTemplate
- lsls r0, 24
- lsrs r0, 24
- b _0808D800
-_0808D7C6:
- ldr r0, [r4, 0x4]
- ldrb r6, [r0]
-_0808D7CA:
- movs r5, 0
- cmp r5, r6
- bcs _0808D7FE
- ldr r7, =gSaveBlock1Ptr
-_0808D7D2:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- movs r1, 0xC7
- lsls r1, 4
- adds r0, r1
- ldr r1, [r7]
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, r8
- bne _0808D7F4
- ldrh r0, [r4, 0x14]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0808D7B4
-_0808D7F4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0808D7D2
-_0808D7FE:
- movs r0, 0x10
-_0808D800:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808D77C
-
- thumb_func_start GetAvailableFieldObjectSlot
-@ bool8 GetAvailableFieldObjectSlot(u16 localId, u8 mapId, u8 mapGroupId, u8 *fieldObjectId)
-GetAvailableFieldObjectSlot: @ 808D810
- push {r4-r7,lr}
- mov r12, r3
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r2, 0
- ldr r1, =gMapObjects
- ldrb r0, [r1]
- lsls r0, 31
- adds r7, r1, 0
- cmp r0, 0
- beq _0808D864
- adds r3, r1, 0
-_0808D830:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldrb r0, [r1, 0x8]
- cmp r0, r6
- bne _0808D84A
- ldrb r0, [r1, 0x9]
- cmp r0, r5
- bne _0808D84A
- ldrb r0, [r1, 0xA]
- cmp r0, r4
- beq _0808D868
-_0808D84A:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bhi _0808D868
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0808D830
-_0808D864:
- cmp r2, 0xF
- bls _0808D870
-_0808D868:
- movs r0, 0x1
- b _0808D8A4
- .pool
-_0808D870:
- mov r0, r12
- strb r2, [r0]
- ldr r1, =gMapObjects
-_0808D876:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3]
- lsls r0, 31
- cmp r0, 0
- beq _0808D898
- ldrb r0, [r3, 0x8]
- cmp r0, r6
- bne _0808D898
- ldrb r0, [r3, 0x9]
- cmp r0, r5
- bne _0808D898
- ldrb r0, [r3, 0xA]
- cmp r0, r4
- beq _0808D868
-_0808D898:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0808D876
- movs r0, 0
-_0808D8A4:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetAvailableFieldObjectSlot
-
- thumb_func_start RemoveFieldObject
-@ void RemoveFieldObject(npc_state *fieldObject)
-RemoveFieldObject: @ 808D8B0
- push {lr}
- ldrb r2, [r0]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bl RemoveFieldObjectInternal
- pop {r0}
- bx r0
- thumb_func_end RemoveFieldObject
-
- thumb_func_start RemoveFieldObjectByLocalIdAndMap
-@ void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapBank)
-RemoveFieldObjectByLocalIdAndMap: @ 808D8C4
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808D902
- mov r0, sp
- ldrb r0, [r0]
- bl GetFieldObjectFlagIdByFieldObjectId
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl RemoveFieldObject
-_0808D902:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveFieldObjectByLocalIdAndMap
-
- thumb_func_start RemoveFieldObjectInternal
-@ void RemoveFieldObjectInternal(npc_state *fieldObject)
-RemoveFieldObjectInternal: @ 808D90C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r2, [r0, 0x6]
- ldr r1, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- ldr r2, =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- mov r1, sp
- str r1, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- bl DestroySprite
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveFieldObjectInternal
-
- thumb_func_start sub_808D958
-sub_808D958: @ 808D958
- push {r4,lr}
- movs r4, 0
-_0808D95C:
- ldr r0, =gUnknown_02037590
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- beq _0808D972
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl RemoveFieldObject
-_0808D972:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0808D95C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808D958
-
- thumb_func_start SpawnFieldObjectInternal
-@ u8 SpawnFieldObjectInternal(struct FieldObjectTemplate *romFieldObject, struct objtemplate *template, int mapId, int mapGroupId, u16 movingCameraOffsetX, u16 movingCameraOffsetY)
-SpawnFieldObjectInternal: @ 808D98C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r1
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r3, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp]
- bl InitFieldObjectStateFromTemplate
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0x10
- bne _0808D9C8
- movs r0, 0x10
- b _0808DB2C
-_0808D9C8:
- mov r0, r9
- lsls r4, r0, 3
- adds r0, r4, r0
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r6, r0, r1
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r7, r0, 0
- ldrb r0, [r7, 0xC]
- lsls r0, 28
- lsrs r5, r0, 28
- cmp r5, 0
- bne _0808D9F4
- ldrh r0, [r7, 0x2]
- movs r1, 0
- bl npc_load_two_palettes__no_record
- b _0808DA16
- .pool
-_0808D9F4:
- cmp r5, 0xA
- bne _0808DA02
- ldrh r0, [r7, 0x2]
- movs r1, 0xA
- bl npc_load_two_palettes__and_record
- b _0808DA16
-_0808DA02:
- cmp r5, 0xF
- bls _0808DA16
- adds r0, r5, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x2]
- adds r1, r5, 0
- bl sub_808EAB0
-_0808DA16:
- ldrb r0, [r6, 0x6]
- cmp r0, 0x4C
- bne _0808DA24
- ldrb r0, [r6, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6, 0x1]
-_0808DA24:
- ldr r1, =0x0000ffff
- adds r0, r1, 0
- mov r2, r8
- strh r0, [r2, 0x2]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- bne _0808DA64
- ldr r0, =gMapObjects
- mov r2, r9
- adds r1, r4, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0x10
- b _0808DB2C
- .pool
-_0808DA64:
- mov r1, r8
- lsls r0, r1, 4
- add r0, r8
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r6, 0x10]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r2, [r6, 0x12]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8092FF0
- ldrh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- lsls r2, r5, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- mov r0, r9
- strh r0, [r4, 0x2E]
- mov r1, r8
- strb r1, [r6, 0x4]
- ldrb r1, [r7, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r6, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0808DB16
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0808DB16:
- ldrb r0, [r6, 0xB]
- lsrs r0, 4
- adds r1, r4, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8096518
- mov r0, r9
-_0808DB2C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end SpawnFieldObjectInternal
-
- thumb_func_start SpawnFieldObject
-@ u8 SpawnFieldObject(struct FieldObjectTemplate *romNpc, u8 mapId, u8 mapGroupId, u16 movingCameraOffsetX, u16 movingCameraOffsetY)
-SpawnFieldObject: @ 808DB40
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x2C
- mov r9, r0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x48]
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0
- str r0, [sp, 0x20]
- mov r1, r9
- ldrb r0, [r1, 0x1]
- bl GetFieldObjectGraphicsInfo
- adds r7, r0, 0
- add r2, sp, 0x20
- mov r0, r9
- add r1, sp, 0x8
- bl MakeObjectTemplateFromFieldObjectTemplate
- ldrh r3, [r7, 0x6]
- ldr r2, =0xffff0000
- add r1, sp, 0x24
- ldr r0, [r1, 0x4]
- ands r0, r2
- orrs r0, r3
- str r0, [r1, 0x4]
- str r1, [sp, 0x14]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- mov r0, r9
- add r1, sp, 0x8
- adds r2, r6, 0
- mov r3, r8
- bl SpawnFieldObjectInternal
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- cmp r2, 0x10
- bne _0808DBBC
- movs r0, 0x10
- b _0808DBF2
- .pool
-_0808DBBC:
- ldr r4, =gSprites
- ldr r1, =gMapObjects
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldr r1, [r7, 0x1C]
- str r1, [r0]
- ldr r2, [sp, 0x20]
- cmp r2, 0
- beq _0808DBF0
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r1, r2, 0
- bl SetSubspriteTables
-_0808DBF0:
- adds r0, r5, 0
-_0808DBF2:
- add sp, 0x2C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end SpawnFieldObject
-
- thumb_func_start SpawnSpecialFieldObject
-@ u8 SpawnSpecialFieldObject(struct FieldObjectTemplate *romFieldObject)
-SpawnSpecialFieldObject: @ 808DC08
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl GetFieldObjectMovingCameraOffset
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- add r0, sp, 0x4
- movs r6, 0
- ldrsh r3, [r0, r6]
- movs r6, 0
- ldrsh r0, [r4, r6]
- str r0, [sp]
- adds r0, r5, 0
- bl SpawnFieldObject
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end SpawnSpecialFieldObject
-
- thumb_func_start SpawnSpecialFieldObjectParametrized
-@ u8 SpawnSpecialFieldObjectParametrized(u8 graphicsId, u8 movementBehavior, u8 localId, u16 x, u16 y, u8 z)
-SpawnSpecialFieldObjectParametrized: @ 808DC44
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- mov r8, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- ldr r5, =0xfff90000
- adds r3, r5
- lsrs r3, 16
- lsls r4, 16
- adds r4, r5
- lsrs r4, 16
- mov r5, sp
- movs r6, 0
- strb r2, [r5]
- mov r2, sp
- strb r0, [r2, 0x1]
- mov r0, sp
- strb r6, [r0, 0x2]
- movs r5, 0
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- mov r2, r8
- strb r2, [r0, 0x8]
- strb r1, [r0, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xA]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0xA]
- mov r0, sp
- strb r5, [r0, 0xA]
- strh r6, [r0, 0xC]
- strh r6, [r0, 0xE]
- bl SpawnSpecialFieldObject
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end SpawnSpecialFieldObjectParametrized
-
- thumb_func_start show_sprite
-show_sprite: @ 808DCAC
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl GetFieldObjectTemplateByLocalIdAndMap
- adds r5, r0, 0
- cmp r5, 0
- beq _0808DCF2
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl GetFieldObjectMovingCameraOffset
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r1, 0
- ldrsh r0, [r4, r1]
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SpawnFieldObject
- lsls r0, 24
- lsrs r0, 24
- b _0808DCF4
-_0808DCF2:
- movs r0, 0x10
-_0808DCF4:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end show_sprite
-
- thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo
-@ void MakeObjectTemplateFromFieldObjectGraphicsInfo(u8 graphicsId, void ( *callback)(), struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables)
-MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 808DCFC
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetFieldObjectGraphicsInfo
- ldrh r1, [r0]
- strh r1, [r4]
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x2]
- ldr r1, [r0, 0x10]
- str r1, [r4, 0x4]
- ldr r1, [r0, 0x18]
- str r1, [r4, 0x8]
- ldr r1, [r0, 0x1C]
- str r1, [r4, 0xC]
- ldr r1, [r0, 0x20]
- str r1, [r4, 0x10]
- str r5, [r4, 0x14]
- ldr r0, [r0, 0x14]
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo
-
- thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
-@ void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables)
-MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 808DD30
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- ldr r4, =gUnknown_08505438
- lsrs r1, 14
- adds r1, r4
- ldr r1, [r1]
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
-
- thumb_func_start MakeObjectTemplateFromFieldObjectTemplate
-@ void MakeObjectTemplateFromFieldObjectTemplate(struct FieldObjectTemplate *fieldObjectTemplate, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables)
-MakeObjectTemplateFromFieldObjectTemplate: @ 808DD50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4, 0x9]
- adds r2, r5, 0
- bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
-
- thumb_func_start AddPseudoFieldObject
-@ void AddPseudoFieldObject(u8 graphicsId, void ( *callback)(), u16 x, u16 y, u8 subpriority)
-AddPseudoFieldObject: @ 808DD68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x20]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0x18
- bl Alloc
- adds r6, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- ldrh r1, [r6, 0x2]
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _0808DDAE
- adds r0, r1, 0
- bl sub_808E894
-_0808DDAE:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- lsls r2, r7, 16
- asrs r2, 16
- adds r0, r6, 0
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- bl Free
- cmp r5, 0x40
- beq _0808DDF2
- ldr r1, [sp]
- cmp r1, 0
- beq _0808DDF2
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r4, 0x42
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_0808DDF2:
- adds r0, r5, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddPseudoFieldObject
-
- thumb_func_start sprite_new
-sprite_new: @ 808DE0C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- ldr r0, [sp, 0x40]
- ldr r4, [sp, 0x44]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- add r1, sp, 0x18
- mov r8, r1
- strh r2, [r1]
- mov r6, sp
- adds r6, 0x1A
- strh r3, [r6]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- adds r0, r5, 0
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r1, =sub_8097AC8
- add r3, sp, 0x1C
- adds r0, r5, 0
- mov r2, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- mov r1, sp
- ldr r2, =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- adds r0, 0x7
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x7
- strh r0, [r6]
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x10
- bl sub_80930E0
- mov r2, r8
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0
- ldrsh r2, [r6, r0]
- mov r0, sp
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _0808DF6C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r5, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, 0x1
- strb r0, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrb r0, [r4, 0xC]
- lsls r0, 28
- lsrs r0, 24
- ldrb r1, [r5, 0x5]
- movs r3, 0xF
- adds r2, r3, 0
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x5]
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0xF
- bls _0808DEE4
- subs r0, 0x10
- lsls r0, 4
- ands r2, r3
- orrs r2, r0
- strb r2, [r5, 0x5]
-_0808DEE4:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- mov r2, r9
- strh r2, [r5, 0x2E]
- strh r7, [r5, 0x30]
- ldrb r1, [r4, 0xC]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0xA
- bne _0808DF18
- ldrh r0, [r4, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
- b _0808DF2C
- .pool
-_0808DF18:
- lsls r1, 28
- lsrs r0, r1, 28
- cmp r0, 0xF
- bls _0808DF2C
- ldrh r0, [r4, 0x2]
- lsrs r2, r1, 28
- movs r1, 0xF0
- orrs r1, r2
- bl sub_808EAB0
-_0808DF2C:
- ldr r1, [sp, 0x1C]
- cmp r1, 0
- beq _0808DF48
- adds r0, r5, 0
- bl SetSubspriteTables
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r0, [r2]
- movs r1, 0x3F
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2]
-_0808DF48:
- adds r0, r5, 0
- adds r1, r7, 0
- bl InitObjectPriorityByZCoord
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
- mov r0, r10
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_0808DF6C:
- adds r0, r6, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sprite_new
-
- thumb_func_start SpawnFieldObjectsInView
-@ void SpawnFieldObjectsInView(u16 movingCameraOffsetX, u16 movingCameraOffsetY)
-SpawnFieldObjectsInView: @ 808DF80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- ldr r5, =gMapHeader
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _0808E078
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0xC]
- ldrh r4, [r2, 0x2]
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _0808DFE0
- bl sub_81AAA40
- lsls r0, 24
- lsrs r6, r0, 24
- b _0808DFF0
- .pool
-_0808DFE0:
- bl InTrainerHill
- cmp r0, 0
- beq _0808DFEC
- movs r6, 0x2
- b _0808DFF0
-_0808DFEC:
- ldr r0, [r5, 0x4]
- ldrb r6, [r0]
-_0808DFF0:
- movs r5, 0
- cmp r5, r6
- bcs _0808E078
- lsls r0, r4, 16
- asrs r0, 16
- mov r9, r0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r8, r0
-_0808E004:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- movs r2, 0xC7
- lsls r2, 4
- adds r0, r2
- ldr r3, =gSaveBlock1Ptr
- ldr r1, [r3]
- adds r4, r1, r0
- ldrh r0, [r4, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4, 0x6]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r9, r1
- bgt _0808E06E
- mov r7, r10
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r1
- blt _0808E06E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r8, r1
- bgt _0808E06E
- ldr r2, [sp, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _0808E06E
- ldrh r0, [r4, 0x14]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0808E06E
- ldr r3, =gSaveBlock1Ptr
- ldr r0, [r3]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- ldr r7, [sp, 0x4]
- lsls r3, r7, 16
- ldr r7, [sp, 0x8]
- lsls r0, r7, 16
- asrs r0, 16
- str r0, [sp]
- adds r0, r4, 0
- asrs r3, 16
- bl SpawnFieldObject
-_0808E06E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0808E004
-_0808E078:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SpawnFieldObjectsInView
-
- thumb_func_start RemoveFieldObjectsOutsideView
-@ void RemoveFieldObjectsOutsideView()
-RemoveFieldObjectsOutsideView: @ 808E08C
- push {r4-r6,lr}
- movs r3, 0
- ldr r6, =gUnknown_02032308
-_0808E092:
- movs r2, 0
- movs r4, 0
- adds r5, r3, 0x1
-_0808E098:
- lsls r0, r2, 2
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808E0AA
- ldrb r1, [r1, 0x2]
- cmp r3, r1
- bne _0808E0AA
- movs r4, 0x1
-_0808E0AA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0808E098
- cmp r4, 0
- bne _0808E0D2
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2]
- ldr r1, =0x00010001
- ands r0, r1
- cmp r0, 0x1
- bne _0808E0D2
- adds r0, r2, 0
- bl RemoveFieldObjectIfOutsideView
-_0808E0D2:
- lsls r0, r5, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0808E092
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveFieldObjectsOutsideView
-
- thumb_func_start RemoveFieldObjectIfOutsideView
-@ void RemoveFieldObjectIfOutsideView(npc_state *fieldObject)
-RemoveFieldObjectIfOutsideView: @ 808E0EC
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r0, [r2]
- subs r1, r0, 0x2
- lsls r1, 16
- adds r0, 0x11
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r4, [r2, 0x2]
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0x10
- ldrsh r2, [r3, r0]
- lsrs r7, r1, 16
- asrs r1, 16
- cmp r2, r1
- blt _0808E132
- lsls r0, r5, 16
- asrs r0, 16
- cmp r2, r0
- bgt _0808E132
- movs r0, 0x12
- ldrsh r1, [r3, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- blt _0808E132
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- ble _0808E160
-_0808E132:
- movs r0, 0xC
- ldrsh r1, [r3, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- blt _0808E15A
- lsls r0, r5, 16
- asrs r0, 16
- cmp r1, r0
- bgt _0808E15A
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- blt _0808E15A
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- ble _0808E160
-_0808E15A:
- adds r0, r3, 0
- bl RemoveFieldObject
-_0808E160:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveFieldObjectIfOutsideView
-
- thumb_func_start sub_808E16C
-sub_808E16C: @ 808E16C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl ClearPlayerAvatarInfo
- movs r6, 0
- ldr r7, =gMapObjects
- lsls r4, 16
- lsls r5, 16
-_0808E186:
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0808E1A0
- adds r0, r6, 0
- asrs r1, r4, 16
- asrs r2, r5, 16
- bl sub_808E1B8
-_0808E1A0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bls _0808E186
- bl sub_808D450
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E16C
-
- thumb_func_start sub_808E1B8
-sub_808E1B8: @ 808E1B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x24]
- movs r7, 0
- ldr r2, =gUnknown_02032308
-_0808E1DA:
- lsls r0, r7, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808E1EC
- ldrb r1, [r1, 0x2]
- cmp r9, r1
- bne _0808E1EC
- b _0808E374
-_0808E1EC:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _0808E1DA
- mov r1, r9
- lsls r0, r1, 3
- add r0, r9
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r6, r0, r1
- movs r0, 0
- str r0, [sp, 0x20]
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- ldrh r2, [r5, 0x6]
- ldr r1, =0xffff0000
- add r4, sp, 0x18
- ldr r0, [r4, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r4, 0x4]
- ldrb r0, [r6, 0x5]
- ldrb r1, [r6, 0x6]
- add r3, sp, 0x20
- mov r2, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
- str r4, [sp, 0xC]
- mov r1, sp
- ldr r2, =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 28
- lsrs r0, r1, 28
- mov r8, r0
- cmp r0, 0
- bne _0808E258
- ldrh r0, [r5, 0x2]
- lsrs r1, 28
- bl npc_load_two_palettes__no_record
- b _0808E27E
- .pool
-_0808E258:
- mov r2, r8
- cmp r2, 0xA
- bne _0808E268
- ldrh r0, [r5, 0x2]
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
- b _0808E27E
-_0808E268:
- mov r0, r8
- cmp r0, 0xF
- bls _0808E27E
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r5, 0x2]
- mov r1, r8
- bl sub_808EAB0
-_0808E27E:
- mov r1, sp
- ldr r2, =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x40
- beq _0808E374
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r2, [r6, 0x10]
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp, 0x24]
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r2, [r6, 0x12]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8092FF0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, [r5, 0x1C]
- str r0, [r4, 0xC]
- ldrb r0, [r6, 0x6]
- cmp r0, 0xB
- bne _0808E312
- mov r0, r9
- adds r1, r7, 0
- bl SetPlayerAvatarFieldObjectIdAndObjectId
- bl sub_8154228
- strb r0, [r6, 0x1B]
-_0808E312:
- ldr r1, [sp, 0x20]
- cmp r1, 0
- beq _0808E31E
- adds r0, r4, 0
- bl SetSubspriteTables
-_0808E31E:
- mov r0, r8
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- mov r1, r9
- strh r1, [r4, 0x2E]
- strb r7, [r6, 0x4]
- ldrb r0, [r6, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0808E362
- ldrb r0, [r6, 0x6]
- cmp r0, 0xB
- beq _0808E362
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0808E362:
- adds r0, r6, 0
- bl sub_808E38C
- ldrb r0, [r6, 0xB]
- lsrs r0, 4
- adds r1, r4, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
-_0808E374:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E1B8
-
- thumb_func_start sub_808E38C
-@ void sub_808E38C(struct npc_state *fieldObject)
-sub_808E38C: @ 808E38C
- push {lr}
- ldrb r2, [r0]
- movs r3, 0x3
- negs r3, r3
- adds r1, r3, 0
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r2, [r0, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- ands r1, r3
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- subs r2, 0x4
- ands r1, r2
- subs r2, 0x8
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r0, 0x2]
- bl FieldObjectClearAnim
- pop {r0}
- bx r0
- thumb_func_end sub_808E38C
-
- thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId
-@ void SetPlayerAvatarFieldObjectIdAndObjectId(u8 fieldObjectId, u8 objectId)
-SetPlayerAvatarFieldObjectIdAndObjectId: @ 808E3C4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_02037590
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x4]
- ldr r1, =gMapObjects
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- ldrb r0, [r4, 0x5]
- bl GetPlayerAvatarGenderByGraphicsId
- strb r0, [r5, 0x7]
- ldrb r0, [r4, 0x5]
- movs r1, 0x20
- bl SetPlayerAvatarExtraStateTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
-
- thumb_func_start FieldObjectSetGraphicsId
-@ void FieldObjectSetGraphicsId(npc_state *npcState, u8 graphicsId)
-FieldObjectSetGraphicsId: @ 808E3F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- ldrb r0, [r6, 0xC]
- lsls r1, r0, 28
- lsrs r5, r1, 28
- cmp r5, 0
- bne _0808E434
- ldrh r0, [r6, 0x2]
- adds r1, r5, 0
- bl pal_patch_for_npc
- b _0808E456
- .pool
-_0808E434:
- cmp r5, 0xA
- bne _0808E442
- ldrh r0, [r6, 0x2]
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
- b _0808E456
-_0808E442:
- cmp r5, 0xF
- bls _0808E456
- adds r0, r5, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r6, 0x2]
- adds r1, r5, 0
- bl sub_808EAB0
-_0808E456:
- ldr r0, [r6, 0x10]
- ldrb r2, [r0, 0x1]
- lsrs r2, 6
- lsls r2, 6
- ldrb r3, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldr r0, [r6, 0x10]
- ldrb r0, [r0, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldr r0, [r6, 0x1C]
- str r0, [r4, 0xC]
- ldr r0, [r6, 0x18]
- str r0, [r4, 0x8]
- ldr r0, [r6, 0x14]
- str r0, [r4, 0x18]
- lsls r2, r5, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r1, [r6, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r7, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r0, r8
- strb r0, [r7, 0x5]
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- movs r2, 0x12
- ldrsh r1, [r7, r2]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8093038
- ldrh r0, [r6, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r0, [r7, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _0808E4F8
- bl CameraObjectReset1
-_0808E4F8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectSetGraphicsId
-
- thumb_func_start sub_808E504
-sub_808E504: @ 808E504
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E538
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- adds r1, r4, 0
- bl FieldObjectSetGraphicsId
-_0808E538:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E504
-
- thumb_func_start FieldObjectTurn
-@ void FieldObjectTurn(struct npc_state *fieldObject, u8 direction)
-FieldObjectTurn: @ 808E544
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- bl FieldObjectSetDirection
- ldrb r0, [r6, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0808E58A
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, =gSprites
- adds r4, r5
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl SeekSpriteAnim
-_0808E58A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectTurn
-
- thumb_func_start FieldObjectTurnByLocalIdAndMap
-@ void FieldObjectTurnByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
-FieldObjectTurnByLocalIdAndMap: @ 808E594
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E5C8
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- adds r1, r4, 0
- bl FieldObjectTurn
-_0808E5C8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectTurnByLocalIdAndMap
-
- thumb_func_start sub_808E5D4
-sub_808E5D4: @ 808E5D4
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- bl FieldObjectTurn
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E5D4
-
- thumb_func_start get_berry_tree_graphics
-@ void get_berry_tree_graphics(npc_state *npcState, struct obj *obj)
-get_berry_tree_graphics: @ 808E5F4
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r4, r7, 0
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1D]
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0808E680
- ldrb r1, [r5, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1D]
- bl GetBerryTypeByBerryTreeId
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r4, 0x2B
- bls _0808E648
- movs r4, 0
-_0808E648:
- ldr r0, =gBerryTreeFieldObjectGraphicsIdTablePointers
- lsls r4, 2
- adds r0, r4, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectSetGraphicsId
- ldr r0, =gBerryTreePicTablePointers
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [r7, 0xC]
- ldr r0, =gBerryTreePaletteSlotTablePointers
- adds r4, r0
- ldr r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r7, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- adds r0, r7, 0
- adds r1, r6, 0
- bl StartSpriteAnim
-_0808E680:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end get_berry_tree_graphics
-
- thumb_func_start GetFieldObjectGraphicsInfo
-@ FieldObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8 graphicsId)
-GetFieldObjectGraphicsInfo: @ 808E694
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xEF
- bls _0808E6AC
- adds r0, r1, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl VarGetFieldObjectGraphicsId
- adds r1, r0, 0
-_0808E6AC:
- cmp r1, 0x45
- bne _0808E6C4
- bl sub_81201C8
- lsls r0, 24
- ldr r1, =gMauvilleOldManGraphicsInfoPointers
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- b _0808E6D2
- .pool
-_0808E6C4:
- cmp r1, 0xEE
- bls _0808E6CA
- movs r1, 0x5
-_0808E6CA:
- ldr r0, =gFieldObjectGraphicsInfoPointers
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
-_0808E6D2:
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFieldObjectGraphicsInfo
-
- thumb_func_start FieldObjectHandleDynamicGraphicsId
-@ void FieldObjectHandleDynamicGraphicsId(struct npc_state *fieldObject)
-FieldObjectHandleDynamicGraphicsId: @ 808E6DC
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x5]
- cmp r0, 0xEF
- bls _0808E6F2
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl VarGetFieldObjectGraphicsId
- strb r0, [r4, 0x5]
-_0808E6F2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectHandleDynamicGraphicsId
-
- thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20
-npc_by_local_id_and_map_set_field_1_bit_x20: @ 808E6F8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E73A
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 5
- ldrb r3, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0808E73A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20
-
- thumb_func_start FieldObjectGetLocalIdAndMap
-@ void FieldObjectGetLocalIdAndMap(struct npc_state *fieldObject, u8 *localId, u8 *mapId, u8 *mapGroupId)
-FieldObjectGetLocalIdAndMap: @ 808E748
- push {r4,lr}
- ldrb r4, [r0, 0x8]
- strb r4, [r1]
- ldrb r1, [r0, 0x9]
- strb r1, [r2]
- ldrb r0, [r0, 0xA]
- strb r0, [r3]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectGetLocalIdAndMap
-
- thumb_func_start sub_808E75C
-sub_808E75C: @ 808E75C
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetFieldObjectIdByXY
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _0808E784
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0808E784:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E75C
-
- thumb_func_start sub_808E78C
-sub_808E78C: @ 808E78C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E7D2
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- ldr r0, =gMapObjects
- adds r2, r0
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r1, [r2, 0x3]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x3]
- adds r0, 0x43
- strb r4, [r0]
-_0808E7D2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E78C
-
- thumb_func_start sub_808E7E4
-sub_808E7E4: @ 808E7E4
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E820
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r1, r0
- ldrb r2, [r1, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x3]
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0808E820:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E7E4
-
- thumb_func_start sub_808E82C
-sub_808E82C: @ 808E82C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E870
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r4, [r0, 0x26]
-_0808E870:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E82C
-
- thumb_func_start gpu_pal_allocator_reset__manage_upper_four
-gpu_pal_allocator_reset__manage_upper_four: @ 808E880
- push {lr}
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0xC
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end gpu_pal_allocator_reset__manage_upper_four
-
- thumb_func_start sub_808E894
-sub_808E894: @ 808E894
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl FindFieldObjectPaletteIndexByTag
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, =0x000011ff
- cmp r1, r0
- beq _0808E8B2
- lsls r0, r1, 3
- ldr r1, =gUnknown_0850BBC8
- adds r0, r1
- bl sub_808E8F4
-_0808E8B2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E894
-
- thumb_func_start sub_808E8C0
-sub_808E8C0: @ 808E8C0
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldrh r0, [r5]
- ldr r1, =0x000011ff
- cmp r0, r1
- beq _0808E8EA
- adds r6, r1, 0
-_0808E8D0:
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_808E894
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r6
- bne _0808E8D0
-_0808E8EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E8C0
-
- thumb_func_start sub_808E8F4
-@ u8 sub_808E8F4(struct TaggedObjectPalette *taggedPalette)
-sub_808E8F4: @ 808E8F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0808E912
- adds r0, r4, 0
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- b _0808E914
-_0808E912:
- movs r0, 0xFF
-_0808E914:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808E8F4
-
- thumb_func_start pal_patch_for_npc
-@ void pal_patch_for_npc(u16 tag, u8 slot)
-pal_patch_for_npc: @ 808E91C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- bl FindFieldObjectPaletteIndexByTag
- lsls r0, 24
- ldr r1, =gUnknown_0850BBC8
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0]
- lsls r4, 20
- movs r1, 0x80
- lsls r1, 17
- adds r4, r1
- lsrs r4, 16
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pal_patch_for_npc
-
- thumb_func_start pal_patch_for_npc_range
-@ void pal_patch_for_npc_range(u16 *tags, u8 minSlot, u8 maxSlot)
-pal_patch_for_npc_range: @ 808E954
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r4, r6
- bcs _0808E978
-_0808E964:
- ldrh r0, [r5]
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r5, 0x2
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _0808E964
-_0808E978:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pal_patch_for_npc_range
-
- thumb_func_start FindFieldObjectPaletteIndexByTag
-@ u8 FindFieldObjectPaletteIndexByTag(u16 tag)
-FindFieldObjectPaletteIndexByTag: @ 808E980
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- ldr r0, =gUnknown_0850BBC8
- ldrh r1, [r0, 0x4]
- ldr r3, =0x000011ff
- adds r4, r0, 0
- cmp r1, r3
- beq _0808E9C0
- adds r6, r4, 0
- adds r1, r3, 0
-_0808E998:
- lsls r0, r2, 3
- adds r0, r6
- ldrh r0, [r0, 0x4]
- cmp r0, r5
- bne _0808E9B0
- adds r0, r2, 0
- b _0808E9C2
- .pool
-_0808E9B0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 3
- adds r0, r4
- ldrh r0, [r0, 0x4]
- cmp r0, r1
- bne _0808E998
-_0808E9C0:
- movs r0, 0xFF
-_0808E9C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end FindFieldObjectPaletteIndexByTag
-
- thumb_func_start npc_load_two_palettes__no_record
-@ void npc_load_two_palettes__no_record(u16 tag, u8 slot)
-npc_load_two_palettes__no_record: @ 808E9C8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl pal_patch_for_npc
- movs r3, 0
- ldr r1, =gUnknown_0850BD00
- ldrh r0, [r1]
- ldr r2, =0x000011ff
- cmp r0, r2
- beq _0808EA30
- ldr r0, =gUnknown_084975C4
- adds r5, r0
- adds r6, r2, 0
-_0808E9EC:
- lsls r2, r3, 3
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r4
- bne _0808EA20
- adds r1, 0x4
- adds r1, r2, r1
- ldr r0, =gUnknown_020375B4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldrb r1, [r5]
- bl pal_patch_for_npc
- b _0808EA30
- .pool
-_0808EA20:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0808E9EC
-_0808EA30:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_load_two_palettes__no_record
-
- thumb_func_start npc_load_two_palettes__and_record
-@ void npc_load_two_palettes__and_record(u16 tag, u8 slot)
-npc_load_two_palettes__and_record: @ 808EA38
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gUnknown_020375B6
- strh r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl pal_patch_for_npc
- movs r3, 0
- ldr r1, =gUnknown_0850BD78
- ldrh r0, [r1]
- ldr r2, =0x000011ff
- cmp r0, r2
- beq _0808EAA8
- ldr r0, =gUnknown_084975C4
- adds r5, r0
- adds r6, r2, 0
-_0808EA60:
- lsls r2, r3, 3
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r4
- bne _0808EA98
- adds r1, 0x4
- adds r1, r2, r1
- ldr r0, =gUnknown_020375B4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldrb r1, [r5]
- bl pal_patch_for_npc
- b _0808EAA8
- .pool
-_0808EA98:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0808EA60
-_0808EAA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_load_two_palettes__and_record
-
- thumb_func_start sub_808EAB0
-sub_808EAB0: @ 808EAB0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- bl pal_patch_for_npc
- pop {r0}
- bx r0
- thumb_func_end sub_808EAB0
-
- thumb_func_start sub_808EAC4
-sub_808EAC4: @ 808EAC4
- push {r4,lr}
- ldrh r3, [r0, 0x10]
- strh r3, [r0, 0x14]
- ldrh r4, [r0, 0x12]
- strh r4, [r0, 0x16]
- lsls r1, 16
- asrs r1, 16
- adds r1, r3
- strh r1, [r0, 0x10]
- lsls r2, 16
- asrs r2, 16
- adds r2, r4
- strh r2, [r0, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808EAC4
-
- thumb_func_start npc_coords_shift
-@ void npc_coords_shift(struct npc_state *fieldObject, u16 x, u16 y)
-npc_coords_shift: @ 808EAE4
- ldrh r3, [r0, 0x10]
- strh r3, [r0, 0x14]
- ldrh r3, [r0, 0x12]
- strh r3, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- bx lr
- thumb_func_end npc_coords_shift
-
- thumb_func_start npc_coords_set
-@ void npc_coords_set(struct npc_state *fieldObject, u16 x, u16 y)
-npc_coords_set: @ 808EAF4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- bx lr
- thumb_func_end npc_coords_set
-
- thumb_func_start sub_808EB08
-sub_808EB08: @ 808EB08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r7, r0, r1
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r8, r0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl npc_coords_set
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- adds r2, r7, 0
- adds r2, 0x20
- adds r3, r7, 0
- adds r3, 0x22
- bl sub_8093038
- mov r1, r8
- ldrh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r7, 0
- adds r1, 0x28
- strb r0, [r1]
- mov r2, r8
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r7, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r7, 0x20]
- adds r0, 0x8
- strh r0, [r7, 0x20]
- ldrh r1, [r7, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r7, 0x22]
- adds r0, r6, 0
- bl sub_808E38C
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _0808EB9A
- bl CameraObjectReset1
-_0808EB9A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808EB08
-
- thumb_func_start sub_808EBA8
-sub_808EBA8: @ 808EBA8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808EBF0
- lsls r1, r5, 16
- lsls r2, r4, 16
- mov r0, sp
- ldrb r3, [r0]
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- ldr r3, =gMapObjects
- adds r0, r3
- movs r3, 0xE0
- lsls r3, 11
- adds r1, r3
- asrs r1, 16
- adds r2, r3
- asrs r2, 16
- bl sub_808EB08
-_0808EBF0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808EBA8
-
- thumb_func_start npc_coords_shift_still
-@ void npc_coords_shift_still(struct npc_state *fieldObject)
-npc_coords_shift_still: @ 808EBFC
- push {lr}
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- movs r3, 0x12
- ldrsh r2, [r0, r3]
- bl npc_coords_shift
- pop {r0}
- bx r0
- thumb_func_end npc_coords_shift_still
-
- thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
-@ void UpdateFieldObjectCoordsForCameraUpdate()
-UpdateFieldObjectCoordsForCameraUpdate: @ 808EC10
- push {r4,r5,lr}
- ldr r2, =gUnknown_02037334
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808EC68
- movs r3, 0
- ldr r5, =gMapObjects
- movs r0, 0x4
- ldrsh r4, [r2, r0]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
-_0808EC2A:
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r5
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _0808EC5E
- ldrh r0, [r2, 0xC]
- subs r0, r4
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0xE]
- subs r0, r1
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0x10]
- subs r0, r4
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x12]
- subs r0, r1
- strh r0, [r2, 0x12]
- ldrh r0, [r2, 0x14]
- subs r0, r4
- strh r0, [r2, 0x14]
- ldrh r0, [r2, 0x16]
- subs r0, r1
- strh r0, [r2, 0x16]
-_0808EC5E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0808EC2A
-_0808EC68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
-
- thumb_func_start GetFieldObjectIdByXYZ
-@ u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z)
-GetFieldObjectIdByXYZ: @ 808EC78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r0, =gMapObjects
- mov r8, r0
-_0808EC90:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- mov r2, r8
- adds r1, r0, r2
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0808ECC8
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, r7
- bne _0808ECC8
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r0, r6
- bne _0808ECC8
- adds r0, r1, 0
- adds r1, r5, 0
- bl FieldObjectDoesZCoordMatch
- lsls r0, 24
- cmp r0, 0
- beq _0808ECC8
- adds r0, r4, 0
- b _0808ECD4
- .pool
-_0808ECC8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0808EC90
- movs r0, 0x10
-_0808ECD4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByXYZ
-
- thumb_func_start FieldObjectDoesZCoordMatch
-@ bool8 FieldObjectDoesZCoordMatch(struct npc_state *fieldObject)
-FieldObjectDoesZCoordMatch: @ 808ECE0
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xB]
- movs r0, 0xF
- ands r0, r2
- cmp r0, 0
- beq _0808ED00
- cmp r1, 0
- beq _0808ED00
- lsls r0, r2, 28
- lsrs r0, 28
- cmp r0, r1
- beq _0808ED00
- movs r0, 0
- b _0808ED02
-_0808ED00:
- movs r0, 0x1
-_0808ED02:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectDoesZCoordMatch
-
- thumb_func_start UpdateFieldObjectsForCameraUpdate
-@ void UpdateFieldObjectsForCameraUpdate(u16 movingCameraOffsetX, u16 movingCameraOffsetY)
-UpdateFieldObjectsForCameraUpdate: @ 808ED08
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl UpdateFieldObjectCoordsForCameraUpdate
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl SpawnFieldObjectsInView
- bl RemoveFieldObjectsOutsideView
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end UpdateFieldObjectsForCameraUpdate
-
- thumb_func_start AddCameraObject
-@ u8 AddCameraObject(u8 followedObjectId)
-AddCameraObject: @ 808ED34
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_084975D4
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x3E
- adds r2, r1
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x4
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- strh r4, [r1, 0x2E]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddCameraObject
-
- thumb_func_start ObjectCB_CameraObject
-@ void ObjectCB_CameraObject(struct obj *object)
-ObjectCB_CameraObject: @ 808ED78
- push {r4,r5,lr}
- sub sp, 0xC
- mov r2, sp
- ldr r1, =gUnknown_084975EC
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- movs r2, 0x30
- ldrsh r1, [r0, r2]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ObjectCB_CameraObject
-
- thumb_func_start CameraObject_0
-@ void CameraObject_0(struct obj *object)
-CameraObject_0: @ 808EDA0
- push {lr}
- ldr r3, =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x1
- strh r1, [r0, 0x30]
- bl CameraObject_1
- pop {r0}
- bx r0
- .pool
- thumb_func_end CameraObject_0
-
- thumb_func_start CameraObject_1
-@ void CameraObject_1(struct obj *object)
-CameraObject_1: @ 808EDDC
- push {r4,r5,lr}
- ldr r3, =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r3, [r1, 0x22]
- ldrh r2, [r0, 0x20]
- ldrh r4, [r1, 0x20]
- movs r5, 0x20
- ldrsh r1, [r1, r5]
- subs r1, r2
- strh r1, [r0, 0x32]
- ldrh r2, [r0, 0x22]
- lsls r1, r3, 16
- asrs r1, 16
- subs r1, r2
- strh r1, [r0, 0x34]
- strh r4, [r0, 0x20]
- strh r3, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CameraObject_1
-
- thumb_func_start CameraObject_2
-@ void CameraObject_2(struct obj *object)
-CameraObject_2: @ 808EE14
- push {r4,lr}
- ldr r4, =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- movs r3, 0
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- strh r3, [r0, 0x32]
- strh r3, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CameraObject_2
-
- thumb_func_start FindCameraObject
-@ struct obj *FindCameraObject()
-FindCameraObject: @ 808EE44
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, =gSprites
- adds r5, r4, 0
- adds r5, 0x1C
-_0808EE4E:
- lsls r0, r3, 4
- adds r0, r3
- lsls r1, r0, 2
- adds r2, r1, r4
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0808EE78
- adds r0, r1, r5
- ldr r1, [r0]
- ldr r0, =ObjectCB_CameraObject
- cmp r1, r0
- bne _0808EE78
- adds r0, r2, 0
- b _0808EE84
- .pool
-_0808EE78:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _0808EE4E
- movs r0, 0
-_0808EE84:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FindCameraObject
-
- thumb_func_start CameraObjectReset1
-@ void CameraObjectReset1()
-CameraObjectReset1: @ 808EE8C
- push {lr}
- bl FindCameraObject
- adds r2, r0, 0
- cmp r2, 0
- beq _0808EEA4
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
-_0808EEA4:
- pop {r0}
- bx r0
- thumb_func_end CameraObjectReset1
-
- thumb_func_start CameraObjectSetFollowedObjectId
-@ void CameraObjectSetFollowedObjectId(u8 objectId)
-CameraObjectSetFollowedObjectId: @ 808EEA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl FindCameraObject
- cmp r0, 0
- beq _0808EEBC
- strh r4, [r0, 0x2E]
- bl CameraObjectReset1
-_0808EEBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CameraObjectSetFollowedObjectId
-
- thumb_func_start CameraObjectGetFollowedObjectId
-@ u8 CameraObjectGetFollowedObjectId()
-CameraObjectGetFollowedObjectId: @ 808EEC4
- push {lr}
- bl FindCameraObject
- cmp r0, 0
- beq _0808EED6
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- b _0808EED8
-_0808EED6:
- movs r0, 0x40
-_0808EED8:
- pop {r1}
- bx r1
- thumb_func_end CameraObjectGetFollowedObjectId
-
- thumb_func_start CameraObjectReset2
-@ void CameraObjectReset2()
-CameraObjectReset2: @ 808EEDC
- push {lr}
- bl FindCameraObject
- movs r1, 0x2
- strh r1, [r0, 0x30]
- pop {r0}
- bx r0
- thumb_func_end CameraObjectReset2
-
- thumb_func_start sub_808EEEC
-sub_808EEEC: @ 808EEEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- movs r5, 0
- ldr r1, =gSprites
-_0808EF06:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0808EF38
- adds r0, r4, 0
- mov r1, r12
- movs r2, 0x44
- bl memcpy
- mov r0, r8
- strh r0, [r4, 0x20]
- strh r6, [r4, 0x22]
- adds r0, r4, 0
- adds r0, 0x43
- strb r7, [r0]
- b _0808EF42
- .pool
-_0808EF38:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _0808EF06
-_0808EF42:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808EEEC
-
- thumb_func_start obj_unfreeze
-obj_unfreeze: @ 808EF50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- movs r5, 0x3F
- ldr r3, =gSprites
- movs r2, 0x1
- negs r2, r2
-_0808EF6E:
- lsls r0, r5, 16
- asrs r1, r0, 16
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r3
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0808EFA8
- adds r0, r4, 0
- mov r1, r12
- movs r2, 0x44
- bl memcpy
- mov r0, r8
- strh r0, [r4, 0x20]
- strh r6, [r4, 0x22]
- adds r0, r4, 0
- adds r0, 0x43
- strb r7, [r0]
- lsls r0, r5, 24
- lsrs r0, 24
- b _0808EFB6
- .pool
-_0808EFA8:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r2
- bgt _0808EF6E
- movs r0, 0x40
-_0808EFB6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end obj_unfreeze
-
- thumb_func_start FieldObjectSetDirection
-@ void FieldObjectSetDirection(struct npc_state *fieldObject, u8 direction)
-FieldObjectSetDirection: @ 808EFC0
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r4, r2, 0
- ldrb r0, [r3, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r3, 0
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- lsls r0, 30
- cmp r0, 0
- blt _0808EFF0
- movs r0, 0xF
- adds r1, r2, 0
- ands r1, r0
- ldrb r2, [r3, 0x18]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x18]
-_0808EFF0:
- lsls r2, r4, 4
- ldrb r1, [r3, 0x18]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectSetDirection
-
- thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap
-@ u32 GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
-GetFieldObjectScriptPointerByLocalIdAndMap: @ 808F004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectTemplateByLocalIdAndMap
- ldr r0, [r0, 0x10]
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap
-
- thumb_func_start GetFieldObjectScriptPointerByFieldObjectId
-@ u32 GetFieldObjectScriptPointerByFieldObjectId(u8 fieldObjectId)
-GetFieldObjectScriptPointerByFieldObjectId: @ 808F01C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r0, [r2, 0x8]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- bl GetFieldObjectScriptPointerByLocalIdAndMap
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFieldObjectScriptPointerByFieldObjectId
-
- thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap
-@ u16 GetFieldObjectFlagIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
-GetFieldObjectFlagIdByLocalIdAndMap: @ 808F040
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectTemplateByLocalIdAndMap
- ldrh r0, [r0, 0x14]
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap
-
- thumb_func_start GetFieldObjectFlagIdByFieldObjectId
-@ u16 GetFieldObjectFlagIdByFieldObjectId(u8 fieldObjectId)
-GetFieldObjectFlagIdByFieldObjectId: @ 808F058
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r0, [r2, 0x8]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- bl GetFieldObjectFlagIdByLocalIdAndMap
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFieldObjectFlagIdByFieldObjectId
-
- thumb_func_start sub_808F080
-sub_808F080: @ 808F080
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808F0B4
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0808F0B6
- .pool
-_0808F0B4:
- movs r0, 0xFF
-_0808F0B6:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_808F080
-
- thumb_func_start sub_808F0BC
-sub_808F0BC: @ 808F0BC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x7]
- bx lr
- .pool
- thumb_func_end sub_808F0BC
-
- thumb_func_start sub_808F0D4
-sub_808F0D4: @ 808F0D4
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808F108
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1D]
- b _0808F10A
- .pool
-_0808F108:
- movs r0, 0xFF
-_0808F10A:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_808F0D4
-
- thumb_func_start FieldObjectGetBerryTreeId
-@ u8 FieldObjectGetBerryTreeId(u8 fieldObjectId)
-FieldObjectGetBerryTreeId: @ 808F110
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1D]
- bx lr
- .pool
- thumb_func_end FieldObjectGetBerryTreeId
-
- thumb_func_start GetFieldObjectTemplateByLocalIdAndMap
-@ struct FieldObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
-GetFieldObjectTemplateByLocalIdAndMap: @ 808F128
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, r3
- bne _0808F160
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, r2
- bne _0808F160
- movs r0, 0xC7
- lsls r0, 4
- adds r1, r0
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- b _0808F16C
- .pool
-_0808F160:
- adds r0, r2, 0
- adds r1, r3, 0
- bl get_mapheader_by_bank_and_number
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x4]
-_0808F16C:
- ldrb r2, [r0]
- adds r0, r4, 0
- bl FindFieldObjectTemplateInArrayByLocalId
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectTemplateByLocalIdAndMap
-
- thumb_func_start FindFieldObjectTemplateInArrayByLocalId
-@ struct FieldObjectTemplate *FindFieldObjectTemplateInArrayByLocalId(u8 localId, struct FieldObjectTemplate *templates, u8 numTemplates)
-FindFieldObjectTemplateInArrayByLocalId: @ 808F17C
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- cmp r1, r2
- bcs _0808F1AA
-_0808F18E:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, r4
- bne _0808F1A0
- adds r0, r3, 0
- b _0808F1AC
-_0808F1A0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- bcc _0808F18E
-_0808F1AA:
- movs r0, 0
-_0808F1AC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FindFieldObjectTemplateInArrayByLocalId
-
- thumb_func_start sub_808F1B4
-@ int sub_808F1B4(struct npc_state *fieldObject)
-sub_808F1B4: @ 808F1B4
- push {r4,r5,lr}
- adds r3, r0, 0
- ldrb r0, [r3, 0x9]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _0808F200
- ldrb r1, [r3, 0xA]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- beq _0808F1E2
- b _0808F200
- .pool
-_0808F1D8:
- movs r1, 0xC7
- lsls r1, 4
- adds r0, r1
- adds r0, r4, r0
- b _0808F202
-_0808F1E2:
- movs r1, 0
- adds r4, r2, 0
- ldrb r3, [r3, 0x8]
- movs r5, 0xC7
- lsls r5, 4
- adds r2, r4, r5
- movs r0, 0
-_0808F1F0:
- ldrb r5, [r2]
- cmp r3, r5
- beq _0808F1D8
- adds r2, 0x18
- adds r0, 0x18
- adds r1, 0x1
- cmp r1, 0x3F
- ble _0808F1F0
-_0808F200:
- movs r0, 0
-_0808F202:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808F1B4
-
- thumb_func_start sub_808F208
-@ void sub_808F208(struct npc_state *fieldObject)
-sub_808F208: @ 808F208
- push {r4,lr}
- adds r4, r0, 0
- bl sub_808F1B4
- adds r1, r0, 0
- cmp r1, 0
- beq _0808F222
- ldrh r0, [r4, 0x10]
- subs r0, 0x7
- strh r0, [r1, 0x4]
- ldrh r0, [r4, 0x12]
- subs r0, 0x7
- strh r0, [r1, 0x6]
-_0808F222:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808F208
-
- thumb_func_start sub_808F228
-sub_808F228: @ 808F228
- push {r4,lr}
- adds r4, r1, 0
- bl sub_808F1B4
- cmp r0, 0
- beq _0808F236
- str r4, [r0, 0x10]
-_0808F236:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808F228
-
- thumb_func_start sub_808F23C
-sub_808F23C: @ 808F23C
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_808F1B4
- cmp r0, 0
- beq _0808F24C
- strb r4, [r0, 0x9]
-_0808F24C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808F23C
-
- thumb_func_start sub_808F254
-@ void sub_808F254(u8 localId, u8 mapId, u8 mapGroupId)
-sub_808F254: @ 808F254
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808F282
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl sub_808F208
-_0808F282:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808F254
-
- thumb_func_start sub_808F28C
-sub_808F28C: @ 808F28C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808F2E8
- cmp r4, 0x6
- beq _0808F2B6
- cmp r4, 0x7
- beq _0808F2D4
- b _0808F2E8
-_0808F2B6:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldr r1, =gUnknown_082766A2
- bl sub_808F228
- b _0808F2E8
- .pool
-_0808F2D4:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldr r1, =gUnknown_082766A6
- bl sub_808F228
-_0808F2E8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808F28C
-
- thumb_func_start npc_paltag_set_load
-npc_paltag_set_load: @ 808F2F8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl gpu_pal_allocator_reset__manage_upper_four
- ldr r1, =gUnknown_020375B6
- ldr r2, =0x000011ff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, =gUnknown_020375B4
- strb r4, [r2]
- cmp r4, 0x1
- bne _0808F344
- ldr r1, =gUnknown_0850BE38
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x6
- bl pal_patch_for_npc_range
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- b _0808F356
- .pool
-_0808F344:
- ldr r0, =gUnknown_0850BE38
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0
- movs r2, 0xA
- bl pal_patch_for_npc_range
-_0808F356:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_paltag_set_load
-
- thumb_func_start npc_paltag_by_palslot
-npc_paltag_by_palslot: @ 808F360
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9
- bhi _0808F39C
- ldr r1, =gUnknown_0850BE38
- ldr r0, =gUnknown_020375B4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- b _0808F390
- .pool
-_0808F384:
- adds r1, r4, 0x4
- adds r1, r2, r1
- ldr r0, =gUnknown_020375B4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
-_0808F390:
- adds r0, r1
- ldrh r0, [r0]
- b _0808F3CE
- .pool
-_0808F39C:
- movs r3, 0
- ldr r0, =gUnknown_0850BD78
- ldrh r1, [r0]
- ldr r2, =0x000011ff
- adds r4, r0, 0
- cmp r1, r2
- beq _0808F3CC
- adds r6, r4, 0
- ldr r0, =gUnknown_020375B6
- ldrh r1, [r0]
- adds r5, r2, 0
-_0808F3B2:
- lsls r2, r3, 3
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r1
- beq _0808F384
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r5
- bne _0808F3B2
-_0808F3CC:
- ldr r0, =0x000011ff
-_0808F3CE:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end npc_paltag_by_palslot
-
- thumb_func_start FieldObjectCB_NoMovement1
-FieldObjectCB_NoMovement1: @ 808F3E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_NoMovement1
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_NoMovement1
-
- thumb_func_start FieldObjectCB2_NoMovement1
-FieldObjectCB2_NoMovement1: @ 808F404
- movs r0, 0
- bx lr
- thumb_func_end FieldObjectCB2_NoMovement1
-
- thumb_func_start FieldObjectCB_GoRandomDirections
-FieldObjectCB_GoRandomDirections: @ 808F408
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_GoRandomDirections
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoRandomDirections
-
- thumb_func_start FieldObjectCB2_GoRandomDirections
-FieldObjectCB2_GoRandomDirections: @ 808F42C
- push {r4,lr}
- ldr r3, =gUnknown_0850D6F4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_GoRandomDirections
-
- thumb_func_start sub_808F44C
-sub_808F44C: @ 808F44C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808F44C
-
- thumb_func_start sub_808F460
-sub_808F460: @ 808F460
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808F460
-
- thumb_func_start sub_808F48C
-sub_808F48C: @ 808F48C
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808F4C0
- ldr r5, =gUnknown_0850D6DC
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8097978
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0808F4C2
- .pool
-_0808F4C0:
- movs r0, 0
-_0808F4C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808F48C
-
- thumb_func_start sub_808F4C8
-sub_808F4C8: @ 808F4C8
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _0808F4DC
- movs r0, 0
- b _0808F4E2
-_0808F4DC:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808F4E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808F4C8
-
- thumb_func_start sub_808F4E8
-sub_808F4E8: @ 808F4E8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, =gUnknown_0850D710
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8092B88
- lsls r0, 24
- cmp r0, 0
- beq _0808F526
- movs r0, 0x1
- strh r0, [r6, 0x30]
-_0808F526:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808F4E8
-
- thumb_func_start sub_808F534
-sub_808F534: @ 808F534
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808F534
-
- thumb_func_start sub_808F564
-sub_808F564: @ 808F564
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808F582
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0808F582:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808F564
-
- thumb_func_start FieldObjectIsTrainerAndCloseToPlayer
-@ bool8 FieldObjectIsTrainerAndCloseToPlayer(struct npc_state *fieldObject)
-FieldObjectIsTrainerAndCloseToPlayer: @ 808F58C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r0, 0x80
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808F5F8
- ldrb r0, [r5, 0x7]
- cmp r0, 0x1
- beq _0808F5A8
- cmp r0, 0x3
- bne _0808F5F8
-_0808F5A8:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- ldrh r2, [r5, 0x10]
- ldrh r4, [r5, 0x12]
- ldrb r1, [r5, 0x1D]
- subs r3, r2, r1
- subs r0, r4, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r2, r1, r2
- lsls r2, 16
- lsrs r2, 16
- adds r1, r4
- lsls r1, 16
- lsrs r6, r1, 16
- mov r0, sp
- lsls r3, 16
- asrs r3, 16
- movs r1, 0
- ldrsh r4, [r0, r1]
- cmp r3, r4
- bgt _0808F5F8
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r4
- blt _0808F5F8
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r0, r1
- bgt _0808F5F8
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, r1
- bge _0808F5FC
-_0808F5F8:
- movs r0, 0
- b _0808F5FE
-_0808F5FC:
- movs r0, 0x1
-_0808F5FE:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsTrainerAndCloseToPlayer
-
- thumb_func_start sub_808F608
-sub_808F608: @ 808F608
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsls r3, 16
- cmp r2, r3
- ble _0808F626
- movs r2, 0x4
- lsls r0, r4, 16
- cmp r0, 0
- bge _0808F630
- movs r2, 0x3
- b _0808F630
-_0808F626:
- movs r2, 0x1
- lsls r0, 16
- cmp r0, 0
- bge _0808F630
- movs r2, 0x2
-_0808F630:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808F608
-
- thumb_func_start sub_808F638
-sub_808F638: @ 808F638
- push {lr}
- movs r0, 0x1
- lsls r1, 16
- cmp r1, 0
- bge _0808F644
- movs r0, 0x2
-_0808F644:
- pop {r1}
- bx r1
- thumb_func_end sub_808F638
-
- thumb_func_start sub_808F648
-sub_808F648: @ 808F648
- push {lr}
- movs r1, 0x4
- lsls r0, 16
- cmp r0, 0
- bge _0808F654
- movs r1, 0x3
-_0808F654:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_808F648
-
- thumb_func_start sub_808F65C
-sub_808F65C: @ 808F65C
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F698
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0808F6B2
- b _0808F6B0
-_0808F698:
- cmp r0, 0x4
- bne _0808F6B2
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F6B2
-_0808F6B0:
- movs r0, 0x2
-_0808F6B2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F65C
-
- thumb_func_start sub_808F6B8
-sub_808F6B8: @ 808F6B8
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F6F4
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808F70E
- b _0808F70C
-_0808F6F4:
- cmp r0, 0x3
- bne _0808F70E
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F70E
-_0808F70C:
- movs r0, 0x2
-_0808F70E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F6B8
-
- thumb_func_start sub_808F714
-sub_808F714: @ 808F714
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F750
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0808F76A
- b _0808F768
-_0808F750:
- cmp r0, 0x4
- bne _0808F76A
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F76A
-_0808F768:
- movs r0, 0x1
-_0808F76A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F714
-
- thumb_func_start sub_808F770
-sub_808F770: @ 808F770
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F7AC
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808F7C6
- b _0808F7C4
-_0808F7AC:
- cmp r0, 0x3
- bne _0808F7C6
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F7C6
-_0808F7C4:
- movs r0, 0x1
-_0808F7C6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F770
-
- thumb_func_start sub_808F7CC
-sub_808F7CC: @ 808F7CC
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0808F802
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
-_0808F802:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F7CC
-
- thumb_func_start sub_808F808
-sub_808F808: @ 808F808
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808F83E
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F638
- lsls r0, 24
- lsrs r0, 24
-_0808F83E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F808
-
- thumb_func_start sub_808F844
-sub_808F844: @ 808F844
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F87A
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
-_0808F87A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F844
-
- thumb_func_start sub_808F880
-sub_808F880: @ 808F880
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F608
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F8B6
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_808F648
- lsls r0, 24
- lsrs r0, 24
-_0808F8B6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F880
-
- thumb_func_start sub_808F8BC
-sub_808F8BC: @ 808F8BC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- bne _0808F8D4
- movs r0, 0
- b _0808F938
-_0808F8D4:
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- mov r2, sp
- mov r0, sp
- ldrh r0, [r0]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r5]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r5]
- mov r0, sp
- ldrh r3, [r5]
- ldrh r2, [r0]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0808F908
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_0808F908:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _0808F916
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
-_0808F916:
- ldr r0, =gUnknown_0850D714
- lsls r4, r6, 2
- adds r4, r0
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- movs r6, 0
- ldrsh r1, [r5, r6]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- ldr r4, [r4]
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0808F938:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808F8BC
-
- thumb_func_start FieldObjectCB_LookRandomDirections
-FieldObjectCB_LookRandomDirections: @ 808F944
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_LookRandomDirections
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_LookRandomDirections
-
- thumb_func_start FieldObjectCB2_LookRandomDirections
-@ bool8 FieldObjectCB2_LookRandomDirections(struct npc_state *fieldObject, struct obj *object)
-FieldObjectCB2_LookRandomDirections: @ 808F968
- push {r4,lr}
- ldr r3, =gUnknown_0850D740
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_LookRandomDirections
-
- thumb_func_start sub_808F988
-@ bool8 sub_808F988(struct npc_state *fieldObject, struct obj *object)
-sub_808F988: @ 808F988
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808F988
-
- thumb_func_start sub_808F99C
-@ bool8 sub_808F99C(struct npc_state *fieldObject, struct obj *object)
-sub_808F99C: @ 808F99C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808F99C
-
- thumb_func_start sub_808F9C8
-@ bool8 sub_808F9C8(struct npc_state *fieldObject, struct obj *object)
-sub_808F9C8: @ 808F9C8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808F9FE
- ldr r4, =gUnknown_0850D6DC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0808F9FE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808F9C8
-
- thumb_func_start sub_808FA0C
-@ bool8 sub_808FA0C(struct npc_state *fieldObject, struct obj *object)
-sub_808FA0C: @ 808FA0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _0808FA2A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0808FA32
-_0808FA2A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0808FA34
-_0808FA32:
- movs r0, 0
-_0808FA34:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FA0C
-
- thumb_func_start sub_808FA3C
-@ bool8 sub_808FA3C(struct npc_state *fieldObject, struct obj *object)
-sub_808FA3C: @ 808FA3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D710
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0808FA6C
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0808FA6C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808FA3C
-
- thumb_func_start FieldObjectCB_RandomlyGoNorthOrSouth
-FieldObjectCB_RandomlyGoNorthOrSouth: @ 808FA84
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_RandomlyGoNorthOrSouth
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyGoNorthOrSouth
-
- thumb_func_start FieldObjectCB2_RandomlyGoNorthOrSouth
-FieldObjectCB2_RandomlyGoNorthOrSouth: @ 808FAA8
- push {r4,lr}
- ldr r3, =gUnknown_0850D754
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_RandomlyGoNorthOrSouth
-
- thumb_func_start sub_808FAC8
-sub_808FAC8: @ 808FAC8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FAC8
-
- thumb_func_start sub_808FADC
-sub_808FADC: @ 808FADC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FADC
-
- thumb_func_start sub_808FB08
-@ bool8 sub_808FB08(struct npc_state *fieldObject, struct obj *object)
-sub_808FB08: @ 808FB08
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808FB3C
- ldr r5, =gUnknown_0850D6DC
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8097978
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0808FB3E
- .pool
-_0808FB3C:
- movs r0, 0
-_0808FB3E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808FB08
-
- thumb_func_start sub_808FB44
-@ bool8 sub_808FB44(struct npc_state *fieldObject, struct obj *object)
-sub_808FB44: @ 808FB44
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _0808FB58
- movs r0, 0
- b _0808FB5E
-_0808FB58:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808FB5E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FB44
-
- thumb_func_start sub_808FB64
-@ bool8 sub_808FB64(struct npc_state *fieldObject, struct obj *object)
-sub_808FB64: @ 808FB64
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, =gUnknown_0850D770
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8092B88
- lsls r0, 24
- cmp r0, 0
- beq _0808FBA2
- strh r7, [r6, 0x30]
-_0808FBA2:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808FB64
-
- thumb_func_start sub_808FBB0
-sub_808FBB0: @ 808FBB0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FBB0
-
- thumb_func_start sub_808FBE0
-sub_808FBE0: @ 808FBE0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808FBFE
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0808FBFE:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FBE0
-
- thumb_func_start FieldObjectCB_RandomlyGoEastOrWest
-FieldObjectCB_RandomlyGoEastOrWest: @ 808FC08
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_RandomlyGoEastOrWest
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyGoEastOrWest
-
- thumb_func_start FieldObjectCB2_RandomlyGoEastOrWest
-FieldObjectCB2_RandomlyGoEastOrWest: @ 808FC2C
- push {r4,lr}
- ldr r3, =gUnknown_0850D774
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_RandomlyGoEastOrWest
-
- thumb_func_start sub_808FC4C
-sub_808FC4C: @ 808FC4C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FC4C
-
- thumb_func_start sub_808FC60
-sub_808FC60: @ 808FC60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FC60
-
- thumb_func_start sub_808FC8C
-sub_808FC8C: @ 808FC8C
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808FCC0
- ldr r5, =gUnknown_0850D6DC
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8097978
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0808FCC2
- .pool
-_0808FCC0:
- movs r0, 0
-_0808FCC2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808FC8C
-
- thumb_func_start sub_808FCC8
-sub_808FCC8: @ 808FCC8
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _0808FCDC
- movs r0, 0
- b _0808FCE2
-_0808FCDC:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808FCE2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FCC8
-
- thumb_func_start sub_808FCE8
-sub_808FCE8: @ 808FCE8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, =gUnknown_0850D790
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8092B88
- lsls r0, 24
- cmp r0, 0
- beq _0808FD26
- strh r7, [r6, 0x30]
-_0808FD26:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808FCE8
-
- thumb_func_start sub_808FD34
-sub_808FD34: @ 808FD34
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FD34
-
- thumb_func_start sub_808FD64
-sub_808FD64: @ 808FD64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0808FD82
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0808FD82:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FD64
-
- thumb_func_start FieldObjectCB_FaceFixedDirection
-FieldObjectCB_FaceFixedDirection: @ 808FD8C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_FaceFixedDirection
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_FaceFixedDirection
-
- thumb_func_start FieldObjectCB2_FaceFixedDirection
-@ bool8 FieldObjectCB2_FaceFixedDirection(struct npc_state *fieldObject, struct obj *object)
-FieldObjectCB2_FaceFixedDirection: @ 808FDB0
- push {r4,lr}
- ldr r3, =gUnknown_0850D794
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_FaceFixedDirection
-
- thumb_func_start sub_808FDD0
-@ bool8 sub_808FDD0(struct npc_state *fieldObject, struct obj *object)
-sub_808FDD0: @ 808FDD0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808FDD0
-
- thumb_func_start sub_808FDFC
-@ bool8 sub_808FDFC(struct npc_state *fieldObject, struct obj *object)
-sub_808FDFC: @ 808FDFC
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0808FE0E
- movs r0, 0
- b _0808FE14
-_0808FE0E:
- movs r0, 0x2
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808FE14:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FDFC
-
- thumb_func_start sub_808FE1C
-@ bool8 sub_808FE1C(struct npc_state *fieldObject, struct obj *object)
-sub_808FE1C: @ 808FE1C
- ldrb r2, [r0]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0
- bx lr
- thumb_func_end sub_808FE1C
-
- thumb_func_start FieldObjectCB_BerryTree
-FieldObjectCB_BerryTree: @ 808FE2C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808FE58
- adds r0, r5, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r4, 0x3C]
-_0808FE58:
- ldr r2, =FieldObjectCB2_BerryTree
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectStep
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_BerryTree
-
- thumb_func_start FieldObjectCB2_BerryTree
-FieldObjectCB2_BerryTree: @ 808FE70
- push {r4,lr}
- ldr r3, =gUnknown_0850D7A0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_BerryTree
-
- thumb_func_start do_berry_tree_growth_sparkle_1
-@ bool8 do_berry_tree_growth_sparkle_1(struct npc_state *fieldObject, struct obj *object)
-do_berry_tree_growth_sparkle_1: @ 808FE90
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r6, r5, 0
- adds r6, 0x3E
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r4, 0x1D]
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0808FF00
- ldrh r1, [r5, 0x3C]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0808FEF6
- subs r6, 0x14
- ldrb r0, [r6]
- cmp r0, 0x4
- bne _0808FEF6
- ldr r1, =gUnknown_02038C08
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r5, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- strb r7, [r6]
-_0808FEF6:
- movs r0, 0
- b _0808FF42
- .pool
-_0808FF00:
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r7
- bne _0808FF3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl get_berry_tree_graphics
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x39
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- b _0808FF42
-_0808FF3C:
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
-_0808FF42:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end do_berry_tree_growth_sparkle_1
-
- thumb_func_start sub_808FF48
-@ bool8 sub_808FF48(struct npc_state *fieldObject, struct obj *object)
-sub_808FF48: @ 808FF48
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0808FF5A
- movs r0, 0
- b _0808FF60
-_0808FF5A:
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808FF60:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FF48
-
- thumb_func_start do_berry_tree_growth_sparkle_2
-@ bool8 do_berry_tree_growth_sparkle_2(struct npc_state *fieldObject, struct obj *object)
-do_berry_tree_growth_sparkle_2: @ 808FF68
- push {r4,lr}
- ldrb r2, [r0]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0]
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x30]
- strh r3, [r1, 0x32]
- ldrh r3, [r1, 0x3C]
- movs r2, 0x2
- orrs r2, r3
- strh r2, [r1, 0x3C]
- ldr r3, =gUnknown_02038C08
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- str r0, [r3, 0x4]
- adds r0, r1, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_berry_tree_growth_sparkle_2
-
- thumb_func_start sub_808FFB4
-@ bool8 sub_808FFB4(struct npc_state *fieldObject, struct obj *object)
-sub_808FFB4: @ 808FFB4
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x2
- ands r1, r0
- lsls r1, 16
- lsrs r1, 17
- lsls r1, 5
- ldrb r2, [r3, 0x1]
- subs r0, 0x23
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0808FFEC
- movs r0, 0
- b _0808FFFE
-_0808FFEC:
- adds r0, r3, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0808FFFE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FFB4
-
- thumb_func_start sub_8090004
-@ bool8 sub_8090004(struct npc_state *fieldObject, struct obj *object)
-sub_8090004: @ 8090004
- push {r4,lr}
- adds r4, r1, 0
- ldrh r2, [r4, 0x32]
- adds r2, 0x1
- strh r2, [r4, 0x32]
- movs r1, 0x2
- ands r2, r1
- lsls r2, 16
- lsrs r2, 17
- lsls r2, 5
- ldrb r3, [r0, 0x1]
- subs r1, 0x23
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0809003A
- movs r0, 0
- b _08090048
-_0809003A:
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- subs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x1
-_08090048:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090004
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouth
-FieldObjectCB_RandomlyLookNorthOrSouth: @ 8090050
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_RandomlyLookNorthOrSouth
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouth
-
- thumb_func_start FieldObjectCB2_RandomlyLookNorthOrSouth
-FieldObjectCB2_RandomlyLookNorthOrSouth: @ 8090074
- push {r4,lr}
- ldr r3, =gUnknown_0850D7B4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_RandomlyLookNorthOrSouth
-
- thumb_func_start sub_8090094
-sub_8090094: @ 8090094
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090094
-
- thumb_func_start sub_80900A8
-sub_80900A8: @ 80900A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80900A8
-
- thumb_func_start sub_80900D4
-sub_80900D4: @ 80900D4
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809010A
- ldr r4, =gUnknown_0850D6DC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809010A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80900D4
-
- thumb_func_start sub_8090118
-sub_8090118: @ 8090118
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090136
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0809013E
-_08090136:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090140
-_0809013E:
- movs r0, 0
-_08090140:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090118
-
- thumb_func_start sub_8090148
-sub_8090148: @ 8090148
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D770
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090178
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090178:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090148
-
- thumb_func_start FieldObjectCB_RandomlyLookEastOrWest
-FieldObjectCB_RandomlyLookEastOrWest: @ 8090190
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_RandomlyLookEastOrWest
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookEastOrWest
-
- thumb_func_start FieldObjectCB2_RandomlyLookEastOrWest
-FieldObjectCB2_RandomlyLookEastOrWest: @ 80901B4
- push {r4,lr}
- ldr r3, =gUnknown_0850D7C8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_RandomlyLookEastOrWest
-
- thumb_func_start sub_80901D4
-sub_80901D4: @ 80901D4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80901D4
-
- thumb_func_start sub_80901E8
-sub_80901E8: @ 80901E8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80901E8
-
- thumb_func_start sub_8090214
-sub_8090214: @ 8090214
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809024A
- ldr r4, =gUnknown_0850D6DC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809024A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090214
-
- thumb_func_start sub_8090258
-sub_8090258: @ 8090258
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090276
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0809027E
-_08090276:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090280
-_0809027E:
- movs r0, 0
-_08090280:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090258
-
- thumb_func_start sub_8090288
-sub_8090288: @ 8090288
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D790
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080902B8
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_080902B8:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090288
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrWest
-FieldObjectCB_RandomlyLookNorthOrWest: @ 80902D0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =FieldObjectCB2_RandomlyLookNorthOrWest
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrWest
-
- thumb_func_start FieldObjectCB2_RandomlyLookNorthOrWest
-FieldObjectCB2_RandomlyLookNorthOrWest: @ 80902F4
- push {r4,lr}
- ldr r3, =gUnknown_0850D7DC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_RandomlyLookNorthOrWest
-
- thumb_func_start sub_8090314
-sub_8090314: @ 8090314
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090314
-
- thumb_func_start sub_8090328
-sub_8090328: @ 8090328
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090328
-
- thumb_func_start sub_8090354
-sub_8090354: @ 8090354
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809038A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809038A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090354
-
- thumb_func_start sub_8090398
-sub_8090398: @ 8090398
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _080903B6
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _080903BE
-_080903B6:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _080903C0
-_080903BE:
- movs r0, 0
-_080903C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090398
-
- thumb_func_start sub_80903C8
-sub_80903C8: @ 80903C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D7F0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080903F8
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_080903F8:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80903C8
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrEast
-FieldObjectCB_RandomlyLookNorthOrEast: @ 8090410
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090434
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrEast
-
- thumb_func_start sub_8090434
-sub_8090434: @ 8090434
- push {r4,lr}
- ldr r3, =gUnknown_0850D7F4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090434
-
- thumb_func_start sub_8090454
-sub_8090454: @ 8090454
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090454
-
- thumb_func_start sub_8090468
-sub_8090468: @ 8090468
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090468
-
- thumb_func_start sub_8090494
-sub_8090494: @ 8090494
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _080904CA
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_080904CA:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090494
-
- thumb_func_start sub_80904D8
-sub_80904D8: @ 80904D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _080904F6
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _080904FE
-_080904F6:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090500
-_080904FE:
- movs r0, 0
-_08090500:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80904D8
-
- thumb_func_start sub_8090508
-sub_8090508: @ 8090508
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D808
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090538
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090538:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090508
-
- thumb_func_start FieldObjectCB_RandomlyLookSouthOrWest
-FieldObjectCB_RandomlyLookSouthOrWest: @ 8090550
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090574
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookSouthOrWest
-
- thumb_func_start sub_8090574
-sub_8090574: @ 8090574
- push {r4,lr}
- ldr r3, =gUnknown_0850D80C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090574
-
- thumb_func_start sub_8090594
-sub_8090594: @ 8090594
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090594
-
- thumb_func_start sub_80905A8
-sub_80905A8: @ 80905A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80905A8
-
- thumb_func_start sub_80905D4
-sub_80905D4: @ 80905D4
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809060A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809060A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80905D4
-
- thumb_func_start sub_8090618
-sub_8090618: @ 8090618
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090636
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0809063E
-_08090636:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090640
-_0809063E:
- movs r0, 0
-_08090640:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090618
-
- thumb_func_start sub_8090648
-sub_8090648: @ 8090648
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D820
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090678
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090678:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090648
-
- thumb_func_start FieldObjectCB_RandomlyLookSouthOrEast
-FieldObjectCB_RandomlyLookSouthOrEast: @ 8090690
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80906B4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookSouthOrEast
-
- thumb_func_start sub_80906B4
-sub_80906B4: @ 80906B4
- push {r4,lr}
- ldr r3, =gUnknown_0850D824
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80906B4
-
- thumb_func_start sub_80906D4
-sub_80906D4: @ 80906D4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80906D4
-
- thumb_func_start sub_80906E8
-sub_80906E8: @ 80906E8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80906E8
-
- thumb_func_start sub_8090714
-sub_8090714: @ 8090714
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809074A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809074A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090714
-
- thumb_func_start sub_8090758
-sub_8090758: @ 8090758
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090776
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0809077E
-_08090776:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090780
-_0809077E:
- movs r0, 0
-_08090780:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090758
-
- thumb_func_start sub_8090788
-sub_8090788: @ 8090788
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D838
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x6
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080907B8
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_080907B8:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090788
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrWest
-FieldObjectCB_RandomlyLookNorthOrSouthOrWest: @ 80907D0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80907F4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrWest
-
- thumb_func_start sub_80907F4
-sub_80907F4: @ 80907F4
- push {r4,lr}
- ldr r3, =gUnknown_0850D83C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80907F4
-
- thumb_func_start sub_8090814
-sub_8090814: @ 8090814
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090814
-
- thumb_func_start sub_8090828
-sub_8090828: @ 8090828
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090828
-
- thumb_func_start sub_8090854
-sub_8090854: @ 8090854
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809088A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0809088A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090854
-
- thumb_func_start sub_8090898
-sub_8090898: @ 8090898
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _080908B6
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _080908BE
-_080908B6:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _080908C0
-_080908BE:
- movs r0, 0
-_080908C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090898
-
- thumb_func_start sub_80908C8
-sub_80908C8: @ 80908C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D850
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x7
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080908F8
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_080908F8:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80908C8
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrEast
-FieldObjectCB_RandomlyLookNorthOrSouthOrEast: @ 8090910
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090934
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrEast
-
- thumb_func_start sub_8090934
-sub_8090934: @ 8090934
- push {r4,lr}
- ldr r3, =gUnknown_0850D854
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090934
-
- thumb_func_start sub_8090954
-sub_8090954: @ 8090954
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090954
-
- thumb_func_start sub_8090968
-sub_8090968: @ 8090968
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090968
-
- thumb_func_start sub_8090994
-sub_8090994: @ 8090994
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _080909CA
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_080909CA:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090994
-
- thumb_func_start sub_80909D8
-sub_80909D8: @ 80909D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _080909F6
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _080909FE
-_080909F6:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090A00
-_080909FE:
- movs r0, 0
-_08090A00:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80909D8
-
- thumb_func_start sub_8090A08
-sub_8090A08: @ 8090A08
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D868
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090A38
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090A38:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090A08
-
- thumb_func_start FieldObjectCB_RandomlyLookNorthOrEastOrWest
-FieldObjectCB_RandomlyLookNorthOrEastOrWest: @ 8090A50
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090A74
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookNorthOrEastOrWest
-
- thumb_func_start sub_8090A74
-sub_8090A74: @ 8090A74
- push {r4,lr}
- ldr r3, =gUnknown_0850D86C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090A74
-
- thumb_func_start sub_8090A94
-sub_8090A94: @ 8090A94
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090A94
-
- thumb_func_start sub_8090AA8
-sub_8090AA8: @ 8090AA8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090AA8
-
- thumb_func_start sub_8090AD4
-sub_8090AD4: @ 8090AD4
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _08090B0A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_08090B0A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090AD4
-
- thumb_func_start sub_8090B18
-sub_8090B18: @ 8090B18
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090B36
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _08090B3E
-_08090B36:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090B40
-_08090B3E:
- movs r0, 0
-_08090B40:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090B18
-
- thumb_func_start sub_8090B48
-sub_8090B48: @ 8090B48
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D880
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x9
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090B78
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090B78:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090B48
-
- thumb_func_start FieldObjectCB_RandomlyLookSouthOrEastOrWest
-FieldObjectCB_RandomlyLookSouthOrEastOrWest: @ 8090B90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090BB4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_RandomlyLookSouthOrEastOrWest
-
- thumb_func_start sub_8090BB4
-sub_8090BB4: @ 8090BB4
- push {r4,lr}
- ldr r3, =gUnknown_0850D884
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090BB4
-
- thumb_func_start sub_8090BD4
-sub_8090BD4: @ 8090BD4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090BD4
-
- thumb_func_start sub_8090BE8
-sub_8090BE8: @ 8090BE8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090BE8
-
- thumb_func_start sub_8090C14
-sub_8090C14: @ 8090C14
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _08090C4A
- ldr r4, =gUnknown_0850D6EC
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8097978
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_08090C4A:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090C14
-
- thumb_func_start sub_8090C58
-sub_8090C58: @ 8090C58
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090C76
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _08090C7E
-_08090C76:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _08090C80
-_08090C7E:
- movs r0, 0
-_08090C80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090C58
-
- thumb_func_start sub_8090C88
-sub_8090C88: @ 8090C88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D898
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0xA
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090CB8
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_08090CB8:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090C88
-
- thumb_func_start FieldObjectCB_LookAroundCounterclockwise
-FieldObjectCB_LookAroundCounterclockwise: @ 8090CD0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090CF4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_LookAroundCounterclockwise
-
- thumb_func_start sub_8090CF4
-sub_8090CF4: @ 8090CF4
- push {r4,lr}
- ldr r3, =gUnknown_0850D89C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090CF4
-
- thumb_func_start sub_8090D14
-sub_8090D14: @ 8090D14
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090D14
-
- thumb_func_start sub_8090D40
-sub_8090D40: @ 8090D40
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _08090D5A
- adds r0, r4, 0
- movs r1, 0x30
- bl sub_8097978
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_08090D5A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090D40
-
- thumb_func_start sub_8090D64
-sub_8090D64: @ 8090D64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090D82
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _08090D86
-_08090D82:
- movs r0, 0x3
- strh r0, [r5, 0x30]
-_08090D86:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090D64
-
- thumb_func_start sub_8090D90
-@ bool8 sub_8090D90(struct npc_state *fieldObject, struct obj *object)
-sub_8090D90: @ 8090D90
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D8AC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090DBC
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
-_08090DBC:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090D90
-
- thumb_func_start FieldObjectCB_LookAroundClockwise
-FieldObjectCB_LookAroundClockwise: @ 8090DD4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090DF8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_LookAroundClockwise
-
- thumb_func_start sub_8090DF8
-sub_8090DF8: @ 8090DF8
- push {r4,lr}
- ldr r3, =gUnknown_0850D8B4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090DF8
-
- thumb_func_start sub_8090E18
-sub_8090E18: @ 8090E18
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090E18
-
- thumb_func_start sub_8090E44
-sub_8090E44: @ 8090E44
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _08090E5E
- adds r0, r4, 0
- movs r1, 0x30
- bl sub_8097978
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_08090E5E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090E44
-
- thumb_func_start sub_8090E68
-sub_8090E68: @ 8090E68
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- bne _08090E86
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _08090E8A
-_08090E86:
- movs r0, 0x3
- strh r0, [r5, 0x30]
-_08090E8A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090E68
-
- thumb_func_start sub_8090E94
-sub_8090E94: @ 8090E94
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D8C4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_808F8BC
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08090EC0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
-_08090EC0:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090E94
-
- thumb_func_start FieldObjectCB_AlternatelyGoInOppositeDirections
-FieldObjectCB_AlternatelyGoInOppositeDirections: @ 8090ED8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8090EFC
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_AlternatelyGoInOppositeDirections
-
- thumb_func_start sub_8090EFC
-sub_8090EFC: @ 8090EFC
- push {r4,lr}
- ldr r3, =gUnknown_0850D8CC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090EFC
-
- thumb_func_start sub_8090F1C
-sub_8090F1C: @ 8090F1C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090F1C
-
- thumb_func_start sub_8090F30
-@ bool8 sub_8090F30(struct npc_state *fieldObject, struct obj *object)
-sub_8090F30: @ 8090F30
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, =gUnknown_085055CD
- ldrb r1, [r4, 0x6]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0
- beq _08090F52
- adds r0, r1, 0
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r1, r0, 24
-_08090F52:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8090F30
-
- thumb_func_start sub_8090F68
-@ bool8 sub_8090F68(struct npc_state *fieldObject, struct obj *object)
-sub_8090F68: @ 8090F68
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r7, r1, 0
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08090F98
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bne _08090F98
- movs r0, 0
- strb r0, [r2]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
-_08090F98:
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_8092B88
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r5, 0x1
- bne _08090FEE
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_8092B88
- lsls r0, 24
- lsrs r5, r0, 24
-_08090FEE:
- cmp r5, 0
- beq _08091000
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r6, r0, 24
-_08091000:
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x3
- strh r0, [r7, 0x30]
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090F68
-
- thumb_func_start sub_8091020
-@ bool8 sub_8091020(struct npc_state *fieldObject, struct obj *object)
-sub_8091020: @ 8091020
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809103E
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0809103E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091020
-
- thumb_func_start sub_8091048
-@ bool8 sub_8091048(struct npc_state *fieldObject, struct obj *object)
-sub_8091048: @ 8091048
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8091048
-
- thumb_func_start MoveFieldObjectInNextDirectionInSequence
-@ bool8 MoveFieldObjectInNextDirectionInSequence(struct npc_state *fieldObject, struct obj *object, u8 *directions)
-MoveFieldObjectInNextDirectionInSequence: @ 809105C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- mov r8, r1
- adds r7, r2, 0
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0809107E
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bne _0809107E
- movs r0, 0
- strb r0, [r2]
-_0809107E:
- adds r5, r4, 0
- adds r5, 0x21
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_8092B88
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080910D8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_8092B88
- lsls r0, 24
- lsrs r0, 24
-_080910D8:
- cmp r0, 0
- beq _080910EA
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r6, r0, 24
-_080910EA:
- adds r0, r4, 0
- mov r1, r8
- adds r2, r6, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- mov r1, r8
- strh r0, [r1, 0x30]
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MoveFieldObjectInNextDirectionInSequence
-
- thumb_func_start sub_8091110
-@ bool8 sub_8091110(struct npc_state *fieldObject, struct obj *object)
-sub_8091110: @ 8091110
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0809112E
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0809112E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091110
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence1
-FieldObjectCB_GoInDirectionSequence1: @ 8091138
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_809115C
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence1
-
- thumb_func_start sub_809115C
-sub_809115C: @ 809115C
- push {r4,lr}
- ldr r3, =gUnknown_0850D8DC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809115C
-
- thumb_func_start sub_809117C
-sub_809117C: @ 809117C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D8E8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080911A8
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080911A8
- movs r0, 0x3
- strb r0, [r2]
-_080911A8:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809117C
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence2
-FieldObjectCB_GoInDirectionSequence2: @ 80911C4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80911E8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence2
-
- thumb_func_start sub_80911E8
-sub_80911E8: @ 80911E8
- push {r4,lr}
- ldr r3, =gUnknown_0850D8EC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80911E8
-
- thumb_func_start sub_8091208
-sub_8091208: @ 8091208
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D8F8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08091234
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091234
- movs r0, 0x2
- strb r0, [r2]
-_08091234:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091208
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence3
-FieldObjectCB_GoInDirectionSequence3: @ 8091250
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091274
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence3
-
- thumb_func_start sub_8091274
-sub_8091274: @ 8091274
- push {r4,lr}
- ldr r3, =gUnknown_0850D8FC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091274
-
- thumb_func_start sub_8091294
-sub_8091294: @ 8091294
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D908
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080912C0
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080912C0
- movs r0, 0x2
- strb r0, [r2]
-_080912C0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091294
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence4
-FieldObjectCB_GoInDirectionSequence4: @ 80912DC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091300
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence4
-
- thumb_func_start sub_8091300
-sub_8091300: @ 8091300
- push {r4,lr}
- ldr r3, =gUnknown_0850D90C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091300
-
- thumb_func_start sub_8091320
-sub_8091320: @ 8091320
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D918
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0809134C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0809134C
- movs r0, 0x3
- strb r0, [r2]
-_0809134C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091320
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence5
-FieldObjectCB_GoInDirectionSequence5: @ 8091368
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_809138C
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence5
-
- thumb_func_start sub_809138C
-sub_809138C: @ 809138C
- push {r4,lr}
- ldr r3, =gUnknown_0850D91C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809138C
-
- thumb_func_start sub_80913AC
-@ bool8 sub_80913AC(struct npc_state *fieldObject, struct obj *object)
-sub_80913AC: @ 80913AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D928
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080913D8
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080913D8
- movs r0, 0x3
- strb r0, [r2]
-_080913D8:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80913AC
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence6
-FieldObjectCB_GoInDirectionSequence6: @ 80913F4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091418
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence6
-
- thumb_func_start sub_8091418
-sub_8091418: @ 8091418
- push {r4,lr}
- ldr r3, =gUnknown_0850D92C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091418
-
- thumb_func_start sub_8091438
-sub_8091438: @ 8091438
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D938
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08091464
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091464
- movs r0, 0x2
- strb r0, [r2]
-_08091464:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091438
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence7
-FieldObjectCB_GoInDirectionSequence7: @ 8091480
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80914A4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence7
-
- thumb_func_start sub_80914A4
-sub_80914A4: @ 80914A4
- push {r4,lr}
- ldr r3, =gUnknown_0850D93C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80914A4
-
- thumb_func_start sub_80914C4
-sub_80914C4: @ 80914C4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D710
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080914F0
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080914F0
- movs r0, 0x2
- strb r0, [r2]
-_080914F0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80914C4
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence8
-FieldObjectCB_GoInDirectionSequence8: @ 809150C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091530
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence8
-
- thumb_func_start sub_8091530
-sub_8091530: @ 8091530
- push {r4,lr}
- ldr r3, =gUnknown_0850D948
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091530
-
- thumb_func_start sub_8091550
-sub_8091550: @ 8091550
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D954
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0809157C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0809157C
- movs r0, 0x3
- strb r0, [r2]
-_0809157C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091550
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence9
-FieldObjectCB_GoInDirectionSequence9: @ 8091598
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80915BC
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence9
-
- thumb_func_start sub_80915BC
-sub_80915BC: @ 80915BC
- push {r4,lr}
- ldr r3, =gUnknown_0850D958
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80915BC
-
- thumb_func_start sub_80915DC
-sub_80915DC: @ 80915DC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D964
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091608
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091608
- movs r0, 0x3
- strb r0, [r2]
-_08091608:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80915DC
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence10
-FieldObjectCB_GoInDirectionSequence10: @ 8091624
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091648
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence10
-
- thumb_func_start sub_8091648
-sub_8091648: @ 8091648
- push {r4,lr}
- ldr r3, =gUnknown_0850D968
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091648
-
- thumb_func_start sub_8091668
-sub_8091668: @ 8091668
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D974
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08091694
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091694
- movs r0, 0x2
- strb r0, [r2]
-_08091694:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091668
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence11
-FieldObjectCB_GoInDirectionSequence11: @ 80916B0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80916D4
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence11
-
- thumb_func_start sub_80916D4
-sub_80916D4: @ 80916D4
- push {r4,lr}
- ldr r3, =gUnknown_0850D978
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80916D4
-
- thumb_func_start sub_80916F4
-sub_80916F4: @ 80916F4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D984
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08091720
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091720
- movs r0, 0x2
- strb r0, [r2]
-_08091720:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80916F4
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence12
-FieldObjectCB_GoInDirectionSequence12: @ 809173C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091760
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence12
-
- thumb_func_start sub_8091760
-sub_8091760: @ 8091760
- push {r4,lr}
- ldr r3, =gUnknown_0850D988
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091760
-
- thumb_func_start sub_8091780
-sub_8091780: @ 8091780
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D994
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080917AC
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080917AC
- movs r0, 0x3
- strb r0, [r2]
-_080917AC:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091780
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence13
-FieldObjectCB_GoInDirectionSequence13: @ 80917C8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80917EC
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence13
-
- thumb_func_start sub_80917EC
-sub_80917EC: @ 80917EC
- push {r4,lr}
- ldr r3, =gUnknown_0850D998
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80917EC
-
- thumb_func_start sub_809180C
-sub_809180C: @ 809180C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9A4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091838
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091838
- movs r0, 0x3
- strb r0, [r2]
-_08091838:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809180C
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence14
-FieldObjectCB_GoInDirectionSequence14: @ 8091854
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091878
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence14
-
- thumb_func_start sub_8091878
-sub_8091878: @ 8091878
- push {r4,lr}
- ldr r3, =gUnknown_0850D9A8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091878
-
- thumb_func_start sub_8091898
-sub_8091898: @ 8091898
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9B4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080918C4
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080918C4
- movs r0, 0x2
- strb r0, [r2]
-_080918C4:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091898
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence15
-FieldObjectCB_GoInDirectionSequence15: @ 80918E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091904
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence15
-
- thumb_func_start sub_8091904
-sub_8091904: @ 8091904
- push {r4,lr}
- ldr r3, =gUnknown_0850D9B8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091904
-
- thumb_func_start sub_8091924
-sub_8091924: @ 8091924
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9C4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08091950
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091950
- movs r0, 0x2
- strb r0, [r2]
-_08091950:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091924
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence16
-FieldObjectCB_GoInDirectionSequence16: @ 809196C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091990
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence16
-
- thumb_func_start sub_8091990
-sub_8091990: @ 8091990
- push {r4,lr}
- ldr r3, =gUnknown_0850D9C8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091990
-
- thumb_func_start sub_80919B0
-sub_80919B0: @ 80919B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9D4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080919DC
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080919DC
- movs r0, 0x3
- strb r0, [r2]
-_080919DC:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80919B0
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence17
-FieldObjectCB_GoInDirectionSequence17: @ 80919F8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091A1C
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence17
-
- thumb_func_start sub_8091A1C
-sub_8091A1C: @ 8091A1C
- push {r4,lr}
- ldr r3, =gUnknown_0850D9D8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091A1C
-
- thumb_func_start sub_8091A3C
-sub_8091A3C: @ 8091A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9E4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091A68
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091A68
- movs r0, 0x3
- strb r0, [r2]
-_08091A68:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091A3C
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence18
-FieldObjectCB_GoInDirectionSequence18: @ 8091A84
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091AA8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence18
-
- thumb_func_start sub_8091AA8
-sub_8091AA8: @ 8091AA8
- push {r4,lr}
- ldr r3, =gUnknown_0850D9E8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091AA8
-
- thumb_func_start sub_8091AC8
-sub_8091AC8: @ 8091AC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850D9F4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091AF4
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091AF4
- movs r0, 0x3
- strb r0, [r2]
-_08091AF4:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091AC8
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence19
-FieldObjectCB_GoInDirectionSequence19: @ 8091B10
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091B34
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence19
-
- thumb_func_start sub_8091B34
-sub_8091B34: @ 8091B34
- push {r4,lr}
- ldr r3, =gUnknown_0850D9F8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091B34
-
- thumb_func_start sub_8091B54
-sub_8091B54: @ 8091B54
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA04
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091B80
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091B80
- movs r0, 0x3
- strb r0, [r2]
-_08091B80:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091B54
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence20
-FieldObjectCB_GoInDirectionSequence20: @ 8091B9C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091BC0
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence20
-
- thumb_func_start sub_8091BC0
-sub_8091BC0: @ 8091BC0
- push {r4,lr}
- ldr r3, =gUnknown_0850DA08
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091BC0
-
- thumb_func_start sub_8091BE0
-sub_8091BE0: @ 8091BE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA14
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091C0C
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091C0C
- movs r0, 0x3
- strb r0, [r2]
-_08091C0C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091BE0
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence21
-FieldObjectCB_GoInDirectionSequence21: @ 8091C28
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091C4C
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence21
-
- thumb_func_start sub_8091C4C
-sub_8091C4C: @ 8091C4C
- push {r4,lr}
- ldr r3, =gUnknown_0850DA18
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091C4C
-
- thumb_func_start sub_8091C6C
-sub_8091C6C: @ 8091C6C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA24
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091C98
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091C98
- movs r0, 0x3
- strb r0, [r2]
-_08091C98:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091C6C
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence22
-FieldObjectCB_GoInDirectionSequence22: @ 8091CB4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091CD8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence22
-
- thumb_func_start sub_8091CD8
-sub_8091CD8: @ 8091CD8
- push {r4,lr}
- ldr r3, =gUnknown_0850DA28
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091CD8
-
- thumb_func_start sub_8091CF8
-sub_8091CF8: @ 8091CF8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA34
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091D24
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091D24
- movs r0, 0x3
- strb r0, [r2]
-_08091D24:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091CF8
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence23
-FieldObjectCB_GoInDirectionSequence23: @ 8091D40
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091D64
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence23
-
- thumb_func_start sub_8091D64
-sub_8091D64: @ 8091D64
- push {r4,lr}
- ldr r3, =gUnknown_0850DA38
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091D64
-
- thumb_func_start sub_8091D84
-sub_8091D84: @ 8091D84
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA44
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091DB0
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091DB0
- movs r0, 0x3
- strb r0, [r2]
-_08091DB0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091D84
-
- thumb_func_start FieldObjectCB_GoInDirectionSequence24
-FieldObjectCB_GoInDirectionSequence24: @ 8091DCC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091DF0
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_GoInDirectionSequence24
-
- thumb_func_start sub_8091DF0
-sub_8091DF0: @ 8091DF0
- push {r4,lr}
- ldr r3, =gUnknown_0850DA48
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091DF0
-
- thumb_func_start sub_8091E10
-sub_8091E10: @ 8091E10
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DA54
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08091E3C
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _08091E3C
- movs r0, 0x3
- strb r0, [r2]
-_08091E3C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091E10
-
- thumb_func_start FieldObjectCB_CopyPlayer1
-FieldObjectCB_CopyPlayer1: @ 8091E58
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8091E7C
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_CopyPlayer1
-
- thumb_func_start sub_8091E7C
-sub_8091E7C: @ 8091E7C
- push {r4,lr}
- ldr r3, =gUnknown_0850DA58
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091E7C
-
- thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
-@ bool8 mss_npc_reset_oampriv3_1_unk2_unk3(struct npc_state *fieldObject, struct obj *object)
-mss_npc_reset_oampriv3_1_unk2_unk3: @ 8091E9C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- adds r4, 0x21
- ldrb r0, [r4]
- cmp r0, 0
- bne _08091EB4
- bl player_get_direction_lower_nybble
- strb r0, [r4]
-_08091EB4:
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3
-
- thumb_func_start sub_8091EC0
-@ bool8 sub_8091EC0(struct npc_state *fieldObject, struct obj *object)
-sub_8091EC0: @ 8091EC0
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, =gMapObjects
- ldr r3, =gUnknown_02037590
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _08091EE0
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _08091EEC
-_08091EE0:
- movs r0, 0
- b _08091F14
- .pool
-_08091EEC:
- ldr r5, =gUnknown_0850DA64
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- movs r3, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_08091F14:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091EC0
-
- thumb_func_start sub_8091F20
-sub_8091F20: @ 8091F20
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _08091F3E
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_08091F3E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091F20
-
- thumb_func_start sub_8091F48
-sub_8091F48: @ 8091F48
- movs r0, 0
- bx lr
- thumb_func_end sub_8091F48
-
- thumb_func_start sub_8091F4C
-sub_8091F4C: @ 8091F4C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091F4C
-
- thumb_func_start sub_8091F94
-sub_8091F94: @ 8091F94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r5, r2, 24
- adds r6, r5, 0
- bl FieldObjectIsFarawayIslandMew
- lsls r0, 24
- cmp r0, 0
- beq _08091FFC
- bl sub_81D427C
- adds r5, r0, 0
- cmp r5, 0
- bne _08092012
- adds r5, r6, 0
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r5, 0
- bl state_to_direction
- adds r5, r0, 0
- mov r3, sp
- adds r3, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl FieldObjectMoveDestCoords
- adds r0, r5, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- b _08092084
- .pool
-_08091FFC:
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r5, 0
- bl state_to_direction
- adds r5, r0, 0
-_08092012:
- mov r6, sp
- adds r6, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl FieldObjectMoveDestCoords
- adds r0, r5, 0
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r3, r5, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _08092070
- mov r1, r8
- cmp r1, 0
- beq _08092084
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _08092084
-_08092070:
- adds r0, r5, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_08092084:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8091F94
-
- thumb_func_start sub_80920A4
-sub_80920A4: @ 80920A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl GetGoSpeed1AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0809212A
- mov r1, r8
- cmp r1, 0
- beq _0809213E
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0809213E
-_0809212A:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0809213E:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80920A4
-
- thumb_func_start sub_809215C
-sub_809215C: @ 809215C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl GetGoSpeed3AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _080921E2
- mov r1, r8
- cmp r1, 0
- beq _080921F6
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _080921F6
-_080921E2:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_080921F6:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809215C
-
- thumb_func_start sub_8092214
-sub_8092214: @ 8092214
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_8093438
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0809229A
- mov r1, r8
- cmp r1, 0
- beq _080922AE
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _080922AE
-_0809229A:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_080922AE:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8092214
-
- thumb_func_start cph_IM_DIFFERENT
-cph_IM_DIFFERENT: @ 80922CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl sub_80934BC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end cph_IM_DIFFERENT
-
- thumb_func_start sub_8092314
-sub_8092314: @ 8092314
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_8093514
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0809239A
- mov r1, r8
- cmp r1, 0
- beq _080923AE
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _080923AE
-_0809239A:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_080923AE:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8092314
-
- thumb_func_start oac_hopping
-oac_hopping: @ 80923CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, =gUnknown_085055CD
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- movs r3, 0x2
- bl sub_8092F88
- adds r0, r6, 0
- bl GetJumpLedgeAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _08092460
- mov r1, r8
- cmp r1, 0
- beq _08092474
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _08092474
-_08092460:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_08092474:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oac_hopping
-
- thumb_func_start FieldObjectCB_CopyPlayer2
-FieldObjectCB_CopyPlayer2: @ 8092494
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80924B8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_CopyPlayer2
-
- thumb_func_start sub_80924B8
-sub_80924B8: @ 80924B8
- push {r4,lr}
- ldr r3, =gUnknown_0850DA90
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80924B8
-
- thumb_func_start mss_08062EA4
-mss_08062EA4: @ 80924D8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, =gMapObjects
- ldr r3, =gUnknown_02037590
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _080924F8
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _08092504
-_080924F8:
- movs r0, 0
- b _0809252C
- .pool
-_08092504:
- ldr r5, =gUnknown_0850DA64
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =sub_8088E64
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0809252C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end mss_08062EA4
-
- thumb_func_start FieldObjectCB_TreeDisguise
-@ void FieldObjectCB_TreeDisguise(struct obj *object)
-FieldObjectCB_TreeDisguise: @ 809253C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _08092564
- cmp r0, 0x1
- bne _08092584
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08092584
-_08092564:
- ldr r1, =gUnknown_02038C08
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1C
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_08092584:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldr r2, =sub_80925AC
- adds r1, r5, 0
- bl FieldObjectStep
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_TreeDisguise
-
- thumb_func_start sub_80925AC
-sub_80925AC: @ 80925AC
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80925AC
-
- thumb_func_start FieldObjectCB_MountainDisguise
-FieldObjectCB_MountainDisguise: @ 80925B8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _080925E0
- cmp r0, 0x1
- bne _08092600
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08092600
-_080925E0:
- ldr r1, =gUnknown_02038C08
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1D
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_08092600:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldr r2, =sub_80925AC
- adds r1, r5, 0
- bl FieldObjectStep
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_MountainDisguise
-
- thumb_func_start FieldObjectCB_Hidden1
-@ void FieldObjectCB_Hidden1(struct obj *object)
-FieldObjectCB_Hidden1: @ 8092628
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- ldr r4, =gMapObjects
- cmp r0, 0
- bne _08092668
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x3]
- adds r2, r3, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r3, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
-_08092668:
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r2, =sub_809268C
- adds r1, r3, 0
- bl FieldObjectStep
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_Hidden1
-
- thumb_func_start sub_809268C
-sub_809268C: @ 809268C
- push {r4,lr}
- ldr r3, =gUnknown_0850DA9C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809268C
-
- thumb_func_start sub_80926AC
-sub_80926AC: @ 80926AC
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80926AC
-
- thumb_func_start sub_80926B8
-@ bool8 sub_80926B8(struct npc_state *fieldObject, struct obj *object)
-sub_80926B8: @ 80926B8
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _080926CA
- movs r0, 0
- strh r0, [r4, 0x30]
-_080926CA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80926B8
-
- thumb_func_start FieldObjectCB_WalkInPlace1
-FieldObjectCB_WalkInPlace1: @ 80926D4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80926F8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_WalkInPlace1
-
- thumb_func_start sub_80926F8
-sub_80926F8: @ 80926F8
- push {r4,lr}
- ldr r3, =gUnknown_0850DAA0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80926F8
-
- thumb_func_start sub_8092718
-sub_8092718: @ 8092718
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092718
-
- thumb_func_start FieldObjectCB_WalkInPlace4
-FieldObjectCB_WalkInPlace4: @ 8092744
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8092768
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_WalkInPlace4
-
- thumb_func_start sub_8092768
-sub_8092768: @ 8092768
- push {r4,lr}
- ldr r3, =gUnknown_0850DAA8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8092768
-
- thumb_func_start sub_8092788
-sub_8092788: @ 8092788
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay32AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092788
-
- thumb_func_start FieldObjectCB_WalkInPlace2
-FieldObjectCB_WalkInPlace2: @ 80927B4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80927D8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_WalkInPlace2
-
- thumb_func_start sub_80927D8
-sub_80927D8: @ 80927D8
- push {r4,lr}
- ldr r3, =gUnknown_0850DAB0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80927D8
-
- thumb_func_start sub_80927F8
-@ bool8 sub_80927F8(struct npc_state *fieldObject, struct obj *object)
-sub_80927F8: @ 80927F8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay8AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80927F8
-
- thumb_func_start FieldObjectCB_WalkInPlace3
-FieldObjectCB_WalkInPlace3: @ 8092824
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_8092848
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_WalkInPlace3
-
- thumb_func_start sub_8092848
-sub_8092848: @ 8092848
- push {r4,lr}
- ldr r3, =gUnknown_0850DAB8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8092848
-
- thumb_func_start sub_8092868
-sub_8092868: @ 8092868
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092868
-
- thumb_func_start FieldObjectCB_Hidden2
-FieldObjectCB_Hidden2: @ 8092894
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80928B8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_Hidden2
-
- thumb_func_start sub_80928B8
-sub_80928B8: @ 80928B8
- push {r4,lr}
- ldr r3, =gUnknown_0850DAC0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80928B8
-
- thumb_func_start sub_80928D8
-sub_80928D8: @ 80928D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80928D8
-
- thumb_func_start sub_809290C
-sub_809290C: @ 809290C
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0809291E
- movs r0, 0
- b _08092924
-_0809291E:
- movs r0, 0x2
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_08092924:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809290C
-
- thumb_func_start sub_809292C
-sub_809292C: @ 809292C
- ldrb r2, [r0]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0
- bx lr
- thumb_func_end sub_809292C
-
- thumb_func_start npc_reset
-@ void npc_reset(struct npc_state *fieldObject, struct obj *object)
-npc_reset: @ 809293C
- ldrb r3, [r0]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- movs r3, 0x41
- negs r3, r3
- ands r2, r3
- movs r3, 0x7F
- ands r2, r3
- strb r2, [r0]
- movs r2, 0xFF
- strb r2, [r0, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x30]
- bx lr
- thumb_func_end npc_reset
-
- thumb_func_start FieldObjectDirectionToImageAnimId
-@ u8 FieldObjectDirectionToImageAnimId(u8 direction)
-FieldObjectDirectionToImageAnimId: @ 809295C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DACC
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end FieldObjectDirectionToImageAnimId
-
- thumb_func_start get_go_image_anim_num
-get_go_image_anim_num: @ 809296C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DAD5
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_go_image_anim_num
-
- thumb_func_start get_go_fast_image_anim_num
-get_go_fast_image_anim_num: @ 809297C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DADE
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_go_fast_image_anim_num
-
- thumb_func_start get_go_faster_image_anim_num
-get_go_faster_image_anim_num: @ 809298C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DAE7
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_go_faster_image_anim_num
-
- thumb_func_start get_go_fastest_image_anim_num
-get_go_fastest_image_anim_num: @ 809299C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DAF0
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_go_fastest_image_anim_num
-
- thumb_func_start sub_80929AC
-sub_80929AC: @ 80929AC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DAF9
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929AC
-
- thumb_func_start sub_80929BC
-sub_80929BC: @ 80929BC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB02
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929BC
-
- thumb_func_start sub_80929CC
-sub_80929CC: @ 80929CC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB0B
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929CC
-
- thumb_func_start sub_80929DC
-sub_80929DC: @ 80929DC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB14
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929DC
-
- thumb_func_start sub_80929EC
-sub_80929EC: @ 80929EC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB1D
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929EC
-
- thumb_func_start sub_80929FC
-sub_80929FC: @ 80929FC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB26
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80929FC
-
- thumb_func_start sub_8092A0C
-sub_8092A0C: @ 8092A0C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB2F
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8092A0C
-
- thumb_func_start sub_8092A1C
-sub_8092A1C: @ 8092A1C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB38
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8092A1C
-
- thumb_func_start sub_8092A2C
-sub_8092A2C: @ 8092A2C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB41
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8092A2C
-
- thumb_func_start get_run_image_anim_num
-get_run_image_anim_num: @ 8092A3C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB4A
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_run_image_anim_num
-
- thumb_func_start sub_8092A4C
-sub_8092A4C: @ 8092A4C
- push {lr}
- adds r2, r0, 0
- ldr r1, =gUnknown_085094AC
- b _08092A64
- .pool
-_08092A58:
- ldr r0, [r1]
- cmp r0, r2
- bne _08092A62
- adds r0, r1, 0
- b _08092A6C
-_08092A62:
- adds r1, 0x8
-_08092A64:
- ldr r0, [r1]
- cmp r0, 0
- bne _08092A58
- movs r0, 0
-_08092A6C:
- pop {r1}
- bx r1
- thumb_func_end sub_8092A4C
-
- thumb_func_start npc_apply_anim_looping
-@ void npc_apply_anim_looping(struct npc_state *fieldObject, struct obj *object, u8 anim)
-npc_apply_anim_looping: @ 8092A70
- push {r4,lr}
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _08092AB2
- adds r0, r4, 0
- adds r0, 0x2A
- strb r2, [r0]
- ldr r0, [r4, 0x8]
- bl sub_8092A4C
- adds r1, r4, 0
- adds r1, 0x2B
- cmp r0, 0
- beq _08092AAA
- ldrb r2, [r1]
- ldrb r3, [r0, 0x4]
- cmp r2, r3
- bne _08092AA0
- ldrb r0, [r0, 0x7]
- b _08092AA8
-_08092AA0:
- ldrb r3, [r0, 0x5]
- cmp r2, r3
- bne _08092AAA
- ldrb r0, [r0, 0x6]
-_08092AA8:
- strb r0, [r1]
-_08092AAA:
- ldrb r1, [r1]
- adds r0, r4, 0
- bl SeekSpriteAnim
-_08092AB2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_apply_anim_looping
-
- thumb_func_start obj_npc_animation_step
-@ void obj_npc_animation_step(struct npc_state *fieldObject, struct obj *object, u8 anim)
-obj_npc_animation_step: @ 8092AB8
- push {r4,lr}
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _08092AF0
- adds r0, r4, 0
- adds r0, 0x2A
- strb r2, [r0]
- ldr r0, [r4, 0x8]
- bl sub_8092A4C
- adds r2, r0, 0
- cmp r2, 0
- beq _08092AF0
- ldrb r1, [r2, 0x5]
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- ldrb r3, [r2, 0x4]
- cmp r0, r3
- bhi _08092AEA
- ldrb r1, [r2, 0x4]
-_08092AEA:
- adds r0, r4, 0
- bl SeekSpriteAnim
-_08092AF0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end obj_npc_animation_step
-
- thumb_func_start sub_8092AF8
-sub_8092AF8: @ 8092AF8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- ble _08092B12
- movs r0, 0x3
- b _08092B28
-_08092B12:
- cmp r0, r2
- bge _08092B1A
- movs r0, 0x4
- b _08092B28
-_08092B1A:
- lsls r1, 16
- lsls r0, r3, 16
- cmp r1, r0
- bgt _08092B26
- movs r0, 0x1
- b _08092B28
-_08092B26:
- movs r0, 0x2
-_08092B28:
- pop {r1}
- bx r1
- thumb_func_end sub_8092AF8
-
- thumb_func_start npc_set_running_behaviour_etc
-npc_set_running_behaviour_etc: @ 8092B2C
- push {r4,lr}
- mov r12, r0
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- strb r1, [r0, 0x6]
- adds r0, 0x21
- strb r3, [r0]
- adds r0, 0x1
- strb r3, [r0]
- ldr r4, =gSprites
- mov r0, r12
- ldrb r2, [r0, 0x4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r4, 0
- adds r2, 0x1C
- adds r0, r2
- ldr r2, =gUnknown_08505438
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- mov r0, r12
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_set_running_behaviour_etc
-
- thumb_func_start npc_running_behaviour_by_direction
-npc_running_behaviour_by_direction: @ 8092B78
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0850DB53
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end npc_running_behaviour_by_direction
-
- thumb_func_start sub_8092B88
-sub_8092B88: @ 8092B88
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r3, r5, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8092B88
-
- thumb_func_start npc_block_way
-@ u8 npc_block_way(struct npc_state *fieldObject, u16 x, u16 y, u8 direction)
-npc_block_way: @ 8092BC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r8, r7
- lsrs r0, r1, 16
- mov r9, r0
- asrs r5, r1, 16
- lsrs r0, r2, 16
- mov r10, r0
- asrs r4, r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl IsCoordOutsideFieldObjectMovementRect
- lsls r0, 24
- cmp r0, 0
- beq _08092BFE
- movs r0, 0x1
- b _08092C7E
-_08092BFE:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- bne _08092C40
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08092C40
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl IsMetatileDirectionallyImpassable
- lsls r0, 24
- cmp r0, 0
- bne _08092C40
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _08092C44
- mov r0, r8
- bl CanCameraMoveInDirection
- cmp r0, 0
- bne _08092C44
-_08092C40:
- movs r0, 0x2
- b _08092C7E
-_08092C44:
- ldrb r0, [r6, 0xB]
- lsls r0, 28
- lsrs r0, 28
- mov r2, r9
- lsls r1, r2, 16
- asrs r5, r1, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r4, r1, 16
- adds r1, r5, 0
- adds r2, r4, 0
- bl IsZCoordMismatchAt
- lsls r0, 24
- cmp r0, 0
- beq _08092C68
- movs r0, 0x3
- b _08092C7E
-_08092C68:
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForCollisionBetweenFieldObjects
- lsls r0, 24
- cmp r0, 0
- bne _08092C7C
- movs r0, 0
- b _08092C7E
-_08092C7C:
- movs r0, 0x4
-_08092C7E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end npc_block_way
-
- thumb_func_start sub_8092C8C
-sub_8092C8C: @ 8092C8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsrs r0, r1, 16
- mov r9, r0
- asrs r6, r1, 16
- lsrs r0, r2, 16
- mov r10, r0
- asrs r5, r2, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl IsCoordOutsideFieldObjectMovementRect
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- bne _08092D04
- adds r0, r6, 0
- adds r1, r5, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08092D04
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl IsMetatileDirectionallyImpassable
- lsls r0, 24
- cmp r0, 0
- bne _08092D04
- ldrb r0, [r7, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _08092D08
- mov r0, r8
- bl CanCameraMoveInDirection
- cmp r0, 0
- bne _08092D08
-_08092D04:
- movs r0, 0x2
- orrs r4, r0
-_08092D08:
- ldrb r0, [r7, 0xB]
- lsls r0, 28
- lsrs r0, 28
- mov r2, r9
- lsls r1, r2, 16
- asrs r6, r1, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r5, r1, 16
- adds r1, r6, 0
- adds r2, r5, 0
- bl IsZCoordMismatchAt
- lsls r0, 24
- cmp r0, 0
- beq _08092D30
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08092D30:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl CheckForCollisionBetweenFieldObjects
- lsls r0, 24
- cmp r0, 0
- beq _08092D48
- movs r0, 0x8
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08092D48:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8092C8C
-
- thumb_func_start IsCoordOutsideFieldObjectMovementRect
-@ bool8 IsCoordOutsideFieldObjectMovementRect(struct npc_state *fieldObject, u16 x, u16 y)
-IsCoordOutsideFieldObjectMovementRect: @ 8092D58
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- ldrb r1, [r4, 0x19]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _08092D90
- lsls r1, 28
- lsrs r2, r1, 28
- ldrh r0, [r4, 0xC]
- subs r2, r0, r2
- lsrs r1, 28
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r2, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- cmp r2, r0
- bgt _08092DBC
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r3
- blt _08092DBC
-_08092D90:
- ldrb r1, [r4, 0x19]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08092DC0
- lsls r1, 24
- lsrs r2, r1, 28
- ldrh r0, [r4, 0xE]
- subs r2, r0, r2
- lsrs r1, 28
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r2, 16
- lsls r0, r5, 16
- asrs r3, r0, 16
- cmp r2, r0
- bgt _08092DBC
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r3
- bge _08092DC0
-_08092DBC:
- movs r0, 0x1
- b _08092DC2
-_08092DC0:
- movs r0, 0
-_08092DC2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsCoordOutsideFieldObjectMovementRect
-
- thumb_func_start IsMetatileDirectionallyImpassable
-@ bool8 IsMetatileDirectionallyImpassable(struct npc_state *fieldObject, u16 x, u16 y, u8 direction)
-IsMetatileDirectionallyImpassable: @ 8092DC8
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 24
- ldr r1, =gUnknown_0850DB5C
- lsrs r3, 22
- subs r5, r3, 0x4
- adds r1, r5, r1
- ldrb r0, [r0, 0x1E]
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08092E0A
- ldr r4, =gUnknown_0850DB6C
- adds r4, r5, r4
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08092E18
-_08092E0A:
- movs r0, 0x1
- b _08092E1A
- .pool
-_08092E18:
- movs r0, 0
-_08092E1A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end IsMetatileDirectionallyImpassable
-
- thumb_func_start CheckForCollisionBetweenFieldObjects
-@ bool8 CheckForCollisionBetweenFieldObjects(struct npc_state *fieldObject, u16 x, u16 y)
-CheckForCollisionBetweenFieldObjects: @ 8092E20
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r4, 0
- lsls r2, 16
- asrs r5, r2, 16
-_08092E2E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r2, r0, r1
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _08092E88
- cmp r2, r6
- beq _08092E88
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r3, r0, 16
- cmp r1, r3
- bne _08092E58
- movs r1, 0x12
- ldrsh r0, [r2, r1]
- cmp r0, r5
- beq _08092E68
-_08092E58:
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, r3
- bne _08092E88
- movs r1, 0x16
- ldrsh r0, [r2, r1]
- cmp r0, r5
- bne _08092E88
-_08092E68:
- ldrb r0, [r6, 0xB]
- lsls r0, 28
- lsrs r0, 28
- ldrb r1, [r2, 0xB]
- lsls r1, 28
- lsrs r1, 28
- bl AreZCoordsCompatible
- lsls r0, 24
- cmp r0, 0
- beq _08092E88
- movs r0, 0x1
- b _08092E94
- .pool
-_08092E88:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08092E2E
- movs r0, 0
-_08092E94:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForCollisionBetweenFieldObjects
-
- thumb_func_start sub_8092E9C
-sub_8092E9C: @ 8092E9C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08092EE8
- ldr r3, =gSprites
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x3C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08092EE8
- movs r0, 0x1
- b _08092EEA
- .pool
-_08092EE8:
- movs r0, 0
-_08092EEA:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8092E9C
-
- thumb_func_start sub_8092EF0
-sub_8092EF0: @ 8092EF0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08092F2E
- ldr r3, =gSprites
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x3C]
- movs r0, 0x4
- orrs r0, r2
- strh r0, [r1, 0x3C]
-_08092F2E:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8092EF0
-
- thumb_func_start MoveCoords
-@ void MoveCoords(u8 direction, u16 *x, u16 *y)
-MoveCoords: @ 8092F3C
- push {r4,lr}
- lsls r0, 24
- ldr r3, =gUnknown_0850DB7C
- lsrs r0, 22
- adds r0, r3
- ldrh r3, [r0]
- ldrh r4, [r1]
- adds r3, r4
- strh r3, [r1]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MoveCoords
-
- thumb_func_start sub_8092F60
-sub_8092F60: @ 8092F60
- push {r4,lr}
- lsls r0, 24
- ldr r3, =gUnknown_0850DB7C
- lsrs r0, 22
- adds r0, r3
- ldrh r3, [r0]
- lsls r3, 4
- ldrh r4, [r1]
- adds r3, r4
- strh r3, [r1]
- ldrh r0, [r0, 0x2]
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8092F60
-
- thumb_func_start sub_8092F88
-sub_8092F88: @ 8092F88
- push {r4-r7,lr}
- adds r4, r1, 0
- ldr r1, [sp, 0x14]
- lsls r0, 24
- lsls r3, 16
- lsrs r3, 16
- adds r7, r3, 0
- lsls r1, 16
- lsrs r6, r1, 16
- mov r12, r6
- ldr r1, =gUnknown_0850DB7C
- lsrs r0, 22
- adds r5, r0, r1
- movs r0, 0
- ldrsh r1, [r5, r0]
- cmp r1, 0
- ble _08092FB4
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r4]
- adds r0, r3
- strh r0, [r4]
-_08092FB4:
- cmp r1, 0
- bge _08092FC2
- ldrh r1, [r4]
- lsls r0, r7, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r4]
-_08092FC2:
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- cmp r1, 0
- ble _08092FD4
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r3, [r2]
- adds r0, r3
- strh r0, [r2]
-_08092FD4:
- cmp r1, 0
- bge _08092FE4
- ldrh r1, [r2]
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2]
-_08092FE4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8092F88
-
- thumb_func_start sub_8092FF0
-sub_8092FF0: @ 8092FF0
- push {r4,r5,lr}
- ldr r5, =gSaveBlock1Ptr
- ldr r4, [r5]
- ldrh r4, [r4]
- lsls r0, 16
- asrs r0, 16
- subs r0, r4
- lsls r0, 4
- strh r0, [r2]
- ldr r0, [r5]
- ldrh r0, [r0, 0x2]
- lsls r1, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 4
- strh r1, [r3]
- ldr r1, =gUnknown_03005DEC
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r1, =gUnknown_03005DE8
- ldrh r0, [r3]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8092FF0
-
- thumb_func_start sub_8093038
-sub_8093038: @ 8093038
- push {r4-r7,lr}
- adds r7, r2, 0
- mov r12, r3
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, =gUnknown_03005DEC
- ldrh r0, [r0]
- negs r0, r0
- ldr r1, =gUnknown_03005DD0
- ldr r2, [r1, 0x10]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =gUnknown_03005DE8
- ldrh r0, [r0]
- negs r0, r0
- ldr r1, [r1, 0x14]
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r2, 0
- ble _08093072
- lsls r0, r3, 16
- movs r3, 0x80
- lsls r3, 13
- adds r0, r3
- lsrs r3, r0, 16
-_08093072:
- cmp r2, 0
- bge _0809307E
- lsls r0, r3, 16
- ldr r2, =0xfff00000
- adds r0, r2
- lsrs r3, r0, 16
-_0809307E:
- cmp r1, 0
- ble _0809308C
- lsls r0, r4, 16
- movs r2, 0x80
- lsls r2, 13
- adds r0, r2
- lsrs r4, r0, 16
-_0809308C:
- cmp r1, 0
- bge _08093098
- lsls r0, r4, 16
- ldr r1, =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_08093098:
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- ldrh r1, [r0]
- lsls r0, r5, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r0
- strh r1, [r7]
- ldr r0, [r2]
- ldrh r1, [r0, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- lsls r1, r4, 16
- asrs r1, 16
- adds r1, r0
- mov r2, r12
- strh r1, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8093038
-
- thumb_func_start sub_80930E0
-sub_80930E0: @ 80930E0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- mov r8, r1
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r1, 0
- ldrsh r0, [r6, r1]
- mov r2, r8
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r2, r6, 0
- mov r3, r8
- bl sub_8093038
- lsls r4, 16
- asrs r4, 16
- ldrh r0, [r6]
- adds r4, r0
- strh r4, [r6]
- lsls r5, 16
- asrs r5, 16
- mov r1, r8
- ldrh r1, [r1]
- adds r5, r1
- mov r2, r8
- strh r5, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80930E0
-
- thumb_func_start GetFieldObjectMovingCameraOffset
-@ void GetFieldObjectMovingCameraOffset(s16 *x, s16 *y)
-GetFieldObjectMovingCameraOffset: @ 809312C
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2]
- strh r0, [r1]
- ldr r3, =gUnknown_03005DD0
- ldr r0, [r3, 0x10]
- cmp r0, 0
- ble _08093142
- movs r0, 0x1
- strh r0, [r2]
-_08093142:
- ldr r0, [r3, 0x10]
- cmp r0, 0
- bge _0809314E
- ldrh r0, [r2]
- subs r0, 0x1
- strh r0, [r2]
-_0809314E:
- ldr r2, [r3, 0x14]
- cmp r2, 0
- ble _0809315A
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0809315A:
- cmp r2, 0
- bge _08093164
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_08093164:
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetFieldObjectMovingCameraOffset
-
- thumb_func_start FieldObjectMoveDestCoords
-@ void FieldObjectMoveDestCoords(struct npc_state *fieldObject, u8 direction)
-FieldObjectMoveDestCoords: @ 809316C
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- ldrh r4, [r0, 0x10]
- strh r4, [r2]
- ldrh r0, [r0, 0x12]
- strh r0, [r3]
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- bl MoveCoords
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectMoveDestCoords
-
- thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-@ bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct npc_state *fieldObject)
-FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 809318C
- push {lr}
- ldrb r1, [r0]
- movs r0, 0x42
- ands r0, r1
- cmp r0, 0
- bne _0809319C
- movs r0, 0
- b _0809319E
-_0809319C:
- movs r0, 0x1
-_0809319E:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-
- thumb_func_start FieldObjectIsSpecialAnimActive
-@ bool8 FieldObjectIsSpecialAnimActive(struct npc_state *fieldObject)
-FieldObjectIsSpecialAnimActive: @ 80931A4
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _080931BA
- ldrb r0, [r1, 0x1C]
- cmp r0, 0xFF
- beq _080931BA
- movs r0, 0x1
- b _080931BC
-_080931BA:
- movs r0, 0
-_080931BC:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsSpecialAnimActive
-
- thumb_func_start FieldObjectSetSpecialAnim
-@ bool8 FieldObjectSetSpecialAnim(struct npc_state *fieldObject, u8 animId)
-FieldObjectSetSpecialAnim: @ 80931C0
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08093200
- adds r0, r4, 0
- bl npc_sync_anim_pause_bits
- strb r5, [r4, 0x1C]
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- movs r1, 0x7F
- ands r0, r1
- strb r0, [r4]
- ldr r2, =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x32]
- movs r0, 0
- b _08093202
- .pool
-_08093200:
- movs r0, 0x1
-_08093202:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectSetSpecialAnim
-
- thumb_func_start FieldObjectForceSetSpecialAnim
-@ void FieldObjectForceSetSpecialAnim(struct npc_state *fieldObject, u8 animId)
-FieldObjectForceSetSpecialAnim: @ 8093208
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl FieldObjectClearAnimIfSpecialAnimActive
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetSpecialAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectForceSetSpecialAnim
-
- thumb_func_start FieldObjectClearAnimIfSpecialAnimActive
-@ void FieldObjectClearAnimIfSpecialAnimActive(struct npc_state *fieldObject)
-FieldObjectClearAnimIfSpecialAnimActive: @ 8093224
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _08093236
- adds r0, r1, 0
- bl FieldObjectClearAnim
-_08093236:
- pop {r0}
- bx r0
- thumb_func_end FieldObjectClearAnimIfSpecialAnimActive
-
- thumb_func_start FieldObjectClearAnim
-@ void FieldObjectClearAnim(struct npc_state *fieldObject)
-FieldObjectClearAnim: @ 809323C
- movs r1, 0xFF
- strb r1, [r0, 0x1C]
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- movs r2, 0x7F
- ands r1, r2
- strb r1, [r0]
- ldr r3, =gSprites
- ldrb r2, [r0, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- movs r2, 0
- strh r2, [r1, 0x30]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x32]
- bx lr
- .pool
- thumb_func_end FieldObjectClearAnim
-
- thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
-@ u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct npc_state *fieldObject)
-FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8093270
- push {lr}
- ldrb r1, [r0]
- lsls r0, r1, 25
- cmp r0, 0
- blt _0809327E
- movs r0, 0x10
- b _08093280
-_0809327E:
- lsrs r0, r1, 7
-_08093280:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
-
- thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
-@ u8 FieldObjectClearAnimIfSpecialAnimFinished(struct npc_state *fieldObject)
-FieldObjectClearAnimIfSpecialAnimFinished: @ 8093284
- push {r4,r5,lr}
- adds r5, r0, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0809329E
- cmp r4, 0x10
- beq _0809329E
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
-_0809329E:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
-
- thumb_func_start FieldObjectGetSpecialAnim
-@ u8 FieldObjectGetSpecialAnim(struct npc_state *fieldObject)
-FieldObjectGetSpecialAnim: @ 80932A8
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080932B8
- movs r0, 0xFF
- b _080932BA
-_080932B8:
- ldrb r0, [r1, 0x1C]
-_080932BA:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectGetSpecialAnim
-
- thumb_func_start FieldObjectStep
-@ void FieldObjectStep(struct npc_state *fieldObject, struct obj *object, bool8 ( *callback)(struct npc_state *fieldObject, struct obj *object))
-FieldObjectStep: @ 80932C0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl DoGroundEffects_OnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80964E8
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080932EA
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectExecSpecialAnim
- b _08093300
-_080932EA:
- ldrb r0, [r4, 0x1]
- lsls r0, 31
- cmp r0, 0
- bne _08093300
-_080932F2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r6
- lsls r0, 24
- cmp r0, 0
- bne _080932F2
-_08093300:
- adds r0, r4, 0
- adds r1, r5, 0
- bl DoGroundEffects_OnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl DoGroundEffects_OnFinishStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_obj_transfer_image_anim_pause_flag
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096518
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectUpdateSubpriority
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectStep
-
- thumb_func_start GetFaceDirectionAnimId
-@ u8 GetFaceDirectionAnimId(u8 direction)
-GetFaceDirectionAnimId: @ 8093330
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBA0
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093348
- movs r4, 0
-_08093348:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFaceDirectionAnimId
-
- thumb_func_start GetSimpleGoAnimId
-@ u8 GetSimpleGoAnimId(u8 direction)
-GetSimpleGoAnimId: @ 809335C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBA5
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093374
- movs r4, 0
-_08093374:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetSimpleGoAnimId
-
- thumb_func_start GetGoSpeed0AnimId
-@ u8 GetGoSpeed0AnimId(u8 direction)
-GetGoSpeed0AnimId: @ 8093388
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBAA
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080933A0
- movs r4, 0
-_080933A0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetGoSpeed0AnimId
-
- thumb_func_start GetGoSpeed1AnimId
-@ u8 GetGoSpeed1AnimId(u8 direction)
-GetGoSpeed1AnimId: @ 80933B4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBAF
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080933CC
- movs r4, 0
-_080933CC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetGoSpeed1AnimId
-
- thumb_func_start GetGoSpeed2AnimId
-@ u8 GetGoSpeed2AnimId(u8 direction)
-GetGoSpeed2AnimId: @ 80933E0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBB4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080933F8
- movs r4, 0
-_080933F8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetGoSpeed2AnimId
-
- thumb_func_start GetGoSpeed3AnimId
-@ u8 GetGoSpeed3AnimId(u8 direction)
-GetGoSpeed3AnimId: @ 809340C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBB9
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093424
- movs r4, 0
-_08093424:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetGoSpeed3AnimId
-
- thumb_func_start sub_8093438
-@ u8 sub_8093438(u8 direction)
-sub_8093438: @ 8093438
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBBE
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093450
- movs r4, 0
-_08093450:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093438
-
- thumb_func_start GetRunAnimId
-@ u8 GetRunAnimId(u8 direction)
-GetRunAnimId: @ 8093464
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBC3
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0809347C
- movs r4, 0
-_0809347C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetRunAnimId
-
- thumb_func_start GetJumpLedgeAnimId
-@ u8 GetJumpLedgeAnimId(u8 direction)
-GetJumpLedgeAnimId: @ 8093490
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBC8
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080934A8
- movs r4, 0
-_080934A8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetJumpLedgeAnimId
-
- thumb_func_start sub_80934BC
-@ u8 sub_80934BC(u8 direction)
-sub_80934BC: @ 80934BC
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBCD
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080934D4
- movs r4, 0
-_080934D4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80934BC
-
- thumb_func_start sub_80934E8
-@ u8 sub_80934E8(u8 direction)
-sub_80934E8: @ 80934E8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBD2
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093500
- movs r4, 0
-_08093500:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80934E8
-
- thumb_func_start sub_8093514
-@ u8 sub_8093514(u8 direction)
-sub_8093514: @ 8093514
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBD7
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0809352C
- movs r4, 0
-_0809352C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093514
-
- thumb_func_start sub_8093540
-@ u8 sub_8093540(u8 direction)
-sub_8093540: @ 8093540
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBDC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093558
- movs r4, 0
-_08093558:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093540
-
- thumb_func_start GetStepInPlaceDelay32AnimId
-@ u8 GetStepInPlaceDelay32AnimId(u8 direction)
-GetStepInPlaceDelay32AnimId: @ 809356C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBE1
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093584
- movs r4, 0
-_08093584:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetStepInPlaceDelay32AnimId
-
- thumb_func_start GetStepInPlaceDelay16AnimId
-@ u8 GetStepInPlaceDelay16AnimId(u8 direction)
-GetStepInPlaceDelay16AnimId: @ 8093598
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBE6
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080935B0
- movs r4, 0
-_080935B0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetStepInPlaceDelay16AnimId
-
- thumb_func_start GetStepInPlaceDelay8AnimId
-@ u8 GetStepInPlaceDelay8AnimId(u8 direction)
-GetStepInPlaceDelay8AnimId: @ 80935C4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBEB
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080935DC
- movs r4, 0
-_080935DC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetStepInPlaceDelay8AnimId
-
- thumb_func_start GetStepInPlaceDelay4AnimId
-@ u8 GetStepInPlaceDelay4AnimId(u8 direction)
-GetStepInPlaceDelay4AnimId: @ 80935F0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBF0
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093608
- movs r4, 0
-_08093608:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetStepInPlaceDelay4AnimId
-
- thumb_func_start FieldObjectFaceOppositeDirection
-@ bool8 FieldObjectFaceOppositeDirection(struct npc_state *fieldObject, u8 direction)
-FieldObjectFaceOppositeDirection: @ 809361C
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 24
- lsrs r0, 24
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectFaceOppositeDirection
-
- thumb_func_start sub_8093648
-sub_8093648: @ 8093648
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBF5
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093660
- movs r4, 0
-_08093660:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093648
-
- thumb_func_start sub_8093674
-sub_8093674: @ 8093674
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBFA
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0809368C
- movs r4, 0
-_0809368C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093674
-
- thumb_func_start sub_80936A0
-sub_80936A0: @ 80936A0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DBFF
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080936B8
- movs r4, 0
-_080936B8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80936A0
-
- thumb_func_start sub_80936CC
-sub_80936CC: @ 80936CC
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC04
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080936E4
- movs r4, 0
-_080936E4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80936CC
-
- thumb_func_start sub_80936F8
-sub_80936F8: @ 80936F8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC09
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093710
- movs r4, 0
-_08093710:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80936F8
-
- thumb_func_start sub_8093724
-sub_8093724: @ 8093724
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC0E
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0809373C
- movs r4, 0
-_0809373C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093724
-
- thumb_func_start sub_8093750
-sub_8093750: @ 8093750
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC13
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093768
- movs r4, 0
-_08093768:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8093750
-
- thumb_func_start sub_809377C
-sub_809377C: @ 809377C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC18
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08093794
- movs r4, 0
-_08093794:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809377C
-
- thumb_func_start sub_80937A8
-sub_80937A8: @ 80937A8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC1D
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080937C0
- movs r4, 0
-_080937C0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80937A8
-
- thumb_func_start d2s_08064034
-d2s_08064034: @ 80937D4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC22
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080937EC
- movs r4, 0
-_080937EC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end d2s_08064034
-
- thumb_func_start GetOppositeDirection
-@ u8 GetOppositeDirection(u8 direction)
-GetOppositeDirection: @ 8093800
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0850DC27
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- subs r1, r4, 0x1
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08093828
- mov r2, sp
- adds r0, r2, r1
- ldrb r0, [r0]
- b _0809382A
- .pool
-_08093828:
- adds r0, r4, 0
-_0809382A:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetOppositeDirection
-
- thumb_func_start zffu_offset_calc
-zffu_offset_calc: @ 8093834
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_0850DC2F
- lsrs r0, 22
- subs r0, 0x5
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end zffu_offset_calc
-
- thumb_func_start state_to_direction
-state_to_direction: @ 809384C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- beq _0809386C
- cmp r2, 0
- beq _0809386C
- cmp r1, 0x4
- bhi _0809386C
- cmp r2, 0x4
- bls _08093870
-_0809386C:
- movs r0, 0
- b _08093882
-_08093870:
- adds r1, r2, 0
- bl zffu_offset_calc
- ldr r2, =gUnknown_0850DC3F
- lsls r1, r4, 2
- subs r1, 0x5
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
-_08093882:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end state_to_direction
-
- thumb_func_start FieldObjectExecSpecialAnim
-@ void FieldObjectExecSpecialAnim(struct npc_state *fieldObject, struct obj *object)
-FieldObjectExecSpecialAnim: @ 809388C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, =gUnknown_0850DC50
- ldrb r0, [r4, 0x1C]
- lsls r0, 2
- adds r0, r2
- movs r3, 0x32
- ldrsh r2, [r1, r3]
- ldr r0, [r0]
- lsls r2, 2
- adds r2, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- beq _080938B8
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_080938B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectExecSpecialAnim
-
- thumb_func_start FieldObjectExecRegularAnim
-@ bool8 FieldObjectExecRegularAnim(struct npc_state *fieldObject, struct obj *object)
-FieldObjectExecRegularAnim: @ 80938C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_0850DC50
- ldrb r0, [r4, 0x1C]
- lsls r0, 2
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _080938F4
- movs r0, 0
- b _080938FE
- .pool
-_080938F4:
- movs r0, 0xFF
- strb r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080938FE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectExecRegularAnim
-
- thumb_func_start FieldObjectSetRegularAnim
-@ void FieldObjectSetRegularAnim(struct npc_state *fieldObject, struct obj *object, u8 animState)
-FieldObjectSetRegularAnim: @ 8093904
- movs r3, 0
- strb r2, [r0, 0x1C]
- strh r3, [r1, 0x32]
- bx lr
- thumb_func_end FieldObjectSetRegularAnim
-
- thumb_func_start an_look_any
-@ void an_look_any(struct npc_state *fieldObject, struct obj *object, u8 direction)
-an_look_any: @ 809390C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r1, r2, 24
- lsrs r1, 24
- bl FieldObjectSetDirection
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl obj_npc_animation_step
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end an_look_any
-
- thumb_func_start sub_8093950
-sub_8093950: @ 8093950
- push {lr}
- movs r2, 0x1
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8093950
-
- thumb_func_start sub_8093960
-sub_8093960: @ 8093960
- push {lr}
- movs r2, 0x2
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8093960
-
- thumb_func_start sub_8093970
-sub_8093970: @ 8093970
- push {lr}
- movs r2, 0x3
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8093970
-
- thumb_func_start sub_8093980
-sub_8093980: @ 8093980
- push {lr}
- movs r2, 0x4
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8093980
-
- thumb_func_start npc_apply_direction
-@ void npc_apply_direction(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed)
-npc_apply_direction: @ 8093990
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- mov r8, r1
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldrh r1, [r7, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r7, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- adds r0, r7, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r7, 0
- bl npc_coords_shift
- mov r0, r8
- adds r1, r4, 0
- adds r2, r6, 0
- bl oamt_npc_ministep_reset
- mov r4, r8
- adds r4, 0x2C
- ldrb r1, [r4]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldr r0, =gUnknown_020375B8
- ldr r0, [r0]
- cmp r0, 0
- beq _08093A0E
- adds r0, r7, 0
- bl sub_8097F78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _08093A0E
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4]
-_08093A0E:
- ldrb r0, [r7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r7]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1, 0x32]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_apply_direction
-
- thumb_func_start do_go_anim
-@ void do_go_anim(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed)
-do_go_anim: @ 8093A2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r5, r0, 0
- mov r8, r1
- adds r4, r3, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 24
- lsrs r4, 24
- mov r1, sp
- ldr r0, =gUnknown_0850DEE8
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6}
- stm r1!, {r3,r6}
- adds r0, r5, 0
- mov r1, r8
- adds r3, r4, 0
- bl npc_apply_direction
- lsls r4, 2
- mov r7, sp
- adds r1, r7, r4
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- ldr r1, [r1]
- bl _call_via_r1
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- mov r1, r8
- bl npc_apply_anim_looping
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end do_go_anim
-
- thumb_func_start do_run_anim
-@ void do_run_anim(struct npc_state *fieldObject, struct obj *object, u8 direction)
-do_run_anim: @ 8093A88
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- bl npc_apply_direction
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_run_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_apply_anim_looping
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end do_run_anim
-
- thumb_func_start npc_obj_ministep_stop_on_arrival
-@ bool8 npc_obj_ministep_stop_on_arrival(struct npc_state *fieldObject, struct obj *object)
-npc_obj_ministep_stop_on_arrival: @ 8093AB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl obj_npc_ministep
- lsls r0, 24
- cmp r0, 0
- bne _08093ACE
- movs r0, 0
- b _08093AEA
-_08093ACE:
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08093AEA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_obj_ministep_stop_on_arrival
-
- thumb_func_start sub_8093AF0
-@ void sub_8093AF0(struct npc_state *fieldObject, struct obj *object, u8 direction)
-sub_8093AF0: @ 8093AF0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- mov r8, r1
- lsls r5, r2, 24
- lsrs r5, 24
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- adds r0, r6, 0
- adds r1, r5, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- bl npc_coords_shift
- mov r0, r8
- adds r1, r5, 0
- bl sub_80976DC
- mov r2, r8
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1, 0x32]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8093AF0
-
- thumb_func_start sub_8093B60
-@ void sub_8093B60(struct npc_state *fieldObject, struct obj *object, u8 direction)
-sub_8093B60: @ 8093B60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- bl sub_8093AF0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_apply_anim_looping
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8093B60
-
- thumb_func_start an_walk_any_2
-@ bool8 an_walk_any_2(struct npc_state *fieldObject, struct obj *object)
-an_walk_any_2: @ 8093B8C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_80976EC
- lsls r0, 24
- cmp r0, 0
- bne _08093BA2
- movs r0, 0
- b _08093BBE
-_08093BA2:
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08093BBE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end an_walk_any_2
-
- thumb_func_start sub_8093BC4
-sub_8093BC4: @ 8093BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x7
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093BE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093BC4
-
- thumb_func_start sub_8093BE4
-sub_8093BE4: @ 8093BE4
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093BF6
- movs r0, 0
- b _08093BFC
-_08093BF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093BFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093BE4
-
- thumb_func_start sub_8093C04
-sub_8093C04: @ 8093C04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093C24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093C04
-
- thumb_func_start sub_8093C24
-sub_8093C24: @ 8093C24
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093C36
- movs r0, 0
- b _08093C3C
-_08093C36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093C3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093C24
-
- thumb_func_start sub_8093C44
-sub_8093C44: @ 8093C44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x5
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093C64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093C44
-
- thumb_func_start sub_8093C64
-sub_8093C64: @ 8093C64
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093C76
- movs r0, 0
- b _08093C7C
-_08093C76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093C7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093C64
-
- thumb_func_start sub_8093C84
-sub_8093C84: @ 8093C84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x6
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093CA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093C84
-
- thumb_func_start sub_8093CA4
-sub_8093CA4: @ 8093CA4
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093CB6
- movs r0, 0
- b _08093CBC
-_08093CB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093CBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093CA4
-
- thumb_func_start sub_8093CC4
-@ bool8 sub_8093CC4(struct npc_state *fieldObject, struct obj *object)
-sub_8093CC4: @ 8093CC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093CE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093CC4
-
- thumb_func_start sub_8093CE4
-@ bool8 sub_8093CE4(struct npc_state *fieldObject, struct obj *object)
-sub_8093CE4: @ 8093CE4
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093CF6
- movs r0, 0
- b _08093CFC
-_08093CF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093CFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093CE4
-
- thumb_func_start sub_8093D04
-sub_8093D04: @ 8093D04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093D24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D04
-
- thumb_func_start sub_8093D24
-sub_8093D24: @ 8093D24
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093D36
- movs r0, 0
- b _08093D3C
-_08093D36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093D3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D24
-
- thumb_func_start sub_8093D44
-sub_8093D44: @ 8093D44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093D64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D44
-
- thumb_func_start sub_8093D64
-sub_8093D64: @ 8093D64
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093D76
- movs r0, 0
- b _08093D7C
-_08093D76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093D7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D64
-
- thumb_func_start sub_8093D84
-sub_8093D84: @ 8093D84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8093B60
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093DA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D84
-
- thumb_func_start sub_8093DA4
-sub_8093DA4: @ 8093DA4
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08093DB6
- movs r0, 0
- b _08093DBC
-_08093DB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093DBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DA4
-
- thumb_func_start sub_8093DC4
-sub_8093DC4: @ 8093DC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x7
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093DE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DC4
-
- thumb_func_start sub_8093DE4
-@ bool8 sub_8093DE4(struct npc_state *fieldObject, struct obj *object)
-sub_8093DE4: @ 8093DE4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093DF6
- movs r0, 0
- b _08093DFC
-_08093DF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093DFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DE4
-
- thumb_func_start sub_8093E04
-sub_8093E04: @ 8093E04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093E24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E04
-
- thumb_func_start sub_8093E24
-sub_8093E24: @ 8093E24
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093E36
- movs r0, 0
- b _08093E3C
-_08093E36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093E3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E24
-
- thumb_func_start sub_8093E44
-sub_8093E44: @ 8093E44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x5
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093E64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E44
-
- thumb_func_start sub_8093E64
-sub_8093E64: @ 8093E64
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093E76
- movs r0, 0
- b _08093E7C
-_08093E76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093E7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E64
-
- thumb_func_start sub_8093E84
-sub_8093E84: @ 8093E84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x6
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093EA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E84
-
- thumb_func_start sub_8093EA4
-sub_8093EA4: @ 8093EA4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093EB6
- movs r0, 0
- b _08093EBC
-_08093EB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093EBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EA4
-
- thumb_func_start sub_8093EC4
-sub_8093EC4: @ 8093EC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093EE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EC4
-
- thumb_func_start sub_8093EE4
-sub_8093EE4: @ 8093EE4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093EF6
- movs r0, 0
- b _08093EFC
-_08093EF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093EFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EE4
-
- thumb_func_start sub_8093F04
-sub_8093F04: @ 8093F04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093F24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F04
-
- thumb_func_start sub_8093F24
-sub_8093F24: @ 8093F24
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093F36
- movs r0, 0
- b _08093F3C
-_08093F36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093F3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F24
-
- thumb_func_start sub_8093F44
-sub_8093F44: @ 8093F44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093F64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F44
-
- thumb_func_start sub_8093F64
-sub_8093F64: @ 8093F64
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093F76
- movs r0, 0
- b _08093F7C
-_08093F76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093F7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F64
-
- thumb_func_start sub_8093F84
-sub_8093F84: @ 8093F84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093FA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F84
-
- thumb_func_start sub_8093FA4
-sub_8093FA4: @ 8093FA4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093FB6
- movs r0, 0
- b _08093FBC
-_08093FB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093FBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093FA4
-
- thumb_func_start sub_8093FC4
-sub_8093FC4: @ 8093FC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x30]
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, =gUnknown_0850DFBC
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- add r5, sp, 0xC
- movs r0, 0
- strh r0, [r5]
- mov r6, sp
- adds r6, 0xE
- strh r0, [r6]
- adds r0, r7, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- mov r1, r8
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- movs r1, 0
- ldrsh r3, [r0, r1]
- str r3, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8092F88
- ldrh r1, [r5]
- ldrh r0, [r7, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6]
- ldrh r0, [r7, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r7, 0
- bl npc_coords_shift
- mov r0, r10
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_809783C
- movs r0, 0x1
- mov r1, r10
- strh r0, [r1, 0x32]
- movs r0, 0x2C
- add r10, r0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r7]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8093FC4
-
- thumb_func_start maybe_shadow_1
-maybe_shadow_1: @ 8094080
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r4, 0
- bl sub_8093FC4
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_apply_anim_looping
- adds r0, r4, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end maybe_shadow_1
-
- thumb_func_start sub_80940C4
-@ int sub_80940C4(int a1, int a2, int a3)
-sub_80940C4: @ 80940C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r1, =gUnknown_0850DFC2
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- adds r0, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bne _08094154
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsls r0, 1
- add r0, sp
- adds r0, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08094154
- add r4, sp, 0xC
- movs r0, 0
- strh r0, [r4]
- mov r5, sp
- adds r5, 0xE
- strh r0, [r5]
- ldrb r0, [r6, 0x18]
- lsrs r0, 4
- movs r2, 0x36
- ldrsh r1, [r7, r2]
- lsls r1, 1
- add r1, sp
- adds r1, 0x4
- movs r2, 0
- ldrsh r3, [r1, r2]
- str r3, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8092F88
- ldrh r1, [r4]
- ldrh r0, [r6, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r5]
- ldrh r0, [r6, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r6, 0
- bl npc_coords_shift
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r6]
- b _08094178
- .pool
-_08094154:
- mov r1, r8
- cmp r1, 0xFF
- bne _08094178
- adds r0, r6, 0
- bl npc_coords_shift_still
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
-_08094178:
- mov r0, r8
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80940C4
-
- thumb_func_start sub_8094188
-sub_8094188: @ 8094188
- push {lr}
- ldr r2, =sub_809785C
- bl sub_80940C4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8094188
-
- thumb_func_start sub_809419C
-sub_809419C: @ 809419C
- push {lr}
- ldr r2, =sub_80978E4
- bl sub_80940C4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809419C
-
- thumb_func_start sub_80941B0
-sub_80941B0: @ 80941B0
- push {lr}
- bl sub_8094188
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080941C2
- movs r0, 0
- b _080941C4
-_080941C2:
- movs r0, 0x1
-_080941C4:
- pop {r1}
- bx r1
- thumb_func_end sub_80941B0
-
- thumb_func_start sub_80941C8
-sub_80941C8: @ 80941C8
- push {lr}
- bl sub_809419C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080941DA
- movs r0, 0
- b _080941DC
-_080941DA:
- movs r0, 0x1
-_080941DC:
- pop {r1}
- bx r1
- thumb_func_end sub_80941C8
-
- thumb_func_start sub_80941E0
-sub_80941E0: @ 80941E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8094188
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080941FA
- cmp r0, 0xFF
- bne _08094226
- movs r0, 0x1
- b _08094228
-_080941FA:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl obj_npc_animation_step
-_08094226:
- movs r0, 0
-_08094228:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80941E0
-
- thumb_func_start sub_8094230
-sub_8094230: @ 8094230
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809425C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094230
-
- thumb_func_start sub_809425C
-sub_809425C: @ 809425C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08094270
- movs r0, 0
- b _08094280
-_08094270:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08094280:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809425C
-
- thumb_func_start sub_8094288
-sub_8094288: @ 8094288
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80942B4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094288
-
- thumb_func_start sub_80942B4
-sub_80942B4: @ 80942B4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _080942C8
- movs r0, 0
- b _080942D8
-_080942C8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080942D8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80942B4
-
- thumb_func_start sub_80942E0
-sub_80942E0: @ 80942E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809430C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80942E0
-
- thumb_func_start sub_809430C
-sub_809430C: @ 809430C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08094320
- movs r0, 0
- b _08094330
-_08094320:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08094330:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809430C
-
- thumb_func_start sub_8094338
-sub_8094338: @ 8094338
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094364
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094338
-
- thumb_func_start sub_8094364
-sub_8094364: @ 8094364
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08094378
- movs r0, 0
- b _08094388
-_08094378:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08094388:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094364
-
- thumb_func_start sub_8094390
-sub_8094390: @ 8094390
- movs r2, 0x1
- strh r2, [r0, 0x32]
- strh r1, [r0, 0x34]
- bx lr
- thumb_func_end sub_8094390
-
- thumb_func_start sub_8094398
-sub_8094398: @ 8094398
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _080943AA
- movs r0, 0
- b _080943B0
-_080943AA:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- movs r0, 0x1
-_080943B0:
- pop {r1}
- bx r1
- thumb_func_end sub_8094398
-
- thumb_func_start sub_80943B4
-sub_80943B4: @ 80943B4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8094390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094398
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80943B4
-
- thumb_func_start sub_80943D4
-sub_80943D4: @ 80943D4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8094390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094398
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80943D4
-
- thumb_func_start sub_80943F4
-sub_80943F4: @ 80943F4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8094390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094398
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80943F4
-
- thumb_func_start sub_8094414
-sub_8094414: @ 8094414
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_8094390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094398
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094414
-
- thumb_func_start sub_8094434
-sub_8094434: @ 8094434
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_8094390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094398
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094434
-
- thumb_func_start sub_8094454
-sub_8094454: @ 8094454
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094474
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094454
-
- thumb_func_start sub_8094474
-sub_8094474: @ 8094474
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094486
- movs r0, 0
- b _0809448C
-_08094486:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0809448C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094474
-
- thumb_func_start sub_8094494
-sub_8094494: @ 8094494
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80944B4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094494
-
- thumb_func_start sub_80944B4
-sub_80944B4: @ 80944B4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080944C6
- movs r0, 0
- b _080944CC
-_080944C6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080944CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80944B4
-
- thumb_func_start sub_80944D4
-sub_80944D4: @ 80944D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80944F4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80944D4
-
- thumb_func_start sub_80944F4
-sub_80944F4: @ 80944F4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094506
- movs r0, 0
- b _0809450C
-_08094506:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0809450C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80944F4
-
- thumb_func_start sub_8094514
-sub_8094514: @ 8094514
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094534
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094514
-
- thumb_func_start sub_8094534
-sub_8094534: @ 8094534
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094546
- movs r0, 0
- b _0809454C
-_08094546:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0809454C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094534
-
- thumb_func_start sub_8094554
-sub_8094554: @ 8094554
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r4, r3, 0
- ldr r5, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- bl FieldObjectSetDirection
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl npc_apply_anim_looping
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094554
-
- thumb_func_start sub_809459C
-@ signed int sub_809459C(int a1, obj *a2)
-sub_809459C: @ 809459C
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _080945AE
- movs r0, 0
- b _080945C0
-_080945AE:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_080945C0:
- pop {r1}
- bx r1
- thumb_func_end sub_809459C
-
- thumb_func_start sub_80945C4
-@ int sub_80945C4(int a1, obj *a2)
-sub_80945C4: @ 80945C4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080945EE
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080945EE:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80945C4
-
- thumb_func_start sub_8094600
-sub_8094600: @ 8094600
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80945C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094600
-
- thumb_func_start sub_8094638
-sub_8094638: @ 8094638
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80945C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094638
-
- thumb_func_start sub_8094670
-sub_8094670: @ 8094670
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80945C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094670
-
- thumb_func_start sub_80946A8
-sub_80946A8: @ 80946A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80945C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80946A8
-
- thumb_func_start sub_80946E0
-sub_80946E0: @ 80946E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80946E0
-
- thumb_func_start sub_8094718
-sub_8094718: @ 8094718
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094718
-
- thumb_func_start sub_8094750
-sub_8094750: @ 8094750
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094750
-
- thumb_func_start sub_8094788
-sub_8094788: @ 8094788
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094788
-
- thumb_func_start sub_80947C0
-sub_80947C0: @ 80947C0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80947C0
-
- thumb_func_start sub_80947F8
-sub_80947F8: @ 80947F8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80947F8
-
- thumb_func_start sub_8094830
-sub_8094830: @ 8094830
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094830
-
- thumb_func_start sub_8094868
-sub_8094868: @ 8094868
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094868
-
- thumb_func_start sub_80948A0
-sub_80948A0: @ 80948A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80948A0
-
- thumb_func_start sub_80948D8
-sub_80948D8: @ 80948D8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80948D8
-
- thumb_func_start sub_8094910
-sub_8094910: @ 8094910
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094910
-
- thumb_func_start sub_8094948
-sub_8094948: @ 8094948
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094948
-
- thumb_func_start sub_8094980
-sub_8094980: @ 8094980
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80949A0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094980
-
- thumb_func_start sub_80949A0
-sub_80949A0: @ 80949A0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080949B2
- movs r0, 0
- b _080949B8
-_080949B2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080949B8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80949A0
-
- thumb_func_start sub_80949C0
-sub_80949C0: @ 80949C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80949E0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80949C0
-
- thumb_func_start sub_80949E0
-sub_80949E0: @ 80949E0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080949F2
- movs r0, 0
- b _080949F8
-_080949F2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080949F8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80949E0
-
- thumb_func_start sub_8094A00
-sub_8094A00: @ 8094A00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094A20
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094A00
-
- thumb_func_start sub_8094A20
-sub_8094A20: @ 8094A20
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094A32
- movs r0, 0
- b _08094A38
-_08094A32:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094A38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094A20
-
- thumb_func_start sub_8094A40
-sub_8094A40: @ 8094A40
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094A60
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094A40
-
- thumb_func_start sub_8094A60
-sub_8094A60: @ 8094A60
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094A72
- movs r0, 0
- b _08094A78
-_08094A72:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094A78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094A60
-
- thumb_func_start sub_8094A80
-sub_8094A80: @ 8094A80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094AA0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094A80
-
- thumb_func_start sub_8094AA0
-sub_8094AA0: @ 8094AA0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094AB2
- movs r0, 0
- b _08094AB8
-_08094AB2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094AB8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094AA0
-
- thumb_func_start sub_8094AC0
-sub_8094AC0: @ 8094AC0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094AE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094AC0
-
- thumb_func_start sub_8094AE0
-sub_8094AE0: @ 8094AE0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094AF2
- movs r0, 0
- b _08094AF8
-_08094AF2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094AF8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094AE0
-
- thumb_func_start sub_8094B00
-sub_8094B00: @ 8094B00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094B20
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094B00
-
- thumb_func_start sub_8094B20
-sub_8094B20: @ 8094B20
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094B32
- movs r0, 0
- b _08094B38
-_08094B32:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094B38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094B20
-
- thumb_func_start sub_8094B40
-sub_8094B40: @ 8094B40
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094B60
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094B40
-
- thumb_func_start sub_8094B60
-sub_8094B60: @ 8094B60
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094B72
- movs r0, 0
- b _08094B78
-_08094B72:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094B78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094B60
-
- thumb_func_start sub_8094B80
-sub_8094B80: @ 8094B80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094BA0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094B80
-
- thumb_func_start sub_8094BA0
-sub_8094BA0: @ 8094BA0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094BB2
- movs r0, 0
- b _08094BB8
-_08094BB2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094BB8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094BA0
-
- thumb_func_start sub_8094BC0
-sub_8094BC0: @ 8094BC0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094BE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094BC0
-
- thumb_func_start sub_8094BE0
-sub_8094BE0: @ 8094BE0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094BF2
- movs r0, 0
- b _08094BF8
-_08094BF2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094BF8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094BE0
-
- thumb_func_start sub_8094C00
-sub_8094C00: @ 8094C00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094C00
-
- thumb_func_start sub_8094C20
-sub_8094C20: @ 8094C20
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094C32
- movs r0, 0
- b _08094C38
-_08094C32:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094C38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094C20
-
- thumb_func_start sub_8094C40
-sub_8094C40: @ 8094C40
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C60
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094C40
-
- thumb_func_start sub_8094C60
-sub_8094C60: @ 8094C60
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094C72
- movs r0, 0
- b _08094C78
-_08094C72:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094C78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094C60
-
- thumb_func_start do_run_south_anim
-@ bool8 do_run_south_anim(struct npc_state *fieldObject, struct obj *object)
-do_run_south_anim: @ 8094C80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094CA0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_south_anim
-
- thumb_func_start sub_8094CA0
-@ bool8 sub_8094CA0(struct npc_state *fieldObject, struct obj *object)
-sub_8094CA0: @ 8094CA0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094CB2
- movs r0, 0
- b _08094CB8
-_08094CB2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094CB8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094CA0
-
- thumb_func_start do_run_north_anim
-do_run_north_anim: @ 8094CC0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_north_anim
-
- thumb_func_start sub_8094CE0
-sub_8094CE0: @ 8094CE0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094CF2
- movs r0, 0
- b _08094CF8
-_08094CF2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094CF8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094CE0
-
- thumb_func_start do_run_west_anim
-do_run_west_anim: @ 8094D00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094D20
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_west_anim
-
- thumb_func_start sub_8094D20
-sub_8094D20: @ 8094D20
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094D32
- movs r0, 0
- b _08094D38
-_08094D32:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094D38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094D20
-
- thumb_func_start do_run_east_anim
-do_run_east_anim: @ 8094D40
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094D60
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_east_anim
-
- thumb_func_start sub_8094D60
-sub_8094D60: @ 8094D60
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08094D72
- movs r0, 0
- b _08094D78
-_08094D72:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094D78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094D60
-
- thumb_func_start npc_set_direction_and_anim__an_proceed
-npc_set_direction_and_anim__an_proceed: @ 8094D80
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r1, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl obj_anim_image_set_and_seek
- adds r0, r6, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_set_direction_and_anim__an_proceed
-
- thumb_func_start sub_8094DAC
-sub_8094DAC: @ 8094DAC
- push {lr}
- ldrb r2, [r0, 0x18]
- lsrs r2, 4
- adds r3, r1, 0
- adds r3, 0x2A
- ldrb r3, [r3]
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8094DAC
-
- thumb_func_start sub_8094DC4
-sub_8094DC4: @ 8094DC4
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_80979BC
- lsls r0, 24
- cmp r0, 0
- bne _08094DD8
- movs r0, 0
- b _08094DDE
-_08094DD8:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08094DDE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094DC4
-
- thumb_func_start sub_8094DE4
-sub_8094DE4: @ 8094DE4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8093FC4
- adds r0, r4, 0
- bl sub_80929AC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8094DE4
-
- thumb_func_start sub_8094E18
-sub_8094E18: @ 8094E18
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094E38
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E18
-
- thumb_func_start sub_8094E38
-sub_8094E38: @ 8094E38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094E4C
- movs r0, 0
- b _08094E5A
-_08094E4C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094E5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E38
-
- thumb_func_start sub_8094E60
-sub_8094E60: @ 8094E60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094E80
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E60
-
- thumb_func_start sub_8094E80
-sub_8094E80: @ 8094E80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094E94
- movs r0, 0
- b _08094EA2
-_08094E94:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094EA2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E80
-
- thumb_func_start sub_8094EA8
-sub_8094EA8: @ 8094EA8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094EC8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EA8
-
- thumb_func_start sub_8094EC8
-sub_8094EC8: @ 8094EC8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094EDC
- movs r0, 0
- b _08094EEA
-_08094EDC:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094EEA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EC8
-
- thumb_func_start sub_8094EF0
-sub_8094EF0: @ 8094EF0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094F10
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EF0
-
- thumb_func_start sub_8094F10
-sub_8094F10: @ 8094F10
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094F24
- movs r0, 0
- b _08094F32
-_08094F24:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094F32:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094F10
-
- thumb_func_start sub_8094F38
-sub_8094F38: @ 8094F38
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08094F82
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_8092AF8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_08094F82:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8094F38
-
- thumb_func_start sub_8094F94
-sub_8094F94: @ 8094F94
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08094FE6
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_8092AF8
- lsls r0, 24
- lsrs r0, 24
- bl GetOppositeDirection
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_08094FE6:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8094F94
-
- thumb_func_start sub_8094FF8
-sub_8094FF8: @ 8094FF8
- ldrb r2, [r0, 0x1]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8094FF8
-
- thumb_func_start sub_8095008
-sub_8095008: @ 8095008
- ldrb r3, [r0, 0x1]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8095008
-
- thumb_func_start sub_8095018
-sub_8095018: @ 8095018
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095044
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095018
-
- thumb_func_start sub_8095044
-sub_8095044: @ 8095044
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095058
- movs r0, 0
- b _08095068
-_08095058:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095068:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095044
-
- thumb_func_start sub_8095070
-sub_8095070: @ 8095070
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809509C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095070
-
- thumb_func_start sub_809509C
-sub_809509C: @ 809509C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _080950B0
- movs r0, 0
- b _080950C0
-_080950B0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080950C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809509C
-
- thumb_func_start sub_80950C8
-sub_80950C8: @ 80950C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80950F4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80950C8
-
- thumb_func_start sub_80950F4
-sub_80950F4: @ 80950F4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095108
- movs r0, 0
- b _08095118
-_08095108:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095118:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80950F4
-
- thumb_func_start sub_8095120
-sub_8095120: @ 8095120
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809514C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095120
-
- thumb_func_start sub_809514C
-sub_809514C: @ 809514C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095160
- movs r0, 0
- b _08095170
-_08095160:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095170:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809514C
-
- thumb_func_start sub_8095178
-sub_8095178: @ 8095178
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80951A4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095178
-
- thumb_func_start sub_80951A4
-sub_80951A4: @ 80951A4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _080951B8
- movs r0, 0
- b _080951C8
-_080951B8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080951C8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80951A4
-
- thumb_func_start sub_80951D0
-sub_80951D0: @ 80951D0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80951FC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80951D0
-
- thumb_func_start sub_80951FC
-sub_80951FC: @ 80951FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095210
- movs r0, 0
- b _08095220
-_08095210:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095220:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80951FC
-
- thumb_func_start sub_8095228
-sub_8095228: @ 8095228
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095254
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095228
-
- thumb_func_start sub_8095254
-sub_8095254: @ 8095254
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095268
- movs r0, 0
- b _08095278
-_08095268:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095278:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095254
-
- thumb_func_start sub_8095280
-sub_8095280: @ 8095280
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80952AC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095280
-
- thumb_func_start sub_80952AC
-sub_80952AC: @ 80952AC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _080952C0
- movs r0, 0
- b _080952D0
-_080952C0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080952D0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80952AC
-
- thumb_func_start sub_80952D8
-sub_80952D8: @ 80952D8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095304
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80952D8
-
- thumb_func_start sub_8095304
-sub_8095304: @ 8095304
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941E0
- lsls r0, 24
- cmp r0, 0
- bne _08095318
- movs r0, 0
- b _08095328
-_08095318:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095328:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095304
-
- thumb_func_start sub_8095330
-sub_8095330: @ 8095330
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809535C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095330
-
- thumb_func_start sub_809535C
-sub_809535C: @ 809535C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941E0
- lsls r0, 24
- cmp r0, 0
- bne _08095370
- movs r0, 0
- b _08095380
-_08095370:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809535C
-
- thumb_func_start sub_8095388
-sub_8095388: @ 8095388
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80953B4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095388
-
- thumb_func_start sub_80953B4
-sub_80953B4: @ 80953B4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941E0
- lsls r0, 24
- cmp r0, 0
- bne _080953C8
- movs r0, 0
- b _080953D8
-_080953C8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080953D8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80953B4
-
- thumb_func_start sub_80953E0
-sub_80953E0: @ 80953E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809540C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80953E0
-
- thumb_func_start sub_809540C
-sub_809540C: @ 809540C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941E0
- lsls r0, 24
- cmp r0, 0
- bne _08095420
- movs r0, 0
- b _08095430
-_08095420:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095430:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809540C
-
- thumb_func_start sub_8095438
-sub_8095438: @ 8095438
- push {lr}
- ldr r3, =gUnknown_085055CD
- ldrb r2, [r0, 0x6]
- adds r2, r3
- ldrb r2, [r2]
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8095438
-
- thumb_func_start sub_8095450
-sub_8095450: @ 8095450
- push {lr}
- movs r2, 0x1
- movs r3, 0x14
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8095450
-
- thumb_func_start sub_8095460
-sub_8095460: @ 8095460
- ldrb r3, [r0, 0x3]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8095460
-
- thumb_func_start sub_8095470
-sub_8095470: @ 8095470
- ldrb r2, [r0, 0x3]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8095470
-
- thumb_func_start sub_8095480
-sub_8095480: @ 8095480
- ldrb r2, [r0, 0x1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8095480
-
- thumb_func_start sub_8095490
-@ int sub_8095490(npc_state *npcState, int a2)
-sub_8095490: @ 8095490
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095490
-
- thumb_func_start sub_80954BC
-sub_80954BC: @ 80954BC
- ldrb r2, [r0, 0x1]
- movs r3, 0x20
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80954BC
-
- thumb_func_start sub_80954CC
-sub_80954CC: @ 80954CC
- ldrb r3, [r0, 0x1]
- movs r2, 0x21
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80954CC
-
- thumb_func_start do_exclamation_mark_bubble_1
-do_exclamation_mark_bubble_1: @ 80954DC
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_exclamation_mark_bubble_1
-
- thumb_func_start do_exclamation_mark_bubble_2
-do_exclamation_mark_bubble_2: @ 8095500
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x21
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_exclamation_mark_bubble_2
-
- thumb_func_start do_heart_bubble
-do_heart_bubble: @ 8095524
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x2E
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_heart_bubble
-
- thumb_func_start sub_8095548
-sub_8095548: @ 8095548
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x6]
- cmp r0, 0x3F
- bne _0809555E
- adds r0, r4, 0
- bl sub_80B4578
- movs r0, 0
- b _08095586
-_0809555E:
- subs r0, 0x39
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095580
- adds r0, r4, 0
- bl sub_8155D78
- movs r0, 0x1
- strh r0, [r5, 0x32]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809558C
- lsls r0, 24
- lsrs r0, 24
- b _08095586
-_08095580:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095586:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095548
-
- thumb_func_start sub_809558C
-sub_809558C: @ 809558C
- push {r4,lr}
- adds r4, r1, 0
- bl sub_8155DA0
- lsls r0, 24
- cmp r0, 0
- bne _0809559E
- movs r0, 0
- b _080955A4
-_0809559E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080955A4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809558C
-
- thumb_func_start sub_80955AC
-sub_80955AC: @ 80955AC
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80955AC
-
- thumb_func_start sub_80955C8
-sub_80955C8: @ 80955C8
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_80979BC
- lsls r0, 24
- cmp r0, 0
- beq _080955E4
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8097978
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_080955E4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80955C8
-
- thumb_func_start sub_80955EC
-sub_80955EC: @ 80955EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- beq _0809561E
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_0809561E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80955EC
-
- thumb_func_start sub_8095628
-sub_8095628: @ 8095628
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095628
-
- thumb_func_start sub_8095644
-sub_8095644: @ 8095644
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_80979BC
- lsls r0, 24
- cmp r0, 0
- beq _08095660
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8097978
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_08095660:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095644
-
- thumb_func_start sub_8095668
-sub_8095668: @ 8095668
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_809797C
- lsls r0, 24
- cmp r0, 0
- beq _0809569A
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_0809569A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095668
-
- thumb_func_start sub_80956A4
-sub_80956A4: @ 80956A4
- ldrb r2, [r0, 0x3]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80956A4
-
- thumb_func_start sub_80956B4
-sub_80956B4: @ 80956B4
- ldrb r3, [r0, 0x3]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80956B4
-
- thumb_func_start sub_80956C4
-sub_80956C4: @ 80956C4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r4, 0x42
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80956C4
-
- thumb_func_start sub_80956F4
-sub_80956F4: @ 80956F4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- movs r3, 0
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80956F4
-
- thumb_func_start sub_8095724
-sub_8095724: @ 8095724
- ldrb r1, [r0, 0x3]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x3]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8095724
-
- thumb_func_start sub_8095730
-sub_8095730: @ 8095730
- ldrb r2, [r0, 0x3]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x3]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8095730
-
- thumb_func_start sub_8095740
-sub_8095740: @ 8095740
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8093B60
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8095774
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095740
-
- thumb_func_start sub_8095774
-sub_8095774: @ 8095774
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08095786
- movs r0, 0
- b _08095798
-_08095786:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08095798:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095774
-
- thumb_func_start sub_80957A0
-sub_80957A0: @ 80957A0
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8093B60
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80957D4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80957A0
-
- thumb_func_start sub_80957D4
-sub_80957D4: @ 80957D4
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _080957E6
- movs r0, 0
- b _080957F8
-_080957E6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080957F8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80957D4
-
- thumb_func_start sub_8095800
-sub_8095800: @ 8095800
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl do_go_anim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8095834
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095800
-
- thumb_func_start sub_8095834
-sub_8095834: @ 8095834
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08095846
- movs r0, 0
- b _08095858
-_08095846:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08095858:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095834
-
- thumb_func_start sub_8095860
-sub_8095860: @ 8095860
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl do_go_anim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x3
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8095894
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095860
-
- thumb_func_start sub_8095894
-sub_8095894: @ 8095894
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080958A6
- movs r0, 0
- b _080958B8
-_080958A6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080958B8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095894
-
- thumb_func_start sub_80958C0
-sub_80958C0: @ 80958C0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- bl npc_coords_shift_still
- adds r0, r4, 0
- bl sub_80929FC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl obj_npc_animation_step
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80958C0
-
- thumb_func_start sub_8095900
-sub_8095900: @ 8095900
- push {lr}
- movs r2, 0x1
- bl sub_80958C0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8095900
-
- thumb_func_start sub_8095910
-sub_8095910: @ 8095910
- push {lr}
- movs r2, 0x2
- bl sub_80958C0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8095910
-
- thumb_func_start sub_8095920
-sub_8095920: @ 8095920
- push {lr}
- movs r2, 0x3
- bl sub_80958C0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8095920
-
- thumb_func_start sub_8095930
-sub_8095930: @ 8095930
- push {lr}
- movs r2, 0x4
- bl sub_80958C0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8095930
-
- thumb_func_start sub_8095940
-sub_8095940: @ 8095940
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_80929BC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095940
-
- thumb_func_start sub_8095964
-sub_8095964: @ 8095964
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_80929BC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095964
-
- thumb_func_start sub_8095988
-sub_8095988: @ 8095988
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_80929BC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095988
-
- thumb_func_start sub_80959AC
-sub_80959AC: @ 80959AC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_80929BC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80959AC
-
- thumb_func_start sub_80959D0
-sub_80959D0: @ 80959D0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_80929DC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80959D0
-
- thumb_func_start sub_80959F4
-sub_80959F4: @ 80959F4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_80929DC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80959F4
-
- thumb_func_start sub_8095A18
-sub_8095A18: @ 8095A18
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_80929DC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095A18
-
- thumb_func_start sub_8095A3C
-sub_8095A3C: @ 8095A3C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_80929DC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095A3C
-
- thumb_func_start sub_8095A60
-sub_8095A60: @ 8095A60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_80929EC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095A60
-
- thumb_func_start sub_8095A84
-sub_8095A84: @ 8095A84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_80929EC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095A84
-
- thumb_func_start sub_8095AA8
-sub_8095AA8: @ 8095AA8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_80929EC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095AA8
-
- thumb_func_start sub_8095ACC
-sub_8095ACC: @ 8095ACC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_80929EC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095ACC
-
- thumb_func_start sub_8095AF0
-sub_8095AF0: @ 8095AF0
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8097750
- adds r4, 0x2C
- ldrb r1, [r4]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8095AF0
-
- thumb_func_start sub_8095B0C
-sub_8095B0C: @ 8095B0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8097758
- lsls r0, 24
- cmp r0, 0
- bne _08095B22
- movs r0, 0
- b _08095B3E
-_08095B22:
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08095B3E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B0C
-
- thumb_func_start sub_8095B44
-sub_8095B44: @ 8095B44
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_8095AF0
- movs r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8095B64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B44
-
- thumb_func_start sub_8095B64
-sub_8095B64: @ 8095B64
- push {r4,lr}
- adds r4, r1, 0
- bl sub_8095B0C
- lsls r0, 24
- cmp r0, 0
- bne _08095B76
- movs r0, 0
- b _08095B7C
-_08095B76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08095B7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B64
-
- thumb_func_start sub_8095B84
-sub_8095B84: @ 8095B84
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_8093FC4
- adds r0, r4, 0
- bl sub_80929BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r6, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8095B84
-
- thumb_func_start sub_8095BC8
-sub_8095BC8: @ 8095BC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095BF4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095BC8
-
- thumb_func_start sub_8095BF4
-sub_8095BF4: @ 8095BF4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095C08
- movs r0, 0
- b _08095C18
-_08095C08:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095C18:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095BF4
-
- thumb_func_start sub_8095C20
-sub_8095C20: @ 8095C20
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095C4C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C20
-
- thumb_func_start sub_8095C4C
-sub_8095C4C: @ 8095C4C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095C60
- movs r0, 0
- b _08095C70
-_08095C60:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095C70:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C4C
-
- thumb_func_start sub_8095C78
-sub_8095C78: @ 8095C78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095CA4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C78
-
- thumb_func_start sub_8095CA4
-sub_8095CA4: @ 8095CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095CB8
- movs r0, 0
- b _08095CC8
-_08095CB8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095CC8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CA4
-
- thumb_func_start sub_8095CD0
-sub_8095CD0: @ 8095CD0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095CFC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CD0
-
- thumb_func_start sub_8095CFC
-sub_8095CFC: @ 8095CFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095D10
- movs r0, 0
- b _08095D20
-_08095D10:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095D20:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CFC
-
- thumb_func_start sub_8095D28
-sub_8095D28: @ 8095D28
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095D54
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D28
-
- thumb_func_start sub_8095D54
-sub_8095D54: @ 8095D54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095D68
- movs r0, 0
- b _08095D78
-_08095D68:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095D78:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D54
-
- thumb_func_start sub_8095D80
-sub_8095D80: @ 8095D80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095DAC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D80
-
- thumb_func_start sub_8095DAC
-sub_8095DAC: @ 8095DAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095DC0
- movs r0, 0
- b _08095DD0
-_08095DC0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095DD0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DAC
-
- thumb_func_start sub_8095DD8
-sub_8095DD8: @ 8095DD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095E04
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DD8
-
- thumb_func_start sub_8095E04
-sub_8095E04: @ 8095E04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095E18
- movs r0, 0
- b _08095E28
-_08095E18:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095E28:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E04
-
- thumb_func_start sub_8095E30
-sub_8095E30: @ 8095E30
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095E5C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E30
-
- thumb_func_start sub_8095E5C
-sub_8095E5C: @ 8095E5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095E70
- movs r0, 0
- b _08095E80
-_08095E70:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095E80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E5C
-
- thumb_func_start sub_8095E88
-sub_8095E88: @ 8095E88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095EB4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E88
-
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095EC8
- movs r0, 0
- b _08095ED8
-_08095EC8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095ED8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095EB4
-
- thumb_func_start sub_8095EE0
-sub_8095EE0: @ 8095EE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095F0C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095EE0
-
- thumb_func_start sub_8095F0C
-sub_8095F0C: @ 8095F0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095F20
- movs r0, 0
- b _08095F30
-_08095F20:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095F30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F0C
-
- thumb_func_start sub_8095F38
-sub_8095F38: @ 8095F38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095F64
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F38
-
- thumb_func_start sub_8095F64
-sub_8095F64: @ 8095F64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095F78
- movs r0, 0
- b _08095F88
-_08095F78:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095F88:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F64
-
- thumb_func_start sub_8095F90
-sub_8095F90: @ 8095F90
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095FBC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F90
-
- thumb_func_start sub_8095FBC
-sub_8095FBC: @ 8095FBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095FD0
- movs r0, 0
- b _08095FE0
-_08095FD0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095FE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095FBC
-
- thumb_func_start sub_8095FE8
-sub_8095FE8: @ 8095FE8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_80929FC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095FE8
-
- thumb_func_start sub_8096020
-sub_8096020: @ 8096020
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_80929FC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096020
-
- thumb_func_start sub_8096058
-sub_8096058: @ 8096058
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_80929FC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096058
-
- thumb_func_start sub_8096090
-sub_8096090: @ 8096090
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_80929FC
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_8094554
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809459C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096090
-
- thumb_func_start sub_80960C8
-sub_80960C8: @ 80960C8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl npc_apply_direction
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80929BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80960C8
-
- thumb_func_start sub_8096100
-sub_8096100: @ 8096100
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80960C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096120
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096100
-
- thumb_func_start sub_8096120
-sub_8096120: @ 8096120
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08096132
- movs r0, 0
- b _08096138
-_08096132:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096138:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096120
-
- thumb_func_start sub_8096140
-sub_8096140: @ 8096140
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80960C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096160
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096140
-
- thumb_func_start sub_8096160
-sub_8096160: @ 8096160
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08096172
- movs r0, 0
- b _08096178
-_08096172:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096178:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096160
-
- thumb_func_start sub_8096180
-sub_8096180: @ 8096180
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80960C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80961A0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096180
-
- thumb_func_start sub_80961A0
-sub_80961A0: @ 80961A0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080961B2
- movs r0, 0
- b _080961B8
-_080961B2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080961B8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80961A0
-
- thumb_func_start sub_80961C0
-sub_80961C0: @ 80961C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_80960C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80961E0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80961C0
-
- thumb_func_start sub_80961E0
-sub_80961E0: @ 80961E0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080961F2
- movs r0, 0
- b _080961F8
-_080961F2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080961F8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80961E0
-
- thumb_func_start sub_8096200
-sub_8096200: @ 8096200
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl npc_apply_direction
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80929FC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_apply_anim_looping
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8096200
-
- thumb_func_start sub_8096230
-sub_8096230: @ 8096230
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8096200
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096250
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096230
-
- thumb_func_start sub_8096250
-sub_8096250: @ 8096250
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08096262
- movs r0, 0
- b _08096268
-_08096262:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096268:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096250
-
- thumb_func_start sub_8096270
-sub_8096270: @ 8096270
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8096200
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096290
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096270
-
- thumb_func_start sub_8096290
-sub_8096290: @ 8096290
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080962A2
- movs r0, 0
- b _080962A8
-_080962A2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080962A8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096290
-
- thumb_func_start sub_80962B0
-sub_80962B0: @ 80962B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8096200
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80962D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80962B0
-
- thumb_func_start sub_80962D0
-sub_80962D0: @ 80962D0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080962E2
- movs r0, 0
- b _080962E8
-_080962E2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080962E8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80962D0
-
- thumb_func_start sub_80962F0
-sub_80962F0: @ 80962F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8096200
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096310
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80962F0
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08096322
- movs r0, 0
- b _08096328
-_08096322:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096328:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096310
-
- thumb_func_start sub_8096330
-sub_8096330: @ 8096330
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl npc_apply_direction
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80929DC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8096330
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8096330
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096388
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_8096388
-sub_8096388: @ 8096388
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0809639A
- movs r0, 0
- b _080963A0
-_0809639A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080963A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096388
-
- thumb_func_start sub_80963A8
-sub_80963A8: @ 80963A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8096330
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80963C8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80963A8
-
- thumb_func_start sub_80963C8
-sub_80963C8: @ 80963C8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080963DA
- movs r0, 0
- b _080963E0
-_080963DA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080963E0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80963C8
-
- thumb_func_start sub_80963E8
-sub_80963E8: @ 80963E8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8096330
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096408
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80963E8
-
- thumb_func_start sub_8096408
-sub_8096408: @ 8096408
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0809641A
- movs r0, 0
- b _08096420
-_0809641A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096420:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096408
-
- thumb_func_start sub_8096428
-sub_8096428: @ 8096428
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8096330
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8096448
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096428
-
- thumb_func_start sub_8096448
-sub_8096448: @ 8096448
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0809645A
- movs r0, 0
- b _08096460
-_0809645A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08096460:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096448
-
- thumb_func_start sub_8096468
-sub_8096468: @ 8096468
- push {r4,lr}
- adds r4, r1, 0
- bl sub_8097FA4
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096468
-
- thumb_func_start sub_809647C
-sub_809647C: @ 809647C
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1B]
- bl sub_8098044
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809647C
-
- thumb_func_start sub_8096494
-sub_8096494: @ 8096494
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080964A6
- movs r0, 0
- b _080964B0
-_080964A6:
- ldrb r0, [r2, 0x1B]
- bl sub_8098044
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080964B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096494
-
- thumb_func_start sub_80964B8
-sub_80964B8: @ 80964B8
- movs r0, 0x1
- bx lr
- thumb_func_end sub_80964B8
-
- thumb_func_start sub_80964BC
-@ bool8 sub_80964BC(struct npc_state *fieldObject, struct obj *object)
-sub_80964BC: @ 80964BC
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_80964BC
-
- thumb_func_start npc_obj_transfer_image_anim_pause_flag
-@ void npc_obj_transfer_image_anim_pause_flag(struct npc_state *fieldObject, struct obj *object)
-npc_obj_transfer_image_anim_pause_flag: @ 80964CC
- push {lr}
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- bge _080964E2
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080964E2:
- pop {r0}
- bx r0
- thumb_func_end npc_obj_transfer_image_anim_pause_flag
-
- thumb_func_start sub_80964E8
-@ void sub_80964E8(struct npc_state *fieldObject, struct obj *object)
-sub_80964E8: @ 80964E8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r3, [r4, 0x1]
- lsls r0, r3, 28
- cmp r0, 0
- bge _08096510
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- movs r1, 0x9
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x1]
-_08096510:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80964E8
-
- thumb_func_start sub_8096518
-@ void sub_8096518(struct npc_state *fieldObject, struct obj *object)
-sub_8096518: @ 8096518
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8096530
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_update_obj_anim_flag
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8096518
-
- thumb_func_start sub_8096530
-sub_8096530: @ 8096530
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r5, 0x1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096594
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, =gSpriteCoordOffsetX
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- b _080965BC
- .pool
-_08096594:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
-_080965BC:
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r6, 0x8]
- adds r0, r3
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r6, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080965E4
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080965EC
-_080965E4:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080965EC:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _08096600
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _08096608
-_08096600:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_08096608:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8096530
-
- thumb_func_start npc_update_obj_anim_flag
-@ void npc_update_obj_anim_flag(struct npc_state *fieldObject, struct obj *object)
-npc_update_obj_anim_flag: @ 8096610
- push {lr}
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x5
- negs r3, r3
- ands r3, r1
- strb r3, [r2]
- ldrb r1, [r0, 0x1]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08096632
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_08096632:
- pop {r0}
- bx r0
- thumb_func_end npc_update_obj_anim_flag
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 1698c054e..3cf5a70da 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -43,7 +43,7 @@ player_step: @ 808A9C0
lsrs r7, r1, 16
lsls r2, 16
lsrs r6, r2, 16
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -153,7 +153,7 @@ npc_clear_strange_bits: @ 808AA9C
adds r2, 0x2
ands r1, r2
strb r1, [r0, 0x1]
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
@@ -172,7 +172,7 @@ MovePlayerAvatarUsingKeypadInput: @ 808AAC0
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -197,7 +197,7 @@ _0808AAF0:
@ void PlayerAllowForcedMovementIfMovingSameDirection()
PlayerAllowForcedMovementIfMovingSameDirection: @ 808AAF8
push {lr}
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r0, [r2, 0x2]
cmp r0, 0x2
bne _0808AB0A
@@ -234,7 +234,7 @@ TryDoMetatileBehaviorForcedMovment: @ 808AB14
@ u8 GetForcedMovementByMetatileBehavior()
GetForcedMovementByMetatileBehavior: @ 808AB38
push {r4-r6,lr}
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3]
movs r0, 0x20
ands r0, r1
@@ -280,7 +280,7 @@ _0808AB8C:
thumb_func_start ForcedMovement_None
ForcedMovement_None: @ 808AB94
push {r4,lr}
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r1, [r4]
movs r0, 0x40
ands r0, r1
@@ -325,7 +325,7 @@ DoForcedMovement: @ 808ABE0
mov r9, r1
lsls r0, 24
lsrs r5, r0, 24
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
adds r0, r5, 0
bl CheckForPlayerAvatarCollision
lsls r0, 24
@@ -381,7 +381,7 @@ _0808AC48:
DoForcedMovementInCurrentDirection: @ 808AC58
push {lr}
adds r1, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r2, [r0, 0x5]
lsls r0, r2, 3
adds r0, r2
@@ -523,7 +523,7 @@ ForcedMovement_Slide: @ 808AD60
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r3, [r2, 0x5]
lsls r2, r3, 3
adds r2, r3
@@ -618,7 +618,7 @@ ForcedMovement_0xBC: @ 808AE04
thumb_func_start ForcedMovement_MuddySlope
ForcedMovement_MuddySlope: @ 808AE10
push {r4,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -691,7 +691,7 @@ CheckMovementInputNotOnBike: @ 808AE98
lsrs r4, r0, 24
cmp r4, 0
bne _0808AEB0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
strb r4, [r0, 0x2]
movs r0, 0
b _0808AED2
@@ -702,7 +702,7 @@ _0808AEB0:
lsrs r0, 24
cmp r4, r0
beq _0808AECC
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r0, [r1, 0x2]
cmp r0, 0x2
beq _0808AECC
@@ -710,7 +710,7 @@ _0808AEB0:
b _0808AED0
.pool
_0808AECC:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x2
_0808AED0:
strb r0, [r1, 0x2]
@@ -784,7 +784,7 @@ _0808AF3C:
bl PlayerNotOnBikeCollide
b _0808AFB6
_0808AF4E:
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r1, [r4]
movs r0, 0x8
ands r0, r1
@@ -843,7 +843,7 @@ CheckForPlayerAvatarCollision: @ 808AFBC
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -894,7 +894,7 @@ sub_808B028: @ 808B028
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -1102,7 +1102,7 @@ sub_808B1BC: @ 808B1BC
lsrs r4, r1, 16
lsls r2, 24
lsrs r6, r2, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1285,7 +1285,7 @@ IsPlayerCollidingWithFarawayIslandMew: @ 808B324
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r2, [r1, 0x5]
lsls r1, r2, 3
adds r1, r2
@@ -1369,7 +1369,7 @@ SetPlayerAvatarTransitionFlags: @ 808B3CC
push {lr}
lsls r0, 16
lsrs r0, 16
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x1]
orrs r0, r1
strb r0, [r2, 0x1]
@@ -1383,7 +1383,7 @@ SetPlayerAvatarTransitionFlags: @ 808B3CC
@ void DoPlayerAvatarTransition()
DoPlayerAvatarTransition: @ 808B3E8
push {r4,r5,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r4, [r0, 0x1]
cmp r4, 0
beq _0808B428
@@ -1396,7 +1396,7 @@ _0808B3F4:
ldr r0, =gUnknown_084974B8
lsls r2, r5, 2
adds r2, r0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1412,7 +1412,7 @@ _0808B416:
lsrs r4, 1
cmp r5, 0x7
bls _0808B3F4
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x1]
_0808B428:
@@ -1522,14 +1522,14 @@ PlayerAvatarTransition_Surfing: @ 808B4D8
bl FieldObjectTurn
movs r0, 0x8
bl SetPlayerAvatarStateMask
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
movs r2, 0x12
ldrsh r0, [r4, r2]
str r0, [r1, 0x4]
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
str r0, [r1, 0x8]
movs r0, 0x8
@@ -1574,7 +1574,7 @@ PlayerAvatarTransition_Underwater: @ 808B534
thumb_func_start PlayerAvatarTransition_ReturnToField
@ void PlayerAvatarTransition_ReturnToField(struct npc_state *fieldObject)
PlayerAvatarTransition_ReturnToField: @ 808B568
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0x20
orrs r0, r1
@@ -1586,7 +1586,7 @@ PlayerAvatarTransition_ReturnToField: @ 808B568
thumb_func_start sub_808B578
sub_808B578: @ 808B578
push {r4,lr}
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
movs r0, 0
strb r0, [r4, 0x3]
bl PlayerIsAnimActive
@@ -1622,7 +1622,7 @@ _0808B5B6:
player_is_anim_in_certain_ranges: @ 808B5BC
push {lr}
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1673,7 +1673,7 @@ sub_808B618: @ 808B618
lsls r0, 24
cmp r0, 0
beq _0808B634
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x2]
cmp r0, 0x1
beq _0808B634
@@ -1691,7 +1691,7 @@ _0808B636:
@ bool8 PlayerIsAnimActive()
PlayerIsAnimActive: @ 808B63C
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1710,7 +1710,7 @@ PlayerIsAnimActive: @ 808B63C
@ bool8 PlayerCheckIfAnimFinishedOrInactive()
PlayerCheckIfAnimFinishedOrInactive: @ 808B660
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1728,7 +1728,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 808B660
thumb_func_start player_set_x22
player_set_x22: @ 808B684
ldr r3, =gMapObjects
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r2, [r1, 0x5]
lsls r1, r2, 3
adds r1, r2
@@ -1743,7 +1743,7 @@ player_set_x22: @ 808B684
thumb_func_start player_get_x22
player_get_x22: @ 808B6A0
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1761,7 +1761,7 @@ sub_808B6BC: @ 808B6BC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r2, [r0, 0x5]
lsls r0, r2, 3
adds r0, r2
@@ -1788,7 +1788,7 @@ player_npc_set_state_and_x22_etc: @ 808B6E4
bne _0808B712
adds r0, r4, 0
bl player_set_x22
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2002,7 +2002,7 @@ PlayerJumpLedge: @ 808B840
thumb_func_start sub_808B864
sub_808B864: @ 808B864
push {r4,lr}
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r0, [r4, 0x3]
cmp r0, 0x2
beq _0808B872
@@ -2220,7 +2220,7 @@ PlayCollisionSoundIfNotFacingWarp: @ 808B9EC
lsls r0, 24
lsrs r4, r0, 24
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2276,7 +2276,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 808BA68
adds r4, r0, 0
adds r5, r1, 0
ldr r3, =gMapObjects
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2308,7 +2308,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 808BA68
PlayerGetDestCoords: @ 808BAAC
push {r4,r5,lr}
ldr r5, =gMapObjects
- ldr r4, =gUnknown_02037590
+ ldr r4, =gPlayerAvatar
ldrb r3, [r4, 0x5]
lsls r2, r3, 3
adds r2, r3
@@ -2334,7 +2334,7 @@ plaer_get_pos_including_state_based_drift: @ 808BADC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2466,7 +2466,7 @@ _0808BC30:
@ u8 player_get_direction_lower_nybble()
player_get_direction_lower_nybble: @ 808BC38
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2483,7 +2483,7 @@ player_get_direction_lower_nybble: @ 808BC38
@ u8 player_get_direction_upper_nybble()
player_get_direction_upper_nybble: @ 808BC58
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2499,7 +2499,7 @@ player_get_direction_upper_nybble: @ 808BC58
@ u8 PlayerGetZCoord()
PlayerGetZCoord: @ 808BC74
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2516,7 +2516,7 @@ sub_808BC90: @ 808BC90
push {lr}
adds r3, r0, 0
adds r2, r1, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2537,7 +2537,7 @@ sub_808BC90: @ 808BC90
thumb_func_start TestPlayerAvatarFlags
@ u32 TestPlayerAvatarFlags(u32 mask)
TestPlayerAvatarFlags: @ 808BCC0
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1]
ands r1, r0
adds r0, r1, 0
@@ -2547,7 +2547,7 @@ TestPlayerAvatarFlags: @ 808BCC0
thumb_func_start sub_808BCD0
sub_808BCD0: @ 808BCD0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0]
bx lr
.pool
@@ -2556,7 +2556,7 @@ sub_808BCD0: @ 808BCD0
thumb_func_start GetPlayerAvatarObjectId
@ u8 GetPlayerAvatarObjectId()
GetPlayerAvatarObjectId: @ 808BCDC
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
bx lr
.pool
@@ -2573,7 +2573,7 @@ sub_808BCE8: @ 808BCE8
thumb_func_start sub_808BCF4
sub_808BCF4: @ 808BCF4
push {r4,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -2659,7 +2659,7 @@ GetPlayerAvatarGraphicsIdByStateId: @ 808BD8C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x7]
bl GetPlayerAvatarGraphicsIdByStateIdAndGender
lsls r0, 24
@@ -2804,7 +2804,7 @@ _0808BE70:
IsPlayerFacingSurfableFishableWater: @ 808BE74
push {r4,r5,lr}
sub sp, 0x4
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -2871,7 +2871,7 @@ _0808BEF6:
@ void ClearPlayerAvatarInfo()
ClearPlayerAvatarInfo: @ 808BF00
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
movs r1, 0
movs r2, 0x24
bl memset
@@ -2885,7 +2885,7 @@ ClearPlayerAvatarInfo: @ 808BF00
SetPlayerAvatarStateMask: @ 808BF14
lsls r0, 24
lsrs r0, 24
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r2, [r3]
movs r1, 0xE0
ands r1, r2
@@ -2937,7 +2937,7 @@ _0808BF64:
@ u8 GetPlayerAvatarGraphicsIdByCurrentState()
GetPlayerAvatarGraphicsIdByCurrentState: @ 808BF6C
push {r4-r6,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r5, [r0]
movs r2, 0
ldr r3, =gUnknown_0849750C
@@ -2980,7 +2980,7 @@ SetPlayerAvatarExtraStateTransition: @ 808BFB0
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r1, [r5, 0x7]
bl GetPlayerAvatarStateTransitionByGraphicsId
lsls r0, 24
@@ -3072,7 +3072,7 @@ InitPlayerAvatar: @ 808BFE0
mov r1, r9
bl FieldObjectTurn
bl ClearPlayerAvatarInfo
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
strb r6, [r0, 0x2]
strb r6, [r0, 0x3]
strb r5, [r0, 0x5]
@@ -3098,7 +3098,7 @@ sub_808C0A8: @ 808C0A8
lsls r0, 24
lsrs r4, r0, 24
ldr r6, =gMapObjects
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r1, r0, 3
adds r1, r0
@@ -3147,7 +3147,7 @@ _0808C100:
thumb_func_start sub_808C114
sub_808C114: @ 808C114
push {r4,r5,lr}
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -3181,7 +3181,7 @@ sub_808C15C: @ 808C15C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -3222,7 +3222,7 @@ sub_808C1B4: @ 808C1B4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -3271,7 +3271,7 @@ sub_808C228: @ 808C228
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r0, [r6, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -3424,7 +3424,7 @@ _0808C360:
ldrsh r3, [r4, r0]
lsls r3, 2
adds r3, r6
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r1, r0, 3
adds r1, r0
@@ -3453,7 +3453,7 @@ sub_808C3A4: @ 808C3A4
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrh r0, [r4, 0x8]
@@ -3517,7 +3517,7 @@ _0808C3F0:
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]
@@ -3571,7 +3571,7 @@ sub_808C484: @ 808C484
bl FieldObjectClearAnimIfSpecialAnimFinished
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
@@ -3620,7 +3620,7 @@ _0808C50A:
ldrsh r2, [r4, r0]
lsls r2, 2
adds r2, r5
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r1, r0, 3
adds r1, r0
@@ -3644,7 +3644,7 @@ sub_808C544: @ 808C544
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
adds r0, r4, 0
@@ -3721,7 +3721,7 @@ _0808C5E2:
ldrsh r2, [r4, r0]
lsls r2, 2
adds r2, r5
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r1, r0, 3
adds r1, r0
@@ -3749,7 +3749,7 @@ sub_808C61C: @ 808C61C
ldrb r1, [r1, 0x18]
lsrs r1, 4
strh r1, [r0, 0xA]
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
bl ScriptContext2_Enable
@@ -3873,7 +3873,7 @@ sub_808C6FC: @ 808C6FC
adds r0, r5, 0
bl FieldObjectSetSpecialAnim
bl ScriptContext2_Disable
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
ldr r0, =sub_808C5D0
@@ -3898,7 +3898,7 @@ sub_808C750: @ 808C750
bl ScriptContext2_Enable
bl sav1_reset_battle_music_maybe
bl sub_8085898
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0xF7
ands r0, r1
@@ -3931,7 +3931,7 @@ taskFF_0805D1D4: @ 808C7A8
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -3978,7 +3978,7 @@ sub_808C814: @ 808C814
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r6, =gUnknown_02037590
+ ldr r6, =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4083,7 +4083,7 @@ fish0: @ 808C8F8
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrh r0, [r4, 0x8]
@@ -4128,7 +4128,7 @@ fish1: @ 808C918
adds r1, r0
strh r1, [r5, 0x22]
ldr r3, =gMapObjects
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -4366,7 +4366,7 @@ _0808CB30:
_0808CB32:
cmp r6, 0x1
bne _0808CB5C
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -4574,7 +4574,7 @@ _0808CCBC:
lsrs r6, r0, 16
cmp r6, 0
bne _0808CD50
- ldr r7, =gUnknown_02037590
+ ldr r7, =gPlayerAvatar
ldrb r0, [r7, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -4633,7 +4633,7 @@ _0808CD50:
cmp r0, 0
beq _0808CD80
_0808CD58:
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
@@ -4664,7 +4664,7 @@ fishB: @ 808CD94
sub sp, 0x10
adds r5, r0, 0
bl sub_808CF78
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -4712,7 +4712,7 @@ fishC: @ 808CE04
sub sp, 0x10
adds r5, r0, 0
bl sub_808CF78
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
@@ -4777,7 +4777,7 @@ fishE: @ 808CE8C
adds r6, r0, 0
bl sub_808CF78
ldr r7, =gSprites
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x4]
lsls r1, r0, 4
adds r1, r0
@@ -4855,7 +4855,7 @@ fishF: @ 808CF2C
lsrs r1, r0, 16
cmp r1, 0
bne _0808CF68
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
strb r1, [r0, 0x6]
bl ScriptContext2_Disable
bl sub_809757C
@@ -4879,7 +4879,7 @@ _0808CF68:
thumb_func_start sub_808CF78
sub_808CF78: @ 808CF78
push {r4-r7,lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -4978,7 +4978,7 @@ _0808D02A:
movs r0, 0x8
strh r0, [r4, 0x26]
_0808D03A:
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3]
movs r0, 0x8
ands r0, r1
@@ -5032,7 +5032,7 @@ sub_808D094: @ 808D094
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -5212,7 +5212,7 @@ sub_808D1FC: @ 808D1FC
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
index 0abd11da4..26761b8d1 100644
--- a/asm/field_tasks.s
+++ b/asm/field_tasks.s
@@ -1858,7 +1858,7 @@ _0809E6F8:
cmp r6, 0xD
ble _0809E6F8
_0809E708:
- ldr r2, =gUnknown_02037334
+ ldr r2, =gCamera
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
index d2416248f..dbb8a3fa3 100644
--- a/asm/fieldmap.s
+++ b/asm/fieldmap.s
@@ -1508,12 +1508,12 @@ CameraMove: @ 808887C
push {r5-r7}
mov r10, r0
mov r9, r1
- ldr r1, =gUnknown_02037334
+ ldr r1, =gCamera
ldrb r0, [r1]
movs r1, 0x2
negs r1, r1
ands r1, r0
- ldr r2, =gUnknown_02037334
+ ldr r2, =gCamera
strb r1, [r2]
mov r0, r10
mov r1, r9
@@ -1556,23 +1556,23 @@ _080888C4:
ldrb r0, [r4, 0x8]
ldrb r1, [r4, 0x9]
bl mliX_load_map
- ldr r1, =gUnknown_02037334
+ ldr r1, =gCamera
ldrb r0, [r1]
movs r1, 0x1
orrs r0, r1
- ldr r2, =gUnknown_02037334
+ ldr r2, =gCamera
strb r0, [r2]
ldr r0, =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0
ldrsh r0, [r1, r2]
subs r5, r0
- ldr r0, =gUnknown_02037334
+ ldr r0, =gCamera
str r5, [r0, 0x4]
movs r2, 0x2
ldrsh r0, [r1, r2]
subs r6, r0
- ldr r0, =gUnknown_02037334
+ ldr r0, =gCamera
str r6, [r0, 0x8]
ldrh r0, [r1]
add r0, r10
@@ -1583,7 +1583,7 @@ _080888C4:
mov r0, r8
bl sub_80885C4
_08088932:
- ldr r0, =gUnknown_02037334
+ ldr r0, =gCamera
ldrb r0, [r0]
lsls r0, 31
lsrs r0, 31
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index f783547e1..784da5b1f 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -480,13 +480,13 @@ sub_80F9F5C: @ 80F9F5C
thumb_func_start sub_80F9F78
sub_80F9F78: @ 80F9F78
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x6
ands r0, r1
cmp r0, 0
beq _080F9FC0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080F9FAE
@@ -517,7 +517,7 @@ _080F9FB6:
movs r0, 0x18
b _080F9FFC
_080F9FC0:
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -692,7 +692,7 @@ sub_80FA13C: @ 80FA13C
bl sub_80F9F78
ldr r0, =gUnknown_0858E600
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -701,7 +701,7 @@ sub_80FA13C: @ 80FA13C
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -836,20 +836,20 @@ sub_80FA248: @ 80FA248
ands r2, r0
cmp r2, 0x96
bne _080FA26A
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r0, 0
str r0, [r1, 0x1C]
_080FA26A:
cmp r2, 0x9C
bne _080FA274
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r0, 0x2
str r0, [r1, 0x1C]
_080FA274:
bl sub_80F9F78
ldr r0, =gUnknown_0858E618
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -858,7 +858,7 @@ _080FA274:
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -1000,7 +1000,7 @@ sub_80FA3AC: @ 80FA3AC
bl sub_80F9F78
ldr r0, =gUnknown_0858E630
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -1009,7 +1009,7 @@ sub_80FA3AC: @ 80FA3AC
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -1723,7 +1723,7 @@ sub_80FA9D0: @ 80FA9D0
push {r4,lr}
sub sp, 0x4
ldr r3, =gMapObjects
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1807,7 +1807,7 @@ sub_80FAA7C: @ 80FAA7C
mov r0, sp
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
@@ -1835,7 +1835,7 @@ _080FAABC:
_080FAAC6:
ldr r0, =gUnknown_0858E68C
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -1857,7 +1857,7 @@ _080FAAC6:
_080FAAFC:
ldr r0, =gUnknown_0858E68C
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -1876,7 +1876,7 @@ _080FAAFC:
_080FAB2C:
ldr r0, =gUnknown_0858E68C
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -1898,7 +1898,7 @@ _080FAB4C:
_080FAB64:
ldr r0, =gUnknown_0858E68C
ldr r3, =gSprites
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r1, [r1, 0x4]
lsls r2, r1, 4
adds r2, r1
@@ -1930,7 +1930,7 @@ door_restore_tilemap: @ 80FABA4
adds r5, r0, 0
movs r0, 0x83
bl PlaySE
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
subs r1, 0x1
@@ -1953,7 +1953,7 @@ _080FABDC:
lsls r2, 2
bl MapGridSetMetatileIdAt
_080FABEA:
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, =0x00000e8c
@@ -2307,7 +2307,7 @@ sub_80FAEF0: @ 80FAEF0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -2357,7 +2357,7 @@ sub_80FAF64: @ 80FAF64
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index dc962ef61..ce7e79de8 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -542,7 +542,7 @@ _080D3B64:
movs r6, 0
ldr r5, =gSprites
_080D3BA0:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
diff --git a/asm/fldeff_emotion.s b/asm/fldeff_emotion.s
index f8b66da0d..37096a438 100644
--- a/asm/fldeff_emotion.s
+++ b/asm/fldeff_emotion.s
@@ -115,7 +115,7 @@ sub_80B46D8: @ 80B46D8
orrs r3, r4
mov r4, r12
strb r3, [r4]
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4]
strh r3, [r0, 0x2E]
ldr r3, [r4, 0x4]
@@ -296,7 +296,7 @@ sub_80B4808: @ 80B4808
b _080B489E
.pool
_080B4870:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
diff --git a/asm/fldeff_groundshake.s b/asm/fldeff_groundshake.s
index 8fcdc0396..cb0d2e2d8 100755
--- a/asm/fldeff_groundshake.s
+++ b/asm/fldeff_groundshake.s
@@ -235,7 +235,7 @@ sub_81BE808: @ 81BE808
ldrh r1, [r0, 0x26]
adds r1, 0x4
strh r1, [r0, 0x26]
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r1, r0, 3
adds r1, r0
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index 3dc64467e..98764625e 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r1, [r0]
movs r0, 0x64
muls r0, r1
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
index a297dd41d..5c83b455d 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -217,4 +217,4 @@ _0815A0BE:
thumb_func_end sub_815A090
.align 2, 0 @ Don't pad with nop.
- \ No newline at end of file
+
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
index f3dc3ec9b..e4f4bce42 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/link.s b/asm/link.s
index 9ee94412d..b6eddf2b4 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -27235,7 +27235,7 @@ sub_8017940: @ 8017940
ldrsh r0, [r4, r1]
cmp r0, 0x8
bne _08017978
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x3]
cmp r0, 0x2
beq _0801796E
@@ -31141,7 +31141,7 @@ bgid_upload_textbox_1: @ 8019938
thumb_func_start is_walking_or_running
is_walking_or_running: @ 8019958
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x3]
cmp r0, 0x2
beq _08019966
diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s
index 50284a013..4ed8e3bcd 100644
--- a/asm/map_obj_8097404.s
+++ b/asm/map_obj_8097404.s
@@ -97,7 +97,7 @@ _0809749A:
lsls r0, 31
cmp r0, 0
beq _080974B8
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
cmp r4, r0
beq _080974B8
@@ -133,7 +133,7 @@ _080974DA:
lsls r0, 31
cmp r0, 0
beq _080974FC
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
cmp r4, r0
beq _080974FC
@@ -769,16 +769,16 @@ _08097964:
.pool
thumb_func_end sub_80978E4
- thumb_func_start sub_8097978
-@ void sub_8097978(struct obj *object, u16 a2)
-sub_8097978: @ 8097978
+ thumb_func_start SetFieldObjectStepTimer
+@ void SetFieldObjectStepTimer(struct obj *object, u16 a2)
+SetFieldObjectStepTimer: @ 8097978
strh r1, [r0, 0x34]
bx lr
- thumb_func_end sub_8097978
+ thumb_func_end SetFieldObjectStepTimer
- thumb_func_start sub_809797C
-@ bool8 sub_809797C(struct obj *object)
-sub_809797C: @ 809797C
+ thumb_func_start RunFieldObjectStepTimer
+@ bool8 RunFieldObjectStepTimer(struct obj *object)
+RunFieldObjectStepTimer: @ 809797C
push {lr}
ldrh r1, [r0, 0x34]
subs r1, 0x1
@@ -793,7 +793,7 @@ _0809798E:
_08097990:
pop {r1}
bx r1
- thumb_func_end sub_809797C
+ thumb_func_end RunFieldObjectStepTimer
thumb_func_start obj_anim_image_set_and_seek
obj_anim_image_set_and_seek: @ 8097994
@@ -1396,7 +1396,7 @@ oe_exec_and_other_stuff: @ 8097DD0
adds r0, r1, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r3, 0x20
ldrsh r1, [r4, r3]
str r1, [r2]
@@ -1771,7 +1771,7 @@ _08098082:
lsls r0, 31
cmp r0, 0
beq _080980A8
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
cmp r4, r0
beq _080980A8
diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s
index 6530c268b..60757cdd0 100644
--- a/asm/map_obj_lock.s
+++ b/asm/map_obj_lock.s
@@ -8,7 +8,7 @@
thumb_func_start walkrun_is_standing_still
walkrun_is_standing_still: @ 8098388
push {lr}
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x3]
cmp r0, 0x1
beq _0809839C
diff --git a/asm/party_menu.s b/asm/party_menu.s
index cf00d63c1..bb4ad4e31 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1, 0x4]
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
index 137f7a5c0..c798d7753 100644
--- a/asm/pokemon_item_effect.s
+++ b/asm/pokemon_item_effect.s
@@ -1157,7 +1157,7 @@ _0806C6AE:
movs r2, 0
bl dp01_build_cmdbuf_x00_a_b_0
ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
+ bl MarkBufferBankForExecution
strb r5, [r4]
b _0806C6EC
.pool
diff --git a/asm/pokenav.s b/asm/pokenav.s
index f6c50a3f7..eee6e2f6a 100755
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -26636,7 +26636,7 @@ sub_81D427C: @ 81D427C
ldr r2, =gMapObjects
adds r5, r1, r2
ldr r4, =gUnknown_030012F8
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -26672,7 +26672,7 @@ _081D42CA:
cmp r0, 0x3
bls _081D42CA
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -26730,7 +26730,7 @@ _081D4360:
ldr r6, =gMapObjects
mov r10, r6
_081D4368:
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -26837,7 +26837,7 @@ _081D4410:
beq _081D4446
b _081D45AA
_081D4446:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -26879,7 +26879,7 @@ _081D4488:
cmp r0, 0
bne _081D4538
_081D449E:
- ldr r2, =gUnknown_02037590
+ ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -26983,7 +26983,7 @@ _081D4540:
beq _081D4576
b _081D447C
_081D4576:
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -27152,7 +27152,7 @@ _081D46D0:
cmp r0, 0
bne _081D476E
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -27177,7 +27177,7 @@ _081D46D0:
b _081D447C
_081D470C:
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -27231,7 +27231,7 @@ _081D476E:
cmp r0, 0
bne _081D480C
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -27256,7 +27256,7 @@ _081D476E:
b _081D45AA
_081D47AA:
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -27327,7 +27327,7 @@ sub_81D4834: @ 81D4834
lsls r1, 16
lsrs r4, r1, 16
ldr r3, =gMapObjects
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
ldrb r2, [r1, 0x5]
lsls r1, r2, 3
adds r1, r2
diff --git a/asm/porthole.s b/asm/porthole.s
index e5986b47e..282f6f584 100644
--- a/asm/porthole.s
+++ b/asm/porthole.s
@@ -232,7 +232,7 @@ sub_80FB768: @ 80FB768
push {lr}
bl sub_80FB6EC
ldr r2, =gMapObjects
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s
index 53824dfea..94d96b2f8 100644
--- a/asm/recorded_battle.s
+++ b/asm/recorded_battle.s
@@ -2599,7 +2599,7 @@ _081863A2:
ldr r2, [sp, 0x40]
bl SetMonData
_081863CA:
- ldr r2, =gUnknown_02024274
+ ldr r2, =gChosenMovesByBanks
ldr r3, [sp, 0x44]
adds r2, r3, r2
ldr r0, =gBattleStruct
diff --git a/asm/rom3.s b/asm/rom3.s
index e2f268f43..c3a730836 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -1573,7 +1573,7 @@ _08033346:
ldrsh r1, [r0, r2]
ldr r0, [r4]
adds r1, r0
- ldr r0, =gUnknown_0202420E
+ ldr r0, =gEffectBank
ldrb r0, [r0]
strb r0, [r1, 0x7]
movs r2, 0
@@ -2084,7 +2084,7 @@ _080337D2:
adds r0, r1
ldrb r0, [r0, 0x6]
strb r0, [r2]
- ldr r2, =gUnknown_0202420E
+ ldr r2, =gEffectBank
movs r4, 0x26
ldrsh r0, [r5, r4]
adds r0, r1
@@ -2175,8 +2175,8 @@ dp01_build_cmdbuf_x01_a_b_0: @ 80338D8
.pool
thumb_func_end dp01_build_cmdbuf_x01_a_b_0
- thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs
-dp01_build_cmdbuf_x02_a_b_varargs: @ 8033900
+ thumb_func_start EmitSetAttributes
+EmitSetAttributes: @ 8033900
push {r4-r6,lr}
ldr r4, [sp, 0x10]
lsls r0, 24
@@ -2209,7 +2209,7 @@ _0803392E:
pop {r0}
bx r0
.pool
- thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs
+ thumb_func_end EmitSetAttributes
thumb_func_start sub_8033940
sub_8033940: @ 8033940
diff --git a/asm/rom4.s b/asm/rom4.s
index 9e4e9f108..a3125efc4 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -4396,7 +4396,7 @@ sub_8086A68: @ 8086A68
sub_8086A80: @ 8086A80
push {lr}
ldr r2, =gMapObjects
- ldr r3, =gUnknown_02037590
+ ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -5480,7 +5480,7 @@ sub_80872D8: @ 80872D8
movs r0, 0x1
_080872EA:
strb r0, [r6, 0x1]
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsls r0, r4, 2
adds r0, r1
ldrb r0, [r0, 0x3]
@@ -5977,7 +5977,7 @@ sub_80876C4: @ 80876C4
thumb_func_start strange_npc_table_clear
strange_npc_table_clear: @ 80876CC
push {lr}
- ldr r0, =gUnknown_02032308
+ ldr r0, =gLinkPlayerMapObjects
movs r1, 0
movs r2, 0x10
bl memset
@@ -6025,7 +6025,7 @@ sub_80876F0: @ 80876F0
lsls r6, 24
lsrs r6, 24
lsls r4, r7, 2
- ldr r0, =gUnknown_02032308
+ ldr r0, =gLinkPlayerMapObjects
adds r4, r0
lsls r5, r6, 3
adds r5, r6
@@ -6118,7 +6118,7 @@ sub_80877DC: @ 80877DC
lsls r0, 24
lsls r1, 24
lsrs r2, r1, 24
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsrs r0, 22
adds r1, r0, r1
ldrb r0, [r1]
@@ -6142,7 +6142,7 @@ sub_808780C: @ 808780C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 22
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
@@ -6176,7 +6176,7 @@ _08087838:
thumb_func_start sub_8087858
sub_8087858: @ 8087858
lsls r0, 24
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -6193,7 +6193,7 @@ sub_8087858: @ 8087858
thumb_func_start sub_8087878
sub_8087878: @ 8087878
lsls r0, 24
- ldr r3, =gUnknown_02032308
+ ldr r3, =gLinkPlayerMapObjects
lsrs r0, 22
adds r0, r3
ldrb r3, [r0, 0x2]
@@ -6213,7 +6213,7 @@ sub_8087878: @ 8087878
thumb_func_start sub_80878A0
sub_80878A0: @ 80878A0
lsls r0, 24
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -6230,7 +6230,7 @@ sub_80878A0: @ 80878A0
thumb_func_start sub_80878C0
sub_80878C0: @ 80878C0
lsls r0, 24
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -6249,7 +6249,7 @@ sub_80878C0: @ 80878C0
thumb_func_start sub_80878E4
sub_80878E4: @ 80878E4
lsls r0, 24
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -6271,7 +6271,7 @@ sub_80878E4: @ 80878E4
sub_808790C: @ 808790C
push {r4-r6,lr}
movs r2, 0
- ldr r5, =gUnknown_02032308
+ ldr r5, =gLinkPlayerMapObjects
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
@@ -6326,7 +6326,7 @@ sub_808796C: @ 808796C
lsrs r3, r1, 24
adds r2, r3, 0
lsrs r0, 22
- ldr r1, =gUnknown_02032308
+ ldr r1, =gLinkPlayerMapObjects
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
@@ -6654,7 +6654,7 @@ sub_8087BCC: @ 8087BCC
lsls r1, 24
lsrs r3, r1, 24
lsls r2, r5, 2
- ldr r0, =gUnknown_02032308
+ ldr r0, =gLinkPlayerMapObjects
adds r2, r0
ldrb r1, [r2, 0x2]
lsls r0, r1, 3
@@ -6742,7 +6742,7 @@ sub_8087C8C: @ 8087C8C
movs r0, 0x2E
ldrsh r4, [r5, r0]
lsls r4, 2
- ldr r0, =gUnknown_02032308
+ ldr r0, =gLinkPlayerMapObjects
adds r4, r0
ldrb r1, [r4, 0x2]
lsls r0, r1, 3
diff --git a/asm/rom6.s b/asm/rom6.s
index c5e0265a0..bfa19101a 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -68,7 +68,7 @@ task08_080C9820: @ 813549C
lsrs r5, r0, 24
adds r6, r5, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrb r1, [r1, 0x5]
@@ -127,7 +127,7 @@ sub_813552C: @ 813552C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -167,7 +167,7 @@ sub_8135578: @ 8135578
cmp r4, 0
bne _081355FC
bl player_get_direction_lower_nybble
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r6, 0x4]
@@ -191,7 +191,7 @@ _081355B0:
movs r0, 0x3
str r0, [r6, 0x8]
_081355B8:
- ldr r5, =gUnknown_02037590
+ ldr r5, =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -244,7 +244,7 @@ sub_813561C: @ 813561C
ldrh r0, [r0, 0x1A]
orrs r1, r0
bl _call_via_r1
- ldr r1, =gUnknown_02037590
+ ldr r1, =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
adds r0, r4, 0
@@ -303,7 +303,7 @@ _081356AC:
sub_81356C4: @ 81356C4
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -11039,7 +11039,7 @@ _0813B0F8:
ldr r0, =sub_813B160
movs r1, 0x8
bl CreateTask
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r0, 0x1
str r0, [r3]
movs r0, 0x3A
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index 0598c2310..39366d29f 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -4874,7 +4874,7 @@ s9D_set_HM_animation_data: @ 809B7F4
lsls r0, 16
lsrs r0, 16
bl VarGet
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r4, 2
adds r4, r1
lsls r0, 16
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 2188e634d..5cf0f3697 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -751,7 +751,7 @@ sub_80E90C8: @ 80E90C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index d725b9f15..d57ad1815 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, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -882,7 +882,7 @@ _080B427A:
bl sub_808F23C
adds r0, r5, 0
bl sub_808F208
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -901,7 +901,7 @@ _080B427A:
beq _080B4308
_080B42D2:
bl sub_808BCE8
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
@@ -936,7 +936,7 @@ sub_80B4318: @ 80B4318
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_02037590
+ ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
@@ -1050,7 +1050,7 @@ sub_80B43E0: @ 80B43E0
lsls r0, 24
cmp r0, 0
beq _080B4426
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]