tmc/asm/non_matching/playerUtils/ResolvePlayerAnimation.inc

269 lines
4.2 KiB
PHP

.syntax unified
push {r4, lr}
ldr r3, _08079954 @ =gPlayerState
ldr r2, [r3, #0x30]
movs r0, #8
ands r0, r2
mov ip, r3
cmp r0, #0
beq _080799E4
ldrb r0, [r3, #5]
cmp r0, #0
beq _0807995C
ldr r4, _08079958 @ =0x0000092C
b _08079AD8
.align 2, 0
_08079954: .4byte gPlayerState
_08079958: .4byte 0x0000092C
_0807995C:
mov r0, ip
adds r0, #0x3d
mov r3, ip
ldrb r1, [r3, #0x1c]
ldrb r0, [r0]
orrs r0, r1
cmp r0, #0
beq _0807996E
b _08079B14
_0807996E:
movs r0, #0x80
lsls r0, r0, #0x12
ands r0, r2
cmp r0, #0
bne _08079A1E
mov r4, ip
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079988
ldr r4, _08079984 @ =0x00000414
b _08079AD8
.align 2, 0
_08079984: .4byte 0x00000414
_08079988:
mov r0, ip
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08079A5C
mov r0, ip
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _08079A6C
mov r0, ip
ldrb r1, [r0, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
beq _080799AA
b _08079B14
_080799AA:
cmp r1, #0
beq _080799B0
b _08079AA4
_080799B0:
mov r1, ip
ldrb r0, [r1, #4]
cmp r0, #0
beq _080799BA
b _08079B14
_080799BA:
movs r0, #0x20
ands r2, r0
cmp r2, #0
beq _080799D0
ldr r0, _080799D8 @ =gArea
ldrb r0, [r0, #0x17]
cmp r0, #4
bne _080799CC
b _08079AD4
_080799CC:
cmp r0, #5
bne _080799DC
_080799D0:
movs r4, #0x80
lsls r4, r4, #3
b _08079AD8
.align 2, 0
_080799D8: .4byte gArea
_080799DC:
ldr r4, _080799E0 @ =0x000002C2
b _08079AD8
.align 2, 0
_080799E0: .4byte 0x000002C2
_080799E4:
mov r4, ip
ldrb r0, [r4, #5]
cmp r0, #0
beq _080799F2
movs r4, #0xd4
lsls r4, r4, #2
b _08079AD8
_080799F2:
mov r0, ip
adds r0, #0x3d
mov r4, ip
ldrb r1, [r4, #0x1c]
ldrb r0, [r0]
orrs r0, r1
cmp r0, #0
beq _08079A04
b _08079B14
_08079A04:
movs r0, #0x80
lsls r0, r0, #0xc
ands r0, r2
cmp r0, #0
beq _08079A14
movs r4, #0x8b
lsls r4, r4, #4
b _08079AD8
_08079A14:
movs r0, #0x80
lsls r0, r0, #0x12
ands r0, r2
cmp r0, #0
beq _08079A24
_08079A1E:
movs r4, #0x81
lsls r4, r4, #4
b _08079AD8
_08079A24:
mov r1, ip
ldrb r0, [r1, #0x1e]
cmp r0, #0
beq _08079A32
movs r4, #0xa6
lsls r4, r4, #2
b _08079AD8
_08079A32:
movs r0, #0x80
lsls r0, r0, #5
ands r0, r2
cmp r0, #0
beq _08079A44
ldr r4, _08079A40 @ =0x0000070C
b _08079AD8
.align 2, 0
_08079A40: .4byte 0x0000070C
_08079A44:
mov r4, ip
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079A52
movs r4, #0xb2
lsls r4, r4, #1
b _08079AD8
_08079A52:
mov r0, ip
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _08079A62
_08079A5C:
movs r4, #0xa0
lsls r4, r4, #2
b _08079AD8
_08079A62:
mov r0, ip
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08079A72
_08079A6C:
movs r4, #0xa3
lsls r4, r4, #2
b _08079AD8
_08079A72:
mov r0, ip
ldrb r1, [r0, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
bne _08079B14
movs r0, #0x20
ands r2, r0
cmp r2, #0
beq _08079AA0
ldr r0, _08079A98 @ =gArea
ldrb r0, [r0, #0x17]
ldr r4, _08079A9C @ =0x000002C2
cmp r0, #4
bne _08079AD8
movs r4, #0xa6
lsls r4, r4, #3
b _08079AD8
.align 2, 0
_08079A98: .4byte gArea
_08079A9C: .4byte 0x000002C2
_08079AA0:
cmp r1, #0
beq _08079AAA
_08079AA4:
movs r4, #0xb4
lsls r4, r4, #1
b _08079AD8
_08079AAA:
ldrb r0, [r3, #4]
cmp r0, #0
bne _08079B14
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
cmp r0, #0
beq _08079AD4
ldr r0, _08079ACC @ =gUnk_03000B80
adds r0, #0x63
ldrb r0, [r0]
cmp r0, #0
bne _08079B14
ldr r4, _08079AD0 @ =0x00000604
b _08079AD8
.align 2, 0
_08079ACC: .4byte gUnk_03000B80
_08079AD0: .4byte 0x00000604
_08079AD4:
movs r4, #0x80
lsls r4, r4, #1
_08079AD8:
mov r1, ip
strh r4, [r1, #8]
ldrb r0, [r1, #5]
cmp r0, #0
bne _08079B10
movs r3, #0
movs r2, #0
ldr r1, _08079B18 @ =gUnk_03000B80
_08079AE8:
ldrb r0, [r1, #0xf]
cmp r0, r3
bls _08079AF0
adds r3, r0, #0
_08079AF0:
adds r1, #0x1c
adds r2, #1
cmp r2, #3
bls _08079AE8
mov r2, ip
ldrb r0, [r2, #0xe]
cmp r0, r3
blo _08079B14
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
ldrb r3, [r2]
cmp r0, r3
bne _08079B10
ldr r0, _08079B1C @ =gPlayerEntity
bl UpdateAnimationSingleFrame
_08079B10:
ldr r0, _08079B20 @ =gPlayerState
strb r4, [r0]
_08079B14:
pop {r4, pc}
.align 2, 0
_08079B18: .4byte gUnk_03000B80
_08079B1C: .4byte gPlayerEntity
_08079B20: .4byte gPlayerState
.syntax divided