summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/field_control_avatar.s2
-rw-r--r--asm/field_player_avatar.s12
-rw-r--r--asm/fldeff_cut.s535
-rw-r--r--asm/fldeff_flash.s2
-rw-r--r--asm/script_movement.s602
5 files changed, 8 insertions, 1145 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index b74e60d1f..f1bef0721 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -332,7 +332,7 @@ sub_806CAC8: @ 806CAC8
movs r2, 0x2
ldrsh r1, [r4, r2]
movs r2, 0xFF
- bl sub_8058F48
+ bl MapGridGetMetatileAttributeAt
mov r8, r0
mov r0, sp
movs r1, 0
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 5510caceb..6e425d2c7 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -2921,7 +2921,7 @@ IsPlayerFacingSurfableFishableWater: @ 805C8B0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r5, r2]
- bl sub_805C938
+ bl MetatileAtCoordsIsWaterTile
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2940,24 +2940,24 @@ _0805C92E:
bx r1
thumb_func_end IsPlayerFacingSurfableFishableWater
- thumb_func_start sub_805C938
-sub_805C938: @ 805C938
+ thumb_func_start MetatileAtCoordsIsWaterTile
+MetatileAtCoordsIsWaterTile: @ 805C938
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
movs r2, 0x1
- bl sub_8058F48
+ bl MapGridGetMetatileAttributeAt
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
- bl sub_805A2BC
+ bl TestMetatileAttributeBit
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end sub_805C938
+ thumb_func_end MetatileAtCoordsIsWaterTile
thumb_func_start ClearPlayerAvatarInfo
ClearPlayerAvatarInfo: @ 805C95C
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
deleted file mode 100644
index c0266194e..000000000
--- a/asm/fldeff_cut.s
+++ /dev/null
@@ -1,535 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8097874
-sub_8097874: @ 8097874
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x1
- bl sub_8058F48
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_805A2BC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8097874
-
- thumb_func_start SetUpFieldMove_Cut
-SetUpFieldMove_Cut: @ 8097898
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _080978CC @ =gUnknown_2039874
- movs r0, 0
- strb r0, [r4]
- bl CutMoveRuinValleyCheck
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080978E0
- movs r0, 0x5F
- bl CheckObjectGraphicsInFrontOfPlayer
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08097904
- ldr r1, _080978D0 @ =gFieldCallback2
- ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080978D8 @ =gPostMenuFieldCallback
- ldr r0, _080978DC @ =sub_80979D0
- b _080978EC
- .align 2, 0
-_080978CC: .4byte gUnknown_2039874
-_080978D0: .4byte gFieldCallback2
-_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu
-_080978D8: .4byte gPostMenuFieldCallback
-_080978DC: .4byte sub_80979D0
-_080978E0:
- strb r0, [r4]
-_080978E2:
- ldr r1, _080978F4 @ =gFieldCallback2
- ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080978FC @ =gPostMenuFieldCallback
- ldr r0, _08097900 @ =sub_8097984
-_080978EC:
- str r0, [r1]
- movs r0, 0x1
- b _08097970
- .align 2, 0
-_080978F4: .4byte gFieldCallback2
-_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
-_080978FC: .4byte gPostMenuFieldCallback
-_08097900: .4byte sub_8097984
-_08097904:
- ldr r4, _0809797C @ =gPlayerFacingPosition
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- adds r2, r4, 0
- ldr r0, _08097980 @ =0x0000ffff
- mov r8, r0
-_08097916:
- mov r1, r8
- adds r0, r1, r7
- ldrh r1, [r2, 0x2]
- adds r0, r1
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_08097924:
- mov r1, r8
- adds r0, r1, r6
- ldrh r1, [r2]
- adds r0, r1
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _0809795A
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8097874
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r0, 0x1
- beq _080978E2
-_0809795A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _08097924
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08097916
- movs r0, 0
-_08097970:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809797C: .4byte gPlayerFacingPosition
-_08097980: .4byte 0x0000ffff
- thumb_func_end SetUpFieldMove_Cut
-
- thumb_func_start sub_8097984
-sub_8097984: @ 8097984
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _0809799C @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809799C: .4byte gFieldEffectArguments
- thumb_func_end sub_8097984
-
- thumb_func_start sub_80979A0
-sub_80979A0: @ 80979A0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080979C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080979CC @ =sub_8097A20
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080979C8: .4byte gTasks
-_080979CC: .4byte sub_8097A20
- thumb_func_end sub_80979A0
-
- thumb_func_start sub_80979D0
-sub_80979D0: @ 80979D0
- push {lr}
- bl GetCursorSelectionMonId
- ldr r1, _080979E8 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- ldr r0, _080979EC @ =EventScript_FldEffCut
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080979E8: .4byte gFieldEffectArguments
-_080979EC: .4byte EventScript_FldEffCut
- thumb_func_end sub_80979D0
-
- thumb_func_start sub_80979F0
-sub_80979F0: @ 80979F0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08097A18 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08097A1C @ =sub_8097C6C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08097A18: .4byte gTasks
-_08097A1C: .4byte sub_8097C6C
- thumb_func_end sub_80979F0
-
- thumb_func_start sub_8097A20
-sub_8097A20: @ 8097A20
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- ldr r0, _08097A38 @ =gUnknown_2039874
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08097A3C
- bl CutMoveOpenDottedHoleDoor
- b _08097A42
- .align 2, 0
-_08097A38: .4byte gUnknown_2039874
-_08097A3C:
- movs r0, 0x3A
- bl FieldEffectStart
-_08097A42:
- pop {r0}
- bx r0
- thumb_func_end sub_8097A20
-
- thumb_func_start sub_8097A48
-sub_8097A48: @ 8097A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- movs r0, 0x79
- bl PlaySE
- ldr r4, _08097B38 @ =gPlayerFacingPosition
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
- ldr r0, _08097B3C @ =0x0000ffff
- mov r9, r0
-_08097A68:
- mov r1, r9
- adds r0, r1, r7
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_08097A78:
- mov r1, r9
- adds r0, r1, r6
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _08097ABC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8097874
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08097ABC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8097B50
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805F378
-_08097ABC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _08097A78
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08097A68
- bl DrawWholeMapView
- ldr r4, _08097B40 @ =gUnknown_2039870
- movs r0, 0x8
- bl Alloc
- str r0, [r4]
- movs r7, 0
- ldr r5, _08097B44 @ =gSprites
-_08097AE2:
- ldr r0, _08097B48 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _08097B4C @ =gUnknown_83D414C
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, r7
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _08097AE2
- movs r0, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08097B38: .4byte gPlayerFacingPosition
-_08097B3C: .4byte 0x0000ffff
-_08097B40: .4byte gUnknown_2039870
-_08097B44: .4byte gSprites
-_08097B48: .4byte gPlayerAvatar
-_08097B4C: .4byte gUnknown_83D414C
- thumb_func_end sub_8097A48
-
- thumb_func_start sub_8097B50
-sub_8097B50: @ 8097B50
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- movs r4, 0
- lsrs r6, r0, 16
- asrs r0, 16
- lsrs r7, r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08097B84 @ =gUnknown_83D4100
- ldr r5, _08097B88 @ =0x0000ffff
- mov r12, r1
-_08097B6E:
- lsls r3, r4, 2
- adds r0, r3, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _08097BA0
- cmp r0, r2
- beq _08097B8C
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- b _08097B6E
- .align 2, 0
-_08097B84: .4byte gUnknown_83D4100
-_08097B88: .4byte 0x0000ffff
-_08097B8C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- mov r2, r12
- adds r2, 0x2
- adds r2, r3, r2
- ldrh r2, [r2]
- bl MapGridSetMetatileIdAt
-_08097BA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8097B50
-
- thumb_func_start objc_8097BA8
-objc_8097BA8: @ 8097BA8
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _08097BB8 @ =objc_8097BBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08097BB8: .4byte objc_8097BBC
- thumb_func_end objc_8097BA8
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 8097BBC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _08097C08
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08097C0C
-_08097C08:
- ldr r0, _08097C14 @ =sub_8097C18
- str r0, [r4, 0x1C]
-_08097C0C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097C14: .4byte sub_8097C18
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_8097C18
-sub_8097C18: @ 8097C18
- push {r4-r6,lr}
- movs r4, 0x1
-_08097C1C:
- ldr r6, _08097C64 @ =gUnknown_2039870
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08097C68 @ =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08097C1C
- ldr r0, [r6]
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- ldr r0, [r6]
- bl Free
- bl sub_80696C0
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097C64: .4byte gUnknown_2039870
-_08097C68: .4byte gSprites
- thumb_func_end sub_8097C18
-
- thumb_func_start sub_8097C6C
-sub_8097C6C: @ 8097C6C
- push {lr}
- movs r0, 0x79
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_8097C6C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index f550d2291..c6cc17f82 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -42,7 +42,7 @@ _080C9B6E:
thumb_func_start sub_80C9B74
sub_80C9B74: @ 80C9B74
push {r4,lr}
- bl oei_task_add
+ bl CreateFieldEffectShowMon
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
diff --git a/asm/script_movement.s b/asm/script_movement.s
deleted file mode 100644
index 7b3a70a25..000000000
--- a/asm/script_movement.s
+++ /dev/null
@@ -1,602 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ScriptMovement_StartObjectMovementScript
-ScriptMovement_StartObjectMovementScript: @ 8097434
- push {r4,lr}
- sub sp, 0x4
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08097456
- movs r0, 0x1
- b _0809747E
-_08097456:
- ldr r0, _08097488 @ =Task_80A244C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08097468
- movs r0, 0x32
- bl sub_80974F8
-_08097468:
- bl sub_8097540
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- ldrb r1, [r1]
- adds r2, r4, 0
- bl sub_8097554
- lsls r0, 24
- lsrs r0, 24
-_0809747E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08097488: .4byte Task_80A244C
- thumb_func_end ScriptMovement_StartObjectMovementScript
-
- thumb_func_start ScriptMovement_IsObjectMovementFinished
-ScriptMovement_IsObjectMovementFinished: @ 809748C
- push {r4,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 TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080974CE
- bl sub_8097540
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80975C0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _080974CE
- adds r0, r4, 0
- bl sub_80976D0
- lsls r0, 24
- lsrs r0, 24
- b _080974D0
-_080974CE:
- movs r0, 0x1
-_080974D0:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScriptMovement_IsObjectMovementFinished
-
- thumb_func_start sub_80974D8
-sub_80974D8: @ 80974D8
- push {r4,lr}
- bl sub_8097540
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080974F2
- adds r0, r4, 0
- bl UnfreezeObjects
- adds r0, r4, 0
- bl DestroyTask
-_080974F2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80974D8
-
- thumb_func_start sub_80974F8
-sub_80974F8: @ 80974F8
- push {r4,r5,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08097534 @ =Task_80A244C
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r5, _08097538 @ =gTasks+0x8
- ldr r0, _0809753C @ =0x0000ffff
- adds r4, r0, 0
-_08097518:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08097518
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097534: .4byte Task_80A244C
-_08097538: .4byte gTasks+0x8
-_0809753C: .4byte 0x0000ffff
- thumb_func_end sub_80974F8
-
- thumb_func_start sub_8097540
-sub_8097540: @ 8097540
- push {lr}
- ldr r0, _08097550 @ =Task_80A244C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08097550: .4byte Task_80A244C
- thumb_func_end sub_8097540
-
- thumb_func_start sub_8097554
-sub_8097554: @ 8097554
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80975C0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _08097590
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80976D0
- lsls r0, 24
- cmp r0, 0
- beq _080975B0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- b _080975A6
-_08097590:
- adds r0, r7, 0
- movs r1, 0xFF
- bl sub_80975C0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080975B0
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
-_080975A6:
- mov r3, r9
- bl sub_8097728
- movs r0, 0
- b _080975B2
-_080975B0:
- movs r0, 0x1
-_080975B2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097554
-
- thumb_func_start sub_80975C0
-sub_80975C0: @ 80975C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080975E4 @ =gTasks+0x8
- adds r1, r0
- adds r1, 0x2
- movs r2, 0
-_080975D8:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080975E8
- adds r0, r2, 0
- b _080975F6
- .align 2, 0
-_080975E4: .4byte gTasks+0x8
-_080975E8:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r2, 0xF
- bls _080975D8
- movs r0, 0x10
-_080975F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80975C0
-
- thumb_func_start sub_80975FC
-sub_80975FC: @ 80975FC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0809762C @ =gTasks+0x8
- adds r1, r0
- adds r1, 0x2
- str r1, [r2]
- movs r0, 0
- cmp r0, r3
- bcs _08097628
-_0809761A:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0x1
- cmp r0, r3
- bcc _0809761A
- str r1, [r2]
-_08097628:
- pop {r0}
- bx r0
- .align 2, 0
-_0809762C: .4byte gTasks+0x8
- thumb_func_end sub_80975FC
-
- thumb_func_start sub_8097630
-sub_8097630: @ 8097630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r2, sp
- bl sub_80975FC
- ldr r0, [sp]
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8097630
-
- thumb_func_start sub_8097654
-sub_8097654: @ 8097654
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r2, sp
- bl sub_80975FC
- ldr r0, [sp]
- ldrb r0, [r0]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8097654
-
- thumb_func_start sub_8097678
-sub_8097678: @ 8097678
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r2, _080976A0 @ =gBitTable
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- mvns r2, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080976A4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x8]
- ands r2, r0
- strh r2, [r1, 0x8]
- bx lr
- .align 2, 0
-_080976A0: .4byte gBitTable
-_080976A4: .4byte gTasks
- thumb_func_end sub_8097678
-
- thumb_func_start sub_80976A8
-sub_80976A8: @ 80976A8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080976C8 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080976CC @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080976C8: .4byte gTasks
-_080976CC: .4byte gBitTable
- thumb_func_end sub_80976A8
-
- thumb_func_start sub_80976D0
-sub_80976D0: @ 80976D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080976F8 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080976FC @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _08097700
- movs r0, 0
- b _08097702
- .align 2, 0
-_080976F8: .4byte gTasks
-_080976FC: .4byte gBitTable
-_08097700:
- movs r0, 0x1
-_08097702:
- pop {r1}
- bx r1
- thumb_func_end sub_80976D0
-
- thumb_func_start npc_obj_offscreen_culling_and_flag_update
-npc_obj_offscreen_culling_and_flag_update: @ 8097708
- lsls r0, 24
- ldr r2, _08097714 @ =gUnknown_2039830
- lsrs r0, 22
- adds r0, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08097714: .4byte gUnknown_2039830
- thumb_func_end npc_obj_offscreen_culling_and_flag_update
-
- thumb_func_start sub_8097718
-sub_8097718: @ 8097718
- lsls r0, 24
- ldr r1, _08097724 @ =gUnknown_2039830
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08097724: .4byte gUnknown_2039830
- thumb_func_end sub_8097718
-
- thumb_func_start sub_8097728
-sub_8097728: @ 8097728
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8097678
- adds r0, r4, 0
- mov r1, r8
- bl npc_obj_offscreen_culling_and_flag_update
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8097630
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8097728
-
- thumb_func_start UnfreezeObjects
-UnfreezeObjects: @ 8097768
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080977A4 @ =gTasks+0x8
- adds r1, r0
- adds r4, r1, 0x2
- movs r5, 0
-_0809777C:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08097792
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080977A8 @ =gObjectEvents
- adds r0, r1
- bl UnfreezeObjectEvent
-_08097792:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x1
- cmp r5, 0xF
- bls _0809777C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080977A4: .4byte gTasks+0x8
-_080977A8: .4byte gObjectEvents
- thumb_func_end UnfreezeObjects
-
- thumb_func_start Task_80A244C
-Task_80A244C: @ 80977AC
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- mov r6, sp
-_080977B8:
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_8097654
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080977DC
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_8097718
- adds r3, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80977F0
-_080977DC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080977B8
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_80A244C
-
- thumb_func_start sub_80977F0
-sub_80977F0: @ 80977F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r8, r5
- lsls r2, 24
- lsrs r4, r2, 24
- adds r1, r5, 0
- bl sub_80976D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809786A
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _08097850 @ =gObjectEvents
- adds r4, r0, r1
- adds r0, r4, 0
- bl ObjectEventIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08097838
- adds r0, r4, 0
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0809786A
-_08097838:
- ldrb r1, [r6]
- cmp r1, 0xFE
- bne _08097854
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80976A8
- adds r0, r4, 0
- bl FreezeObjectEvent
- b _0809786A
- .align 2, 0
-_08097850: .4byte gObjectEvents
-_08097854:
- adds r0, r4, 0
- bl ObjectEventSetHeldMovement
- lsls r0, 24
- cmp r0, 0
- bne _0809786A
- adds r6, 0x1
- mov r0, r8
- adds r1, r6, 0
- bl npc_obj_offscreen_culling_and_flag_update
-_0809786A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80977F0
-
- .align 2, 0 @ Don't pad with nop.