mirror of
https://github.com/zeldaret/tmc
synced 2026-05-24 07:11:07 -04:00
Merge pull request #444 from hatal175/objects2
Decompile various objects
This commit is contained in:
@@ -1,652 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object10
|
||||
Object10: @ 0x08084824
|
||||
push {lr}
|
||||
ldr r2, _08084838 @ =gUnk_08120560
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08084838: .4byte gUnk_08120560
|
||||
|
||||
thumb_func_start sub_0808483C
|
||||
sub_0808483C: @ 0x0808483C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrh r2, [r4, #0x2e]
|
||||
movs r1, #0x10
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r2, #8
|
||||
orrs r0, r2
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r4, #0x32]
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
strh r1, [r4, #0x32]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _080848C0 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x74
|
||||
strh r1, [r5]
|
||||
adds r0, r4, #0
|
||||
movs r1, #8
|
||||
bl InitializeAnimation
|
||||
ldr r0, _080848C4 @ =0x00004016
|
||||
ldrh r1, [r5]
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
movs r0, #0x89
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080848C0: .4byte gRoomControls
|
||||
_080848C4: .4byte 0x00004016
|
||||
|
||||
thumb_func_start sub_080848C8
|
||||
sub_080848C8: @ 0x080848C8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08084980 @ =gPlayerState
|
||||
adds r0, #0xa0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #5
|
||||
bne _08084994
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
movs r5, #1
|
||||
strb r5, [r0]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x11]
|
||||
subs r0, #0x12
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x11]
|
||||
ldr r0, _08084984 @ =gUnk_08120574
|
||||
str r0, [r4, #0x48]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r2, _08084988 @ =gPlayerEntity
|
||||
ldrh r0, [r4, #0x2e]
|
||||
ldrh r1, [r2, #0x2e]
|
||||
subs r0, r0, r1
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x78
|
||||
strh r0, [r3]
|
||||
ldrh r1, [r4, #0x32]
|
||||
ldrh r0, [r2, #0x32]
|
||||
subs r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
strh r1, [r0]
|
||||
ldrh r0, [r3]
|
||||
cmp r0, #0
|
||||
beq _0808493C
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
beq _0808493C
|
||||
ldr r0, _0808498C @ =gPlayerClones
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1]
|
||||
str r5, [r0, #0x70]
|
||||
_0808493C:
|
||||
ldr r0, _08084990 @ =0x00000315
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_08000152
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
ldr r0, _08084980 @ =gPlayerState
|
||||
ldr r0, [r0, #0x2c]
|
||||
adds r0, #0x68
|
||||
ldrb r3, [r0]
|
||||
movs r0, #1
|
||||
movs r2, #0
|
||||
bl sub_08077CF8
|
||||
str r0, [r4, #0x54]
|
||||
cmp r0, #0
|
||||
beq _0808496A
|
||||
str r4, [r0, #0x50]
|
||||
_0808496A:
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r4, #0
|
||||
bl sub_0806FDA0
|
||||
adds r0, r4, #0
|
||||
bl sub_080849D8
|
||||
b _080849D6
|
||||
.align 2, 0
|
||||
_08084980: .4byte gPlayerState
|
||||
_08084984: .4byte gUnk_08120574
|
||||
_08084988: .4byte gPlayerEntity
|
||||
_0808498C: .4byte gPlayerClones
|
||||
_08084990: .4byte 0x00000315
|
||||
_08084994:
|
||||
cmp r0, #4
|
||||
beq _080849C4
|
||||
ldr r0, _080849BC @ =0x00000315
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_08000152
|
||||
ldr r1, _080849C0 @ =gPlayerClones
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
str r1, [r0]
|
||||
bl DeleteThisEntity
|
||||
b _080849D6
|
||||
.align 2, 0
|
||||
_080849BC: .4byte 0x00000315
|
||||
_080849C0: .4byte gPlayerClones
|
||||
_080849C4:
|
||||
ldrb r2, [r4, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
movs r0, #1
|
||||
eors r1, r0
|
||||
subs r0, #5
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080849D6:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_080849D8
|
||||
sub_080849D8: @ 0x080849D8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r1, r0, #0
|
||||
cmp r1, #1
|
||||
bne _080849EE
|
||||
movs r0, #0x76
|
||||
bl SoundReq
|
||||
ldrb r0, [r4, #0xf]
|
||||
b _080849F2
|
||||
_080849EE:
|
||||
cmp r1, #0
|
||||
beq _080849F6
|
||||
_080849F2:
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
_080849F6:
|
||||
ldr r2, _08084A3C @ =gPlayerState
|
||||
adds r3, r2, #0
|
||||
adds r3, #0xa0
|
||||
ldrb r0, [r3]
|
||||
cmp r0, #5
|
||||
beq _08084A04
|
||||
b _08084AF8
|
||||
_08084A04:
|
||||
ldr r0, _08084A40 @ =gPlayerClones
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08084AF8
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x13
|
||||
beq _08084AF8
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08084AF8
|
||||
ldr r5, _08084A44 @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08084A48
|
||||
movs r0, #1
|
||||
strb r0, [r3]
|
||||
b _08084AF8
|
||||
.align 2, 0
|
||||
_08084A3C: .4byte gPlayerState
|
||||
_08084A40: .4byte gPlayerClones
|
||||
_08084A44: .4byte gPlayerEntity
|
||||
_08084A48:
|
||||
adds r0, r4, #0
|
||||
bl sub_080B1AA8
|
||||
adds r0, r4, #0
|
||||
bl sub_08084B1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r5, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrh r0, [r0]
|
||||
ldrh r5, [r5, #0x32]
|
||||
adds r0, r0, r5
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r4, #0
|
||||
bl sub_08084CAC
|
||||
adds r0, r4, #0
|
||||
bl sub_080085B0
|
||||
ldrh r2, [r4, #0x2a]
|
||||
ldr r1, _08084AB8 @ =0x00006666
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
cmp r0, r1
|
||||
beq _08084AEA
|
||||
movs r3, #0
|
||||
ldr r5, _08084ABC @ =gUnk_0812056C
|
||||
ldrh r1, [r5]
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
cmp r1, r0
|
||||
beq _08084AA6
|
||||
adds r2, r5, #0
|
||||
_08084A94:
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, #3
|
||||
bhi _08084AA6
|
||||
ldrh r1, [r2]
|
||||
ldrh r0, [r4, #0x2a]
|
||||
ands r0, r1
|
||||
cmp r1, r0
|
||||
bne _08084A94
|
||||
_08084AA6:
|
||||
cmp r3, #4
|
||||
bne _08084AC0
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #4
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
b _08084ADE
|
||||
.align 2, 0
|
||||
_08084AB8: .4byte 0x00006666
|
||||
_08084ABC: .4byte gUnk_0812056C
|
||||
_08084AC0:
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08084AE4
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08084AEA
|
||||
ldrb r2, [r4, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
movs r0, #1
|
||||
eors r1, r0
|
||||
subs r0, #5
|
||||
ands r0, r2
|
||||
_08084ADE:
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _08084B16
|
||||
_08084AE4:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
b _08084B16
|
||||
_08084AEA:
|
||||
ldr r0, _08084AF4 @ =gPlayerState
|
||||
adds r0, #0xa0
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
b _08084B16
|
||||
.align 2, 0
|
||||
_08084AF4: .4byte gPlayerState
|
||||
_08084AF8:
|
||||
bl DeleteClones
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x30
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
ldr r0, [r4, #0x54]
|
||||
bl DeleteEntity
|
||||
ldr r0, _08084B18 @ =0x0000018F
|
||||
bl SoundReq
|
||||
bl DeleteThisEntity
|
||||
_08084B16:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08084B18: .4byte 0x0000018F
|
||||
|
||||
thumb_func_start sub_08084B1C
|
||||
sub_08084B1C: @ 0x08084B1C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _08084CA4 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x10]
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r3, #0x1e]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x5b
|
||||
ldrb r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5b
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r3, #0x12]
|
||||
strh r0, [r4, #0x12]
|
||||
ldrb r0, [r3, #0x15]
|
||||
strb r0, [r4, #0x15]
|
||||
ldrb r0, [r3, #0x14]
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r0, [r3, #0x18]
|
||||
movs r1, #1
|
||||
mov r8, r1
|
||||
movs r1, #0x40
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
mov sb, r0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r3, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x19]
|
||||
movs r7, #0x3f
|
||||
adds r0, r7, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
movs r0, #0x29
|
||||
adds r0, r0, r4
|
||||
mov ip, r0
|
||||
movs r6, #7
|
||||
lsrs r1, r1, #0x1d
|
||||
ldrb r2, [r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
mov sl, r0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r3, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
adds r0, r7, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x3b
|
||||
ldrb r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3b
|
||||
strb r0, [r1]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x3f
|
||||
ldrb r0, [r0]
|
||||
adds r1, #4
|
||||
strb r0, [r1]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x3c
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3c
|
||||
strb r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x40
|
||||
strb r1, [r0]
|
||||
ldr r1, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
bl CopyPosition
|
||||
ldr r5, _08084CA8 @ =gPlayerState
|
||||
ldrb r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
beq _08084C6A
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r5, #0x2c]
|
||||
adds r0, #0x44
|
||||
ldrb r0, [r0]
|
||||
adds r1, #0x44
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r5, #0x2c]
|
||||
ldrb r0, [r0, #0x1e]
|
||||
strb r0, [r1, #0x1e]
|
||||
ldr r3, [r4, #0x54]
|
||||
ldr r0, [r5, #0x2c]
|
||||
ldrb r1, [r0, #0x18]
|
||||
lsls r1, r1, #0x19
|
||||
lsrs r1, r1, #0x1f
|
||||
mov r0, r8
|
||||
ands r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x18]
|
||||
mov r0, sb
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
ldr r3, [r4, #0x54]
|
||||
ldr r0, [r5, #0x2c]
|
||||
ldrb r1, [r0, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
adds r0, r7, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
ldr r2, [r4, #0x54]
|
||||
ldr r0, [r5, #0x2c]
|
||||
adds r0, #0x29
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1d
|
||||
lsrs r0, r0, #0x1d
|
||||
adds r2, #0x29
|
||||
ands r6, r0
|
||||
ldrb r1, [r2]
|
||||
mov r0, sl
|
||||
ands r0, r1
|
||||
orrs r0, r6
|
||||
strb r0, [r2]
|
||||
ldr r1, [r4, #0x54]
|
||||
ldrb r0, [r1, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
cmp r0, #0
|
||||
bge _08084C6A
|
||||
ldr r1, [r1, #0x48]
|
||||
ldrb r0, [r1]
|
||||
rsbs r0, r0, #0
|
||||
strb r0, [r1]
|
||||
_08084C6A:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_0806FEBC
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl sub_0806FEBC
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
adds r2, r4, #0
|
||||
bl sub_0806FEBC
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
movs r2, #0
|
||||
bl sub_0806FEBC
|
||||
ldr r0, [r4, #0x54]
|
||||
adds r1, r4, #0
|
||||
bl sub_08078E84
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08084CA4: .4byte gPlayerEntity
|
||||
_08084CA8: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_08084CAC
|
||||
sub_08084CAC: @ 0x08084CAC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r6, _08084D18 @ =gPlayerClones
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r6
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, #0x70]
|
||||
cmp r0, #0
|
||||
bne _08084D32
|
||||
ldrb r0, [r5, #0x14]
|
||||
movs r2, #6
|
||||
ands r2, r0
|
||||
lsls r2, r2, #1
|
||||
ldr r0, _08084D1C @ =gUnk_080B4468
|
||||
adds r2, r2, r0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r3, #0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r0, r1
|
||||
ldr r4, _08084D20 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r5, r7]
|
||||
movs r7, #2
|
||||
ldrsh r2, [r2, r7]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
bl sub_080B1B54
|
||||
cmp r0, #0x72
|
||||
bne _08084D24
|
||||
ldr r2, [r6]
|
||||
movs r1, #1
|
||||
ldrb r5, [r5, #0xa]
|
||||
lsls r1, r5
|
||||
ldr r0, [r2, #0x6c]
|
||||
orrs r0, r1
|
||||
b _08084D30
|
||||
.align 2, 0
|
||||
_08084D18: .4byte gPlayerClones
|
||||
_08084D1C: .4byte gUnk_080B4468
|
||||
_08084D20: .4byte gRoomControls
|
||||
_08084D24:
|
||||
ldr r2, [r6]
|
||||
movs r1, #1
|
||||
ldrb r5, [r5, #0xa]
|
||||
lsls r1, r5
|
||||
ldr r0, [r2, #0x6c]
|
||||
bics r0, r1
|
||||
_08084D30:
|
||||
str r0, [r2, #0x6c]
|
||||
_08084D32:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
@@ -1,98 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object15
|
||||
Object15: @ 0x0808601C
|
||||
push {lr}
|
||||
ldr r2, _08086030 @ =gUnk_08120648
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08086030: .4byte gUnk_08120648
|
||||
|
||||
thumb_func_start sub_08086034
|
||||
sub_08086034: @ 0x08086034
|
||||
push {lr}
|
||||
movs r3, #1
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
ldrb r2, [r0, #0x18]
|
||||
subs r1, #5
|
||||
ands r1, r2
|
||||
orrs r1, r3
|
||||
strb r1, [r0, #0x18]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x58
|
||||
ldrb r1, [r1]
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08086054
|
||||
sub_08086054: @ 0x08086054
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08086064
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_08086064:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808607C
|
||||
ldrb r2, [r4, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
movs r0, #1
|
||||
eors r1, r0
|
||||
subs r0, #5
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0808607C:
|
||||
ldrb r0, [r4, #0xe]
|
||||
lsls r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
blt _080860AA
|
||||
cmp r1, #0
|
||||
beq _08086098
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080860AA
|
||||
bl DeleteThisEntity
|
||||
b _080860AA
|
||||
_08086098:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080860AA
|
||||
bl DeleteThisEntity
|
||||
_080860AA:
|
||||
ldr r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080860BC
|
||||
ldr r0, [r1, #0x2c]
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, [r1, #0x30]
|
||||
str r0, [r4, #0x30]
|
||||
ldr r0, [r1, #0x34]
|
||||
str r0, [r4, #0x34]
|
||||
_080860BC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,119 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object17
|
||||
Object17: @ 0x080861AC
|
||||
push {lr}
|
||||
ldr r2, _080861C0 @ =gUnk_08120660
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080861C0: .4byte gUnk_08120660
|
||||
|
||||
thumb_func_start sub_080861C4
|
||||
sub_080861C4: @ 0x080861C4
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
ldr r0, _08086230 @ =gPlayerEntity
|
||||
mov ip, r0
|
||||
ldrb r1, [r0, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r3, [r4, #0x19]
|
||||
movs r2, #0x3f
|
||||
adds r0, r2, #0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
mov r0, ip
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x29
|
||||
lsrs r1, r1, #0x1d
|
||||
ldrb r3, [r6]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r6]
|
||||
mov r0, ip
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
mov r1, ip
|
||||
ldrb r0, [r1, #0x1b]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r1, [r4, #0x1b]
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
strb r2, [r4, #0x1b]
|
||||
bl Random
|
||||
ands r0, r5
|
||||
strb r0, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x11
|
||||
bl InitializeAnimation
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08086230: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08086234
|
||||
sub_08086234: @ 0x08086234
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _08086258
|
||||
ldr r0, _08086254 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0808625E
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
b _0808625E
|
||||
.align 2, 0
|
||||
_08086254: .4byte gRoomTransition
|
||||
_08086258:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0808625E:
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F3E4
|
||||
cmp r0, #0
|
||||
beq _0808626E
|
||||
bl DeleteThisEntity
|
||||
b _0808627E
|
||||
_0808626E:
|
||||
ldr r0, _08086280 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1c]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
beq _0808627E
|
||||
bl DeleteThisEntity
|
||||
_0808627E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08086280: .4byte gPlayerState
|
||||
@@ -1,208 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object1F
|
||||
Object1F: @ 0x08087690
|
||||
push {lr}
|
||||
ldr r2, _080876A4 @ =gUnk_08120A0C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080876A4: .4byte gUnk_08120A0C
|
||||
|
||||
thumb_func_start sub_080876A8
|
||||
sub_080876A8: @ 0x080876A8
|
||||
push {lr}
|
||||
mov ip, r0
|
||||
movs r0, #1
|
||||
mov r1, ip
|
||||
strb r0, [r1, #0xc]
|
||||
movs r0, #0xb0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r1, #0x20]
|
||||
ldrb r2, [r1, #0x14]
|
||||
lsls r0, r2, #2
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
mov r3, ip
|
||||
strb r0, [r3, #0x15]
|
||||
lsls r2, r2, #0x18
|
||||
cmp r2, #0
|
||||
bne _080876E2
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
lsls r1, r2, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
subs r1, #1
|
||||
movs r0, #7
|
||||
ands r1, r0
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
_080876E2:
|
||||
ldr r1, _08087760 @ =gUnk_08120A20
|
||||
mov r2, ip
|
||||
ldrb r0, [r2, #0x14]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r3, [r2, #0x2e]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrb r0, [r2, #0x14]
|
||||
adds r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r2, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
ldr r3, _08087764 @ =gUnk_08120A18
|
||||
ldrb r0, [r2, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #3]
|
||||
mov r0, ip
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r2, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #1]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldrb r2, [r2, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
mov r2, ip
|
||||
strb r0, [r2, #0x1a]
|
||||
ldrb r0, [r2, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0, #2]
|
||||
str r0, [r2, #0x6c]
|
||||
ldr r0, _08087768 @ =gPlayerEntity
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
mov r0, ip
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r2, #0x24]
|
||||
ldrb r0, [r2, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0]
|
||||
mov r0, ip
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08087760: .4byte gUnk_08120A20
|
||||
_08087764: .4byte gUnk_08120A18
|
||||
_08087768: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_0808776C
|
||||
sub_0808776C: @ 0x0808776C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x6c]
|
||||
cmp r0, #0
|
||||
beq _08087788
|
||||
subs r0, #1
|
||||
str r0, [r4, #0x6c]
|
||||
ldr r0, _08087784 @ =gPlayerState
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
b _08087798
|
||||
.align 2, 0
|
||||
_08087784: .4byte gPlayerState
|
||||
_08087788:
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement2
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #6
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
_08087798:
|
||||
cmp r0, #0
|
||||
bne _080877A0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
_080877A0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080877A4
|
||||
sub_080877A4: @ 0x080877A4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080B1B0C
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r1, r0, #0
|
||||
cmp r0, #0x25
|
||||
beq _080877D0
|
||||
cmp r0, #0x25
|
||||
bgt _080877C4
|
||||
cmp r0, #0x21
|
||||
beq _080877CA
|
||||
cmp r0, #0x24
|
||||
beq _080877D6
|
||||
b _080877E2
|
||||
_080877C4:
|
||||
cmp r1, #0x30
|
||||
beq _080877D6
|
||||
b _080877E2
|
||||
_080877CA:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
b _080877DA
|
||||
_080877D0:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xc
|
||||
b _080877DA
|
||||
_080877D6:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xb
|
||||
_080877DA:
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
b _08087804
|
||||
_080877E2:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08087804
|
||||
cmp r0, #0xf
|
||||
bne _080877F8
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x80
|
||||
bl CreateFx
|
||||
b _08087804
|
||||
_080877F8:
|
||||
ldrb r1, [r4, #0xb]
|
||||
ldrb r2, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_08087804:
|
||||
bl DeleteThisEntity
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,129 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object28
|
||||
Object28: @ 0x0808976C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080897D0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #0xb]
|
||||
strb r0, [r4, #0x1e]
|
||||
ldrb r0, [r4, #0x1b]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0x19]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #3
|
||||
bne _080897AE
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #6
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _080897BA
|
||||
_080897AE:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_080897BA:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r1, #2
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
_080897D0:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08089840
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _08089844 @ =gRoomControls
|
||||
movs r3, #0xa
|
||||
ldrsh r0, [r2, r3]
|
||||
subs r5, r1, r0
|
||||
adds r3, r5, #0
|
||||
subs r3, #0x78
|
||||
movs r6, #0x32
|
||||
ldrsh r1, [r4, r6]
|
||||
movs r6, #0xc
|
||||
ldrsh r0, [r2, r6]
|
||||
subs r1, r1, r0
|
||||
adds r2, r1, #0
|
||||
subs r2, #0x50
|
||||
adds r0, r3, #0
|
||||
cmp r0, #0
|
||||
bge _08089802
|
||||
adds r0, r5, #0
|
||||
subs r0, #0x75
|
||||
_08089802:
|
||||
asrs r3, r0, #2
|
||||
adds r0, r2, #0
|
||||
cmp r0, #0
|
||||
bge _0808980E
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x4d
|
||||
_0808980E:
|
||||
asrs r2, r0, #2
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
cmp r3, r0
|
||||
bge _0808981A
|
||||
adds r3, r0, #0
|
||||
_0808981A:
|
||||
cmp r3, #0x10
|
||||
ble _08089820
|
||||
movs r3, #0x10
|
||||
_08089820:
|
||||
cmp r2, r0
|
||||
bge _08089826
|
||||
adds r2, r0, #0
|
||||
_08089826:
|
||||
cmp r2, #0x10
|
||||
ble _0808982C
|
||||
movs r2, #0x10
|
||||
_0808982C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrh r0, [r0]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6a
|
||||
ldrh r0, [r0]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x32]
|
||||
_08089840:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08089844: .4byte gRoomControls
|
||||
@@ -1,88 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object37
|
||||
Object37: @ 0x0808BDE8
|
||||
push {lr}
|
||||
ldr r2, _0808BDFC @ =gUnk_08121480
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808BDFC: .4byte gUnk_08121480
|
||||
|
||||
thumb_func_start sub_0808BE00
|
||||
sub_0808BE00: @ 0x0808BE00
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
bl GetLayerByIndex
|
||||
adds r4, r0, #0
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F798
|
||||
lsls r0, r0, #1
|
||||
adds r0, #4
|
||||
adds r4, r4, r0
|
||||
str r4, [r5, #0x78]
|
||||
ldrh r1, [r4]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x70
|
||||
strh r1, [r0]
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808BE2C
|
||||
sub_0808BE2C: @ 0x0808BE2C
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0808BE78 @ =gSave
|
||||
ldr r1, _0808BE7C @ =0x0000024E
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0
|
||||
beq _0808BE74
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x70
|
||||
ldr r1, [r2, #0x78]
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
beq _0808BE74
|
||||
adds r0, r2, #0
|
||||
movs r1, #0x58
|
||||
movs r2, #0
|
||||
bl CreateGroundItem
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0808BE6C
|
||||
ldr r0, _0808BE80 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r1, #0x15]
|
||||
movs r0, #0x80
|
||||
strh r0, [r1, #0x24]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r1, #0x20]
|
||||
_0808BE6C:
|
||||
movs r0, #1
|
||||
strb r0, [r4]
|
||||
bl DeleteThisEntity
|
||||
_0808BE74:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808BE78: .4byte gSave
|
||||
_0808BE7C: .4byte 0x0000024E
|
||||
_0808BE80: .4byte gPlayerEntity
|
||||
@@ -1,215 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object44
|
||||
Object44: @ 0x0808E280
|
||||
push {lr}
|
||||
ldr r2, _0808E294 @ =gUnk_08121B8C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808E294: .4byte gUnk_08121B8C
|
||||
|
||||
thumb_func_start sub_0808E298
|
||||
sub_0808E298: @ 0x0808E298
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x38
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r5, #0
|
||||
movs r6, #0
|
||||
adds r0, r4, #0
|
||||
bl GetTileTypeByEntity
|
||||
adds r1, r0, #0
|
||||
movs r0, #0xd1
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
beq _0808E2DA
|
||||
cmp r1, r0
|
||||
bhi _0808E2C6
|
||||
subs r0, #1
|
||||
cmp r1, r0
|
||||
beq _0808E2D8
|
||||
b _0808E2E2
|
||||
_0808E2C6:
|
||||
ldr r0, _0808E2D4 @ =0x00000345
|
||||
cmp r1, r0
|
||||
beq _0808E2DE
|
||||
adds r0, #1
|
||||
cmp r1, r0
|
||||
beq _0808E2E6
|
||||
b _0808E2E2
|
||||
.align 2, 0
|
||||
_0808E2D4: .4byte 0x00000345
|
||||
_0808E2D8:
|
||||
movs r5, #0x10
|
||||
_0808E2DA:
|
||||
movs r6, #0x10
|
||||
b _0808E2E6
|
||||
_0808E2DE:
|
||||
movs r5, #0x10
|
||||
b _0808E2E6
|
||||
_0808E2E2:
|
||||
bl DeleteThisEntity
|
||||
_0808E2E6:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, r0, r5
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
adds r1, r2, #0
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, r0, r6
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
ldr r1, _0808E314 @ =0x00000347
|
||||
adds r0, r4, #0
|
||||
bl sub_0808E354
|
||||
adds r0, r4, #0
|
||||
bl sub_0808E318
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808E314: .4byte 0x00000347
|
||||
|
||||
thumb_func_start sub_0808E318
|
||||
sub_0808E318: @ 0x0808E318
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808E340
|
||||
ldr r1, _0808E33C @ =0x00000343
|
||||
adds r0, r4, #0
|
||||
bl sub_0808E354
|
||||
bl DeleteThisEntity
|
||||
b _0808E34E
|
||||
.align 2, 0
|
||||
_0808E33C: .4byte 0x00000343
|
||||
_0808E340:
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808E34E
|
||||
ldr r0, _0808E350 @ =0x0000018B
|
||||
bl EnqueueSFX
|
||||
_0808E34E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808E350: .4byte 0x0000018B
|
||||
|
||||
thumb_func_start sub_0808E354
|
||||
sub_0808E354: @ 0x0808E354
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
adds r6, r0, #0
|
||||
lsls r1, r1, #0x10
|
||||
mov r8, r1
|
||||
mov r0, r8
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r6, r2]
|
||||
ldr r5, _0808E410 @ =gRoomControls
|
||||
ldrh r0, [r5, #6]
|
||||
adds r0, #0x10
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r6, r3]
|
||||
ldrh r2, [r5, #8]
|
||||
adds r2, #0x10
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
movs r2, #2
|
||||
bl sub_0807B7D8
|
||||
mov r0, r8
|
||||
adds r0, #1
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r6, r2]
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r6, r3]
|
||||
ldrh r3, [r5, #8]
|
||||
adds r3, #0x10
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
movs r2, #2
|
||||
bl sub_0807B7D8
|
||||
mov r0, r8
|
||||
adds r0, #2
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r6, r2]
|
||||
ldrh r2, [r5, #6]
|
||||
adds r2, #0x10
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r6, r3]
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
movs r2, #2
|
||||
bl sub_0807B7D8
|
||||
movs r0, #3
|
||||
add r8, r0
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r6, r2]
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r6, r3]
|
||||
ldrh r2, [r5, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
movs r2, #2
|
||||
bl sub_0807B7D8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808E410: .4byte gRoomControls
|
||||
@@ -1,89 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object45
|
||||
Object45: @ 0x0808E414
|
||||
push {lr}
|
||||
ldr r2, _0808E428 @ =gUnk_08121BD8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808E428: .4byte gUnk_08121BD8
|
||||
|
||||
thumb_func_start sub_0808E42C
|
||||
sub_0808E42C: @ 0x0808E42C
|
||||
push {lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
ldrb r2, [r0, #0x11]
|
||||
subs r1, #0x11
|
||||
ands r1, r2
|
||||
movs r2, #6
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x11]
|
||||
ldrb r1, [r0, #0xa]
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808E448
|
||||
sub_0808E448: @ 0x0808E448
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x10
|
||||
bl IsItemEquipped
|
||||
cmp r0, #1
|
||||
bls _0808E45A
|
||||
bl DeleteThisEntity
|
||||
_0808E45A:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _0808E472
|
||||
cmp r0, #0x80
|
||||
bne _0808E486
|
||||
bl DeleteThisEntity
|
||||
_0808E472:
|
||||
ldrb r2, [r4, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
movs r0, #1
|
||||
eors r1, r0
|
||||
subs r0, #5
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0808E494
|
||||
_0808E486:
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #4
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #1
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x18]
|
||||
_0808E494:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808E4A2
|
||||
ldr r0, [r4, #0x34]
|
||||
ldr r1, _0808E4A4 @ =0xFFFF8000
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #0x34]
|
||||
_0808E4A2:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808E4A4: .4byte 0xFFFF8000
|
||||
@@ -1,60 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object52
|
||||
Object52: @ 0x080910A0
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080910C8
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _080910B8
|
||||
bl DeleteThisEntity
|
||||
_080910B8:
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_08078828
|
||||
_080910C8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08091100
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _08091104 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #2
|
||||
bl sub_080A7C8C
|
||||
bl DeleteThisEntity
|
||||
_08091100:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08091104: .4byte gRoomControls
|
||||
@@ -1,128 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object53
|
||||
Object53: @ 0x08091108
|
||||
push {lr}
|
||||
ldr r2, _0809111C @ =gUnk_08122280
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0809111C: .4byte gUnk_08122280
|
||||
|
||||
thumb_func_start sub_08091120
|
||||
sub_08091120: @ 0x08091120
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r3, _08091194 @ =gUnk_08122288
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #1]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0, #3]
|
||||
strh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
movs r0, #0xa8
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08004168
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08091194: .4byte gUnk_08122288
|
||||
|
||||
thumb_func_start sub_08091198
|
||||
sub_08091198: @ 0x08091198
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
bge _080911AA
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080911AA:
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #6
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
cmp r0, #0
|
||||
bne _080911E8
|
||||
ldrb r1, [r4, #0xb]
|
||||
cmp r1, #0xf
|
||||
beq _080911CE
|
||||
cmp r1, #0xf
|
||||
bgt _080911C8
|
||||
cmp r1, #0
|
||||
beq _080911E4
|
||||
b _080911DA
|
||||
_080911C8:
|
||||
cmp r1, #0xff
|
||||
bne _080911DA
|
||||
b _080911E4
|
||||
_080911CE:
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x80
|
||||
bl CreateFx
|
||||
b _080911E4
|
||||
_080911DA:
|
||||
ldrb r2, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080911E4:
|
||||
bl DeleteThisEntity
|
||||
_080911E8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,112 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object63
|
||||
Object63: @ 0x08093D70
|
||||
push {lr}
|
||||
ldr r2, _08093D84 @ =gUnk_08122944
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08093D84: .4byte gUnk_08122944
|
||||
|
||||
thumb_func_start sub_08093D88
|
||||
sub_08093D88: @ 0x08093D88
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #0x36]
|
||||
subs r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
movs r0, #0xa8
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _08093DAC
|
||||
cmp r0, #1
|
||||
beq _08093DC4
|
||||
b _08093DDE
|
||||
_08093DAC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl CreateRandomItemDrop
|
||||
cmp r0, #0
|
||||
bne _08093DBC
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
_08093DBC:
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r4, #0x20]
|
||||
str r0, [r1, #0x20]
|
||||
b _08093DDE
|
||||
_08093DC4:
|
||||
movs r0, #0
|
||||
movs r1, #0x5f
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08093DDE
|
||||
movs r0, #5
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl sub_08093E10
|
||||
_08093DDE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08093DE0
|
||||
sub_08093DE0: @ 0x08093DE0
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08093DF4
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xc]
|
||||
_08093DF4:
|
||||
ldrb r1, [r2, #0xe]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093E06
|
||||
ldr r1, [r2, #0x54]
|
||||
ldrh r0, [r1, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #0x32]
|
||||
_08093E06:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08093E08
|
||||
sub_08093E08: @ 0x08093E08
|
||||
push {lr}
|
||||
bl DeleteEntity
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08093E10
|
||||
sub_08093E10: @ 0x08093E10
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
bl CopyPosition
|
||||
str r4, [r5, #0x50]
|
||||
str r5, [r4, #0x54]
|
||||
ldr r0, [r4, #0x20]
|
||||
str r0, [r5, #0x20]
|
||||
pop {r4, r5, pc}
|
||||
@@ -1,99 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object66
|
||||
Object66: @ 0x08094084
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, [r4, #0x50]
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _0809412A
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080940CA
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #5
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_080940CA:
|
||||
ldrh r0, [r5, #0x2e]
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r5, #0x32]
|
||||
strh r0, [r4, #0x32]
|
||||
ldrb r2, [r5, #0x1b]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r3, [r4, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldrb r0, [r5, #0x19]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r4, #0x19]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x19]
|
||||
movs r0, #0x36
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r0, #0x40
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
ble _08094108
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #2
|
||||
b _0809411E
|
||||
_08094108:
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r5, r1]
|
||||
adds r0, #0x40
|
||||
lsls r2, r0, #1
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
subs r3, r1, r2
|
||||
lsls r0, r0, #2
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #2
|
||||
subs r2, r1, r0
|
||||
_0809411E:
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
b _0809412E
|
||||
_0809412A:
|
||||
bl DeleteThisEntity
|
||||
_0809412E:
|
||||
pop {r4, r5, pc}
|
||||
@@ -1,828 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object67
|
||||
Object67: @ 0x08094130
|
||||
push {lr}
|
||||
ldr r2, _08094144 @ =gUnk_081229BC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08094144: .4byte gUnk_081229BC
|
||||
|
||||
thumb_func_start sub_08094148
|
||||
sub_08094148: @ 0x08094148
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
bne _08094154
|
||||
b _08094254
|
||||
_08094154:
|
||||
cmp r0, #1
|
||||
bgt _0809415E
|
||||
cmp r0, #0
|
||||
beq _080941A8
|
||||
b _0809438A
|
||||
_0809415E:
|
||||
cmp r0, #2
|
||||
beq _08094164
|
||||
b _0809438A
|
||||
_08094164:
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _08094180
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0xb4
|
||||
lsls r0, r0, #1
|
||||
str r0, [r4, #0x78]
|
||||
ldr r0, _0809417C @ =gRoomControls
|
||||
str r4, [r0, #0x30]
|
||||
b _08094198
|
||||
.align 2, 0
|
||||
_0809417C: .4byte gRoomControls
|
||||
_08094180:
|
||||
ldr r0, [r4, #0x78]
|
||||
subs r0, #1
|
||||
str r0, [r4, #0x78]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
bne _08094198
|
||||
ldr r1, _080941A0 @ =gRoomControls
|
||||
ldr r0, _080941A4 @ =gPlayerEntity
|
||||
str r0, [r1, #0x30]
|
||||
bl DeleteThisEntity
|
||||
_08094198:
|
||||
bl sub_08078B48
|
||||
b _08094394
|
||||
.align 2, 0
|
||||
_080941A0: .4byte gRoomControls
|
||||
_080941A4: .4byte gPlayerEntity
|
||||
_080941A8:
|
||||
ldr r1, _08094228 @ =gUnk_081229D0
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #1]
|
||||
strb r0, [r4, #0x15]
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #2]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r2, [r4, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r2, [r4, #0x32]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x32]
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r2, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _080941F0
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080941F0:
|
||||
movs r0, #0x80
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08094200
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_08094200:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #3
|
||||
bhi _08094230
|
||||
bl Random
|
||||
ldr r1, _0809422C @ =0x0001FFFF
|
||||
ands r1, r0
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #0xa
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x20]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x56
|
||||
bl InitializeAnimation
|
||||
b _0809438A
|
||||
.align 2, 0
|
||||
_08094228: .4byte gUnk_081229D0
|
||||
_0809422C: .4byte 0x0001FFFF
|
||||
_08094230:
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
ldrb r1, [r4, #0x15]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x57
|
||||
bl InitializeAnimation
|
||||
b _0809438A
|
||||
_08094254:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08094272
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x67
|
||||
movs r2, #1
|
||||
movs r3, #0x80
|
||||
bl CreateObjectWithParent
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _08094272
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x54]
|
||||
_08094272:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0x80
|
||||
bne _0809427A
|
||||
b _08094380
|
||||
_0809427A:
|
||||
movs r2, #0
|
||||
movs r0, #0x4b
|
||||
strb r0, [r4, #0x1e]
|
||||
ldrb r1, [r4, #0x19]
|
||||
subs r0, #0x58
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #7
|
||||
strh r1, [r4, #0x24]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r0, [r3]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _080942E8 @ =gUnk_081229F0
|
||||
adds r3, r0, r1
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
ldrh r1, [r4, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r3, r0]
|
||||
ldrh r1, [r4, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
ldrb r0, [r3, #2]
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r3, #3]
|
||||
strb r0, [r4, #0xf]
|
||||
movs r0, #0xce
|
||||
str r0, [r4, #0x7c]
|
||||
str r2, [r4, #0x74]
|
||||
ldrb r1, [r3, #4]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080942EC
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #0xff
|
||||
lsls r0, r0, #8
|
||||
b _080942F4
|
||||
.align 2, 0
|
||||
_080942E8: .4byte gUnk_081229F0
|
||||
_080942EC:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
_080942F4:
|
||||
strh r0, [r1]
|
||||
ldrb r1, [r3, #4]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0809430A
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x86
|
||||
movs r0, #0xff
|
||||
lsls r0, r0, #8
|
||||
b _08094312
|
||||
_0809430A:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x86
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
_08094312:
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl AllocMutableHitbox
|
||||
cmp r0, #0
|
||||
beq _0809438A
|
||||
ldr r2, [r4, #0x48]
|
||||
ldr r1, _0809437C @ =gUnk_080FD2E8
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r2]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #1]
|
||||
strb r0, [r2, #1]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #2]
|
||||
strb r0, [r2, #2]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #3]
|
||||
strb r0, [r2, #3]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #4]
|
||||
strb r0, [r2, #4]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #5]
|
||||
strb r0, [r2, #5]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #6]
|
||||
strb r0, [r2, #6]
|
||||
ldr r2, [r4, #0x48]
|
||||
ldrb r0, [r1, #7]
|
||||
strb r0, [r2, #7]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
adds r1, #4
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r1, #4
|
||||
movs r0, #0x48
|
||||
strb r0, [r1]
|
||||
subs r1, #1
|
||||
movs r0, #0x7a
|
||||
strb r0, [r1]
|
||||
subs r1, #4
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
b _0809438A
|
||||
.align 2, 0
|
||||
_0809437C: .4byte gUnk_080FD2E8
|
||||
_08094380:
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0809438A:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_08094398
|
||||
_08094394:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08094398
|
||||
sub_08094398: @ 0x08094398
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _080943A8
|
||||
cmp r0, #1
|
||||
beq _080943D8
|
||||
b _08094420
|
||||
_080943A8:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #7
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
cmp r0, #0
|
||||
bne _08094420
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #3
|
||||
bhi _080943D2
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xc
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_080943D2:
|
||||
bl DeleteThisEntity
|
||||
b _08094420
|
||||
_080943D8:
|
||||
ldrb r1, [r4, #0xb]
|
||||
cmp r1, #0x80
|
||||
beq _0809440A
|
||||
ldr r0, [r4, #0x7c]
|
||||
subs r0, #1
|
||||
str r0, [r4, #0x7c]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
bne _080943F6
|
||||
movs r0, #0x96
|
||||
lsls r0, r0, #2
|
||||
str r0, [r4, #0x7c]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
_080943F6:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrh r1, [r0]
|
||||
adds r0, #4
|
||||
ldrh r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
b _08094420
|
||||
_0809440A:
|
||||
ldr r0, [r4, #0x54]
|
||||
adds r0, #0x79
|
||||
ldrb r0, [r0]
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _0809441A
|
||||
bl DeleteThisEntity
|
||||
_0809441A:
|
||||
adds r0, r4, #0
|
||||
bl sub_08094660
|
||||
_08094420:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08094424
|
||||
sub_08094424: @ 0x08094424
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
adds r3, r6, #0
|
||||
adds r3, #0x82
|
||||
movs r1, #0
|
||||
ldrsh r0, [r3, r1]
|
||||
cmp r0, #0
|
||||
bge _08094452
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #0x24
|
||||
ldrsh r2, [r6, r0]
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r2
|
||||
str r0, [r1]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r3, r2]
|
||||
rsbs r0, r0, #0
|
||||
mov r8, r0
|
||||
adds r5, r1, #0
|
||||
b _08094466
|
||||
_08094452:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x80
|
||||
movs r1, #0x24
|
||||
ldrsh r2, [r6, r1]
|
||||
ldr r1, [r0]
|
||||
subs r1, r1, r2
|
||||
str r1, [r0]
|
||||
ldrh r3, [r3]
|
||||
mov r8, r3
|
||||
adds r5, r0, #0
|
||||
_08094466:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x86
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
adds r4, r0, #0
|
||||
cmp r1, #0
|
||||
bge _0809448C
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x84
|
||||
movs r0, #0x24
|
||||
ldrsh r2, [r6, r0]
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r2
|
||||
str r0, [r1]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r4, r2]
|
||||
rsbs r7, r0, #0
|
||||
adds r3, r1, #0
|
||||
b _0809449E
|
||||
_0809448C:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x84
|
||||
movs r1, #0x24
|
||||
ldrsh r2, [r6, r1]
|
||||
ldr r1, [r0]
|
||||
subs r1, r1, r2
|
||||
str r1, [r0]
|
||||
ldrh r7, [r4]
|
||||
adds r3, r0, #0
|
||||
_0809449E:
|
||||
ldrh r2, [r6, #0x24]
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r6, r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
cmp r1, r0
|
||||
ble _080944B2
|
||||
ldr r1, _080944D0 @ =0xFFFFFF00
|
||||
adds r0, r2, r1
|
||||
strh r0, [r6, #0x24]
|
||||
_080944B2:
|
||||
ldr r0, [r6, #0x7c]
|
||||
subs r0, #1
|
||||
str r0, [r6, #0x7c]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
bne _080944D4
|
||||
movs r0, #0
|
||||
strh r0, [r5]
|
||||
strh r0, [r3]
|
||||
movs r0, #3
|
||||
strb r0, [r6, #0xc]
|
||||
movs r0, #0x78
|
||||
str r0, [r6, #0x7c]
|
||||
b _08094500
|
||||
.align 2, 0
|
||||
_080944D0: .4byte 0xFFFFFF00
|
||||
_080944D4:
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x82
|
||||
movs r2, #0
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrb r3, [r6, #0xe]
|
||||
adds r0, r6, #0
|
||||
movs r2, #0x20
|
||||
bl sub_0806FCF4
|
||||
movs r0, #0
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrb r3, [r6, #0xf]
|
||||
adds r0, r6, #0
|
||||
movs r2, #0x20
|
||||
bl sub_0806FCF4
|
||||
ldrh r1, [r5]
|
||||
ldrh r2, [r4]
|
||||
adds r0, r6, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
_08094500:
|
||||
ldr r5, [r6, #0x48]
|
||||
cmp r5, #0
|
||||
beq _08094538
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #9
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
bl __divsi3
|
||||
lsrs r0, r0, #3
|
||||
strb r0, [r5, #6]
|
||||
ldr r5, [r6, #0x48]
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl __divsi3
|
||||
lsrs r0, r0, #3
|
||||
strb r0, [r5, #7]
|
||||
ldr r1, [r6, #0x48]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x62
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldr r1, [r6, #0x48]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x63
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #1]
|
||||
_08094538:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08094540
|
||||
sub_08094540: @ 0x08094540
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r0, [r3, #0x7c]
|
||||
subs r0, #1
|
||||
str r0, [r3, #0x7c]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
bne _0809455A
|
||||
movs r0, #4
|
||||
strb r0, [r3, #0xc]
|
||||
movs r0, #2
|
||||
str r0, [r3, #0x7c]
|
||||
_0809455A:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x82
|
||||
ldrh r1, [r0]
|
||||
adds r0, #4
|
||||
ldrh r2, [r0]
|
||||
adds r0, r3, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08094570
|
||||
sub_08094570: @ 0x08094570
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x82
|
||||
ldrh r1, [r2]
|
||||
lsls r3, r1, #0x10
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
cmp r1, r0
|
||||
beq _08094590
|
||||
asrs r3, r3, #0x10
|
||||
ldr r0, _080945B0 @ =0xFFFFFF00
|
||||
cmp r3, r0
|
||||
bne _080945BA
|
||||
_08094590:
|
||||
ldr r1, [r6, #0x7c]
|
||||
cmp r1, #0
|
||||
bne _080945B4
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x7c
|
||||
strh r1, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x79
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08094622
|
||||
bl DeleteThisEntity
|
||||
b _08094622
|
||||
.align 2, 0
|
||||
_080945B0: .4byte 0xFFFFFF00
|
||||
_080945B4:
|
||||
subs r0, r1, #1
|
||||
str r0, [r6, #0x7c]
|
||||
b _08094622
|
||||
_080945BA:
|
||||
cmp r3, #0
|
||||
bge _080945CC
|
||||
subs r0, r1, #1
|
||||
strh r0, [r2]
|
||||
movs r1, #0
|
||||
ldrsh r0, [r2, r1]
|
||||
rsbs r0, r0, #0
|
||||
mov r8, r0
|
||||
b _080945D4
|
||||
_080945CC:
|
||||
adds r0, r1, #1
|
||||
strh r0, [r2]
|
||||
ldrh r2, [r2]
|
||||
mov r8, r2
|
||||
_080945D4:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x86
|
||||
ldrh r2, [r0]
|
||||
movs r3, #0
|
||||
ldrsh r1, [r0, r3]
|
||||
adds r4, r0, #0
|
||||
cmp r1, #0
|
||||
bge _080945F0
|
||||
subs r0, r2, #1
|
||||
strh r0, [r4]
|
||||
movs r1, #0
|
||||
ldrsh r0, [r4, r1]
|
||||
rsbs r7, r0, #0
|
||||
b _080945F6
|
||||
_080945F0:
|
||||
adds r0, r2, #1
|
||||
strh r0, [r4]
|
||||
ldrh r7, [r4]
|
||||
_080945F6:
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x82
|
||||
movs r3, #0
|
||||
ldrsh r1, [r5, r3]
|
||||
ldrb r3, [r6, #0xe]
|
||||
adds r0, r6, #0
|
||||
movs r2, #0x20
|
||||
bl sub_0806FCF4
|
||||
movs r0, #0
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrb r3, [r6, #0xf]
|
||||
adds r0, r6, #0
|
||||
movs r2, #0x20
|
||||
bl sub_0806FCF4
|
||||
ldrh r1, [r5]
|
||||
ldrh r2, [r4]
|
||||
adds r0, r6, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
_08094622:
|
||||
ldr r5, [r6, #0x48]
|
||||
cmp r5, #0
|
||||
beq _0809465A
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #9
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
bl __divsi3
|
||||
lsrs r0, r0, #3
|
||||
strb r0, [r5, #6]
|
||||
ldr r5, [r6, #0x48]
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl __divsi3
|
||||
lsrs r0, r0, #3
|
||||
strb r0, [r5, #7]
|
||||
ldr r1, [r6, #0x48]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x62
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldr r1, [r6, #0x48]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x63
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #1]
|
||||
_0809465A:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_08094660
|
||||
sub_08094660: @ 0x08094660
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r6, r0, #0
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x62
|
||||
movs r7, #0
|
||||
ldrsb r7, [r0, r7]
|
||||
cmp r7, #0
|
||||
bge _08094678
|
||||
rsbs r7, r7, #0
|
||||
_08094678:
|
||||
lsls r7, r7, #1
|
||||
adds r0, r7, #0
|
||||
cmp r7, #0
|
||||
bge _08094682
|
||||
adds r0, #0xf
|
||||
_08094682:
|
||||
asrs r1, r0, #4
|
||||
ldr r0, [r6, #0x74]
|
||||
cmp r0, r1
|
||||
bhs _08094700
|
||||
str r1, [r6, #0x74]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
subs r0, r0, r7
|
||||
adds r4, r0, #0
|
||||
subs r4, #0x40
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
subs r0, r0, r7
|
||||
adds r5, r0, #0
|
||||
subs r5, #0x40
|
||||
movs r0, #0x10
|
||||
mov sb, r0
|
||||
str r0, [r6, #0x78]
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
str r1, [r6, #0x7c]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_08094708
|
||||
mov r0, r8
|
||||
str r0, [r6, #0x78]
|
||||
mov r1, sb
|
||||
str r1, [r6, #0x7c]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_08094708
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
adds r0, r0, r7
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x30
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
adds r0, r0, r7
|
||||
adds r5, r0, #0
|
||||
adds r5, #0x30
|
||||
movs r7, #0x10
|
||||
rsbs r7, r7, #0
|
||||
str r7, [r6, #0x78]
|
||||
mov r0, r8
|
||||
str r0, [r6, #0x7c]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_08094708
|
||||
mov r1, r8
|
||||
str r1, [r6, #0x78]
|
||||
str r7, [r6, #0x7c]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_08094708
|
||||
_08094700:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_08094708
|
||||
sub_08094708: @ 0x08094708
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #8
|
||||
adds r7, r0, #0
|
||||
adds r6, r1, #0
|
||||
adds r5, r2, #0
|
||||
ldr r0, [r7, #0x74]
|
||||
lsls r0, r0, #1
|
||||
adds r4, r0, #0
|
||||
adds r4, #8
|
||||
cmp r4, #0
|
||||
beq _08094752
|
||||
ldr r3, _08094758 @ =gRoomControls
|
||||
movs r2, #0x3f
|
||||
_08094722:
|
||||
ldrh r0, [r3, #6]
|
||||
subs r0, r6, r0
|
||||
lsrs r0, r0, #4
|
||||
ands r0, r2
|
||||
ldrh r1, [r3, #8]
|
||||
subs r1, r5, r1
|
||||
lsrs r1, r1, #4
|
||||
ands r1, r2
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #2
|
||||
str r2, [sp]
|
||||
str r3, [sp, #4]
|
||||
bl sub_0807BA8C
|
||||
ldr r0, [r7, #0x78]
|
||||
adds r6, r6, r0
|
||||
ldr r0, [r7, #0x7c]
|
||||
adds r5, r5, r0
|
||||
subs r4, #1
|
||||
ldr r2, [sp]
|
||||
ldr r3, [sp, #4]
|
||||
cmp r4, #0
|
||||
bne _08094722
|
||||
_08094752:
|
||||
add sp, #8
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08094758: .4byte gRoomControls
|
||||
@@ -1,20 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start Object75
|
||||
Object75: @ 0x0808C934
|
||||
push {lr}
|
||||
ldr r2, _0808C948 @ =gUnk_08121670
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808C948: .4byte gUnk_08121670
|
||||
@@ -1,21 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object76
|
||||
Object76: @ 0x0808C94C
|
||||
push {lr}
|
||||
ldr r2, _0808C960 @ =gUnk_08121678
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808C960: .4byte gUnk_08121678
|
||||
@@ -1,256 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object79
|
||||
Object79: @ 0x08097F84
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08097FAC @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08097F98
|
||||
bl DeleteThisEntity
|
||||
_08097F98:
|
||||
ldr r0, _08097FB0 @ =gUnk_08123410
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08097FAC: .4byte gPlayerState
|
||||
_08097FB0: .4byte gUnk_08123410
|
||||
|
||||
thumb_func_start sub_08097FB4
|
||||
sub_08097FB4: @ 0x08097FB4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0xc]
|
||||
movs r2, #0
|
||||
strh r1, [r4, #0x24]
|
||||
str r1, [r4, #0x6c]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #0x90
|
||||
lsls r0, r0, #5
|
||||
strh r0, [r1]
|
||||
strb r2, [r4, #0xe]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r1, _08098014 @ =gUnk_0812341C
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
str r0, [r4, #0x74]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08098018
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
movs r0, #0x40
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl LoadSwapGFX
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _08098032
|
||||
.align 2, 0
|
||||
_08098014: .4byte gUnk_0812341C
|
||||
_08098018:
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldr r2, [r4, #0x50]
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #0xd
|
||||
muls r0, r1, r0
|
||||
ldrb r2, [r2, #0x1e]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r4, #0x1e]
|
||||
_08098032:
|
||||
adds r0, r4, #0
|
||||
bl sub_08098130
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0809803C
|
||||
sub_0809803C: @ 0x0809803C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r5, [r4, #0xa]
|
||||
cmp r5, #0
|
||||
bne _08098070
|
||||
bl UpdateAnimationSingleFrame
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08098082
|
||||
ldr r0, _0809806C @ =gPlayerEntity
|
||||
strb r5, [r0, #0xf]
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
movs r0, #0xbc
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _08098082
|
||||
.align 2, 0
|
||||
_0809806C: .4byte gPlayerEntity
|
||||
_08098070:
|
||||
ldr r2, [r4, #0x50]
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #0xd
|
||||
muls r0, r1, r0
|
||||
ldrb r1, [r2, #0x1e]
|
||||
adds r0, r0, r1
|
||||
strb r0, [r4, #0x1e]
|
||||
ldrb r0, [r2, #0xc]
|
||||
strb r0, [r4, #0xc]
|
||||
_08098082:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08098084
|
||||
sub_08098084: @ 0x08098084
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, [r4, #0x6c]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #0xd
|
||||
cmp r1, r0
|
||||
bls _080980A8
|
||||
ldr r0, _080980A4 @ =gPlayerState
|
||||
ldr r1, [r0, #0x30]
|
||||
movs r2, #0x80
|
||||
orrs r1, r2
|
||||
str r1, [r0, #0x30]
|
||||
bl DeleteThisEntity
|
||||
b _0809812E
|
||||
.align 2, 0
|
||||
_080980A4: .4byte gPlayerState
|
||||
_080980A8:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _080980D8
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x7e
|
||||
ldrh r0, [r2]
|
||||
subs r0, #1
|
||||
strh r0, [r2]
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080980D4 @ =0xFFFF0000
|
||||
cmp r0, r1
|
||||
bne _080980E6
|
||||
movs r0, #0x40
|
||||
strh r0, [r2]
|
||||
movs r0, #0xbc
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _080980E6
|
||||
.align 2, 0
|
||||
_080980D4: .4byte 0xFFFF0000
|
||||
_080980D8:
|
||||
ldr r2, [r4, #0x50]
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #0xd
|
||||
muls r0, r1, r0
|
||||
ldrb r2, [r2, #0x1e]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r4, #0x1e]
|
||||
_080980E6:
|
||||
ldr r0, [r4, #0x6c]
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #0x6c]
|
||||
ldr r0, [r4, #0x70]
|
||||
ldr r1, [r4, #0x74]
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #0x70]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x72
|
||||
ldrh r1, [r2]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r0, [r4, #0x74]
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #0x74]
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xff
|
||||
bne _08098128
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r4, #0xe]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r4, #0xe]
|
||||
_08098128:
|
||||
adds r0, r4, #0
|
||||
bl sub_08098130
|
||||
_0809812E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08098130
|
||||
sub_08098130: @ 0x08098130
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08098160 @ =gPlayerEntity
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x72
|
||||
ldrh r0, [r0]
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _08098164 @ =0xFFEC0000
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r4, #0x6c]
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08098160: .4byte gPlayerEntity
|
||||
_08098164: .4byte 0xFFEC0000
|
||||
@@ -1,84 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object81
|
||||
Object81: @ 0x08098C68
|
||||
push {lr}
|
||||
ldr r2, _08098C7C @ =gUnk_08123674
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08098C7C: .4byte gUnk_08123674
|
||||
|
||||
thumb_func_start sub_08098C80
|
||||
sub_08098C80: @ 0x08098C80
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r5, #1
|
||||
strb r5, [r4, #0xc]
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _08098CC8 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r6, #0x32
|
||||
ldrsh r0, [r4, r6]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strh r1, [r0]
|
||||
ldr r0, _08098CCC @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08098CD0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
b _08098CD6
|
||||
.align 2, 0
|
||||
_08098CC8: .4byte gRoomControls
|
||||
_08098CCC: .4byte gPlayerState
|
||||
_08098CD0:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r5, [r0]
|
||||
_08098CD6:
|
||||
adds r0, r4, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
ldrh r1, [r0]
|
||||
subs r1, #0x40
|
||||
movs r0, #0x47
|
||||
movs r2, #1
|
||||
bl sub_08000148
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_124
|
||||
nullsub_124: @ 0x08098CF0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -1,300 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object9
|
||||
Object9: @ 0x0808386C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080838C8 @ =gPlayerState
|
||||
adds r0, #0x27
|
||||
ldrb r1, [r0]
|
||||
rsbs r0, r1, #0
|
||||
orrs r0, r1
|
||||
lsrs r2, r0, #0x1f
|
||||
ldr r0, _080838CC @ =gFuseInfo
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bgt _08083894
|
||||
cmp r0, #0
|
||||
blt _08083894
|
||||
ldr r0, _080838D0 @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080838AC
|
||||
_08083894:
|
||||
ldr r0, _080838D4 @ =gUnk_03003DF0
|
||||
ldr r0, [r0, #4]
|
||||
ldrb r0, [r0, #3]
|
||||
cmp r0, #0x32
|
||||
bne _080838AA
|
||||
movs r0, #0x32
|
||||
bl CheckKinstoneFused
|
||||
movs r2, #0
|
||||
cmp r0, #0
|
||||
beq _080838AC
|
||||
_080838AA:
|
||||
movs r2, #1
|
||||
_080838AC:
|
||||
cmp r2, #0
|
||||
beq _080838B6
|
||||
adds r0, r4, #0
|
||||
bl sub_080838DC
|
||||
_080838B6:
|
||||
ldr r0, _080838D8 @ =gUnk_0811F754
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080838C8: .4byte gPlayerState
|
||||
_080838CC: .4byte gFuseInfo
|
||||
_080838D0: .4byte gMessage
|
||||
_080838D4: .4byte gUnk_03003DF0
|
||||
_080838D8: .4byte gUnk_0811F754
|
||||
|
||||
thumb_func_start sub_080838DC
|
||||
sub_080838DC: @ 0x080838DC
|
||||
ldrb r2, [r0, #0x18]
|
||||
movs r1, #4
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x18]
|
||||
ldrb r2, [r0, #0x1b]
|
||||
movs r3, #0x3f
|
||||
adds r1, r3, #0
|
||||
ands r1, r2
|
||||
movs r2, #0x40
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x1b]
|
||||
ldrb r1, [r0, #0x19]
|
||||
ands r3, r1
|
||||
strb r3, [r0, #0x19]
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
strb r1, [r3]
|
||||
movs r2, #0
|
||||
movs r1, #4
|
||||
strb r1, [r0, #0xe]
|
||||
str r2, [r0, #0x54]
|
||||
strb r2, [r0, #0xc]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_08083914
|
||||
sub_08083914: @ 0x08083914
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _08083942
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #1
|
||||
bl LoadSwapGFX
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
subs r1, #0x10
|
||||
strh r1, [r0]
|
||||
ldr r1, _08083958 @ =0x01027820
|
||||
movs r0, #1
|
||||
bl sub_080ADDD8
|
||||
adds r0, r4, #0
|
||||
bl sub_080838DC
|
||||
_08083942:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.ifdef EU
|
||||
_08083958: .4byte 0x010277E0
|
||||
.else
|
||||
_08083958: .4byte 0x01027820
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808395C
|
||||
sub_0808395C: @ 0x0808395C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0808396C
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
b _08083992
|
||||
_0808396C:
|
||||
ldr r3, _08083994 @ =gUnk_03003DF0
|
||||
ldr r0, [r3, #4]
|
||||
ldr r1, [r0, #8]
|
||||
cmp r1, #0
|
||||
beq _08083992
|
||||
ldrb r0, [r0, #3]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x63
|
||||
bhi _08083992
|
||||
str r1, [r2, #0x54]
|
||||
ldrb r0, [r3, #3]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x39
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
bl sub_08083A40
|
||||
_08083992:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08083994: .4byte gUnk_03003DF0
|
||||
|
||||
thumb_func_start sub_08083998
|
||||
sub_08083998: @ 0x08083998
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
beq _080839C8
|
||||
ldr r0, _080839C4 @ =gUnk_03003DF0
|
||||
ldr r2, [r0, #4]
|
||||
ldrb r0, [r2, #3]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x63
|
||||
bhi _080839BA
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r2, #8]
|
||||
cmp r1, r0
|
||||
beq _080839C8
|
||||
_080839BA:
|
||||
adds r0, r4, #0
|
||||
bl sub_080838DC
|
||||
b _08083A32
|
||||
.align 2, 0
|
||||
_080839C4: .4byte gUnk_03003DF0
|
||||
_080839C8:
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r1, #0x2c]
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, [r1, #0x30]
|
||||
str r0, [r4, #0x30]
|
||||
ldr r0, [r1, #0x34]
|
||||
str r0, [r4, #0x34]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5a
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #1
|
||||
bne _08083A2C
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _080839F8
|
||||
ldr r0, _080839F4 @ =gUnk_03003DF0
|
||||
ldr r0, [r0, #4]
|
||||
ldrb r0, [r0, #3]
|
||||
b _080839FA
|
||||
.align 2, 0
|
||||
_080839F4: .4byte gUnk_03003DF0
|
||||
_080839F8:
|
||||
ldrb r0, [r4, #0xb]
|
||||
_080839FA:
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08083A34 @ =gUnk_080C9CBC
|
||||
adds r0, r0, r1
|
||||
ldrb r2, [r0, #6]
|
||||
movs r1, #1
|
||||
ands r1, r2
|
||||
ldrb r3, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldr r0, _08083A38 @ =gUnk_0811F744
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
ldr r1, [r2]
|
||||
lsrs r2, r1, #0x1f
|
||||
ldr r0, _08083A3C @ =0x00FFFFFF
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
adds r0, #1
|
||||
orrs r1, r0
|
||||
movs r0, #0
|
||||
bl sub_080ADDD8
|
||||
_08083A2C:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_08083A32:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08083A34: .4byte gUnk_080C9CBC
|
||||
_08083A38: .4byte gUnk_0811F744
|
||||
_08083A3C: .4byte 0x00FFFFFF
|
||||
|
||||
thumb_func_start sub_08083A40
|
||||
sub_08083A40: @ 0x08083A40
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, [r4, #0x54]
|
||||
ldr r1, _08083A70 @ =gPlayerEntity
|
||||
movs r3, #0x2e
|
||||
ldrsh r2, [r0, r3]
|
||||
movs r3, #0x2e
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r2, r0
|
||||
ble _08083A74
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x62
|
||||
movs r0, #8
|
||||
b _08083A7C
|
||||
.align 2, 0
|
||||
_08083A70: .4byte gPlayerEntity
|
||||
_08083A74:
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x62
|
||||
movs r0, #0xf8
|
||||
_08083A7C:
|
||||
strb r0, [r2]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x63
|
||||
movs r0, #0xee
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08083998
|
||||
pop {r4, pc}
|
||||
@@ -1,76 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object9B
|
||||
Object9B: @ 0x0809E7A8
|
||||
push {lr}
|
||||
ldr r2, _0809E7BC @ =gUnk_081242D0
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0809E7BC: .4byte gUnk_081242D0
|
||||
|
||||
thumb_func_start sub_0809E7C0
|
||||
sub_0809E7C0: @ 0x0809E7C0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0xff
|
||||
beq _0809E7D4
|
||||
adds r0, r4, #0
|
||||
bl sub_0809E7FC
|
||||
_0809E7D4:
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0809E7E0
|
||||
sub_0809E7E0: @ 0x0809E7E0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r4, #0x5a
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0809E7F8
|
||||
bl DeleteThisEntity
|
||||
_0809E7F8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0809E7FC
|
||||
sub_0809E7FC: @ 0x0809E7FC
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r3, [r1, #0xb]
|
||||
lsls r3, r3, #1
|
||||
ldr r0, _0809E820 @ =gUnk_081242D8
|
||||
adds r3, r3, r0
|
||||
ldr r0, [r1, #0x50]
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
bl PositionRelative
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0809E820: .4byte gUnk_081242D8
|
||||
@@ -1,34 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectA7
|
||||
ObjectA7: @ 0x0809F9AC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0809F9D2
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #9
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_0809F9D2:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,42 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ObjectB6
|
||||
ObjectB6: @ 0x080A0E54
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r0, [r0, #0xd]
|
||||
cmp r0, #3
|
||||
bls _080A0E64
|
||||
bl DeleteThisEntity
|
||||
_080A0E64:
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080A0E76
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
_080A0E76:
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r3, [r4, #0xa]
|
||||
adds r1, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_0806FA90
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x63
|
||||
ldrb r0, [r2]
|
||||
ldrb r1, [r4, #0xa]
|
||||
subs r0, r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,54 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0809E9A0
|
||||
sub_0809E9A0: @ 0x0809E9A0
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _0809E9B0 @ =gPlayerEntity
|
||||
ldrb r2, [r5, #0xc]
|
||||
cmp r2, #6
|
||||
beq _0809E9B4
|
||||
movs r0, #0
|
||||
b _0809E9F0
|
||||
.align 2, 0
|
||||
_0809E9B0: .4byte gPlayerEntity
|
||||
_0809E9B4:
|
||||
ldrb r0, [r5, #0x14]
|
||||
ands r2, r0
|
||||
lsls r2, r2, #1
|
||||
ldr r0, _0809E9F4 @ =gUnk_080B4468
|
||||
adds r2, r2, r0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r3, #0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r0, r1
|
||||
ldr r4, _0809E9F8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r6, #0x32
|
||||
ldrsh r1, [r5, r6]
|
||||
movs r5, #2
|
||||
ldrsh r2, [r2, r5]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #1
|
||||
bl sub_080B1AE0
|
||||
_0809E9F0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0809E9F4: .4byte gUnk_080B4468
|
||||
_0809E9F8: .4byte gRoomControls
|
||||
@@ -42176,27 +42176,6 @@
|
||||
"size": 55,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object9/gUnk_0811F744_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1175180
|
||||
},
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "object9/gUnk_0811F744_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1177412,
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_ChestSpawner_0.bin",
|
||||
"start": 1177784,
|
||||
@@ -42665,16 +42644,6 @@
|
||||
"size": 56,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object10/gUnk_0812056C.bin",
|
||||
"start": 1181036,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object10/gUnk_08120574.bin",
|
||||
"start": 1181044,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Railtrack_0.bin",
|
||||
"start": 1181156,
|
||||
@@ -42875,16 +42844,6 @@
|
||||
"size": 44,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object1F/gUnk_08120A18.bin",
|
||||
"start": 1182232,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object1F/gUnk_08120A20.bin",
|
||||
"start": 1182240,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_FigurineDevice_0.bin",
|
||||
"start": 1182440,
|
||||
@@ -43557,11 +43516,6 @@
|
||||
"start": 1188444,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object53/gUnk_08122288.bin",
|
||||
"start": 1188488,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_PullableLever_0.bin",
|
||||
"start": 1188548,
|
||||
@@ -44010,16 +43964,6 @@
|
||||
"size": 28,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object67/gUnk_081229D0.bin",
|
||||
"start": 1190352,
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"path": "object67/gUnk_081229F0.bin",
|
||||
"start": 1190384,
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Object6A_10_0.bin",
|
||||
"start": 1190732,
|
||||
@@ -44550,11 +44494,6 @@
|
||||
"size": 40,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object79/gUnk_0812341C.bin",
|
||||
"start": 1192988,
|
||||
"size": 6
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_PushableLever_0.bin",
|
||||
"start": 1193140,
|
||||
@@ -44845,16 +44784,6 @@
|
||||
"size": 40,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object9B/gUnk_081242D8.bin",
|
||||
"start": 1196760,
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "treeHidingPortal/gUnk_08124364.bin",
|
||||
"start": 1196900,
|
||||
"size": 80
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Fan_0.bin",
|
||||
"start": 1197044,
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120560:: @ 08120560
|
||||
.4byte sub_0808483C
|
||||
.4byte sub_080848C8
|
||||
.4byte sub_080849D8
|
||||
|
||||
gUnk_0812056C:: @ 0812056C
|
||||
.incbin "object10/gUnk_0812056C.bin"
|
||||
|
||||
gUnk_08120574:: @ 08120574
|
||||
.incbin "object10/gUnk_08120574.bin"
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120648:: @ 08120648
|
||||
.4byte sub_08086034
|
||||
.4byte sub_08086054
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120660:: @ 08120660
|
||||
.4byte sub_080861C4
|
||||
.4byte sub_08086234
|
||||
@@ -1,16 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120A0C:: @ 08120A0C
|
||||
.4byte sub_080876A8
|
||||
.4byte sub_0808776C
|
||||
.4byte sub_080877A4
|
||||
|
||||
gUnk_08120A18:: @ 08120A18
|
||||
.incbin "object1F/gUnk_08120A18.bin"
|
||||
|
||||
gUnk_08120A20:: @ 08120A20
|
||||
.incbin "object1F/gUnk_08120A20.bin"
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121480:: @ 08121480
|
||||
.4byte sub_0808BE00
|
||||
.4byte sub_0808BE2C
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121B8C:: @ 08121B8C
|
||||
.4byte sub_0808E298
|
||||
.4byte sub_0808E318
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121BD8:: @ 08121BD8
|
||||
.4byte sub_0808E42C
|
||||
.4byte sub_0808E448
|
||||
@@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122280:: @ 08122280
|
||||
.4byte sub_08091120
|
||||
.4byte sub_08091198
|
||||
|
||||
gUnk_08122288:: @ 08122288
|
||||
.incbin "object53/gUnk_08122288.bin"
|
||||
@@ -1,10 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122944:: @ 08122944
|
||||
.4byte sub_08093D88
|
||||
.4byte sub_08093DE0
|
||||
.4byte sub_08093E08
|
||||
@@ -1,18 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081229BC:: @ 081229BC
|
||||
.4byte sub_08094148
|
||||
.4byte sub_08094398
|
||||
.4byte sub_08094424
|
||||
.4byte sub_08094540
|
||||
.4byte sub_08094570
|
||||
|
||||
gUnk_081229D0:: @ 081229D0
|
||||
.incbin "object67/gUnk_081229D0.bin"
|
||||
|
||||
gUnk_081229F0:: @ 081229F0
|
||||
.incbin "object67/gUnk_081229F0.bin"
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121670:: @ 08121670
|
||||
.4byte sub_0808C964
|
||||
.4byte sub_0808CA10
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121678:: @ 08121678
|
||||
.4byte sub_0808C964
|
||||
.4byte sub_0808CA10
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08123410:: @ 08123410
|
||||
.4byte sub_08097FB4
|
||||
.4byte sub_0809803C
|
||||
.4byte sub_08098084
|
||||
|
||||
gUnk_0812341C:: @ 0812341C
|
||||
.incbin "object79/gUnk_0812341C.bin"
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08123674:: @ 08123674
|
||||
.4byte sub_08098C80
|
||||
.4byte nullsub_124
|
||||
@@ -1,18 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811F744:: @ 0811F744
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "object9/gUnk_0811F744_EU.bin"
|
||||
.else
|
||||
.incbin "object9/gUnk_0811F744_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_0811F754:: @ 0811F754
|
||||
.4byte sub_08083914
|
||||
.4byte sub_0808395C
|
||||
.4byte sub_08083998
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
|
||||
gUnk_081242D0:: @ 081242D0
|
||||
.4byte sub_0809E7C0
|
||||
.4byte sub_0809E7E0
|
||||
|
||||
gUnk_081242D8:: @ 081242D8
|
||||
.incbin "object9B/gUnk_081242D8.bin"
|
||||
@@ -4,12 +4,7 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08124354:: @ 08124354
|
||||
.4byte sub_0809E83C
|
||||
.4byte sub_0809E86C
|
||||
.4byte sub_0809E8BC
|
||||
.4byte sub_0809E8EC
|
||||
|
||||
gUnk_08124364:: @ 08124364
|
||||
.incbin "treeHidingPortal/gUnk_08124364.bin"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -255,4 +255,5 @@ extern void sub_080ADD70(void);
|
||||
extern bool32 sub_080AE4CC(Entity*, u32, u32, u32);
|
||||
extern void sub_080AE58C(Entity*, u32, u32);
|
||||
extern void sub_080AF284(void);
|
||||
extern bool32 sub_080B1B54(u32);
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -46,7 +46,7 @@ typedef enum {
|
||||
OBJECT_D,
|
||||
OBJECT_E,
|
||||
SPECIAL_FX,
|
||||
OBJECT_10,
|
||||
PLAYER_CLONE,
|
||||
OBJECT_11,
|
||||
OBJECT_12,
|
||||
RAILTRACK,
|
||||
@@ -242,7 +242,7 @@ void ChestSpawner();
|
||||
void ObjectD();
|
||||
void ObjectE();
|
||||
void SpecialFx();
|
||||
void Object10();
|
||||
void PlayerClone();
|
||||
void Object11();
|
||||
void Object12();
|
||||
void Railtrack();
|
||||
|
||||
@@ -629,21 +629,21 @@ SECTIONS {
|
||||
src/object/ezloCap.o(.text);
|
||||
src/object/blockPushed.o(.text);
|
||||
src/object/lockedDoor.o(.text);
|
||||
asm/object/object9.o(.text);
|
||||
src/object/object9.o(.text);
|
||||
src/object/objectA.o(.text);
|
||||
src/object/objectB.o(.text);
|
||||
src/object/chestSpawner.o(.text);
|
||||
src/object/objectD.o(.text);
|
||||
src/object/objectE.o(.text);
|
||||
src/object/specialFx.o(.text);
|
||||
asm/object/object10.o(.text);
|
||||
src/object/playerClone.o(.text);
|
||||
src/object/object11.o(.text);
|
||||
src/object/object12.o(.text);
|
||||
src/object/railtrack.o(.text);
|
||||
src/object/lilypadLarge.o(.text);
|
||||
asm/object/object15.o(.text);
|
||||
src/object/object15.o(.text);
|
||||
src/object/floatingPlatform.o(.text);
|
||||
asm/object/object17.o(.text);
|
||||
src/object/object17.o(.text);
|
||||
asm/object/evilSpirit.o(.text);
|
||||
src/object/houseDoorExterior.o(.text);
|
||||
src/object/rupee.o(.text);
|
||||
@@ -651,7 +651,7 @@ SECTIONS {
|
||||
src/object/object1C.o(.text);
|
||||
src/object/object1D.o(.text);
|
||||
src/object/object1E.o(.text);
|
||||
asm/object/object1F.o(.text);
|
||||
src/object/object1F.o(.text);
|
||||
src/object/object20.o(.text);
|
||||
src/object/object21.o(.text);
|
||||
src/object/figurineDevice.o(.text);
|
||||
@@ -660,7 +660,7 @@ SECTIONS {
|
||||
src/object/bigBarrel.o(.text);
|
||||
src/object/barrelInside.o(.text);
|
||||
src/object/pushableStatue.o(.text);
|
||||
asm/object/object28.o(.text);
|
||||
src/object/object28.o(.text);
|
||||
src/object/ambientClouds.o(.text);
|
||||
src/object/object2A.o(.text);
|
||||
src/object/object2B.o(.text);
|
||||
@@ -675,13 +675,13 @@ SECTIONS {
|
||||
src/object/warpPoint.o(.text);
|
||||
src/object/object35.o(.text);
|
||||
src/object/object36.o(.text);
|
||||
asm/object/object37.o(.text);
|
||||
src/object/object37.o(.text);
|
||||
src/object/jarPortal.o(.text);
|
||||
src/object/bossDoor.o(.text);
|
||||
src/object/object3A.o(.text);
|
||||
src/object/macroMushroomStalks.o(.text);
|
||||
asm/object/object75.o(.text); /* 75 and 76 are mislocated in object table */
|
||||
asm/object/object76.o(.text);
|
||||
src/object/object75.o(.text); /* 75 and 76 are mislocated in object table */
|
||||
src/object/object76.o(.text);
|
||||
asm/object/code_0808C964.o(.text);
|
||||
src/object/macroPlayer.o(.text);
|
||||
src/object/object3D.o(.text);
|
||||
@@ -691,8 +691,8 @@ SECTIONS {
|
||||
src/object/ladderUp.o(.text);
|
||||
src/object/object42.o(.text);
|
||||
src/object/object43.o(.text);
|
||||
asm/object/object44.o(.text);
|
||||
asm/object/object45.o(.text);
|
||||
src/object/object44.o(.text);
|
||||
src/object/object45.o(.text);
|
||||
src/object/giantBookLadder.o(.text);
|
||||
src/object/heartContainer.o(.text);
|
||||
src/object/fileScreenObjects.o(.text);
|
||||
@@ -705,8 +705,8 @@ SECTIONS {
|
||||
src/object/archway.o(.text);
|
||||
src/object/giantRock.o(.text);
|
||||
src/object/giantRock2.o(.text);
|
||||
asm/object/object52.o(.text);
|
||||
asm/object/object53.o(.text);
|
||||
src/object/object52.o(.text);
|
||||
src/object/object53.o(.text);
|
||||
src/object/pullableLever.o(.text);
|
||||
src/object/minecart.o(.text);
|
||||
asm/object/minecart.o(.text);
|
||||
@@ -723,11 +723,11 @@ SECTIONS {
|
||||
src/object/swordsmanNewsletter.o(.text);
|
||||
src/object/object61.o(.text);
|
||||
src/object/giantTwig.o(.text);
|
||||
asm/object/object63.o(.text);
|
||||
src/object/object63.o(.text);
|
||||
src/object/object64.o(.text);
|
||||
src/object/ladderHoleInBookshelf.o(.text);
|
||||
asm/object/object66.o(.text);
|
||||
asm/object/object67.o(.text);
|
||||
src/object/object66.o(.text);
|
||||
src/object/object67.o(.text);
|
||||
src/object/object68.o(.text);
|
||||
src/object/object69.o(.text);
|
||||
src/object/object6A.o(.text);
|
||||
@@ -743,7 +743,7 @@ SECTIONS {
|
||||
src/object/object74.o(.text);
|
||||
src/object/bell.o(.text);
|
||||
src/object/macroDecorations.o(.text);
|
||||
asm/object/object79.o(.text);
|
||||
src/object/object79.o(.text);
|
||||
src/object/steam.o(.text);
|
||||
src/object/pushableLever.o(.text);
|
||||
src/object/macroShoes.o(.text);
|
||||
@@ -751,7 +751,7 @@ SECTIONS {
|
||||
src/object/object7E.o(.text);
|
||||
asm/object/picoBloom.o(.text);
|
||||
src/object/board.o(.text);
|
||||
asm/object/object81.o(.text);
|
||||
src/object/object81.o(.text);
|
||||
src/object/bigVortex.o(.text);
|
||||
src/object/bigPushableLever.o(.text);
|
||||
src/object/smallIceBlock.o(.text);
|
||||
@@ -778,9 +778,8 @@ SECTIONS {
|
||||
asm/object/object98.o(.text);
|
||||
asm/object/object99.o(.text);
|
||||
src/object/macroAcorn.o(.text);
|
||||
asm/object/object9B.o(.text);
|
||||
src/object/object9B.o(.text);
|
||||
src/object/treeHidingPortal.o(.text);
|
||||
asm/object/treeHidingPortal.o(.text);
|
||||
src/object/lightableSwitch.o(.text);
|
||||
src/object/treeThorns.o(.text);
|
||||
src/object/fan.o(.text);
|
||||
@@ -791,7 +790,7 @@ SECTIONS {
|
||||
src/object/minishLight.o(.text);
|
||||
asm/object/fireballChain.o(.text);
|
||||
asm/object/objectA6.o(.text);
|
||||
asm/object/objectA7.o(.text);
|
||||
src/object/objectA7.o(.text);
|
||||
src/object/objectA8.o(.text);
|
||||
asm/object/objectA9.o(.text);
|
||||
src/object/waterfallOpening.o(.text);
|
||||
@@ -806,7 +805,7 @@ SECTIONS {
|
||||
src/object/objectB3.o(.text);
|
||||
asm/object/objectB4.o(.text);
|
||||
src/object/objectB5.o(.text);
|
||||
asm/object/objectB6.o(.text);
|
||||
src/object/objectB6.o(.text);
|
||||
src/object/well.o(.text);
|
||||
src/object/windTribeTeleporter.o(.text);
|
||||
asm/object/objectB9.o(.text);
|
||||
@@ -1345,7 +1344,7 @@ SECTIONS {
|
||||
data/animations/object/ezloCap.o(.rodata);
|
||||
src/object/blockPushed.o(.rodata);
|
||||
src/object/lockedDoor.o(.rodata);
|
||||
data/const/object/object9.o(.rodata);
|
||||
src/object/object9.o(.rodata);
|
||||
data/animations/object/object9.o(.rodata);
|
||||
src/object/objectB.o(.rodata);
|
||||
src/object/chestSpawner.o(.rodata);
|
||||
@@ -1354,15 +1353,15 @@ SECTIONS {
|
||||
data/animations/object/objectD.o(.rodata);
|
||||
src/object/specialFx.o(.rodata);
|
||||
data/animations/object/specialFx.o(.rodata);
|
||||
data/const/object/object10.o(.rodata);
|
||||
src/object/playerClone.o(.rodata);
|
||||
src/object/object11.o(.rodata);
|
||||
src/object/object12.o(.rodata);
|
||||
data/const/object/railtrack.o(.rodata);
|
||||
data/animations/object/railtrack.o(.rodata);
|
||||
data/const/object/lilypadLarge.o(.rodata);
|
||||
data/const/object/object15.o(.rodata);
|
||||
src/object/object15.o(.rodata);
|
||||
src/object/floatingPlatform.o(.rodata);
|
||||
data/const/object/object17.o(.rodata);
|
||||
src/object/object17.o(.rodata);
|
||||
data/const/object/evilSpirit.o(.rodata);
|
||||
data/animations/object/evilSpirit.o(.rodata);
|
||||
data/const/object/houseDoorExterior.o(.rodata);
|
||||
@@ -1372,7 +1371,7 @@ SECTIONS {
|
||||
data/const/object/object1D.o(.rodata);
|
||||
src/object/object1E.o(.rodata);
|
||||
data/animations/object/object1E.o(.rodata);
|
||||
data/const/object/object1F.o(.rodata);
|
||||
src/object/object1F.o(.rodata);
|
||||
src/object/object20.o(.rodata);
|
||||
src/object/object21.o(.rodata);
|
||||
src/object/figurineDevice.o(.rodata);
|
||||
@@ -1406,6 +1405,7 @@ SECTIONS {
|
||||
src/object/object35.o(.rodata);
|
||||
data/animations/object/object35.o(.rodata);
|
||||
src/object/object36.o(.rodata);
|
||||
src/object/object37.o(.rodata);
|
||||
data/const/object/object37.o(.rodata);
|
||||
data/const/object/jarPortal.o(.rodata);
|
||||
data/animations/object/jarPortal.o(.rodata);
|
||||
@@ -1413,8 +1413,8 @@ SECTIONS {
|
||||
data/animations/object/bossDoor.o(.rodata);
|
||||
src/object/object3A.o(.rodata);
|
||||
src/object/macroMushroomStalks.o(.rodata);
|
||||
data/const/object/object75.o(.rodata);
|
||||
data/const/object/object76.o(.rodata);
|
||||
src/object/object75.o(.rodata);
|
||||
src/object/object76.o(.rodata);
|
||||
src/object/macroPlayer.o(.rodata);
|
||||
src/object/object3D.o(.rodata);
|
||||
src/object/object3E.o(.rodata);
|
||||
@@ -1423,9 +1423,9 @@ SECTIONS {
|
||||
src/object/object42.o(.rodata);
|
||||
src/object/object43.o(.rodata);
|
||||
data/animations/object/object43.o(.rodata);
|
||||
data/const/object/object44.o(.rodata);
|
||||
src/object/object44.o(.rodata);
|
||||
data/animations/object/object44.o(.rodata);
|
||||
data/const/object/object45.o(.rodata);
|
||||
src/object/object45.o(.rodata);
|
||||
data/animations/object/object45.o(.rodata);
|
||||
src/object/giantBookLadder.o(.rodata);
|
||||
src/object/heartContainer.o(.rodata);
|
||||
@@ -1442,7 +1442,7 @@ SECTIONS {
|
||||
data/const/object/minishSizedEntrance.o(.rodata);
|
||||
data/animations/object/minishSizedEntrance.o(.rodata);
|
||||
src/object/giantRock2.o(.rodata);
|
||||
data/const/object/object53.o(.rodata);
|
||||
src/object/object53.o(.rodata);
|
||||
src/object/pullableLever.o(.rodata);
|
||||
data/animations/object/pullableLever.o(.rodata);
|
||||
data/const/object/minecart.o(.rodata);
|
||||
@@ -1464,11 +1464,11 @@ SECTIONS {
|
||||
data/const/object/swordsmanNewsletter.o(.rodata);
|
||||
src/object/object61.o(.rodata);
|
||||
src/object/giantTwig.o(.rodata);
|
||||
data/const/object/object63.o(.rodata);
|
||||
src/object/object63.o(.rodata);
|
||||
src/object/object64.o(.rodata);
|
||||
data/animations/object/object64.o(.rodata);
|
||||
src/object/ladderHoleInBookshelf.o(.rodata);
|
||||
data/const/object/object67.o(.rodata);
|
||||
src/object/object67.o(.rodata);
|
||||
src/object/object68.o(.rodata);
|
||||
src/object/object6A.o(.rodata);
|
||||
data/const/object/object6A.o(.rodata);
|
||||
@@ -1486,7 +1486,7 @@ SECTIONS {
|
||||
data/const/object/bell.o(.rodata);
|
||||
data/animations/object/bell.o(.rodata);
|
||||
src/object/macroDecorations.o(.rodata);
|
||||
data/const/object/object79.o(.rodata);
|
||||
src/object/object79.o(.rodata);
|
||||
data/animations/object/object79.o(.rodata);
|
||||
src/object/steam.o(.rodata);
|
||||
src/object/pushableLever.o(.rodata);
|
||||
@@ -1496,7 +1496,7 @@ SECTIONS {
|
||||
data/const/object/picoBloom.o(.rodata);
|
||||
data/animations/object/picoBloom.o(.rodata);
|
||||
src/object/board.o(.rodata);
|
||||
data/const/object/object81.o(.rodata);
|
||||
src/object/object81.o(.rodata);
|
||||
data/const/object/bigVortex.o(.rodata);
|
||||
data/animations/object/bigVortex.o(.rodata);
|
||||
src/object/bigPushableLever.o(.rodata);
|
||||
@@ -1530,9 +1530,9 @@ SECTIONS {
|
||||
data/const/object/object98.o(.rodata);
|
||||
data/animations/object/object98.o(.rodata);
|
||||
src/object/macroAcorn.o(.rodata);
|
||||
data/const/object/object9B.o(.rodata);
|
||||
src/object/object9B.o(.rodata);
|
||||
data/animations/object/object9B.o(.rodata);
|
||||
data/const/object/treeHidingPortal.o(.rodata);
|
||||
src/object/treeHidingPortal.o(.rodata);
|
||||
data/const/object/lightableSwitch.o(.rodata);
|
||||
src/object/fan.o(.rodata);
|
||||
data/animations/object/fan.o(.rodata);
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ void (*const gObjectFunctions[])(Entity*) = {
|
||||
[OBJECT_D] = ObjectD,
|
||||
[OBJECT_E] = ObjectE,
|
||||
[SPECIAL_FX] = SpecialFx,
|
||||
[OBJECT_10] = Object10,
|
||||
[PLAYER_CLONE] = PlayerClone,
|
||||
[OBJECT_11] = Object11,
|
||||
[OBJECT_12] = Object12,
|
||||
[RAILTRACK] = Railtrack,
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -91,7 +92,7 @@ void BigIceBlock_Action2(BigIceBlockEntity* this) {
|
||||
if (super->type != 2) {
|
||||
SetFlag(this->unk_86);
|
||||
} else {
|
||||
CreateGroundItemWithFlags(super, 0x53, 0, this->unk_86);
|
||||
CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->unk_86);
|
||||
}
|
||||
}
|
||||
super->action = 3;
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
|
||||
void Object15_Init(Entity*);
|
||||
void Object15_Action1(Entity*);
|
||||
|
||||
void Object15(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
Object15_Init,
|
||||
Object15_Action1,
|
||||
};
|
||||
|
||||
actionFuncs[this->action](this);
|
||||
}
|
||||
|
||||
void Object15_Init(Entity* this) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
InitializeAnimation(this, this->animIndex);
|
||||
}
|
||||
|
||||
void Object15_Action1(Entity* this) {
|
||||
if (this->type == 0) {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
if (this->type2 != 0) {
|
||||
this->spriteSettings.draw ^= 1;
|
||||
}
|
||||
|
||||
if ((int)(this->actionDelay * 0x1000000) >= 0) {
|
||||
if (this->actionDelay) {
|
||||
if (--this->actionDelay == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
if ((this->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this->child != NULL) {
|
||||
this->x = this->child->x;
|
||||
this->y = this->child->y;
|
||||
this->z = this->child->z;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "asm.h"
|
||||
#include "room.h"
|
||||
#include "coord.h"
|
||||
|
||||
void Object17_Init(Entity*);
|
||||
void Object17_Action1(Entity*);
|
||||
|
||||
void Object17(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
Object17_Init,
|
||||
Object17_Action1,
|
||||
};
|
||||
|
||||
actionFuncs[this->action](this);
|
||||
}
|
||||
|
||||
void Object17_Init(Entity* this) {
|
||||
this->action = 1;
|
||||
this->speed = 0x80;
|
||||
this->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
this->spritePriority.b0 = gPlayerEntity.spritePriority.b0;
|
||||
this->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
this->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
this->type = Random() & 1;
|
||||
InitializeAnimation(this, 0x11);
|
||||
}
|
||||
|
||||
void Object17_Action1(Entity* this) {
|
||||
if (this->type != 0) {
|
||||
if ((gRoomTransition.frameCount & 1) == 0) {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
if (sub_0806F3E4(this)) {
|
||||
DeleteThisEntity();
|
||||
} else if ((gPlayerState.field_0x1c & 0xf) != 1) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
#include "asm.h"
|
||||
#include "effects.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0x4];
|
||||
u32 unk6c;
|
||||
} Object1FEntity;
|
||||
|
||||
void Object1F_Init(Object1FEntity*);
|
||||
void Object1F_Action1(Object1FEntity*);
|
||||
void Object1F_Action2(Object1FEntity*);
|
||||
|
||||
void Object1F(Entity* this) {
|
||||
static void (*const actionFuncs[])(Object1FEntity*) = {
|
||||
Object1F_Init,
|
||||
Object1F_Action1,
|
||||
Object1F_Action2,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Object1FEntity*)this);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u8 animationState;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 spriteVramOffset;
|
||||
} gUnk_08120A18_struct;
|
||||
|
||||
void Object1F_Init(Object1FEntity* this) {
|
||||
static const gUnk_08120A18_struct gUnk_08120A18[] = {
|
||||
{ 0x0, 0x2, 0xA, 0xE8 },
|
||||
{ 0x0, 0x5, 0x20, 0xE0 },
|
||||
};
|
||||
static const s8 gUnk_08120A20[] = { 0, -18, 16, 0, 0, 12, -16, 0 };
|
||||
|
||||
u32 temp;
|
||||
super->action = 1;
|
||||
super->zVelocity = 0x2c000;
|
||||
super->direction = super->animationState << 2 ^ 0x10;
|
||||
if (super->animationState == 0) {
|
||||
super->spritePriority.b0--;
|
||||
}
|
||||
super->x.HALF.HI = gUnk_08120A20[super->animationState] + super->x.HALF.HI;
|
||||
super->y.HALF.HI = gUnk_08120A20[super->animationState + 1] + super->y.HALF.HI;
|
||||
|
||||
super->spriteVramOffset = gUnk_08120A18[super->field_0xf].spriteVramOffset;
|
||||
temp = gUnk_08120A18[super->field_0xf].unk1;
|
||||
super->palette.b.b0 = temp;
|
||||
this->unk6c = gUnk_08120A18[super->field_0xf].unk2;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
super->speed = 0x100;
|
||||
InitializeAnimation(super, gUnk_08120A18[super->field_0xf].animationState);
|
||||
}
|
||||
|
||||
void Object1F_Action1(Object1FEntity* this) {
|
||||
u32 uVar1;
|
||||
|
||||
if (this->unk6c) {
|
||||
this->unk6c--;
|
||||
uVar1 = gPlayerState.field_0x3c[1];
|
||||
} else {
|
||||
ProcessMovement2(super);
|
||||
uVar1 = GravityUpdate(super, 0x2800);
|
||||
}
|
||||
|
||||
if (uVar1 == 0) {
|
||||
super->action = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void Object1F_Action2(Object1FEntity* this) {
|
||||
u8 bVar1;
|
||||
|
||||
bVar1 = sub_080B1B0C(super);
|
||||
switch (bVar1) {
|
||||
case 0x21:
|
||||
CreateFx(super, FX_FALL_DOWN, 0);
|
||||
break;
|
||||
case 0x25:
|
||||
CreateFx(super, FX_LAVA_SPLASH, 0);
|
||||
break;
|
||||
case 0x24:
|
||||
case 0x30:
|
||||
CreateFx(super, FX_WATER_SPLASH, 0);
|
||||
break;
|
||||
default:
|
||||
if (super->type2 != 0) {
|
||||
if (super->type2 == 15) {
|
||||
CreateFx(super, super->actionDelay, 0x80);
|
||||
} else {
|
||||
CreateObjectWithParent(super, super->type2, super->actionDelay, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
|
||||
void Object28(Entity* this) {
|
||||
int iVar1;
|
||||
int diffY;
|
||||
int diffX;
|
||||
int iVar4;
|
||||
int temp;
|
||||
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 3;
|
||||
this->frameIndex = this->type2;
|
||||
this->spriteOrientation.flipY = 3;
|
||||
this->spriteRendering.b3 = 3;
|
||||
if (this->type == 3) {
|
||||
this->spritePriority.b0 = 6;
|
||||
} else {
|
||||
this->spritePriority.b0 = 7;
|
||||
}
|
||||
this->field_0x68.HWORD = this->x.HALF.HI;
|
||||
this->field_0x6a.HWORD = this->y.HALF.HI;
|
||||
SetDefaultPriority(this, 6);
|
||||
}
|
||||
if ((this->flags & 0x10) == 0) {
|
||||
iVar4 = (int)this->x.HALF.HI - (int)gRoomControls.scroll_x;
|
||||
diffX = iVar4 - 0x78;
|
||||
iVar1 = (int)this->y.HALF.HI - (int)gRoomControls.scroll_y;
|
||||
diffY = iVar1 - 0x50;
|
||||
if (diffX < 0) {
|
||||
temp = (iVar4 - 0x75);
|
||||
} else {
|
||||
temp = diffX;
|
||||
}
|
||||
diffX = temp >> 2;
|
||||
|
||||
if (diffY < 0) {
|
||||
temp = iVar1 - 0x4d;
|
||||
} else {
|
||||
temp = diffY;
|
||||
}
|
||||
diffY = temp >> 2;
|
||||
|
||||
if (diffX < -0x10) {
|
||||
diffX = -0x10;
|
||||
}
|
||||
if (0x10 < diffX) {
|
||||
diffX = 0x10;
|
||||
}
|
||||
|
||||
if (diffY < -0x10) {
|
||||
diffY = -0x10;
|
||||
}
|
||||
if (0x10 < diffY) {
|
||||
diffY = 0x10;
|
||||
}
|
||||
|
||||
this->x.HALF.HI = this->field_0x68.HWORD + diffX;
|
||||
this->y.HALF.HI = this->field_0x6a.HWORD + diffY;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "save.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0x8];
|
||||
u16 unk70;
|
||||
u8 filler2[0x6];
|
||||
u16* unk78;
|
||||
} Object37Entity;
|
||||
|
||||
extern u32 sub_0806F798(Entity*);
|
||||
|
||||
void Object37_Init(Object37Entity*);
|
||||
void Object37_Action1(Object37Entity*);
|
||||
|
||||
void Object37(Entity* this) {
|
||||
static void (*const actionFuncs[])(Object37Entity*) = {
|
||||
Object37_Init,
|
||||
Object37_Action1,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Object37Entity*)this);
|
||||
}
|
||||
|
||||
void Object37_Init(Object37Entity* this) {
|
||||
u16* puVar1;
|
||||
|
||||
puVar1 = GetLayerByIndex(super->collisionLayer)->mapData + sub_0806F798(super);
|
||||
this->unk78 = puVar1;
|
||||
this->unk70 = *puVar1;
|
||||
super->action = 1;
|
||||
}
|
||||
|
||||
void Object37_Action1(Object37Entity* this) {
|
||||
Entity* item;
|
||||
|
||||
if ((gSave.unk24E[0] != 0) && (this->unk70 != *this->unk78)) {
|
||||
item = CreateGroundItem(super, ITEM_RUPEE100, 0);
|
||||
if (item != 0) {
|
||||
item->direction = gPlayerEntity.animationState << 2;
|
||||
item->speed = 0x80;
|
||||
item->zVelocity = 0x20000;
|
||||
}
|
||||
gSave.unk24E[0] = 1;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "asm.h"
|
||||
#include "sound.h"
|
||||
#include "room.h"
|
||||
#include "functions.h"
|
||||
|
||||
void sub_0808E298(Entity*);
|
||||
void sub_0808E318(Entity*);
|
||||
void sub_0808E354(Entity*, u32);
|
||||
|
||||
void Object44(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0808E298,
|
||||
sub_0808E318,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Entity*)this);
|
||||
}
|
||||
|
||||
void sub_0808E298(Entity* this) {
|
||||
int x;
|
||||
int y;
|
||||
|
||||
this->collisionLayer = 2;
|
||||
this->action = 1;
|
||||
x = 0;
|
||||
y = 0;
|
||||
switch (GetTileTypeByEntity(this)) {
|
||||
case 0x343:
|
||||
x = 0x10;
|
||||
case 0x344:
|
||||
y = 0x10;
|
||||
break;
|
||||
case 0x345:
|
||||
x = 0x10;
|
||||
break;
|
||||
case 0x346:
|
||||
break;
|
||||
default:
|
||||
DeleteThisEntity();
|
||||
break;
|
||||
}
|
||||
|
||||
this->x.HALF.HI = (this->x.HALF.HI + x) & 0xfff0;
|
||||
this->y.HALF.HI = (this->y.HALF.HI + y) & 0xfff0;
|
||||
InitializeAnimation(this, 0);
|
||||
sub_0808E354(this, 0x347);
|
||||
sub_0808E318(this);
|
||||
}
|
||||
|
||||
void sub_0808E318(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if (this->frame & 0x80) {
|
||||
sub_0808E354(this, 0x343);
|
||||
DeleteThisEntity();
|
||||
} else {
|
||||
if (this->frame & 1) {
|
||||
EnqueueSFX(SFX_18B);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808E354(Entity* this, u32 param_2) {
|
||||
u16 uVar1 = param_2;
|
||||
sub_0807B7D8(uVar1, COORD_TO_TILE_OFFSET(this, 0x10, 0x10), 2);
|
||||
sub_0807B7D8(uVar1 + 1, COORD_TO_TILE_OFFSET(this, 0, 0x10), 2);
|
||||
sub_0807B7D8(uVar1 + 2, COORD_TO_TILE_OFFSET(this, 0x10, 0), 2);
|
||||
sub_0807B7D8(uVar1 + 3, COORD_TO_TILE_OFFSET(this, 0, 0), 2);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "item.h"
|
||||
|
||||
void sub_0808E42C(Entity*);
|
||||
void sub_0808E448(Entity*);
|
||||
|
||||
void Object45(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0808E42C,
|
||||
sub_0808E448,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Entity*)this);
|
||||
}
|
||||
|
||||
void sub_0808E42C(Entity* this) {
|
||||
this->action = 1;
|
||||
this->updatePriority = 6;
|
||||
InitializeAnimation(this, this->type);
|
||||
}
|
||||
|
||||
void sub_0808E448(Entity* this) {
|
||||
if (1 < IsItemEquipped(ITEM_LANTERN_ON)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
GetNextFrame(this);
|
||||
|
||||
switch (this->frame) {
|
||||
case 0x80:
|
||||
DeleteThisEntity();
|
||||
case 1:
|
||||
this->spriteSettings.draw ^= 1;
|
||||
break;
|
||||
default:
|
||||
this->spriteSettings.draw = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->type == 0) {
|
||||
this->z.WORD -= 0x8000;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "flags.h"
|
||||
#include "room.h"
|
||||
|
||||
extern void sub_08078828(Entity*);
|
||||
extern void sub_080A7C8C(u32 pos, u32 layer);
|
||||
|
||||
void Object52(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (CheckLocalFlag(this->type)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
this->action = 1;
|
||||
this->collisionLayer = 1;
|
||||
sub_08078828(this);
|
||||
}
|
||||
if (this->interactType != 0) {
|
||||
sub_080A7C8C(COORD_TO_TILE(this), 2);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "asm.h"
|
||||
|
||||
void sub_08091120(Entity*);
|
||||
void sub_08091198(Entity*);
|
||||
|
||||
void Object53(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_08091120,
|
||||
sub_08091198,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Entity*)this);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u8 animationState;
|
||||
u8 palette;
|
||||
u8 spriteVramOffset;
|
||||
u8 spriteIndex;
|
||||
} gUnk_08122288_struct;
|
||||
|
||||
void sub_08091120(Entity* this) {
|
||||
static const gUnk_08122288_struct gUnk_08122288[] = { { 0x0, 0x2, 0xe8, 0xa7 },
|
||||
{ 0x0, 0x5, 0xe0, 0xa7 },
|
||||
{ 0x0, 0x5, 0xf2, 0xa7 } };
|
||||
u32 temp;
|
||||
this->action++;
|
||||
this->spriteVramOffset = gUnk_08122288[this->type].spriteVramOffset;
|
||||
temp = gUnk_08122288[this->type].palette;
|
||||
this->palette.b.b0 = temp;
|
||||
this->spriteIndex = gUnk_08122288[this->type].spriteIndex;
|
||||
this->spriteSettings.draw = 1;
|
||||
this->spriteRendering.b3 = 2;
|
||||
this->zVelocity = 0x2a000;
|
||||
InitializeAnimation(this, gUnk_08122288[this->type].animationState);
|
||||
sub_08004168(this);
|
||||
}
|
||||
|
||||
void sub_08091198(Entity* this) {
|
||||
if (this->zVelocity < 0) {
|
||||
this->spriteSettings.flipY = 1;
|
||||
}
|
||||
|
||||
if (GravityUpdate(this, 0x2000)) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch ((u8)this->type2) {
|
||||
case 0:
|
||||
case 0xff:
|
||||
break;
|
||||
case 0xf:
|
||||
CreateFx(this, this->actionDelay, 0x80);
|
||||
break;
|
||||
default:
|
||||
CreateObjectWithParent(this, this->type2, this->actionDelay, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
DeleteThisEntity();
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "asm.h"
|
||||
#include "object.h"
|
||||
|
||||
void sub_08093D88(Entity*);
|
||||
void sub_08093DE0(Entity*);
|
||||
void Object63_Delete(Entity*);
|
||||
void sub_08093E10(Entity*, Entity*);
|
||||
|
||||
void Object63(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_08093D88,
|
||||
sub_08093DE0,
|
||||
Object63_Delete,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Entity*)this);
|
||||
}
|
||||
|
||||
void sub_08093D88(Entity* this) {
|
||||
Entity* objEnt;
|
||||
|
||||
this->action = 1;
|
||||
this->z.HALF.HI -= 8;
|
||||
this->zVelocity = 0x2a000;
|
||||
this->actionDelay = 32;
|
||||
switch (this->type) {
|
||||
case 0:
|
||||
if (CreateRandomItemDrop(this, 4) == 0) {
|
||||
this->action = 2;
|
||||
}
|
||||
this->child->zVelocity = this->zVelocity;
|
||||
break;
|
||||
case 1:
|
||||
objEnt = CreateObject(0, OBJECT_BLOCKING_STAIRS, 0);
|
||||
if (objEnt != NULL) {
|
||||
objEnt->actionDelay = 5;
|
||||
sub_08093E10(this, objEnt);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08093DE0(Entity* this) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 2;
|
||||
}
|
||||
|
||||
if ((this->actionDelay & 1) != 0) {
|
||||
this->child->y.HALF.HI++;
|
||||
}
|
||||
}
|
||||
|
||||
void Object63_Delete(Entity* this) {
|
||||
DeleteEntity(this);
|
||||
}
|
||||
|
||||
void sub_08093E10(Entity* this, Entity* ent) {
|
||||
CopyPosition(this, ent);
|
||||
ent->parent = this;
|
||||
this->child = ent;
|
||||
ent->zVelocity = this->zVelocity;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
void Object66(Entity* this) {
|
||||
int iVar2;
|
||||
int iVar4;
|
||||
Entity* parent;
|
||||
|
||||
parent = this->parent;
|
||||
if (parent->z.HALF.HI != 0) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
this->spritePriority.b0 = 6;
|
||||
this->spriteOffsetY = 5;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
this->x.HALF.HI = parent->x.HALF.HI;
|
||||
this->y.HALF.HI = parent->y.HALF.HI;
|
||||
this->spriteOrientation.flipY = parent->spriteOrientation.flipY;
|
||||
this->spriteRendering.b3 = parent->spriteRendering.b3;
|
||||
if (parent->z.HALF.HI > -0x40) {
|
||||
iVar2 = 0x100;
|
||||
iVar4 = 0x200;
|
||||
} else {
|
||||
iVar2 = 0x100 - 2 * (parent->z.HALF.HI + 0x40);
|
||||
iVar4 = 0x200 - 4 * (parent->z.HALF.HI + 0x40);
|
||||
}
|
||||
sub_0805EC9C(this, iVar2, iVar4, 0);
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,338 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
#include "player.h"
|
||||
#include "asm.h"
|
||||
#include "functions.h"
|
||||
#include "object.h"
|
||||
#include "effects.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0xC];
|
||||
u32 unk74;
|
||||
u32 unk78;
|
||||
u32 unk7c;
|
||||
union SplitWord unk80;
|
||||
union SplitWord unk84;
|
||||
} Object67Entity;
|
||||
|
||||
extern Hitbox gUnk_080FD2E8;
|
||||
|
||||
void sub_08094148(Object67Entity*);
|
||||
void sub_08094398(Object67Entity*);
|
||||
void sub_08094424(Object67Entity*);
|
||||
void sub_08094540(Object67Entity*);
|
||||
void sub_08094570(Object67Entity*);
|
||||
void sub_08094660(Object67Entity*);
|
||||
void sub_08094708(Object67Entity*, u32, u32);
|
||||
|
||||
extern bool32 AllocMutableHitbox(Entity*);
|
||||
|
||||
void Object67(Entity* this) {
|
||||
static void (*const actionFuncs[])(Object67Entity*) = {
|
||||
sub_08094148, sub_08094398, sub_08094424, sub_08094540, sub_08094570,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Object67Entity*)this);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
u8 direction;
|
||||
s8 x;
|
||||
s8 y;
|
||||
} gUnk_081229D0_struct;
|
||||
|
||||
typedef struct {
|
||||
s8 x;
|
||||
s8 y;
|
||||
u8 actionDelay;
|
||||
u8 unk3;
|
||||
u8 unk4;
|
||||
u8 filler[3];
|
||||
} gUnk_081229F0_struct;
|
||||
|
||||
void sub_08094148(Object67Entity* this) {
|
||||
static const gUnk_081229D0_struct gUnk_081229D0[] = {
|
||||
{ 0, 12, 8, 8 }, { 0x40, 0x14, -8, 8 }, { 0x80, 4, 8, -8 }, { 0xC0, 0x1C, -8, -8 },
|
||||
{ 0, 12, 0, 0 }, { 0x40, 0x14, 0, 0 }, { 0x80, 4, 0, 0 }, { 0xC0, 0x1C, -0, 0 },
|
||||
};
|
||||
static const gUnk_081229F0_struct gUnk_081229F0[] = {
|
||||
{ -32, -40, 1, 2, 0, { 0 } },
|
||||
{ 0x1f, -40, 3, 2, 0x40, { 0 } },
|
||||
{ -32, 0x17, 1, 0, 0x80, { 0 } },
|
||||
{ 0x1f, 0x17, 3, 0, 0xC0, { 0 } },
|
||||
};
|
||||
const gUnk_081229F0_struct* ptr;
|
||||
|
||||
switch (super->type) {
|
||||
case 2:
|
||||
if (super->subAction == 0) {
|
||||
super->subAction = 1;
|
||||
this->unk78 = 0x168;
|
||||
gRoomControls.camera_target = super;
|
||||
} else {
|
||||
if (--this->unk78 == -1) {
|
||||
gRoomControls.camera_target = &gPlayerEntity;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
sub_08078B48();
|
||||
return;
|
||||
case 0:
|
||||
super->direction = gUnk_081229D0[super->type2].direction;
|
||||
super->x.HALF.HI += gUnk_081229D0[super->type2].x;
|
||||
super->y.HALF.HI += gUnk_081229D0[super->type2].y;
|
||||
if ((gUnk_081229D0[super->type2].unk0 & 0x40) != 0) {
|
||||
super->spriteSettings.flipX = 1;
|
||||
}
|
||||
if ((gUnk_081229D0[super->type2].unk0 & 0x80) != 0) {
|
||||
super->spriteSettings.flipY = 1;
|
||||
}
|
||||
if (super->type2 < 4) {
|
||||
super->zVelocity = (Random() & 0x1ffff) | 0x28000;
|
||||
super->speed = 0x100;
|
||||
InitializeAnimation(super, 0x56);
|
||||
} else {
|
||||
super->zVelocity = 0x28000;
|
||||
super->speed = 0x100;
|
||||
super->direction = (Random() & 3) | super->direction;
|
||||
InitializeAnimation(super, 0x57);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (super->type2 == 0) {
|
||||
super->child = CreateObjectWithParent(super, OBJECT_67, 1, 0x80);
|
||||
if (super->child != NULL) {
|
||||
super->child->child = super->parent;
|
||||
}
|
||||
}
|
||||
|
||||
switch (super->type2) {
|
||||
default:
|
||||
super->frameIndex = 75;
|
||||
super->spriteRendering.alphaBlend = 1;
|
||||
super->speed = 0x7000;
|
||||
super->spriteRendering.b3 = 3;
|
||||
super->spritePriority.b0 = 7;
|
||||
super->spriteRendering.b0 = 3;
|
||||
ptr = gUnk_081229F0 + super->type2;
|
||||
super->x.HALF.HI = ptr->x + super->x.HALF.HI;
|
||||
super->y.HALF.HI = ptr->y + super->y.HALF.HI;
|
||||
super->actionDelay = ptr->actionDelay;
|
||||
super->field_0xf = ptr->unk3;
|
||||
this->unk7c = 0xce;
|
||||
this->unk74 = 0;
|
||||
if ((ptr->unk4 & 0x40) != 0) {
|
||||
this->unk80.HALF.HI = 0xff00;
|
||||
} else {
|
||||
this->unk80.HALF.HI = 0x100;
|
||||
}
|
||||
if ((ptr->unk4 & 0x80) != 0) {
|
||||
this->unk84.HALF.HI = 0xff00;
|
||||
} else {
|
||||
this->unk84.HALF.HI = 0x100;
|
||||
}
|
||||
|
||||
if (AllocMutableHitbox(super)) {
|
||||
super->hitbox->offset_x = gUnk_080FD2E8.offset_x;
|
||||
super->hitbox->offset_y = gUnk_080FD2E8.offset_y;
|
||||
super->hitbox->unk2[0] = gUnk_080FD2E8.unk2[0];
|
||||
super->hitbox->unk2[1] = gUnk_080FD2E8.unk2[1];
|
||||
super->hitbox->unk2[2] = gUnk_080FD2E8.unk2[2];
|
||||
super->hitbox->unk2[3] = gUnk_080FD2E8.unk2[3];
|
||||
super->hitbox->width = gUnk_080FD2E8.width;
|
||||
super->hitbox->height = gUnk_080FD2E8.height;
|
||||
COLLISION_ON(super);
|
||||
super->collisionLayer = 2;
|
||||
super->field_0x3c = 7;
|
||||
super->hurtType = 0x48;
|
||||
super->hitType = 0x7a;
|
||||
super->flags2 = 1;
|
||||
}
|
||||
break;
|
||||
case 0x80:
|
||||
super->spriteSettings.draw = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
super->action = 1;
|
||||
sub_08094398(this);
|
||||
}
|
||||
|
||||
void sub_08094398(Object67Entity* this) {
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
GetNextFrame(super);
|
||||
LinearMoveUpdate(super);
|
||||
if (GravityUpdate(super, 0x4000) == 0) {
|
||||
if (super->type2 < 4) {
|
||||
CreateFx(super, FX_LAVA_SPLASH, 0);
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (super->type2 != 0x80) {
|
||||
if (--this->unk7c == -1) {
|
||||
this->unk7c = 600;
|
||||
super->action = 2;
|
||||
}
|
||||
sub_0805EC9C(super, this->unk80.HALF_U.HI, this->unk84.HALF_U.HI, 0);
|
||||
} else {
|
||||
if ((((GenericEntity*)super->child)->field_0x78.HALF.HI & 0x80) == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
sub_08094660(this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08094424(Object67Entity* this) {
|
||||
u32 uVar2;
|
||||
u32 uVar5;
|
||||
|
||||
if (this->unk80.HALF.HI < 0) {
|
||||
this->unk80.WORD += (int)super->speed;
|
||||
uVar2 = -this->unk80.HALF.HI;
|
||||
} else {
|
||||
this->unk80.WORD -= (int)super->speed;
|
||||
uVar2 = this->unk80.HALF_U.HI;
|
||||
}
|
||||
|
||||
if (this->unk84.HALF.HI < 0) {
|
||||
this->unk84.WORD += (int)super->speed;
|
||||
uVar5 = -this->unk84.HALF.HI;
|
||||
} else {
|
||||
this->unk84.WORD -= (int)super->speed;
|
||||
uVar5 = this->unk84.HALF_U.HI;
|
||||
}
|
||||
|
||||
if (0x2000 < super->speed) {
|
||||
super->speed -= 0x100;
|
||||
}
|
||||
|
||||
if (--this->unk7c == -1) {
|
||||
this->unk80.HALF.LO = 0;
|
||||
this->unk84.HALF.LO = 0;
|
||||
super->action = 3;
|
||||
this->unk7c = 0x78;
|
||||
} else {
|
||||
sub_0806FCF4(super, this->unk80.HALF.HI, 0x20, super->actionDelay);
|
||||
sub_0806FCF4(super, this->unk84.HALF.HI, 0x20, super->field_0xf);
|
||||
sub_0805EC9C(super, this->unk80.HALF_U.HI, this->unk84.HALF_U.HI, 0);
|
||||
}
|
||||
|
||||
if (super->hitbox != NULL) {
|
||||
super->hitbox->width = (u32)(0x10000 / (s32)uVar2) >> 3;
|
||||
super->hitbox = super->hitbox;
|
||||
super->hitbox->height = (u32)(0x10000 / (s32)uVar5) >> 3;
|
||||
super->hitbox->offset_x = super->spriteOffsetX;
|
||||
super->hitbox->offset_y = super->spriteOffsetY;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08094540(Object67Entity* this) {
|
||||
if (--this->unk7c == -1) {
|
||||
super->action = 4;
|
||||
this->unk7c = 2;
|
||||
}
|
||||
sub_0805EC9C(super, this->unk80.HALF_U.HI, this->unk84.HALF_U.HI, 0);
|
||||
}
|
||||
|
||||
void sub_08094570(Object67Entity* this) {
|
||||
u32 uVar2;
|
||||
u32 uVar3;
|
||||
|
||||
if ((this->unk80.HALF_U.HI == 0x100) || (this->unk80.HALF.HI == -0x100)) {
|
||||
if (this->unk7c == 0) {
|
||||
((GenericEntity*)super->parent)->field_0x7c.HALF.LO = 0;
|
||||
if ((((GenericEntity*)super->parent)->field_0x78.HALF.HI & 0x80) == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
this->unk7c--;
|
||||
}
|
||||
} else {
|
||||
if (this->unk80.HALF.HI < 0) {
|
||||
this->unk80.HALF.HI--;
|
||||
uVar2 = -this->unk80.HALF.HI;
|
||||
} else {
|
||||
this->unk80.HALF.HI++;
|
||||
uVar2 = this->unk80.HALF_U.HI;
|
||||
}
|
||||
|
||||
if (this->unk84.HALF.HI < 0) {
|
||||
this->unk84.HALF.HI = this->unk84.HALF.HI + -1;
|
||||
uVar3 = -this->unk84.HALF.HI;
|
||||
} else {
|
||||
this->unk84.HALF.HI = this->unk84.HALF.HI + 1;
|
||||
uVar3 = this->unk84.HALF_U.HI;
|
||||
}
|
||||
sub_0806FCF4(super, this->unk80.HALF.HI, 0x20, super->actionDelay);
|
||||
sub_0806FCF4(super, this->unk84.HALF.HI, 0x20, super->field_0xf);
|
||||
sub_0805EC9C(super, this->unk80.HALF_U.HI, this->unk84.HALF_U.HI, 0);
|
||||
}
|
||||
|
||||
if (super->hitbox != NULL) {
|
||||
super->hitbox->width = (u32)(0x10000 / (s32)uVar2) >> 3;
|
||||
super->hitbox->height = (u32)(0x10000 / (s32)uVar3) >> 3;
|
||||
super->hitbox->offset_x = super->spriteOffsetX;
|
||||
super->hitbox->offset_y = super->spriteOffsetY;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08094660(Object67Entity* this) {
|
||||
int iVar1;
|
||||
int spriteOffsetX;
|
||||
int iVar3;
|
||||
int iVar4;
|
||||
int iVar5;
|
||||
|
||||
spriteOffsetX = (s8)super->parent->spriteOffsetX;
|
||||
if (spriteOffsetX < 0) {
|
||||
spriteOffsetX = -spriteOffsetX;
|
||||
}
|
||||
|
||||
spriteOffsetX = spriteOffsetX * 2;
|
||||
if (spriteOffsetX < 0) {
|
||||
iVar5 = spriteOffsetX + 0xf;
|
||||
} else {
|
||||
iVar5 = spriteOffsetX;
|
||||
}
|
||||
|
||||
iVar1 = iVar5 >> 4;
|
||||
if (this->unk74 < iVar1) {
|
||||
this->unk74 = iVar1;
|
||||
iVar3 = super->x.HALF.HI - spriteOffsetX - 0x40;
|
||||
iVar4 = super->y.HALF.HI - spriteOffsetX - 0x40;
|
||||
this->unk78 = 0x10;
|
||||
this->unk7c = 0;
|
||||
sub_08094708(this, iVar3, iVar4);
|
||||
this->unk78 = 0;
|
||||
this->unk7c = 0x10;
|
||||
sub_08094708(this, iVar3, iVar4);
|
||||
iVar3 = super->x.HALF.HI + spriteOffsetX + 0x30;
|
||||
iVar4 = super->y.HALF.HI + spriteOffsetX + 0x30;
|
||||
this->unk78 = 0xfffffff0;
|
||||
this->unk7c = 0;
|
||||
sub_08094708(this, iVar3, iVar4);
|
||||
this->unk78 = 0;
|
||||
this->unk7c = 0xfffffff0;
|
||||
sub_08094708(this, iVar3, iVar4);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08094708(Object67Entity* this, u32 param_2, u32 param_3) {
|
||||
int index;
|
||||
|
||||
for (index = this->unk74 * 2 + 8; index != 0; index--) {
|
||||
sub_0807BA8C(TILE(param_2, param_3), 2);
|
||||
param_2 = param_2 + this->unk78;
|
||||
param_3 = param_3 + this->unk7c;
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -66,7 +67,7 @@ void sub_08094774(Object68Entity* this) {
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
child = CreateGroundItem(&gPlayerEntity, 0x60, 0);
|
||||
child = CreateGroundItem(&gPlayerEntity, ITEM_FAIRY, 0);
|
||||
super->child = child;
|
||||
if (child != NULL) {
|
||||
child->actionDelay = 1;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_0808C964(Entity*);
|
||||
extern void sub_0808CA10(Entity*);
|
||||
|
||||
void Object75(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0808C964,
|
||||
sub_0808CA10,
|
||||
};
|
||||
|
||||
actionFuncs[this->action](this);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_0808C964(Entity*);
|
||||
extern void sub_0808CA10(Entity*);
|
||||
|
||||
void Object76(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0808C964,
|
||||
sub_0808CA10,
|
||||
};
|
||||
|
||||
actionFuncs[this->action](this);
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
#include "sound.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0x4];
|
||||
u32 unk6c;
|
||||
union SplitWord objDir;
|
||||
u32 unk74;
|
||||
u16 unk78;
|
||||
u16 unk7a;
|
||||
u16 unk7c;
|
||||
s16 unk7e;
|
||||
} Object79Entity;
|
||||
|
||||
void Object79_Init(Object79Entity*);
|
||||
void Object79_Action1(Object79Entity*);
|
||||
void Object79_Action2(Object79Entity*);
|
||||
void sub_08098130(Object79Entity*);
|
||||
|
||||
void Object79(Entity* this) {
|
||||
static void (*const actionFuncs[])(Object79Entity*) = {
|
||||
Object79_Init,
|
||||
Object79_Action1,
|
||||
Object79_Action2,
|
||||
};
|
||||
|
||||
if ((gPlayerState.flags & PL_MINISH) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
actionFuncs[this->action]((Object79Entity*)this);
|
||||
}
|
||||
|
||||
void Object79_Init(Object79Entity* this) {
|
||||
static const u8 Object79_Directions[] = { DirectionSouthWest, DirectionWest, DirectionNorthWest,
|
||||
DirectionNorthEast, DirectionEast, DirectionSouthEast };
|
||||
super->action++;
|
||||
super->speed = 0;
|
||||
this->unk6c = 0;
|
||||
this->unk7a = 0x1200;
|
||||
super->actionDelay = 0;
|
||||
super->field_0xf = 30;
|
||||
this->objDir.HALF.HI = Object79_Directions[super->type];
|
||||
this->unk74 = 0x2000;
|
||||
SetDefaultPriority(super, 6);
|
||||
if (super->type == 0) {
|
||||
this->unk7e = 0x40;
|
||||
LoadSwapGFX(super, 1, 0);
|
||||
InitAnimationForceUpdate(super, super->type);
|
||||
} else {
|
||||
Entity* parent;
|
||||
super->spriteVramOffset = super->parent->spriteVramOffset;
|
||||
parent = super->parent;
|
||||
super->frameIndex = super->type * 13 + parent->frameIndex;
|
||||
}
|
||||
sub_08098130(this);
|
||||
}
|
||||
|
||||
void Object79_Action1(Object79Entity* this) {
|
||||
if (super->type == 0) {
|
||||
UpdateAnimationSingleFrame(super);
|
||||
if (super->type2 != 0) {
|
||||
gPlayerEntity.field_0xf = 0;
|
||||
super->action++;
|
||||
InitAnimationForceUpdate(super, 1);
|
||||
SoundReq(SFX_178);
|
||||
}
|
||||
} else {
|
||||
Entity* parent = super->parent;
|
||||
super->frameIndex = super->type * 13 + parent->frameIndex;
|
||||
super->action = parent->action;
|
||||
}
|
||||
}
|
||||
|
||||
void Object79_Action2(Object79Entity* this) {
|
||||
if (this->unk6c >= 0x140001) {
|
||||
gPlayerState.flags |= PL_MINISH;
|
||||
DeleteThisEntity();
|
||||
} else {
|
||||
if (super->type == 0) {
|
||||
UpdateAnimationSingleFrame(super);
|
||||
if (--this->unk7e << 16 == -0x10000) {
|
||||
this->unk7e = 0x40;
|
||||
SoundReq(SFX_178);
|
||||
}
|
||||
} else {
|
||||
Entity* parent = super->parent;
|
||||
super->frameIndex = super->type * 13 + parent->frameIndex;
|
||||
}
|
||||
this->unk6c += 0x1400;
|
||||
this->objDir.WORD += this->unk74;
|
||||
this->objDir.HALF.HI = DirectionNormalize(this->objDir.HALF.HI);
|
||||
this->unk74 += 0x140;
|
||||
if (--super->field_0xf == 0xff) {
|
||||
super->field_0xf = 30;
|
||||
super->actionDelay ^= 1;
|
||||
}
|
||||
sub_08098130(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08098130(Object79Entity* this) {
|
||||
CopyPosition(&gPlayerEntity, super);
|
||||
super->direction = this->objDir.HALF.HI;
|
||||
super->speed = this->unk7a;
|
||||
LinearMoveUpdate(super);
|
||||
super->y.WORD -= 0x140000;
|
||||
super->y.WORD += this->unk6c;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
#include "sound.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0x18];
|
||||
u16 tilePos;
|
||||
} Object81Entity;
|
||||
|
||||
void Object81_Init(Object81Entity*);
|
||||
void Object81_Action1(Object81Entity*);
|
||||
|
||||
void Object81(Entity* this) {
|
||||
static void (*const actionFuncs[])(Object81Entity*) = {
|
||||
Object81_Init,
|
||||
Object81_Action1,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Object81Entity*)this);
|
||||
}
|
||||
|
||||
void Object81_Init(Object81Entity* this) {
|
||||
super->action = 1;
|
||||
super->actionDelay = 0;
|
||||
this->tilePos = COORD_TO_TILE(super);
|
||||
if (gPlayerState.flags & PL_MINISH) {
|
||||
super->collisionLayer = 2;
|
||||
} else {
|
||||
super->collisionLayer = 1;
|
||||
}
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
sub_08000148(0x47, this->tilePos - 0x40, 1);
|
||||
}
|
||||
|
||||
void Object81_Action1(Object81Entity* this) {
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "message.h"
|
||||
#include "kinstone.h"
|
||||
#include "common.h"
|
||||
#include "functions.h"
|
||||
|
||||
// typedef struct {
|
||||
// Entity base;
|
||||
// u8 filler[0x18];
|
||||
// u16 tilePos;
|
||||
// } Object81Entity;
|
||||
|
||||
extern void sub_080ADDD8(u32, u32);
|
||||
void sub_080838DC(Entity*);
|
||||
void sub_08083A40(Entity*);
|
||||
void Object9_Init(Entity*);
|
||||
void Object9_Action1(Entity*);
|
||||
void Object9_Action2(Entity*);
|
||||
|
||||
#ifdef EU
|
||||
static const s32 gUnk_0811F744[] = {
|
||||
0x00027940,
|
||||
0x00027B40,
|
||||
0x00027D40,
|
||||
0x00027F40,
|
||||
};
|
||||
#else
|
||||
static const s32 gUnk_0811F744[] = {
|
||||
0x00027980,
|
||||
0x00027B80,
|
||||
0x00027D80,
|
||||
0x00027F80,
|
||||
};
|
||||
#endif
|
||||
|
||||
void Object9(Entity* this) {
|
||||
static void (*const gUnk_0811F754[])(Entity*) = {
|
||||
Object9_Init,
|
||||
Object9_Action1,
|
||||
Object9_Action2,
|
||||
};
|
||||
|
||||
u32 uVar2 = gPlayerState.field_0x27[0] > 0;
|
||||
|
||||
switch (gFuseInfo._0) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
if ((gMessage.doTextBox & 0x7f) != 0) {
|
||||
default:
|
||||
if (gUnk_03003DF0.unk_4[3] == 50) {
|
||||
if (CheckKinstoneFused(0x32) == 0) {
|
||||
uVar2 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
uVar2 = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (uVar2) {
|
||||
sub_080838DC(this);
|
||||
}
|
||||
gUnk_0811F754[this->action](this);
|
||||
}
|
||||
|
||||
void sub_080838DC(Entity* this) {
|
||||
this->spriteSettings.draw = 0;
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->spriteRendering.b3 = 0;
|
||||
this->spritePriority.b0 = 0;
|
||||
this->actionDelay = 4;
|
||||
this->child = NULL;
|
||||
this->action = 0;
|
||||
}
|
||||
|
||||
void Object9_Init(Entity* this) {
|
||||
if (this->spriteAnimation[0] != 1) {
|
||||
LoadSwapGFX(this, 1, 1);
|
||||
this->spriteVramOffset -= 0x10;
|
||||
#ifdef EU
|
||||
sub_080ADDD8(1, 0x10277e0);
|
||||
#else
|
||||
sub_080ADDD8(1, 0x1027820);
|
||||
#endif
|
||||
sub_080838DC(this);
|
||||
}
|
||||
this->action = 1;
|
||||
this->flags |= ENT_PERSIST;
|
||||
SetDefaultPriority(this, 6);
|
||||
}
|
||||
|
||||
void Object9_Action1(Entity* this) {
|
||||
if (this->actionDelay) {
|
||||
this->actionDelay--;
|
||||
} else {
|
||||
if ((*(Entity**)(gUnk_03003DF0.unk_4 + 8) != NULL) && ((u8)(gUnk_03003DF0.unk_4[3] - 1) < 100)) {
|
||||
this->child = *(Entity**)(gUnk_03003DF0.unk_4 + 8);
|
||||
this->interactType = gUnk_03003DF0.unk_3;
|
||||
sub_08083A40(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Object9_Action2(Entity* this) {
|
||||
u32 bVar1;
|
||||
u32 bVar2;
|
||||
u32 bVar3;
|
||||
u32 temp;
|
||||
u32 temp2;
|
||||
struct_080C9CBC* ptr;
|
||||
|
||||
if ((this->type != 1) &&
|
||||
(((u8)(gUnk_03003DF0.unk_4[3] - 1) >= 100 || (this->child != *(Entity**)(gUnk_03003DF0.unk_4 + 8))))) {
|
||||
sub_080838DC(this);
|
||||
} else {
|
||||
this->x = this->child->x;
|
||||
this->y = this->child->y;
|
||||
this->z = this->child->z;
|
||||
if (this->frame == 1) {
|
||||
this->frame = 0;
|
||||
if (this->type == 0) {
|
||||
bVar2 = gUnk_03003DF0.unk_4[3];
|
||||
} else {
|
||||
bVar2 = this->type2;
|
||||
}
|
||||
ptr = gUnk_080C9CBC + bVar2;
|
||||
bVar1 = ptr->_5[0];
|
||||
bVar3 = bVar1 & 1;
|
||||
this->palette.b.b0 = bVar3;
|
||||
temp = gUnk_0811F744[bVar1] < 0;
|
||||
temp2 = (gUnk_0811F744[bVar1] & 0xffffff) | temp;
|
||||
sub_080ADDD8(0, temp2 | 0x1000000);
|
||||
}
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08083A40(Entity* this) {
|
||||
u32 bVar1;
|
||||
|
||||
this->spriteSettings.draw = 1;
|
||||
this->action = 2;
|
||||
if (this->child->x.HALF.HI > gPlayerEntity.x.HALF.HI) {
|
||||
bVar1 = 0;
|
||||
this->spriteOffsetX = 8;
|
||||
} else {
|
||||
bVar1 = 1;
|
||||
this->spriteOffsetX = -8;
|
||||
}
|
||||
this->spriteOffsetY = -18;
|
||||
InitializeAnimation(this, bVar1);
|
||||
Object9_Action2(this);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "coord.h"
|
||||
|
||||
void sub_0809E7C0(Entity*);
|
||||
void sub_0809E7E0(Entity*);
|
||||
void sub_0809E7FC(Entity*);
|
||||
|
||||
void Object9B(Entity* this) {
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0809E7C0,
|
||||
sub_0809E7E0,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((Entity*)this);
|
||||
}
|
||||
|
||||
void sub_0809E7C0(Entity* this) {
|
||||
this->action = 1;
|
||||
if (this->type2 != 0xff) {
|
||||
sub_0809E7FC(this);
|
||||
}
|
||||
InitializeAnimation(this, this->type);
|
||||
}
|
||||
|
||||
void sub_0809E7E0(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if (this->frame & 0x80) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0809E7FC(Entity* this) {
|
||||
static const s8 gUnk_081242D8[] = {
|
||||
0, -24, 16, -16, 24, 0, 16, 16, 0, 24, -16, 16, -24, 0, -16, -16,
|
||||
};
|
||||
int iVar1;
|
||||
const s8* ptr;
|
||||
|
||||
ptr = &gUnk_081242D8[this->type2 * 2];
|
||||
PositionRelative(this->parent, this, ptr[0] << 0x10, ptr[1] << 0x10);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
|
||||
void ObjectA7(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spritePriority.b0 = 6;
|
||||
InitializeAnimation(this, 0);
|
||||
}
|
||||
GetNextFrame(this);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "coord.h"
|
||||
|
||||
void ObjectB6(Entity* this) {
|
||||
if (this->parent->subAction > 3) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
InitializeAnimation(this, this->type);
|
||||
}
|
||||
sub_0806FA90(this->parent, this, 0, this->type);
|
||||
this->spriteOffsetY = this->spriteOffsetY - this->type;
|
||||
GetNextFrame(this);
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
#include "asm.h"
|
||||
#include "sound.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
#include "effects.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 filler[0x4];
|
||||
u32 unk6c;
|
||||
u32 unk70;
|
||||
u16 tilePos;
|
||||
u16 unk76;
|
||||
u16 unk78;
|
||||
u16 unk7a;
|
||||
} PlayerCloneEntity;
|
||||
|
||||
extern Entity* sub_08077CF8(u32 subtype, u32 form, u32 parameter, u32 unk);
|
||||
extern const s16 gUnk_080B4468[];
|
||||
|
||||
void PlayerClone_Init(PlayerCloneEntity*);
|
||||
void PlayerClone_Action1(PlayerCloneEntity*);
|
||||
void PlayerClone_Action2(PlayerCloneEntity*);
|
||||
void sub_08084B1C(PlayerCloneEntity*);
|
||||
void sub_08084CAC(PlayerCloneEntity*);
|
||||
|
||||
void PlayerClone(Entity* this) {
|
||||
static void (*const actionFuncs[])(PlayerCloneEntity*) = {
|
||||
PlayerClone_Init,
|
||||
PlayerClone_Action1,
|
||||
PlayerClone_Action2,
|
||||
};
|
||||
|
||||
actionFuncs[this->action]((PlayerCloneEntity*)this);
|
||||
}
|
||||
|
||||
void PlayerClone_Init(PlayerCloneEntity* this) {
|
||||
super->action = 1;
|
||||
super->spriteRendering.b3 = 2;
|
||||
super->spritePriority.b0 = 4;
|
||||
super->x.HALF.HI = (super->x.HALF.HI & 0xfff0) | 8;
|
||||
super->y.HALF.HI = (super->y.HALF.HI & 0xfff0) | 8;
|
||||
this->tilePos = COORD_TO_TILE(super);
|
||||
InitializeAnimation(super, 8);
|
||||
SetTile(0x4016, this->tilePos, super->collisionLayer);
|
||||
SoundReq(SFX_112);
|
||||
}
|
||||
|
||||
const u16 PlayerCloneCollisions[] = { 0x2206, 0x6044, 0x4460, 0x622 };
|
||||
|
||||
void PlayerClone_Action1(PlayerCloneEntity* this) {
|
||||
static const Hitbox PlayerCloneHitbox = { 0, -3, { 5, 3, 3, 5 }, 6, 6 };
|
||||
|
||||
if (gPlayerState.chargeState.action == 5) {
|
||||
super->spriteSettings.draw = 1;
|
||||
super->health = 1;
|
||||
super->action = 2;
|
||||
super->updatePriority = 6;
|
||||
super->hitbox = (Hitbox*)&PlayerCloneHitbox;
|
||||
super->field_0xf = (super->type + 1) * 15;
|
||||
this->unk78 = super->x.HALF.HI - gPlayerEntity.x.HALF.HI;
|
||||
this->unk7a = super->y.HALF.HI - gPlayerEntity.y.HALF.HI;
|
||||
if ((this->unk78 != 0) && (this->unk7a != 0)) {
|
||||
((PlayerCloneEntity*)gPlayerClones[super->type])->unk70 = 1;
|
||||
}
|
||||
sub_08000152(0x315, this->tilePos, super->collisionLayer);
|
||||
super->child = sub_08077CF8(1, super->type + 1, 0, ((GenericEntity*)gPlayerState.item)->field_0x68.HALF.LO);
|
||||
if (super->child != NULL) {
|
||||
super->child->parent = super;
|
||||
}
|
||||
sub_0801766C(super);
|
||||
sub_0806FDA0(super);
|
||||
PlayerClone_Action2(this);
|
||||
} else if (gPlayerState.chargeState.action != 4) {
|
||||
sub_08000152(0x315, this->tilePos, super->collisionLayer);
|
||||
gPlayerClones[super->type] = NULL;
|
||||
DeleteThisEntity();
|
||||
} else {
|
||||
super->spriteSettings.draw ^= 1;
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerClone_Action2(PlayerCloneEntity* this) {
|
||||
u32 index;
|
||||
|
||||
if (super->field_0xf == 1) {
|
||||
SoundReq(SFX_PLY_VO2);
|
||||
super->field_0xf--;
|
||||
} else if (super->field_0xf != 0) {
|
||||
super->field_0xf--;
|
||||
}
|
||||
|
||||
if (gPlayerState.chargeState.action == 5 && gPlayerClones[super->type] != NULL && gPlayerState.framestate != 19 &&
|
||||
super->health != 0) {
|
||||
if (gPlayerEntity.iframes >= 1) {
|
||||
gPlayerState.chargeState.action = 1;
|
||||
} else {
|
||||
sub_080B1AA8(super);
|
||||
sub_08084B1C(this);
|
||||
super->x.HALF.HI = gPlayerEntity.x.HALF.HI + this->unk78;
|
||||
super->y.HALF.HI = gPlayerEntity.y.HALF.HI + this->unk7a;
|
||||
sub_08084CAC(this);
|
||||
sub_080085B0(super);
|
||||
if ((super->collisions & 0x6666) != 0x6666) {
|
||||
for (index = 0; index <= 3; index++) {
|
||||
if (PlayerCloneCollisions[index] == (PlayerCloneCollisions[index] & super->collisions)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (index == 4) {
|
||||
super->actionDelay = 0;
|
||||
super->spriteSettings.draw = 1;
|
||||
return;
|
||||
} else {
|
||||
if (super->actionDelay != 0) {
|
||||
if (--super->actionDelay != 0) {
|
||||
super->spriteSettings.draw ^= 1;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
super->actionDelay = 30;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
gPlayerState.chargeState.action = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
DeleteClones();
|
||||
CreateFx(super, FX_SPARKLE_SECRET, 0);
|
||||
DeleteEntity(super->child);
|
||||
SoundReq(SFX_18F);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_08084B1C(PlayerCloneEntity* this) {
|
||||
super->flags = gPlayerEntity.flags;
|
||||
super->spriteVramOffset = gPlayerEntity.spriteVramOffset;
|
||||
super->frameIndex = gPlayerEntity.frameIndex;
|
||||
super->frameSpriteSettings = gPlayerEntity.frameSpriteSettings;
|
||||
super->spriteIndex = gPlayerEntity.spriteIndex;
|
||||
super->direction = gPlayerEntity.direction;
|
||||
super->animationState = gPlayerEntity.animationState;
|
||||
super->spriteSettings.flipX = gPlayerEntity.spriteSettings.flipX;
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
super->spritePriority.b0 = gPlayerEntity.spritePriority.b0;
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
super->flags2 = gPlayerEntity.flags2;
|
||||
super->hitType = gPlayerEntity.hitType;
|
||||
super->field_0x3c = gPlayerEntity.field_0x3c;
|
||||
super->hurtType = gPlayerEntity.hurtType;
|
||||
CopyPosition(super, super->child);
|
||||
if (gPlayerState.field_0x3[1] != 0) {
|
||||
super->child->damage = gPlayerState.item->damage;
|
||||
super->child->frameIndex = gPlayerState.item->frameIndex;
|
||||
super->child->spriteSettings.flipX = gPlayerState.item->spriteSettings.flipX;
|
||||
super->child->spriteRendering.b3 = gPlayerState.item->spriteRendering.b3;
|
||||
super->child->spritePriority.b0 = gPlayerState.item->spritePriority.b0;
|
||||
if (super->child->spriteSettings.flipX) {
|
||||
super->child->hitbox->offset_x = -super->child->hitbox->offset_x;
|
||||
}
|
||||
}
|
||||
sub_0806FEBC(super, 0, 0);
|
||||
sub_0806FEBC(super, 1, 0);
|
||||
sub_0806FEBC(super, 2, super);
|
||||
sub_0806FEBC(super, 3, 0);
|
||||
sub_08078E84(super->child, super);
|
||||
}
|
||||
|
||||
void sub_08084CAC(PlayerCloneEntity* this) {
|
||||
const s16* ptr;
|
||||
|
||||
if (((PlayerCloneEntity*)gPlayerClones[super->type])->unk70 == 0) {
|
||||
ptr = &gUnk_080B4468[super->animationState & 6];
|
||||
if (sub_080B1B54(GetTileType(COORD_TO_TILE_OFFSET(super, -ptr[0], -ptr[1]), super->collisionLayer)) == 0x72) {
|
||||
((PlayerCloneEntity*)gPlayerClones[0])->unk6c |= (1 << super->type);
|
||||
} else {
|
||||
((PlayerCloneEntity*)gPlayerClones[0])->unk6c &= ~(1 << super->type);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -138,10 +139,10 @@ void SmallIceBlock_Action3(SmallIceBlockEntity* this) {
|
||||
}
|
||||
sub_0805EC9C(super, 0x100, gUnk_08123748[super->actionDelay >> 5], 0);
|
||||
if (super->type == 1) {
|
||||
CreateGroundItemWithFlags(super, 0x53, 0, this->unk_86);
|
||||
CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->unk_86);
|
||||
SoundReq(SFX_SECRET);
|
||||
} else if (super->type == 2) {
|
||||
CreateGroundItemWithFlags(super, 0x52, 0, this->unk_86);
|
||||
CreateGroundItemWithFlags(super, ITEM_BIG_KEY, 0, this->unk_86);
|
||||
SoundReq(SFX_SECRET);
|
||||
}
|
||||
super->action = 4;
|
||||
|
||||
@@ -7,12 +7,21 @@
|
||||
#include "functions.h"
|
||||
#include "effects.h"
|
||||
|
||||
extern void (*const gUnk_08124354[])(Entity*);
|
||||
extern const s16 gUnk_080B4468[];
|
||||
|
||||
extern s16 gUnk_08124364[];
|
||||
void sub_0809E83C(Entity* this);
|
||||
void sub_0809E86C(Entity* this);
|
||||
void sub_0809E8BC(Entity* this);
|
||||
void sub_0809E8EC(Entity* this);
|
||||
|
||||
void TreeHidingPortal(Entity* this) {
|
||||
gUnk_08124354[this->action](this);
|
||||
static void (*const actionFuncs[])(Entity*) = {
|
||||
sub_0809E83C,
|
||||
sub_0809E86C,
|
||||
sub_0809E8BC,
|
||||
sub_0809E8EC,
|
||||
};
|
||||
actionFuncs[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0809E83C(Entity* this) {
|
||||
@@ -61,8 +70,12 @@ void sub_0809E8EC(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_0809E918(Entity* this) {
|
||||
static const s16 gUnk_08124364[] = {
|
||||
0, -4, 8, -4, 16, -4, 22, -4, -8, -4, -16, -4, -22, -4, 0, -12, 0, 4, 8, -12,
|
||||
8, 4, -8, -12, -8, 4, 8, -16, -8, -16, 12, -16, -12, -16, 16, -14, -16, -14, -1000, 0,
|
||||
};
|
||||
Entity* fx;
|
||||
s16* i = gUnk_08124364;
|
||||
const s16* i = gUnk_08124364;
|
||||
while (*i != -1000) {
|
||||
fx = CreateFx(this, FX_BUSH, 0);
|
||||
if (fx != NULL) {
|
||||
@@ -78,3 +91,17 @@ void sub_0809E918(Entity* this) {
|
||||
void sub_0809E96C(Entity* this) {
|
||||
CreateMinishEntrance(COORD_TO_TILE_OFFSET(this, 0x20, 0x8));
|
||||
}
|
||||
|
||||
u32 sub_0809E9A0(void) {
|
||||
u32 rv;
|
||||
const s16* ptr;
|
||||
|
||||
if (gPlayerEntity.action != PLAYER_BOUNCE) {
|
||||
rv = 0;
|
||||
} else {
|
||||
ptr = &gUnk_080B4468[gPlayerEntity.animationState & 6];
|
||||
rv = sub_080B1AE0(COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr[0], -ptr[1]), 1);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
+1
-1
@@ -3501,7 +3501,7 @@ void SurfaceAction_CloneTile(Entity* this) {
|
||||
break;
|
||||
}
|
||||
if (n > i) {
|
||||
Entity* e = CreateObjectWithParent(this, OBJECT_10, i, 0);
|
||||
Entity* e = CreateObjectWithParent(this, PLAYER_CLONE, i, 0);
|
||||
gPlayerClones[i] = e;
|
||||
if (e != NULL) {
|
||||
CopyPosition(this, e);
|
||||
|
||||
Reference in New Issue
Block a user