.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_805B3B8 sub_805B3B8: @ 805B3B8 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, _0805B3D4 @ =gMapObjects adds r0, r2 ldr r2, _0805B3D8 @ =sub_805B3DC bl FieldObjectStep pop {r0} bx r0 .align 2, 0 _0805B3D4: .4byte gMapObjects _0805B3D8: .4byte sub_805B3DC thumb_func_end sub_805B3B8 thumb_func_start sub_805B3DC sub_805B3DC: @ 805B3DC movs r0, 0 bx lr thumb_func_end sub_805B3DC thumb_func_start sub_805B3E0 sub_805B3E0: @ 805B3E0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 ldr r4, _0805B454 @ =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805B458 @ =gMapObjects adds r5, r0, r1 adds r0, r5, 0 bl sub_805CC40 ldrb r0, [r4, 0x6] cmp r0, 0 bne _0805B448 bl sub_805B528 lsls r0, 24 cmp r0, 0 bne _0805B448 adds r0, r5, 0 adds r1, r6, 0 bl sub_805B45C lsls r0, 24 cmp r0, 0 bne _0805B448 adds r0, r5, 0 bl npc_clear_strange_bits bl DoPlayerAvatarTransition bl sub_805B5A0 lsls r0, 24 cmp r0, 0 bne _0805B448 adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl MovePlayerAvatarUsingKeypadInput bl PlayerAllowForcedMovementIfMovingSameDirection _0805B448: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805B454: .4byte gPlayerAvatar _0805B458: .4byte gMapObjects thumb_func_end sub_805B3E0 thumb_func_start sub_805B45C sub_805B45C: @ 805B45C push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0805B4A6 adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 bne _0805B4A6 adds r0, r4, 0 bl FieldObjectGetSpecialAnim lsls r0, 24 movs r1, 0xDF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x3 bhi _0805B4A2 cmp r5, 0 beq _0805B4A2 ldrb r0, [r4, 0x18] lsrs r0, 4 cmp r0, r5 beq _0805B4A2 adds r0, r4, 0 bl FieldObjectClearAnim b _0805B4A6 _0805B4A2: movs r0, 0x1 b _0805B4A8 _0805B4A6: movs r0, 0 _0805B4A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805B45C thumb_func_start npc_clear_strange_bits npc_clear_strange_bits: @ 805B4B0 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, _0805B4D0 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bx lr .align 2, 0 _0805B4D0: .4byte gPlayerAvatar thumb_func_end npc_clear_strange_bits thumb_func_start MovePlayerAvatarUsingKeypadInput MovePlayerAvatarUsingKeypadInput: @ 805B4D4 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, _0805B4F8 @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _0805B4FC adds r0, r3, 0 adds r1, r4, 0 bl sub_80BD09C b _0805B504 .align 2, 0 _0805B4F8: .4byte gPlayerAvatar _0805B4FC: adds r0, r3, 0 adds r1, r2, 0 bl MovePlayerNotOnBike _0805B504: pop {r4} pop {r0} bx r0 thumb_func_end MovePlayerAvatarUsingKeypadInput thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection PlayerAllowForcedMovementIfMovingSameDirection: @ 805B50C push {lr} ldr r2, _0805B524 @ =gPlayerAvatar ldrb r0, [r2, 0x2] cmp r0, 0x2 bne _0805B51E ldrb r1, [r2] movs r0, 0xDF ands r0, r1 strb r0, [r2] _0805B51E: pop {r0} bx r0 .align 2, 0 _0805B524: .4byte gPlayerAvatar thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection thumb_func_start sub_805B528 sub_805B528: @ 805B528 push {r4,r5,lr} ldr r5, _0805B58C @ =gPlayerAvatar ldrb r1, [r5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0805B598 ldrb r0, [r5, 0x1C] bl MetatileBehavior_IsSpinTile lsls r0, 24 cmp r0, 0 beq _0805B598 ldr r4, _0805B590 @ =gUnknown_2036E30 ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805B594 @ =gMapObjects adds r1, r0, r1 str r1, [r4] ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0805B586 ldrb r0, [r1, 0x1E] bl MetatileBehavior_IsStopSpinning lsls r0, 24 cmp r0, 0 bne _0805B598 ldr r0, [r4] ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsSpinTile lsls r0, 24 cmp r0, 0 beq _0805B57A ldr r0, [r4] ldrb r0, [r0, 0x1E] strh r0, [r5, 0x1C] _0805B57A: ldr r0, [r4] bl FieldObjectClearAnim ldrb r0, [r5, 0x1C] bl sub_805C2CC _0805B586: movs r0, 0x1 b _0805B59A .align 2, 0 _0805B58C: .4byte gPlayerAvatar _0805B590: .4byte gUnknown_2036E30 _0805B594: .4byte gMapObjects _0805B598: movs r0, 0 _0805B59A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805B528 thumb_func_start sub_805B5A0 sub_805B5A0: @ 805B5A0 push {r4-r7,lr} sub sp, 0x4 ldr r3, _0805B5F4 @ =gPlayerAvatar ldrb r1, [r3] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805B610 ldr r2, _0805B5F8 @ =gMapObjects ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r7, [r0, 0x1E] movs r6, 0 ldr r0, _0805B5FC @ =gUnknown_835B764 ldr r1, [r0] adds r2, r0, 0 cmp r1, 0 beq _0805B628 movs r5, 0 _0805B5CC: adds r4, r5, 0 adds r0, r4, r2 ldr r1, [r0] adds r0, r7, 0 str r2, [sp] bl _call_via_r1 lsls r0, 24 ldr r2, [sp] cmp r0, 0 bne _0805B600 adds r5, 0x8 adds r6, 0x1 adds r0, r5, r2 ldr r0, [r0] ldr r2, _0805B5FC @ =gUnknown_835B764 cmp r0, 0 bne _0805B5CC b _0805B628 .align 2, 0 _0805B5F4: .4byte gPlayerAvatar _0805B5F8: .4byte gMapObjects _0805B5FC: .4byte gUnknown_835B764 _0805B600: ldr r0, _0805B60C @ =gPlayerAvatar strh r7, [r0, 0x1C] adds r0, r2, 0x4 adds r0, r5, r0 b _0805B62E .align 2, 0 _0805B60C: .4byte gPlayerAvatar _0805B610: movs r6, 0 ldr r0, _0805B640 @ =gUnknown_835B764 ldr r1, [r0] adds r2, r0, 0 cmp r1, 0 beq _0805B628 adds r1, r2, 0 _0805B61E: adds r1, 0x8 adds r6, 0x1 ldr r0, [r1] cmp r0, 0 bne _0805B61E _0805B628: lsls r0, r6, 3 adds r1, r2, 0x4 adds r0, r1 _0805B62E: ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B640: .4byte gUnknown_835B764 thumb_func_end sub_805B5A0 thumb_func_start ForcedMovement_None ForcedMovement_None: @ 805B644 push {r4,lr} ldr r4, _0805B688 @ =gPlayerAvatar ldrb r1, [r4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0805B67E ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805B68C @ =gMapObjects 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 FieldObjectSetDirection ldrb r1, [r4] movs r0, 0xBF ands r0, r1 strb r0, [r4] _0805B67E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805B688: .4byte gPlayerAvatar _0805B68C: .4byte gMapObjects thumb_func_end ForcedMovement_None thumb_func_start DoForcedMovement DoForcedMovement: @ 805B690 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, _0805B6D0 @ =gPlayerAvatar adds r0, r5, 0 bl sub_805BB1C 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 _0805B6EC bl ForcedMovement_None cmp r4, 0x4 bhi _0805B6D4 movs r0, 0 b _0805B6F8 .align 2, 0 _0805B6D0: .4byte gPlayerAvatar _0805B6D4: cmp r7, 0x6 bne _0805B6DE adds r0, r5, 0 bl sub_805C23C _0805B6DE: ldrb r0, [r6] mov r1, r10 orrs r0, r1 strb r0, [r6] movs r0, 0x2 strb r0, [r6, 0x2] b _0805B6F6 _0805B6EC: movs r0, 0x2 strb r0, [r6, 0x2] adds r0, r5, 0 bl _call_via_r9 _0805B6F6: movs r0, 0x1 _0805B6F8: 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: @ 805B708 push {lr} adds r1, r0, 0 ldr r0, _0805B734 @ =gPlayerAvatar ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805B738 @ =gMapObjects 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 .align 2, 0 _0805B734: .4byte gPlayerAvatar _0805B738: .4byte gMapObjects thumb_func_end DoForcedMovementInCurrentDirection thumb_func_start ForcedMovement_Slip ForcedMovement_Slip: @ 805B73C push {lr} ldr r0, _0805B74C @ =sub_805C11C bl DoForcedMovementInCurrentDirection lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B74C: .4byte sub_805C11C thumb_func_end ForcedMovement_Slip thumb_func_start sub_805B750 sub_805B750: @ 805B750 push {lr} ldr r1, _0805B764 @ =sub_805C104 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B764: .4byte sub_805C104 thumb_func_end sub_805B750 thumb_func_start sub_805B768 sub_805B768: @ 805B768 push {lr} ldr r1, _0805B77C @ =sub_805C104 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B77C: .4byte sub_805C104 thumb_func_end sub_805B768 thumb_func_start sub_805B780 sub_805B780: @ 805B780 push {lr} ldr r1, _0805B794 @ =sub_805C104 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B794: .4byte sub_805C104 thumb_func_end sub_805B780 thumb_func_start sub_805B798 sub_805B798: @ 805B798 push {lr} ldr r1, _0805B7AC @ =sub_805C104 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B7AC: .4byte sub_805C104 thumb_func_end sub_805B798 thumb_func_start sub_805B7B0 sub_805B7B0: @ 805B7B0 push {lr} bl sub_805B820 ldr r1, _0805B7C8 @ =sub_805C2B4 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B7C8: .4byte sub_805C2B4 thumb_func_end sub_805B7B0 thumb_func_start sub_805B7CC sub_805B7CC: @ 805B7CC push {lr} bl sub_805B820 ldr r1, _0805B7E4 @ =sub_805C2B4 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B7E4: .4byte sub_805C2B4 thumb_func_end sub_805B7CC thumb_func_start sub_805B7E8 sub_805B7E8: @ 805B7E8 push {lr} bl sub_805B820 ldr r1, _0805B800 @ =sub_805C2B4 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B800: .4byte sub_805C2B4 thumb_func_end sub_805B7E8 thumb_func_start sub_805B804 sub_805B804: @ 805B804 push {lr} bl sub_805B820 ldr r1, _0805B81C @ =sub_805C2B4 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B81C: .4byte sub_805C2B4 thumb_func_end sub_805B804 thumb_func_start sub_805B820 sub_805B820: @ 805B820 push {lr} movs r0, 0x99 bl PlaySE pop {r0} bx r0 thumb_func_end sub_805B820 thumb_func_start sub_805B82C sub_805B82C: @ 805B82C push {lr} ldr r1, _0805B840 @ =sub_805C14C movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B840: .4byte sub_805C14C thumb_func_end sub_805B82C thumb_func_start sub_805B844 sub_805B844: @ 805B844 push {lr} ldr r1, _0805B858 @ =sub_805C14C movs r0, 0x2 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B858: .4byte sub_805C14C thumb_func_end sub_805B844 thumb_func_start sub_805B85C sub_805B85C: @ 805B85C push {lr} ldr r1, _0805B870 @ =sub_805C14C movs r0, 0x3 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B870: .4byte sub_805C14C thumb_func_end sub_805B85C thumb_func_start sub_805B874 sub_805B874: @ 805B874 push {lr} ldr r1, _0805B888 @ =sub_805C14C movs r0, 0x4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B888: .4byte sub_805C14C thumb_func_end sub_805B874 thumb_func_start ForcedMovement_Slide ForcedMovement_Slide: @ 805B88C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0805B8BC @ =gPlayerAvatar ldrb r3, [r2, 0x5] lsls r2, r3, 3 adds r2, r3 lsls r2, 2 ldr r3, _0805B8C0 @ =gMapObjects 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 .align 2, 0 _0805B8BC: .4byte gPlayerAvatar _0805B8C0: .4byte gMapObjects thumb_func_end ForcedMovement_Slide thumb_func_start ForcedMovement_SlideSouth ForcedMovement_SlideSouth: @ 805B8C4 push {lr} ldr r1, _0805B8D8 @ =sub_805C11C movs r0, 0x1 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B8D8: .4byte sub_805C11C thumb_func_end ForcedMovement_SlideSouth thumb_func_start ForcedMovement_SlideNorth ForcedMovement_SlideNorth: @ 805B8DC push {lr} ldr r1, _0805B8F0 @ =sub_805C11C movs r0, 0x2 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B8F0: .4byte sub_805C11C thumb_func_end ForcedMovement_SlideNorth thumb_func_start ForcedMovement_SlideWest ForcedMovement_SlideWest: @ 805B8F4 push {lr} ldr r1, _0805B908 @ =sub_805C11C movs r0, 0x3 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B908: .4byte sub_805C11C thumb_func_end ForcedMovement_SlideWest thumb_func_start ForcedMovement_SlideEast ForcedMovement_SlideEast: @ 805B90C push {lr} ldr r1, _0805B920 @ =sub_805C11C movs r0, 0x4 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805B920: .4byte sub_805C11C thumb_func_end ForcedMovement_SlideEast thumb_func_start sub_805B924 sub_805B924: @ 805B924 push {lr} bl sub_805CE80 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B924 thumb_func_start sub_805B930 sub_805B930: @ 805B930 push {lr} bl sub_805CF58 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B930 thumb_func_start MovePlayerNotOnBike MovePlayerNotOnBike: @ 805B93C 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, _0805B968 @ =gUnknown_835B814 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 .align 2, 0 _0805B968: .4byte gUnknown_835B814 thumb_func_end MovePlayerNotOnBike thumb_func_start CheckMovementInputNotOnBike CheckMovementInputNotOnBike: @ 805B96C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805B984 ldr r0, _0805B980 @ =gPlayerAvatar strb r4, [r0, 0x2] movs r0, 0 b _0805B9A6 .align 2, 0 _0805B980: .4byte gPlayerAvatar _0805B984: bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0805B9A0 ldr r1, _0805B99C @ =gPlayerAvatar ldrb r0, [r1, 0x2] cmp r0, 0x2 beq _0805B9A0 movs r0, 0x1 b _0805B9A4 .align 2, 0 _0805B99C: .4byte gPlayerAvatar _0805B9A0: ldr r1, _0805B9AC @ =gPlayerAvatar movs r0, 0x2 _0805B9A4: strb r0, [r1, 0x2] _0805B9A6: pop {r4} pop {r1} bx r1 .align 2, 0 _0805B9AC: .4byte gPlayerAvatar thumb_func_end CheckMovementInputNotOnBike thumb_func_start PlayerNotOnBikeNotMoving PlayerNotOnBikeNotMoving: @ 805B9B0 push {lr} bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection pop {r0} bx r0 thumb_func_end PlayerNotOnBikeNotMoving thumb_func_start sub_805B9C4 sub_805B9C4: @ 805B9C4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_805C224 pop {r0} bx r0 thumb_func_end sub_805B9C4 thumb_func_start sub_805B9D4 sub_805B9D4: @ 805B9D4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, 0 bl sub_805BB1C lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _0805BA18 cmp r0, 0x6 bne _0805B9FA adds r0, r4, 0 bl sub_805C23C b _0805BAA4 _0805B9FA: cmp r0, 0x8 bne _0805BA06 adds r0, r4, 0 bl PlayerFaceDirection b _0805BAA4 _0805BA06: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0805BAA4 adds r0, r4, 0 bl PlayerNotOnBikeCollide b _0805BAA4 _0805BA18: ldr r6, _0805BA2C @ =gPlayerAvatar ldrb r1, [r6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805BA30 adds r0, r4, 0 bl sub_805C11C b _0805BAA4 .align 2, 0 _0805BA2C: .4byte gPlayerAvatar _0805BA30: movs r0, 0x2 ands r5, r0 cmp r5, 0 beq _0805BA8C ldr r0, _0805BA6C @ =0x0000082f bl FlagGet lsls r0, 24 cmp r0, 0 beq _0805BA8C ldr r2, _0805BA70 @ =gMapObjects ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1E] bl sub_80BD488 cmp r0, 0 bne _0805BA8C adds r0, r4, 0 bl sub_805BAAC cmp r0, 0 beq _0805BA74 adds r0, r4, 0 bl sub_805C194 b _0805BA7A .align 2, 0 _0805BA6C: .4byte 0x0000082f _0805BA70: .4byte gMapObjects _0805BA74: adds r0, r4, 0 bl sub_805C17C _0805BA7A: ldr r2, _0805BA88 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0x80 orrs r0, r1 strb r0, [r2] b _0805BAA4 .align 2, 0 _0805BA88: .4byte gPlayerAvatar _0805BA8C: adds r0, r4, 0 bl sub_805BAAC cmp r0, 0 beq _0805BA9E adds r0, r4, 0 bl sub_805C0EC b _0805BAA4 _0805BA9E: adds r0, r4, 0 bl sub_805C104 _0805BAA4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_805B9D4 thumb_func_start sub_805BAAC sub_805BAAC: @ 805BAAC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0805BAE4 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BAE8 @ =gMapObjects adds r0, r1 ldrh r2, [r0, 0x10] mov r1, sp strh r2, [r1] ldrh r1, [r0, 0x12] mov r4, sp adds r4, 0x2 strh r1, [r4] cmp r3, 0x1 beq _0805BAEC cmp r3, 0x2 bne _0805BB12 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] lsls r1, 16 asrs r1, 16 b _0805BB00 .align 2, 0 _0805BAE4: .4byte gPlayerAvatar _0805BAE8: .4byte gMapObjects _0805BAEC: movs r0, 0x1 mov r1, sp adds r2, r4, 0 bl MoveCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] _0805BB00: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsRockStairs lsls r0, 24 lsrs r0, 24 b _0805BB14 _0805BB12: movs r0, 0 _0805BB14: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805BAAC thumb_func_start sub_805BB1C sub_805BB1C: @ 805BB1C push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0805BB94 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BB98 @ =gMapObjects adds r5, r0, r1 ldrh r1, [r5, 0x10] add r0, sp, 0x4 strh r1, [r0] ldrh r1, [r5, 0x12] mov r4, sp adds r4, 0x6 strh r1, [r4] movs r2, 0 ldrsh r0, [r0, r2] lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_806DB84 lsls r0, 24 cmp r0, 0 bne _0805BB9C adds r0, r6, 0 add r1, sp, 0x4 adds r2, r4, 0 bl MoveCoords add r0, sp, 0x4 movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, 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, [r4, r3] str r0, [sp] adds r0, r5, 0 adds r3, r6, 0 bl sub_805BBA8 lsls r0, 24 lsrs r0, 24 b _0805BB9E .align 2, 0 _0805BB94: .4byte gPlayerAvatar _0805BB98: .4byte gMapObjects _0805BB9C: movs r0, 0x8 _0805BB9E: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805BB1C thumb_func_start sub_805BBA8 sub_805BBA8: @ 805BBA8 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 npc_block_way lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] cmp r0, 0x3 bne _0805BBF8 adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_805BC60 lsls r0, 24 cmp r0, 0 beq _0805BBF8 movs r0, 0x5 b _0805BC50 _0805BBF8: 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 sub_805BCC8 lsls r0, 24 cmp r0, 0 beq _0805BC1C movs r0, 0x2B bl IncrementGameStat movs r0, 0x6 b _0805BC50 _0805BC1C: mov r0, sp ldrb r0, [r0] cmp r0, 0x4 bne _0805BC38 mov r0, r8 adds r1, r7, 0 adds r2, r6, 0 bl sub_805BCEC lsls r0, 24 cmp r0, 0 beq _0805BC38 movs r0, 0x7 b _0805BC50 _0805BC38: mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0805BC4C asrs r0, r5, 16 asrs r1, r4, 16 mov r2, r10 mov r3, sp bl check_acro_bike_metatile _0805BC4C: mov r0, sp ldrb r0, [r0] _0805BC50: 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 sub_805BBA8 thumb_func_start sub_805BC60 sub_805BC60: @ 805BC60 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, _0805BCB8 @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805BCC0 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 _0805BCC0 lsrs r0, r5, 16 lsrs r1, r4, 16 movs r2, 0x3 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _0805BCC0 ldr r0, _0805BCBC @ =gUnknown_835B820 adds r0, r6, r0 ldrb r0, [r0] movs r1, 0x10 bl sub_811278C adds r0, r6, 0 bl sub_805D0F8 movs r0, 0x1 b _0805BCC2 .align 2, 0 _0805BCB8: .4byte gPlayerAvatar _0805BCBC: .4byte gUnknown_835B820 _0805BCC0: movs r0, 0 _0805BCC2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805BC60 thumb_func_start sub_805BCC8 sub_805BCC8: @ 805BCC8 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 _0805BCE4 movs r0, 0 b _0805BCE6 _0805BCE4: movs r0, 0x1 _0805BCE6: pop {r1} bx r1 thumb_func_end sub_805BCC8 thumb_func_start sub_805BCEC sub_805BCEC: @ 805BCEC 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, _0805BD98 @ =0x00000805 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0805BDA0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl GetFieldObjectIdByXY lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x10 beq _0805BDA0 ldr r0, _0805BD9C @ =gMapObjects lsls r1, r6, 3 adds r1, r6 lsls r1, 2 adds r4, r1, r0 ldrb r0, [r4, 0x5] cmp r0, 0x61 bne _0805BDA0 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 r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt cmp r0, 0x66 beq _0805BD8A 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 npc_block_way lsls r0, 24 cmp r0, 0 bne _0805BDA0 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_IsCaveDoor lsls r0, 24 cmp r0, 0 bne _0805BDA0 _0805BD8A: adds r0, r6, 0 adds r1, r7, 0 bl task_add_bump_boulder movs r0, 0x1 b _0805BDA2 .align 2, 0 _0805BD98: .4byte 0x00000805 _0805BD9C: .4byte gMapObjects _0805BDA0: movs r0, 0 _0805BDA2: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805BCEC thumb_func_start check_acro_bike_metatile check_acro_bike_metatile: @ 805BDAC push {r4-r7,lr} adds r6, r3, 0 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 ldr r7, _0805BDD4 @ =gUnknown_835B828 _0805BDB8: 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 _0805BDDC ldr r0, _0805BDD8 @ =gUnknown_835B83C adds r0, r4, r0 ldrb r0, [r0] strb r0, [r6] b _0805BDE6 .align 2, 0 _0805BDD4: .4byte gUnknown_835B828 _0805BDD8: .4byte gUnknown_835B83C _0805BDDC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0805BDB8 _0805BDE6: pop {r4-r7} pop {r0} bx r0 thumb_func_end check_acro_bike_metatile thumb_func_start SetPlayerAvatarTransitionFlags SetPlayerAvatarTransitionFlags: @ 805BDEC push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, _0805BE04 @ =gPlayerAvatar ldrb r1, [r2, 0x1] orrs r0, r1 strb r0, [r2, 0x1] bl DoPlayerAvatarTransition pop {r0} bx r0 .align 2, 0 _0805BE04: .4byte gPlayerAvatar thumb_func_end SetPlayerAvatarTransitionFlags thumb_func_start DoPlayerAvatarTransition DoPlayerAvatarTransition: @ 805BE08 push {r4,r5,lr} ldr r0, _0805BE50 @ =gPlayerAvatar ldrb r4, [r0, 0x1] cmp r4, 0 beq _0805BE48 movs r5, 0 _0805BE14: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0805BE36 ldr r0, _0805BE54 @ =gUnknown_835B844 lsls r2, r5, 2 adds r2, r0 ldr r0, _0805BE50 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BE58 @ =gMapObjects adds r0, r1 ldr r1, [r2] bl _call_via_r1 _0805BE36: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsrs r4, 1 cmp r5, 0x7 bls _0805BE14 ldr r1, _0805BE50 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x1] _0805BE48: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805BE50: .4byte gPlayerAvatar _0805BE54: .4byte gUnknown_835B844 _0805BE58: .4byte gMapObjects thumb_func_end DoPlayerAvatarTransition thumb_func_start nullsub_22 nullsub_22: @ 805BE5C bx lr thumb_func_end nullsub_22 thumb_func_start sub_805BE60 sub_805BE60: @ 805BE60 push {lr} movs r0, 0 bl sub_8150474 movs r0, 0 bl sub_8150498 pop {r0} bx r0 thumb_func_end sub_805BE60 thumb_func_start sub_805BE74 sub_805BE74: @ 805BE74 push {lr} movs r0, 0x1 bl sub_8150474 movs r0, 0x1 bl sub_8150498 movs r0, 0 movs r1, 0 bl sub_80BD620 pop {r0} bx r0 thumb_func_end sub_805BE74 thumb_func_start sub_805BE90 sub_805BE90: @ 805BE90 push {lr} movs r0, 0x3 bl sub_8150474 movs r0, 0x3 bl sub_8150498 pop {r0} bx r0 thumb_func_end sub_805BE90 thumb_func_start nullsub_23 nullsub_23: @ 805BEA4 bx lr thumb_func_end nullsub_23 thumb_func_start PlayerAvatarTransition_ReturnToField PlayerAvatarTransition_ReturnToField: @ 805BEA8 ldr r2, _0805BEB4 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0x20 orrs r0, r1 strb r0, [r2] bx lr .align 2, 0 _0805BEB4: .4byte gPlayerAvatar thumb_func_end PlayerAvatarTransition_ReturnToField thumb_func_start sub_805BEB8 sub_805BEB8: @ 805BEB8 push {r4,lr} ldr r4, _0805BEE4 @ =gPlayerAvatar movs r0, 0 strb r0, [r4, 0x3] bl PlayerIsAnimActive lsls r0, 24 cmp r0, 0 beq _0805BEF6 bl PlayerCheckIfAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 bne _0805BEE8 bl player_is_anim_in_certain_ranges lsls r0, 24 cmp r0, 0 bne _0805BEF6 movs r0, 0x1 b _0805BEF4 .align 2, 0 _0805BEE4: .4byte gPlayerAvatar _0805BEE8: bl sub_805BF58 lsls r0, 24 cmp r0, 0 bne _0805BEF6 movs r0, 0x2 _0805BEF4: strb r0, [r4, 0x3] _0805BEF6: pop {r4} pop {r0} bx r0 thumb_func_end sub_805BEB8 thumb_func_start player_is_anim_in_certain_ranges player_is_anim_in_certain_ranges: @ 805BEFC push {lr} ldr r2, _0805BF48 @ =gMapObjects ldr r0, _0805BF4C @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1C] cmp r1, 0x7 bls _0805BF42 adds r0, r1, 0 subs r0, 0x18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _0805BF42 adds r0, r1, 0 subs r0, 0x21 lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0805BF42 adds r0, r1, 0 subs r0, 0x70 lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bls _0805BF42 adds r0, r1, 0 adds r0, 0x78 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _0805BF50 _0805BF42: movs r0, 0x1 b _0805BF52 .align 2, 0 _0805BF48: .4byte gMapObjects _0805BF4C: .4byte gPlayerAvatar _0805BF50: movs r0, 0 _0805BF52: pop {r1} bx r1 thumb_func_end player_is_anim_in_certain_ranges thumb_func_start sub_805BF58 sub_805BF58: @ 805BF58 push {lr} bl player_is_anim_in_certain_ranges lsls r0, 24 cmp r0, 0 beq _0805BF74 ldr r0, _0805BF70 @ =gPlayerAvatar ldrb r0, [r0, 0x2] cmp r0, 0x1 beq _0805BF74 movs r0, 0x1 b _0805BF76 .align 2, 0 _0805BF70: .4byte gPlayerAvatar _0805BF74: movs r0, 0 _0805BF76: pop {r1} bx r1 thumb_func_end sub_805BF58 thumb_func_start PlayerIsAnimActive PlayerIsAnimActive: @ 805BF7C push {lr} ldr r0, _0805BF98 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BF9C @ =gMapObjects adds r0, r1 bl FieldObjectIsMovementOverridden lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805BF98: .4byte gPlayerAvatar _0805BF9C: .4byte gMapObjects thumb_func_end PlayerIsAnimActive thumb_func_start PlayerCheckIfAnimFinishedOrInactive PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0 push {lr} ldr r0, _0805BFBC @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BFC0 @ =gMapObjects adds r0, r1 bl FieldObjectCheckHeldMovementStatus lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805BFBC: .4byte gPlayerAvatar _0805BFC0: .4byte gMapObjects thumb_func_end PlayerCheckIfAnimFinishedOrInactive thumb_func_start player_set_x22 player_set_x22: @ 805BFC4 ldr r3, _0805BFD8 @ =gMapObjects ldr r1, _0805BFDC @ =gPlayerAvatar ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r3 adds r1, 0x22 strb r0, [r1] bx lr .align 2, 0 _0805BFD8: .4byte gMapObjects _0805BFDC: .4byte gPlayerAvatar thumb_func_end player_set_x22 thumb_func_start player_get_x22 player_get_x22: @ 805BFE0 ldr r2, _0805BFF4 @ =gMapObjects ldr r0, _0805BFF8 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] bx lr .align 2, 0 _0805BFF4: .4byte gMapObjects _0805BFF8: .4byte gPlayerAvatar thumb_func_end player_get_x22 thumb_func_start sub_805BFFC sub_805BFFC: @ 805BFFC push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _0805C01C @ =gPlayerAvatar ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805C020 @ =gMapObjects adds r0, r2 bl FieldObjectForceSetSpecialAnim pop {r0} bx r0 .align 2, 0 _0805C01C: .4byte gPlayerAvatar _0805C020: .4byte gMapObjects thumb_func_end sub_805BFFC thumb_func_start sub_805C024 sub_805C024: @ 805C024 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl PlayerIsAnimActive lsls r0, 24 cmp r0, 0 bne _0805C05E adds r0, r4, 0 bl player_set_x22 ldr r0, _0805C064 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805C068 @ =gMapObjects adds r0, r1 adds r1, r5, 0 bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C05E adds r0, r5, 0 bl sub_8112628 _0805C05E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C064: .4byte gPlayerAvatar _0805C068: .4byte gMapObjects thumb_func_end sub_805C024 thumb_func_start sub_805C06C sub_805C06C: @ 805C06C push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldr r0, _0805C09C @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805C0A0 @ =gMapObjects adds r0, r1 adds r1, r4, 0 bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C094 adds r0, r4, 0 movs r1, 0 bl sub_81126AC _0805C094: pop {r4} pop {r0} bx r0 .align 2, 0 _0805C09C: .4byte gPlayerAvatar _0805C0A0: .4byte gMapObjects thumb_func_end sub_805C06C thumb_func_start sub_805C0A4 sub_805C0A4: @ 805C0A4 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 adds r1, r5, 0 bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C0CA ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] ldrb r2, [r4, 0xA] movs r3, 0x20 str r3, [sp] adds r3, r5, 0 bl sub_8112588 _0805C0CA: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_805C0A4 thumb_func_start sub_805C0D4 sub_805C0D4: @ 805C0D4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063F2C lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C0D4 thumb_func_start sub_805C0EC sub_805C0EC: @ 805C0EC push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063F58 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C0EC thumb_func_start sub_805C104 sub_805C104: @ 805C104 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063F84 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C104 thumb_func_start sub_805C11C sub_805C11C: @ 805C11C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063FB0 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C11C thumb_func_start sub_805C134 sub_805C134: @ 805C134 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063FDC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C134 thumb_func_start sub_805C14C sub_805C14C: @ 805C14C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064008 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C14C thumb_func_start sub_805C164 sub_805C164: @ 805C164 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064034 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C164 thumb_func_start sub_805C17C sub_805C17C: @ 805C17C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_806408C lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C17C thumb_func_start sub_805C194 sub_805C194: @ 805C194 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80640B8 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C194 thumb_func_start PlayerOnBikeCollide PlayerOnBikeCollide: @ 805C1AC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_805C438 adds r0, r4, 0 bl GetStepInPlaceDelay16AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end PlayerOnBikeCollide thumb_func_start PlayerNotOnBikeCollide PlayerNotOnBikeCollide: @ 805C1D0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_805C438 adds r0, r4, 0 bl GetStepInPlaceDelay32AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end PlayerNotOnBikeCollide thumb_func_start PlayerFaceDirection PlayerFaceDirection: @ 805C1F4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063EB8 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end PlayerFaceDirection thumb_func_start sub_805C20C sub_805C20C: @ 805C20C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8063EE4 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C20C thumb_func_start sub_805C224 sub_805C224: @ 805C224 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064270 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C224 thumb_func_start sub_805C23C sub_805C23C: @ 805C23C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xA bl PlaySE adds r0, r4, 0 bl GetJumpLedgeAnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C23C thumb_func_start sub_805C260 sub_805C260: @ 805C260 push {lr} movs r0, 0x9F movs r1, 0 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C260 thumb_func_start sub_805C270 sub_805C270: @ 805C270 push {r4,lr} ldr r4, _0805C2AC @ =gPlayerAvatar ldrb r0, [r4, 0x3] cmp r0, 0x2 beq _0805C27E cmp r0, 0 bne _0805C2A6 _0805C27E: bl player_should_look_direction_be_enforced_upon_movement lsls r0, 24 cmp r0, 0 beq _0805C2A6 ldr r2, _0805C2B0 @ =gMapObjects ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_8063EB8 lsls r0, 24 lsrs r0, 24 bl sub_805BFFC _0805C2A6: pop {r4} pop {r0} bx r0 .align 2, 0 _0805C2AC: .4byte gPlayerAvatar _0805C2B0: .4byte gMapObjects thumb_func_end sub_805C270 thumb_func_start sub_805C2B4 sub_805C2B4: @ 805C2B4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80640E4 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C2B4 thumb_func_start sub_805C2CC sub_805C2CC: @ 805C2CC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0805C308 @ =gUnknown_835B764 ldr r0, [r1] cmp r0, 0 beq _0805C302 adds r4, r1, 0 adds r7, r4, 0 movs r5, 0 _0805C2E0: ldr r1, [r4] adds r0, r6, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _0805C2F8 adds r0, r7, 0x4 adds r0, r5, r0 ldr r0, [r0] bl _call_via_r0 _0805C2F8: adds r4, 0x8 adds r5, 0x8 ldr r0, [r4] cmp r0, 0 bne _0805C2E0 _0805C302: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805C308: .4byte gUnknown_835B764 thumb_func_end sub_805C2CC thumb_func_start sub_805C30C sub_805C30C: @ 805C30C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80642F4 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C30C thumb_func_start sub_805C324 sub_805C324: @ 805C324 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064320 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C324 thumb_func_start sub_805C33C sub_805C33C: @ 805C33C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_806434C lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C33C thumb_func_start sub_805C354 sub_805C354: @ 805C354 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1C bl PlaySE adds r0, r4, 0 bl sub_8064378 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C354 thumb_func_start sub_805C378 sub_805C378: @ 805C378 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1C bl PlaySE adds r0, r4, 0 bl sub_80643A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C378 thumb_func_start sub_805C39C sub_805C39C: @ 805C39C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1C bl PlaySE adds r0, r4, 0 bl sub_80643D0 lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C39C thumb_func_start sub_805C3C0 sub_805C3C0: @ 805C3C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1C bl PlaySE adds r0, r4, 0 bl sub_8064168 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C3C0 thumb_func_start sub_805C3E4 sub_805C3E4: @ 805C3E4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 bl PlaySE adds r0, r4, 0 bl sub_80643FC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C3E4 thumb_func_start sub_805C408 sub_805C408: @ 805C408 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064428 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C408 thumb_func_start sub_805C420 sub_805C420: @ 805C420 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8064454 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_805C024 pop {r0} bx r0 thumb_func_end sub_805C420 thumb_func_start sub_805C438 sub_805C438: @ 805C438 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r2, _0805C4E8 @ =gMapObjects ldr r0, _0805C4EC @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x1E] ldr r1, _0805C4F0 @ =gUnknown_835B864 subs r0, r5, 0x1 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0805C4DE cmp r5, 0x3 bne _0805C484 adds r0, r4, 0 bl MetatileBehavior_IsUnknownWarp6D lsls r0, 24 cmp r0, 0 bne _0805C4DE adds r0, r4, 0 bl MetatileBehavior_IsUnknownWarp6F lsls r0, 24 cmp r0, 0 bne _0805C4DE _0805C484: cmp r5, 0x4 bne _0805C4A0 adds r0, r4, 0 bl MetatileBehavior_IsUnknownWarp6C lsls r0, 24 cmp r0, 0 bne _0805C4DE adds r0, r4, 0 bl MetatileBehavior_IsUnknownWarp6E lsls r0, 24 cmp r0, 0 bne _0805C4DE _0805C4A0: cmp r6, 0x2 bne _0805C4D8 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords movs r0, 0x2 mov r1, sp adds r2, r4, 0 bl MoveCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsWarpDoor lsls r0, 24 cmp r0, 0 bne _0805C4DE _0805C4D8: movs r0, 0x7 bl PlaySE _0805C4DE: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805C4E8: .4byte gMapObjects _0805C4EC: .4byte gPlayerAvatar _0805C4F0: .4byte gUnknown_835B864 thumb_func_end sub_805C438 thumb_func_start GetXYCoordsOneStepInFrontOfPlayer GetXYCoordsOneStepInFrontOfPlayer: @ 805C4F4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r3, _0805C530 @ =gMapObjects ldr r2, _0805C534 @ =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x10] strh r0, [r4] ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x12] strh r0, [r5] bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl MoveCoords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C530: .4byte gMapObjects _0805C534: .4byte gPlayerAvatar thumb_func_end GetXYCoordsOneStepInFrontOfPlayer thumb_func_start PlayerGetDestCoords PlayerGetDestCoords: @ 805C538 push {r4,r5,lr} ldr r5, _0805C560 @ =gMapObjects ldr r4, _0805C564 @ =gPlayerAvatar ldrb r3, [r4, 0x5] lsls r2, r3, 3 adds r2, r3 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x10] strh r2, [r0] ldrb r2, [r4, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x12] strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C560: .4byte gMapObjects _0805C564: .4byte gPlayerAvatar thumb_func_end PlayerGetDestCoords thumb_func_start plaer_get_pos_including_state_based_drift plaer_get_pos_including_state_based_drift: @ 805C568 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805C5BC @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805C5C0 @ =gMapObjects adds r3, r0, r1 ldrb r1, [r3] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 beq _0805C588 b _0805C6B0 _0805C588: ldr r2, _0805C5C4 @ =gSprites ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x32 ldrsh r0, [r0, r1] cmp r0, 0 beq _0805C59E b _0805C6B0 _0805C59E: ldrh r0, [r3, 0x10] strh r0, [r4] ldrh r0, [r3, 0x12] strh r0, [r5] ldrb r0, [r3, 0x1C] subs r0, 0x10 cmp r0, 0x30 bls _0805C5B0 b _0805C6B0 _0805C5B0: lsls r0, 2 ldr r1, _0805C5C8 @ =_0805C5CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805C5BC: .4byte gPlayerAvatar _0805C5C0: .4byte gMapObjects _0805C5C4: .4byte gSprites _0805C5C8: .4byte _0805C5CC .align 2, 0 _0805C5CC: .4byte _0805C690 .4byte _0805C696 .4byte _0805C6A0 .4byte _0805C6A6 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C6B0 .4byte _0805C690 .4byte _0805C696 .4byte _0805C6A0 .4byte _0805C6A6 _0805C690: ldrh r0, [r5] adds r0, 0x1 b _0805C69A _0805C696: ldrh r0, [r5] subs r0, 0x1 _0805C69A: strh r0, [r5] movs r0, 0x1 b _0805C6BC _0805C6A0: ldrh r0, [r4] subs r0, 0x1 b _0805C6AA _0805C6A6: ldrh r0, [r4] adds r0, 0x1 _0805C6AA: strh r0, [r4] movs r0, 0x1 b _0805C6BC _0805C6B0: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strh r0, [r4] strh r0, [r5] movs r0, 0 _0805C6BC: pop {r4,r5} pop {r1} bx r1 thumb_func_end plaer_get_pos_including_state_based_drift thumb_func_start GetPlayerFacingDirection GetPlayerFacingDirection: @ 805C6C4 ldr r2, _0805C6DC @ =gMapObjects ldr r0, _0805C6E0 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 28 lsrs r0, 28 bx lr .align 2, 0 _0805C6DC: .4byte gMapObjects _0805C6E0: .4byte gPlayerAvatar thumb_func_end GetPlayerFacingDirection thumb_func_start player_get_direction_upper_nybble player_get_direction_upper_nybble: @ 805C6E4 ldr r2, _0805C6F8 @ =gMapObjects ldr r0, _0805C6FC @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsrs r0, 4 bx lr .align 2, 0 _0805C6F8: .4byte gMapObjects _0805C6FC: .4byte gPlayerAvatar thumb_func_end player_get_direction_upper_nybble thumb_func_start PlayerGetZCoord PlayerGetZCoord: @ 805C700 ldr r2, _0805C714 @ =gMapObjects ldr r0, _0805C718 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xB] lsrs r0, 4 bx lr .align 2, 0 _0805C714: .4byte gMapObjects _0805C718: .4byte gPlayerAvatar thumb_func_end PlayerGetZCoord thumb_func_start sub_805C71C sub_805C71C: @ 805C71C push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _0805C744 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805C748 @ =gMapObjects adds r0, r1 lsls r3, 16 asrs r3, 16 lsls r2, 16 asrs r2, 16 adds r1, r3, 0 bl sub_805F724 pop {r0} bx r0 .align 2, 0 _0805C744: .4byte gPlayerAvatar _0805C748: .4byte gMapObjects thumb_func_end sub_805C71C thumb_func_start TestPlayerAvatarFlags TestPlayerAvatarFlags: @ 805C74C ldr r1, _0805C758 @ =gPlayerAvatar ldrb r1, [r1] ands r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _0805C758: .4byte gPlayerAvatar thumb_func_end TestPlayerAvatarFlags thumb_func_start sub_805C75C sub_805C75C: @ 805C75C ldr r0, _0805C764 @ =gPlayerAvatar ldrb r0, [r0] bx lr .align 2, 0 _0805C764: .4byte gPlayerAvatar thumb_func_end sub_805C75C thumb_func_start GetPlayerAvatarObjectId GetPlayerAvatarObjectId: @ 805C768 ldr r0, _0805C770 @ =gPlayerAvatar ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0805C770: .4byte gPlayerAvatar thumb_func_end GetPlayerAvatarObjectId thumb_func_start sub_805C774 sub_805C774: @ 805C774 push {lr} bl ForcedMovement_None pop {r0} bx r0 thumb_func_end sub_805C774 thumb_func_start sub_805C780 sub_805C780: @ 805C780 push {r4,lr} ldr r0, _0805C7C0 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805C7C4 @ =gMapObjects adds r4, r0 adds r0, r4, 0 bl npc_clear_strange_bits ldrb r1, [r4, 0x18] lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805C7B8 bl Bike_HandleBumpySlopeJump movs r0, 0 bl Bike_UpdateBikeCounterSpeed _0805C7B8: pop {r4} pop {r0} bx r0 .align 2, 0 _0805C7C0: .4byte gPlayerAvatar _0805C7C4: .4byte gMapObjects thumb_func_end sub_805C780 thumb_func_start sub_805C7C8 sub_805C7C8: @ 805C7C8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl GetPlayerAvatarGraphicsIdByStateIdAndGender lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_805C7C8 thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 805C7E0 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _0805C7F4 @ =gUnknown_835B874 lsrs r0, 23 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .align 2, 0 _0805C7F4: .4byte gUnknown_835B874 thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender thumb_func_start sub_805C7F8 sub_805C7F8: @ 805C7F8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805C804 @ =gUnknown_835B880 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805C804: .4byte gUnknown_835B880 thumb_func_end sub_805C7F8 thumb_func_start sub_805C808 sub_805C808: @ 805C808 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0805C820 @ =gPlayerAvatar ldrb r1, [r1, 0x7] bl GetPlayerAvatarGraphicsIdByStateIdAndGender lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805C820: .4byte gPlayerAvatar thumb_func_end sub_805C808 thumb_func_start sub_805C824 sub_805C824: @ 805C824 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bgt _0805C836 cmp r0, 0x7 blt _0805C836 movs r0, 0x1 b _0805C838 _0805C836: movs r0, 0 _0805C838: pop {r1} bx r1 thumb_func_end sub_805C824 thumb_func_start PartyHasMonWithSurf PartyHasMonWithSurf: @ 805C83C push {r4,r5,lr} movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _0805C880 movs r5, 0 b _0805C866 _0805C84E: adds r0, r4, 0 movs r1, 0x39 bl MonKnowsMove lsls r0, 24 cmp r0, 0 beq _0805C860 movs r0, 0x1 b _0805C882 _0805C860: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0805C866: cmp r5, 0x5 bhi _0805C880 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0805C888 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 bne _0805C84E _0805C880: movs r0, 0 _0805C882: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805C888: .4byte gPlayerParty thumb_func_end PartyHasMonWithSurf thumb_func_start IsPlayerSurfingNorth IsPlayerSurfingNorth: @ 805C88C push {lr} bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805C8AA movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805C8AA movs r0, 0x1 b _0805C8AC _0805C8AA: movs r0, 0 _0805C8AC: pop {r1} bx r1 thumb_func_end IsPlayerSurfingNorth thumb_func_start IsPlayerFacingSurfableFishableWater IsPlayerFacingSurfableFishableWater: @ 805C8B0 push {r4,r5,lr} sub sp, 0x4 ldr r0, _0805C924 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805C928 @ =gMapObjects adds r4, r0 ldrh r1, [r4, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x2 strh r0, [r5] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 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] ldrb r3, [r4, 0x18] lsls r3, 28 lsrs r3, 28 adds r0, r4, 0 bl npc_block_way lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805C92C bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805C92C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl sub_805C938 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805C92C movs r0, 0x1 b _0805C92E .align 2, 0 _0805C924: .4byte gPlayerAvatar _0805C928: .4byte gMapObjects _0805C92C: movs r0, 0 _0805C92E: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end IsPlayerFacingSurfableFishableWater thumb_func_start sub_805C938 sub_805C938: @ 805C938 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, 0x2 bl sub_805A2BC lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_805C938 thumb_func_start ClearPlayerAvatarInfo ClearPlayerAvatarInfo: @ 805C95C push {lr} ldr r0, _0805C96C @ =gPlayerAvatar movs r1, 0 movs r2, 0x20 bl memset pop {r0} bx r0 .align 2, 0 _0805C96C: .4byte gPlayerAvatar thumb_func_end ClearPlayerAvatarInfo thumb_func_start SetPlayerAvatarStateMask SetPlayerAvatarStateMask: @ 805C970 lsls r0, 24 lsrs r0, 24 ldr r3, _0805C984 @ =gPlayerAvatar ldrb r2, [r3] movs r1, 0xE0 ands r1, r2 orrs r0, r1 strb r0, [r3] bx lr .align 2, 0 _0805C984: .4byte gPlayerAvatar thumb_func_end SetPlayerAvatarStateMask thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId GetPlayerAvatarStateTransitionByGraphicsId: @ 805C988 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 movs r2, 0 ldr r3, _0805C9B0 @ =gUnknown_835B882 lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 1 adds r6, r3, 0x1 _0805C99E: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r5 bne _0805C9B4 adds r0, r1, r6 ldrb r0, [r0] b _0805C9C0 .align 2, 0 _0805C9B0: .4byte gUnknown_835B882 _0805C9B4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0805C99E movs r0, 0x1 _0805C9C0: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState GetPlayerAvatarGraphicsIdByCurrentState: @ 805C9C8 push {r4-r6,lr} ldr r0, _0805C9F0 @ =gPlayerAvatar ldrb r5, [r0] movs r2, 0 ldr r3, _0805C9F4 @ =gUnknown_835B882 ldrb r1, [r0, 0x7] lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 1 adds r6, r3, 0x1 _0805C9DC: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r1, r6 ldrb r0, [r0] ands r0, r5 cmp r0, 0 beq _0805C9F8 adds r0, r1, r3 ldrb r0, [r0] b _0805CA04 .align 2, 0 _0805C9F0: .4byte gPlayerAvatar _0805C9F4: .4byte gUnknown_835B882 _0805C9F8: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0805C9DC movs r0, 0 _0805CA04: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState thumb_func_start SetPlayerAvatarExtraStateTransition SetPlayerAvatarExtraStateTransition: @ 805CA0C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 ldr r5, _0805CA38 @ =gPlayerAvatar ldrb r1, [r5, 0x7] bl GetPlayerAvatarStateTransitionByGraphicsId lsls r0, 24 lsrs r0, 24 orrs r0, r4 ldrb r1, [r5, 0x1] orrs r0, r1 strb r0, [r5, 0x1] bl DoPlayerAvatarTransition pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805CA38: .4byte gPlayerAvatar thumb_func_end SetPlayerAvatarExtraStateTransition thumb_func_start InitPlayerAvatar InitPlayerAvatar: @ 805CA3C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x18 adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 mov r8, r3 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r1, sp movs r0, 0xFF strb r0, [r1] movs r0, 0 mov r1, r8 bl GetPlayerAvatarGraphicsIdByStateIdAndGender mov r1, sp movs r3, 0 strb r0, [r1, 0x1] mov r0, sp lsls r4, 16 asrs r4, 16 subs r4, 0x7 movs r6, 0 strh r4, [r0, 0x4] lsls r5, 16 asrs r5, 16 subs r5, 0x7 strh r5, [r0, 0x6] strb r6, [r0, 0x8] movs r0, 0xB strb r0, [r1, 0x9] mov r2, sp ldrb r1, [r2, 0xA] subs r0, 0x1B ands r0, r1 strb r0, [r2, 0xA] mov r0, sp strb r6, [r0, 0xA] strh r3, [r0, 0xC] strh r3, [r0, 0xE] str r3, [sp, 0x10] strh r3, [r0, 0x14] bl SpawnSpecialFieldObject adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 3 adds r4, r5 lsls r4, 2 ldr r0, _0805CAFC @ =gMapObjects adds r4, r0 ldrb r0, [r4, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x2] bl sub_80DB0C4 strb r0, [r4, 0x1B] adds r0, r4, 0 mov r1, r9 bl FieldObjectTurn bl ClearPlayerAvatarInfo ldr r0, _0805CB00 @ =gPlayerAvatar strb r6, [r0, 0x2] strb r6, [r0, 0x3] strb r5, [r0, 0x5] ldrb r1, [r4, 0x4] strb r1, [r0, 0x4] mov r1, r8 strb r1, [r0, 0x7] movs r0, 0x21 bl SetPlayerAvatarStateMask add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805CAFC: .4byte gMapObjects _0805CB00: .4byte gPlayerAvatar thumb_func_end InitPlayerAvatar thumb_func_start sub_805CB04 sub_805CB04: @ 805CB04 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, _0805CB64 @ =gMapObjects ldr r5, _0805CB68 @ =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 ands r4, r0 lsls r3, r4, 5 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x1] movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805CB5C ldr r2, _0805CB6C @ =gSprites ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x1A] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E lsls r3, r4, 2 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1] _0805CB5C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805CB64: .4byte gMapObjects _0805CB68: .4byte gPlayerAvatar _0805CB6C: .4byte gSprites thumb_func_end sub_805CB04 thumb_func_start sub_805CB70 sub_805CB70: @ 805CB70 push {r4,r5,lr} ldr r5, _0805CBAC @ =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805CBB0 @ =gMapObjects adds r4, r0 movs r0, 0x3 bl sub_805C808 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetGraphicsId ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805CBB4 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805CBAC: .4byte gPlayerAvatar _0805CBB0: .4byte gMapObjects _0805CBB4: .4byte gSprites thumb_func_end sub_805CB70 thumb_func_start sub_805CBB8 sub_805CBB8: @ 805CBB8 push {lr} ldr r2, _0805CBD4 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _0805CBD8 movs r0, 0x5 bl sub_805C808 lsls r0, 24 lsrs r0, 24 b _0805CBE0 .align 2, 0 _0805CBD4: .4byte gPlayerAvatar _0805CBD8: ldr r0, _0805CBE4 @ =gUnknown_835B88E ldrb r1, [r2, 0x7] adds r1, r0 ldrb r0, [r1] _0805CBE0: pop {r1} bx r1 .align 2, 0 _0805CBE4: .4byte gUnknown_835B88E thumb_func_end sub_805CBB8 thumb_func_start sub_805CBE8 sub_805CBE8: @ 805CBE8 push {r4,r5,lr} ldr r5, _0805CC20 @ =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805CC24 @ =gMapObjects adds r4, r0 bl sub_805CBB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetGraphicsId ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805CC28 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805CC20: .4byte gPlayerAvatar _0805CC24: .4byte gMapObjects _0805CC28: .4byte gSprites thumb_func_end sub_805CBE8 thumb_func_start sub_805CC2C sub_805CC2C: @ 805CC2C push {lr} movs r0, 0x2 bl sub_8150498 pop {r0} bx r0 thumb_func_end sub_805CC2C thumb_func_start nullsub_24 nullsub_24: @ 805CC38 bx lr thumb_func_end nullsub_24 thumb_func_start nullsub_25 nullsub_25: @ 805CC3C bx lr thumb_func_end nullsub_25 thumb_func_start sub_805CC40 sub_805CC40: @ 805CC40 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 ldrb r0, [r5, 0x1E] mov r8, r0 movs r1, 0 mov r0, sp strh r1, [r0] movs r6, 0x1 ldr r1, _0805CCA4 @ =gUnknown_835B890 mov r9, r1 mov r4, sp mov r7, sp adds r7, 0x2 _0805CC62: movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 2 add r0, r9 ldr r1, [r0] mov r0, r8 bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _0805CCA8 ldrb r0, [r5, 0x18] lsrs r0, 4 cmp r6, r0 bne _0805CCA8 ldrh r0, [r5, 0x10] strh r0, [r4] ldrh r0, [r5, 0x12] strh r0, [r7] adds r0, r6, 0 mov r1, sp adds r2, r7, 0 bl MoveCoords ldrb r0, [r5, 0x1B] movs r1, 0 ldrsh r2, [r4, r1] movs r1, 0 ldrsh r3, [r7, r1] adds r1, r6, 0 bl sub_80DB134 b _0805CCC2 .align 2, 0 _0805CCA4: .4byte gUnknown_835B890 _0805CCA8: ldrh r1, [r4] adds r1, 0x1 strh r1, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 asrs r1, 16 cmp r1, 0x3 ble _0805CC62 ldrb r0, [r5, 0x1B] bl objid_set_invisible _0805CCC2: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805CC40 thumb_func_start task_add_bump_boulder task_add_bump_boulder: @ 805CCD0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _0805CD04 @ =taskFF_bump_boulder adds r0, r6, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805CD08 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] strh r5, [r1, 0xC] bl _call_via_r6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805CD04: .4byte taskFF_bump_boulder _0805CD08: .4byte gTasks thumb_func_end task_add_bump_boulder thumb_func_start taskFF_bump_boulder taskFF_bump_boulder: @ 805CD0C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r6, _0805CD54 @ =gUnknown_835B8A0 ldr r2, _0805CD58 @ =gTasks ldr r5, _0805CD5C @ =gMapObjects lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805CD20: movs r0, 0x8 ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 ldr r0, _0805CD60 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r5 movs r2, 0xA ldrsh r0, [r4, r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r2, r5 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _0805CD20 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805CD54: .4byte gUnknown_835B8A0 _0805CD58: .4byte gTasks _0805CD5C: .4byte gMapObjects _0805CD60: .4byte gPlayerAvatar thumb_func_end taskFF_bump_boulder thumb_func_start sub_805CD64 sub_805CD64: @ 805CD64 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable ldr r1, _0805CD80 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805CD80: .4byte gPlayerAvatar thumb_func_end sub_805CD64 thumb_func_start sub_805CD84 sub_805CD84: @ 805CD84 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 adds r0, r5, 0 bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _0805CE0E adds r0, r4, 0 bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _0805CE0E adds r0, r5, 0 bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished ldrb r0, [r6, 0xC] bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_805C06C ldrb r0, [r6, 0xC] bl sub_8063F2C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805C0A4 ldr r2, _0805CE18 @ =gFieldEffectArguments movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] movs r1, 0x12 ldrsh r0, [r4, r1] str r0, [r2, 0x4] ldrb r0, [r4, 0xB] lsrs r0, 4 str r0, [r2, 0x8] ldr r3, _0805CE1C @ =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r2, 0xC] movs r0, 0xA bl FieldEffectStart movs r0, 0xCF bl PlaySE ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0805CE0E: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805CE18: .4byte gFieldEffectArguments _0805CE1C: .4byte gSprites thumb_func_end sub_805CD84 thumb_func_start sub_805CE20 sub_805CE20: @ 805CE20 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 adds r0, r5, 0 bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805CE70 adds r0, r4, 0 bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805CE70 adds r0, r5, 0 bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 bl sub_806DE28 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x12] bl sub_806DE70 ldr r1, _0805CE78 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable ldr r0, _0805CE7C @ =taskFF_bump_boulder bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805CE70: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805CE78: .4byte gPlayerAvatar _0805CE7C: .4byte taskFF_bump_boulder thumb_func_end sub_805CE20 thumb_func_start sub_805CE80 sub_805CE80: @ 805CE80 push {r4,lr} ldr r4, _0805CE9C @ =sub_805CEA0 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805CE9C: .4byte sub_805CEA0 thumb_func_end sub_805CE80 thumb_func_start sub_805CEA0 sub_805CEA0: @ 805CEA0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805CEDC @ =gUnknown_835B8AC ldr r2, _0805CEE0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805CEB2: movs r0, 0x8 ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 ldr r0, _0805CEE4 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805CEE8 @ =gMapObjects adds r1, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _0805CEB2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805CEDC: .4byte gUnknown_835B8AC _0805CEE0: .4byte gTasks _0805CEE4: .4byte gPlayerAvatar _0805CEE8: .4byte gMapObjects thumb_func_end sub_805CEA0 thumb_func_start PlayerAvatar_DoSecretBaseMatJump PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, _0805CF50 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805CF48 movs r0, 0xA bl PlaySE ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_806413C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805C06C ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0805CF48 movs r0, 0 strb r0, [r5, 0x6] ldrb r0, [r5, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] ldr r0, _0805CF54 @ =sub_805CEA0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805CF48: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805CF50: .4byte gPlayerAvatar _0805CF54: .4byte sub_805CEA0 thumb_func_end PlayerAvatar_DoSecretBaseMatJump thumb_func_start sub_805CF58 sub_805CF58: @ 805CF58 push {r4,lr} ldr r4, _0805CF74 @ =sub_805CF78 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805CF74: .4byte sub_805CF78 thumb_func_end sub_805CF58 thumb_func_start sub_805CF78 sub_805CF78: @ 805CF78 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805CFB4 @ =gUnknown_835B8B0 ldr r2, _0805CFB8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805CF8A: movs r0, 0x8 ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 ldr r0, _0805CFBC @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805CFC0 @ =gMapObjects adds r1, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _0805CF8A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805CFB4: .4byte gUnknown_835B8B0 _0805CFB8: .4byte gTasks _0805CFBC: .4byte gPlayerAvatar _0805CFC0: .4byte gMapObjects thumb_func_end sub_805CF78 thumb_func_start sub_805CFC4 sub_805CFC4: @ 805CFC4 push {lr} ldrh r2, [r0, 0x8] adds r2, 0x1 strh r2, [r0, 0x8] ldrb r1, [r1, 0x18] lsrs r1, 4 strh r1, [r0, 0xA] ldr r1, _0805CFE8 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] bl ScriptContext2_Enable movs r0, 0x27 bl PlaySE movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805CFE8: .4byte gPlayerAvatar thumb_func_end sub_805CFC4 thumb_func_start sub_805CFEC sub_805CFEC: @ 805CFEC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805D060 @ =gUnknown_835B8C0 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r5, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D054 ldrb r0, [r5, 0x18] lsrs r0, 4 subs r0, 0x1 add r0, sp ldrb r6, [r0] adds r0, r6, 0 bl sub_8063EB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_805C06C ldrb r0, [r4, 0xA] cmp r6, r0 bne _0805D032 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0805D032: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x3 ble _0805D054 ldrb r0, [r4, 0xA] bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0805D054 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0805D054: movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805D060: .4byte gUnknown_835B8C0 thumb_func_end sub_805CFEC thumb_func_start sub_805D064 sub_805D064: @ 805D064 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805D0A0 @ =gUnknown_835B8C4 mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D094 movs r1, 0xC ldrsh r0, [r5, r1] add r0, sp ldrb r1, [r0] adds r0, r4, 0 bl sub_805C06C movs r0, 0x1 strh r0, [r5, 0x8] _0805D094: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D0A0: .4byte gUnknown_835B8C4 thumb_func_end sub_805D064 thumb_func_start sub_805D0A4 sub_805D0A4: @ 805D0A4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D0E8 ldrb r0, [r4, 0xA] bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 bl sub_8063F2C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_805C06C bl ScriptContext2_Disable ldr r1, _0805D0F0 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] ldr r0, _0805D0F4 @ =sub_805CF78 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805D0E8: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D0F0: .4byte gPlayerAvatar _0805D0F4: .4byte sub_805CF78 thumb_func_end sub_805D0A4 thumb_func_start sub_805D0F8 sub_805D0F8: @ 805D0F8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable bl player_bitmagic bl sav1_reset_battle_music_maybe bl Overworld_ChangeMusicToDefault ldr r2, _0805D148 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 strb r0, [r2, 0x6] ldr r5, _0805D14C @ =taskFF_0805D1D4 adds r0, r5, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805D150 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805D148: .4byte gPlayerAvatar _0805D14C: .4byte taskFF_0805D1D4 _0805D150: .4byte gTasks thumb_func_end sub_805D0F8 thumb_func_start sub_805D154 sub_805D154: @ 805D154 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable bl player_bitmagic ldr r2, _0805D19C @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 strb r0, [r2, 0x6] ldr r5, _0805D1A0 @ =taskFF_0805D1D4 adds r0, r5, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805D1A4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805D19C: .4byte gPlayerAvatar _0805D1A0: .4byte taskFF_0805D1D4 _0805D1A4: .4byte gTasks thumb_func_end sub_805D154 thumb_func_start sub_805D1A8 sub_805D1A8: @ 805D1A8 push {lr} ldr r0, _0805D1CC @ =gUnknown_3005E88 ldrb r0, [r0] cmp r0, 0x1 beq _0805D1C6 cmp r0, 0x3 beq _0805D1C6 ldr r0, _0805D1D0 @ =gUnknown_835B820 ldrb r0, [r0, 0x2] movs r1, 0x10 bl sub_811278C movs r0, 0x2 bl sub_805D0F8 _0805D1C6: pop {r0} bx r0 .align 2, 0 _0805D1CC: .4byte gUnknown_3005E88 _0805D1D0: .4byte gUnknown_835B820 thumb_func_end sub_805D1A8 thumb_func_start taskFF_0805D1D4 taskFF_0805D1D4: @ 805D1D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0805D230 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805D234 @ =gMapObjects adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0805D200 adds r0, r5, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D228 _0805D200: ldrb r0, [r5, 0x1A] movs r1, 0x2 bl sub_80DC44C ldr r0, _0805D238 @ =gTasks lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] bl sub_80641EC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_805C06C ldr r0, _0805D23C @ =sub_805D240 str r0, [r4] _0805D228: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805D230: .4byte gPlayerAvatar _0805D234: .4byte gMapObjects _0805D238: .4byte gTasks _0805D23C: .4byte sub_805D240 thumb_func_end taskFF_0805D1D4 thumb_func_start sub_805D240 sub_805D240: @ 805D240 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0805D2B4 @ =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805D2B8 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D2AE movs r0, 0 bl sub_805C808 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetGraphicsId ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_8063EB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805C06C movs r0, 0 strb r0, [r6, 0x6] bl ScriptContext2_Disable bl UnfreezeMapObjects ldrb r1, [r4, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D2BC @ =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0 bl DestroyTask bl sub_812B35C _0805D2AE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805D2B4: .4byte gPlayerAvatar _0805D2B8: .4byte gMapObjects _0805D2BC: .4byte gSprites thumb_func_end sub_805D240 thumb_func_start sub_805D2C0 sub_805D2C0: @ 805D2C0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0805D2FC @ =sub_805D304 adds r0, r5, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805D300 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x26] bl _call_via_r5 movs r0, 0x2 bl sub_8150474 cmp r0, 0x1 bne _0805D2F4 bl sub_8112C9C _0805D2F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805D2FC: .4byte sub_805D304 _0805D300: .4byte gTasks thumb_func_end sub_805D2C0 thumb_func_start sub_805D304 sub_805D304: @ 805D304 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805D334 @ =gUnknown_835B8CC ldr r2, _0805D338 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805D316: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0805D316 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805D334: .4byte gUnknown_835B8CC _0805D338: .4byte gTasks thumb_func_end sub_805D304 thumb_func_start sub_805D33C sub_805D33C: @ 805D33C push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable ldr r1, _0805D358 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D358: .4byte gPlayerAvatar thumb_func_end sub_805D33C thumb_func_start fish1 fish1: @ 805D35C push {r4-r6,lr} sub sp, 0x10 adds r5, r0, 0 ldr r1, _0805D3E4 @ =gUnknown_835B90C mov r0, sp movs r2, 0x6 bl memcpy add r4, sp, 0x8 ldr r1, _0805D3E8 @ =gUnknown_835B912 adds r0, r4, 0 movs r2, 0x6 bl memcpy movs r0, 0 strh r0, [r5, 0x20] bl Random movs r2, 0x26 ldrsh r1, [r5, r2] lsls r1, 1 mov r2, sp adds r6, r2, r1 lsls r0, 16 lsrs r0, 16 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] bl __modsi3 ldrh r1, [r6] adds r1, r0 strh r1, [r5, 0x22] ldr r3, _0805D3EC @ =gMapObjects ldr r2, _0805D3F0 @ =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] strh r0, [r5, 0x24] ldrb r0, [r2, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r3 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimActive ldrb r0, [r4, 0x1] movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_805CC2C ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805D3E4: .4byte gUnknown_835B90C _0805D3E8: .4byte gUnknown_835B912 _0805D3EC: .4byte gMapObjects _0805D3F0: .4byte gPlayerAvatar thumb_func_end fish1 thumb_func_start fish2 fish2: @ 805D3F4 push {r4,lr} adds r4, r0, 0 ldr r0, _0805D428 @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D42C @ =gSprites adds r0, r1 bl sub_805D9C4 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _0805D41E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0805D41E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D428: .4byte gPlayerAvatar _0805D42C: .4byte gSprites thumb_func_end fish2 thumb_func_start sub_805D430 sub_805D430: @ 805D430 push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x1 bl sub_80F7768 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 adds r0, r1, 0x1 strh r0, [r4, 0xE] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0 bne _0805D468 adds r0, r1, 0x4 strh r0, [r4, 0xE] _0805D468: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x9 ble _0805D474 movs r0, 0xA strh r0, [r4, 0xE] _0805D474: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_805D430 thumb_func_start sub_805D47C sub_805D47C: @ 805D47C push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 ldr r0, _0805D4CC @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D4D0 @ =gSprites adds r0, r1 bl sub_805D9C4 ldrh r0, [r4, 0xA] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0805D4F8 strh r5, [r4, 0xA] movs r0, 0xC ldrsh r1, [r4, r0] movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 blt _0805D4D4 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] ldrh r2, [r4, 0x20] movs r3, 0x20 ldrsh r0, [r4, r3] cmp r0, 0 beq _0805D4C6 adds r0, r1, 0x1 strh r0, [r4, 0x8] _0805D4C6: adds r0, r2, 0x1 strh r0, [r4, 0x20] b _0805D4F8 .align 2, 0 _0805D4CC: .4byte gPlayerAvatar _0805D4D0: .4byte gSprites _0805D4D4: ldr r2, _0805D504 @ =gUnknown_835B918 movs r1, 0xC ldrsh r0, [r4, r1] lsls r3, r0, 1 adds r3, r0 lsls r3, 26 lsrs r3, 24 movs r0, 0x1 str r0, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x2 bl AddTextPrinterParameterized ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0805D4F8: movs r0, 0 add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D504: .4byte gUnknown_835B918 thumb_func_end sub_805D47C thumb_func_start sub_805D508 sub_805D508: @ 805D508 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _0805D540 @ =gPlayerAvatar ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0805D544 @ =gSprites adds r0, r5 bl sub_805D9C4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8082F78 lsls r0, 24 cmp r0, 0 beq _0805D53A bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0805D548 _0805D53A: movs r0, 0xB strh r0, [r4, 0x8] b _0805D56A .align 2, 0 _0805D540: .4byte gPlayerAvatar _0805D544: .4byte gSprites _0805D548: ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r5 bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063510 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _0805D56A: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805D508 thumb_func_start sub_805D574 sub_805D574: @ 805D574 ldrh r1, [r0, 0x8] adds r1, 0x3 strh r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end sub_805D574 thumb_func_start sub_805D580 sub_805D580: @ 805D580 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _0805D5C0 @ =gUnknown_835B91A mov r0, sp movs r2, 0x6 bl memcpy ldr r0, _0805D5C4 @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D5C8 @ =gSprites adds r0, r1 bl sub_805D9C4 ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp lsls r1, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 blt _0805D5CC movs r0, 0xC b _0805D5DC .align 2, 0 _0805D5C0: .4byte gUnknown_835B91A _0805D5C4: .4byte gPlayerAvatar _0805D5C8: .4byte gSprites _0805D5CC: ldr r0, _0805D5E8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805D5DE ldrh r0, [r4, 0x8] adds r0, 0x1 _0805D5DC: strh r0, [r4, 0x8] _0805D5DE: movs r0, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D5E8: .4byte gMain thumb_func_end sub_805D580 thumb_func_start sub_805D5EC sub_805D5EC: @ 805D5EC push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldr r1, _0805D660 @ =gUnknown_835B920 mov r0, sp movs r2, 0xC bl memcpy ldr r0, _0805D664 @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D668 @ =gSprites adds r0, r1 bl sub_805D9C4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x22 ldrsh r0, [r4, r2] cmp r1, r0 blt _0805D650 cmp r1, 0x1 bgt _0805D654 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 movs r3, 0x20 ldrsh r2, [r4, r3] lsls r2, 1 movs r3, 0x26 ldrsh r1, [r4, r3] lsls r1, 2 adds r2, r1 mov r3, sp adds r1, r3, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 ble _0805D654 _0805D650: movs r0, 0x3 strh r0, [r4, 0x8] _0805D654: movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0805D660: .4byte gUnknown_835B920 _0805D664: .4byte gPlayerAvatar _0805D668: .4byte gSprites thumb_func_end sub_805D5EC thumb_func_start sub_805D66C sub_805D66C: @ 805D66C push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 ldr r0, _0805D6BC @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D6C0 @ =gSprites adds r0, r1 bl sub_805D9C4 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, _0805D6C4 @ =gUnknown_841D14E movs r5, 0 str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParameterized2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] strh r5, [r4, 0xA] movs r0, 0 add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D6BC: .4byte gPlayerAvatar _0805D6C0: .4byte gSprites _0805D6C4: .4byte gUnknown_841D14E thumb_func_end sub_805D66C thumb_func_start sub_805D6C8 sub_805D6C8: @ 805D6C8 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 bne _0805D6EA ldr r0, _0805D774 @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D778 @ =gSprites adds r0, r1 bl sub_805D9C4 _0805D6EA: bl RunTextPrinters movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 bne _0805D788 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 bne _0805D780 ldr r7, _0805D774 @ =gPlayerAvatar ldrb r0, [r7, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805D77C @ =gMapObjects mov r8, r0 add r4, r8 ldrh r1, [r5, 0x24] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetGraphicsId ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805D748 ldrb r0, [r7, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r0, [r1, 0x1A] movs r1, 0 movs r2, 0 bl sub_80DC4A4 _0805D748: ldr r2, _0805D778 @ =gSprites ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x24] ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x26] movs r0, 0 movs r1, 0x1 bl ClearDialogWindowAndFrame ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] b _0805D7AA .align 2, 0 _0805D774: .4byte gPlayerAvatar _0805D778: .4byte gSprites _0805D77C: .4byte gMapObjects _0805D780: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 beq _0805D7AA _0805D788: ldr r1, _0805D7B8 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable ldrh r0, [r5, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8082FB0 ldr r0, _0805D7BC @ =sub_805D304 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805D7AA: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D7B8: .4byte gPlayerAvatar _0805D7BC: .4byte sub_805D304 thumb_func_end sub_805D6C8 thumb_func_start sub_805D7C0 sub_805D7C0: @ 805D7C0 push {r4-r6,lr} sub sp, 0x10 adds r6, r0, 0 ldr r4, _0805D82C @ =gPlayerAvatar ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0805D830 @ =gSprites adds r0, r5 bl sub_805D9C4 ldrb r0, [r4, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r5 bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063500 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, _0805D834 @ =gUnknown_841D169 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParameterized2 movs r0, 0xD strh r0, [r6, 0x8] movs r0, 0x1 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805D82C: .4byte gPlayerAvatar _0805D830: .4byte gSprites _0805D834: .4byte gUnknown_841D169 thumb_func_end sub_805D7C0 thumb_func_start sub_805D838 sub_805D838: @ 805D838 push {r4-r6,lr} sub sp, 0x10 adds r6, r0, 0 ldr r4, _0805D8A0 @ =gPlayerAvatar ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0805D8A4 @ =gSprites adds r0, r5 bl sub_805D9C4 ldrb r0, [r4, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r5 bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063500 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r2, _0805D8A8 @ =gUnknown_841D17E movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParameterized2 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0x1 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805D8A0: .4byte gPlayerAvatar _0805D8A4: .4byte gSprites _0805D8A8: .4byte gUnknown_841D17E thumb_func_end sub_805D838 thumb_func_start sub_805D8AC sub_805D8AC: @ 805D8AC push {r4,lr} adds r4, r0, 0 ldr r0, _0805D8D0 @ =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805D8D4 @ =gSprites adds r0, r1 bl sub_805D9C4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D8D0: .4byte gPlayerAvatar _0805D8D4: .4byte gSprites thumb_func_end sub_805D8AC thumb_func_start sub_805D8D8 sub_805D8D8: @ 805D8D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r5, _0805D974 @ =gPlayerAvatar ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r7, _0805D978 @ =gSprites adds r0, r7 bl sub_805D9C4 ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _0805D968 ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805D97C @ =gMapObjects mov r8, r0 add r4, r8 ldrh r1, [r6, 0x24] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetGraphicsId ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805D948 ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r0, [r1, 0x1A] movs r1, 0 movs r2, 0 bl sub_80DC4A4 _0805D948: ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 movs r2, 0 strh r2, [r0, 0x24] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0805D968: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D974: .4byte gPlayerAvatar _0805D978: .4byte gSprites _0805D97C: .4byte gMapObjects thumb_func_end sub_805D8D8 thumb_func_start sub_805D980 sub_805D980: @ 805D980 push {lr} bl RunTextPrinters movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _0805D9B6 ldr r0, _0805D9BC @ =gPlayerAvatar strb r1, [r0, 0x6] bl ScriptContext2_Disable bl UnfreezeMapObjects movs r0, 0 movs r1, 0x1 bl ClearDialogWindowAndFrame ldr r0, _0805D9C0 @ =sub_805D304 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805D9B6: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805D9BC: .4byte gPlayerAvatar _0805D9C0: .4byte sub_805D304 thumb_func_end sub_805D980 thumb_func_start sub_805D9C4 sub_805D9C4: @ 805D9C4 push {r4-r7,lr} adds r4, r0, 0 bl AnimateSprite movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x2B ldrb r5, [r0] movs r0, 0x2A adds r0, r4 mov r12, r0 ldrb r0, [r0] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r6, r5, 2 adds r0, r6, r0 movs r1, 0 ldrsh r0, [r0, r1] movs r7, 0x1 negs r7, r7 cmp r0, r7 beq _0805DA28 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] mov r1, r12 ldrb r0, [r1] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r0, r6, r0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, r7 bne _0805DA2E _0805DA28: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0805DA2E: adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrb r5, [r0] subs r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _0805DA60 movs r0, 0x8 strh r0, [r4, 0x24] bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805DA60 ldr r0, _0805DAA4 @ =0x0000fff8 strh r0, [r4, 0x24] _0805DA60: cmp r5, 0x5 bne _0805DA68 ldr r0, _0805DAA4 @ =0x0000fff8 strh r0, [r4, 0x26] _0805DA68: adds r0, r5, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0805DA78 movs r0, 0x8 strh r0, [r4, 0x26] _0805DA78: ldr r3, _0805DAA8 @ =gPlayerAvatar ldrb r1, [r3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805DA9C ldr r2, _0805DAAC @ =gMapObjects ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1A] movs r1, 0x26 ldrsh r2, [r4, r1] movs r1, 0x1 bl sub_80DC4A4 _0805DA9C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805DAA4: .4byte 0x0000fff8 _0805DAA8: .4byte gPlayerAvatar _0805DAAC: .4byte gMapObjects thumb_func_end sub_805D9C4 thumb_func_start sub_805DAB0 sub_805DAB0: @ 805DAB0 push {r4,lr} ldr r4, _0805DACC @ =sub_805DB04 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805DACC: .4byte sub_805DB04 thumb_func_end sub_805DAB0 thumb_func_start sub_805DAD0 sub_805DAD0: @ 805DAD0 push {lr} ldr r0, _0805DAE0 @ =sub_805DB04 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805DAE0: .4byte sub_805DB04 thumb_func_end sub_805DAD0 thumb_func_start sub_805DAE4 sub_805DAE4: @ 805DAE4 ldr r1, _0805DAEC @ =gUnknown_2036E34 strb r0, [r1] bx lr .align 2, 0 _0805DAEC: .4byte gUnknown_2036E34 thumb_func_end sub_805DAE4 thumb_func_start sub_805DAF0 sub_805DAF0: @ 805DAF0 push {lr} ldr r1, _0805DB00 @ =gUnknown_2036E34 ldrb r0, [r1] cmp r0, 0 bne _0805DAFC movs r0, 0x1 _0805DAFC: pop {r1} bx r1 .align 2, 0 _0805DB00: .4byte gUnknown_2036E34 thumb_func_end sub_805DAF0 thumb_func_start sub_805DB04 sub_805DB04: @ 805DB04 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r0, _0805DB48 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805DB4C @ =gMapObjects adds r4, r0, r1 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805DB50 @ =gSprites adds r7, r0, r1 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0805DB54 @ =gTasks+0x8 adds r5, r0, r1 movs r0, 0 ldrsh r6, [r5, r0] cmp r6, 0x1 beq _0805DBBA cmp r6, 0x1 bgt _0805DB58 cmp r6, 0 beq _0805DB5E b _0805DBFA .align 2, 0 _0805DB48: .4byte gPlayerAvatar _0805DB4C: .4byte gMapObjects _0805DB50: .4byte gSprites _0805DB54: .4byte gTasks+0x8 _0805DB58: cmp r6, 0x2 beq _0805DBF4 b _0805DBFA _0805DB5E: adds r0, r4, 0 bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805DBFA ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_805DAE4 movs r1, 0 mov r8, r1 strh r6, [r5, 0x2] movs r0, 0x1 strh r0, [r5, 0x4] ldrh r0, [r7, 0x26] ldrh r2, [r7, 0x22] adds r0, r2 lsls r0, 4 strh r0, [r5, 0x6] strh r6, [r7, 0x26] bl CameraObjectReset2 ldrb r0, [r4, 0x3] movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r7, 0x5] adds r0, r7, 0 adds r0, 0x43 mov r1, r8 strb r1, [r0] adds r2, r7, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0805DBBA: adds r1, r5, 0x2 adds r0, r4, 0 bl sub_805DDC8 ldrh r0, [r5, 0x6] ldrh r1, [r5, 0x4] subs r0, r1 strh r0, [r5, 0x6] adds r1, 0x3 strh r1, [r5, 0x4] lsls r0, 16 asrs r0, 20 strh r0, [r7, 0x22] movs r2, 0x22 ldrsh r1, [r7, r2] ldr r0, _0805DBF0 @ =gUnknown_3005068 movs r2, 0 ldrsh r0, [r0, r2] adds r1, r0 movs r0, 0x20 negs r0, r0 cmp r1, r0 bge _0805DBFA ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _0805DBFA .align 2, 0 _0805DBF0: .4byte gUnknown_3005068 _0805DBF4: adds r0, r2, 0 bl DestroyTask _0805DBFA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805DB04 thumb_func_start sub_805DC04 sub_805DC04: @ 805DC04 push {r4,lr} ldr r4, _0805DC20 @ =sub_805DC38 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805DC20: .4byte sub_805DC38 thumb_func_end sub_805DC04 thumb_func_start sub_805DC24 sub_805DC24: @ 805DC24 push {lr} ldr r0, _0805DC34 @ =sub_805DC38 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805DC34: .4byte sub_805DC38 thumb_func_end sub_805DC24 thumb_func_start sub_805DC38 sub_805DC38: @ 805DC38 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0805DC80 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805DC84 @ =gMapObjects adds r4, r0, r1 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805DC88 @ =gSprites adds r7, r0, r1 mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 ldr r1, _0805DC8C @ =gTasks+0x8 adds r5, r0, r1 movs r2, 0 ldrsh r6, [r5, r2] cmp r6, 0x1 beq _0805DD1A cmp r6, 0x1 bgt _0805DC90 cmp r6, 0 beq _0805DC9A b _0805DDBA .align 2, 0 _0805DC80: .4byte gPlayerAvatar _0805DC84: .4byte gMapObjects _0805DC88: .4byte gSprites _0805DC8C: .4byte gTasks+0x8 _0805DC90: cmp r6, 0x2 beq _0805DD58 cmp r6, 0x3 beq _0805DD76 b _0805DDBA _0805DC9A: bl sub_805DAF0 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] ldr r1, _0805DD54 @ =gUnknown_835B92C movs r3, 0xA ldrsh r0, [r5, r3] adds r0, r1 ldrb r0, [r0] bl sub_8063EB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectForceSetSpecialAnim movs r0, 0 mov r9, r0 strh r6, [r5, 0x2] movs r0, 0x74 strh r0, [r5, 0x4] ldrh r0, [r7, 0x22] strh r0, [r5, 0x8] ldrb r0, [r7, 0x5] lsls r0, 28 lsrs r0, 30 strh r0, [r5, 0xC] movs r1, 0x43 adds r1, r7 mov r8, r1 ldrb r0, [r1] strh r0, [r5, 0xE] ldrh r0, [r7, 0x26] adds r0, 0x20 negs r0, r0 lsls r0, 4 strh r0, [r5, 0x6] strh r6, [r7, 0x26] bl CameraObjectReset2 ldrb r0, [r4, 0x3] movs r2, 0x4 orrs r0, r2 strb r0, [r4, 0x3] ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r7, 0x5] mov r3, r9 mov r2, r8 strb r3, [r2] adds r2, r7, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0805DD1A: adds r1, r5, 0x2 adds r0, r4, 0 bl sub_805DDC8 ldrh r0, [r5, 0x4] ldrh r2, [r5, 0x6] adds r1, r0, r2 strh r1, [r5, 0x6] subs r0, 0x3 strh r0, [r5, 0x4] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bgt _0805DD3A movs r0, 0x4 strh r0, [r5, 0x4] _0805DD3A: ldrh r0, [r5, 0x6] lsls r0, 16 asrs r0, 20 strh r0, [r7, 0x22] ldrh r2, [r5, 0x8] movs r3, 0x8 ldrsh r1, [r5, r3] cmp r0, r1 blt _0805DDBA strh r2, [r7, 0x22] movs r0, 0 strh r0, [r5, 0x10] b _0805DD6E .align 2, 0 _0805DD54: .4byte gUnknown_835B92C _0805DD58: adds r1, r5, 0x2 adds r0, r4, 0 bl sub_805DDC8 ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _0805DDBA _0805DD6E: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _0805DDBA _0805DD76: movs r0, 0xA ldrsh r6, [r5, r0] adds r1, r5, 0x2 adds r0, r4, 0 bl sub_805DDC8 lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0805DDBA ldrb r1, [r4, 0x3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4, 0x3] movs r0, 0x3 ldrb r1, [r5, 0xC] ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] ldrh r1, [r5, 0xE] adds r0, r7, 0 adds r0, 0x43 strb r1, [r0] bl CameraObjectReset1 mov r0, r8 bl DestroyTask _0805DDBA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805DC38 thumb_func_start sub_805DDC8 sub_805DDC8: @ 805DDC8 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldrh r1, [r6] movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0x7 bgt _0805DDE4 adds r0, r1, 0x1 strh r0, [r6] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0805DE20 _0805DDE4: adds r0, r5, 0 bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805DE20 ldr r4, _0805DE1C @ =gUnknown_835B92C ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 adds r0, r4 ldrb r0, [r0] bl sub_8063EB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectForceSetSpecialAnim movs r0, 0 strh r0, [r6] ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 adds r0, r4 ldrb r0, [r0] b _0805DE26 .align 2, 0 _0805DE1C: .4byte gUnknown_835B92C _0805DE20: ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 _0805DE26: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805DDC8 .align 2, 0 @ Don't pad with nop.