diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/trainer_see.s | 1119 |
1 files changed, 0 insertions, 1119 deletions
diff --git a/asm/trainer_see.s b/asm/trainer_see.s deleted file mode 100644 index 18585ed3a..000000000 --- a/asm/trainer_see.s +++ /dev/null @@ -1,1119 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start CheckTrainers -CheckTrainers: @ 8083FBC - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08083FEC @ =gMapObjects -_08083FC2: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _08083FF0 - ldrb r0, [r1, 0x7] - cmp r0, 0x1 - beq _08083FDC - cmp r0, 0x3 - bne _08083FF0 -_08083FDC: - adds r0, r4, 0 - bl CheckTrainer - lsls r0, 24 - cmp r0, 0 - beq _08083FF0 - movs r0, 0x1 - b _08083FFC - .align 2, 0 -_08083FEC: .4byte gMapObjects -_08083FF0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08083FC2 - movs r0, 0 -_08083FFC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CheckTrainers - - thumb_func_start CheckTrainer -CheckTrainer: @ 8084004 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl GetFieldObjectScriptPointerByFieldObjectId - adds r6, r0, 0 - bl GetTrainerFlagFromScriptPointer - cmp r0, 0 - bne _08084034 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, _08084038 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl TrainerCanApproachPlayer - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808403C -_08084034: - movs r0, 0 - b _08084052 - .align 2, 0 -_08084038: .4byte gMapObjects -_0808403C: - adds r0, r7, 0 - adds r1, r6, 0 - bl TrainerWantsBattle - subs r1, r4, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80842C8 - movs r0, 0x1 -_08084052: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckTrainer - - thumb_func_start TrainerCanApproachPlayer -TrainerCanApproachPlayer: @ 8084058 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - ldrb r0, [r7, 0x7] - mov r8, r4 - cmp r0, 0x1 - bne _080840B8 - ldr r1, _080840B0 @ =gUnknown_0839B488 - ldrb r0, [r7, 0x18] - lsls r0, 28 - lsrs r0, 26 - subs r0, 0x4 - adds r0, r1 - ldrb r1, [r7, 0x1D] - mov r2, sp - movs r3, 0 - ldrsh r2, [r2, r3] - movs r5, 0 - ldrsh r3, [r4, r5] - ldr r4, [r0] - adds r0, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r7, 0x18] - lsls r2, 28 - lsrs r2, 28 - adds r0, r7, 0 - adds r1, r6, 0 - bl CheckPathBetweenTrainerAndPlayer - lsls r0, 24 - lsrs r0, 24 - b _080840F8 - .align 2, 0 -_080840B0: .4byte gUnknown_0839B488 -_080840B4: - adds r0, r6, 0 - b _080840F8 -_080840B8: - movs r5, 0 -_080840BA: - ldr r0, _08084104 @ =gUnknown_0839B488 - lsls r4, r5, 2 - adds r4, r0 - ldrb r1, [r7, 0x1D] - mov r0, sp - movs r6, 0 - ldrsh r2, [r0, r6] - mov r0, r8 - movs r6, 0 - ldrsh r3, [r0, r6] - ldr r4, [r4] - adds r0, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl CheckPathBetweenTrainerAndPlayer - lsls r0, 24 - cmp r0, 0 - bne _080840B4 - adds r5, r4, 0 - cmp r5, 0x3 - bls _080840BA - movs r0, 0 -_080840F8: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08084104: .4byte gUnknown_0839B488 - thumb_func_end TrainerCanApproachPlayer - - thumb_func_start IsTrainerInRangeSouth -IsTrainerInRangeSouth: @ 8084108 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r3, 16 - lsrs r5, r3, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r2, 16 - asrs r2, 16 - cmp r0, r2 - bne _08084142 - lsls r0, r5, 16 - asrs r2, r0, 16 - ldrh r3, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r2, r0 - ble _08084142 - adds r1, r0, 0 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - cmp r2, r1 - bgt _08084142 - subs r0, r5, r3 - lsls r0, 24 - lsrs r0, 24 - b _08084144 -_08084142: - movs r0, 0 -_08084144: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsTrainerInRangeSouth - - thumb_func_start IsTrainerInRangeNorth -IsTrainerInRangeNorth: @ 808414C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r3, 16 - lsrs r5, r3, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r2, 16 - asrs r2, 16 - cmp r0, r2 - bne _08084186 - lsls r0, r5, 16 - asrs r2, r0, 16 - ldrh r3, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r2, r0 - bge _08084186 - adds r1, r0, 0 - lsls r0, r6, 16 - asrs r0, 16 - subs r1, r0 - cmp r2, r1 - blt _08084186 - subs r0, r3, r5 - lsls r0, 24 - lsrs r0, 24 - b _08084188 -_08084186: - movs r0, 0 -_08084188: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsTrainerInRangeNorth - - thumb_func_start IsTrainerInRangeWest -IsTrainerInRangeWest: @ 8084190 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r3, 16 - asrs r3, 16 - cmp r0, r3 - bne _080841CA - lsls r0, r5, 16 - asrs r3, r0, 16 - ldrh r2, [r4, 0x10] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080841CA - adds r1, r0, 0 - lsls r0, r6, 16 - asrs r0, 16 - subs r1, r0 - cmp r3, r1 - blt _080841CA - subs r0, r2, r5 - lsls r0, 24 - lsrs r0, 24 - b _080841CC -_080841CA: - movs r0, 0 -_080841CC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsTrainerInRangeWest - - thumb_func_start IsTrainerInRangeEast -IsTrainerInRangeEast: @ 80841D4 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r3, 16 - asrs r3, 16 - cmp r0, r3 - bne _0808420E - lsls r0, r5, 16 - asrs r3, r0, 16 - ldrh r2, [r4, 0x10] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _0808420E - adds r1, r0, 0 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - cmp r3, r1 - bgt _0808420E - subs r0, r5, r2 - lsls r0, 24 - lsrs r0, 24 - b _08084210 -_0808420E: - movs r0, 0 -_08084210: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsTrainerInRangeEast - - thumb_func_start CheckPathBetweenTrainerAndPlayer -CheckPathBetweenTrainerAndPlayer: @ 8084218 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r7, r2, 24 - cmp r1, 0 - beq _080842B2 - ldrh r1, [r6, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, 0x12] - mov r1, sp - adds r1, 0x2 - strh r0, [r1] - movs r4, 0 - mov r8, r1 - mov r5, r9 - subs r5, 0x1 - cmp r4, r5 - bgt _08084284 -_0808424C: - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - mov r3, r8 - movs r0, 0 - ldrsh r2, [r3, r0] - adds r0, r6, 0 - adds r3, r7, 0 - bl sub_8060024 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08084270 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080842B2 -_08084270: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - mov r1, sp - mov r2, r8 - bl MoveCoords - cmp r4, r5 - ble _0808424C -_08084284: - ldrb r4, [r6, 0x19] - lsls r5, r4, 28 - lsrs r5, 28 - lsrs r4, 4 - movs r0, 0 - strb r0, [r6, 0x19] - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - mov r3, r8 - movs r0, 0 - ldrsh r2, [r3, r0] - adds r0, r6, 0 - adds r3, r7, 0 - bl npc_block_way - lsls r0, 24 - lsrs r1, r0, 24 - lsls r4, 4 - orrs r5, r4 - strb r5, [r6, 0x19] - cmp r1, 0x4 - beq _080842B6 -_080842B2: - movs r0, 0 - b _080842B8 -_080842B6: - mov r0, r9 -_080842B8: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckPathBetweenTrainerAndPlayer - - thumb_func_start sub_80842C8 -sub_80842C8: @ 80842C8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, _080842F4 @ =sub_808433C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080842F8 @ =gTasks - adds r1, r0 - lsrs r0, r5, 16 - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - strh r4, [r1, 0xE] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080842F4: .4byte sub_808433C -_080842F8: .4byte gTasks - thumb_func_end sub_80842C8 - - thumb_func_start sub_80842FC -sub_80842FC: @ 80842FC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _08084334 @ =sub_808433C - adds r0, r5, 0 - bl FindTaskIdByFunc - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _08084338 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - adds r0, r4, 0 - bl _call_via_r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08084334: .4byte sub_808433C -_08084338: .4byte gTasks - thumb_func_end sub_80842FC - - thumb_func_start sub_808433C -sub_808433C: @ 808433C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _08084368 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r5, r0, 16 - movs r1, 0xC - ldrsh r0, [r4, r1] - orrs r5, r0 - ldrb r0, [r5] - lsls r0, 31 - cmp r0, 0 - bne _0808436C - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - b _08084388 - .align 2, 0 -_08084368: .4byte gTasks -_0808436C: - ldr r7, _08084390 @ =gUnknown_0839B498 -_0808436E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r7 - ldr r3, [r0] - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _0808436E -_08084388: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08084390: .4byte gUnknown_0839B498 - thumb_func_end sub_808433C - - thumb_func_start sub_8084394 -sub_8084394: @ 8084394 - movs r0, 0 - bx lr - thumb_func_end sub_8084394 - - thumb_func_start sub_8084398 -sub_8084398: @ 8084398 - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - ldr r1, _080843D8 @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - adds r0, r4, 0 - bl FieldObjectGetLocalIdAndMap - movs r0, 0 - bl FieldEffectStart - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080843D8: .4byte gUnknown_0202FF84 - thumb_func_end sub_8084398 - - thumb_func_start sub_80843DC -sub_80843DC: @ 80843DC - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - movs r0, 0 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - beq _080843F2 - movs r0, 0 - b _08084414 -_080843F2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrb r0, [r5, 0x6] - subs r0, 0x39 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08084408 - movs r0, 0x6 - strh r0, [r4, 0x8] -_08084408: - ldrb r0, [r5, 0x6] - cmp r0, 0x3F - bne _08084412 - movs r0, 0x8 - strh r0, [r4, 0x8] -_08084412: - movs r0, 0x1 -_08084414: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80843DC - - thumb_func_start sub_808441C -sub_808441C: @ 808441C - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _0808443A - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0808446E -_0808443A: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08084460 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetGoSpeed0AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] - b _0808446E -_08084460: - adds r0, r4, 0 - movs r1, 0x3E - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0808446E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808441C - - thumb_func_start sub_8084478 -sub_8084478: @ 8084478 - push {r4-r6,lr} - adds r6, r1, 0 - adds r5, r2, 0 - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08084496 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08084524 -_08084496: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl npc_set_running_behaviour_etc - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_805C774 - adds r0, r5, 0 - bl sub_805C754 - ldr r0, _0808452C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08084530 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080844EE - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08084524 -_080844EE: - bl sub_80597E8 - ldr r0, _0808452C @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084530 @ =gMapObjects - adds r4, r0 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetOppositeDirection - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08084524: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0808452C: .4byte gPlayerAvatar -_08084530: .4byte gMapObjects - thumb_func_end sub_8084478 - - thumb_func_start sub_8084534 -sub_8084534: @ 8084534 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08084570 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08084574 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08084560 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08084566 -_08084560: - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc -_08084566: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084570: .4byte gPlayerAvatar -_08084574: .4byte gMapObjects - thumb_func_end sub_8084534 - - thumb_func_start sub_8084578 -sub_8084578: @ 8084578 - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08084596 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080845A4 -_08084596: - adds r0, r4, 0 - movs r1, 0x59 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080845A4: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8084578 - - thumb_func_start sub_80845AC -sub_80845AC: @ 80845AC - push {r4,lr} - adds r4, r1, 0 - adds r0, r2, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080845C0 - movs r0, 0x3 - strh r0, [r4, 0x8] -_080845C0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80845AC - - thumb_func_start sub_80845C8 -sub_80845C8: @ 80845C8 - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080845E6 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080845F4 -_080845E6: - adds r0, r4, 0 - movs r1, 0x3E - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080845F4: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80845C8 - - thumb_func_start sub_80845FC -sub_80845FC: @ 80845FC - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r0, r4, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - beq _08084642 - ldr r2, _0808464C @ =gUnknown_0202FF84 - movs r1, 0x10 - ldrsh r0, [r4, r1] - str r0, [r2] - movs r1, 0x12 - ldrsh r0, [r4, r1] - str r0, [r2, 0x4] - ldr r3, _08084650 @ =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r2, 0x8] - movs r0, 0x2 - str r0, [r2, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r5, 0x10] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08084642: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808464C: .4byte gUnknown_0202FF84 -_08084650: .4byte gSprites - thumb_func_end sub_80845FC - - thumb_func_start sub_8084654 -sub_8084654: @ 8084654 - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - ldr r2, _080846C4 @ =gSprites - movs r1, 0x10 - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x2B - ldrb r0, [r1] - cmp r0, 0x2 - bne _080846BC - ldrb r1, [r4, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x3] - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_806084C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080846BC: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080846C4: .4byte gSprites - thumb_func_end sub_8084654 - - thumb_func_start sub_80846C8 -sub_80846C8: @ 80846C8 - push {r4,lr} - adds r4, r1, 0 - movs r0, 0x31 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080846DC - movs r0, 0x3 - strh r0, [r4, 0x8] -_080846DC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80846C8 - - thumb_func_start sub_80846E4 -sub_80846E4: @ 80846E4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08084778 @ =gTasks - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0xA - mov r1, sp - bl LoadWordFromTwoHalfwords - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08084716 - ldr r0, [sp] - bl FieldObjectClearAnim - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_08084716: - ldr r1, _0808477C @ =gUnknown_0839B4C8 - movs r2, 0x8 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r2, [sp] - ldr r3, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r3 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _08084780 - movs r0, 0x31 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08084780 - ldr r4, [sp] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl npc_set_running_behaviour_etc - ldr r4, [sp] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805C774 - adds r0, r5, 0 - bl DestroyTask - b _0808478A - .align 2, 0 -_08084778: .4byte gTasks -_0808477C: .4byte gUnknown_0839B4C8 -_08084780: - ldr r2, [sp] - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_0808478A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80846E4 - - thumb_func_start sub_8084794 -sub_8084794: @ 8084794 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080847C0 @ =sub_80846E4 - movs r1, 0 - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080847C4 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x2 - adds r1, r4, 0 - bl StoreWordInTwoHalfwords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080847C0: .4byte sub_80846E4 -_080847C4: .4byte gTasks + 0x8 - thumb_func_end sub_8084794 - - thumb_func_start sub_80847C8 -sub_80847C8: @ 80847C8 - push {lr} - ldr r0, _080847D4 @ =sub_80847D8 - bl sub_80842FC - pop {r0} - bx r0 - .align 2, 0 -_080847D4: .4byte sub_80847D8 - thumb_func_end sub_80847C8 - - thumb_func_start sub_80847D8 -sub_80847D8: @ 80847D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80847D8 - - .align 2, 0 @ Don't pad with nop. |