summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/field_player_avatar.s1274
1 files changed, 1 insertions, 1273 deletions
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index c0becc6da..a1f115376 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -5,1279 +5,6 @@
.text
- thumb_func_start MovementType_Player
-@ void MovementType_Player(struct obj *object)
-MovementType_Player: @ 808A998
- 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, =gEventObjects
- adds r0, r2
- ldr r2, =EventObjectCB2_NoMovement2
- bl UpdateEventObjectCurrentMovement
- pop {r0}
- bx r0
- .pool
- thumb_func_end MovementType_Player
-
- thumb_func_start EventObjectCB2_NoMovement2
-EventObjectCB2_NoMovement2: @ 808A9BC
- movs r0, 0
- bx lr
- thumb_func_end EventObjectCB2_NoMovement2
-
- thumb_func_start player_step
-@ void player_step(int dpad_direction, int buttons_new, int buttons_held)
-player_step: @ 808A9C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_808C280
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _0808AA26
- adds r0, r7, 0
- adds r1, r6, 0
- bl Bike_TryAcroBikeHistoryUpdate
- adds r0, r5, 0
- mov r1, r8
- bl TryInterruptEventObjectSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _0808AA26
- adds r0, r5, 0
- bl npc_clear_strange_bits
- bl DoPlayerAvatarTransition
- bl TryDoMetatileBehaviorForcedMovment
- lsls r0, 24
- cmp r0, 0
- bne _0808AA26
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MovePlayerAvatarUsingKeypadInput
- bl PlayerAllowForcedMovementIfMovingSameDirection
-_0808AA26:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end player_step
-
- thumb_func_start TryInterruptEventObjectSpecialAnim
-@ bool8 TryInterruptEventObjectSpecialAnim(struct npc_state *eventObject, u8 direction)
-TryInterruptEventObjectSpecialAnim: @ 808AA38
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r6, r5, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- beq _0808AA92
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- bne _0808AA92
- adds r0, r4, 0
- bl EventObjectGetHeldMovementActionId
- lsls r0, 24
- movs r1, 0xE7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0808AA70
- cmp r5, 0
- bne _0808AA74
-_0808AA70:
- movs r0, 0x1
- b _0808AA94
-_0808AA74:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- cmp r0, r5
- beq _0808AA84
-_0808AA7C:
- adds r0, r4, 0
- bl EventObjectClearHeldMovement
- b _0808AA92
-_0808AA84:
- adds r0, r6, 0
- bl sub_808B028
- lsls r0, 24
- cmp r0, 0
- beq _0808AA7C
- b _0808AA70
-_0808AA92:
- movs r0, 0
-_0808AA94:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryInterruptEventObjectSpecialAnim
-
- thumb_func_start npc_clear_strange_bits
-@ void npc_clear_strange_bits(struct npc_state *eventObject)
-npc_clear_strange_bits: @ 808AA9C
- ldrb r2, [r0, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- adds r2, 0x2
- ands r1, r2
- strb r1, [r0, 0x1]
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end npc_clear_strange_bits
-
- thumb_func_start MovePlayerAvatarUsingKeypadInput
-@ void MovePlayerAvatarUsingKeypadInput(int dpad_direction, int buttons_new, int buttons_held)
-MovePlayerAvatarUsingKeypadInput: @ 808AAC0
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0808AAE8
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnBike
- b _0808AAF0
- .pool
-_0808AAE8:
- adds r0, r3, 0
- adds r1, r2, 0
- bl MovePlayerNotOnBike
-_0808AAF0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerAvatarUsingKeypadInput
-
- thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection
-@ void PlayerAllowForcedMovementIfMovingSameDirection()
-PlayerAllowForcedMovementIfMovingSameDirection: @ 808AAF8
- push {lr}
- ldr r2, =gPlayerAvatar
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- bne _0808AB0A
- ldrb r1, [r2]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r2]
-_0808AB0A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection
-
- thumb_func_start TryDoMetatileBehaviorForcedMovment
-@ bool8 TryDoMetatileBehaviorForcedMovment()
-TryDoMetatileBehaviorForcedMovment: @ 808AB14
- push {r4,lr}
- ldr r4, =gUnknown_08497444
- bl GetForcedMovementByMetatileBehavior
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end TryDoMetatileBehaviorForcedMovment
-
- thumb_func_start GetForcedMovementByMetatileBehavior
-@ u8 GetForcedMovementByMetatileBehavior()
-GetForcedMovementByMetatileBehavior: @ 808AB38
- push {r4-r6,lr}
- ldr r3, =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0808AB8A
- ldr r2, =gEventObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x1E]
- movs r4, 0
- ldr r6, =gUnknown_084973FC
-_0808AB58:
- lsls r0, r4, 2
- adds r0, r6
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0808AB80
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _0808AB8C
- .pool
-_0808AB80:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _0808AB58
-_0808AB8A:
- movs r0, 0
-_0808AB8C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetForcedMovementByMetatileBehavior
-
- thumb_func_start ForcedMovement_None
-ForcedMovement_None: @ 808AB94
- push {r4,lr}
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0808ABCE
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl SetEventObjectDirection
- ldrb r1, [r4]
- movs r0, 0xBF
- ands r0, r1
- strb r0, [r4]
-_0808ABCE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_None
-
- thumb_func_start DoForcedMovement
-DoForcedMovement: @ 808ABE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, =gPlayerAvatar
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldrb r0, [r6]
- movs r1, 0x40
- mov r10, r1
- movs r1, 0
- mov r8, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- cmp r4, 0
- beq _0808AC3C
- bl ForcedMovement_None
- cmp r4, 0x4
- bhi _0808AC24
- movs r0, 0
- b _0808AC48
- .pool
-_0808AC24:
- cmp r7, 0x6
- bne _0808AC2E
- adds r0, r5, 0
- bl PlayerJumpLedge
-_0808AC2E:
- ldrb r0, [r6]
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x2]
- b _0808AC46
-_0808AC3C:
- movs r0, 0x2
- strb r0, [r6, 0x2]
- adds r0, r5, 0
- bl _call_via_r9
-_0808AC46:
- movs r0, 0x1
-_0808AC48:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoForcedMovement
-
- thumb_func_start DoForcedMovementInCurrentDirection
-DoForcedMovementInCurrentDirection: @ 808AC58
- push {lr}
- adds r1, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gEventObjects
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end DoForcedMovementInCurrentDirection
-
- thumb_func_start ForcedMovement_Slip
-ForcedMovement_Slip: @ 808AC8C
- push {lr}
- ldr r0, =PlayerGoSpeed2
- bl DoForcedMovementInCurrentDirection
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_Slip
-
- thumb_func_start ForcedMovement_WalkSouth
-ForcedMovement_WalkSouth: @ 808ACA0
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkSouth
-
- thumb_func_start ForcedMovement_WalkNorth
-ForcedMovement_WalkNorth: @ 808ACB8
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkNorth
-
- thumb_func_start ForcedMovement_WalkWest
-ForcedMovement_WalkWest: @ 808ACD0
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkWest
-
- thumb_func_start ForcedMovement_WalkEast
-ForcedMovement_WalkEast: @ 808ACE8
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkEast
-
- thumb_func_start ForcedMovement_PushedSouthByCurrent
-ForcedMovement_PushedSouthByCurrent: @ 808AD00
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedSouthByCurrent
-
- thumb_func_start ForcedMovement_PushedNorthByCurrent
-ForcedMovement_PushedNorthByCurrent: @ 808AD18
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedNorthByCurrent
-
- thumb_func_start ForcedMovement_PushedWestByCurrent
-ForcedMovement_PushedWestByCurrent: @ 808AD30
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedWestByCurrent
-
- thumb_func_start ForcedMovement_PushedEastByCurrent
-ForcedMovement_PushedEastByCurrent: @ 808AD48
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedEastByCurrent
-
- thumb_func_start ForcedMovement_Slide
-ForcedMovement_Slide: @ 808AD60
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gPlayerAvatar
- ldrb r3, [r2, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- ldr r3, =gEventObjects
- adds r2, r3
- ldrb r3, [r2, 0x1]
- movs r4, 0x4
- orrs r3, r4
- movs r4, 0x2
- orrs r3, r4
- strb r3, [r2, 0x1]
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_Slide
-
- thumb_func_start ForcedMovement_SlideSouth
-ForcedMovement_SlideSouth: @ 808AD98
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x1
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideSouth
-
- thumb_func_start ForcedMovement_SlideNorth
-ForcedMovement_SlideNorth: @ 808ADB0
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x2
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideNorth
-
- thumb_func_start ForcedMovement_SlideWest
-ForcedMovement_SlideWest: @ 808ADC8
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x3
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideWest
-
- thumb_func_start ForcedMovement_SlideEast
-ForcedMovement_SlideEast: @ 808ADE0
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x4
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideEast
-
- thumb_func_start ForcedMovement_0xBB
-ForcedMovement_0xBB: @ 808ADF8
- push {lr}
- bl sub_808C4D8
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_0xBB
-
- thumb_func_start ForcedMovement_0xBC
-ForcedMovement_0xBC: @ 808AE04
- push {lr}
- bl sub_808C5B0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_0xBC
-
- thumb_func_start ForcedMovement_MuddySlope
-ForcedMovement_MuddySlope: @ 808AE10
- push {r4,lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x18]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x20
- bne _0808AE36
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _0808AE60
-_0808AE36:
- movs r0, 0
- bl Bike_UpdateBikeCounterSpeed
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- b _0808AE62
- .pool
-_0808AE60:
- movs r0, 0
-_0808AE62:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_MuddySlope
-
- thumb_func_start MovePlayerNotOnBike
-@ void MovePlayerNotOnBike(u8 direction, u8 heldKeys)
-MovePlayerNotOnBike: @ 808AE68
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r6, =gUnknown_08497490
- adds r0, r4, 0
- bl CheckMovementInputNotOnBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MovePlayerNotOnBike
-
- thumb_func_start CheckMovementInputNotOnBike
-@ u8 CheckMovementInputNotOnBike(u8 direction)
-CheckMovementInputNotOnBike: @ 808AE98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0808AEB0
- ldr r0, =gPlayerAvatar
- strb r4, [r0, 0x2]
- movs r0, 0
- b _0808AED2
- .pool
-_0808AEB0:
- bl GetPlayerMovementDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0808AECC
- ldr r1, =gPlayerAvatar
- ldrb r0, [r1, 0x2]
- cmp r0, 0x2
- beq _0808AECC
- movs r0, 0x1
- b _0808AED0
- .pool
-_0808AECC:
- ldr r1, =gPlayerAvatar
- movs r0, 0x2
-_0808AED0:
- strb r0, [r1, 0x2]
-_0808AED2:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckMovementInputNotOnBike
-
- thumb_func_start PlayerNotOnBikeNotMoving
-@ void PlayerNotOnBikeNotMoving(u8 direction, u8 heldKeys)
-PlayerNotOnBikeNotMoving: @ 808AEDC
- push {lr}
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeNotMoving
-
- thumb_func_start PlayerNotOnBikeTurningInPlace
-@ void PlayerNotOnBikeTurningInPlace(u8 direction, u8 heldKeys)
-PlayerNotOnBikeTurningInPlace: @ 808AEF0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerTurnInPlace
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeTurningInPlace
-
- thumb_func_start PlayerNotOnBikeMoving
-@ void PlayerNotOnBikeMoving(u8 direction, u8 heldKeys)
-PlayerNotOnBikeMoving: @ 808AF00
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0808AF4E
- cmp r4, 0x6
- bne _0808AF24
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _0808AFB6
-_0808AF24:
- cmp r4, 0x4
- bne _0808AF3C
- adds r0, r5, 0
- bl IsPlayerCollidingWithFarawayIslandMew
- lsls r0, 24
- cmp r0, 0
- beq _0808AF3C
- adds r0, r5, 0
- bl PlayerNotOnBikeCollideWithFarawayIslandMew
- b _0808AFB6
-_0808AF3C:
- subs r0, r4, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0808AFB6
- adds r0, r5, 0
- bl PlayerNotOnBikeCollide
- b _0808AFB6
-_0808AF4E:
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808AF68
- adds r0, r5, 0
- bl PlayerGoSpeed2
- b _0808AFB6
- .pool
-_0808AF68:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0808AFB0
- movs r0, 0x2
- ands r6, r0
- cmp r6, 0
- beq _0808AFB0
- movs r0, 0x8C
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0808AFB0
- ldr r2, =gEventObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl IsRunningDisallowed
- cmp r0, 0
- bne _0808AFB0
- adds r0, r5, 0
- bl PlayerRun
- ldrb r1, [r4]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r4]
- b _0808AFB6
- .pool
-_0808AFB0:
- adds r0, r5, 0
- bl PlayerGoSpeed1
-_0808AFB6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeMoving
-
- thumb_func_start CheckForPlayerAvatarCollision
-CheckForPlayerAvatarCollision: @ 808AFBC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CheckForEventObjectCollision
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckForPlayerAvatarCollision
-
- thumb_func_start sub_808B028
-sub_808B028: @ 808B028
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_808B164
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808B028
-
- thumb_func_start CheckForEventObjectCollision
-@ u8 CheckForEventObjectCollision(struct npc_state *eventObject, u16 x, u16 y, u8 direction, u8 metatileBehavior)
-CheckForEventObjectCollision: @ 808B094
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsrs r7, r1, 16
- asrs r5, r1, 16
- lsrs r1, r2, 16
- mov r9, r1
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0x3
- bne _0808B0E4
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_808B1BC
- lsls r0, 24
- cmp r0, 0
- beq _0808B0E4
- movs r0, 0x5
- b _0808B152
-_0808B0E4:
- lsls r5, r7, 16
- asrs r0, r5, 16
- mov r8, r0
- mov r1, r9
- lsls r4, r1, 16
- asrs r7, r4, 16
- adds r1, r7, 0
- adds r2, r6, 0
- bl ShouldJumpLedge
- lsls r0, 24
- cmp r0, 0
- beq _0808B108
- movs r0, 0x2B
- bl IncrementGameStat
- movs r0, 0x6
- b _0808B152
-_0808B108:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0808B124
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_808B238
- lsls r0, 24
- cmp r0, 0
- beq _0808B124
- movs r0, 0x7
- b _0808B152
-_0808B124:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808B14E
- asrs r5, 16
- asrs r4, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollision
- cmp r0, 0
- beq _0808B142
- movs r0, 0x8
- b _0808B152
-_0808B142:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r10
- mov r3, sp
- bl check_acro_bike_metatile
-_0808B14E:
- mov r0, sp
- ldrb r0, [r0]
-_0808B152:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForEventObjectCollision
-
- thumb_func_start sub_808B164
-sub_808B164: @ 808B164
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x18]
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _0808B1AE
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollisionWithoutAnimation
- cmp r0, 0
- beq _0808B1A2
- movs r0, 0x8
- b _0808B1B2
-_0808B1A2:
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl check_acro_bike_metatile
-_0808B1AE:
- mov r0, sp
- ldrb r0, [r0]
-_0808B1B2:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808B164
-
- thumb_func_start sub_808B1BC
-@ bool8 sub_808B1BC(u16 x, u16 y, u8 direction)
-sub_808B1BC: @ 808B1BC
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808B20C
- lsls r5, r3, 16
- asrs r0, r5, 16
- lsls r4, 16
- asrs r1, r4, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808B20C
- lsrs r0, r5, 16
- lsrs r1, r4, 16
- movs r2, 0x3
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _0808B20C
- adds r0, r6, 0
- bl sub_808C750
- movs r0, 0x1
- b _0808B20E
- .pool
-_0808B20C:
- movs r0, 0
-_0808B20E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808B1BC
-
- thumb_func_start ShouldJumpLedge
-@ bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction)
-ShouldJumpLedge: @ 808B214
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetLedgeJumpDirection
- lsls r0, 24
- cmp r0, 0
- bne _0808B230
- movs r0, 0
- b _0808B232
-_0808B230:
- movs r0, 0x1
-_0808B232:
- pop {r1}
- bx r1
- thumb_func_end ShouldJumpLedge
-
- thumb_func_start sub_808B238
-sub_808B238: @ 808B238
- push {r4-r7,lr}
- sub sp, 0x4
- mov r3, sp
- strh r0, [r3]
- mov r5, sp
- adds r5, 0x2
- strh r1, [r5]
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, =0x00000889
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0808B2D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl GetEventObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x10
- beq _0808B2D8
- ldr r0, =gEventObjects
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- adds r4, r1, r0
- ldrb r0, [r4, 0x5]
- cmp r0, 0x57
- bne _0808B2D8
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- strh r0, [r5]
- adds r0, r7, 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, r4, 0
- adds r3, r7, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- cmp r0, 0
- bne _0808B2D8
- 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_IsNonAnimDoor
- lsls r0, 24
- cmp r0, 0
- bne _0808B2D8
- adds r0, r6, 0
- adds r1, r7, 0
- bl task_add_bump_boulder
- movs r0, 0x1
- b _0808B2DA
- .pool
-_0808B2D8:
- movs r0, 0
-_0808B2DA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808B238
-
- thumb_func_start check_acro_bike_metatile
-@ void check_acro_bike_metatile(s16 x, s16 y, u8 metatileBehavior, u8 *returnValue)
-check_acro_bike_metatile: @ 808B2E4
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r7, =gUnknown_0849749C
-_0808B2F0:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0808B314
- ldr r0, =gUnknown_084974B0
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r6]
- b _0808B31E
- .pool
-_0808B314:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0808B2F0
-_0808B31E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end check_acro_bike_metatile
-
thumb_func_start IsPlayerCollidingWithFarawayIslandMew
@ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction)
IsPlayerCollidingWithFarawayIslandMew: @ 808B324
@@ -3305,6 +2032,7 @@ sub_808C228: @ 808C228
thumb_func_end sub_808C228
thumb_func_start sub_808C280
+@ void sub_808C280(struct EventObject *playerEventObj);
sub_808C280: @ 808C280
push {r4-r7,lr}
mov r7, r9