tmc/asm/object86.s

182 lines
3.0 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Object86
Object86: @ 0x08099DB8
push {lr}
ldr r2, _08099DCC @ =gUnk_081237F8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08099DCC: .4byte gUnk_081237F8
thumb_func_start sub_08099DD0
sub_08099DD0: @ 0x08099DD0
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x38
movs r6, #0
movs r5, #1
strb r5, [r0]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
strb r6, [r4, #0xd]
movs r0, #0x46
bl GetInventoryValue
cmp r0, #0
beq _08099E04
movs r0, #4
strb r0, [r4, #0xc]
strb r6, [r4, #0x1e]
b _08099E0E
_08099E04:
strb r5, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
_08099E0E:
pop {r4, r5, r6, pc}
thumb_func_start sub_08099E10
sub_08099E10: @ 0x08099E10
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x74
bl CheckLocalFlag
cmp r0, #0
beq _08099E54
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #1
bne _08099E3E
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08099E3E
strb r0, [r5]
adds r0, r4, #0
bl sub_08099ECC
_08099E3E:
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08099E54
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl InitializeAnimation
_08099E54:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08099E58
sub_08099E58: @ 0x08099E58
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08099E88
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bne _08099E88
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0x1e]
_08099E88:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099E8C
sub_08099E8C: @ 0x08099E8C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08099EC4 @ =gLinkEntity
movs r2, #0xc
movs r3, #0xc
bl sub_080041A0
cmp r0, #0
beq _08099EC2
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08099EB2
adds r0, r4, #0
bl sub_08099ECC
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
_08099EB2:
movs r0, #0x75
bl CheckLocalFlag
cmp r0, #0
beq _08099EC2
movs r0, #7
bl sub_0805B390
_08099EC2:
pop {r4, pc}
.align 2, 0
_08099EC4: .4byte gLinkEntity
thumb_func_start nullsub_534
nullsub_534: @ 0x08099EC8
bx lr
.align 2, 0
thumb_func_start sub_08099ECC
sub_08099ECC: @ 0x08099ECC
push {r4, lr}
movs r4, #0
movs r1, #1
strb r1, [r0, #0xd]
ldr r1, _08099EF4 @ =gLinkEntity
bl CopyPosition
ldr r2, _08099EF8 @ =gLinkState
movs r0, #3
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x38
strb r4, [r0]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #8
orrs r0, r1
str r0, [r2, #0x30]
pop {r4, pc}
.align 2, 0
_08099EF4: .4byte gLinkEntity
_08099EF8: .4byte gLinkState