Tridirectional spinners

This commit is contained in:
scnorton
2017-09-15 16:08:01 -04:00
parent f6840ba7e7
commit 2e1ecdb877
3 changed files with 216 additions and 672 deletions
-672
View File
@@ -5,678 +5,6 @@
.text
thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrWest
FieldObjectCB_RandomlyLookNorthOrSouthOrWest: @ 80907D0
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, =gMapObjects
adds r0, r2
ldr r2, =sub_80907F4
bl FieldObjectStep
pop {r0}
bx r0
.pool
thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrWest
thumb_func_start sub_80907F4
sub_80907F4: @ 80907F4
push {r4,lr}
ldr r3, =gUnknown_0850D83C
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80907F4
thumb_func_start sub_8090814
sub_8090814: @ 8090814
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8090814
thumb_func_start sub_8090828
sub_8090828: @ 8090828
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionAnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl FieldObjectSetRegularAnim
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090828
thumb_func_start sub_8090854
sub_8090854: @ 8090854
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl FieldObjectExecRegularAnim
lsls r0, 24
cmp r0, 0
beq _0809088A
ldr r4, =gUnknown_0850D6EC
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetFieldObjectStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_0809088A:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090854
thumb_func_start sub_8090898
sub_8090898: @ 8090898
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
bne _080908B6
adds r0, r4, 0
bl FieldObjectIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080908BE
_080908B6:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _080908C0
_080908BE:
movs r0, 0
_080908C0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090898
thumb_func_start sub_80908C8
sub_80908C8: @ 80908C8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, =gUnknown_0850D850
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x7
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080908F8
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_080908F8:
adds r0, r4, 0
bl FieldObjectSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_80908C8
thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrEast
FieldObjectCB_RandomlyLookNorthOrSouthOrEast: @ 8090910
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, =gMapObjects
adds r0, r2
ldr r2, =sub_8090934
bl FieldObjectStep
pop {r0}
bx r0
.pool
thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrEast
thumb_func_start sub_8090934
sub_8090934: @ 8090934
push {r4,lr}
ldr r3, =gUnknown_0850D854
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090934
thumb_func_start sub_8090954
sub_8090954: @ 8090954
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8090954
thumb_func_start sub_8090968
sub_8090968: @ 8090968
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionAnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl FieldObjectSetRegularAnim
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090968
thumb_func_start sub_8090994
sub_8090994: @ 8090994
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl FieldObjectExecRegularAnim
lsls r0, 24
cmp r0, 0
beq _080909CA
ldr r4, =gUnknown_0850D6EC
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetFieldObjectStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_080909CA:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090994
thumb_func_start sub_80909D8
sub_80909D8: @ 80909D8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
bne _080909F6
adds r0, r4, 0
bl FieldObjectIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080909FE
_080909F6:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08090A00
_080909FE:
movs r0, 0
_08090A00:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80909D8
thumb_func_start sub_8090A08
sub_8090A08: @ 8090A08
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, =gUnknown_0850D868
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x8
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08090A38
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08090A38:
adds r0, r4, 0
bl FieldObjectSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090A08
thumb_func_start FieldObjectCB_RandomlyLookNorthOrEastOrWest
FieldObjectCB_RandomlyLookNorthOrEastOrWest: @ 8090A50
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, =gMapObjects
adds r0, r2
ldr r2, =sub_8090A74
bl FieldObjectStep
pop {r0}
bx r0
.pool
thumb_func_end FieldObjectCB_RandomlyLookNorthOrEastOrWest
thumb_func_start sub_8090A74
sub_8090A74: @ 8090A74
push {r4,lr}
ldr r3, =gUnknown_0850D86C
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090A74
thumb_func_start sub_8090A94
sub_8090A94: @ 8090A94
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8090A94
thumb_func_start sub_8090AA8
sub_8090AA8: @ 8090AA8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionAnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl FieldObjectSetRegularAnim
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090AA8
thumb_func_start sub_8090AD4
sub_8090AD4: @ 8090AD4
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl FieldObjectExecRegularAnim
lsls r0, 24
cmp r0, 0
beq _08090B0A
ldr r4, =gUnknown_0850D6EC
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetFieldObjectStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08090B0A:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090AD4
thumb_func_start sub_8090B18
sub_8090B18: @ 8090B18
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
bne _08090B36
adds r0, r4, 0
bl FieldObjectIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08090B3E
_08090B36:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08090B40
_08090B3E:
movs r0, 0
_08090B40:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090B18
thumb_func_start sub_8090B48
sub_8090B48: @ 8090B48
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, =gUnknown_0850D880
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x9
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08090B78
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08090B78:
adds r0, r4, 0
bl FieldObjectSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090B48
thumb_func_start FieldObjectCB_RandomlyLookSouthOrEastOrWest
FieldObjectCB_RandomlyLookSouthOrEastOrWest: @ 8090B90
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, =gMapObjects
adds r0, r2
ldr r2, =sub_8090BB4
bl FieldObjectStep
pop {r0}
bx r0
.pool
thumb_func_end FieldObjectCB_RandomlyLookSouthOrEastOrWest
thumb_func_start sub_8090BB4
sub_8090BB4: @ 8090BB4
push {r4,lr}
ldr r3, =gUnknown_0850D884
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090BB4
thumb_func_start sub_8090BD4
sub_8090BD4: @ 8090BD4
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8090BD4
thumb_func_start sub_8090BE8
sub_8090BE8: @ 8090BE8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionAnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl FieldObjectSetRegularAnim
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090BE8
thumb_func_start sub_8090C14
sub_8090C14: @ 8090C14
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl FieldObjectExecRegularAnim
lsls r0, 24
cmp r0, 0
beq _08090C4A
ldr r4, =gUnknown_0850D6EC
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetFieldObjectStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08090C4A:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090C14
thumb_func_start sub_8090C58
sub_8090C58: @ 8090C58
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
bne _08090C76
adds r0, r4, 0
bl FieldObjectIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08090C7E
_08090C76:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08090C80
_08090C7E:
movs r0, 0
_08090C80:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8090C58
thumb_func_start sub_8090C88
sub_8090C88: @ 8090C88
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, =gUnknown_0850D898
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0xA
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08090CB8
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08090CB8:
adds r0, r4, 0
bl FieldObjectSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_8090C88
thumb_func_start FieldObjectCB_LookAroundCounterclockwise
FieldObjectCB_LookAroundCounterclockwise: @ 8090CD0
push {lr}