mirror of
https://github.com/zeldaret/tmc
synced 2026-07-08 14:36:41 -04:00
@@ -1,156 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start EnemyItem
|
||||
EnemyItem: @ 0x080A2448
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080A245E
|
||||
adds r0, r5, #0
|
||||
bl sub_080A2500
|
||||
_080A245E:
|
||||
ldrb r0, [r5, #0xc]
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bne _080A24CE
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r0, [r5, #0xe]
|
||||
strb r0, [r5, #0xa]
|
||||
str r1, [r5, #0x54]
|
||||
ldr r2, _080A24B4 @ =gEntityLists + 32
|
||||
ldr r4, [r2, #4]
|
||||
cmp r4, r2
|
||||
beq _080A24BE
|
||||
_080A2478:
|
||||
ldrb r0, [r4, #8]
|
||||
cmp r0, #3
|
||||
bne _080A24B8
|
||||
ldrb r0, [r5, #0xb]
|
||||
ldrb r1, [r4, #9]
|
||||
cmp r0, r1
|
||||
bne _080A24B8
|
||||
movs r3, #0x2e
|
||||
ldrsh r0, [r4, r3]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r5, r3]
|
||||
subs r0, r0, r1
|
||||
adds r0, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x1f
|
||||
bhi _080A24B8
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r5, r3]
|
||||
subs r0, r0, r1
|
||||
adds r0, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x1f
|
||||
bhi _080A24B8
|
||||
str r4, [r5, #0x54]
|
||||
b _080A24BE
|
||||
.align 2, 0
|
||||
_080A24B4: .4byte gEntityLists + 32
|
||||
_080A24B8:
|
||||
ldr r4, [r4, #4]
|
||||
cmp r4, r2
|
||||
bne _080A2478
|
||||
_080A24BE:
|
||||
ldr r0, [r5, #0x54]
|
||||
cmp r0, #0
|
||||
bne _080A24CA
|
||||
adds r0, r5, #0
|
||||
bl sub_080A2534
|
||||
_080A24CA:
|
||||
bl sub_08054564
|
||||
_080A24CE:
|
||||
ldr r4, [r5, #0x54]
|
||||
cmp r4, #0
|
||||
beq _080A24F6
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0xb
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #9
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl PositionRelative
|
||||
ldrh r0, [r5, #0x36]
|
||||
subs r0, #4
|
||||
strh r0, [r5, #0x36]
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
bne _080A24F6
|
||||
adds r0, r5, #0
|
||||
bl sub_080A2508
|
||||
_080A24F6:
|
||||
adds r0, r5, #0
|
||||
bl sub_08080CB4
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A2500
|
||||
sub_080A2500: @ 0x080A2500
|
||||
push {lr}
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080A2508
|
||||
sub_080A2508: @ 0x080A2508
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r2, [r4, #0xa]
|
||||
movs r1, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _080A252C
|
||||
movs r0, #5
|
||||
strb r0, [r2, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x86
|
||||
strh r1, [r0]
|
||||
_080A252C:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2500
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A2534
|
||||
sub_080A2534: @ 0x080A2534
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r2, [r4, #0xa]
|
||||
movs r1, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _080A2558
|
||||
movs r0, #4
|
||||
strb r0, [r2, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x86
|
||||
strh r1, [r0]
|
||||
_080A2558:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2500
|
||||
pop {r4, pc}
|
||||
@@ -1,370 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start FourElements
|
||||
FourElements: @ 0x080A01C0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _080A01DC @ =gUnk_08124898
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r0, r4, #0
|
||||
bl sub_08080CB4
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A01DC: .4byte gUnk_08124898
|
||||
|
||||
thumb_func_start sub_080A01E0
|
||||
sub_080A01E0: @ 0x080A01E0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
movs r3, #1
|
||||
strb r3, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldr r0, _080A027C @ =gHitbox_6
|
||||
str r0, [r4, #0x48]
|
||||
ldr r0, _080A0280 @ =0x0000FF40
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6a
|
||||
movs r0, #0x40
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x43
|
||||
bgt _080A0246
|
||||
cmp r0, #0x42
|
||||
bge _080A0246
|
||||
cmp r0, #0x40
|
||||
beq _080A0246
|
||||
cmp r0, #0x41
|
||||
bne _080A0246
|
||||
ldr r2, _080A0284 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _080A0288 @ =0x0000FDFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r3, [r0]
|
||||
_080A0246:
|
||||
ldr r0, _080A028C @ =script_PlayerGetElement
|
||||
bl StartPlayerScript
|
||||
ldr r1, _080A0284 @ =gScreen
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0xc8
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r2]
|
||||
adds r1, #0x68
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
strh r0, [r1]
|
||||
bl sub_0805BC4C
|
||||
ldrb r2, [r4, #0xa]
|
||||
subs r2, #0x40
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xad
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
cmp r0, #0
|
||||
beq _080A027A
|
||||
str r4, [r0, #0x50]
|
||||
str r0, [r4, #0x54]
|
||||
_080A027A:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A027C: .4byte gHitbox_6
|
||||
_080A0280: .4byte 0x0000FF40
|
||||
_080A0284: .4byte gScreen
|
||||
_080A0288: .4byte 0x0000FDFF
|
||||
_080A028C: .4byte script_PlayerGetElement
|
||||
|
||||
thumb_func_start sub_080A0290
|
||||
sub_080A0290: @ 0x080A0290
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _080A02BC @ =gActiveScriptInfo
|
||||
ldr r0, [r5]
|
||||
movs r1, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A02CA
|
||||
adds r0, r4, #0
|
||||
bl sub_080A0424
|
||||
ldrh r2, [r4, #0x36]
|
||||
movs r0, #0x36
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bge _080A02C0
|
||||
adds r0, r2, #1
|
||||
strh r0, [r4, #0x36]
|
||||
b _080A02CA
|
||||
.align 2, 0
|
||||
_080A02BC: .4byte gActiveScriptInfo
|
||||
_080A02C0:
|
||||
movs r1, #2
|
||||
strb r1, [r4, #0xc]
|
||||
ldr r0, [r5]
|
||||
orrs r0, r1
|
||||
str r0, [r5]
|
||||
_080A02CA:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_080A02CC
|
||||
sub_080A02CC: @ 0x080A02CC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080A0424
|
||||
adds r0, r4, #0
|
||||
bl sub_080A0444
|
||||
adds r0, r4, #0
|
||||
bl IsCollidingPlayer
|
||||
cmp r0, #0
|
||||
beq _080A0342
|
||||
ldr r0, [r4, #0x54]
|
||||
bl DeleteEntity
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r2, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x2d
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r0, _080A0344 @ =gScreen
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x66
|
||||
movs r1, #0xc8
|
||||
lsls r1, r1, #3
|
||||
strh r1, [r3]
|
||||
adds r0, #0x68
|
||||
strh r2, [r0]
|
||||
ldrb r0, [r4, #0xa]
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl sub_080A7C18
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_0808C650
|
||||
movs r0, #6
|
||||
movs r1, #2
|
||||
bl SetFade
|
||||
movs r0, #0xf8
|
||||
bl SoundReq
|
||||
movs r0, #0xa4
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
movs r0, #5
|
||||
bl SoundReq
|
||||
ldr r0, _080A0348 @ =0x80110000
|
||||
bl SoundReq
|
||||
_080A0342:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A0344: .4byte gScreen
|
||||
_080A0348: .4byte 0x80110000
|
||||
|
||||
thumb_func_start sub_080A034C
|
||||
sub_080A034C: @ 0x080A034C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _080A0378
|
||||
adds r0, r4, #0
|
||||
bl sub_080A0424
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A038C
|
||||
ldr r0, _080A0374 @ =gPlayerEntity
|
||||
movs r1, #0
|
||||
bl SetDefaultPriority
|
||||
b _080A038C
|
||||
.align 2, 0
|
||||
_080A0374: .4byte gPlayerEntity
|
||||
_080A0378:
|
||||
movs r0, #0
|
||||
movs r1, #0x3c
|
||||
bl RequestPriorityDuration
|
||||
bl sub_0808C67C
|
||||
cmp r0, #0
|
||||
beq _080A038C
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
_080A038C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0390
|
||||
sub_080A0390: @ 0x080A0390
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r1, #0x3c
|
||||
bl RequestPriorityDuration
|
||||
ldr r0, _080A03B4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A03B2
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0xd2
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r1]
|
||||
_080A03B2:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A03B4: .4byte gFadeControl
|
||||
|
||||
thumb_func_start sub_080A03B8
|
||||
sub_080A03B8: @ 0x080A03B8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r1, #0xa
|
||||
bl RequestPriorityDuration
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A03E4
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl sub_0805429C
|
||||
adds r1, r4, #0
|
||||
bl MessageNoOverlap
|
||||
_080A03E4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A03E8
|
||||
sub_080A03E8: @ 0x080A03E8
|
||||
push {lr}
|
||||
movs r0, #0
|
||||
movs r1, #0xa
|
||||
bl RequestPriorityDuration
|
||||
ldr r0, _080A041C @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A041A
|
||||
movs r0, #0x5a
|
||||
bl SetPriorityTimer
|
||||
ldr r0, _080A0420 @ =gPlayerState
|
||||
adds r0, #0x8b
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
bl sub_0807DF50
|
||||
movs r0, #0
|
||||
bl SetRoomFlag
|
||||
bl DeleteThisEntity
|
||||
_080A041A:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A041C: .4byte gMessage
|
||||
_080A0420: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_080A0424
|
||||
sub_080A0424: @ 0x080A0424
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x6a
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0442
|
||||
movs r0, #0x40
|
||||
strb r0, [r1]
|
||||
movs r0, #0xbc
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_080A0442:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080A0444
|
||||
sub_080A0444: @ 0x080A0444
|
||||
ldr r3, _080A0460 @ =gUnk_081248B4
|
||||
ldrb r1, [r0, #0xf]
|
||||
adds r2, r1, #1
|
||||
strb r2, [r0, #0xf]
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x1b
|
||||
movs r2, #7
|
||||
ands r1, r2
|
||||
adds r1, r1, r3
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
strh r1, [r0, #0x36]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080A0460: .4byte gUnk_081248B4
|
||||
|
||||
thumb_func_start sub_080A0464
|
||||
sub_080A0464: @ 0x080A0464
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
movs r0, #6
|
||||
movs r1, #0xac
|
||||
movs r2, #6
|
||||
bl FindEntityByID
|
||||
cmp r0, #0
|
||||
beq _080A048A
|
||||
movs r1, #0x2e
|
||||
ldrsh r2, [r0, r1]
|
||||
movs r1, #0x32
|
||||
ldrsh r3, [r0, r1]
|
||||
adds r3, #0x18
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0807DEDC
|
||||
_080A048A:
|
||||
pop {r4, r5, pc}
|
||||
@@ -1,364 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ItemForSale
|
||||
ItemForSale: @ 0x08081814
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _08081850 @ =gUnk_0811EE28
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r0, r4, #0
|
||||
bl CheckOnScreen
|
||||
cmp r0, #0
|
||||
beq _08081838
|
||||
adds r0, r4, #0
|
||||
bl sub_08080CB4
|
||||
_08081838:
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #2
|
||||
bgt _0808184E
|
||||
cmp r0, #1
|
||||
blt _0808184E
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #1
|
||||
bne _0808184E
|
||||
adds r0, r4, #0
|
||||
bl sub_0800445C
|
||||
_0808184E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08081850: .4byte gUnk_0811EE28
|
||||
|
||||
thumb_func_start sub_08081854
|
||||
sub_08081854: @ 0x08081854
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r3, #0
|
||||
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, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
strb r3, [r4, #0x16]
|
||||
.ifdef EU
|
||||
adds r0, r4, #0x0
|
||||
movs r1, #0x6
|
||||
bl SetDefaultPriority
|
||||
.endif
|
||||
str r4, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
bl sub_08081A5C
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0808188E
|
||||
cmp r0, #1
|
||||
beq _08081898
|
||||
b _0808189C
|
||||
_0808188E:
|
||||
ldr r0, _08081894 @ =gUnk_080FD328
|
||||
b _0808189A
|
||||
.align 2, 0
|
||||
_08081894: .4byte gUnk_080FD328
|
||||
_08081898:
|
||||
ldr r0, _080818A0 @ =gHitbox_5
|
||||
_0808189A:
|
||||
str r0, [r4, #0x48]
|
||||
_0808189C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080818A0: .4byte gHitbox_5
|
||||
|
||||
thumb_func_start sub_080818A4
|
||||
sub_080818A4: @ 0x080818A4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r2, [r4, #0xd]
|
||||
cmp r2, #0
|
||||
beq _080818C0
|
||||
movs r1, #2
|
||||
strb r1, [r4, #0xc]
|
||||
ldr r0, _080818BC @ =gUnk_0200AF00
|
||||
adds r0, #0x2f
|
||||
strb r1, [r0]
|
||||
b _08081920
|
||||
.align 2, 0
|
||||
_080818BC: .4byte gUnk_0200AF00
|
||||
_080818C0:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x36
|
||||
bne _080818F0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
beq _08081920
|
||||
strb r2, [r1]
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r1, _080818E8 @ =gRoomVars
|
||||
movs r0, #1
|
||||
str r0, [r1, #0x68]
|
||||
ldr r1, _080818EC @ =gPlayerState
|
||||
movs r0, #7
|
||||
strb r0, [r1, #0xc]
|
||||
b _08081920
|
||||
.align 2, 0
|
||||
_080818E8: .4byte gRoomVars
|
||||
_080818EC: .4byte gPlayerState
|
||||
_080818F0:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
beq _08081920
|
||||
strb r2, [r1]
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
bl sub_08078B48
|
||||
bl ResetPlayer
|
||||
ldr r1, _08081924 @ =gPlayerState
|
||||
movs r0, #4
|
||||
strb r0, [r1, #5]
|
||||
ldr r0, _08081928 @ =gPlayerEntity
|
||||
str r4, [r0, #0x74]
|
||||
ldr r0, _0808192C @ =gUnk_0200AF00
|
||||
adds r0, #0x2f
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
bl MessageClose
|
||||
_08081920:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08081924: .4byte gPlayerState
|
||||
_08081928: .4byte gPlayerEntity
|
||||
_0808192C: .4byte gUnk_0200AF00
|
||||
|
||||
thumb_func_start sub_08081930
|
||||
sub_08081930: @ 0x08081930
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08081968 @ =gUnk_0200AF00
|
||||
adds r6, r0, #0
|
||||
adds r6, #0x2f
|
||||
movs r0, #2
|
||||
strb r0, [r6]
|
||||
ldr r3, _0808196C @ =gPlayerEntity
|
||||
ldrb r1, [r3, #0x18]
|
||||
lsls r1, r1, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
ldrb r2, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldr r5, _08081970 @ =gPlayerState
|
||||
ldrb r0, [r5, #5]
|
||||
cmp r0, #0
|
||||
beq _0808195E
|
||||
ldr r0, [r3, #0x74]
|
||||
cmp r4, r0
|
||||
beq _08081974
|
||||
_0808195E:
|
||||
adds r0, r4, #0
|
||||
bl sub_080819B4
|
||||
b _080819AC
|
||||
.align 2, 0
|
||||
_08081968: .4byte gUnk_0200AF00
|
||||
_0808196C: .4byte gPlayerEntity
|
||||
_08081970: .4byte gPlayerState
|
||||
_08081974:
|
||||
bl sub_080784E4
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
beq _08081998
|
||||
ldrb r0, [r1, #1]
|
||||
cmp r0, #1
|
||||
bne _08081998
|
||||
movs r0, #7
|
||||
strb r0, [r6]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x88
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080819AC
|
||||
_08081998:
|
||||
ldr r0, _080819B0 @ =gPlayerState
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x98
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080819AC
|
||||
adds r0, r4, #0
|
||||
bl sub_080819B4
|
||||
_080819AC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080819B0: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_080819B4
|
||||
sub_080819B4: @ 0x080819B4
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _08081A48 @ =gRoomVars
|
||||
ldrb r0, [r0, #6]
|
||||
cmp r0, #0
|
||||
bne _080819D4
|
||||
ldr r0, [r5, #0x50]
|
||||
cmp r0, #0
|
||||
beq _080819D0
|
||||
adds r0, #0x20
|
||||
ldrb r1, [r5, #0xf]
|
||||
adds r0, r0, r1
|
||||
movs r1, #0xff
|
||||
strb r1, [r0]
|
||||
_080819D0:
|
||||
bl DeleteThisEntity
|
||||
_080819D4:
|
||||
ldr r0, _08081A4C @ =gPlayerState
|
||||
movs r2, #0
|
||||
strb r2, [r0, #5]
|
||||
ldr r4, _08081A50 @ =gPlayerEntity
|
||||
str r2, [r4, #0x74]
|
||||
ldr r1, _08081A54 @ =gUnk_0200AF00
|
||||
ldr r3, _08081A48 @ =gRoomVars
|
||||
strb r2, [r3, #6]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x2c
|
||||
strb r2, [r0]
|
||||
adds r1, #0x2f
|
||||
strb r2, [r1]
|
||||
strb r2, [r3, #7]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x80
|
||||
ldr r3, _08081A58 @ =gRoomControls
|
||||
ldrh r0, [r3, #6]
|
||||
ldrh r1, [r1]
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
strh r0, [r5, #0x2e]
|
||||
movs r6, #0x82
|
||||
ldrh r0, [r3, #8]
|
||||
ldrh r3, [r6, r5]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r5, #0x32]
|
||||
str r2, [r5, #0x34]
|
||||
movs r3, #1
|
||||
strb r3, [r5, #0xc]
|
||||
strb r1, [r5, #0xd]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r5, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x1b]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
strb r3, [r0]
|
||||
adds r2, r5, #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]
|
||||
adds r0, r5, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
adds r0, r5, #0
|
||||
bl sub_08081A5C
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08081A48: .4byte gRoomVars
|
||||
_08081A4C: .4byte gPlayerState
|
||||
_08081A50: .4byte gPlayerEntity
|
||||
_08081A54: .4byte gUnk_0200AF00
|
||||
_08081A58: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_08081A5C
|
||||
sub_08081A5C: @ 0x08081A5C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080787D8
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #1
|
||||
bne _08081A7A
|
||||
ldr r0, _08081A7C @ =gUnk_03003DF0
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
strb r0, [r1, #0xa]
|
||||
_08081A7A:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08081A7C: .4byte gUnk_03003DF0
|
||||
|
||||
thumb_func_start sub_08081A80
|
||||
sub_08081A80: @ 0x08081A80
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _08081A98 @ =gRoomVars
|
||||
ldr r0, [r0, #0x68]
|
||||
cmp r0, #0
|
||||
bne _08081A9C
|
||||
bl sub_08081AB0
|
||||
bl DeleteThisEntity
|
||||
b _08081AAC
|
||||
.align 2, 0
|
||||
_08081A98: .4byte gRoomVars
|
||||
_08081A9C:
|
||||
cmp r0, #2
|
||||
bne _08081AAC
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
strb r1, [r2, #0xd]
|
||||
bl sub_08081AB0
|
||||
_08081AAC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08081AB0
|
||||
sub_08081AB0: @ 0x08081AB0
|
||||
push {lr}
|
||||
ldr r1, _08081AC4 @ =gRoomVars
|
||||
movs r0, #0
|
||||
str r0, [r1, #0x68]
|
||||
strb r0, [r1, #6]
|
||||
strb r0, [r1, #7]
|
||||
bl SetPlayerControl
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08081AC4: .4byte gRoomVars
|
||||
@@ -1,452 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start MinecartDoor
|
||||
MinecartDoor: @ 0x08096AD4
|
||||
push {lr}
|
||||
ldr r2, _08096AE8 @ =gUnk_0812323C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08096AE8: .4byte gUnk_0812323C
|
||||
|
||||
thumb_func_start sub_08096AEC
|
||||
sub_08096AEC: @ 0x08096AEC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080837B0
|
||||
cmp r0, #0
|
||||
beq _08096BB6
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08096B12
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0xa]
|
||||
_08096B12:
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
ldrh r1, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x70
|
||||
strh r1, [r0]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #5
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _08096B90 @ =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, #0x76
|
||||
strh r1, [r5]
|
||||
ldrh r0, [r5]
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
bl sub_08096CEC
|
||||
cmp r0, #0
|
||||
beq _08096B9C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7e
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08096B94
|
||||
bl DeleteThisEntity
|
||||
b _08096BB6
|
||||
.align 2, 0
|
||||
_08096B90: .4byte gRoomControls
|
||||
_08096B94:
|
||||
adds r0, r4, #0
|
||||
bl sub_08096E04
|
||||
b _08096BB6
|
||||
_08096B9C:
|
||||
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]
|
||||
ldr r0, _08096BB8 @ =0x00004022
|
||||
ldrh r1, [r5]
|
||||
ldrb r2, [r6]
|
||||
bl SetTile
|
||||
_08096BB6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08096BB8: .4byte 0x00004022
|
||||
|
||||
thumb_func_start sub_08096BBC
|
||||
sub_08096BBC: @ 0x08096BBC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08096CEC
|
||||
cmp r0, #0
|
||||
beq _08096BF2
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #3
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x76
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
ldr r0, _08096BF4 @ =0x0000010B
|
||||
bl EnqueueSFX
|
||||
_08096BF2:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08096BF4: .4byte 0x0000010B
|
||||
|
||||
thumb_func_start sub_08096BF8
|
||||
sub_08096BF8: @ 0x08096BF8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08096C3A
|
||||
adds r0, r4, #0
|
||||
bl sub_08096E04
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x70
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x72
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7e
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08096C3A
|
||||
bl DeleteThisEntity
|
||||
_08096C3A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08096C3C
|
||||
sub_08096C3C: @ 0x08096C3C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7e
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08096C56
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
bne _08096CAE
|
||||
_08096C56:
|
||||
ldr r0, _08096C80 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08096C92
|
||||
ldrb r2, [r4, #0xa]
|
||||
lsls r1, r2, #1
|
||||
ldr r0, _08096C84 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
cmp r1, r0
|
||||
bne _08096C88
|
||||
adds r0, r4, #0
|
||||
adds r1, r2, #0
|
||||
bl sub_08083734
|
||||
cmp r0, #0
|
||||
beq _08096CAE
|
||||
b _08096C9C
|
||||
.align 2, 0
|
||||
_08096C80: .4byte gPlayerState
|
||||
_08096C84: .4byte gPlayerEntity
|
||||
_08096C88:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
b _08096C98
|
||||
_08096C92:
|
||||
adds r0, r4, #0
|
||||
bl sub_08096D84
|
||||
_08096C98:
|
||||
cmp r0, #0
|
||||
bne _08096CAE
|
||||
_08096C9C:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x76
|
||||
ldrh r2, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_080836DC
|
||||
_08096CAE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08096CB0
|
||||
sub_08096CB0: @ 0x08096CB0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08096CE6
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x70
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x72
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x32]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_08083814
|
||||
ldr r0, _08096CE8 @ =0x0000010B
|
||||
bl EnqueueSFX
|
||||
_08096CE6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08096CE8: .4byte 0x0000010B
|
||||
|
||||
thumb_func_start sub_08096CEC
|
||||
sub_08096CEC: @ 0x08096CEC
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7e
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08096D06
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
bne _08096D60
|
||||
_08096D06:
|
||||
ldr r0, _08096D40 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08096D64
|
||||
ldr r3, _08096D44 @ =gPlayerEntity
|
||||
ldrb r2, [r4, #0xa]
|
||||
lsls r0, r2, #1
|
||||
ldrb r1, [r3, #0x14]
|
||||
eors r0, r1
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08096D64
|
||||
movs r0, #1
|
||||
ands r2, r0
|
||||
cmp r2, #0
|
||||
beq _08096D48
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r3, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r5, #0x2e
|
||||
ldrsh r2, [r3, r5]
|
||||
movs r5, #0x2e
|
||||
ldrsh r3, [r4, r5]
|
||||
b _08096D58
|
||||
.align 2, 0
|
||||
_08096D40: .4byte gPlayerState
|
||||
_08096D44: .4byte gPlayerEntity
|
||||
_08096D48:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r3, r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r5, #0x32
|
||||
ldrsh r2, [r3, r5]
|
||||
movs r5, #0x32
|
||||
ldrsh r3, [r4, r5]
|
||||
_08096D58:
|
||||
bl sub_08096D68
|
||||
cmp r0, #0
|
||||
beq _08096D64
|
||||
_08096D60:
|
||||
movs r0, #1
|
||||
b _08096D66
|
||||
_08096D64:
|
||||
movs r0, #0
|
||||
_08096D66:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08096D68
|
||||
sub_08096D68: @ 0x08096D68
|
||||
push {lr}
|
||||
subs r0, r0, r1
|
||||
adds r0, #8
|
||||
cmp r0, #0x10
|
||||
bhi _08096D7E
|
||||
subs r0, r2, r3
|
||||
adds r0, #0x30
|
||||
cmp r0, #0x60
|
||||
bhi _08096D7E
|
||||
movs r0, #1
|
||||
b _08096D80
|
||||
_08096D7E:
|
||||
movs r0, #0
|
||||
_08096D80:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08096D84
|
||||
sub_08096D84: @ 0x08096D84
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xa]
|
||||
cmp r0, #1
|
||||
beq _08096DB4
|
||||
cmp r0, #1
|
||||
bgt _08096D98
|
||||
cmp r0, #0
|
||||
beq _08096DA2
|
||||
b _08096E00
|
||||
_08096D98:
|
||||
cmp r0, #2
|
||||
beq _08096DC8
|
||||
cmp r0, #3
|
||||
beq _08096DE4
|
||||
b _08096E00
|
||||
_08096DA2:
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r1, r0]
|
||||
ldr r0, _08096DB0 @ =gPlayerEntity
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r0, r2]
|
||||
b _08096DEE
|
||||
.align 2, 0
|
||||
_08096DB0: .4byte gPlayerEntity
|
||||
_08096DB4:
|
||||
ldr r0, _08096DC4 @ =gPlayerEntity
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r0, r2]
|
||||
adds r0, #0xa
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r1, r2]
|
||||
b _08096DD4
|
||||
.align 2, 0
|
||||
_08096DC4: .4byte gPlayerEntity
|
||||
_08096DC8:
|
||||
ldr r0, _08096DE0 @ =gPlayerEntity
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r0, r2]
|
||||
adds r0, #0xa
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r1, r2]
|
||||
_08096DD4:
|
||||
subs r0, r0, r1
|
||||
cmp r0, #0x64
|
||||
bhi _08096E00
|
||||
movs r0, #1
|
||||
b _08096E02
|
||||
.align 2, 0
|
||||
_08096DE0: .4byte gPlayerEntity
|
||||
_08096DE4:
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r1, r0]
|
||||
ldr r0, _08096DFC @ =gPlayerEntity
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r0, r2]
|
||||
_08096DEE:
|
||||
subs r0, #0xa
|
||||
subs r1, r1, r0
|
||||
cmp r1, #0x64
|
||||
bhi _08096E00
|
||||
movs r0, #1
|
||||
b _08096E02
|
||||
.align 2, 0
|
||||
_08096DFC: .4byte gPlayerEntity
|
||||
_08096E00:
|
||||
movs r0, #0
|
||||
_08096E02:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08096E04
|
||||
sub_08096E04: @ 0x08096E04
|
||||
movs r1, #3
|
||||
strb r1, [r0, #0xc]
|
||||
movs r1, #8
|
||||
strb r1, [r0, #0xe]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -1,373 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object35
|
||||
Object35: @ 0x0808B86C
|
||||
push {lr}
|
||||
ldr r2, _0808B880 @ =gUnk_081213C4
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808B880: .4byte gUnk_081213C4
|
||||
|
||||
thumb_func_start sub_0808B884
|
||||
sub_0808B884: @ 0x0808B884
|
||||
push {lr}
|
||||
ldr r2, _0808B898 @ =gUnk_081213D0
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808B898: .4byte gUnk_081213D0
|
||||
|
||||
thumb_func_start sub_0808B89C
|
||||
sub_0808B89C: @ 0x0808B89C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r0, [r4, #0xb]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
movs r0, #0xb4
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0xb]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808B8D4
|
||||
sub_0808B8D4: @ 0x0808B8D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0808B904
|
||||
movs r0, #0xb4
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xb]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xb]
|
||||
ldrb r0, [r4, #0xb]
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #0xb]
|
||||
ldrb r1, [r4, #0xb]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
_0808B904:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808B908
|
||||
sub_0808B908: @ 0x0808B908
|
||||
push {lr}
|
||||
bl GetNextFrame
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0808B910
|
||||
sub_0808B910: @ 0x0808B910
|
||||
push {lr}
|
||||
ldr r2, _0808B92C @ =gUnk_081213DC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
ldr r2, _0808B930 @ =gPlayerState
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1a]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808B92C: .4byte gUnk_081213DC
|
||||
_0808B930: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_0808B934
|
||||
sub_0808B934: @ 0x0808B934
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
movs r7, #0
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
strb r7, [r4, #0x1e]
|
||||
ldrh r1, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x70
|
||||
strh r1, [r0]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #5
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _0808B9B8 @ =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, #0x76
|
||||
strh r1, [r5]
|
||||
ldrh r0, [r5]
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
bne _0808B9C0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r0, _0808B9BC @ =0x00004022
|
||||
ldrh r1, [r5]
|
||||
ldrb r2, [r6]
|
||||
bl SetTile
|
||||
b _0808B9D2
|
||||
.align 2, 0
|
||||
_0808B9B8: .4byte gRoomControls
|
||||
_0808B9BC: .4byte 0x00004022
|
||||
_0808B9C0:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
strb r7, [r4, #0xe]
|
||||
_0808B9D2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0808B9D4
|
||||
sub_0808B9D4: @ 0x0808B9D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0808BA0A
|
||||
movs r1, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x76
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
ldr r0, _0808BA0C @ =0x0000010B
|
||||
bl EnqueueSFX
|
||||
_0808BA0A:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808BA0C: .4byte 0x0000010B
|
||||
|
||||
thumb_func_start sub_0808BA10
|
||||
sub_0808BA10: @ 0x0808BA10
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0808BA44
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #0xc
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x70
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x72
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x32]
|
||||
_0808BA44:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808BA48
|
||||
sub_0808BA48: @ 0x0808BA48
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl sub_08083734
|
||||
cmp r0, #0
|
||||
beq _0808BA68
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x76
|
||||
ldrh r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_080836DC
|
||||
_0808BA68:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808BA6C
|
||||
sub_0808BA6C: @ 0x0808BA6C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0808BAA4
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_08083814
|
||||
ldr r0, _0808BAA8 @ =0x0000010B
|
||||
bl EnqueueSFX
|
||||
ldr r0, _0808BAAC @ =0x00004022
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x76
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
_0808BAA4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808BAA8: .4byte 0x0000010B
|
||||
_0808BAAC: .4byte 0x00004022
|
||||
|
||||
thumb_func_start nullsub_520
|
||||
nullsub_520: @ 0x0808BAB0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808BAB4
|
||||
sub_0808BAB4: @ 0x0808BAB4
|
||||
push {lr}
|
||||
ldr r2, _0808BAC8 @ =gUnk_081213F4
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808BAC8: .4byte gUnk_081213F4
|
||||
|
||||
thumb_func_start sub_0808BACC
|
||||
sub_0808BACC: @ 0x0808BACC
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
movs r4, #1
|
||||
strb r4, [r2, #0xc]
|
||||
movs r3, #0x10
|
||||
strb r3, [r2, #0xe]
|
||||
ldrh r0, [r2, #0x36]
|
||||
subs r0, #0x10
|
||||
strh r0, [r2, #0x36]
|
||||
ldrb r0, [r2, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0808BAEA
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0x1e]
|
||||
b _0808BAFC
|
||||
_0808BAEA:
|
||||
movs r0, #0
|
||||
strb r0, [r2, #0x1e]
|
||||
ldr r0, [r2, #0x50]
|
||||
ldrh r1, [r0, #0x2e]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808BAFC
|
||||
strb r4, [r2, #0x1e]
|
||||
_0808BAFC:
|
||||
adds r0, r2, #0
|
||||
bl CreateDust
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0808BB04
|
||||
sub_0808BB04: @ 0x0808BB04
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xe]
|
||||
subs r1, #1
|
||||
strb r1, [r0, #0xe]
|
||||
lsls r1, r1, #0x18
|
||||
cmp r1, #0
|
||||
bne _0808BB16
|
||||
bl DeleteThisEntity
|
||||
_0808BB16:
|
||||
pop {pc}
|
||||
@@ -1,499 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object43
|
||||
Object43: @ 0x0808DED0
|
||||
push {lr}
|
||||
ldr r2, _0808DEE4 @ =gUnk_081217BC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808DEE4: .4byte gUnk_081217BC
|
||||
|
||||
thumb_func_start sub_0808DEE8
|
||||
sub_0808DEE8: @ 0x0808DEE8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r3, _0808DF74 @ =gPlayerEntity
|
||||
ldrb r1, [r3, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r5, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x1b]
|
||||
ldrb r0, [r3, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
strb r0, [r5, #0x14]
|
||||
adds r0, #1
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
lsls r0, r0, #3
|
||||
strb r0, [r5, #0x15]
|
||||
movs r3, #6
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x60
|
||||
movs r0, #0x3c
|
||||
strh r0, [r1]
|
||||
ldrb r1, [r5, #0x1a]
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x1a]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x72
|
||||
strh r4, [r0]
|
||||
subs r0, #6
|
||||
strh r4, [r0]
|
||||
ldrb r0, [r5, #0x11]
|
||||
ands r2, r0
|
||||
orrs r2, r3
|
||||
strb r2, [r5, #0x11]
|
||||
adds r0, r5, #0
|
||||
movs r1, #7
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808DF78
|
||||
movs r0, #0x28
|
||||
strb r0, [r5, #0xe]
|
||||
b _0808DFAA
|
||||
.align 2, 0
|
||||
_0808DF74: .4byte gPlayerEntity
|
||||
_0808DF78:
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
ldr r0, _0808DF9C @ =gPlayerState
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808DFA0
|
||||
movs r0, #0x28
|
||||
b _0808DFA2
|
||||
.align 2, 0
|
||||
_0808DF9C: .4byte gPlayerState
|
||||
_0808DFA0:
|
||||
movs r0, #0x50
|
||||
_0808DFA2:
|
||||
strb r0, [r5, #0xe]
|
||||
adds r0, r5, #0
|
||||
bl sub_0808DFAC
|
||||
_0808DFAA:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0808DFAC
|
||||
sub_0808DFAC: @ 0x0808DFAC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808E00E
|
||||
ldr r1, _0808DFF0 @ =gPlayerState
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0808DFCC
|
||||
ldrb r1, [r1, #4]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808DFD0
|
||||
_0808DFCC:
|
||||
bl DeleteThisEntity
|
||||
_0808DFD0:
|
||||
ldr r0, _0808DFF0 @ =gPlayerState
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x21
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0x4f
|
||||
bls _0808DFF8
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #4
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #1
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x18]
|
||||
ldrb r6, [r2]
|
||||
ldr r7, _0808DFF4 @ =gUnk_081217D8
|
||||
b _0808E038
|
||||
.align 2, 0
|
||||
_0808DFF0: .4byte gPlayerState
|
||||
_0808DFF4: .4byte gUnk_081217D8
|
||||
_0808DFF8:
|
||||
cmp r0, #0
|
||||
beq _0808E008
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0808E1BA
|
||||
_0808E008:
|
||||
bl DeleteThisEntity
|
||||
b _0808E038
|
||||
_0808E00E:
|
||||
ldr r5, _0808E02C @ =gPlayerState
|
||||
ldrb r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _0808E01A
|
||||
bl DeleteThisEntity
|
||||
_0808E01A:
|
||||
ldrb r1, [r5, #0x1b]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808E034
|
||||
ldrb r6, [r5, #0x1b]
|
||||
ldr r7, _0808E030 @ =gUnk_081217D0
|
||||
b _0808E038
|
||||
.align 2, 0
|
||||
_0808E02C: .4byte gPlayerState
|
||||
_0808E030: .4byte gUnk_081217D0
|
||||
_0808E034:
|
||||
bl DeleteThisEntity
|
||||
_0808E038:
|
||||
cmp r6, #0
|
||||
bne _0808E03E
|
||||
b _0808E1B6
|
||||
_0808E03E:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0808E084
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #3
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0808E068
|
||||
ldr r0, _0808E080 @ =gPlayerState
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0808E068
|
||||
movs r2, #7
|
||||
_0808E068:
|
||||
ldrb r0, [r4, #0xe]
|
||||
ands r0, r2
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6c
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
cmp r0, #0
|
||||
bne _0808E0E4
|
||||
ldrh r0, [r5]
|
||||
adds r0, #1
|
||||
strh r0, [r5]
|
||||
b _0808E0E4
|
||||
.align 2, 0
|
||||
_0808E080: .4byte gPlayerState
|
||||
_0808E084:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x72
|
||||
ldrh r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0808E0BC
|
||||
ldr r0, _0808E0B8 @ =gRoomTransition
|
||||
ldr r1, [r0]
|
||||
movs r0, #0x1f
|
||||
ands r1, r0
|
||||
subs r5, #6
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
cmp r1, #0
|
||||
bne _0808E0E4
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
cmp r0, #0
|
||||
beq _0808E0E4
|
||||
ldrb r1, [r6]
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
b _0808E0E4
|
||||
.align 2, 0
|
||||
_0808E0B8: .4byte gRoomTransition
|
||||
_0808E0BC:
|
||||
ldr r0, _0808E140 @ =0x00000115
|
||||
bl EnqueueSFX
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x12
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
cmp r0, #0
|
||||
beq _0808E0DA
|
||||
ldrb r1, [r6]
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
_0808E0DA:
|
||||
ldrh r0, [r5]
|
||||
adds r0, #1
|
||||
strh r0, [r5]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6c
|
||||
_0808E0E4:
|
||||
ldr r2, _0808E144 @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r3, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r7, r0
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r2, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r7
|
||||
ldrb r0, [r0, #1]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r2, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
ldrh r0, [r2, #0x36]
|
||||
strh r0, [r4, #0x36]
|
||||
adds r2, #0x38
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r6]
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #1
|
||||
beq _0808E148
|
||||
cmp r0, #1
|
||||
ble _0808E136
|
||||
cmp r0, #2
|
||||
beq _0808E150
|
||||
cmp r0, #3
|
||||
beq _0808E15A
|
||||
_0808E136:
|
||||
ldrh r0, [r4, #0x32]
|
||||
ldrh r1, [r5]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
b _0808E162
|
||||
.align 2, 0
|
||||
_0808E140: .4byte 0x00000115
|
||||
_0808E144: .4byte gPlayerEntity
|
||||
_0808E148:
|
||||
ldrh r0, [r5]
|
||||
ldrh r1, [r4, #0x2e]
|
||||
adds r0, r0, r1
|
||||
b _0808E160
|
||||
_0808E150:
|
||||
ldrh r0, [r5]
|
||||
ldrh r1, [r4, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
b _0808E162
|
||||
_0808E15A:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
ldrh r1, [r5]
|
||||
subs r0, r0, r1
|
||||
_0808E160:
|
||||
strh r0, [r4, #0x2e]
|
||||
_0808E162:
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0808E17A
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x15]
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
_0808E17A:
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0808E1BA
|
||||
ldr r0, _0808E1AC @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808E1BA
|
||||
ldrb r0, [r4, #0x10]
|
||||
movs r1, #0xdf
|
||||
ands r1, r0
|
||||
strb r1, [r4, #0x10]
|
||||
movs r0, #6
|
||||
bl GetInventoryValue
|
||||
cmp r0, #1
|
||||
bne _0808E1B0
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
b _0808E1BA
|
||||
.align 2, 0
|
||||
_0808E1AC: .4byte gPlayerState
|
||||
_0808E1B0:
|
||||
bl DeleteThisEntity
|
||||
b _0808E1BA
|
||||
_0808E1B6:
|
||||
bl DeleteThisEntity
|
||||
_0808E1BA:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0808E1BC
|
||||
sub_0808E1BC: @ 0x0808E1BC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08079BD8
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
movs r2, #0
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldr r0, _0808E204 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
movs r0, #0xaf
|
||||
strh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808E204: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_0808E208
|
||||
sub_0808E208: @ 0x0808E208
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08079BD8
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldr r0, _0808E240 @ =gPlayerState
|
||||
ldrb r0, [r0, #0x1b]
|
||||
cmp r0, #0
|
||||
beq _0808E248
|
||||
ldr r0, _0808E244 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0808E24C
|
||||
ldrb r2, [r4, #0x1a]
|
||||
lsls r1, r2, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
movs r0, #4
|
||||
eors r1, r0
|
||||
subs r0, #0x14
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
b _0808E24C
|
||||
.align 2, 0
|
||||
_0808E240: .4byte gPlayerState
|
||||
_0808E244: .4byte gRoomTransition
|
||||
_0808E248:
|
||||
bl DeleteThisEntity
|
||||
_0808E24C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808E260
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0808E260:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808E264
|
||||
sub_0808E264: @ 0x0808E264
|
||||
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 _0808E27C
|
||||
bl DeleteThisEntity
|
||||
_0808E27C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,434 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object61
|
||||
Object61: @ 0x08093428
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _0809345C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x11
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0809344A
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08093446
|
||||
ldr r1, _08093460 @ =gRoomControls
|
||||
ldr r0, _08093464 @ =gPlayerEntity
|
||||
str r0, [r1, #0x30]
|
||||
_08093446:
|
||||
bl DeleteThisEntity
|
||||
_0809344A:
|
||||
ldr r0, _08093468 @ =gUnk_081228C8
|
||||
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
|
||||
_0809345C: .4byte gPlayerState
|
||||
_08093460: .4byte gRoomControls
|
||||
_08093464: .4byte gPlayerEntity
|
||||
_08093468: .4byte gUnk_081228C8
|
||||
|
||||
thumb_func_start sub_0809346C
|
||||
sub_0809346C: @ 0x0809346C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1f]
|
||||
ldr r0, _080934C0 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
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]
|
||||
cmp r0, #0
|
||||
bne _080934B8
|
||||
ldr r0, _080934C4 @ =gRoomControls
|
||||
str r4, [r0, #0x30]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6e
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r1]
|
||||
adds r1, #4
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x61
|
||||
movs r2, #1
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080934B8:
|
||||
adds r0, r4, #0
|
||||
bl sub_080934C8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080934C0: .4byte gPlayerEntity
|
||||
_080934C4: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_080934C8
|
||||
sub_080934C8: @ 0x080934C8
|
||||
push {lr}
|
||||
ldr r2, _080934DC @ =gUnk_081228D0
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080934DC: .4byte gUnk_081228D0
|
||||
|
||||
thumb_func_start sub_080934E0
|
||||
sub_080934E0: @ 0x080934E0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x6e
|
||||
ldrh r1, [r4]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0
|
||||
bge _080934F6
|
||||
rsbs r0, r1, #0
|
||||
strh r0, [r4]
|
||||
_080934F6:
|
||||
ldr r0, _08093518 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0xd]
|
||||
cmp r0, #2
|
||||
beq _0809351C
|
||||
cmp r0, #2
|
||||
bgt _080935B0
|
||||
cmp r0, #1
|
||||
bne _080935B0
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x72
|
||||
ldrh r0, [r1]
|
||||
subs r0, #4
|
||||
strh r0, [r1]
|
||||
adds r6, r4, #0
|
||||
adds r7, r1, #0
|
||||
b _080935BE
|
||||
.align 2, 0
|
||||
_08093518: .4byte gPlayerEntity
|
||||
_0809351C:
|
||||
ldrb r2, [r5, #0xf]
|
||||
adds r0, r2, #0
|
||||
cmp r0, #0
|
||||
bne _08093560
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x72
|
||||
ldrh r1, [r0]
|
||||
adds r7, r0, #0
|
||||
cmp r1, #0x80
|
||||
bls _08093538
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x20
|
||||
strh r0, [r7]
|
||||
b _08093544
|
||||
_08093538:
|
||||
adds r0, r2, #1
|
||||
strb r0, [r5, #0xf]
|
||||
movs r0, #0x92
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_08093544:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x6e
|
||||
ldrh r2, [r0]
|
||||
ldr r1, _0809355C @ =0x0000011F
|
||||
adds r6, r0, #0
|
||||
cmp r2, r1
|
||||
bhi _080935BE
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x40
|
||||
strh r0, [r6]
|
||||
b _080935BE
|
||||
.align 2, 0
|
||||
_0809355C: .4byte 0x0000011F
|
||||
_08093560:
|
||||
cmp r0, #0xff
|
||||
beq _080935A6
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x72
|
||||
ldrh r1, [r0]
|
||||
adds r7, r0, #0
|
||||
cmp r1, #0xff
|
||||
bhi _08093576
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x20
|
||||
b _0809357A
|
||||
_08093576:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
_0809357A:
|
||||
strh r0, [r7]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x6e
|
||||
ldrh r1, [r0]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #1
|
||||
adds r6, r0, #0
|
||||
cmp r1, r2
|
||||
bls _08093594
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x20
|
||||
strh r0, [r6]
|
||||
b _08093596
|
||||
_08093594:
|
||||
strh r2, [r6]
|
||||
_08093596:
|
||||
ldrh r1, [r6]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
cmp r1, r0
|
||||
bne _080935BE
|
||||
movs r0, #0xff
|
||||
strb r0, [r5, #0xf]
|
||||
b _080935BE
|
||||
_080935A6:
|
||||
adds r0, r5, #0
|
||||
bl sub_080936C8
|
||||
adds r6, r4, #0
|
||||
b _080935BA
|
||||
_080935B0:
|
||||
adds r0, r5, #0
|
||||
bl sub_080936C8
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x6e
|
||||
_080935BA:
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x72
|
||||
_080935BE:
|
||||
ldr r0, _080935E4 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _080935E8
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0x1e]
|
||||
lsls r0, r1, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bne _080935EA
|
||||
ldrh r0, [r6]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r6]
|
||||
b _080935EA
|
||||
.align 2, 0
|
||||
_080935E4: .4byte gPlayerEntity
|
||||
_080935E8:
|
||||
strb r0, [r5, #0x1e]
|
||||
_080935EA:
|
||||
ldrb r0, [r5, #0x1e]
|
||||
ldrb r1, [r5, #0x1f]
|
||||
cmp r0, r1
|
||||
beq _080935FE
|
||||
strb r0, [r5, #0x1f]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
ldrh r2, [r5, #0x12]
|
||||
adds r0, r5, #0
|
||||
bl sub_080042D0
|
||||
_080935FE:
|
||||
ldr r4, _0809364C @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl CopyPosition
|
||||
ldrb r2, [r4, #0x1b]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r3, [r5, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x1b]
|
||||
ldrb r0, [r4, #0x19]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r5, #0x19]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #0x19]
|
||||
ldrh r1, [r7]
|
||||
adds r0, r5, #0
|
||||
movs r2, #0xa
|
||||
movs r3, #2
|
||||
bl sub_0806FCF4
|
||||
ldrh r1, [r6]
|
||||
ldrh r2, [r7]
|
||||
adds r0, r5, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
adds r2, r5, #0
|
||||
bl sub_0806FEBC
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0809364C: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08093650
|
||||
sub_08093650: @ 0x08093650
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _080936C4 @ =gPlayerEntity
|
||||
ldrb r0, [r5, #0x15]
|
||||
lsrs r1, r0, #1
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #2
|
||||
adds r0, #2
|
||||
strb r0, [r4, #0x1e]
|
||||
ldrb r1, [r4, #0x1f]
|
||||
cmp r0, r1
|
||||
beq _08093674
|
||||
strb r0, [r4, #0x1f]
|
||||
ldrb r1, [r4, #0x1e]
|
||||
ldrh r2, [r4, #0x12]
|
||||
adds r0, r4, #0
|
||||
bl sub_080042D0
|
||||
_08093674:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
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]
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x72
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x18
|
||||
movs r3, #0
|
||||
bl sub_0806FCF4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
ldrb r0, [r1]
|
||||
rsbs r0, r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_0806FEBC
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080936C4: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_080936C8
|
||||
sub_080936C8: @ 0x080936C8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08093714 @ =gPlayerEntity
|
||||
ldr r0, [r0, #0x7c]
|
||||
lsrs r2, r0, #2
|
||||
movs r3, #0x9c
|
||||
lsls r3, r3, #1
|
||||
adds r1, r3, #0
|
||||
subs r1, r1, r2
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x76
|
||||
strh r1, [r5]
|
||||
movs r1, #0x3c
|
||||
bl __divsi3
|
||||
movs r1, #8
|
||||
subs r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
strh r1, [r0]
|
||||
ldrb r3, [r4, #0xe]
|
||||
cmp r3, #0
|
||||
bne _0809372C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6e
|
||||
ldrh r2, [r1]
|
||||
ldrh r0, [r5]
|
||||
cmp r0, r2
|
||||
bhs _08093718
|
||||
adds r0, r2, #0
|
||||
subs r0, #8
|
||||
strh r0, [r1]
|
||||
adds r1, #4
|
||||
ldrh r0, [r1]
|
||||
adds r0, #8
|
||||
strh r0, [r1]
|
||||
b _0809375C
|
||||
.align 2, 0
|
||||
_08093714: .4byte gPlayerEntity
|
||||
_08093718:
|
||||
adds r0, r3, #1
|
||||
strb r0, [r4, #0xe]
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r5]
|
||||
adds r0, #0x30
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
b _0809375C
|
||||
_0809372C:
|
||||
ldrh r0, [r5]
|
||||
adds r0, #0x30
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6e
|
||||
ldrh r2, [r1]
|
||||
cmp r0, r2
|
||||
ble _0809374A
|
||||
adds r0, r2, #0
|
||||
adds r0, #8
|
||||
strh r0, [r1]
|
||||
adds r1, #4
|
||||
ldrh r0, [r1]
|
||||
subs r0, #8
|
||||
strh r0, [r1]
|
||||
b _0809375C
|
||||
_0809374A:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldrh r0, [r5]
|
||||
adds r0, #0x30
|
||||
strh r0, [r1]
|
||||
ldrh r1, [r5]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x72
|
||||
strh r1, [r0]
|
||||
_0809375C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
@@ -1,337 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object68
|
||||
Object68: @ 0x0809475C
|
||||
push {lr}
|
||||
ldr r2, _08094770 @ =gUnk_08122A10
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08094770: .4byte gUnk_08122A10
|
||||
|
||||
thumb_func_start sub_08094774
|
||||
sub_08094774: @ 0x08094774
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #8
|
||||
bls _08094784
|
||||
b _080948C6
|
||||
_08094784:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08094790 @ =_08094794
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08094790: .4byte _08094794
|
||||
_08094794: @ jump table
|
||||
.4byte _080947B8 @ case 0
|
||||
.4byte _08094824 @ case 1
|
||||
.4byte _080948B0 @ case 2
|
||||
.4byte _080948C6 @ case 3
|
||||
.4byte _080948C6 @ case 4
|
||||
.4byte _080948C6 @ case 5
|
||||
.4byte _080948C6 @ case 6
|
||||
.4byte _080948C6 @ case 7
|
||||
.4byte _080948C6 @ case 8
|
||||
_080947B8:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xb
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r6, r0, #0
|
||||
str r6, [r5, #0x54]
|
||||
cmp r6, #0
|
||||
beq _080947EE
|
||||
ldr r0, _0809480C @ =gPlayerEntity
|
||||
ldr r4, _08094810 @ =gUnk_08122A18
|
||||
ldrb r3, [r0, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r3
|
||||
adds r1, r1, r4
|
||||
movs r2, #0
|
||||
ldrsb r2, [r1, r2]
|
||||
lsls r2, r2, #0x10
|
||||
movs r1, #1
|
||||
orrs r1, r3
|
||||
adds r1, r1, r4
|
||||
movs r3, #0
|
||||
ldrsb r3, [r1, r3]
|
||||
lsls r3, r3, #0x10
|
||||
adds r1, r6, #0
|
||||
bl PositionRelative
|
||||
_080947EE:
|
||||
ldr r0, [r5, #0x54]
|
||||
adds r1, r5, #0
|
||||
bl CopyPosition
|
||||
ldr r1, _08094814 @ =0x00004032
|
||||
ldr r2, _08094818 @ =0x00004033
|
||||
adds r0, r5, #0
|
||||
bl sub_08094980
|
||||
ldr r1, _0809481C @ =0x00004061
|
||||
ldr r2, _08094820 @ =0x00004022
|
||||
adds r0, r5, #0
|
||||
bl sub_08094980
|
||||
b _080948C6
|
||||
.align 2, 0
|
||||
_0809480C: .4byte gPlayerEntity
|
||||
_08094810: .4byte gUnk_08122A18
|
||||
_08094814: .4byte 0x00004032
|
||||
_08094818: .4byte 0x00004033
|
||||
_0809481C: .4byte 0x00004061
|
||||
_08094820: .4byte 0x00004022
|
||||
_08094824:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x2b
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r6, r0, #0
|
||||
str r6, [r5, #0x54]
|
||||
cmp r6, #0
|
||||
beq _0809485A
|
||||
ldr r0, _08094898 @ =gPlayerEntity
|
||||
ldr r4, _0809489C @ =gUnk_08122A18
|
||||
ldrb r3, [r0, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r3
|
||||
adds r1, r1, r4
|
||||
movs r2, #0
|
||||
ldrsb r2, [r1, r2]
|
||||
lsls r2, r2, #0x10
|
||||
movs r1, #1
|
||||
orrs r1, r3
|
||||
adds r1, r1, r4
|
||||
movs r3, #0
|
||||
ldrsb r3, [r1, r3]
|
||||
lsls r3, r3, #0x10
|
||||
adds r1, r6, #0
|
||||
bl PositionRelative
|
||||
_0809485A:
|
||||
ldrb r4, [r5, #0xb]
|
||||
cmp r4, #0
|
||||
bne _080948C6
|
||||
ldr r0, [r5, #0x54]
|
||||
adds r1, r5, #0
|
||||
bl CopyPosition
|
||||
strb r4, [r5, #0xe]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r1, [r5, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x19]
|
||||
ldr r1, _080948A0 @ =0x0000403B
|
||||
ldr r2, _080948A4 @ =0x0000403C
|
||||
adds r0, r5, #0
|
||||
bl sub_08094980
|
||||
ldr r1, _080948A8 @ =0x00004061
|
||||
ldr r2, _080948AC @ =0x00004022
|
||||
adds r0, r5, #0
|
||||
bl sub_08094980
|
||||
b _080948CA
|
||||
.align 2, 0
|
||||
_08094898: .4byte gPlayerEntity
|
||||
_0809489C: .4byte gUnk_08122A18
|
||||
_080948A0: .4byte 0x0000403B
|
||||
_080948A4: .4byte 0x0000403C
|
||||
_080948A8: .4byte 0x00004061
|
||||
_080948AC: .4byte 0x00004022
|
||||
_080948B0:
|
||||
ldr r0, _080948CC @ =gPlayerEntity
|
||||
movs r1, #0x60
|
||||
movs r2, #0
|
||||
bl sub_080A2A20
|
||||
adds r1, r0, #0
|
||||
str r1, [r5, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080948C6
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
_080948C6:
|
||||
bl DeleteThisEntity
|
||||
_080948CA:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080948CC: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_080948D0
|
||||
sub_080948D0: @ 0x080948D0
|
||||
push {lr}
|
||||
ldr r2, _080948E4 @ =gUnk_08122A20
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080948E4: .4byte gUnk_08122A20
|
||||
|
||||
thumb_func_start sub_080948E8
|
||||
sub_080948E8: @ 0x080948E8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0x3b
|
||||
bhi _08094978
|
||||
ldr r0, [r4, #0x34]
|
||||
ldr r2, _0809495C @ =0xFFFFC000
|
||||
adds r0, r0, r2
|
||||
str r0, [r4, #0x34]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08094970
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x11
|
||||
movs r2, #0x40
|
||||
bl CreateFx
|
||||
adds r3, r0, #0
|
||||
str r3, [r4, #0x54]
|
||||
cmp r3, #0
|
||||
beq _08094970
|
||||
ldrb r1, [r4, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
ldr r2, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
adds r2, #0x29
|
||||
lsrs r1, r1, #0x1d
|
||||
ldrb r3, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
bl Random
|
||||
movs r1, #1
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _08094960
|
||||
bl Random
|
||||
ldr r2, [r4, #0x54]
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
ldrh r1, [r2, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x2e]
|
||||
b _08094970
|
||||
.align 2, 0
|
||||
_0809495C: .4byte 0xFFFFC000
|
||||
_08094960:
|
||||
bl Random
|
||||
ldr r2, [r4, #0x54]
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
ldrh r1, [r2, #0x2e]
|
||||
subs r1, r1, r0
|
||||
strh r1, [r2, #0x2e]
|
||||
_08094970:
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _0809497C
|
||||
_08094978:
|
||||
bl DeleteThisEntity
|
||||
_0809497C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08094980
|
||||
sub_08094980: @ 0x08094980
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
adds r6, r0, #0
|
||||
str r1, [sp]
|
||||
str r2, [sp, #4]
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
ldr r1, _08094A04 @ =gRoomControls
|
||||
mov sl, r1
|
||||
movs r2, #0x3f
|
||||
mov sb, r2
|
||||
ldr r7, _08094A08 @ =gUnk_08122A28
|
||||
_080949A0:
|
||||
movs r4, #0
|
||||
ldrsb r4, [r7, r4]
|
||||
movs r5, #1
|
||||
ldrsb r5, [r7, r5]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_0800029C
|
||||
ldr r3, [sp]
|
||||
cmp r3, r0
|
||||
bne _080949EC
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
adds r1, r1, r4
|
||||
mov r2, sl
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
mov r3, sb
|
||||
ands r1, r3
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r6, r2]
|
||||
adds r0, r0, r5
|
||||
mov r3, sl
|
||||
ldrh r2, [r3, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
mov r2, sb
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x38
|
||||
ldrb r2, [r0]
|
||||
ldr r0, [sp, #4]
|
||||
bl SetTile
|
||||
_080949EC:
|
||||
adds r7, #2
|
||||
movs r3, #2
|
||||
add r8, r3
|
||||
mov r0, r8
|
||||
cmp r0, #9
|
||||
bls _080949A0
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08094A04: .4byte gRoomControls
|
||||
_08094A08: .4byte gUnk_08122A28
|
||||
@@ -1,40 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object69
|
||||
Object69: @ 0x08094A0C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08094A3E
|
||||
ldrb r0, [r2, #0xc]
|
||||
cmp r0, #0
|
||||
bne _08094A34
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
ldr r0, _08094A30 @ =gHitbox_2
|
||||
str r0, [r2, #0x48]
|
||||
adds r0, r2, #0
|
||||
bl sub_0807DD50
|
||||
b _08094A42
|
||||
.align 2, 0
|
||||
_08094A30: .4byte gHitbox_2
|
||||
_08094A34:
|
||||
adds r0, r2, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DD94
|
||||
b _08094A42
|
||||
_08094A3E:
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
_08094A42:
|
||||
pop {pc}
|
||||
@@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ObjectBF
|
||||
ObjectBF: @ 0x080A2444
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -1,272 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectC1
|
||||
ObjectC1: @ 0x080A2560
|
||||
push {lr}
|
||||
ldr r2, _080A2574 @ =gUnk_08125084
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2574: .4byte gUnk_08125084
|
||||
|
||||
thumb_func_start sub_080A2578
|
||||
sub_080A2578: @ 0x080A2578
|
||||
push {lr}
|
||||
movs r1, #8
|
||||
strb r1, [r0, #0xc]
|
||||
bl sub_080A259C
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080A2584
|
||||
sub_080A2584: @ 0x080A2584
|
||||
push {lr}
|
||||
bl ResetPlayerEventPriority
|
||||
ldr r1, _080A2598 @ =gUnk_02034490
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2598: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_080A259C
|
||||
sub_080A259C: @ 0x080A259C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _080A25DC @ =gPlayerEntity
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r7, #0x7f
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r6, #4
|
||||
rsbs r6, r6, #0
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
ldrb r1, [r5, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #1
|
||||
beq _080A269C
|
||||
cmp r0, #1
|
||||
bgt _080A25E0
|
||||
cmp r0, #0
|
||||
beq _080A25E6
|
||||
b _080A273C
|
||||
.align 2, 0
|
||||
_080A25DC: .4byte gPlayerEntity
|
||||
_080A25E0:
|
||||
cmp r0, #2
|
||||
beq _080A26B4
|
||||
b _080A273C
|
||||
_080A25E6:
|
||||
movs r0, #1
|
||||
movs r2, #1
|
||||
strb r0, [r4, #0xd]
|
||||
ldrb r1, [r4, #0x18]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
lsrs r1, r1, #0x1d
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
ldrb r2, [r5, #0x19]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r3, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r5, #0x1b]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x1b]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
ldr r0, _080A2670 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A2678
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl sub_080542AC
|
||||
ldr r1, _080A2674 @ =0x0000045B
|
||||
cmp r0, #0
|
||||
beq _080A2688
|
||||
adds r1, #3
|
||||
b _080A2688
|
||||
.align 2, 0
|
||||
_080A2670: .4byte gPlayerState
|
||||
_080A2674: .4byte 0x0000045B
|
||||
_080A2678:
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl sub_080542AC
|
||||
ldr r1, _080A2698 @ =0x000001B9
|
||||
cmp r0, #0
|
||||
beq _080A2688
|
||||
movs r1, #0xb8
|
||||
lsls r1, r1, #2
|
||||
_080A2688:
|
||||
lsrs r0, r1, #8
|
||||
strh r0, [r4, #0x12]
|
||||
movs r0, #0xff
|
||||
ands r1, r0
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _080A273C
|
||||
.align 2, 0
|
||||
_080A2698: .4byte 0x000001B9
|
||||
_080A269C:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080A273C
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
b _080A273C
|
||||
_080A26B4:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
ldr r0, _080A2764 @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A2762
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A273C
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x69
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r5, #0x10]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r1, [r0]
|
||||
movs r0, #3
|
||||
ands r1, r0
|
||||
ldrb r2, [r5, #0x18]
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6a
|
||||
ldrb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3d
|
||||
strb r1, [r0]
|
||||
ldr r1, _080A2768 @ =gPlayerState
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6b
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #7]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6c
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #0xb]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6d
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #0xa]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6e
|
||||
ldrb r0, [r0]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x27
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6f
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #0x1a]
|
||||
ldr r0, [r4, #0x70]
|
||||
str r0, [r1, #0x30]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
ldrb r0, [r0]
|
||||
adds r1, #0x8a
|
||||
strb r0, [r1]
|
||||
_080A273C:
|
||||
ldr r5, [r4, #0x50]
|
||||
cmp r5, #0
|
||||
beq _080A2762
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl PositionEntityOnTop
|
||||
ldrh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x62
|
||||
strb r1, [r2]
|
||||
ldrb r1, [r0, #1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x63
|
||||
strb r1, [r0]
|
||||
_080A2762:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A2764: .4byte gMessage
|
||||
_080A2768: .4byte gPlayerState
|
||||
@@ -1,282 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Whirlwind
|
||||
Whirlwind: @ 0x08092CA0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x45
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08092CC0
|
||||
ldr r0, _08092CD4 @ =gUnk_020342F8
|
||||
subs r1, #1
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
bne _08092CC0
|
||||
bl DeleteThisEntity
|
||||
_08092CC0:
|
||||
ldr r0, _08092CD8 @ =gUnk_081227F4
|
||||
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
|
||||
_08092CD4: .4byte gUnk_020342F8
|
||||
_08092CD8: .4byte gUnk_081227F4
|
||||
|
||||
thumb_func_start sub_08092CDC
|
||||
sub_08092CDC: @ 0x08092CDC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
strb r2, [r4, #0xc]
|
||||
ldr r0, _08092D48 @ =gUnk_080FD320
|
||||
str r0, [r4, #0x48]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3f
|
||||
strb r2, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #0x47
|
||||
strb r0, [r1]
|
||||
adds r1, #4
|
||||
movs r0, #0x44
|
||||
strb r0, [r1]
|
||||
subs r1, #5
|
||||
movs r0, #0x80
|
||||
strb r0, [r1]
|
||||
ldrb r2, [r4, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r2, #0x40
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0x19]
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
strb r1, [r4, #0x19]
|
||||
ldrb r0, [r4, #0xa]
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r0, r0, #3
|
||||
strb r0, [r4, #0x15]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #0x24]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
bne _08092D50
|
||||
ldr r1, _08092D4C @ =0x00000161
|
||||
adds r0, r4, #0
|
||||
bl ChangeObjPalette
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
b _08092D5C
|
||||
.align 2, 0
|
||||
_08092D48: .4byte gUnk_080FD320
|
||||
_08092D4C: .4byte 0x00000161
|
||||
_08092D50:
|
||||
ldr r0, _08092D78 @ =0x0000FFE8
|
||||
strh r0, [r4, #0x36]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_08092D5C:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08092D74
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD64
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl ExecuteScriptForEntity
|
||||
_08092D74:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08092D78: .4byte 0x0000FFE8
|
||||
|
||||
thumb_func_start sub_08092D7C
|
||||
sub_08092D7C: @ 0x08092D7C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08092D92
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl ExecuteScriptForEntity
|
||||
_08092D92:
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
beq _08092E84
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
ldr r6, _08092E04 @ =gPlayerState
|
||||
ldr r0, [r6, #0x30]
|
||||
movs r3, #0x80
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _08092E84
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x3c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08092E84
|
||||
ldr r4, _08092E08 @ =gPlayerEntity
|
||||
ldrb r2, [r4, #0xc]
|
||||
cmp r2, #4
|
||||
beq _08092DC8
|
||||
ldrb r1, [r4, #0x10]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08092E84
|
||||
_08092DC8:
|
||||
cmp r2, #6
|
||||
beq _08092E84
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0xc
|
||||
movs r3, #0xc
|
||||
bl sub_0800419C
|
||||
cmp r0, #0
|
||||
beq _08092E84
|
||||
ldr r0, [r6, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x11
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08092E0C
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #4
|
||||
beq _08092E0C
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #1
|
||||
beq _08092E16
|
||||
movs r0, #0x36
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bgt _08092E84
|
||||
b _08092E16
|
||||
.align 2, 0
|
||||
_08092E04: .4byte gPlayerState
|
||||
_08092E08: .4byte gPlayerEntity
|
||||
_08092E0C:
|
||||
ldr r0, _08092E88 @ =gPlayerEntity
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
beq _08092E84
|
||||
_08092E16:
|
||||
ldr r4, _08092E88 @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
adds r0, r5, #0
|
||||
bl sub_08004542
|
||||
adds r0, r4, #0
|
||||
bl sub_08004542
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
ldr r1, _08092E8C @ =gPlayerState
|
||||
movs r0, #0x1f
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r2, [r5, #0xb]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x38
|
||||
strb r2, [r0]
|
||||
adds r1, #0x39
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
adds r4, #0x29
|
||||
ldrb r1, [r4]
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
subs r1, #1
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
movs r0, #7
|
||||
ands r1, r0
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
ldrb r0, [r5, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
bl sub_08077B20
|
||||
ldr r0, _08092E90 @ =0x00000153
|
||||
bl SoundReq
|
||||
movs r0, #0x79
|
||||
bl SoundReq
|
||||
_08092E84:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08092E88: .4byte gPlayerEntity
|
||||
_08092E8C: .4byte gPlayerState
|
||||
_08092E90: .4byte 0x00000153
|
||||
|
||||
thumb_func_start sub_08092E94
|
||||
sub_08092E94: @ 0x08092E94
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
ldr r1, _08092ED0 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #0xc
|
||||
movs r3, #0xc
|
||||
bl sub_0800419C
|
||||
cmp r0, #0
|
||||
bne _08092ECE
|
||||
adds r0, r4, #0
|
||||
bl ResetCollisionLayer
|
||||
ldrb r2, [r4, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r2, #0x40
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0x19]
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
strb r1, [r4, #0x19]
|
||||
ldrb r0, [r4, #0xc]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_08092ECE:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08092ED0: .4byte gPlayerEntity
|
||||
@@ -1,741 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start WindTribeTeleporter
|
||||
WindTribeTeleporter: @ 0x080A0F24
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _080A0F40 @ =gUnk_08124C10
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r0, r4, #0
|
||||
bl sub_080A11E0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A0F40: .4byte gUnk_08124C10
|
||||
|
||||
thumb_func_start sub_080A0F44
|
||||
sub_080A0F44: @ 0x080A0F44
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r6, #1
|
||||
strb r6, [r5, #0xc]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x59
|
||||
movs r0, #8
|
||||
strb r0, [r1]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _080A0FA8 @ =gHitbox_22
|
||||
str r0, [r5, #0x48]
|
||||
adds r0, r5, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
adds r0, r5, #0
|
||||
bl sub_080A11C0
|
||||
cmp r0, #0
|
||||
beq _080A0FA4
|
||||
ldr r1, _080A0FAC @ =gPlayerEntity
|
||||
ldrh r0, [r5, #0x2e]
|
||||
movs r4, #0
|
||||
strh r0, [r1, #0x2e]
|
||||
ldrh r0, [r5, #0x32]
|
||||
strh r0, [r1, #0x32]
|
||||
movs r0, #3
|
||||
bl SetPlayerControl
|
||||
bl sub_08078B48
|
||||
bl SetPlayerEventPriority
|
||||
movs r0, #0x89
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xc]
|
||||
strb r4, [r5, #0xd]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
strb r6, [r0]
|
||||
_080A0FA4:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A0FA8: .4byte gHitbox_22
|
||||
_080A0FAC: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_080A0FB0
|
||||
sub_080A0FB0: @ 0x080A0FB0
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_080A11C0
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _080A0FF8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A0FFE
|
||||
ldr r1, _080A0FF4 @ =gPlayerEntity
|
||||
ldrh r0, [r5, #0x2e]
|
||||
movs r4, #0
|
||||
strh r0, [r1, #0x2e]
|
||||
ldrh r0, [r5, #0x32]
|
||||
strh r0, [r1, #0x32]
|
||||
movs r0, #3
|
||||
bl SetPlayerControl
|
||||
bl sub_08078B48
|
||||
bl SetPlayerEventPriority
|
||||
movs r0, #0x89
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xc]
|
||||
strb r4, [r5, #0xd]
|
||||
b _080A0FFE
|
||||
.align 2, 0
|
||||
_080A0FF4: .4byte gPlayerEntity
|
||||
_080A0FF8:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
strb r1, [r0]
|
||||
_080A0FFE:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_080A1000
|
||||
sub_080A1000: @ 0x080A1000
|
||||
.ifdef DEMO_JP
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xd]
|
||||
cmp r1, #1
|
||||
beq _080A0B52
|
||||
cmp r1, #1
|
||||
bgt _080A0B3C
|
||||
cmp r1, #0
|
||||
beq _080A0B46
|
||||
b _080A0BB0
|
||||
_080A0B3C:
|
||||
cmp r1, #2
|
||||
beq _080A0B60
|
||||
cmp r1, #3
|
||||
beq _080A0B8C
|
||||
b _080A0BB0
|
||||
_080A0B46:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
b _080A0BF0
|
||||
_080A0B52:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0BF0
|
||||
b _080A0B98
|
||||
_080A0B60:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0B7E
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0BF0
|
||||
_080A0B7E:
|
||||
ldr r0, _080A0B88 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A0BDE
|
||||
.align 2, 0
|
||||
_080A0B88: .4byte gRoomTransition
|
||||
_080A0B8C:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0BA4
|
||||
_080A0B98:
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
b _080A0BF0
|
||||
_080A0BA4:
|
||||
ldr r0, _080A0BAC @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
b _080A0BDE
|
||||
.align 2, 0
|
||||
_080A0BAC: .4byte gRoomTransition
|
||||
_080A0BB0:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0BD8
|
||||
movs r0, #0xfc
|
||||
bl SetLocalFlag
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A0BD4 @ =0x0813AA10
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0BF0
|
||||
.align 2, 0
|
||||
_080A0BD4: .4byte 0x0813AA10
|
||||
_080A0BD8:
|
||||
ldr r0, _080A0BF4 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A0BDE:
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A0BF0
|
||||
ldr r0, _080A0BF8 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0BF0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A0BF4: .4byte gRoomTransition
|
||||
_080A0BF8: .4byte gPlayerEntity
|
||||
|
||||
|
||||
.else
|
||||
.ifdef JP
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0DF2
|
||||
cmp r2, #1
|
||||
bgt _080A0DDC
|
||||
cmp r2, #0
|
||||
beq _080A0DE6
|
||||
b _080A0E50
|
||||
_080A0DDC:
|
||||
cmp r2, #2
|
||||
beq _080A0E00
|
||||
cmp r2, #3
|
||||
beq _080A0E2C
|
||||
b _080A0E50
|
||||
_080A0DE6:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0E8C
|
||||
_080A0DF2:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
b _080A0E38
|
||||
_080A0E00:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E1E
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0E8C
|
||||
_080A0E1E:
|
||||
ldr r0, _080A0E28 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A0E7A
|
||||
.align 2, 0
|
||||
_080A0E28: .4byte 0x030010A0
|
||||
_080A0E2C:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E44
|
||||
_080A0E38:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0E8C
|
||||
_080A0E44:
|
||||
ldr r0, _080A0E4C @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0E7C
|
||||
.align 2, 0
|
||||
_080A0E4C: .4byte 0x030010A0
|
||||
_080A0E50:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E74
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A0E70 @ =gUnk_0813ADEC
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0E8C
|
||||
.align 2, 0
|
||||
_080A0E70: .4byte gUnk_0813ADEC
|
||||
_080A0E74:
|
||||
ldr r0, _080A0E90 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A0E7A:
|
||||
ands r0, r1
|
||||
_080A0E7C:
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
ldr r0, _080A0E94 @ =0x03001160
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0E8C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0E90: .4byte 0x030010A0
|
||||
_080A0E94: .4byte 0x03001160
|
||||
.else
|
||||
.ifdef EU
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0876
|
||||
cmp r2, #1
|
||||
bgt _080A0860
|
||||
cmp r2, #0
|
||||
beq _080A086A
|
||||
b _080A08D4
|
||||
_080A0860:
|
||||
cmp r2, #2
|
||||
beq _080A0884
|
||||
cmp r2, #3
|
||||
beq _080A08B0
|
||||
b _080A08D4
|
||||
_080A086A:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0910
|
||||
_080A0876:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
b _080A08BC
|
||||
_080A0884:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08A2
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0910
|
||||
_080A08A2:
|
||||
ldr r0, _080A08AC @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A08FE
|
||||
.align 2, 0
|
||||
_080A08AC: .4byte gRoomTransition
|
||||
_080A08B0:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08C8
|
||||
_080A08BC:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0910
|
||||
_080A08C8:
|
||||
ldr r0, _080A08D0 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0900
|
||||
.align 2, 0
|
||||
_080A08D0: .4byte gRoomTransition
|
||||
_080A08D4:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08F8
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A08F4 @ =gUnk_0813ADEC
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0910
|
||||
.align 2, 0
|
||||
_080A08F4: .4byte gUnk_0813ADEC
|
||||
_080A08F8:
|
||||
ldr r0, _080A0914 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A08FE:
|
||||
ands r0, r1
|
||||
_080A0900:
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
ldr r0, _080A0918 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0910:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0914: .4byte gRoomTransition
|
||||
_080A0918: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xd]
|
||||
cmp r1, #1
|
||||
beq _080A102A
|
||||
cmp r1, #1
|
||||
bgt _080A1014
|
||||
cmp r1, #0
|
||||
beq _080A101E
|
||||
b _080A1088
|
||||
_080A1014:
|
||||
cmp r1, #2
|
||||
beq _080A1038
|
||||
cmp r1, #3
|
||||
beq _080A1064
|
||||
b _080A1088
|
||||
_080A101E:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
b _080A10D4
|
||||
_080A102A:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A10D4
|
||||
b _080A1070
|
||||
_080A1038:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A1056
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A10D4
|
||||
_080A1056:
|
||||
ldr r0, _080A1060 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A10C2
|
||||
.align 2, 0
|
||||
_080A1060: .4byte gRoomTransition
|
||||
_080A1064:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A107C
|
||||
_080A1070:
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
b _080A10D4
|
||||
_080A107C:
|
||||
ldr r0, _080A1084 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
b _080A10C2
|
||||
.align 2, 0
|
||||
_080A1084: .4byte gRoomTransition
|
||||
_080A1088:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A10BC
|
||||
ldr r0, _080A10B4 @ =gRoomControls
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #3
|
||||
bne _080A10A2
|
||||
movs r0, #0xf9
|
||||
bl SetLocalFlag
|
||||
_080A10A2:
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A10B8 @ =gUnk_0813ADEC
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A10D4
|
||||
.align 2, 0
|
||||
_080A10B4: .4byte gRoomControls
|
||||
_080A10B8: .4byte gUnk_0813ADEC
|
||||
_080A10BC:
|
||||
ldr r0, _080A10D8 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A10C2:
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A10D4
|
||||
ldr r0, _080A10DC @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A10D4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A10D8: .4byte gRoomTransition
|
||||
_080A10DC: .4byte gPlayerEntity
|
||||
.endif
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A10E0
|
||||
sub_080A10E0: @ 0x080A10E0
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r1, [r2, #0xd]
|
||||
cmp r1, #1
|
||||
beq _080A110E
|
||||
cmp r1, #1
|
||||
bgt _080A10F4
|
||||
cmp r1, #0
|
||||
beq _080A10FE
|
||||
b _080A1180
|
||||
_080A10F4:
|
||||
cmp r1, #2
|
||||
beq _080A1124
|
||||
cmp r1, #3
|
||||
beq _080A1148
|
||||
b _080A1180
|
||||
_080A10FE:
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r2, #0xe]
|
||||
adds r0, #0xf6
|
||||
bl SoundReq
|
||||
b _080A11BA
|
||||
_080A110E:
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _080A1130
|
||||
ldr r0, _080A1120 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
b _080A1162
|
||||
.align 2, 0
|
||||
_080A1120: .4byte gRoomTransition
|
||||
_080A1124:
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A113C
|
||||
_080A1130:
|
||||
ldrb r0, [r2, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r2, #0xe]
|
||||
b _080A11BA
|
||||
_080A113C:
|
||||
ldr r0, _080A1144 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #3
|
||||
b _080A1162
|
||||
.align 2, 0
|
||||
_080A1144: .4byte gRoomTransition
|
||||
_080A1148:
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A115C
|
||||
ldrb r0, [r2, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0xd]
|
||||
b _080A11BA
|
||||
_080A115C:
|
||||
ldr r0, _080A1178 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
_080A1162:
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A11BA
|
||||
ldr r0, _080A117C @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
b _080A11BA
|
||||
.align 2, 0
|
||||
_080A1178: .4byte gRoomTransition
|
||||
_080A117C: .4byte gPlayerEntity
|
||||
_080A1180:
|
||||
ldr r4, _080A11A0 @ =gPlayerEntity
|
||||
ldrb r3, [r4, #0x14]
|
||||
cmp r3, #4
|
||||
beq _080A11A8
|
||||
ldr r0, _080A11A4 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080A11BA
|
||||
adds r0, r3, #2
|
||||
movs r1, #6
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x14]
|
||||
b _080A11BA
|
||||
.align 2, 0
|
||||
_080A11A0: .4byte gPlayerEntity
|
||||
_080A11A4: .4byte gRoomTransition
|
||||
_080A11A8:
|
||||
movs r0, #0
|
||||
movs r1, #1
|
||||
strb r1, [r2, #0xc]
|
||||
strb r0, [r2, #0xd]
|
||||
ldr r0, _080A11BC @ =gPlayerState
|
||||
adds r0, #0x8b
|
||||
strb r1, [r0]
|
||||
bl ResetPlayerEventPriority
|
||||
_080A11BA:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A11BC: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_080A11C0
|
||||
sub_080A11C0: @ 0x080A11C0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _080A11D8 @ =gPlayerEntity
|
||||
movs r2, #0x36
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, #0
|
||||
bne _080A11DC
|
||||
adds r0, r1, #0
|
||||
bl IsCollidingPlayer
|
||||
b _080A11DE
|
||||
.align 2, 0
|
||||
_080A11D8: .4byte gPlayerEntity
|
||||
_080A11DC:
|
||||
movs r0, #0
|
||||
_080A11DE:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080A11E0
|
||||
sub_080A11E0: @ 0x080A11E0
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x59
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A1202
|
||||
movs r0, #8
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r2, #0x1e]
|
||||
adds r0, #1
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x1e]
|
||||
_080A1202:
|
||||
pop {pc}
|
||||
@@ -43551,16 +43551,6 @@
|
||||
"size": 36,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object43/gUnk_081217D0.bin",
|
||||
"start": 1185744,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object43/gUnk_081217D8.bin",
|
||||
"start": 1185752,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Object44_0.bin",
|
||||
"start": 1186708,
|
||||
@@ -44191,21 +44181,6 @@
|
||||
"start": 1190384,
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"path": "object68/gUnk_08122A18.bin",
|
||||
"start": 1190424,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object68/gUnk_08122A20.bin",
|
||||
"start": 1190432,
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "object68/gUnk_08122A28.bin",
|
||||
"start": 1190440,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Object6A_10_0.bin",
|
||||
"start": 1190732,
|
||||
@@ -45255,11 +45230,6 @@
|
||||
"size": 24,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "fourElements/gUnk_081248B4.bin",
|
||||
"start": 1198260,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_ObjectAF_0.bin",
|
||||
"start": 1198288,
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08124898:: @ 08124898
|
||||
.4byte sub_080A01E0
|
||||
.4byte sub_080A0290
|
||||
.4byte sub_080A02CC
|
||||
.4byte sub_080A034C
|
||||
.4byte sub_080A0390
|
||||
.4byte sub_080A03B8
|
||||
.4byte sub_080A03E8
|
||||
|
||||
gUnk_081248B4:: @ 081248B4
|
||||
.incbin "fourElements/gUnk_081248B4.bin"
|
||||
@@ -1,11 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811EE28:: @ 0811EE28
|
||||
.4byte sub_08081854
|
||||
.4byte sub_080818A4
|
||||
.4byte sub_08081930
|
||||
.4byte sub_08081A80
|
||||
@@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0812323C:: @ 0812323C
|
||||
.4byte sub_08096AEC
|
||||
.4byte sub_08096BBC
|
||||
.4byte sub_08096BF8
|
||||
.4byte sub_08096C3C
|
||||
.4byte sub_08096CB0
|
||||
@@ -1,27 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081213C4:: @ 081213C4
|
||||
.4byte sub_0808B884
|
||||
.4byte sub_0808B910
|
||||
.4byte sub_0808BAB4
|
||||
|
||||
gUnk_081213D0:: @ 081213D0
|
||||
.4byte sub_0808B89C
|
||||
.4byte sub_0808B8D4
|
||||
.4byte sub_0808B908
|
||||
|
||||
gUnk_081213DC:: @ 081213DC
|
||||
.4byte sub_0808B934
|
||||
.4byte sub_0808B9D4
|
||||
.4byte sub_0808BA10
|
||||
.4byte sub_0808BA48
|
||||
.4byte sub_0808BA6C
|
||||
.4byte nullsub_520
|
||||
|
||||
gUnk_081213F4:: @ 081213F4
|
||||
.4byte sub_0808BACC
|
||||
.4byte sub_0808BB04
|
||||
@@ -1,18 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081217BC:: @ 081217BC
|
||||
.4byte sub_0808DEE8
|
||||
.4byte sub_0808DFAC
|
||||
.4byte sub_0808E1BC
|
||||
.4byte sub_0808E208
|
||||
.4byte sub_0808E264
|
||||
|
||||
gUnk_081217D0:: @ 081217D0
|
||||
.incbin "object43/gUnk_081217D0.bin"
|
||||
|
||||
gUnk_081217D8:: @ 081217D8
|
||||
.incbin "object43/gUnk_081217D8.bin"
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081228C8:: @ 081228C8
|
||||
.4byte sub_0809346C
|
||||
.4byte sub_080934C8
|
||||
|
||||
gUnk_081228D0:: @ 081228D0
|
||||
.4byte sub_080934E0
|
||||
.4byte sub_08093650
|
||||
@@ -1,20 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122A10:: @ 08122A10
|
||||
.4byte sub_08094774
|
||||
.4byte sub_080948D0
|
||||
|
||||
gUnk_08122A18:: @ 08122A18
|
||||
.incbin "object68/gUnk_08122A18.bin"
|
||||
|
||||
gUnk_08122A20:: @ 08122A20
|
||||
.incbin "object68/gUnk_08122A20.bin"
|
||||
.4byte sub_080948E8
|
||||
|
||||
gUnk_08122A28:: @ 08122A28
|
||||
.incbin "object68/gUnk_08122A28.bin"
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08125084:: @ 08125084
|
||||
.4byte sub_080A2578
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A259C
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
.4byte sub_080A2584
|
||||
@@ -1,10 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081227F4:: @ 081227F4
|
||||
.4byte sub_08092CDC
|
||||
.4byte sub_08092D7C
|
||||
.4byte sub_08092E94
|
||||
@@ -1,11 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08124C10:: @ 08124C10
|
||||
.4byte sub_080A0F44
|
||||
.4byte sub_080A0FB0
|
||||
.4byte sub_080A1000
|
||||
.4byte sub_080A10E0
|
||||
+1
-1
@@ -23,7 +23,7 @@ typedef struct {
|
||||
u16 unk_02;
|
||||
union SplitWord unk_04;
|
||||
union SplitWord unk_08;
|
||||
union SplitWord unk_0C;
|
||||
u32 unk_0C;
|
||||
} struct_gUnk_020000C0_1;
|
||||
typedef struct {
|
||||
struct_gUnk_020000C0_1 unk_00[4];
|
||||
|
||||
@@ -142,6 +142,7 @@ extern bool32 sub_0806FC80(Entity*, Entity*, s32);
|
||||
extern void sub_0806FCF4(Entity*, s32, s32, s32);
|
||||
extern void sub_0806FD3C(Entity*);
|
||||
extern bool32 sub_0806FDA0(Entity*);
|
||||
extern void sub_0806FEBC(Entity*, u32, Entity*);
|
||||
extern void sub_080751E8(u32, u32, void*);
|
||||
extern void sub_08077BB8(ItemBehavior*);
|
||||
extern Entity* sub_08077C0C(ItemBehavior*, u32);
|
||||
@@ -197,6 +198,7 @@ extern void sub_0809EABC(Entity*);
|
||||
extern void sub_0809EAD8(Entity*);
|
||||
extern void sub_0809EB30(Entity*);
|
||||
extern void sub_080A1ED0(u32, u32, u32);
|
||||
extern Entity* sub_080A2A20(Entity*, u32, u32);
|
||||
extern Entity* sub_080A2A3C(Entity*, u32, u32, u32);
|
||||
extern Entity* sub_080A2AD4(Entity*);
|
||||
extern void sub_080A2AF4(Entity*, u32, u32);
|
||||
|
||||
+70
-25
@@ -31,45 +31,89 @@ extern const Hitbox gHitbox_27;
|
||||
extern const Hitbox gHitbox_28;
|
||||
extern const Hitbox gHitbox_29;
|
||||
extern const Hitbox gHitbox_30;
|
||||
extern const Hitbox gHitbox_32;
|
||||
extern const Hitbox gUnk_080FD190;
|
||||
extern const Hitbox gUnk_080FD1A8;
|
||||
extern const Hitbox gUnk_080FD1A8;
|
||||
extern const Hitbox gUnk_080FD1A8;
|
||||
extern const Hitbox gUnk_080FD1A8;
|
||||
extern const Hitbox gUnk_080FD1B4;
|
||||
extern const Hitbox gUnk_080FD330;
|
||||
extern const Hitbox gUnk_080FD258;
|
||||
extern const Hitbox gUnk_080FD490;
|
||||
extern const Hitbox gUnk_080FD488;
|
||||
extern const Hitbox gUnk_080FD538;
|
||||
extern const Hitbox gUnk_080FD530;
|
||||
extern const Hitbox gUnk_080FD544;
|
||||
extern const Hitbox gUnk_080FD588;
|
||||
extern const Hitbox gUnk_080FD37C;
|
||||
extern const Hitbox gUnk_080FD1D4;
|
||||
extern const Hitbox gUnk_080FD1DC;
|
||||
extern const Hitbox gUnk_080FD1E4;
|
||||
extern const Hitbox gUnk_080FD1E4;
|
||||
extern const Hitbox gUnk_080FD1EC;
|
||||
extern const Hitbox gUnk_080FD1F4;
|
||||
extern const Hitbox gUnk_080FD1F4;
|
||||
extern const Hitbox gUnk_080FD1FC;
|
||||
extern const Hitbox gUnk_080FD204;
|
||||
extern const Hitbox gUnk_080FD20C;
|
||||
extern const Hitbox gUnk_080FD214;
|
||||
extern const Hitbox gUnk_080FD21C;
|
||||
extern const Hitbox gUnk_080FD224;
|
||||
extern const Hitbox gUnk_080FD22C;
|
||||
extern const Hitbox gUnk_080FD238;
|
||||
extern const Hitbox gUnk_080FD240;
|
||||
extern const Hitbox gUnk_080FD248;
|
||||
extern const Hitbox gUnk_080FD1EC;
|
||||
extern const Hitbox gUnk_080FD258;
|
||||
extern const Hitbox gUnk_080FD260;
|
||||
extern const Hitbox gUnk_080FD270;
|
||||
extern const Hitbox gUnk_080FD278;
|
||||
extern const Hitbox gUnk_080FD280;
|
||||
extern const Hitbox gUnk_080FD290;
|
||||
extern const Hitbox gUnk_080FD298;
|
||||
extern const Hitbox gUnk_080FD2A0;
|
||||
extern const Hitbox gUnk_080FD2A8;
|
||||
extern const Hitbox gUnk_080FD2D0;
|
||||
extern const Hitbox gUnk_080FD2D8;
|
||||
extern const Hitbox gUnk_080FD2E0;
|
||||
extern const Hitbox gUnk_080FD2D0;
|
||||
extern const Hitbox gUnk_080FD2F0;
|
||||
extern const Hitbox gUnk_080FD308;
|
||||
extern const Hitbox gUnk_080FD310;
|
||||
extern const Hitbox gUnk_080FD320;
|
||||
extern const Hitbox gUnk_080FD328;
|
||||
extern const Hitbox gUnk_080FD330;
|
||||
extern const Hitbox gUnk_080FD340;
|
||||
extern const Hitbox gUnk_080FD340;
|
||||
extern const Hitbox gUnk_080FD34C;
|
||||
extern const Hitbox gUnk_080FD354;
|
||||
extern const Hitbox gUnk_080FD35C;
|
||||
extern const Hitbox gUnk_080FD35C;
|
||||
extern const Hitbox gUnk_080FD364;
|
||||
extern const Hitbox gUnk_080FD36C;
|
||||
extern const Hitbox gUnk_080FD36C;
|
||||
extern const Hitbox gUnk_080FD374;
|
||||
extern const Hitbox gUnk_080FD37C;
|
||||
extern const Hitbox gUnk_080FD384;
|
||||
extern const Hitbox gUnk_080FD38C;
|
||||
extern const Hitbox gUnk_080FD394;
|
||||
extern const Hitbox gUnk_080FD39C;
|
||||
extern const Hitbox gUnk_080FD3A4;
|
||||
extern const Hitbox gUnk_080FD3AC;
|
||||
extern const Hitbox gUnk_080FD3B4;
|
||||
extern const Hitbox gUnk_080FD3BC;
|
||||
extern const Hitbox gUnk_080FD3C4;
|
||||
extern const Hitbox gUnk_080FD3CC;
|
||||
extern const Hitbox gUnk_080FD3DC;
|
||||
extern const Hitbox gUnk_080FD3E4;
|
||||
extern const Hitbox gUnk_080FD3EC;
|
||||
extern const Hitbox gUnk_080FD580;
|
||||
extern const Hitbox gUnk_080FD35C;
|
||||
extern const Hitbox gUnk_080FD36C;
|
||||
extern const Hitbox gUnk_080FD384;
|
||||
extern const Hitbox gUnk_080FD558;
|
||||
extern const Hitbox gUnk_080FD3F4;
|
||||
extern const Hitbox gUnk_080FD3FC;
|
||||
extern const Hitbox gUnk_080FD408;
|
||||
extern const Hitbox gUnk_080FD41C;
|
||||
extern const Hitbox gUnk_080FD424;
|
||||
extern const Hitbox gUnk_080FD42C;
|
||||
extern const Hitbox gUnk_080FD434;
|
||||
extern const Hitbox gUnk_080FD43C;
|
||||
extern const Hitbox gUnk_080FD450;
|
||||
extern const Hitbox gUnk_080FD488;
|
||||
extern const Hitbox gUnk_080FD490;
|
||||
extern const Hitbox gUnk_080FD4B8;
|
||||
extern const Hitbox gUnk_080FD4C0;
|
||||
extern const Hitbox gUnk_080FD4C8;
|
||||
extern const Hitbox gUnk_080FD4D0;
|
||||
extern const Hitbox gUnk_080FD4D8;
|
||||
extern const Hitbox gUnk_080FD4E0;
|
||||
extern const Hitbox gUnk_080FD4E8;
|
||||
extern const Hitbox gUnk_080FD4F0;
|
||||
extern const Hitbox gUnk_080FD4F8;
|
||||
@@ -78,15 +122,16 @@ extern const Hitbox gUnk_080FD508;
|
||||
extern const Hitbox gUnk_080FD510;
|
||||
extern const Hitbox gUnk_080FD518;
|
||||
extern const Hitbox gUnk_080FD520;
|
||||
extern const Hitbox gUnk_080FD530;
|
||||
extern const Hitbox gUnk_080FD538;
|
||||
extern const Hitbox gUnk_080FD538;
|
||||
extern const Hitbox gUnk_080FD544;
|
||||
extern const Hitbox gUnk_080FD558;
|
||||
extern const Hitbox gUnk_080FD560;
|
||||
extern const Hitbox gUnk_080FD4B8;
|
||||
extern const Hitbox gUnk_080FD4C0;
|
||||
extern const Hitbox gUnk_080FD4C8;
|
||||
extern const Hitbox gUnk_080FD4D0;
|
||||
extern const Hitbox gUnk_080FD4D8;
|
||||
extern const Hitbox gUnk_080FD4E0;
|
||||
extern const Hitbox gUnk_080FD3F4;
|
||||
extern const Hitbox gUnk_080FD3FC;
|
||||
extern const Hitbox gUnk_080FD43C;
|
||||
extern const Hitbox gUnk_080FD570;
|
||||
extern const Hitbox gUnk_080FD578;
|
||||
extern const Hitbox gUnk_080FD580;
|
||||
extern const Hitbox gUnk_080FD588;
|
||||
|
||||
extern const Hitbox gPlayerHitbox;
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ extern void sub_08018C58(u32);
|
||||
typedef struct {
|
||||
u8 unk[4];
|
||||
u8* unk2;
|
||||
u32 unk4;
|
||||
u8 unk4[4];
|
||||
} Unk_struct;
|
||||
extern Unk_struct gUnk_03003DF0[];
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "entity.h"
|
||||
|
||||
// TODO Use new player entity struct everywhere once it is fully discovered.
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0xc];
|
||||
/*0x74*/ Entity* unk_74;
|
||||
/*0x78*/ u8 unk_78[0x4];
|
||||
/*0x7c*/ u32 unk_7c;
|
||||
/*0x80*/ u8 unk_80[8];
|
||||
} PlayerEntity;
|
||||
|
||||
#define gNewPlayerEntity (*(PlayerEntity*)&gPlayerEntity)
|
||||
+10
-10
@@ -228,7 +228,7 @@ typedef enum {
|
||||
|
||||
void ItemOnGround(Entity*);
|
||||
void DeathFx(Entity*);
|
||||
void ItemForSale(Entity*);
|
||||
void ItemForSale();
|
||||
void Button(Entity*);
|
||||
void MinishEmoticon(Entity*);
|
||||
void Pot(Entity*);
|
||||
@@ -279,7 +279,7 @@ void FrozenFlower(Entity*);
|
||||
void PullableMushroom();
|
||||
void Bollard(Entity*);
|
||||
void WarpPoint(Entity*);
|
||||
void Object35(Entity*);
|
||||
void Object35();
|
||||
void Object36(Entity*);
|
||||
void Object37(Entity*);
|
||||
void JarPortal(Entity*);
|
||||
@@ -293,7 +293,7 @@ void GiantLeaf(Entity*);
|
||||
void Fairy();
|
||||
void LadderUp(Entity*);
|
||||
void Object42(Entity*);
|
||||
void Object43(Entity*);
|
||||
void Object43();
|
||||
void Object44(Entity*);
|
||||
void Object45(Entity*);
|
||||
void GiantBookLadder(Entity*);
|
||||
@@ -323,18 +323,18 @@ void HouseDoorInterior(Entity*);
|
||||
void Whirlwind(Entity*);
|
||||
void ObjectBlockingStairs(Entity*);
|
||||
void SwordsmanNewsletter(Entity*);
|
||||
void Object61(Entity*);
|
||||
void Object61();
|
||||
void GiantTwig();
|
||||
void Object63(Entity*);
|
||||
void Object64(Entity*);
|
||||
void LadderHoleInBookshelf(Entity*);
|
||||
void Object66(Entity*);
|
||||
void Object67(Entity*);
|
||||
void Object68(Entity*);
|
||||
void Object68();
|
||||
void Object69(Entity*);
|
||||
void Object6A(Entity*);
|
||||
void CrenelBeanSprout();
|
||||
void MinecartDoor(Entity*);
|
||||
void MinecartDoor();
|
||||
void ObjectOnPillar();
|
||||
void MineralWaterSource(Entity*);
|
||||
void MinishSizedArchway(Entity*);
|
||||
@@ -398,7 +398,7 @@ void ObjectA8();
|
||||
void ObjectA9(Entity*);
|
||||
void WaterfallOpening(Entity*);
|
||||
void ObjectAB(Entity*);
|
||||
void FourElements(Entity*);
|
||||
void FourElements();
|
||||
void ObjectAD(Entity*);
|
||||
void FloatingBlock(Entity*);
|
||||
void ObjectAF(Entity*);
|
||||
@@ -410,7 +410,7 @@ void ObjectB4(Entity*);
|
||||
void ObjectB5(Entity*);
|
||||
void ObjectB6(Entity*);
|
||||
void Well(Entity*);
|
||||
void WindTribeTeleporter(Entity*);
|
||||
void WindTribeTeleporter();
|
||||
void ObjectB9(Entity*);
|
||||
void GyorgBossObject(Entity*);
|
||||
void Windcrest(Entity*);
|
||||
@@ -418,8 +418,8 @@ void LitArea(Entity*);
|
||||
void ObjectBD(Entity*);
|
||||
void Pinwheel(Entity*);
|
||||
void ObjectBF(Entity*);
|
||||
void EnemyItem(Entity*);
|
||||
void ObjectC1(Entity*);
|
||||
void EnemyItem();
|
||||
void ObjectC1();
|
||||
|
||||
extern void (*const gObjectFunctions[194])(Entity*);
|
||||
|
||||
|
||||
@@ -644,7 +644,7 @@ SECTIONS {
|
||||
/* objects */
|
||||
src/object/itemOnGround.o(.text);
|
||||
src/object/deathFx.o(.text);
|
||||
asm/object/itemForSale.o(.text);
|
||||
src/object/itemForSale.o(.text);
|
||||
src/object/button.o(.text);
|
||||
asm/object/minishEmoticon.o(.text);
|
||||
src/object/pot.o(.text);
|
||||
@@ -695,7 +695,7 @@ SECTIONS {
|
||||
src/object/pullableMushroom.o(.text);
|
||||
src/object/bollard.o(.text);
|
||||
src/object/warpPoint.o(.text);
|
||||
asm/object/object35.o(.text);
|
||||
src/object/object35.o(.text);
|
||||
asm/object/object36.o(.text);
|
||||
asm/object/object37.o(.text);
|
||||
src/object/jarPortal.o(.text);
|
||||
@@ -712,7 +712,7 @@ SECTIONS {
|
||||
src/object/fairy.o(.text);
|
||||
src/object/ladderUp.o(.text);
|
||||
asm/object/object42.o(.text);
|
||||
asm/object/object43.o(.text);
|
||||
src/object/object43.o(.text);
|
||||
asm/object/object44.o(.text);
|
||||
asm/object/object45.o(.text);
|
||||
src/object/giantBookLadder.o(.text);
|
||||
@@ -740,21 +740,21 @@ SECTIONS {
|
||||
asm/object/object5B.o(.text);
|
||||
src/object/mask.o(.text);
|
||||
asm/object/houseDoorInterior.o(.text);
|
||||
asm/object/whirlwind.o(.text);
|
||||
src/object/whirlwind.o(.text);
|
||||
asm/object/objectBlockingStairs.o(.text);
|
||||
src/object/swordsmanNewsletter.o(.text);
|
||||
asm/object/object61.o(.text);
|
||||
src/object/object61.o(.text);
|
||||
src/object/giantTwig.o(.text);
|
||||
asm/object/object63.o(.text);
|
||||
asm/object/object64.o(.text);
|
||||
asm/object/ladderHoleInBookshelf.o(.text);
|
||||
asm/object/object66.o(.text);
|
||||
asm/object/object67.o(.text);
|
||||
asm/object/object68.o(.text);
|
||||
asm/object/object69.o(.text);
|
||||
src/object/object68.o(.text);
|
||||
src/object/object69.o(.text);
|
||||
src/object/object6A.o(.text);
|
||||
src/object/crenelBeanSprout.o(.text);
|
||||
asm/object/minecartDoor.o(.text);
|
||||
src/object/minecartDoor.o(.text);
|
||||
src/object/objectOnPillar.o(.text);
|
||||
src/object/mineralWaterSource.o(.text);
|
||||
src/object/minishSizedArchway.o(.text);
|
||||
@@ -819,7 +819,7 @@ SECTIONS {
|
||||
asm/object/objectA9.o(.text);
|
||||
asm/object/waterfallOpening.o(.text);
|
||||
asm/object/objectAB.o(.text);
|
||||
asm/object/fourElements.o(.text);
|
||||
src/object/fourElements.o(.text);
|
||||
asm/object/objectAD.o(.text);
|
||||
src/object/floatingBlock.o(.text);
|
||||
src/object/objectAF.o(.text);
|
||||
@@ -831,16 +831,16 @@ SECTIONS {
|
||||
src/object/objectB5.o(.text);
|
||||
asm/object/objectB6.o(.text);
|
||||
src/object/well.o(.text);
|
||||
asm/object/windTribeTeleporter.o(.text);
|
||||
src/object/windTribeTeleporter.o(.text);
|
||||
asm/object/objectB9.o(.text);
|
||||
src/object/gyorgBossObject.o(.text);
|
||||
src/object/windcrest.o(.text);
|
||||
asm/object/litArea.o(.text);
|
||||
asm/object/objectBD.o(.text);
|
||||
src/object/pinwheel.o(.text);
|
||||
asm/object/objectBF.o(.text);
|
||||
asm/object/enemyItem.o(.text);
|
||||
asm/object/objectC1.o(.text);
|
||||
src/object/objectBF.o(.text);
|
||||
src/object/enemyItem.o(.text);
|
||||
src/object/objectC1.o(.text);
|
||||
/* END objects */
|
||||
src/objectUtils.o(.text);
|
||||
asm/objectUtils.o(.text);
|
||||
@@ -1359,7 +1359,7 @@ SECTIONS {
|
||||
data/const/object/itemOnGround.o(.rodata);
|
||||
src/object/deathFx.o(.rodata);
|
||||
data/animations/object/deathFx.o(.rodata);
|
||||
data/const/object/itemForSale.o(.rodata);
|
||||
src/object/itemForSale.o(.rodata);
|
||||
data/const/object/button.o(.rodata);
|
||||
data/const/object/minishEmoticon.o(.rodata);
|
||||
data/animations/object/minishEmoticon.o(.rodata);
|
||||
@@ -1428,7 +1428,7 @@ SECTIONS {
|
||||
data/animations/object/bollard.o(.rodata);
|
||||
src/object/warpPoint.o(.rodata);
|
||||
data/animations/object/warpPoint.o(.rodata);
|
||||
data/const/object/object35.o(.rodata);
|
||||
src/object/object35.o(.rodata);
|
||||
data/animations/object/object35.o(.rodata);
|
||||
data/const/object/object36.o(.rodata);
|
||||
data/const/object/object37.o(.rodata);
|
||||
@@ -1446,7 +1446,7 @@ SECTIONS {
|
||||
data/const/object/giantLeaf.o(.rodata);
|
||||
src/object/fairy.o(.rodata);
|
||||
data/const/object/object42.o(.rodata);
|
||||
data/const/object/object43.o(.rodata);
|
||||
src/object/object43.o(.rodata);
|
||||
data/animations/object/object43.o(.rodata);
|
||||
data/const/object/object44.o(.rodata);
|
||||
data/animations/object/object44.o(.rodata);
|
||||
@@ -1483,24 +1483,24 @@ SECTIONS {
|
||||
data/const/object/object5B.o(.rodata);
|
||||
data/const/object/mask.o(.rodata);
|
||||
data/const/object/houseDoorInterior.o(.rodata);
|
||||
data/const/object/whirlwind.o(.rodata);
|
||||
src/object/whirlwind.o(.rodata);
|
||||
data/animations/object/whirlwind.o(.rodata);
|
||||
data/const/object/objectBlockingStairs.o(.rodata);
|
||||
data/const/object/swordsmanNewsletter.o(.rodata);
|
||||
data/const/object/object61.o(.rodata);
|
||||
src/object/object61.o(.rodata);
|
||||
src/object/giantTwig.o(.rodata);
|
||||
data/const/object/object63.o(.rodata);
|
||||
data/const/object/object64.o(.rodata);
|
||||
data/animations/object/object64.o(.rodata);
|
||||
data/const/object/ladderHoleInBookshelf.o(.rodata);
|
||||
data/const/object/object67.o(.rodata);
|
||||
data/const/object/object68.o(.rodata);
|
||||
src/object/object68.o(.rodata);
|
||||
src/object/object6A.o(.rodata);
|
||||
data/const/object/object6A.o(.rodata);
|
||||
data/animations/object/object6A.o(.rodata);
|
||||
src/object/crenelBeanSprout.o(.rodata);
|
||||
data/animations/object/crenelBeanSprout.o(.rodata);
|
||||
data/const/object/minecartDoor.o(.rodata);
|
||||
src/object/minecartDoor.o(.rodata);
|
||||
src/object/objectOnPillar.o(.rodata);
|
||||
data/const/object/mineralWaterSource.o(.rodata);
|
||||
data/const/object/object70.o(.rodata);
|
||||
@@ -1574,7 +1574,7 @@ SECTIONS {
|
||||
data/const/object/waterfallOpening.o(.rodata);
|
||||
data/const/object/objectAB.o(.rodata);
|
||||
data/animations/object/objectAB.o(.rodata);
|
||||
data/const/object/fourElements.o(.rodata);
|
||||
src/object/fourElements.o(.rodata);
|
||||
data/const/object/objectAD.o(.rodata);
|
||||
data/const/object/objectAF.o(.rodata);
|
||||
data/animations/object/objectAF.o(.rodata);
|
||||
@@ -1587,14 +1587,14 @@ SECTIONS {
|
||||
data/const/object/objectB4.o(.rodata);
|
||||
data/animations/object/objectB4.o(.rodata);
|
||||
data/const/object/well.o(.rodata);
|
||||
data/const/object/windTribeTeleporter.o(.rodata);
|
||||
src/object/windTribeTeleporter.o(.rodata);
|
||||
data/const/object/objectB9.o(.rodata);
|
||||
src/object/gyorgBossObject.o(.rodata);
|
||||
data/const/object/windcrest.o(.rodata);
|
||||
data/const/object/objectBD.o(.rodata);
|
||||
data/const/object/pinwheel.o(.rodata);
|
||||
data/animations/object/pinwheel.o(.rodata);
|
||||
data/const/object/objectC1.o(.rodata);
|
||||
src/object/objectC1.o(.rodata);
|
||||
src/objectDefinitions.o(.rodata);
|
||||
src/playerItemDefinitions.o(.rodata);
|
||||
data/data_08125104.o(.rodata);
|
||||
|
||||
+1
-1
@@ -72,6 +72,6 @@ void sub_08078850(Entity* arg0, u32 arg1, u32 arg2, void* arg3) {
|
||||
if (iVar1 >= 0) {
|
||||
gUnk_03003DF0[iVar1].unk[8] = arg1;
|
||||
gUnk_03003DF0[iVar1].unk[10] = arg2;
|
||||
*(&gUnk_03003DF0[iVar1].unk4 + 1) = (u32)arg3;
|
||||
*((u32*)&gUnk_03003DF0[iVar1].unk4 + 1) = (u32)arg3;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -556,12 +556,12 @@ void sub_0806FE84(Entity* ent) {
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806FEBC(Entity* ent, u32 param_2, u32 param_3) {
|
||||
void sub_0806FEBC(Entity* ent, u32 param_2, Entity* param_3) {
|
||||
struct_gUnk_020000C0_1* ptr = &gUnk_020000C0[ent->spriteAnimation[2]].unk_00[param_2];
|
||||
*((u32*)ptr) = 0;
|
||||
ptr->unk_04.WORD = 0;
|
||||
ptr->unk_08.WORD = 0;
|
||||
ptr->unk_0C.WORD = param_3;
|
||||
ptr->unk_0C = (u32)param_3;
|
||||
ptr->unk_00.unk0 = 1;
|
||||
ptr->unk_00.unk1 = 1;
|
||||
}
|
||||
@@ -669,7 +669,7 @@ bool32 sub_0807007C(struct_gUnk_020000C0* this, u32 param_2) {
|
||||
|
||||
ptr3 = &ptr2[ptr1->unk_01 * 4];
|
||||
ptr1->unk_08.BYTES.byte1 = *ptr3;
|
||||
ptr1->unk_0C.WORD = spritePtr[2] + ((*(u16*)&ptr3[2]) << 5);
|
||||
ptr1->unk_0C = spritePtr[2] + ((*(u16*)&ptr3[2]) << 5);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -23,8 +24,6 @@ typedef struct {
|
||||
/*0x84*/ u32 unk_84;
|
||||
} ArmosEntity;
|
||||
|
||||
extern Hitbox gUnk_080FD2F0;
|
||||
extern Hitbox gHitbox_15;
|
||||
extern Entity* gUnk_020000B0;
|
||||
extern Entity gUnk_02027EB4;
|
||||
extern Entity gUnk_0200D654;
|
||||
|
||||
+1
-1
@@ -297,7 +297,7 @@ bool32 sub_0803EF20(Enemy4DEntity* this) {
|
||||
sub_0803EF70, sub_0803EFAC, sub_0803EFAC, sub_0803EFAC, sub_0803EF70, sub_0803EF70, sub_0803EFAC,
|
||||
};
|
||||
Entity* it;
|
||||
LinkedList* list = ((LinkedList*)&gEntityLists + 2);
|
||||
LinkedList* list = &gEntityLists[2];
|
||||
|
||||
for (it = list->first; it != (Entity*)list; it = it->next) {
|
||||
if ((it->kind == 8) && gUnk_080D08C8[it->id](super, it)) {
|
||||
|
||||
+1
-1
@@ -11,6 +11,7 @@
|
||||
#include "functions.h"
|
||||
#include "fade.h"
|
||||
#include "object.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -35,7 +36,6 @@ typedef struct {
|
||||
extern Entity* sub_08017A90(Entity*, Entity*);
|
||||
|
||||
extern Entity* gUnk_020000B0;
|
||||
extern Hitbox gUnk_080FD308;
|
||||
extern const u8 gUnk_080B3E80[];
|
||||
|
||||
void sub_08031344(EyegoreEntity*);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "entity.h"
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
@@ -11,8 +12,6 @@ typedef struct {
|
||||
} FlyingSkullEntity;
|
||||
|
||||
extern void (*const gUnk_080012C8[])(Entity*);
|
||||
extern Hitbox gUnk_080FD340; // TODO should be const
|
||||
extern Hitbox gUnk_080FD34C;
|
||||
|
||||
void (*const FlyingSkull_Functions[])(Entity*);
|
||||
void (*const gUnk_080CFB9C[])(FlyingSkullEntity*);
|
||||
@@ -161,7 +160,7 @@ void sub_08039EE4(FlyingSkullEntity* this) {
|
||||
super->subAction = 1;
|
||||
COLLISION_OFF(super);
|
||||
super->collisions = 0;
|
||||
super->hitbox = &gUnk_080FD340;
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD340;
|
||||
gPlayerEntity.animationState;
|
||||
this->unk_0x76 = gPlayerEntity.animationState;
|
||||
SetTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer);
|
||||
@@ -196,7 +195,7 @@ void sub_08039FAC(FlyingSkullEntity* this) {
|
||||
super->spriteOffsetX = 0;
|
||||
super->hitType = 0xa0;
|
||||
super->flags2 = 0xf;
|
||||
super->hitbox = &gUnk_080FD34C;
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD34C;
|
||||
SetTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern Hitbox gUnk_080FD298;
|
||||
extern Hitbox gUnk_080FD2A0;
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08029E0C(Entity*);
|
||||
void sub_08029EEC(Entity*);
|
||||
@@ -283,7 +281,7 @@ void sub_08029D14(Entity* this) {
|
||||
this->action = 4;
|
||||
this->actionDelay = 0x78;
|
||||
this->hitType = 0x6c;
|
||||
this->hitbox = &gUnk_080FD298;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD298;
|
||||
EnqueueSFX(SFX_6B);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "enemy.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_0803B538(Entity*);
|
||||
u32 sub_0803B4E4(Entity*);
|
||||
@@ -92,12 +93,6 @@ void sub_0803B978(Entity*);
|
||||
void sub_0803BA6C(Entity*);
|
||||
void sub_0803BA80(Entity*);
|
||||
|
||||
// these are not with the rest of this files constant data
|
||||
extern Hitbox gUnk_080FD35C;
|
||||
extern Hitbox gUnk_080FD364;
|
||||
extern Hitbox gUnk_080FD36C;
|
||||
extern Hitbox gUnk_080FD374;
|
||||
|
||||
void (*const MazaalBracelet_Functions[])(Entity*) = { MazaalBracelet_OnTick, MazaalBracelet_OnCollision,
|
||||
GenericKnockback, GenericDeath,
|
||||
GenericConfused, MazaalBracelet_OnGrabbed };
|
||||
@@ -920,9 +915,9 @@ void sub_0803B100(Entity* this) {
|
||||
this->action = 0x29;
|
||||
this->zVelocity = Q_16_16(1.25);
|
||||
if (this->type == 0) {
|
||||
this->hitbox = &gUnk_080FD364;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD364;
|
||||
} else {
|
||||
this->hitbox = &gUnk_080FD374;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD374;
|
||||
}
|
||||
temp = *(Entity**)&this->field_0x74;
|
||||
temp->action = 3;
|
||||
@@ -1074,7 +1069,7 @@ void sub_0803B3F4(Entity* this) {
|
||||
if (this->type == 0) {
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD35C;
|
||||
} else {
|
||||
this->hitbox = &gUnk_080FD36C;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD36C;
|
||||
}
|
||||
temp = this->parent;
|
||||
value = (this->type == 0) ? 1 : 2;
|
||||
|
||||
@@ -6,17 +6,10 @@
|
||||
*/
|
||||
|
||||
#include "entity.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08035194(Entity*);
|
||||
|
||||
extern const Hitbox gUnk_080FD394;
|
||||
extern const Hitbox gUnk_080FD39C;
|
||||
extern const Hitbox gUnk_080FD3A4;
|
||||
extern const Hitbox gUnk_080FD3AC;
|
||||
extern const Hitbox gUnk_080FD3B4;
|
||||
extern const Hitbox gUnk_080FD3BC;
|
||||
extern const Hitbox gUnk_080FD3C4;
|
||||
|
||||
const Hitbox* const gUnk_080CEF34[] = {
|
||||
&gUnk_080FD394, &gUnk_080FD394, &gUnk_080FD394, &gUnk_080FD39C, &gUnk_080FD3A4,
|
||||
&gUnk_080FD3AC, &gUnk_080FD3AC, &gUnk_080FD3AC, &gUnk_080FD3AC,
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "save.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void sub_080293DC(Entity*);
|
||||
extern void sub_080296D8(Entity*);
|
||||
@@ -28,7 +29,6 @@ extern void (*const gUnk_080CCC3C[])(Entity*);
|
||||
extern const u8 gUnk_080CCC34[];
|
||||
extern const s8 gUnk_080CCC44[];
|
||||
extern const u8 gUnk_080CCC47[];
|
||||
extern Hitbox gUnk_080FD260;
|
||||
|
||||
void RupeeLike(Entity* this) {
|
||||
u32 uVar1;
|
||||
@@ -265,7 +265,7 @@ void sub_08029770(Entity* this) {
|
||||
temp = this->field_0x82.HALF.LO;
|
||||
this->palette.b.b0 = temp;
|
||||
this->hitType = 0x8d;
|
||||
this->hitbox = &gUnk_080FD260;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD260;
|
||||
InitializeAnimation(this, 2);
|
||||
this->child->spriteSettings.draw = TRUE;
|
||||
InitializeAnimation(this->child, 6);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void sub_08001318(Entity*);
|
||||
extern u32 PlayerInRange(Entity*, u32, u32);
|
||||
@@ -21,9 +22,6 @@ extern void (*const gUnk_080CBA40[])(Entity*);
|
||||
|
||||
extern const u8 gUnk_080CBA60[];
|
||||
|
||||
extern Hitbox gHitbox_23;
|
||||
extern Hitbox gHitbox_32;
|
||||
|
||||
extern Entity* gUnk_020000B0;
|
||||
|
||||
void SpinyChuchu(Entity* this) {
|
||||
@@ -44,7 +42,7 @@ void SpinyChuchu_OnCollision(Entity* this) {
|
||||
this->action = 2;
|
||||
this->field_0xf = 0x3c;
|
||||
this->hitType = 0x5c;
|
||||
this->hitbox = &gHitbox_23;
|
||||
this->hitbox = (Hitbox*)&gHitbox_23;
|
||||
InitializeAnimation(this, 0);
|
||||
break;
|
||||
case 8:
|
||||
@@ -193,9 +191,9 @@ void sub_08022780(Entity* this) {
|
||||
void sub_080227AC(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if (this->frame & 1) {
|
||||
this->hitbox = &gHitbox_32;
|
||||
this->hitbox = (Hitbox*)&gHitbox_32;
|
||||
} else {
|
||||
this->hitbox = &gHitbox_23;
|
||||
this->hitbox = (Hitbox*)&gHitbox_23;
|
||||
}
|
||||
|
||||
if (this->frame & 2) {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "enemy.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct VaatiArm_HeapStruct1 {
|
||||
union SplitHWord unk00;
|
||||
@@ -170,9 +171,6 @@ const u16 gUnk_080D140E[] = { -0x6000, -0x5000, -0x4000 };
|
||||
const u8 gUnk_080D1414[] = { 0, 0xc, 0xe, 0x10, 0x1c };
|
||||
const u8 gUnk_080D1419[] = { 0, 0xa, 0xa, 0xa, 0x1c };
|
||||
|
||||
extern const Hitbox gUnk_080FD450;
|
||||
extern const Hitbox gUnk_080FD538;
|
||||
|
||||
void VaatiArm(Entity* this) {
|
||||
VaatiArm_Functions[GetNextFunction(this)](this);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ void ClearAllDeletedEntities(void);
|
||||
void DeleteAllEntities(void);
|
||||
void sub_0805E98C(void);
|
||||
extern void sub_0806FE84(Entity*);
|
||||
extern void sub_08078954(Entity*);
|
||||
extern void sub_08017744(Entity*);
|
||||
extern void UnloadHitbox(Entity*);
|
||||
extern void sub_0804AA1C(Entity*);
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
#include "npc.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void (*gUnk_081140D4[])(Entity*);
|
||||
|
||||
@@ -28,7 +29,6 @@ extern void InitBiggoronTimer(void);
|
||||
void sub_0806D110(void);
|
||||
void sub_0806D164(Entity* this);
|
||||
|
||||
extern Hitbox gHitbox_3;
|
||||
Entity* sub_0806D00C(Entity* this);
|
||||
|
||||
void sub_0806D4C0(Entity*, u32);
|
||||
@@ -241,7 +241,7 @@ void sub_0806D3C0(Entity* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
this->action = 1;
|
||||
this->hitbox = &gHitbox_3;
|
||||
this->hitbox = (Hitbox*)&gHitbox_3;
|
||||
SetDefaultPriority(this, PRIO_MESSAGE);
|
||||
sub_0807DD64(this);
|
||||
} else {
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@
|
||||
#include "object.h"
|
||||
#include "npc.h"
|
||||
#include "game.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern Hitbox gHitbox_2;
|
||||
typedef struct {
|
||||
u32 unk_00;
|
||||
s8 unk_04;
|
||||
@@ -33,7 +33,7 @@ void NPC4E(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 4;
|
||||
this->hitbox = &gHitbox_2;
|
||||
this->hitbox = (Hitbox*)&gHitbox_2;
|
||||
sub_0807DD50(this);
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
|
||||
+2
-3
@@ -1,6 +1,7 @@
|
||||
#include "functions.h"
|
||||
#include "message.h"
|
||||
#include "npc.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
u8 unk_0; // u8
|
||||
@@ -15,8 +16,6 @@ typedef struct {
|
||||
u16 unk_8; // u16
|
||||
} UnkHeap;
|
||||
|
||||
extern Hitbox gHitbox_0;
|
||||
|
||||
void sub_08060E70(Entity*, u32);
|
||||
|
||||
u32 sub_08061230(Entity*);
|
||||
@@ -152,7 +151,7 @@ void sub_08060AE0(Entity* this) {
|
||||
this->hurtType = 0x48;
|
||||
this->hitType = 0x49;
|
||||
this->flags2 = 3;
|
||||
this->hitbox = &gHitbox_0;
|
||||
this->hitbox = (Hitbox*)&gHitbox_0;
|
||||
this->field_0x17 &= 0xfe;
|
||||
this->field_0x6c.HALF.LO = 0xff;
|
||||
sub_08060E70(this, this->animationState);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "message.h"
|
||||
#include "object.h"
|
||||
#include "npc.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
@@ -27,8 +28,6 @@ void nullsub_111(PicolyteBottleEntity* this);
|
||||
|
||||
extern void sub_08078828(Entity*);
|
||||
|
||||
extern Hitbox gHitbox_0;
|
||||
|
||||
void PicolyteBottle(Entity* this) {
|
||||
static void (*const PicolyteBottle_Actions[])(PicolyteBottleEntity*) = {
|
||||
PicolyteBottle_Init,
|
||||
@@ -63,7 +62,7 @@ void PicolyteBottle_Init(PicolyteBottleEntity* this) {
|
||||
sub_0806E014(this);
|
||||
sub_0807DD50(super);
|
||||
} else {
|
||||
super->hitbox = &gHitbox_0;
|
||||
super->hitbox = (Hitbox*)&gHitbox_0;
|
||||
super->collisionLayer = 1;
|
||||
sub_0806E0DC(this);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -19,8 +20,6 @@ typedef struct {
|
||||
/*0x86*/ u16 unk_86;
|
||||
} BigIceBlockEntity;
|
||||
|
||||
extern const Hitbox gUnk_080FD190;
|
||||
|
||||
extern void (*const BigIceBlock_Actions[])(BigIceBlockEntity*);
|
||||
extern const u16 gUnk_081237B0[];
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -25,7 +26,6 @@ typedef struct {
|
||||
/*0x86*/ u16 unk_86;
|
||||
} BossDoorEntity;
|
||||
|
||||
extern Hitbox gHitbox_3;
|
||||
extern bool32 gUnk_02036BB8;
|
||||
extern const u8 gUnk_0811F740[];
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -19,8 +20,6 @@ typedef struct {
|
||||
|
||||
extern u32 sub_080002BC(s32, s32, u32);
|
||||
|
||||
extern Hitbox gUnk_080FD2A8;
|
||||
|
||||
void sub_080969A4(CrenelBeanSproutEntity*);
|
||||
void sub_08096A78(CrenelBeanSproutEntity*);
|
||||
void CrenelBeanSprout_Init(CrenelBeanSproutEntity*);
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
/**
|
||||
* @file enemyItem.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Enemy Item object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x1e];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} EnemyItemEntity;
|
||||
|
||||
void sub_080A2500(EnemyItemEntity*);
|
||||
void sub_080A2534(EnemyItemEntity*);
|
||||
void sub_080A2508(EnemyItemEntity*);
|
||||
|
||||
void EnemyItem(EnemyItemEntity* this) {
|
||||
Entity* entity;
|
||||
LinkedList* list;
|
||||
|
||||
if (CheckFlags(this->unk_86)) {
|
||||
sub_080A2500(this);
|
||||
}
|
||||
if (super->action == 0) {
|
||||
super->action++;
|
||||
super->type = super->actionDelay;
|
||||
super->child = NULL;
|
||||
list = &gEntityLists[4];
|
||||
for (entity = list->first; entity != (Entity*)list; entity = entity->next) {
|
||||
if ((((entity->kind == 3) && (super->type2 == entity->id)) &&
|
||||
(((entity->x.HALF.HI - super->x.HALF.HI) + 0x10U) << 0x10 >> 0x10 < 0x20)) &&
|
||||
(((entity->y.HALF.HI - super->y.HALF.HI) + 0x10U) << 0x10 >> 0x10 < 0x20)) {
|
||||
super->child = entity;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (super->child == NULL) {
|
||||
sub_080A2534(this);
|
||||
}
|
||||
sub_08054564();
|
||||
}
|
||||
entity = super->child;
|
||||
if (entity != NULL) {
|
||||
PositionRelative(entity, super, 0x40000, 0x10000);
|
||||
super->z.HALF.HI -= 4;
|
||||
if (entity->next == NULL) {
|
||||
sub_080A2508(this);
|
||||
}
|
||||
}
|
||||
sub_08080CB4(super);
|
||||
}
|
||||
|
||||
void sub_080A2500(EnemyItemEntity* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_080A2508(EnemyItemEntity* this) {
|
||||
EnemyItemEntity* entity;
|
||||
|
||||
entity = (EnemyItemEntity*)CreateObjectWithParent(super, GROUND_ITEM, super->type, 0);
|
||||
if (entity != NULL) {
|
||||
(entity->base).actionDelay = 5;
|
||||
entity->unk_86 = this->unk_86;
|
||||
}
|
||||
sub_080A2500(this);
|
||||
}
|
||||
|
||||
void sub_080A2534(EnemyItemEntity* this) {
|
||||
EnemyItemEntity* entity;
|
||||
|
||||
entity = (EnemyItemEntity*)CreateObjectWithParent(super, GROUND_ITEM, super->type, 0);
|
||||
if (entity != NULL) {
|
||||
(entity->base).actionDelay = 4;
|
||||
entity->unk_86 = this->unk_86;
|
||||
}
|
||||
sub_080A2500(this);
|
||||
}
|
||||
+1
-2
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -21,8 +22,6 @@ typedef struct {
|
||||
/*0x87*/ u8 unk_87;
|
||||
} FairyEntity;
|
||||
|
||||
extern Hitbox gUnk_080FD1A8;
|
||||
|
||||
void sub_0808D76C(FairyEntity*);
|
||||
void sub_0808DAD0(FairyEntity*);
|
||||
void sub_0808DB2C(FairyEntity*);
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
/**
|
||||
* @file fourElements.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Four Elements object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
#include "screen.h"
|
||||
#include "message.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u16 unk_68;
|
||||
/*0x6a*/ u8 unk_6a;
|
||||
} FourElementsEntity;
|
||||
|
||||
extern u32 sub_0805429C(u32);
|
||||
extern void sub_0807DF50(void);
|
||||
|
||||
extern u16 script_PlayerGetElement[];
|
||||
|
||||
void FourElements_Init(FourElementsEntity*);
|
||||
void FourElements_Action1(FourElementsEntity*);
|
||||
void FourElements_Action2(FourElementsEntity*);
|
||||
void FourElements_Action3(FourElementsEntity*);
|
||||
void FourElements_Action4(FourElementsEntity*);
|
||||
void FourElements_Action5(FourElementsEntity*);
|
||||
void FourElements_Action6(FourElementsEntity*);
|
||||
void sub_080A0424(FourElementsEntity*);
|
||||
void sub_080A0444(FourElementsEntity*);
|
||||
|
||||
void FourElements(FourElementsEntity* this) {
|
||||
static void (*const FourElements_Actions[])(FourElementsEntity*) = {
|
||||
FourElements_Init, FourElements_Action1, FourElements_Action2, FourElements_Action3,
|
||||
FourElements_Action4, FourElements_Action5, FourElements_Action6,
|
||||
};
|
||||
FourElements_Actions[super->action](this);
|
||||
sub_08080CB4(super);
|
||||
}
|
||||
|
||||
void FourElements_Init(FourElementsEntity* this) {
|
||||
Entity* objectAD;
|
||||
super->action = 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->spritePriority.b1 = 2;
|
||||
super->spriteRendering.b3 = 1;
|
||||
super->hitbox = (Hitbox*)&gHitbox_6;
|
||||
super->z.HALF.HI = 0xff40;
|
||||
this->unk_6a = 0x40;
|
||||
switch (super->type) {
|
||||
case 0x41:
|
||||
gScreen.lcd.displayControl &= 0xfdff;
|
||||
super->collisionLayer = 1;
|
||||
break;
|
||||
case 0x40:
|
||||
case 0x42:
|
||||
case 0x43:
|
||||
break;
|
||||
}
|
||||
StartPlayerScript(script_PlayerGetElement);
|
||||
gScreen.controls.layerFXControl = 0x640;
|
||||
gScreen.controls.alphaBlend = 0x1000;
|
||||
sub_0805BC4C();
|
||||
objectAD = CreateObjectWithParent(super, OBJECT_AD, super->type - 0x40, 0);
|
||||
if (objectAD != NULL) {
|
||||
objectAD->parent = super;
|
||||
super->child = objectAD;
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action1(FourElementsEntity* this) {
|
||||
if ((gActiveScriptInfo.syncFlags & 4) != 0) {
|
||||
sub_080A0424(this);
|
||||
if (super->z.HALF.HI < -8) {
|
||||
super->z.HALF.HI++;
|
||||
} else {
|
||||
super->action = 2;
|
||||
gActiveScriptInfo.syncFlags |= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action2(FourElementsEntity* this) {
|
||||
sub_080A0424(this);
|
||||
sub_080A0444(this);
|
||||
if (IsCollidingPlayer(super)) {
|
||||
DeleteEntity(super->child);
|
||||
super->spriteSettings.draw = 0;
|
||||
super->action = 3;
|
||||
super->actionDelay = 0x2d;
|
||||
gScreen.controls.layerFXControl = 0x640;
|
||||
gScreen.controls.alphaBlend = 0;
|
||||
sub_080A7C18(super->type, 0, 1);
|
||||
sub_0808C650(super, 1);
|
||||
SetFade(6, 2);
|
||||
SoundReq(SFX_F8);
|
||||
SoundReq(SFX_148);
|
||||
SoundReq(BGM_ELEMENT_GET);
|
||||
SoundReq(SONG_BGM_0);
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action3(FourElementsEntity* this) {
|
||||
if (super->actionDelay != 0) {
|
||||
sub_080A0424(this);
|
||||
if (--super->actionDelay == 0) {
|
||||
SetDefaultPriority(&gPlayerEntity, 0);
|
||||
}
|
||||
} else {
|
||||
RequestPriorityDuration(NULL, 0x3c);
|
||||
if (sub_0808C67C()) {
|
||||
super->action = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action4(FourElementsEntity* this) {
|
||||
RequestPriorityDuration(NULL, 0x3c);
|
||||
if (gFadeControl.active == 0) {
|
||||
super->action = 5;
|
||||
this->unk_68 = 0x1a4;
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action5(FourElementsEntity* this) {
|
||||
u32 index;
|
||||
RequestPriorityDuration(NULL, 10);
|
||||
if (--this->unk_68 == 0) {
|
||||
super->action = 6;
|
||||
index = sub_0805429C(super->type);
|
||||
MessageNoOverlap(index, super);
|
||||
}
|
||||
}
|
||||
|
||||
void FourElements_Action6(FourElementsEntity* this) {
|
||||
RequestPriorityDuration(NULL, 10);
|
||||
if ((gMessage.doTextBox & 0x7f) == 0) {
|
||||
SetPriorityTimer(0x5a);
|
||||
gPlayerState.controlMode = 1;
|
||||
sub_0807DF50();
|
||||
SetRoomFlag(0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A0424(FourElementsEntity* this) {
|
||||
if (--this->unk_6a == 0) {
|
||||
this->unk_6a = 0x40;
|
||||
SoundReq(SFX_178);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A0444(FourElementsEntity* this) {
|
||||
static const u8 gUnk_081248B4[] = {
|
||||
249, 248, 247, 246, 245, 246, 247, 248,
|
||||
};
|
||||
super->z.HALF.HI = gUnk_081248B4[(super->field_0xf++ >> 3) & 7] << 0x18 >> 0x18;
|
||||
}
|
||||
|
||||
void sub_080A0464(FourElementsEntity* this, ScriptExecutionContext* context) {
|
||||
Entity* element = FindEntityByID(6, FOUR_ELEMENTS, 6);
|
||||
if (element != NULL) {
|
||||
sub_0807DEDC(super, context, element->x.HALF.HI, element->y.HALF.HI + 0x18);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
/**
|
||||
* @file itemForSale.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Item for Sale object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
#include "new_player.h"
|
||||
#include "message.h"
|
||||
#include "kinstone.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x18];
|
||||
/*0x80*/ u16 unk_80;
|
||||
/*0x82*/ u16 unk_82;
|
||||
} ItemForSaleEntity;
|
||||
|
||||
typedef struct {
|
||||
u8 before[0x20];
|
||||
u8 unk_20[0x4]; // TODO for Entity this is zVelocity which is not an array. spriteAnimation[super->field_0xf-6] does
|
||||
// not match.
|
||||
} ModifiedParentEntity;
|
||||
|
||||
extern u32 sub_080787D8(Entity*);
|
||||
extern void* sub_080784E4(void);
|
||||
|
||||
void ItemForSale_Init(ItemForSaleEntity*);
|
||||
void ItemForSale_Action1(ItemForSaleEntity*);
|
||||
void ItemForSale_Action2(ItemForSaleEntity*);
|
||||
void ItemForSale_Action3(ItemForSaleEntity*);
|
||||
void sub_08081A5C(ItemForSaleEntity*);
|
||||
void sub_080819B4(ItemForSaleEntity*);
|
||||
void sub_08081AB0(void);
|
||||
|
||||
void ItemForSale(ItemForSaleEntity* this) {
|
||||
static void (*const ItemForSale_Actions[])(ItemForSaleEntity*) = {
|
||||
ItemForSale_Init,
|
||||
ItemForSale_Action1,
|
||||
ItemForSale_Action2,
|
||||
ItemForSale_Action3,
|
||||
};
|
||||
ItemForSale_Actions[super->action](this);
|
||||
if (CheckOnScreen(super)) {
|
||||
sub_08080CB4(super);
|
||||
}
|
||||
switch (super->actionDelay) {
|
||||
case 1:
|
||||
case 2:
|
||||
if (super->action == 1) {
|
||||
sub_0800445C(super);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ItemForSale_Init(ItemForSaleEntity* this) {
|
||||
super->action = 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->spritePriority.b1 = 0;
|
||||
super->field_0x16 = 0;
|
||||
#ifdef EU
|
||||
SetDefaultPriority(super, 6);
|
||||
#endif
|
||||
super->child = super;
|
||||
sub_08081A5C(this);
|
||||
switch (super->actionDelay) {
|
||||
case 0:
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD328;
|
||||
break;
|
||||
case 1:
|
||||
super->hitbox = (Hitbox*)&gHitbox_5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ItemForSale_Action1(ItemForSaleEntity* this) {
|
||||
if (super->subAction != 0) {
|
||||
super->action = 2;
|
||||
gUnk_0200AF00.filler25[10] = 2;
|
||||
} else {
|
||||
if (super->type == 0x36) {
|
||||
if (super->interactType != 0) {
|
||||
super->interactType = 0;
|
||||
super->action = 3;
|
||||
gRoomVars.animFlags = 1;
|
||||
gPlayerState.queued_action = 7;
|
||||
}
|
||||
} else {
|
||||
if (super->interactType != 0) {
|
||||
super->interactType = 0;
|
||||
super->subAction = 1;
|
||||
sub_08078B48();
|
||||
ResetPlayer();
|
||||
gPlayerState.heldObject = 4;
|
||||
gNewPlayerEntity.unk_74 = super;
|
||||
gUnk_0200AF00.filler25[10] = 2;
|
||||
MessageClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ItemForSale_Action2(ItemForSaleEntity* this) {
|
||||
void* ptr;
|
||||
|
||||
gUnk_0200AF00.filler25[10] = 2;
|
||||
super->spriteSettings.draw = gPlayerEntity.spriteSettings.draw;
|
||||
if ((gPlayerState.heldObject == 0) || (super != gNewPlayerEntity.unk_74)) {
|
||||
sub_080819B4(this);
|
||||
} else {
|
||||
ptr = sub_080784E4();
|
||||
if (((*(int*)(ptr + 8) == 0) ||
|
||||
((*(u8*)(ptr + 1) != 1 || (gUnk_0200AF00.filler25[10] = 7, (gPlayerState.field_0x92 & 0x88) == 0)))) &&
|
||||
((gPlayerState.field_0x92 & 0x98) != 0)) {
|
||||
sub_080819B4(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080819B4(ItemForSaleEntity* this) {
|
||||
Entity* parent;
|
||||
u8* puVar2;
|
||||
struct_0200AF00* ptr;
|
||||
|
||||
if (gRoomVars.shopItemType == 0) {
|
||||
if (super->parent != NULL) {
|
||||
((ModifiedParentEntity*)super->parent)->unk_20[super->field_0xf] = 0xff;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
gPlayerState.heldObject = 0;
|
||||
gNewPlayerEntity.unk_74 = 0;
|
||||
ptr = &gUnk_0200AF00;
|
||||
gRoomVars.shopItemType = 0;
|
||||
ptr->filler25[7] = 0;
|
||||
ptr->filler25[10] = 0;
|
||||
gRoomVars.shopItemType2 = 0;
|
||||
super->x.HALF.HI = this->unk_80 + gRoomControls.origin_x;
|
||||
super->y.HALF.HI = this->unk_82 + gRoomControls.origin_y;
|
||||
super->z.WORD = 0;
|
||||
super->action = 1;
|
||||
super->subAction = 0;
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->collisionLayer = 1;
|
||||
super->spritePriority.b0 = 4;
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
sub_08081A5C(this);
|
||||
}
|
||||
|
||||
void sub_08081A5C(ItemForSaleEntity* this) {
|
||||
u32 tmp = sub_080787D8(super);
|
||||
if (super->actionDelay == 1) {
|
||||
gUnk_03003DF0[tmp].unk4[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void ItemForSale_Action3(ItemForSaleEntity* this) {
|
||||
if (gRoomVars.animFlags == 0) {
|
||||
sub_08081AB0();
|
||||
DeleteThisEntity();
|
||||
} else if (gRoomVars.animFlags == 2) {
|
||||
super->action = 1;
|
||||
super->subAction = 0;
|
||||
sub_08081AB0();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08081AB0(void) {
|
||||
gRoomVars.animFlags = 0;
|
||||
gRoomVars.shopItemType = 0;
|
||||
gRoomVars.shopItemType2 = 0;
|
||||
SetPlayerControl(CONTROL_ENABLED);
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "item.h"
|
||||
#include "itemMetaData.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08081150(Entity*);
|
||||
u8 sub_0808147C(u32);
|
||||
@@ -23,7 +24,6 @@ extern void (*const gUnk_0811E7D4[])(Entity*);
|
||||
extern void (*const gUnk_0811E7E8[])(Entity*);
|
||||
extern void (*const gUnk_0811E814[])(Entity*);
|
||||
extern void (*const gUnk_0811E840[])(Entity*);
|
||||
extern Hitbox gUnk_080FD1A8;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0[2];
|
||||
@@ -86,7 +86,7 @@ void sub_08080F20(Entity* this) {
|
||||
this->field_0x3c = 0x47;
|
||||
this->hurtType = 0x44;
|
||||
this->health = 0xFF;
|
||||
this->hitbox = &gUnk_080FD1A8;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD1A8;
|
||||
switch (this->type) {
|
||||
case ITEM_SHELLS:
|
||||
case ITEM_RUPEE1:
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -32,7 +33,6 @@ typedef struct {
|
||||
} LavaPlatformEntry;
|
||||
|
||||
extern void sub_080A2CC0(Entity*, Entity**, u16*);
|
||||
extern Hitbox gUnk_080FD280;
|
||||
|
||||
void sub_08092278(LavaPlatformEntity*);
|
||||
void sub_08092344(LavaPlatformEntity*);
|
||||
|
||||
@@ -5,13 +5,12 @@
|
||||
#include "room.h"
|
||||
#include "flags.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void (*const gUnk_081243B4[])(Entity*);
|
||||
extern void (*const gUnk_081243BC[])(Entity*);
|
||||
extern void (*const gUnk_081243C4[])(Entity*);
|
||||
|
||||
extern Hitbox gHitbox_0;
|
||||
|
||||
void LightableSwitch(Entity* this) {
|
||||
gUnk_081243B4[this->type](this);
|
||||
sub_0809EB30(this);
|
||||
@@ -29,7 +28,7 @@ void sub_0809EA34(Entity* this) {
|
||||
this->hurtType = 0x48;
|
||||
this->hitType = 0x28;
|
||||
this->flags2 = 10;
|
||||
this->hitbox = &gHitbox_0;
|
||||
this->hitbox = (Hitbox*)&gHitbox_0;
|
||||
sub_0809EAD8(this);
|
||||
UpdateSpriteForCollisionLayer(this);
|
||||
sub_0809EABC(this);
|
||||
@@ -101,7 +100,7 @@ void sub_0809EB80(Entity* this) {
|
||||
this->hurtType = 0x48;
|
||||
this->hitType = 0x28;
|
||||
this->flags2 = 10;
|
||||
this->hitbox = &gHitbox_0;
|
||||
this->hitbox = (Hitbox*)&gHitbox_0;
|
||||
sub_0809EAD8(this);
|
||||
UpdateSpriteForCollisionLayer(this);
|
||||
if (CheckFlags(this->cutsceneBeh.HWORD) != 0) {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "effects.h"
|
||||
#include "game.h"
|
||||
#include "common.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08083338(Entity*);
|
||||
void sub_080834B4(Entity*);
|
||||
@@ -35,8 +36,6 @@ void LockedDoor(Entity* this) {
|
||||
gUnk_0811F65C[this->action](this);
|
||||
}
|
||||
|
||||
extern Hitbox gHitbox_2;
|
||||
|
||||
typedef struct PACKED {
|
||||
s8 x;
|
||||
s8 y;
|
||||
@@ -95,7 +94,7 @@ void sub_08083338(Entity* this) {
|
||||
this->field_0x70.HALF.LO = this->x.HALF.HI;
|
||||
this->field_0x70.HALF.HI = this->y.HALF.HI;
|
||||
this->field_0x7c.BYTES.byte2 = this->type & 3;
|
||||
this->hitbox = &gHitbox_2;
|
||||
this->hitbox = (Hitbox*)&gHitbox_2;
|
||||
this->spritePriority.b0 = 5;
|
||||
this->frame = this->type & 0xF;
|
||||
this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "sound.h"
|
||||
#include "functions.h"
|
||||
#include "effects.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern u32 sub_08083734(Entity*, u32);
|
||||
extern void sub_080A080C(Entity*);
|
||||
@@ -13,8 +14,6 @@ extern void sub_080A0870(Entity*);
|
||||
|
||||
extern void (*const gUnk_0812493C[])(Entity*);
|
||||
|
||||
extern Hitbox gHitbox_3;
|
||||
|
||||
void MetalDoor(Entity* this) {
|
||||
gUnk_0812493C[this->action](this);
|
||||
}
|
||||
@@ -28,7 +27,7 @@ void sub_080A0684(Entity* this) {
|
||||
this->spriteSettings.draw = 0;
|
||||
this->frameIndex = 0;
|
||||
this->spriteSettings.flipY = 1;
|
||||
this->hitbox = &gHitbox_3;
|
||||
this->hitbox = (Hitbox*)&gHitbox_3;
|
||||
this->spritePriority.b0 = 5;
|
||||
this->field_0x70.HALF.LO = this->x.HALF.HI;
|
||||
this->field_0x70.HALF.HI = this->y.HALF.HI;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern u32 sub_08091DDC(Entity*);
|
||||
extern u32 sub_08007DD6(u32, u32);
|
||||
@@ -8,8 +9,6 @@ extern void sub_08091C0C(Entity*);
|
||||
|
||||
extern void (*const gUnk_081223A8[])(Entity*);
|
||||
|
||||
extern Hitbox gUnk_080FD310;
|
||||
|
||||
extern const s8 gUnk_081223C8[];
|
||||
extern const u32 gUnk_081223D8[];
|
||||
|
||||
@@ -30,7 +29,7 @@ void sub_080916EC(Entity* this) {
|
||||
this->animationState = unk->field_0x5;
|
||||
this->type2 = unk->field_0x6;
|
||||
this->action = 1;
|
||||
this->hitbox = &gUnk_080FD310;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD310;
|
||||
COLLISION_ON(this);
|
||||
this->hitType = 1;
|
||||
this->field_0x3c = 0x47;
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
/**
|
||||
* @file minecartDoor.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Minecart Door object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[8];
|
||||
/*0x70*/ u16 unk_70;
|
||||
/*0x72*/ u16 unk_72;
|
||||
/*0x74*/ u16 unk_74;
|
||||
/*0x76*/ u16 unk_76;
|
||||
/*0x78*/ u8 unk_78[0x6];
|
||||
/*0x7e*/ u8 unk_7e;
|
||||
/*0x7f*/ u8 unk_7f[0x7];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} MinecartDoorEntity;
|
||||
|
||||
extern bool32 sub_080837B0(Entity*); // lockedDoor
|
||||
extern void sub_080836DC(Entity*, u32, u32); // lockedDoor
|
||||
extern void sub_08083814(Entity*, u32); // lockedDoor
|
||||
|
||||
bool32 sub_08096CEC(MinecartDoorEntity*);
|
||||
void sub_08096E04(MinecartDoorEntity*);
|
||||
bool32 sub_08096D84(MinecartDoorEntity*);
|
||||
bool32 sub_08096D68(s32, s32, s32, s32);
|
||||
void MinecartDoor_Init(MinecartDoorEntity*);
|
||||
void MinecartDoor_Action1(MinecartDoorEntity*);
|
||||
void MinecartDoor_Action2(MinecartDoorEntity*);
|
||||
void MinecartDoor_Action3(MinecartDoorEntity*);
|
||||
void MinecartDoor_Action4(MinecartDoorEntity*);
|
||||
|
||||
void MinecartDoor(MinecartDoorEntity* this) {
|
||||
static void (*const MinecartDoor_Actions[])(MinecartDoorEntity*) = { MinecartDoor_Init, MinecartDoor_Action1,
|
||||
MinecartDoor_Action2, MinecartDoor_Action3,
|
||||
MinecartDoor_Action4 };
|
||||
MinecartDoor_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void MinecartDoor_Init(MinecartDoorEntity* this) {
|
||||
if (sub_080837B0(super)) {
|
||||
if ((super->type & 4) != 0) {
|
||||
this->unk_7e = 1;
|
||||
super->type &= 3;
|
||||
}
|
||||
super->speed = 0x300;
|
||||
this->unk_70 = super->x.HALF.HI;
|
||||
this->unk_72 = super->y.HALF.HI;
|
||||
super->spritePriority.b0 = 5;
|
||||
this->unk_76 = COORD_TO_TILE(super);
|
||||
this->unk_74 = GetTileIndex(this->unk_76, super->collisionLayer);
|
||||
super->frameIndex = super->type;
|
||||
if (sub_08096CEC(this)) {
|
||||
if (this->unk_7e != 0) {
|
||||
DeleteThisEntity();
|
||||
} else {
|
||||
sub_08096E04(this);
|
||||
}
|
||||
} else {
|
||||
super->action = 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
SetTile(0x4022, this->unk_76, super->collisionLayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MinecartDoor_Action1(MinecartDoorEntity* this) {
|
||||
if (sub_08096CEC(this)) {
|
||||
super->action = 2;
|
||||
super->actionDelay = 7;
|
||||
super->direction = super->type << 3;
|
||||
SetTile(this->unk_74, this->unk_76, super->collisionLayer);
|
||||
EnqueueSFX(SFX_10B);
|
||||
}
|
||||
}
|
||||
|
||||
void MinecartDoor_Action2(MinecartDoorEntity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
sub_08096E04(this);
|
||||
super->spriteSettings.draw = 0;
|
||||
super->x.HALF.HI = this->unk_70;
|
||||
super->y.HALF.HI = this->unk_72;
|
||||
if (this->unk_7e != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MinecartDoor_Action3(MinecartDoorEntity* this) {
|
||||
bool32 bVar3;
|
||||
|
||||
if ((this->unk_7e != 0) && (CheckFlags(this->unk_86))) {
|
||||
return;
|
||||
}
|
||||
if ((gPlayerState.flags & PL_IN_MINECART) != 0) {
|
||||
if (super->type * 2 - (u32)gPlayerEntity.animationState == 0) {
|
||||
if (sub_08083734(super, super->type) == 0) {
|
||||
return;
|
||||
}
|
||||
goto label;
|
||||
} else {
|
||||
bVar3 = --super->actionDelay * 0x1000000;
|
||||
}
|
||||
} else {
|
||||
bVar3 = sub_08096D84(this);
|
||||
}
|
||||
if (bVar3 == FALSE) {
|
||||
label:
|
||||
super->action = 4;
|
||||
sub_080836DC(super, super->type, this->unk_76);
|
||||
}
|
||||
}
|
||||
|
||||
void MinecartDoor_Action4(MinecartDoorEntity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action = 1;
|
||||
super->x.HALF.HI = this->unk_70;
|
||||
super->y.HALF.HI = this->unk_72;
|
||||
sub_08083814(super, super->type);
|
||||
EnqueueSFX(SFX_10B);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_08096CEC(MinecartDoorEntity* this) {
|
||||
if (this->unk_7e != 0 && CheckFlags(this->unk_86)) {
|
||||
return TRUE;
|
||||
} else {
|
||||
if ((gPlayerState.flags & PL_IN_MINECART) != 0) {
|
||||
Entity* player = &gPlayerEntity;
|
||||
if ((((super->type << 1) ^ player->animationState) & 2) == 0) {
|
||||
if ((super->type & 1) != 0) {
|
||||
if (sub_08096D68(gPlayerEntity.y.HALF.HI, super->y.HALF.HI, gPlayerEntity.x.HALF.HI,
|
||||
super->x.HALF.HI)) {
|
||||
return TRUE;
|
||||
}
|
||||
} else {
|
||||
if (sub_08096D68(gPlayerEntity.x.HALF.HI, super->x.HALF.HI, gPlayerEntity.y.HALF.HI,
|
||||
super->y.HALF.HI)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_08096D68(s32 param_1, s32 param_2, s32 param_3, s32 param_4) {
|
||||
if (((param_1 - param_2) + 8U < 0x11) && ((param_3 - param_4) + 0x30U < 0x61)) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_08096D84(MinecartDoorEntity* this) {
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
if (((super->y.HALF.HI + 10) - (gPlayerEntity.y.HALF.HI)) < 0x65U) {
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (((gPlayerEntity.x.HALF.HI) - (super->x.HALF.HI - 10)) < 0x65U) {
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (((gPlayerEntity.y.HALF.HI) - (super->y.HALF.HI - 10)) < 0x65U) {
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (((super->x.HALF.HI + 10) - (gPlayerEntity.x.HALF.HI)) < 0x65U) {
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_08096E04(MinecartDoorEntity* this) {
|
||||
super->action = 3;
|
||||
super->actionDelay = 8;
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
/**
|
||||
* @file object35.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object35 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[8];
|
||||
/*0x70*/ u16 unk_70;
|
||||
/*0x72*/ u16 unk_72;
|
||||
/*0x74*/ u16 unk_74;
|
||||
/*0x76*/ u16 unk_76;
|
||||
} Object35Entity;
|
||||
|
||||
extern void sub_080836DC(Entity*, u32, u32); // lockedDoor
|
||||
extern void sub_08083814(Entity*, u32); // lockedDoor
|
||||
void Object35_Type0(Object35Entity*);
|
||||
void Object35_Type1(Object35Entity*);
|
||||
void Object35_Type2(Object35Entity*);
|
||||
void Object35_Type0Init(Object35Entity*);
|
||||
void Object35_Type0Action1(Object35Entity*);
|
||||
void Object35_Type0Action2(Object35Entity*);
|
||||
void Object35_Type1Init(Object35Entity*);
|
||||
void Object35_Type1Action1(Object35Entity*);
|
||||
void Object35_Type1Action2(Object35Entity*);
|
||||
void Object35_Type1Action3(Object35Entity*);
|
||||
void Object35_Type1Action4(Object35Entity*);
|
||||
void Object35_Type1Action5(Object35Entity*);
|
||||
void Object35_Type2Init(Object35Entity*);
|
||||
void Object35_Type2Action1(Object35Entity*);
|
||||
|
||||
void Object35(Object35Entity* this) {
|
||||
static void (*const Object35_Types[])(Object35Entity*) = {
|
||||
Object35_Type0,
|
||||
Object35_Type1,
|
||||
Object35_Type2,
|
||||
};
|
||||
Object35_Types[super->type](this);
|
||||
}
|
||||
|
||||
void Object35_Type0(Object35Entity* this) {
|
||||
static void (*const Object35_Type0Actions[])(Object35Entity*) = {
|
||||
Object35_Type0Init,
|
||||
Object35_Type0Action1,
|
||||
Object35_Type0Action2,
|
||||
};
|
||||
Object35_Type0Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object35_Type0Init(Object35Entity* this) {
|
||||
super->action = 2;
|
||||
super->type2 = 2;
|
||||
super->collisionLayer = 2;
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
super->spritePriority.b0 = 1;
|
||||
super->actionDelay = -0x4c;
|
||||
InitializeAnimation(super, super->type2);
|
||||
}
|
||||
|
||||
void Object35_Type0Action1(Object35Entity* this) {
|
||||
s8 tmp;
|
||||
GetNextFrame(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->actionDelay = -0x4c;
|
||||
super->type2++;
|
||||
tmp = 3;
|
||||
super->type2 = super->type2 % tmp;
|
||||
InitializeAnimation(super, super->type2);
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type0Action2(Object35Entity* this) {
|
||||
GetNextFrame(super);
|
||||
}
|
||||
|
||||
void Object35_Type1(Object35Entity* this) {
|
||||
static void (*const Object35_Type1Actions[])(Object35Entity*) = {
|
||||
Object35_Type1Init, Object35_Type1Action1, Object35_Type1Action2,
|
||||
Object35_Type1Action3, Object35_Type1Action4, Object35_Type1Action5,
|
||||
};
|
||||
Object35_Type1Actions[super->action](this);
|
||||
gPlayerState.mobility |= 0x80;
|
||||
}
|
||||
|
||||
void Object35_Type1Init(Object35Entity* this) {
|
||||
super->speed = 0x300;
|
||||
super->frameIndex = 0;
|
||||
this->unk_70 = super->x.HALF.HI;
|
||||
this->unk_72 = super->y.HALF.HI;
|
||||
super->spritePriority.b0 = 5;
|
||||
this->unk_76 = COORD_TO_TILE(super);
|
||||
this->unk_74 = GetTileIndex(this->unk_76, super->collisionLayer);
|
||||
if (super->actionDelay == 0) {
|
||||
super->action = 1;
|
||||
super->field_0xf = 0x78;
|
||||
SetTile(0x4022, this->unk_76, super->collisionLayer);
|
||||
} else {
|
||||
super->action = 3;
|
||||
super->spriteSettings.draw = 0;
|
||||
super->spriteSettings.flipY = 1;
|
||||
super->actionDelay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type1Action1(Object35Entity* this) {
|
||||
if (CheckRoomFlag(0)) {
|
||||
super->action = 2;
|
||||
super->actionDelay = 7;
|
||||
super->direction = 0;
|
||||
SetTile(this->unk_74, this->unk_76, super->collisionLayer);
|
||||
EnqueueSFX(SFX_10B);
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type1Action2(Object35Entity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action = 5;
|
||||
super->actionDelay = 8;
|
||||
super->spriteSettings.draw = 0;
|
||||
super->x.HALF.HI = this->unk_70;
|
||||
super->y.HALF.HI = this->unk_72;
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type1Action3(Object35Entity* this) {
|
||||
if (sub_08083734(super, 2)) {
|
||||
super->action = 4;
|
||||
sub_080836DC(super, 2, this->unk_76);
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type1Action4(Object35Entity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action = 5;
|
||||
sub_08083814(super, 2);
|
||||
EnqueueSFX(SFX_10B);
|
||||
SetTile(0x4022, this->unk_76, super->collisionLayer);
|
||||
}
|
||||
}
|
||||
|
||||
void Object35_Type1Action5(Object35Entity* this) {
|
||||
}
|
||||
|
||||
void Object35_Type2(Object35Entity* this) {
|
||||
static void (*const Object35_Type2Actions[])(Object35Entity*) = {
|
||||
Object35_Type2Init,
|
||||
Object35_Type2Action1,
|
||||
};
|
||||
Object35_Type2Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object35_Type2Init(Object35Entity* this) {
|
||||
super->action = 1;
|
||||
super->actionDelay = 0x10;
|
||||
super->z.HALF.HI -= 0x10;
|
||||
if (super->type2 == 0) {
|
||||
super->frameIndex = 2;
|
||||
} else {
|
||||
super->frameIndex = 0;
|
||||
if (((super->parent)->x.HALF.HI & 0x10) != 0) {
|
||||
super->frameIndex = 1;
|
||||
}
|
||||
}
|
||||
CreateDust(super);
|
||||
}
|
||||
|
||||
void Object35_Type2Action1(Object35Entity* this) {
|
||||
if (--super->actionDelay == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
/**
|
||||
* @file object43.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object43 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[4];
|
||||
/*0x6c*/ u16 unk_6c;
|
||||
/*0x6e*/ u8 unk_7e[4];
|
||||
/*0x72*/ u16 unk_72;
|
||||
} Object43Entity;
|
||||
|
||||
void Object43_Init(Object43Entity*);
|
||||
void Object43_Action1(Object43Entity*);
|
||||
void Object43_Action2(Object43Entity*);
|
||||
void Object43_Action3(Object43Entity*);
|
||||
void Object43_Action4(Object43Entity*);
|
||||
|
||||
void Object43(Object43Entity* this) {
|
||||
static void (*const Object43_Actions[])(Object43Entity*) = {
|
||||
Object43_Init, Object43_Action1, Object43_Action2, Object43_Action3, Object43_Action4,
|
||||
};
|
||||
Object43_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object43_Init(Object43Entity* this) {
|
||||
super->action = 1;
|
||||
super->flags |= ENT_PERSIST;
|
||||
super->spritePriority.b0 = 0;
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->animationState = gPlayerEntity.animationState >> 1;
|
||||
super->direction = (((super->animationState + 1) & 3) << 3);
|
||||
super->field_0xf = 6;
|
||||
super->speed = 0x140;
|
||||
super->spriteVramOffset = 0x3c;
|
||||
super->palette.b.b0 = 4;
|
||||
this->unk_72 = 0;
|
||||
this->unk_6c = 0;
|
||||
super->updatePriority = 6;
|
||||
InitializeAnimation(super, 7);
|
||||
if (super->type2 != 0) {
|
||||
super->actionDelay = 0x28;
|
||||
} else {
|
||||
super->spriteSettings.draw = 1;
|
||||
if ((gPlayerState.field_0xac & 0x200) != 0) {
|
||||
super->actionDelay = 0x28;
|
||||
} else {
|
||||
super->actionDelay = 0x50;
|
||||
}
|
||||
|
||||
Object43_Action1(this);
|
||||
}
|
||||
}
|
||||
|
||||
void Object43_Action1(Object43Entity* this) {
|
||||
static const s8 gUnk_081217D0[] = { -1, -14, 8, -4, 4, 4, -8, -4 };
|
||||
static const s8 gUnk_081217D8[] = { -1, -14, 4, -4, 4, -1, -4, -4 };
|
||||
Entity* effect;
|
||||
const s8* ptr;
|
||||
const s8* ptr2;
|
||||
u32 tmp1;
|
||||
u32 tmp2;
|
||||
|
||||
if (super->type2 != 0) {
|
||||
if ((gPlayerState.field_0x1f[2] == 0) || ((gPlayerState.field_0x3[1] & 0x80) != 0)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (gPlayerState.field_0x1f[2] >= 0x50) {
|
||||
super->spriteSettings.draw = 1;
|
||||
tmp1 = gPlayerState.field_0x1f[2];
|
||||
ptr = gUnk_081217D8;
|
||||
} else {
|
||||
if (gPlayerState.field_0x1f[2] != 0) {
|
||||
super->spriteSettings.draw = 0;
|
||||
return;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
if (gPlayerState.field_0x3[1] == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if ((gPlayerState.sword_state & 1) != 0) {
|
||||
tmp1 = gPlayerState.sword_state;
|
||||
ptr = gUnk_081217D0;
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
if (tmp1 != 0) {
|
||||
|
||||
GetNextFrame(super);
|
||||
if (super->actionDelay != 0) {
|
||||
super->actionDelay--;
|
||||
tmp2 = 3;
|
||||
if ((super->type2 == 0) && ((gPlayerState.field_0xac & 0x200) == 0)) {
|
||||
tmp2 = 7;
|
||||
}
|
||||
if ((super->actionDelay & tmp2) == 0) {
|
||||
this->unk_6c++;
|
||||
}
|
||||
} else {
|
||||
if (this->unk_72 != 0) {
|
||||
if (((gRoomTransition.frameCount & 0x1fU) == 0) &&
|
||||
(effect = CreateFx(super, FX_SPARKLE, 0), effect != NULL)) {
|
||||
effect->collisionLayer = super->collisionLayer;
|
||||
}
|
||||
} else {
|
||||
EnqueueSFX(SFX_115);
|
||||
effect = CreateFx(super, FX_BLUE_SPARKLE, 0);
|
||||
if (effect != NULL) {
|
||||
effect->collisionLayer = super->collisionLayer;
|
||||
}
|
||||
this->unk_72++;
|
||||
}
|
||||
}
|
||||
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
ptr2 = &ptr[super->animationState * 2];
|
||||
super->x.HALF.HI = ptr2[0] + gPlayerEntity.x.HALF.HI;
|
||||
super->y.HALF.HI = ptr[super->animationState * 2 + 1] + gPlayerEntity.y.HALF.HI;
|
||||
super->z.HALF.HI = gPlayerEntity.z.HALF.HI;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
switch (super->animationState) {
|
||||
default:
|
||||
super->y.HALF.HI -= this->unk_6c;
|
||||
break;
|
||||
case 0:
|
||||
super->y.HALF.HI -= this->unk_6c;
|
||||
break;
|
||||
case 1:
|
||||
super->x.HALF.HI += this->unk_6c;
|
||||
break;
|
||||
case 2:
|
||||
super->y.HALF.HI += this->unk_6c;
|
||||
break;
|
||||
case 3:
|
||||
super->x.HALF.HI -= this->unk_6c;
|
||||
break;
|
||||
}
|
||||
|
||||
if (--super->field_0xf == 0) {
|
||||
super->field_0xf = 6;
|
||||
super->direction ^= 0x10;
|
||||
}
|
||||
LinearMoveUpdate(super);
|
||||
if ((super->type2 == 0) && ((gPlayerState.sword_state & 0x40) != 0)) {
|
||||
super->flags &= ~ENT_PERSIST;
|
||||
if (GetInventoryValue(ITEM_FOURSWORD) == 1) {
|
||||
super->action++;
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void Object43_Action2(Object43Entity* this) {
|
||||
sub_08079BD8(super);
|
||||
super->action += 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->animationState = gPlayerEntity.animationState;
|
||||
super->spriteVramOffset = 0;
|
||||
super->palette.b.b0 = 4;
|
||||
super->spriteIndex = 0xaf;
|
||||
InitializeAnimation(super, super->animationState >> 1);
|
||||
}
|
||||
|
||||
void Object43_Action3(Object43Entity* this) {
|
||||
sub_08079BD8(super);
|
||||
GetNextFrame(super);
|
||||
if (gPlayerState.sword_state != 0) {
|
||||
if ((gRoomTransition.frameCount & 3U) == 0) {
|
||||
u32 tmp = super->palette.b.b0;
|
||||
tmp ^= 4;
|
||||
super->palette.b.b0 = tmp;
|
||||
}
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if ((super->frame & 1) != 0) {
|
||||
super->action++;
|
||||
}
|
||||
}
|
||||
|
||||
void Object43_Action4(Object43Entity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
/**
|
||||
* @file object61.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object61 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "new_player.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[6];
|
||||
/*0x6e*/ u16 unk_6e;
|
||||
/*0x70*/ u8 unk_70[2];
|
||||
/*0x72*/ u16 unk_72;
|
||||
/*0x74*/ u16 unk_74;
|
||||
/*0x76*/ u16 unk_76;
|
||||
} Object61Entity;
|
||||
|
||||
void Object61_Init(Object61Entity*);
|
||||
void Object61_Action1(Object61Entity*);
|
||||
void Object61_Action1Type0(Object61Entity*);
|
||||
void Object61_Action1Type1(Object61Entity*);
|
||||
void sub_080936C8(Object61Entity*);
|
||||
|
||||
void Object61(Object61Entity* this) {
|
||||
static void (*const Object61_Actions[])(Object61Entity*) = {
|
||||
Object61_Init,
|
||||
Object61_Action1,
|
||||
};
|
||||
if ((gPlayerState.flags & PL_PARACHUTE) == 0) {
|
||||
if (super->type == 0) {
|
||||
gRoomControls.camera_target = &gPlayerEntity;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
Object61_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object61_Init(Object61Entity* this) {
|
||||
super->action = 1;
|
||||
super->lastFrameIndex = 0xff;
|
||||
super->palette.b.b0 = gPlayerEntity.palette.b.b0;
|
||||
if (super->type == 0) {
|
||||
gRoomControls.camera_target = super;
|
||||
super->spriteRendering.b0 = 3;
|
||||
this->unk_6e = 0x180;
|
||||
this->unk_72 = 0x180;
|
||||
CreateObjectWithParent(super, OBJECT_61, 1, 0);
|
||||
}
|
||||
Object61_Action1(this);
|
||||
}
|
||||
|
||||
void Object61_Action1(Object61Entity* this) {
|
||||
static void (*const Object61_Action1Types[])(Object61Entity*) = {
|
||||
Object61_Action1Type0,
|
||||
Object61_Action1Type1,
|
||||
};
|
||||
Object61_Action1Types[super->type](this);
|
||||
}
|
||||
|
||||
void Object61_Action1Type0(Object61Entity* this) {
|
||||
u32 tmp;
|
||||
if ((s16)this->unk_6e < 0) {
|
||||
this->unk_6e = -this->unk_6e;
|
||||
}
|
||||
switch (gPlayerEntity.subAction) {
|
||||
case 1:
|
||||
this->unk_72 -= 4;
|
||||
break;
|
||||
case 2:
|
||||
if (super->field_0xf == 0) {
|
||||
if (this->unk_72 > 0x80) {
|
||||
this->unk_72 -= 0x20;
|
||||
} else {
|
||||
super->field_0xf += 1;
|
||||
SoundReq(SFX_124);
|
||||
}
|
||||
if (this->unk_6e < 0x120) {
|
||||
this->unk_6e += 0x40;
|
||||
}
|
||||
} else if (super->field_0xf != 0xff) {
|
||||
if (this->unk_72 < 0x100) {
|
||||
this->unk_72 += 0x20;
|
||||
} else {
|
||||
this->unk_72 = 0x100;
|
||||
}
|
||||
if (this->unk_6e > 0x100) {
|
||||
this->unk_6e -= 0x20;
|
||||
} else {
|
||||
this->unk_6e = 0x100;
|
||||
}
|
||||
if (this->unk_6e == 0x100) {
|
||||
super->field_0xf = 0xff;
|
||||
}
|
||||
} else {
|
||||
sub_080936C8(this);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
default:
|
||||
sub_080936C8(this);
|
||||
break;
|
||||
}
|
||||
tmp = gPlayerEntity.animationState & 2;
|
||||
if (tmp != 0) {
|
||||
super->frameIndex = 1;
|
||||
if (gPlayerEntity.animationState == 2) {
|
||||
this->unk_6e = -this->unk_6e;
|
||||
}
|
||||
} else {
|
||||
super->frameIndex = tmp;
|
||||
}
|
||||
if (super->frameIndex != super->lastFrameIndex) {
|
||||
super->lastFrameIndex = super->frameIndex;
|
||||
sub_080042D0(super, super->frameIndex, super->spriteIndex);
|
||||
}
|
||||
CopyPosition(&gPlayerEntity, super);
|
||||
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
sub_0806FCF4(super, this->unk_72, 10, 2);
|
||||
sub_0805EC9C(super, this->unk_6e, this->unk_72, 0);
|
||||
sub_0806FEBC(&gPlayerEntity, 1, super);
|
||||
}
|
||||
|
||||
void Object61_Action1Type1(Object61Entity* this) {
|
||||
super->frameIndex = ((gPlayerEntity.direction + (gPlayerEntity.direction >> 1)) >> 2) + 2;
|
||||
if (super->frameIndex != super->lastFrameIndex) {
|
||||
super->lastFrameIndex = super->frameIndex;
|
||||
sub_080042D0(super, super->frameIndex, super->spriteIndex);
|
||||
}
|
||||
CopyPosition(&gPlayerEntity, super);
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
sub_0806FCF4(super, ((Object61Entity*)super->parent)->unk_72, 0x18, 0);
|
||||
super->spriteOffsetY = -super->spriteOffsetY;
|
||||
sub_0806FEBC(&gPlayerEntity, 0, super);
|
||||
}
|
||||
|
||||
void sub_080936C8(Object61Entity* this) {
|
||||
s32 tmp = gNewPlayerEntity.unk_7c;
|
||||
this->unk_76 = 0x138 - (gNewPlayerEntity.unk_7c >> 2);
|
||||
this->unk_74 = 8 - (tmp / 0x3c);
|
||||
if (super->actionDelay == 0) {
|
||||
if (this->unk_76 < this->unk_6e) {
|
||||
this->unk_6e -= 8;
|
||||
this->unk_72 += 8;
|
||||
} else {
|
||||
super->actionDelay++;
|
||||
this->unk_6e = this->unk_76;
|
||||
this->unk_72 = this->unk_76 + 0x30;
|
||||
}
|
||||
} else {
|
||||
if (this->unk_76 + 0x30 > this->unk_6e) {
|
||||
this->unk_6e += 8;
|
||||
this->unk_72 -= 8;
|
||||
} else {
|
||||
super->actionDelay = 0;
|
||||
this->unk_6e = this->unk_76 + 0x30;
|
||||
this->unk_72 = this->unk_76;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
/**
|
||||
* @file object68.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object68 object
|
||||
* Handles effects of using water, mineral water or a fairy in a bottle in PlayerItemBottle_UseOther.
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68;
|
||||
} Object68Entity;
|
||||
|
||||
extern u32 sub_0800029C(Entity*, s32, s32);
|
||||
|
||||
void sub_08094774(Object68Entity*);
|
||||
void sub_080948D0(Object68Entity*);
|
||||
void sub_080948E8(Object68Entity*);
|
||||
void sub_08094980(Object68Entity*, u32, u32);
|
||||
|
||||
void Object68(Object68Entity* this) {
|
||||
static void (*const gUnk_08122A10[])(Object68Entity*) = {
|
||||
sub_08094774,
|
||||
sub_080948D0,
|
||||
};
|
||||
gUnk_08122A10[super->action](this);
|
||||
}
|
||||
|
||||
void sub_08094774(Object68Entity* this) {
|
||||
static const s8 gUnk_08122A18[] = { 0, -8, 8, 1, 2, 8, -8, 1 };
|
||||
Entity* effect;
|
||||
Entity* child;
|
||||
super->action = 1;
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
effect = CreateFx(super, FX_WATER_SPLASH, 0);
|
||||
super->child = effect;
|
||||
if (effect != NULL) {
|
||||
PositionRelative(&gPlayerEntity, effect, gUnk_08122A18[gPlayerEntity.animationState & 6] << 0x10,
|
||||
gUnk_08122A18[gPlayerEntity.animationState | 1] << 0x10);
|
||||
}
|
||||
CopyPosition(super->child, super);
|
||||
sub_08094980(this, 0x4032, 0x4033);
|
||||
sub_08094980(this, 0x4061, 0x4022);
|
||||
break;
|
||||
case 1:
|
||||
effect = CreateFx(super, FX_GREEN_SPLASH2, 0);
|
||||
super->child = effect;
|
||||
if (effect != NULL) {
|
||||
PositionRelative(&gPlayerEntity, effect, gUnk_08122A18[gPlayerEntity.animationState & 6] << 0x10,
|
||||
gUnk_08122A18[gPlayerEntity.animationState | 1] << 0x10);
|
||||
}
|
||||
if (super->type2 == 0) {
|
||||
CopyPosition(super->child, super);
|
||||
super->actionDelay = 0;
|
||||
super->spritePriority.b0 = 0;
|
||||
super->spriteRendering.b3 = 0;
|
||||
sub_08094980(this, 0x403b, 0x403c);
|
||||
sub_08094980(this, 0x4061, 0x4022);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
child = sub_080A2A20(&gPlayerEntity, 0x60, 0);
|
||||
super->child = child;
|
||||
if (child != NULL) {
|
||||
child->actionDelay = 1;
|
||||
}
|
||||
break;
|
||||
case 3 ... 8:
|
||||
break;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_080948D0(Object68Entity* this) {
|
||||
static void (*const gUnk_08122A20[])(Object68Entity*) = {
|
||||
NULL,
|
||||
sub_080948E8,
|
||||
};
|
||||
gUnk_08122A20[super->type](this);
|
||||
}
|
||||
|
||||
void sub_080948E8(Object68Entity* this) {
|
||||
if (super->actionDelay < 0x3c) {
|
||||
super->z.WORD -= 0x4000;
|
||||
if ((super->actionDelay & 3) == 0) {
|
||||
super->child = CreateFx(super, FX_DASH, 0x40);
|
||||
if (super->child != NULL) {
|
||||
super->child->spriteRendering.b3 = super->spriteRendering.b3;
|
||||
super->child->spritePriority.b0 = super->spritePriority.b0;
|
||||
if ((Random() & 1) != 0) {
|
||||
super->child->x.HALF.HI += (Random() & 0xf);
|
||||
} else {
|
||||
super->child->x.HALF.HI -= (Random() & 0xf);
|
||||
}
|
||||
}
|
||||
}
|
||||
super->actionDelay++;
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08094980(Object68Entity* this, u32 searchTileIndex, u32 replaceTileIndex) {
|
||||
static const s8 gUnk_08122A28[] = {
|
||||
0, 0, -8, 0, 8, 0, 0, 8, 0, -8, 0, 0,
|
||||
};
|
||||
s32 xOffset;
|
||||
s32 yOffset;
|
||||
u32 index = 0;
|
||||
while (index < 10) {
|
||||
xOffset = gUnk_08122A28[index];
|
||||
yOffset = gUnk_08122A28[index + 1];
|
||||
if (searchTileIndex == sub_0800029C(super, xOffset, yOffset)) {
|
||||
SetTile(replaceTileIndex, TILE(super->x.HALF.HI + xOffset, super->y.HALF.HI + yOffset),
|
||||
super->collisionLayer);
|
||||
}
|
||||
index += 2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* @file object69.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object69 object
|
||||
*/
|
||||
#include "entity.h"
|
||||
#include "hitbox.h"
|
||||
#include "functions.h"
|
||||
|
||||
void Object69(Entity* this) {
|
||||
if ((this->flags & ENT_SCRIPTED) != 0) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->hitbox = (Hitbox*)&gHitbox_2;
|
||||
sub_0807DD50(this);
|
||||
} else {
|
||||
sub_0807DD94(this, NULL);
|
||||
}
|
||||
} else {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "game.h"
|
||||
|
||||
extern Hitbox gHitbox_2;
|
||||
#include "hitbox.h"
|
||||
|
||||
extern u8 gUpdateVisibleTiles;
|
||||
|
||||
@@ -15,7 +14,7 @@ void ObjectA(Entity* this) {
|
||||
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->hitbox = &gHitbox_2;
|
||||
this->hitbox = (Hitbox*)&gHitbox_2;
|
||||
if (this->collisionLayer == 1) {
|
||||
uVar2 = 0x26;
|
||||
} else {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -20,8 +21,6 @@ typedef struct {
|
||||
/*0x87*/ u8 unk_87;
|
||||
} ObjectA8Entity;
|
||||
|
||||
extern Hitbox gUnk_080FD1A8;
|
||||
|
||||
void sub_0809FECC(ObjectA8Entity*);
|
||||
bool32 sub_0809FE9C(ObjectA8Entity*);
|
||||
void ObjectA8_Init(ObjectA8Entity*);
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#include "entity.h"
|
||||
|
||||
void ObjectBF(Entity* this) {
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/**
|
||||
* @file objectC1.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectC1 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "message.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68;
|
||||
/*0x69*/ u8 unk_69;
|
||||
/*0x6a*/ u8 unk_6a;
|
||||
/*0x6b*/ u8 unk_6b;
|
||||
/*0x6c*/ u8 unk_6c;
|
||||
/*0x6d*/ u8 unk_6d;
|
||||
/*0x6e*/ u8 unk_6e;
|
||||
/*0x6f*/ u8 unk_6f;
|
||||
/*0x70*/ u32 unk_70;
|
||||
/*0x74*/ u8 unk_74;
|
||||
} ObjectC1Entity;
|
||||
|
||||
void ObjectC1_Init(ObjectC1Entity*);
|
||||
void ObjectC1_Action1(ObjectC1Entity*);
|
||||
void ObjectC1_Action8(ObjectC1Entity*);
|
||||
|
||||
void ObjectC1(ObjectC1Entity* this) {
|
||||
static void (*const ObjectC1_Actions[])(ObjectC1Entity*) = {
|
||||
ObjectC1_Init, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1,
|
||||
ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action8, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1,
|
||||
ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1,
|
||||
ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1,
|
||||
ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1, ObjectC1_Action1,
|
||||
ObjectC1_Action1, ObjectC1_Action1,
|
||||
};
|
||||
ObjectC1_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void ObjectC1_Init(ObjectC1Entity* this) {
|
||||
super->action = 8;
|
||||
ObjectC1_Action8(this);
|
||||
}
|
||||
|
||||
void ObjectC1_Action1(ObjectC1Entity* this) {
|
||||
ResetPlayerEventPriority();
|
||||
gUnk_02034490.unk0 = 0;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void ObjectC1_Action8(ObjectC1Entity* this) {
|
||||
u32 one;
|
||||
u32 tmp;
|
||||
Entity* parent;
|
||||
u8* ptr;
|
||||
|
||||
gPlayerEntity.flags &= ~ENT_COLLIDE;
|
||||
gPlayerEntity.spriteSettings.draw = 0;
|
||||
super->palette.b.b0 = gPlayerEntity.palette.b.b0;
|
||||
switch (super->subAction) {
|
||||
case 0:
|
||||
one = 1;
|
||||
super->subAction = one;
|
||||
super->spriteSettings.draw = one;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
super->spritePriority.b0 = gPlayerEntity.spritePriority.b0;
|
||||
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
super->spriteSettings.flipX = 0;
|
||||
super->animationState = 4;
|
||||
SetDefaultPriority(super, 6);
|
||||
if ((gPlayerState.flags & PL_NO_CAP) != 0) {
|
||||
if (sub_080542AC(super->type)) {
|
||||
tmp = 0x45e;
|
||||
} else {
|
||||
tmp = 0x45b;
|
||||
}
|
||||
} else {
|
||||
if (sub_080542AC(super->type)) {
|
||||
tmp = 0x2e0;
|
||||
} else {
|
||||
tmp = 0x1b9;
|
||||
}
|
||||
}
|
||||
super->spriteIndex = (tmp >> 8);
|
||||
InitAnimationForceUpdate(super, tmp & 0xff);
|
||||
break;
|
||||
case 1:
|
||||
UpdateAnimationSingleFrame(super);
|
||||
if (super->frame != 0) {
|
||||
super->subAction++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
UpdateAnimationSingleFrame(super);
|
||||
if ((gMessage.doTextBox & 0x7f) != 0) {
|
||||
return;
|
||||
}
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
super->action = 1;
|
||||
gPlayerEntity.flags = this->unk_69;
|
||||
gPlayerEntity.spriteSettings.draw = this->unk_68;
|
||||
gPlayerEntity.iframes = this->unk_6a;
|
||||
gPlayerState.field_0x7 = this->unk_6b;
|
||||
gPlayerState.keepFacing = this->unk_6c;
|
||||
gPlayerState.field_0xa = this->unk_6d;
|
||||
gPlayerState.field_0x27[0] = this->unk_6e;
|
||||
gPlayerState.mobility = this->unk_6f;
|
||||
gPlayerState.flags = this->unk_70;
|
||||
gPlayerState.field_0x82[8] = this->unk_74;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
parent = super->parent;
|
||||
if (parent != NULL) {
|
||||
PositionEntityOnTop(super, parent);
|
||||
ptr = GetSpriteSubEntryOffsetDataPointer((u16)super->spriteIndex, super->frameIndex);
|
||||
parent->spriteOffsetX = *ptr;
|
||||
parent->spriteOffsetY = ptr[1];
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -29,7 +30,6 @@ typedef struct {
|
||||
|
||||
extern bool32 sub_080896B0(void); // pushableStatue
|
||||
|
||||
extern Hitbox gUnk_080FD1F4;
|
||||
extern s16 gUnk_080B4488[];
|
||||
|
||||
typedef struct {
|
||||
|
||||
+3
-5
@@ -6,6 +6,7 @@
|
||||
#include "room.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08082824(Entity*);
|
||||
static void sub_08082850(Entity*, Entity*);
|
||||
@@ -15,9 +16,6 @@ extern void (*const gUnk_0811F090[])(Entity*);
|
||||
extern void (*const gUnk_0811F0A8[])(Entity*);
|
||||
extern void (*const gUnk_0811F0C4[])(Entity*);
|
||||
|
||||
extern Hitbox gHitbox_18; // TODO: should be const
|
||||
extern Hitbox gUnk_080FD340; // TODO: should be const
|
||||
|
||||
extern void sub_08078930(Entity*);
|
||||
extern void sub_08016A6C(Entity*);
|
||||
|
||||
@@ -32,7 +30,7 @@ void sub_0808222C(Entity* this) {
|
||||
}
|
||||
|
||||
this->action = 1;
|
||||
this->hitbox = &gHitbox_18;
|
||||
this->hitbox = (Hitbox*)&gHitbox_18;
|
||||
this->speed = 0x80;
|
||||
this->y.HALF.HI += 3;
|
||||
this->field_0x16 = 0;
|
||||
@@ -118,7 +116,7 @@ void sub_080824F8(Entity* this) {
|
||||
|
||||
void sub_08082510(Entity* this) {
|
||||
COLLISION_ON(this);
|
||||
this->hitbox = &gUnk_080FD340;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD340;
|
||||
this->field_0x3c = 7;
|
||||
this->hitType = 1;
|
||||
this->flags2 = gPlayerEntity.flags2;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#define NENT_DEPRECATED
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
u32 IsColliding(Entity*, Entity*);
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
@@ -22,8 +21,6 @@ PressurePlateAction sub_08088840;
|
||||
PressurePlateAction sub_0808886C;
|
||||
PressurePlateAction sub_080888F4;
|
||||
|
||||
extern Hitbox gUnk_080FD1D4;
|
||||
|
||||
static u32 sub_08088938(PressurePlateEntity*);
|
||||
static u32 get_standing_count(PressurePlateEntity*);
|
||||
|
||||
@@ -50,7 +47,7 @@ void sub_08088840(PressurePlateEntity* this) {
|
||||
super->action = 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->spritePriority.b0 = 7;
|
||||
super->hitbox = &gUnk_080FD1D4;
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD1D4;
|
||||
this->dir = super->animationState;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "sound.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -31,8 +32,6 @@ typedef struct {
|
||||
enum PullableLeverPart { HANDLE, MIDDLE, SOCKET };
|
||||
|
||||
extern u16 gUnk_02021F00[];
|
||||
extern Hitbox gUnk_080FD270;
|
||||
extern Hitbox gUnk_080FD278;
|
||||
|
||||
extern void (*const PullableLever_HandleActions[])(PullableLeverEntity*);
|
||||
extern void (*const PullableLever_MiddleActions[])(PullableLeverEntity*);
|
||||
@@ -76,9 +75,9 @@ void PullableLever_HandleInit(PullableLeverEntity* this) {
|
||||
super->spriteSettings.draw = 1;
|
||||
super->speed = 0x60;
|
||||
if ((super->type2 & 1)) {
|
||||
super->hitbox = &gUnk_080FD278;
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD278;
|
||||
} else {
|
||||
super->hitbox = &gUnk_080FD270;
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD270;
|
||||
}
|
||||
super->field_0x16 = 1;
|
||||
super->x.HALF.HI += PullableLever_InitialOffsets[super->type2 * 2];
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "game.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -20,7 +21,6 @@ typedef struct {
|
||||
/*0x7c*/ u32 unk_7c;
|
||||
} PullableMushroomEntity;
|
||||
|
||||
extern const Hitbox gUnk_080FD224;
|
||||
extern const u8 gUnk_08126EE4[];
|
||||
|
||||
void PullableMushroom_Init(PullableMushroomEntity*);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -26,9 +27,6 @@ typedef struct {
|
||||
/*0x86*/ u16 pushedFlag;
|
||||
} PushableGraveEntity;
|
||||
|
||||
extern const Hitbox gUnk_080FD578;
|
||||
extern const Hitbox gUnk_080FD570;
|
||||
|
||||
extern void (*const gUnk_081232AC[])(PushableGraveEntity*);
|
||||
extern const u8 gUnk_081232C0[];
|
||||
extern const u16 PushableGrave_Tiles[];
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -20,7 +21,6 @@ typedef struct {
|
||||
/*0x86*/ u16 unk_86;
|
||||
} PushableStatueEntity;
|
||||
|
||||
extern const Hitbox gUnk_080FD1F4;
|
||||
extern const s16 gUnk_080B4488[];
|
||||
extern const s16 gUnk_080B4468[];
|
||||
|
||||
|
||||
+2
-3
@@ -1,12 +1,11 @@
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void sub_08086A6C(Entity*);
|
||||
|
||||
void (*const gUnk_081206C4[])(Entity*);
|
||||
|
||||
extern Hitbox gUnk_080FD1A8;
|
||||
|
||||
// Main
|
||||
void Rupee(Entity* ent) {
|
||||
gUnk_081206C4[ent->action](ent);
|
||||
@@ -17,7 +16,7 @@ void sub_080869DC(Entity* ent) {
|
||||
|
||||
ent->action = 1;
|
||||
ent->spriteSettings.draw = 0;
|
||||
ent->hitbox = &gUnk_080FD1A8;
|
||||
ent->hitbox = (Hitbox*)&gUnk_080FD1A8;
|
||||
ent->field_0x3c |= 16;
|
||||
itemEntity = CreateObject(GROUND_ITEM, ent->type, 0);
|
||||
if (itemEntity != NULL) {
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
@@ -20,7 +21,6 @@ typedef struct {
|
||||
/*0x86*/ u16 unk_86;
|
||||
} SmallIceBlockEntity;
|
||||
|
||||
extern const Hitbox gUnk_080FD408;
|
||||
extern const s16 gUnk_080B4488[];
|
||||
|
||||
void sub_080996AC(SmallIceBlockEntity*);
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
#include "coord.h"
|
||||
#include "room.h"
|
||||
#include "object.h"
|
||||
|
||||
extern Hitbox gHitbox_1;
|
||||
#include "hitbox.h"
|
||||
|
||||
void TreeThorns(Entity* this) {
|
||||
Entity* ent;
|
||||
@@ -23,7 +22,7 @@ void TreeThorns(Entity* this) {
|
||||
this->hurtType = 0x48;
|
||||
this->hitType = 0x7a;
|
||||
this->flags2 = 1;
|
||||
this->hitbox = &gHitbox_1;
|
||||
this->hitbox = (Hitbox*)&gHitbox_1;
|
||||
tilePos = COORD_TO_TILE(this);
|
||||
SetTile(0x4066, tilePos - 1, *layer);
|
||||
SetTile(0x4065, tilePos, *layer);
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
#include "object.h"
|
||||
#include "game.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern Hitbox gHitbox_1;
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void sub_0807CAC8(u32);
|
||||
extern u32 sub_0807CAEC(u32);
|
||||
@@ -39,7 +38,7 @@ void sub_0808B474(Entity* this) {
|
||||
tmp = gUnk_08121380[this->type];
|
||||
this->palette.b.b0 = tmp;
|
||||
this->spritePriority.b0 = 6;
|
||||
this->hitbox = &gHitbox_1;
|
||||
this->hitbox = (Hitbox*)&gHitbox_1;
|
||||
this->updatePriority = PRIO_NO_BLOCK;
|
||||
InitializeAnimation(this, 0);
|
||||
if (CheckFlags(this->field_0x86.HWORD)) {
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/**
|
||||
* @file whirlwind.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Whirlwind object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "area.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
void Whirlwind_Init(Entity*);
|
||||
void Whirlwind_Action1(Entity*);
|
||||
void Whirlwind_Action2(Entity*);
|
||||
|
||||
void Whirlwind(Entity* this) {
|
||||
static void (*const Whirlwind_Actions[])(Entity*) = {
|
||||
Whirlwind_Init,
|
||||
Whirlwind_Action1,
|
||||
Whirlwind_Action2,
|
||||
};
|
||||
u32 tmp = this->health;
|
||||
if (((tmp & 0x7f) != 0) && (ReadBit(gArea.filler5, tmp - 1) == 0)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
Whirlwind_Actions[this->action](this);
|
||||
}
|
||||
|
||||
void Whirlwind_Init(Entity* this) {
|
||||
this->action = 1;
|
||||
this->hitbox = (Hitbox*)&gUnk_080FD320;
|
||||
this->flags |= ENT_COLLIDE;
|
||||
this->hitType = 1;
|
||||
this->field_0x3c = 0x47;
|
||||
this->hurtType = 0x44;
|
||||
this->flags2 = 0x80;
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->animationState = this->type;
|
||||
this->direction = this->type << 3;
|
||||
this->speed = 0x700;
|
||||
if (this->type2 == 1) {
|
||||
ChangeObjPalette(this, 0x161);
|
||||
InitializeAnimation(this, 1);
|
||||
} else {
|
||||
this->z.HALF.HI = 0xffe8;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
if ((this->flags & ENT_SCRIPTED) != 0) {
|
||||
sub_0807DD64(this);
|
||||
ExecuteScriptForEntity(this, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void Whirlwind_Action1(Entity* this) {
|
||||
if ((this->flags & ENT_SCRIPTED) != 0) {
|
||||
ExecuteScriptForEntity(this, NULL);
|
||||
}
|
||||
if (this->spriteSettings.draw != 0) {
|
||||
GetNextFrame(this);
|
||||
if ((((((gPlayerState.flags & PL_MINISH) == 0)) && (gPlayerState.field_0x3c[0] == 0)) &&
|
||||
((gPlayerEntity.action == 4 || ((gPlayerEntity.flags & ENT_COLLIDE) != 0)))) &&
|
||||
((gPlayerEntity.action != 6 && (sub_0800419C(this, &gPlayerEntity, 0xc, 0xc) != 0)))) {
|
||||
if (((gPlayerState.flags & PL_PARACHUTE) == 0) && (gPlayerEntity.action != 4)) {
|
||||
if ((this->type2 != 1) && (-0x10 < gPlayerEntity.z.HALF.HI)) {
|
||||
return;
|
||||
}
|
||||
} else if (gPlayerEntity.z.HALF.HI == 0) {
|
||||
return;
|
||||
}
|
||||
CopyPosition(this, &gPlayerEntity);
|
||||
sub_08004542(this);
|
||||
sub_08004542(&gPlayerEntity);
|
||||
gPlayerEntity.collisionLayer = 1;
|
||||
gPlayerEntity.flags |= ENT_COLLIDE;
|
||||
gPlayerState.queued_action = 0x1f;
|
||||
gPlayerState.field_0x38 = this->type2;
|
||||
gPlayerState.field_0x39 = 0xff;
|
||||
this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 - 1;
|
||||
this->action++;
|
||||
sub_08077B20();
|
||||
SoundReq(SFX_153);
|
||||
SoundReq(SFX_PLY_VO5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Whirlwind_Action2(Entity* this) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if (sub_0800419C(this, &gPlayerEntity, 0xc, 0xc) == 0) {
|
||||
ResetCollisionLayer(this);
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->action--;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
/**
|
||||
* @file windTribeTeleporter.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief WindTribeTeleporter object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68;
|
||||
} WindTribeTeleporterEntity;
|
||||
|
||||
extern ScreenTransitionData gUnk_0813ADEC[];
|
||||
|
||||
void WindTribeTeleporter_Init(WindTribeTeleporterEntity*);
|
||||
void WindTribeTeleporter_Action1(WindTribeTeleporterEntity*);
|
||||
void WindTribeTeleporter_Action2(WindTribeTeleporterEntity*);
|
||||
void WindTribeTeleporter_Action3(WindTribeTeleporterEntity*);
|
||||
void sub_080A11E0(WindTribeTeleporterEntity*);
|
||||
bool32 sub_080A11C0(WindTribeTeleporterEntity*);
|
||||
|
||||
void WindTribeTeleporter(WindTribeTeleporterEntity* this) {
|
||||
static void (*const WindTribeTeleporter_Actions[])(WindTribeTeleporterEntity*) = {
|
||||
WindTribeTeleporter_Init,
|
||||
WindTribeTeleporter_Action1,
|
||||
WindTribeTeleporter_Action2,
|
||||
WindTribeTeleporter_Action3,
|
||||
};
|
||||
WindTribeTeleporter_Actions[super->action](this);
|
||||
sub_080A11E0(this);
|
||||
}
|
||||
|
||||
void WindTribeTeleporter_Init(WindTribeTeleporterEntity* this) {
|
||||
super->action = 1;
|
||||
super->frameDuration = 8;
|
||||
super->spritePriority.b0 = 7;
|
||||
super->hitbox = (Hitbox*)&gHitbox_22;
|
||||
SetDefaultPriority(super, 6);
|
||||
if (sub_080A11C0(this)) {
|
||||
gPlayerEntity.x.HALF.HI = super->x.HALF.HI;
|
||||
gPlayerEntity.y.HALF.HI = super->y.HALF.HI;
|
||||
SetPlayerControl(CONTROL_DISABLED);
|
||||
sub_08078B48();
|
||||
SetPlayerEventPriority();
|
||||
SoundReq(SFX_112);
|
||||
super->action = 3;
|
||||
super->subAction = 0;
|
||||
this->unk_68 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void WindTribeTeleporter_Action1(WindTribeTeleporterEntity* this) {
|
||||
if (sub_080A11C0(this)) {
|
||||
if (this->unk_68 == 0) {
|
||||
gPlayerEntity.x.HALF.HI = super->x.HALF.HI;
|
||||
gPlayerEntity.y.HALF.HI = super->y.HALF.HI;
|
||||
SetPlayerControl(CONTROL_DISABLED);
|
||||
sub_08078B48();
|
||||
SetPlayerEventPriority();
|
||||
SoundReq(SFX_112);
|
||||
super->action = 2;
|
||||
super->subAction = 0;
|
||||
}
|
||||
} else {
|
||||
this->unk_68 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void WindTribeTeleporter_Action2(WindTribeTeleporterEntity* this) {
|
||||
switch (super->subAction) {
|
||||
case 0:
|
||||
super->actionDelay = 0x1e;
|
||||
super->subAction++;
|
||||
break;
|
||||
case 1:
|
||||
if (--super->actionDelay == 0) {
|
||||
super->subAction++;
|
||||
super->actionDelay = 0x1e;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (--super->actionDelay == 0) {
|
||||
super->subAction++;
|
||||
super->actionDelay = 0x1e;
|
||||
SoundReq(SFX_113);
|
||||
} else {
|
||||
if ((gRoomTransition.frameCount & 7) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (--super->actionDelay == 0) {
|
||||
super->subAction++;
|
||||
super->actionDelay = 0x1e;
|
||||
} else {
|
||||
if ((gRoomTransition.frameCount & 3) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (--super->actionDelay == 0) {
|
||||
#if defined(DEMO_JP) || defined(JP) || defined(EU)
|
||||
#ifdef DEMO_JP
|
||||
SetLocalFlag(0xfc);
|
||||
#endif
|
||||
DoExitTransition(&gUnk_0813ADEC[super->type2]);
|
||||
#else
|
||||
if (gRoomControls.area == 3) {
|
||||
SetLocalFlag(0xf9);
|
||||
}
|
||||
DoExitTransition(&gUnk_0813ADEC[super->type2]);
|
||||
#endif
|
||||
} else {
|
||||
if ((gRoomTransition.frameCount & 1) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void WindTribeTeleporter_Action3(WindTribeTeleporterEntity* this) {
|
||||
switch (super->subAction) {
|
||||
case 0:
|
||||
super->subAction = 1;
|
||||
super->actionDelay = 0x1e;
|
||||
SoundReq(SFX_114);
|
||||
break;
|
||||
case 1:
|
||||
if (--super->actionDelay != 0) {
|
||||
if ((gRoomTransition.frameCount & 1) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
} else {
|
||||
super->subAction++;
|
||||
super->actionDelay = 0x1e;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (--super->actionDelay == 0) {
|
||||
super->subAction++;
|
||||
super->actionDelay = 0x1e;
|
||||
} else {
|
||||
if ((gRoomTransition.frameCount & 3) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (--super->actionDelay == 0) {
|
||||
super->subAction++;
|
||||
} else {
|
||||
if ((gRoomTransition.frameCount & 7) == 0) {
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (gPlayerEntity.animationState != 4) {
|
||||
if ((gRoomTransition.frameCount & 7U) != 0) {
|
||||
return;
|
||||
}
|
||||
gPlayerEntity.animationState = (gPlayerEntity.animationState + 2) & 6;
|
||||
} else {
|
||||
super->action = 1;
|
||||
super->subAction = 0;
|
||||
gPlayerState.controlMode = 1;
|
||||
ResetPlayerEventPriority();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_080A11C0(WindTribeTeleporterEntity* this) {
|
||||
if (gPlayerEntity.z.HALF.HI != 0) {
|
||||
return FALSE;
|
||||
} else {
|
||||
return IsCollidingPlayer(super);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A11E0(WindTribeTeleporterEntity* this) {
|
||||
if (--super->frameDuration == 0) {
|
||||
super->frameDuration = 8;
|
||||
super->frameIndex = (super->frameIndex + 1) & 3;
|
||||
}
|
||||
}
|
||||
@@ -3133,8 +3133,6 @@ static void PlayerMinish(Entity* this) {
|
||||
sPlayerMinishStates[this->subAction](this);
|
||||
}
|
||||
|
||||
extern Hitbox gUnk_0811BC80;
|
||||
|
||||
static void sub_08073C80(Entity* this) {
|
||||
static const Hitbox sMinishHitbox = { 0, -1, { 3, 2, 2, 3 }, 2, 2 };
|
||||
|
||||
|
||||
@@ -3,14 +3,11 @@
|
||||
#include "functions.h"
|
||||
|
||||
extern void (*const gUnk_080B77C8[])(Entity*);
|
||||
extern void sub_08078954(Entity*);
|
||||
void sub_0801B418(Entity*);
|
||||
void sub_0801B3A4(Entity*);
|
||||
|
||||
extern void (*const gUnk_080B77D8[])(Entity*);
|
||||
|
||||
extern void sub_08079BD8(Entity*);
|
||||
|
||||
void PlayerItemBomb(Entity* this) {
|
||||
u8 uVar1, uVar2;
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_08079BD8(Entity*);
|
||||
extern Entity* sub_08008782(Entity*, u32, s32, s32);
|
||||
|
||||
void sub_0801B8FC(Entity*);
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
#include "coord.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_08078954(Entity*);
|
||||
|
||||
extern void (*const DirtBallProjectile_Functions[])(Entity*);
|
||||
extern void (*const DirtBallProjectile_Actions[])(Entity*);
|
||||
extern const Hitbox3D gUnk_08129764;
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
#include "coord.h"
|
||||
#include "functions.h"
|
||||
#include "projectile.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern u32 sub_080644C8(Entity*);
|
||||
extern u8 gUnk_02027EB4[];
|
||||
extern const Hitbox gUnk_080FD1E4;
|
||||
|
||||
extern const u8 gUnk_081299C8[];
|
||||
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
#include "sound.h"
|
||||
#include "functions.h"
|
||||
#include "projectile.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
extern u8 gEntCount;
|
||||
extern Hitbox gHitbox_21;
|
||||
extern Hitbox gHitbox_1;
|
||||
extern Hitbox gHitbox_20;
|
||||
|
||||
extern void (*const gUnk_0812A994[])(Entity*);
|
||||
extern void (*const GyorgTail_Actions[])(Entity*);
|
||||
@@ -96,7 +94,7 @@ void sub_080AC510(Entity* this) {
|
||||
this->spriteSettings.draw = 1;
|
||||
this->collisionLayer = 2;
|
||||
if (*(u16*)&this->type == 0x300) {
|
||||
this->hitbox = &gHitbox_21;
|
||||
this->hitbox = (Hitbox*)&gHitbox_21;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -113,9 +111,9 @@ void sub_080AC560(Entity* this) {
|
||||
this->action = 1;
|
||||
this->collisionLayer = 2;
|
||||
if (this->type == 0) {
|
||||
this->hitbox = &gHitbox_1;
|
||||
this->hitbox = (Hitbox*)&gHitbox_1;
|
||||
} else {
|
||||
this->hitbox = &gHitbox_20;
|
||||
this->hitbox = (Hitbox*)&gHitbox_20;
|
||||
}
|
||||
this->frameIndex = 0xff;
|
||||
this->spriteSettings.draw = 1;
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
#include "coord.h"
|
||||
#include "functions.h"
|
||||
#include "game.h"
|
||||
|
||||
extern Hitbox gHitbox_0;
|
||||
#include "hitbox.h"
|
||||
|
||||
extern void (*const MandiblesProjectile_Functions[])(Entity*);
|
||||
extern void (*const MandiblesProjectile_Actions[])(Entity*);
|
||||
@@ -141,9 +140,9 @@ void MandiblesProjectile_Action3(Entity* this) {
|
||||
this->animationState = uVar1 << 0x1a >> 0x1a;
|
||||
#ifdef EU
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->hitbox = &gHitbox_0;
|
||||
this->hitbox = (Hitbox*)&gHitbox_0;
|
||||
#else
|
||||
this->hitbox = &gHitbox_0;
|
||||
this->hitbox = (Hitbox*)&gHitbox_0;
|
||||
if (AreaIsDungeon() != 0) {
|
||||
this->spriteOrientation.flipY = 1;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "object.h"
|
||||
#include "hitbox.h"
|
||||
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
@@ -234,10 +235,7 @@ void (*const SpiderWeb_Actions[])(Entity*) = {
|
||||
const u8 gUnk_0812A03C[] = {
|
||||
248, 252, 6, 1, 4, 245, 253, 3, 249, 253, 6, 4, 252, 245, 3, 3,
|
||||
};
|
||||
extern const Hitbox gUnk_080FD41C;
|
||||
extern const Hitbox gUnk_080FD424;
|
||||
extern const Hitbox gUnk_080FD42C;
|
||||
extern const Hitbox gUnk_080FD434;
|
||||
|
||||
const Hitbox* const gUnk_0812A04C[] = {
|
||||
&gUnk_080FD41C,
|
||||
&gUnk_080FD424,
|
||||
|
||||
Reference in New Issue
Block a user