summaryrefslogtreecommitdiff
path: root/asm/field_tasks.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/field_tasks.s')
-rw-r--r--asm/field_tasks.s1921
1 files changed, 0 insertions, 1921 deletions
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 09f5bbc9b..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1921 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 809D88C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, =gUnknown_08510348
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_per_step_callback_manager
-
- thumb_func_start sub_809D8B8
-sub_809D8B8: @ 809D8B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809D8CA
- cmp r0, 0x1
- beq _0809D8E8
- b _0809D8FC
-_0809D8CA:
- ldr r0, =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0809D8FC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _0809D8FA
- .pool
-_0809D8E8:
- ldr r0, =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0809D8FC
- ldrh r0, [r4]
- subs r0, 0x1
-_0809D8FA:
- strh r0, [r4]
-_0809D8FC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809D8B8
-
- thumb_func_start sub_809D908
-sub_809D908: @ 809D908
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _0809D930
- adds r0, r4, 0
- bl sub_809D8B8
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl UpdateAmbientCry
-_0809D930:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809D908
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 809D93C
- push {r4,r5,lr}
- ldr r5, =task_per_step_callback_manager
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0809D966
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_0809D966:
- ldr r4, =sub_809E638
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0809D97C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809D97C:
- ldr r4, =sub_809D908
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0809D992
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809D992:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 809D9A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =task_per_step_callback_manager
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D9EA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0809D9CC:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0809D9CC
- cmp r4, 0x7
- bls _0809D9E8
- movs r0, 0
- strh r0, [r1]
- b _0809D9EA
- .pool
-_0809D9E8:
- strh r4, [r1]
-_0809D9EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 809D9F0
- push {lr}
- ldr r0, =task_per_step_callback_manager
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, =sub_809D908
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809DA1A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_0809DA1A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start nullsub_34
-nullsub_34: @ 809DA2C
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start sub_809DA30
-sub_809DA30: @ 809DA30
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DA48
- adds r0, r5, 0
- b _0809DA80
-_0809DA48:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DA5A
- adds r0, r5, 0
- adds r0, 0x8
- b _0809DA80
-_0809DA5A:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DA6C
- adds r0, r5, 0
- adds r0, 0x10
- b _0809DA80
-_0809DA6C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- bne _0809DA7C
- movs r0, 0
- b _0809DA80
-_0809DA7C:
- adds r0, r5, 0
- adds r0, 0x18
-_0809DA80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA30
-
- thumb_func_start sub_809DA88
-sub_809DA88: @ 809DA88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_809DA30
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _0809DB06
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0809DADE
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0809DADE:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0809DB06
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0809DB06:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809DA88
-
- thumb_func_start sub_809DB10
-sub_809DB10: @ 809DB10
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_08510368
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB10
-
- thumb_func_start sub_809DB34
-sub_809DB34: @ 809DB34
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_08510388
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB34
-
- thumb_func_start sub_809DB58
-sub_809DB58: @ 809DB58
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_085103A8
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB58
-
- thumb_func_start sub_809DB7C
-sub_809DB7C: @ 809DB7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DBC0
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _0809DC06
-_0809DBBC:
- movs r0, 0
- b _0809DC08
-_0809DBC0:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DBD8
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _0809DC06
- b _0809DBBC
-_0809DBD8:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DBF0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _0809DC06
- b _0809DBBC
-_0809DBF0:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DC06
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0809DBBC
-_0809DC06:
- movs r0, 0x1
-_0809DC08:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DB7C
-
- thumb_func_start sub_809DC18
-sub_809DC18: @ 809DC18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DC5C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _0809DCA2
-_0809DC58:
- movs r0, 0
- b _0809DCA4
-_0809DC5C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DC74
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _0809DCA2
- b _0809DC58
-_0809DC74:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DC8C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _0809DCA2
- b _0809DC58
-_0809DC8C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DCA2
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _0809DC58
-_0809DCA2:
- movs r0, 0x1
-_0809DCA4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DC18
-
- thumb_func_start sub_809DCB4
-sub_809DCB4: @ 809DCB4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _0809DD0E
- cmp r0, 0x1
- bgt _0809DCEC
- cmp r0, 0
- beq _0809DCF2
- b _0809DE1E
- .pool
-_0809DCEC:
- cmp r0, 0x2
- beq _0809DDDC
- b _0809DE1E
-_0809DCF2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_809DB34
- b _0809DE1A
-_0809DD0E:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0809DD28
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _0809DE1E
-_0809DD28:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_809DB7C
- cmp r0, 0
- beq _0809DD70
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_809DB10
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_809DB58
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0809DD7A
-_0809DD70:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0809DD7A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_809DC18
- cmp r0, 0
- beq _0809DDAE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_809DB10
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0809DDAE:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _0809DE1E
- movs r0, 0x46
- bl PlaySE
- b _0809DE1E
-_0809DDDC:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _0809DE1E
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_809DB34
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809DE1A
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _0809DE1A
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_809DB58
-_0809DE1A:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_0809DE1E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809DCB4
-
- thumb_func_start sub_809DE28
-sub_809DE28: @ 809DE28
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809DE82
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, =0x0000024e
- cmp r1, r0
- beq _0809DE68
- adds r0, 0x8
- cmp r1, r0
- beq _0809DE78
- b _0809DE82
- .pool
-_0809DE68:
- ldr r2, =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0809DE82
- .pool
-_0809DE78:
- ldr r2, =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0809DE82:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DE28
-
- thumb_func_start sub_809DE8C
-sub_809DE8C: @ 809DE8C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809DEE6
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, =0x0000024f
- cmp r1, r0
- beq _0809DECC
- adds r0, 0x8
- cmp r1, r0
- beq _0809DEDC
- b _0809DEE6
- .pool
-_0809DECC:
- ldr r2, =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0809DEE6
- .pool
-_0809DEDC:
- ldr r2, =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0809DEE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DE8C
-
- thumb_func_start sub_809DEF0
-sub_809DEF0: @ 809DEF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _0809DF84
- cmp r5, 0x1
- bgt _0809DF30
- cmp r5, 0
- beq _0809DF38
- b _0809E0F6
- .pool
-_0809DF30:
- cmp r5, 0x2
- bne _0809DF36
- b _0809E064
-_0809DF36:
- b _0809E0F6
-_0809DF38:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _0809DF62
- b _0809E0F2
-_0809DF62:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_809DE28
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _0809E0F2
-_0809DF84:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _0809DFAC
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _0809DFAC
- b _0809E0F6
-_0809DFAC:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _0809DFF4
- movs r1, 0x1
-_0809DFF4:
- cmp r1, 0
- beq _0809E008
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _0809E002
- cmp r7, 0x1
- bne _0809E008
-_0809E002:
- movs r0, 0x47
- bl PlaySE
-_0809E008:
- cmp r7, 0
- beq _0809E044
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809DE8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_809DE28
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_0809E044:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _0809E0F6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_0809E064:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _0809E0EA
- lsls r0, 2
- ldr r1, =_0809E094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809E094:
- .4byte _0809E0B4
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0C6
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0EA
-_0809E0B4:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _0809E0EA
-_0809E0C6:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809DE28
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809DE8C
-_0809E0EA:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0809E0F6
-_0809E0F2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_0809E0F6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809DEF0
-
- thumb_func_start sub_809E108
-sub_809E108: @ 809E108
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _0809E144
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _0809E144
- ldr r0, =gUnknown_085103C8
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0809E144
- movs r0, 0x1
- b _0809E146
- .pool
-_0809E144:
- movs r0, 0
-_0809E146:
- pop {r1}
- bx r1
- thumb_func_end sub_809E108
-
- thumb_func_start sub_809E14C
-sub_809E14C: @ 809E14C
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809E108
- cmp r0, 0
- beq _0809E17A
- ldr r1, =gUnknown_085103C8
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_0809E17A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E14C
-
- thumb_func_start sub_809E184
-sub_809E184: @ 809E184
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809E108
- cmp r0, 0
- beq _0809E1B6
- ldr r1, =gUnknown_085103C8
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _0809E1C0
-_0809E1B6:
- movs r0, 0
- b _0809E1C2
- .pool
-_0809E1C0:
- movs r0, 0x1
-_0809E1C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E184
-
- thumb_func_start sub_809E1C8
-sub_809E1C8: @ 809E1C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _0809E210
-_0809E1E0:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _0809E20A
- lsls r6, r5, 16
-_0809E1EC:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_809E184
- cmp r0, 0x1
- bne _0809E204
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, =0x0000020e
- bl MapGridSetMetatileIdAt
-_0809E204:
- adds r4, 0x1
- cmp r4, r7
- blt _0809E1EC
-_0809E20A:
- mov r5, r8
- cmp r5, r9
- blt _0809E1E0
-_0809E210:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E1C8
-
- thumb_func_start sub_809E224
-sub_809E224: @ 809E224
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0809E270
- cmp r0, 0x1
- bgt _0809E24C
- cmp r0, 0
- beq _0809E258
- b _0809E3A6
- .pool
-_0809E24C:
- cmp r0, 0x2
- beq _0809E306
- cmp r0, 0x3
- bne _0809E256
- b _0809E360
-_0809E256:
- b _0809E3A6
-_0809E258:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _0809E3A2
-_0809E270:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E29A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E29A
- b _0809E3A6
-_0809E29A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E2E0
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _0809E2F8
- .pool
-_0809E2E0:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E3A6
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_0809E2F8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _0809E3A6
-_0809E306:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _0809E36A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_809E14C
- b _0809E3A2
- .pool
-_0809E360:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0809E370
-_0809E36A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _0809E3A6
-_0809E370:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_0809E3A2:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_0809E3A6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E224
-
- thumb_func_start sub_809E3B4
-sub_809E3B4: @ 809E3B4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E3EE
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E47A
-_0809E3EE:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- cmp r0, 0
- beq _0809E47A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, =0x0000020a
- cmp r0, r1
- bne _0809E444
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000212
- movs r3, 0x4
- bl ash
- b _0809E456
- .pool
-_0809E444:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000206
- movs r3, 0x4
- bl ash
-_0809E456:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0809E47A
- ldr r0, =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _0809E47A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0809E47A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E3B4
-
- thumb_func_start sub_809E490
-sub_809E490: @ 809E490
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, =0x0000022f
- ldr r2, =0x00000237
- cmp r0, r1
- bne _0809E4AC
- subs r2, 0x31
-_0809E4AC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E490
-
- thumb_func_start sub_809E4CC
-sub_809E4CC: @ 809E4CC
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0809E51E
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0809E51E
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_809E490
-_0809E51E:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0809E53E
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0809E53E
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_809E490
-_0809E53E:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0809E556
- ldr r0, =0x00004022
- movs r1, 0
- bl VarSet
-_0809E556:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E572
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E5D2
-_0809E572:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0809E5D2
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0809E59A
- ldr r0, =0x00004022
- movs r1, 0
- bl VarSet
-_0809E59A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809E5BC
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0809E5D2
- .pool
-_0809E5BC:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0809E5D2
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0809E5D2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E4CC
-
- thumb_func_start sub_809E5DC
-sub_809E5DC: @ 809E5DC
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0809E5F8
- movs r2, 0xE8
- b _0809E60C
-_0809E5F8:
- ldr r1, =gUnknown_085103FC
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0809E604
- adds r0, 0x7
-_0809E604:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0809E60C:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E5DC
-
- thumb_func_start sub_809E638
-sub_809E638: @ 809E638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0809E688
- cmp r1, 0x1
- beq _0809E6B4
- b _0809E708
- .pool
-_0809E688:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0809E708
-_0809E6A2:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0809E708
-_0809E6B4:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0809E6D0
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E708
-_0809E6D0:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0809E708
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0809E6F8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0809E6A2
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0809E6F8
-_0809E708:
- ldr r2, =gCamera
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E728
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0809E728
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0809E72C
- .pool
-_0809E728:
- movs r0, 0
- movs r1, 0
-_0809E72C:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0809E73E:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0809E762
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_809E5DC
-_0809E762:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0809E73E
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E638
-
- .align 2, 0 @ Don't pad with nop.