mirror of
https://github.com/zeldaret/tmc
synced 2026-06-01 01:39:50 -04:00
Merge pull request #439 from octorock/objects
This commit is contained in:
@@ -3261,8 +3261,8 @@ _0801AF10:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0801AF18
|
||||
sub_0801AF18: @ 0x0801AF18
|
||||
thumb_func_start SetMultipleTiles
|
||||
SetMultipleTiles: @ 0x0801AF18
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r1, #0
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080850A6
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
ldr r0, _080850A8 @ =gScreen
|
||||
mov ip, r0
|
||||
ldrh r1, [r0]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #6
|
||||
adds r0, r2, #0
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strh r0, [r1]
|
||||
adds r1, #0x60
|
||||
movs r0, #0x1f
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
movs r0, #0xf
|
||||
strh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r4, r2]
|
||||
ldr r3, _080850AC @ =gRoomControls
|
||||
movs r2, #0xa
|
||||
ldrsh r1, [r3, r2]
|
||||
subs r0, r0, r1
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x18
|
||||
movs r2, #0xff
|
||||
ands r1, r2
|
||||
lsls r1, r1, #8
|
||||
adds r0, #0x18
|
||||
ands r0, r2
|
||||
orrs r1, r0
|
||||
mov r0, ip
|
||||
adds r0, #0x58
|
||||
strh r1, [r0]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r4, #0xc
|
||||
ldrsh r1, [r3, r4]
|
||||
subs r0, r0, r1
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x18
|
||||
ands r1, r2
|
||||
lsls r1, r1, #8
|
||||
adds r0, #0x18
|
||||
ands r0, r2
|
||||
orrs r1, r0
|
||||
mov r0, ip
|
||||
adds r0, #0x5c
|
||||
strh r1, [r0]
|
||||
_080850A6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080850A8: .4byte gScreen
|
||||
_080850AC: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,107 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _08087590 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r2, #0x3f
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r1, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
lsrs r0, r1, #6
|
||||
subs r0, #1
|
||||
lsls r0, r0, #6
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
strb r2, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08087594
|
||||
ldrb r1, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #1
|
||||
bne _08087588
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_08087588:
|
||||
adds r0, r4, #0
|
||||
bl sub_08087640
|
||||
b _080875DC
|
||||
.align 2, 0
|
||||
_08087590: .4byte gPlayerEntity
|
||||
_08087594:
|
||||
ldr r0, _080875B4 @ =gArea
|
||||
ldrb r0, [r0, #1]
|
||||
movs r1, #4
|
||||
cmp r0, #0x10
|
||||
bne _080875A2
|
||||
movs r1, #0xb5
|
||||
lsls r1, r1, #1
|
||||
_080875A2:
|
||||
adds r0, r4, #0
|
||||
bl ChangeObjPalette
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #1
|
||||
beq _080875B8
|
||||
cmp r0, #3
|
||||
bne _080875CE
|
||||
b _080875C0
|
||||
.align 2, 0
|
||||
_080875B4: .4byte gArea
|
||||
_080875B8:
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080875C0:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x40
|
||||
bne _080875DC
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #4
|
||||
strh r0, [r4, #0x32]
|
||||
b _080875DC
|
||||
_080875CE:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x40
|
||||
bne _080875DC
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080875DC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl SetDefaultPriority
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r1, r1, #2
|
||||
ldrb r0, [r4, #0x14]
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,104 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x10
|
||||
adds r7, r0, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
str r0, [sp]
|
||||
movs r0, #0x32
|
||||
ldrsh r2, [r7, r0]
|
||||
str r2, [sp, #4]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
mov r8, r0
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
mov r1, r8
|
||||
lsls r1, r1, #0x18
|
||||
str r1, [sp, #8]
|
||||
_080878F8:
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
mov sb, r2
|
||||
ldr r1, [sp]
|
||||
adds r1, r1, r0
|
||||
mov sl, r1
|
||||
adds r0, #0x10
|
||||
str r0, [sp, #0xc]
|
||||
mov r6, sl
|
||||
_0808790A:
|
||||
ldr r2, _0808795C @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r0, r6, r0
|
||||
lsrs r4, r0, #4
|
||||
movs r0, #0x3f
|
||||
ands r4, r0
|
||||
ldr r5, [sp, #4]
|
||||
add r5, sb
|
||||
ldrh r0, [r2, #8]
|
||||
subs r0, r5, r0
|
||||
lsrs r0, r0, #4
|
||||
movs r1, #0x3f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
adds r0, r4, #0
|
||||
ldr r2, [sp, #8]
|
||||
lsrs r1, r2, #0x18
|
||||
bl sub_080B1AE0
|
||||
cmp r0, #0x2e
|
||||
bne _08087970
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
movs r0, #0xda
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
bhi _08087960
|
||||
subs r0, #1
|
||||
cmp r1, r0
|
||||
blo _08087960
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
adds r2, r6, #0
|
||||
adds r3, r5, #0
|
||||
bl sub_08008796
|
||||
b _0808797C
|
||||
.align 2, 0
|
||||
_0808795C: .4byte gRoomControls
|
||||
_08087960:
|
||||
ldr r0, _0808796C @ =0x00004022
|
||||
adds r1, r4, #0
|
||||
mov r2, r8
|
||||
bl SetTile
|
||||
b _0808797C
|
||||
.align 2, 0
|
||||
_0808796C: .4byte 0x00004022
|
||||
_08087970:
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
mov r2, sl
|
||||
adds r3, r5, #0
|
||||
bl sub_08008796
|
||||
_0808797C:
|
||||
movs r0, #0x10
|
||||
add sb, r0
|
||||
mov r1, sb
|
||||
cmp r1, #0x10
|
||||
ble _0808790A
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0x10
|
||||
ble _080878F8
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,66 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r5, [r4, #0xc]
|
||||
cmp r5, #0
|
||||
beq _080A22FC
|
||||
cmp r5, #1
|
||||
beq _080A231C
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A233E
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r1, [r4, #0xd]
|
||||
adds r0, r1, r0
|
||||
strb r0, [r4, #0x1e]
|
||||
lsls r1, r1, #0x18
|
||||
lsls r0, r0, #0x18
|
||||
cmp r1, r0
|
||||
bne _080A233E
|
||||
b _080A233A
|
||||
_080A22FC:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2340
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r5, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x1e]
|
||||
strb r0, [r4, #0xd]
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x1e
|
||||
strh r0, [r4, #0x24]
|
||||
b _080A233E
|
||||
_080A231C:
|
||||
ldrh r0, [r4, #0x24]
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A233E
|
||||
bl Random
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x1e
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #2
|
||||
b _080A233C
|
||||
_080A233A:
|
||||
movs r0, #1
|
||||
_080A233C:
|
||||
strb r0, [r4, #0xc]
|
||||
_080A233E:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -1,347 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object11
|
||||
Object11: @ 0x08084D34
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl EntityIsDeleted
|
||||
cmp r0, #0
|
||||
bne _08084D50
|
||||
ldr r0, _08084D54 @ =gUnk_0812057C
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
_08084D50:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08084D54: .4byte gUnk_0812057C
|
||||
|
||||
thumb_func_start sub_08084D58
|
||||
sub_08084D58: @ 0x08084D58
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, #0
|
||||
ldrb r0, [r7, #0xa]
|
||||
cmp r0, #3
|
||||
bne _08084D6C
|
||||
adds r0, r7, #0
|
||||
bl sub_08084F8C
|
||||
_08084D6C:
|
||||
adds r0, r7, #0
|
||||
bl sub_08004168
|
||||
ldrb r0, [r7, #0xa]
|
||||
cmp r0, #4
|
||||
bne _08084D7E
|
||||
adds r0, r7, #0
|
||||
bl sub_08084F8C
|
||||
_08084D7E:
|
||||
movs r0, #2
|
||||
strb r0, [r7, #0xc]
|
||||
ldrb r0, [r7, #0x10]
|
||||
movs r2, #0x80
|
||||
orrs r0, r2
|
||||
strb r0, [r7, #0x10]
|
||||
ldrb r1, [r7, #0x19]
|
||||
movs r5, #0x3f
|
||||
adds r0, r5, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r7, #0x19]
|
||||
ldr r0, _08084E48 @ =gUnk_08120588
|
||||
mov r8, r0
|
||||
ldrb r0, [r7, #0xa]
|
||||
lsls r0, r0, #2
|
||||
add r0, r8
|
||||
ldrb r0, [r0, #1]
|
||||
strb r0, [r7, #0x1d]
|
||||
ldrb r0, [r7, #0xa]
|
||||
lsls r0, r0, #2
|
||||
add r0, r8
|
||||
ldrb r0, [r0, #2]
|
||||
strb r0, [r7, #0x1c]
|
||||
movs r2, #0
|
||||
movs r0, #0x80
|
||||
strh r0, [r7, #0x24]
|
||||
ldr r0, _08084E4C @ =gPlayerEntity
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
adds r6, r7, #0
|
||||
adds r6, #0x38
|
||||
strb r0, [r6]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x45
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
subs r1, #9
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r1, #3
|
||||
movs r0, #0x6e
|
||||
strb r0, [r1]
|
||||
subs r1, #4
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
ldr r0, _08084E50 @ =gUnk_081205B4
|
||||
str r0, [r7, #0x48]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x72
|
||||
strb r2, [r0]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
ldr r4, _08084E54 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r5
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r7, r2]
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrb r1, [r6]
|
||||
bl GetTileIndex
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
ldr r0, _08084E58 @ =0x00004022
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldrh r2, [r4, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
ldrh r3, [r4, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r5
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrb r2, [r6]
|
||||
bl SetTile
|
||||
ldrb r0, [r7, #0xa]
|
||||
lsls r0, r0, #2
|
||||
add r0, r8
|
||||
ldrb r1, [r0]
|
||||
adds r0, r7, #0
|
||||
bl InitializeAnimation
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08084E48: .4byte gUnk_08120588
|
||||
_08084E4C: .4byte gPlayerEntity
|
||||
_08084E50: .4byte gUnk_081205B4
|
||||
_08084E54: .4byte gRoomControls
|
||||
_08084E58: .4byte 0x00004022
|
||||
|
||||
thumb_func_start sub_08084E5C
|
||||
sub_08084E5C: @ 0x08084E5C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08084EAC @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1c]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
bne _08084E7A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x13
|
||||
beq _08084EA8
|
||||
_08084E7A:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _08084EB0 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_0807BA8C
|
||||
bl DeleteThisEntity
|
||||
_08084EA8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08084EAC: .4byte gPlayerState
|
||||
_08084EB0: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_08084EB4
|
||||
sub_08084EB4: @ 0x08084EB4
|
||||
push {lr}
|
||||
ldr r2, _08084EC8 @ =gUnk_0812059C
|
||||
ldrb r1, [r0, #0xd]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08084EC8: .4byte gUnk_0812059C
|
||||
|
||||
thumb_func_start sub_08084ECC
|
||||
sub_08084ECC: @ 0x08084ECC
|
||||
push {lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xd]
|
||||
bl sub_08084ED8
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08084ED8
|
||||
sub_08084ED8: @ 0x08084ED8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08084E5C
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F4E8
|
||||
ldrb r0, [r4, #0x1d]
|
||||
cmp r0, #0
|
||||
beq _08084EFA
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0x1d]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08084EFA
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xd]
|
||||
_08084EFA:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08084EFC
|
||||
sub_08084EFC: @ 0x08084EFC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x72
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0
|
||||
bne _08084F42
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x62
|
||||
strb r1, [r0]
|
||||
adds r0, #0xe
|
||||
ldrh r0, [r0]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08084F7C @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B9B8
|
||||
_08084F42:
|
||||
ldr r0, _08084F80 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1c]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
bne _08084F5C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x13
|
||||
beq _08084F62
|
||||
_08084F5C:
|
||||
adds r0, r5, #0
|
||||
bl sub_08084F8C
|
||||
_08084F62:
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F3E4
|
||||
cmp r0, #0
|
||||
beq _08084F7A
|
||||
ldrb r1, [r5, #0x1c]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
bne _08084F7A
|
||||
bl DeleteThisEntity
|
||||
_08084F7A:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08084F7C: .4byte gRoomControls
|
||||
_08084F80: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_08084F84
|
||||
sub_08084F84: @ 0x08084F84
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08084F88
|
||||
sub_08084F88: @ 0x08084F88
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08084F8C
|
||||
sub_08084F8C: @ 0x08084F8C
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xb]
|
||||
cmp r1, #0xf
|
||||
beq _08084FA4
|
||||
cmp r1, #0xf
|
||||
bgt _08084F9E
|
||||
cmp r1, #0
|
||||
beq _08084FB8
|
||||
b _08084FAE
|
||||
_08084F9E:
|
||||
cmp r1, #0xff
|
||||
bne _08084FAE
|
||||
b _08084FB8
|
||||
_08084FA4:
|
||||
ldrb r1, [r0, #0xe]
|
||||
movs r2, #0x80
|
||||
bl CreateFx
|
||||
b _08084FB8
|
||||
_08084FAE:
|
||||
ldrb r1, [r0, #0xb]
|
||||
ldrb r2, [r0, #0xe]
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_08084FB8:
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,249 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object12
|
||||
Object12: @ 0x08084FC0
|
||||
push {lr}
|
||||
ldr r2, _08084FD4 @ =gUnk_081205BC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08084FD4: .4byte gUnk_081205BC
|
||||
|
||||
thumb_func_start sub_08084FD8
|
||||
sub_08084FD8: @ 0x08084FD8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808500C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08084FF4
|
||||
bl DeleteThisEntity
|
||||
_08084FF4:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080850FC
|
||||
b _0808501C
|
||||
_0808500C:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0xf0
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x18
|
||||
strb r0, [r4, #0x15]
|
||||
_0808501C:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0x1e]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_115
|
||||
nullsub_115: @ 0x08085024
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08085028
|
||||
sub_08085028: @ 0x08085028
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080850A6
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
ldr r0, _080850A8 @ =gScreen
|
||||
mov ip, r0
|
||||
ldrh r1, [r0]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #6
|
||||
adds r0, r2, #0
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strh r0, [r1]
|
||||
adds r1, #0x60
|
||||
movs r0, #0x1f
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
movs r0, #0xf
|
||||
strh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r4, r2]
|
||||
ldr r3, _080850AC @ =gRoomControls
|
||||
movs r2, #0xa
|
||||
ldrsh r1, [r3, r2]
|
||||
subs r0, r0, r1
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x18
|
||||
movs r2, #0xff
|
||||
ands r1, r2
|
||||
lsls r1, r1, #8
|
||||
adds r0, #0x18
|
||||
ands r0, r2
|
||||
orrs r1, r0
|
||||
mov r0, ip
|
||||
adds r0, #0x58
|
||||
strh r1, [r0]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r4, #0xc
|
||||
ldrsh r1, [r3, r4]
|
||||
subs r0, r0, r1
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x18
|
||||
ands r1, r2
|
||||
lsls r1, r1, #8
|
||||
adds r0, #0x18
|
||||
ands r0, r2
|
||||
orrs r1, r0
|
||||
mov r0, ip
|
||||
adds r0, #0x5c
|
||||
strh r1, [r0]
|
||||
_080850A6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080850A8: .4byte gScreen
|
||||
_080850AC: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_080850B0
|
||||
sub_080850B0: @ 0x080850B0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080850C8
|
||||
movs r0, #4
|
||||
strb r0, [r1, #0xc]
|
||||
movs r0, #0x60
|
||||
strb r0, [r1, #0xe]
|
||||
_080850C8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080850CC
|
||||
sub_080850CC: @ 0x080850CC
|
||||
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 _080850F0
|
||||
ldr r2, _080850F4 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _080850F8 @ =0x0000DFFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl DeleteEntity
|
||||
_080850F0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080850F4: .4byte gScreen
|
||||
_080850F8: .4byte 0x0000DFFF
|
||||
|
||||
thumb_func_start sub_080850FC
|
||||
sub_080850FC: @ 0x080850FC
|
||||
push {r4, r5, r6, lr}
|
||||
movs r1, #0x2e
|
||||
ldrsh r4, [r0, r1]
|
||||
ldr r2, _0808518C @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r4, r4, r1
|
||||
asrs r4, r4, #4
|
||||
movs r3, #0x3f
|
||||
ands r4, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r0, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r4, r1
|
||||
adds r0, #0x38
|
||||
ldrb r6, [r0]
|
||||
ldr r5, _08085190 @ =0x0000403D
|
||||
adds r1, r4, #0
|
||||
subs r1, #0x41
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r1, r4, #0
|
||||
subs r1, #0x40
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r1, r4, #0
|
||||
subs r1, #0x3f
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
subs r1, r4, #1
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r1, r4, #1
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3f
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x40
|
||||
adds r0, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
adds r4, #0x41
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808518C: .4byte gRoomControls
|
||||
_08085190: .4byte 0x0000403D
|
||||
@@ -1,224 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object1E
|
||||
Object1E: @ 0x08087504
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl EntityIsDeleted
|
||||
cmp r0, #0
|
||||
bne _08087520
|
||||
ldr r0, _08087524 @ =gUnk_081208B8
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
_08087520:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08087524: .4byte gUnk_081208B8
|
||||
|
||||
thumb_func_start sub_08087528
|
||||
sub_08087528: @ 0x08087528
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _08087590 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r2, #0x3f
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r1, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
lsrs r0, r1, #6
|
||||
subs r0, #1
|
||||
lsls r0, r0, #6
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
strb r2, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08087594
|
||||
ldrb r1, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #1
|
||||
bne _08087588
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_08087588:
|
||||
adds r0, r4, #0
|
||||
bl sub_08087640
|
||||
b _080875DC
|
||||
.align 2, 0
|
||||
_08087590: .4byte gPlayerEntity
|
||||
_08087594:
|
||||
ldr r0, _080875B4 @ =gArea
|
||||
ldrb r0, [r0, #1]
|
||||
movs r1, #4
|
||||
cmp r0, #0x10
|
||||
bne _080875A2
|
||||
movs r1, #0xb5
|
||||
lsls r1, r1, #1
|
||||
_080875A2:
|
||||
adds r0, r4, #0
|
||||
bl ChangeObjPalette
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #1
|
||||
beq _080875B8
|
||||
cmp r0, #3
|
||||
bne _080875CE
|
||||
b _080875C0
|
||||
.align 2, 0
|
||||
_080875B4: .4byte gArea
|
||||
_080875B8:
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080875C0:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x40
|
||||
bne _080875DC
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #4
|
||||
strh r0, [r4, #0x32]
|
||||
b _080875DC
|
||||
_080875CE:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x40
|
||||
bne _080875DC
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080875DC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl SetDefaultPriority
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r1, r1, #2
|
||||
ldrb r0, [r4, #0x14]
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080875F4
|
||||
sub_080875F4: @ 0x080875F4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x5a
|
||||
ldrb r1, [r5]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808760E
|
||||
bl DeleteThisEntity
|
||||
_0808760E:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08087638
|
||||
ldr r0, _0808763C @ =gPlayerEntity
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
ldrb r0, [r5]
|
||||
subs r0, #1
|
||||
subs r1, r1, r0
|
||||
adds r3, r4, #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]
|
||||
_08087638:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808763C: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08087640
|
||||
sub_08087640: @ 0x08087640
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x2e
|
||||
ldrsh r5, [r4, r0]
|
||||
movs r1, #0x32
|
||||
ldrsh r6, [r4, r1]
|
||||
ldrb r1, [r4, #0x14]
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _08087684 @ =gUnk_081208C0
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r2, [r4, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x2e]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r1, [r4, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
ldr r0, _08087688 @ =gRoomControls
|
||||
ldrh r1, [r0, #4]
|
||||
ldr r0, _0808768C @ =0x00000403
|
||||
.ifdef EU
|
||||
movs r2, #0x17
|
||||
.else
|
||||
movs r2, #0x16
|
||||
.endif
|
||||
cmp r1, r0
|
||||
bne _08087676
|
||||
.ifdef EU
|
||||
movs r2, #0x18
|
||||
.else
|
||||
movs r2, #0x17
|
||||
.endif
|
||||
_08087676:
|
||||
adds r0, r4, #0
|
||||
adds r1, r2, #0
|
||||
bl CreateRandomItemDrop
|
||||
strh r5, [r4, #0x2e]
|
||||
strh r6, [r4, #0x32]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08087684: .4byte gUnk_081208C0
|
||||
_08087688: .4byte gRoomControls
|
||||
_0808768C: .4byte 0x00000403
|
||||
@@ -1,212 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object20
|
||||
Object20: @ 0x0808780C
|
||||
push {lr}
|
||||
ldr r2, _08087820 @ =gUnk_08120A28
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08087820: .4byte gUnk_08120A28
|
||||
|
||||
thumb_func_start sub_08087824
|
||||
sub_08087824: @ 0x08087824
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08087836
|
||||
adds r0, r4, #0
|
||||
bl ResolveCollisionLayer
|
||||
_08087836:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #0x13
|
||||
strb r0, [r1]
|
||||
adds r1, #9
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
subs r1, #6
|
||||
movs r0, #0xa9
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
movs r0, #0x16
|
||||
strb r0, [r1]
|
||||
ldr r0, _08087884 @ =gUnk_08120A54
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, #0x48]
|
||||
subs r1, #5
|
||||
movs r0, #0x8b
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080878CC
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
movs r0, #0xfd
|
||||
bl EnqueueSFX
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08087884: .4byte gUnk_08120A54
|
||||
|
||||
thumb_func_start sub_08087888
|
||||
sub_08087888: @ 0x08087888
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080878A4
|
||||
bl DeleteThisEntity
|
||||
b _080878C8
|
||||
_080878A4:
|
||||
lsls r0, r1, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #4
|
||||
bhi _080878C0
|
||||
ldr r0, _080878BC @ =gUnk_08120A54
|
||||
ldrb r1, [r2]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r4, #0x48]
|
||||
b _080878C8
|
||||
.align 2, 0
|
||||
_080878BC: .4byte gUnk_08120A54
|
||||
_080878C0:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
_080878C8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080878CC
|
||||
sub_080878CC: @ 0x080878CC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x10
|
||||
adds r7, r0, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
str r0, [sp]
|
||||
movs r0, #0x32
|
||||
ldrsh r2, [r7, r0]
|
||||
str r2, [sp, #4]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
mov r8, r0
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
mov r1, r8
|
||||
lsls r1, r1, #0x18
|
||||
str r1, [sp, #8]
|
||||
_080878F8:
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
mov sb, r2
|
||||
ldr r1, [sp]
|
||||
adds r1, r1, r0
|
||||
mov sl, r1
|
||||
adds r0, #0x10
|
||||
str r0, [sp, #0xc]
|
||||
mov r6, sl
|
||||
_0808790A:
|
||||
ldr r2, _0808795C @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r0, r6, r0
|
||||
lsrs r4, r0, #4
|
||||
movs r0, #0x3f
|
||||
ands r4, r0
|
||||
ldr r5, [sp, #4]
|
||||
add r5, sb
|
||||
ldrh r0, [r2, #8]
|
||||
subs r0, r5, r0
|
||||
lsrs r0, r0, #4
|
||||
movs r1, #0x3f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
adds r0, r4, #0
|
||||
ldr r2, [sp, #8]
|
||||
lsrs r1, r2, #0x18
|
||||
bl sub_080B1AE0
|
||||
cmp r0, #0x2e
|
||||
bne _08087970
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
movs r0, #0xda
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
bhi _08087960
|
||||
subs r0, #1
|
||||
cmp r1, r0
|
||||
blo _08087960
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
adds r2, r6, #0
|
||||
adds r3, r5, #0
|
||||
bl sub_08008796
|
||||
b _0808797C
|
||||
.align 2, 0
|
||||
_0808795C: .4byte gRoomControls
|
||||
_08087960:
|
||||
ldr r0, _0808796C @ =0x00004022
|
||||
adds r1, r4, #0
|
||||
mov r2, r8
|
||||
bl SetTile
|
||||
b _0808797C
|
||||
.align 2, 0
|
||||
_0808796C: .4byte 0x00004022
|
||||
_08087970:
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
mov r2, sl
|
||||
adds r3, r5, #0
|
||||
bl sub_08008796
|
||||
_0808797C:
|
||||
movs r0, #0x10
|
||||
add sb, r0
|
||||
mov r1, sb
|
||||
cmp r1, #0x10
|
||||
ble _0808790A
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0x10
|
||||
ble _080878F8
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
@@ -1,288 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object21
|
||||
Object21: @ 0x08087998
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080879C0 @ =gUnk_08120A68
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _080879C4
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _080879EA
|
||||
.align 2, 0
|
||||
_080879C0: .4byte gUnk_08120A68
|
||||
_080879C4:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xa
|
||||
bne _080879D8
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xd
|
||||
bl InitializeAnimation
|
||||
b _080879EA
|
||||
_080879D8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080879EA
|
||||
bl DeleteThisEntity
|
||||
_080879EA:
|
||||
movs r1, #0x24
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _08087A0C
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
ldrh r1, [r4, #0x24]
|
||||
movs r2, #0x24
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0x10
|
||||
ble _08087A08
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x10
|
||||
b _08087A0A
|
||||
_08087A08:
|
||||
movs r0, #0
|
||||
_08087A0A:
|
||||
strh r0, [r4, #0x24]
|
||||
_08087A0C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08087A10
|
||||
sub_08087A10: @ 0x08087A10
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08087A26
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl ChangeObjPalette
|
||||
_08087A26:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #2
|
||||
bls _08087A3C
|
||||
ldr r0, _08087A4C @ =gUnk_08120A78
|
||||
ldrb r1, [r4, #0xa]
|
||||
subs r1, #3
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl ChangeObjPalette
|
||||
_08087A3C:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #4
|
||||
bhi _08087AF0
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087A50 @ =_08087A54
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087A4C: .4byte gUnk_08120A78
|
||||
_08087A50: .4byte _08087A54
|
||||
_08087A54: @ jump table
|
||||
.4byte _08087A76 @ case 0
|
||||
.4byte _08087AF0 @ case 1
|
||||
.4byte _08087AA0 @ case 2
|
||||
.4byte _08087A76 @ case 3
|
||||
.4byte _08087A68 @ case 4
|
||||
_08087A68:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
_08087A76:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
movs r2, #0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x45
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
subs r1, #9
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r1, #3
|
||||
movs r0, #0xaa
|
||||
strb r0, [r1]
|
||||
subs r1, #4
|
||||
movs r0, #0xe
|
||||
strb r0, [r1]
|
||||
ldr r0, _08087AE4 @ =gUnk_08120A8C
|
||||
str r0, [r4, #0x48]
|
||||
strb r2, [r4, #0x1c]
|
||||
_08087AA0:
|
||||
bl Random
|
||||
ldr r2, _08087AE8 @ =gUnk_08120A7A
|
||||
movs r3, #3
|
||||
adds r1, r0, #0
|
||||
ands r1, r3
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r4, #0xe]
|
||||
lsrs r2, r0, #8
|
||||
ands r2, r3
|
||||
movs r1, #0x10
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _08087AC0
|
||||
rsbs r2, r2, #0
|
||||
_08087AC0:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x32]
|
||||
ldr r0, _08087AEC @ =gPlayerEntity
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl InitializeAnimation
|
||||
b _08087AF8
|
||||
.align 2, 0
|
||||
_08087AE4: .4byte gUnk_08120A8C
|
||||
_08087AE8: .4byte gUnk_08120A7A
|
||||
_08087AEC: .4byte gPlayerEntity
|
||||
_08087AF0:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x10
|
||||
bl InitializeAnimation
|
||||
_08087AF8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08087AFC
|
||||
sub_08087AFC: @ 0x08087AFC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08087B56
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x16
|
||||
beq _08087B3C
|
||||
cmp r0, #0x16
|
||||
bgt _08087B1E
|
||||
cmp r0, #0x13
|
||||
beq _08087B4E
|
||||
b _08087B56
|
||||
_08087B1E:
|
||||
cmp r0, #0x1c
|
||||
bgt _08087B56
|
||||
cmp r0, #0x1b
|
||||
blt _08087B56
|
||||
ldr r1, [r4, #0x4c]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
adds r1, #0x80
|
||||
ldr r1, [r1]
|
||||
ldr r2, [r4, #0x2c]
|
||||
ldr r3, [r4, #0x30]
|
||||
bl CalculateDirectionTo
|
||||
b _08087B44
|
||||
_08087B3C:
|
||||
ldr r0, [r4, #0x4c]
|
||||
adds r1, r4, #0
|
||||
bl GetFacingDirection
|
||||
_08087B44:
|
||||
strb r0, [r4, #0x15]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
b _08087B56
|
||||
_08087B4E:
|
||||
movs r1, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0xd]
|
||||
_08087B56:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08087B58
|
||||
sub_08087B58: @ 0x08087B58
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08087B80
|
||||
ldr r0, _08087B7C @ =gUnk_08120A80
|
||||
ldrb r1, [r2, #0xd]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _08087B84
|
||||
.align 2, 0
|
||||
_08087B7C: .4byte gUnk_08120A80
|
||||
_08087B80:
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
_08087B84:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08087B88
|
||||
sub_08087B88: @ 0x08087B88
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x46
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
strh r1, [r2]
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xd]
|
||||
strb r1, [r0, #0x1d]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08087B9C
|
||||
sub_08087B9C: @ 0x08087B9C
|
||||
push {lr}
|
||||
bl sub_0806F3E4
|
||||
cmp r0, #0
|
||||
beq _08087BAA
|
||||
bl DeleteThisEntity
|
||||
_08087BAA:
|
||||
pop {pc}
|
||||
@@ -1,207 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object30
|
||||
Object30: @ 0x0808A850
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _0808A86C @ =gUnk_08121188
|
||||
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
|
||||
_0808A86C: .4byte gUnk_08121188
|
||||
|
||||
thumb_func_start sub_0808A870
|
||||
sub_0808A870: @ 0x0808A870
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
beq _0808A8BE
|
||||
cmp r0, #1
|
||||
bgt _0808A884
|
||||
cmp r0, #0
|
||||
beq _0808A896
|
||||
b _0808A8C4
|
||||
_0808A884:
|
||||
cmp r0, #3
|
||||
bgt _0808A8C4
|
||||
adds r0, r5, #0
|
||||
bl sub_0808A968
|
||||
adds r0, r5, #0
|
||||
bl sub_0808A8E0
|
||||
b _0808A8C4
|
||||
_0808A896:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
bl GetLayerByIndex
|
||||
adds r4, r0, #0
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F798
|
||||
lsls r0, r0, #1
|
||||
adds r0, #4
|
||||
adds r4, r4, r0
|
||||
str r4, [r5, #0x6c]
|
||||
ldrh r1, [r4]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
strh r1, [r0]
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
b _0808A8C4
|
||||
_0808A8BE:
|
||||
adds r0, r5, #0
|
||||
bl sub_0808A968
|
||||
_0808A8C4:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808A8C8
|
||||
sub_0808A8C8: @ 0x0808A8C8
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x68
|
||||
ldr r1, [r2, #0x6c]
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
beq _0808A8DE
|
||||
adds r0, r2, #0
|
||||
bl sub_0808A968
|
||||
_0808A8DE:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0808A8E0
|
||||
sub_0808A8E0: @ 0x0808A8E0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r2, [r4, #0xa]
|
||||
cmp r2, #0
|
||||
beq _0808A8F0
|
||||
cmp r2, #1
|
||||
beq _0808A930
|
||||
b _0808A954
|
||||
_0808A8F0:
|
||||
ldr r0, [r4, #0x70]
|
||||
cmp r0, #0
|
||||
beq _0808A930
|
||||
ldr r3, [r4, #0x20]
|
||||
cmp r3, #0
|
||||
bge _0808A926
|
||||
movs r0, #0x36
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
ble _0808A90C
|
||||
str r2, [r4, #0x70]
|
||||
b _0808A926
|
||||
_0808A90C:
|
||||
ldr r0, _0808A918 @ =0xFFFFC000
|
||||
cmp r3, r0
|
||||
bge _0808A920
|
||||
ldr r0, _0808A91C @ =0xFFFFFC00
|
||||
b _0808A924
|
||||
.align 2, 0
|
||||
_0808A918: .4byte 0xFFFFC000
|
||||
_0808A91C: .4byte 0xFFFFFC00
|
||||
_0808A920:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
_0808A924:
|
||||
str r0, [r4, #0x70]
|
||||
_0808A926:
|
||||
ldr r1, [r4, #0x70]
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
b _0808A962
|
||||
_0808A930:
|
||||
ldr r2, _0808A964 @ =gUnk_08121194
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r1, r0, #1
|
||||
strb r1, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x1b
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
strh r0, [r4, #0x36]
|
||||
adds r0, r4, #0
|
||||
bl IsCollidingPlayer
|
||||
cmp r0, #0
|
||||
beq _0808A962
|
||||
_0808A954:
|
||||
ldrb r1, [r4, #0xb]
|
||||
movs r0, #0x5c
|
||||
movs r2, #0
|
||||
bl CreateItemEntity
|
||||
bl DeleteThisEntity
|
||||
_0808A962:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808A964: .4byte gUnk_08121194
|
||||
|
||||
thumb_func_start sub_0808A968
|
||||
sub_0808A968: @ 0x0808A968
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #0x22
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #0x31
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r2, #0x13
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _0808A9C0 @ =gUnk_08121C58
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl SetDefaultPriority
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #6
|
||||
str r0, [r4, #0x70]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808A9C0: .4byte gUnk_08121C58
|
||||
@@ -1,345 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object3A
|
||||
Object3A: @ 0x0808C69C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808C6BC
|
||||
ldr r0, _0808C6B8 @ =gUnk_08121638
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _0808C6CC
|
||||
.align 2, 0
|
||||
_0808C6B8: .4byte gUnk_08121638
|
||||
_0808C6BC:
|
||||
ldr r0, _0808C6D0 @ =gUnk_08121640
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_0808C6CC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808C6D0: .4byte gUnk_08121640
|
||||
|
||||
thumb_func_start sub_0808C6D4
|
||||
sub_0808C6D4: @ 0x0808C6D4
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0808C744 @ =gUnk_081215E8
|
||||
adds r4, r0, r1
|
||||
ldrh r0, [r4, #4]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x86
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r4, #6]
|
||||
subs r1, #1
|
||||
strb r0, [r1]
|
||||
ldrh r1, [r4, #8]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
strb r1, [r0]
|
||||
ldrh r0, [r4, #0xa]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0xc]
|
||||
subs r1, #1
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0xe]
|
||||
subs r1, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _0808C748 @ =gScreen
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0xff
|
||||
lsls r0, r0, #8
|
||||
ands r0, r1
|
||||
ldrh r1, [r4, #0x10]
|
||||
orrs r0, r1
|
||||
ldrh r1, [r4, #0x12]
|
||||
bl sub_0801E1B8
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
adds r0, r5, #0
|
||||
bl sub_0808C74C
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0x3a
|
||||
movs r1, #1
|
||||
bl CreateObject
|
||||
cmp r0, #0
|
||||
beq _0808C742
|
||||
ldrh r1, [r4, #2]
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
_0808C742:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808C744: .4byte gUnk_081215E8
|
||||
_0808C748: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_0808C74C
|
||||
sub_0808C74C: @ 0x0808C74C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, [r4, #0x50]
|
||||
cmp r3, #0
|
||||
beq _0808C76C
|
||||
ldr r2, _0808C768 @ =gRoomControls
|
||||
ldrh r0, [r3, #0x2e]
|
||||
ldrh r1, [r2, #0xa]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r3, #0x32]
|
||||
ldrh r1, [r2, #0xc]
|
||||
subs r0, r0, r1
|
||||
b _0808C772
|
||||
.align 2, 0
|
||||
_0808C768: .4byte gRoomControls
|
||||
_0808C76C:
|
||||
movs r0, #0x78
|
||||
strh r0, [r4, #0x2e]
|
||||
movs r0, #0x50
|
||||
_0808C772:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x86
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
bge _0808C79C
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r4, r2]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl sub_0801E49C
|
||||
ldr r1, _0808C83C @ =gUnk_02036BB8
|
||||
movs r0, #1
|
||||
str r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0808C840
|
||||
_0808C79C:
|
||||
movs r6, #0
|
||||
ldrsh r0, [r5, r6]
|
||||
movs r2, #0xfa
|
||||
lsls r2, r2, #1
|
||||
cmp r0, r2
|
||||
ble _0808C7C2
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, #0
|
||||
bl sub_0801E49C
|
||||
ldr r1, _0808C83C @ =gUnk_02036BB8
|
||||
movs r0, #1
|
||||
str r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0808C840
|
||||
_0808C7C2:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x85
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r6, [r5]
|
||||
adds r0, r0, r6
|
||||
strh r0, [r5]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldrb r0, [r0]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0x10
|
||||
ble _0808C7E8
|
||||
movs r0, #0x10
|
||||
strb r0, [r1]
|
||||
_0808C7E8:
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
cmp r0, r2
|
||||
bge _0808C7F6
|
||||
strb r2, [r1]
|
||||
_0808C7F6:
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x83
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
ldrb r0, [r1]
|
||||
ldrb r6, [r3]
|
||||
adds r0, r0, r6
|
||||
strb r0, [r3]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
ldrb r6, [r1]
|
||||
adds r0, r0, r6
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0x10
|
||||
ble _0808C81E
|
||||
movs r0, #0x10
|
||||
strb r0, [r1]
|
||||
_0808C81E:
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, r2
|
||||
bge _0808C828
|
||||
strb r2, [r1]
|
||||
_0808C828:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r4, #0
|
||||
ldrsh r2, [r5, r4]
|
||||
ldrb r3, [r3]
|
||||
bl sub_0801E49C
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808C83C: .4byte gUnk_02036BB8
|
||||
|
||||
thumb_func_start sub_0808C840
|
||||
sub_0808C840: @ 0x0808C840
|
||||
push {lr}
|
||||
ldr r0, _0808C854 @ =gScreen
|
||||
adds r0, #0x66
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
bl sub_0801E104
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808C854: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_0808C858
|
||||
sub_0808C858: @ 0x0808C858
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r1, [r2, #0xb]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808C878
|
||||
ldr r1, _0808C870 @ =gScreen
|
||||
adds r3, r1, #0
|
||||
adds r3, #0x66
|
||||
ldr r0, _0808C874 @ =0x00003FBF
|
||||
b _0808C880
|
||||
.align 2, 0
|
||||
_0808C870: .4byte gScreen
|
||||
_0808C874: .4byte 0x00003FBF
|
||||
_0808C878:
|
||||
ldr r1, _0808C898 @ =gScreen
|
||||
adds r3, r1, #0
|
||||
adds r3, #0x66
|
||||
ldr r0, _0808C89C @ =0x00003FFF
|
||||
_0808C880:
|
||||
strh r0, [r3]
|
||||
adds r3, r1, #0
|
||||
ldrb r1, [r2, #0xb]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808C8A0
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x6a
|
||||
movs r0, #0
|
||||
b _0808C8A6
|
||||
.align 2, 0
|
||||
_0808C898: .4byte gScreen
|
||||
_0808C89C: .4byte 0x00003FFF
|
||||
_0808C8A0:
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x6a
|
||||
movs r0, #0x10
|
||||
_0808C8A6:
|
||||
strh r0, [r1]
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x68
|
||||
adds r0, #0xff
|
||||
strh r0, [r1]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808C8B8
|
||||
sub_0808C8B8: @ 0x0808C8B8
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x68
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x6a
|
||||
ldrh r0, [r2]
|
||||
ldrh r1, [r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bge _0808C8D6
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
_0808C8D6:
|
||||
ldrb r1, [r3, #0xb]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808C8F8
|
||||
ldr r0, _0808C8F4 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x14
|
||||
movs r2, #0x10
|
||||
subs r2, r2, r1
|
||||
adds r0, #0x6a
|
||||
strh r2, [r0]
|
||||
b _0808C904
|
||||
.align 2, 0
|
||||
_0808C8F4: .4byte gScreen
|
||||
_0808C8F8:
|
||||
ldr r1, _0808C918 @ =gScreen
|
||||
ldrh r0, [r2]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x14
|
||||
adds r1, #0x6a
|
||||
strh r0, [r1]
|
||||
_0808C904:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x68
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
bne _0808C914
|
||||
bl DeleteThisEntity
|
||||
_0808C914:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808C918: .4byte gScreen
|
||||
@@ -1,245 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object3D
|
||||
Object3D: @ 0x0808CEF0
|
||||
push {lr}
|
||||
ldr r2, _0808CF04 @ =gUnk_081216BC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808CF04: .4byte gUnk_081216BC
|
||||
|
||||
thumb_func_start sub_0808CF08
|
||||
sub_0808CF08: @ 0x0808CF08
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0808CF50 @ =gArea
|
||||
ldr r3, _0808CF54 @ =gRoomControls
|
||||
ldrh r0, [r2, #0x12]
|
||||
ldrh r1, [r3, #0xa]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r2, #0x14]
|
||||
ldrh r1, [r3, #0xc]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x68
|
||||
movs r0, #0x80
|
||||
strh r0, [r5]
|
||||
ldrb r1, [r4, #0x11]
|
||||
subs r0, #0x90
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x11]
|
||||
ldr r0, _0808CF58 @ =0x00001F17
|
||||
movs r1, #0
|
||||
bl sub_0801E1B8
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
ldrh r2, [r5]
|
||||
bl sub_0801E1EC
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808CF50: .4byte gArea
|
||||
_0808CF54: .4byte gRoomControls
|
||||
_0808CF58: .4byte 0x00001F17
|
||||
|
||||
thumb_func_start sub_0808CF5C
|
||||
sub_0808CF5C: @ 0x0808CF5C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x68
|
||||
ldrh r0, [r2]
|
||||
subs r0, #2
|
||||
strh r0, [r2]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x14
|
||||
bls _0808CF82
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r5, r3]
|
||||
ldrh r2, [r2]
|
||||
bl sub_0801E1EC
|
||||
b _0808D01E
|
||||
_0808CF82:
|
||||
ldr r0, _0808D020 @ =gScreen
|
||||
adds r0, #0x62
|
||||
movs r1, #0x10
|
||||
strh r1, [r0]
|
||||
bl sub_0808D030
|
||||
movs r0, #0
|
||||
bl ResetPaletteTable
|
||||
bl ResetPalettes
|
||||
ldr r0, _0808D024 @ =gGFXSlots
|
||||
movs r6, #1
|
||||
strb r6, [r0]
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r4, r0, #1
|
||||
adds r4, r4, r0
|
||||
lsls r4, r4, #1
|
||||
ldr r0, _0808D028 @ =gUnk_081216C8
|
||||
adds r4, r4, r0
|
||||
ldrh r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
ldrh r1, [r4, #2]
|
||||
adds r0, r5, #0
|
||||
bl LoadObjPalette
|
||||
ldrh r0, [r4, #4]
|
||||
strh r0, [r5, #0x12]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #2
|
||||
bne _0808CFC6
|
||||
strb r0, [r5, #0x1e]
|
||||
_0808CFC6:
|
||||
movs r2, #2
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x18]
|
||||
ldrb r2, [r5, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
strb r0, [r5, #0x1b]
|
||||
ldrb r0, [r5, #0x19]
|
||||
ands r1, r0
|
||||
strb r1, [r5, #0x19]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r5, #0xe]
|
||||
movs r0, #0xff
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r0, [r5, #0x19]
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x19]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #1
|
||||
adds r0, r5, #0
|
||||
adds r1, r2, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
ldr r0, _0808D02C @ =gArea
|
||||
strh r6, [r0, #0x10]
|
||||
movs r0, #5
|
||||
movs r1, #8
|
||||
bl SetFade
|
||||
_0808D01E:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808D020: .4byte gScreen
|
||||
_0808D024: .4byte gGFXSlots
|
||||
_0808D028: .4byte gUnk_081216C8
|
||||
_0808D02C: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0808D030
|
||||
sub_0808D030: @ 0x0808D030
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _0808D058 @ =gUnk_03000020
|
||||
movs r5, #0x80
|
||||
adds r0, r4, #0
|
||||
subs r0, #0x20
|
||||
ldr r1, _0808D05C @ =0x00000B74
|
||||
bl MemClear
|
||||
movs r1, #0xa8
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
_0808D046:
|
||||
strh r0, [r4]
|
||||
adds r4, #8
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0808D046
|
||||
ldr r1, _0808D060 @ =gOAMControls
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808D058: .4byte gUnk_03000020
|
||||
_0808D05C: .4byte 0x00000B74
|
||||
_0808D060: .4byte gOAMControls
|
||||
|
||||
thumb_func_start sub_0808D064
|
||||
sub_0808D064: @ 0x0808D064
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xff
|
||||
strb r1, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
beq _0808D0B4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrh r3, [r0]
|
||||
adds r1, r3, #0
|
||||
adds r2, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0808D08C
|
||||
subs r0, r3, #2
|
||||
strh r0, [r2]
|
||||
b _0808D08E
|
||||
_0808D08C:
|
||||
strh r1, [r2]
|
||||
_0808D08E:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r4, r3]
|
||||
ldrh r2, [r2]
|
||||
bl sub_0801E1EC
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0x80
|
||||
bls _0808D0A6
|
||||
subs r0, #8
|
||||
strb r0, [r4, #0xf]
|
||||
_0808D0A6:
|
||||
ldrb r2, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
adds r1, r2, #0
|
||||
movs r3, #0
|
||||
bl sub_0805EC9C
|
||||
b _0808D0C2
|
||||
_0808D0B4:
|
||||
ldr r1, _0808D0C4 @ =gArea
|
||||
ldrb r0, [r1, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
strh r2, [r1, #0x10]
|
||||
bl DeleteThisEntity
|
||||
_0808D0C2:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808D0C4: .4byte gArea
|
||||
@@ -1,184 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object42
|
||||
Object42: @ 0x0808DD7C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0808DD9C
|
||||
ldr r0, _0808DD98 @ =gUnk_081217B0
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _0808DDAC
|
||||
.align 2, 0
|
||||
_0808DD98: .4byte gUnk_081217B0
|
||||
_0808DD9C:
|
||||
ldr r0, _0808DDB0 @ =gUnk_081217A8
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_0808DDAC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808DDB0: .4byte gUnk_081217A8
|
||||
|
||||
thumb_func_start sub_0808DDB4
|
||||
sub_0808DDB4: @ 0x0808DDB4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0808DDDC
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6c
|
||||
movs r0, #0xf0
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_0808DDE8
|
||||
_0808DDDC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808DDE0
|
||||
sub_0808DDE0: @ 0x0808DDE0
|
||||
push {lr}
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0808DDE8
|
||||
sub_0808DDE8: @ 0x0808DDE8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x6c
|
||||
ldrh r0, [r4]
|
||||
subs r0, #1
|
||||
strh r0, [r4]
|
||||
bl sub_0807953C
|
||||
cmp r0, #0
|
||||
beq _0808DE04
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
_0808DE04:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x1e
|
||||
bhi _0808DE1C
|
||||
ldr r0, _0808DE8C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
ldr r1, _0808DE90 @ =0x00001810
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0808DE1C
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #0
|
||||
bne _0808DE2A
|
||||
_0808DE1C:
|
||||
ldr r0, _0808DE8C @ =gPlayerState
|
||||
ldr r1, [r0, #0x30]
|
||||
ldr r2, _0808DE94 @ =0xFFFFFBFF
|
||||
ands r1, r2
|
||||
str r1, [r0, #0x30]
|
||||
bl DeleteThisEntity
|
||||
_0808DE2A:
|
||||
ldr r3, _0808DE98 @ =gPlayerEntity
|
||||
ldr r1, _0808DE9C @ =gUnk_081217B8
|
||||
ldrb r0, [r3, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r3, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r5, #0x2e]
|
||||
ldrh r0, [r3, #0x32]
|
||||
subs r0, #6
|
||||
strh r0, [r5, #0x32]
|
||||
ldr r0, [r3, #0x34]
|
||||
str r0, [r5, #0x34]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldrb r2, [r3, #0x19]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r4, [r5, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r4
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x19]
|
||||
ldrb r0, [r3, #0x1b]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r5, #0x1b]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #0x1b]
|
||||
ldr r0, _0808DE8C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808DEA0
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
b _0808DEA4
|
||||
.align 2, 0
|
||||
_0808DE8C: .4byte gPlayerState
|
||||
_0808DE90: .4byte 0x00001810
|
||||
_0808DE94: .4byte 0xFFFFFBFF
|
||||
_0808DE98: .4byte gPlayerEntity
|
||||
_0808DE9C: .4byte gUnk_081217B8
|
||||
_0808DEA0:
|
||||
bl DeleteThisEntity
|
||||
_0808DEA4:
|
||||
ldr r1, _0808DEC0 @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
cmp r0, #2
|
||||
bne _0808DEC4
|
||||
adds r0, r1, #0
|
||||
movs r1, #3
|
||||
adds r2, r5, #0
|
||||
bl sub_0806FEBC
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, #5
|
||||
strh r0, [r5, #0x32]
|
||||
b _0808DECE
|
||||
.align 2, 0
|
||||
_0808DEC0: .4byte gPlayerEntity
|
||||
_0808DEC4:
|
||||
adds r0, r1, #0
|
||||
movs r1, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_0806FEBC
|
||||
_0808DECE:
|
||||
pop {r4, r5, pc}
|
||||
@@ -1,267 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object4B
|
||||
Object4B: @ 0x0808F77C
|
||||
push {lr}
|
||||
ldr r2, _0808F790 @ =gUnk_08121EB8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808F790: .4byte gUnk_08121EB8
|
||||
|
||||
thumb_func_start sub_0808F794
|
||||
sub_0808F794: @ 0x0808F794
|
||||
push {lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
movs r1, #0x3c
|
||||
strb r1, [r0, #0xe]
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808F7A8
|
||||
sub_0808F7A8: @ 0x0808F7A8
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0808F7D0
|
||||
movs r0, #0x78
|
||||
strb r0, [r2, #0xe]
|
||||
ldrb r0, [r2, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
ldrb r1, [r2, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x18]
|
||||
_0808F7D0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808F7D4
|
||||
sub_0808F7D4: @ 0x0808F7D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F80A
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
_0808F80A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0808F80C
|
||||
sub_0808F80C: @ 0x0808F80C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0808F850
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0x15]
|
||||
movs r2, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
strb r2, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
ldr r0, _0808F854 @ =0x0000012B
|
||||
bl SoundReq
|
||||
_0808F850:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808F854: .4byte 0x0000012B
|
||||
|
||||
thumb_func_start sub_0808F858
|
||||
sub_0808F858: @ 0x0808F858
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F884
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #6
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
cmp r0, #0
|
||||
bne _0808F88A
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
b _0808F88A
|
||||
_0808F884:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0808F88A:
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _0808F8C4 @ =gRoomControls
|
||||
ldrh r2, [r1, #8]
|
||||
subs r0, r0, r2
|
||||
movs r1, #0x8c
|
||||
lsls r1, r1, #2
|
||||
cmp r0, r1
|
||||
bgt _0808F8C8
|
||||
adds r0, r2, r1
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F8EA
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
b _0808F8EA
|
||||
.align 2, 0
|
||||
_0808F8C4: .4byte gRoomControls
|
||||
_0808F8C8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F8EA
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
ldr r0, _0808F8EC @ =0x0000012B
|
||||
bl SoundReq
|
||||
_0808F8EA:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808F8EC: .4byte 0x0000012B
|
||||
|
||||
thumb_func_start sub_0808F8F0
|
||||
sub_0808F8F0: @ 0x0808F8F0
|
||||
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 _0808F912
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
movs r1, #5
|
||||
bl InitializeAnimation
|
||||
_0808F912:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0808F914
|
||||
sub_0808F914: @ 0x0808F914
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F93C
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_0808F93C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808F940
|
||||
sub_0808F940: @ 0x0808F940
|
||||
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 _0808F960
|
||||
ldr r1, _0808F964 @ =gMenu
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
bl DeleteThisEntity
|
||||
_0808F960:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808F964: .4byte gMenu
|
||||
@@ -1,157 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object5B
|
||||
Object5B: @ 0x0809288C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080928B0
|
||||
ldr r0, _080928AC @ =gUnk_0812279C
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _080928C0
|
||||
.align 2, 0
|
||||
_080928AC: .4byte gUnk_0812279C
|
||||
_080928B0:
|
||||
ldr r0, _080928C4 @ =gUnk_08122794
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_080928C0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080928C4: .4byte gUnk_08122794
|
||||
|
||||
thumb_func_start sub_080928C8
|
||||
sub_080928C8: @ 0x080928C8
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r3, #0xc]
|
||||
ldrb r1, [r3, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x18]
|
||||
ldrb r0, [r3, #0xa]
|
||||
strb r0, [r3, #0x1e]
|
||||
ldrb r0, [r3, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r1, [r3, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1b]
|
||||
ldrb r0, [r3, #0xa]
|
||||
cmp r0, #2
|
||||
beq _08092912
|
||||
cmp r0, #4
|
||||
beq _08092920
|
||||
b _08092928
|
||||
_08092912:
|
||||
adds r0, r3, #0
|
||||
movs r1, #0x5b
|
||||
movs r2, #4
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
b _08092928
|
||||
_08092920:
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08092928:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_119
|
||||
nullsub_119: @ 0x0809292C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08092930
|
||||
sub_08092930: @ 0x08092930
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080928C8
|
||||
adds r4, #0x82
|
||||
movs r0, #0
|
||||
strh r0, [r4]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08092940
|
||||
sub_08092940: @ 0x08092940
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x84
|
||||
ldr r1, [r5]
|
||||
bl ExecuteScript
|
||||
ldr r1, [r5]
|
||||
adds r0, r4, #0
|
||||
bl sub_08092958
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08092958
|
||||
sub_08092958: @ 0x08092958
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
adds r2, r1, #0
|
||||
ldr r0, [r2, #8]
|
||||
cmp r0, #0
|
||||
beq _0809298A
|
||||
movs r4, #0
|
||||
_08092966:
|
||||
ldr r1, [r2, #8]
|
||||
mvns r0, r1
|
||||
adds r0, #1
|
||||
ands r0, r1
|
||||
eors r1, r0
|
||||
str r1, [r2, #8]
|
||||
cmp r0, #1
|
||||
beq _0809297C
|
||||
cmp r0, #2
|
||||
beq _08092980
|
||||
b _08092984
|
||||
_0809297C:
|
||||
strb r4, [r3, #0x1e]
|
||||
b _08092984
|
||||
_08092980:
|
||||
ldr r0, [r2, #4]
|
||||
strb r0, [r3, #0x1e]
|
||||
_08092984:
|
||||
ldr r0, [r2, #8]
|
||||
cmp r0, #0
|
||||
bne _08092966
|
||||
_0809298A:
|
||||
pop {r4, pc}
|
||||
@@ -1,214 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object64
|
||||
Object64: @ 0x08093E24
|
||||
push {lr}
|
||||
ldr r2, _08093E38 @ =gUnk_0812295C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08093E38: .4byte gUnk_0812295C
|
||||
|
||||
thumb_func_start sub_08093E3C
|
||||
sub_08093E3C: @ 0x08093E3C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08093E6A
|
||||
adds r0, r4, #0
|
||||
bl ResolveCollisionLayer
|
||||
_08093E6A:
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08093EA8 @ =gUnk_08122950
|
||||
adds r2, r0, r1
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _08093E90
|
||||
ldrb r1, [r4, #0xb]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08093E90
|
||||
ldrh r0, [r2]
|
||||
bl EnqueueSFX
|
||||
_08093E90:
|
||||
ldrb r1, [r4, #0xb]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093EA6
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x19]
|
||||
_08093EA6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08093EA8: .4byte gUnk_08122950
|
||||
|
||||
thumb_func_start sub_08093EAC
|
||||
sub_08093EAC: @ 0x08093EAC
|
||||
push {lr}
|
||||
ldr r3, _08093EC8 @ =gUnk_08122964
|
||||
ldr r2, _08093ECC @ =gUnk_08122950
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1, #2]
|
||||
lsrs r1, r1, #4
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r3
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08093EC8: .4byte gUnk_08122964
|
||||
_08093ECC: .4byte gUnk_08122950
|
||||
|
||||
thumb_func_start sub_08093ED0
|
||||
sub_08093ED0: @ 0x08093ED0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093EEC
|
||||
adds r0, r4, #0
|
||||
bl DeleteEntity
|
||||
_08093EEC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08093EF0
|
||||
sub_08093EF0: @ 0x08093EF0
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r4, [r5, #0xa]
|
||||
cmp r4, #1
|
||||
beq _08093F40
|
||||
cmp r4, #1
|
||||
bgt _08093F04
|
||||
cmp r4, #0
|
||||
beq _08093F0A
|
||||
b _08093FB0
|
||||
_08093F04:
|
||||
cmp r4, #2
|
||||
beq _08093F98
|
||||
b _08093FB0
|
||||
_08093F0A:
|
||||
ldrb r0, [r5, #0xd]
|
||||
cmp r0, #0
|
||||
bne _08093FB0
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093FB0
|
||||
movs r0, #0x64
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08093F8E
|
||||
ldr r0, [r5, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r0, r5, #0
|
||||
bl CopyPosition
|
||||
b _08093F8E
|
||||
_08093F40:
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x5a
|
||||
ldrb r0, [r1]
|
||||
ands r4, r0
|
||||
adds r6, r1, #0
|
||||
cmp r4, #0
|
||||
beq _08093F72
|
||||
movs r0, #0
|
||||
strb r0, [r6]
|
||||
movs r0, #0x64
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08093F72
|
||||
ldr r0, [r5, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r0, r5, #0
|
||||
bl CopyPosition
|
||||
_08093F72:
|
||||
ldrb r1, [r6]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093FB0
|
||||
ldr r1, [r5, #0x50]
|
||||
ldr r0, _08093F94 @ =gPlayerEntity
|
||||
cmp r1, r0
|
||||
bne _08093F8E
|
||||
movs r0, #0x7a
|
||||
bl SoundReq
|
||||
bl sub_08079D84
|
||||
_08093F8E:
|
||||
bl DeleteThisEntity
|
||||
b _08093FB0
|
||||
.align 2, 0
|
||||
_08093F94: .4byte gPlayerEntity
|
||||
_08093F98:
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08093FB0
|
||||
bl DeleteThisEntity
|
||||
_08093FB0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
@@ -1,198 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object70
|
||||
Object70: @ 0x08097420
|
||||
push {lr}
|
||||
ldr r2, _08097434 @ =gUnk_081232A4
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08097434: .4byte gUnk_081232A4
|
||||
|
||||
thumb_func_start sub_08097438
|
||||
sub_08097438: @ 0x08097438
|
||||
push {r4, lr}
|
||||
adds r4, r0, #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]
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xb
|
||||
strb r1, [r4, #0x1e]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _080974A2
|
||||
adds r0, r4, #0
|
||||
bl sub_08004168
|
||||
ldr r1, _08097494 @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0x1b]
|
||||
movs r2, #0xc0
|
||||
orrs r0, r2
|
||||
strb r0, [r1, #0x1b]
|
||||
adds r1, #0x29
|
||||
ldrb r1, [r1]
|
||||
movs r2, #7
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #7
|
||||
beq _08097498
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
adds r1, #1
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ands r1, r2
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
b _080974A2
|
||||
.align 2, 0
|
||||
_08097494: .4byte gPlayerEntity
|
||||
_08097498:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x29
|
||||
ldrb r0, [r1]
|
||||
orrs r0, r2
|
||||
strb r0, [r1]
|
||||
_080974A2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080974A4
|
||||
sub_080974A4: @ 0x080974A4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08097554
|
||||
ldr r3, _08097540 @ =gPlayerEntity
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
bne _080974E8
|
||||
ldr r2, _08097544 @ =gPlayerState
|
||||
ldrb r1, [r2, #0x1e]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080974D6
|
||||
ldrb r0, [r2, #0x12]
|
||||
cmp r0, #0x11
|
||||
bne _080974D6
|
||||
ldrb r0, [r3, #0xc]
|
||||
cmp r0, #1
|
||||
beq _080974FA
|
||||
cmp r0, #0x18
|
||||
beq _080974FA
|
||||
cmp r0, #4
|
||||
beq _080974FA
|
||||
_080974D6:
|
||||
ldr r1, _08097540 @ =gPlayerEntity
|
||||
ldr r0, [r1, #0x34]
|
||||
cmp r0, #0
|
||||
bne _080974E8
|
||||
adds r0, r1, #0
|
||||
movs r1, #0x52
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_080974E8:
|
||||
ldr r2, _08097540 @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1b]
|
||||
bl DeleteThisEntity
|
||||
_080974FA:
|
||||
ldr r2, _08097540 @ =gPlayerEntity
|
||||
ldr r0, [r2, #0x2c]
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, [r2, #0x30]
|
||||
str r0, [r4, #0x30]
|
||||
ldr r0, _08097544 @ =gPlayerState
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #0
|
||||
bne _08097584
|
||||
ldrb r0, [r2, #0x1b]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1b]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
movs r2, #7
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #7
|
||||
beq _08097548
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
adds r1, #1
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ands r1, r2
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
b _08097584
|
||||
.align 2, 0
|
||||
_08097540: .4byte gPlayerEntity
|
||||
_08097544: .4byte gPlayerState
|
||||
_08097548:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x29
|
||||
ldrb r0, [r1]
|
||||
orrs r0, r2
|
||||
strb r0, [r1]
|
||||
b _08097584
|
||||
_08097554:
|
||||
ldr r2, _08097570 @ =gPlayerEntity
|
||||
ldrb r0, [r2, #0xc]
|
||||
cmp r0, #0x1e
|
||||
beq _08097584
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _08097574
|
||||
ldrb r0, [r2, #0x1b]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x80
|
||||
b _0809757C
|
||||
.align 2, 0
|
||||
_08097570: .4byte gPlayerEntity
|
||||
_08097574:
|
||||
ldrb r0, [r2, #0x1b]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
_0809757C:
|
||||
orrs r1, r0
|
||||
strb r1, [r2, #0x1b]
|
||||
bl DeleteThisEntity
|
||||
_08097584:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,277 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object74
|
||||
Object74: @ 0x08097B6C
|
||||
push {lr}
|
||||
ldr r2, _08097B80 @ =gUnk_08123330
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08097B80: .4byte gUnk_08123330
|
||||
|
||||
thumb_func_start sub_08097B84
|
||||
sub_08097B84: @ 0x08097B84
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08097BCC @ =gUnk_08123328
|
||||
str r0, [r4, #0x48]
|
||||
adds r2, #0x5d
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08097BD0 @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
beq _08097BB0
|
||||
adds r0, r1, #0
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08097BD4
|
||||
_08097BB0:
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CFC
|
||||
b _08097BD8
|
||||
.align 2, 0
|
||||
_08097BCC: .4byte gUnk_08123328
|
||||
_08097BD0: .4byte 0x0000FFFF
|
||||
_08097BD4:
|
||||
bl sub_0805BC4C
|
||||
_08097BD8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097BDC
|
||||
sub_08097BDC: @ 0x08097BDC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08097C10
|
||||
movs r0, #1
|
||||
bl SetPlayerControl
|
||||
ldr r0, _08097C14 @ =gUnk_02034490
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1e
|
||||
bl RequestPriorityDuration
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CB0
|
||||
cmp r0, #0
|
||||
bne _08097C10
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CB4
|
||||
_08097C10:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08097C14: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_08097C18
|
||||
sub_08097C18: @ 0x08097C18
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097C1C
|
||||
sub_08097C1C: @ 0x08097C1C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097C20
|
||||
sub_08097C20: @ 0x08097C20
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x1e
|
||||
bl SetPriorityTimer
|
||||
adds r0, r4, #0
|
||||
bl sub_0800445C
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl CreateMagicSparkles
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r1, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0
|
||||
bne _08097CA6
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r1, r0
|
||||
ldr r6, _08097CA8 @ =gScreen
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #8
|
||||
orrs r0, r1
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x68
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x10
|
||||
bne _08097CA6
|
||||
movs r0, #0
|
||||
bl SetPlayerControl
|
||||
ldr r1, _08097CAC @ =gUnk_02034490
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x66
|
||||
strh r5, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CFC
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x19]
|
||||
subs r0, #0x11
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
movs r0, #0x72
|
||||
bl SoundReq
|
||||
movs r0, #0x63
|
||||
bl SetGlobalFlag
|
||||
_08097CA6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08097CA8: .4byte gScreen
|
||||
_08097CAC: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_08097CB0
|
||||
sub_08097CB0: @ 0x08097CB0
|
||||
movs r0, #0
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_08097CB4
|
||||
sub_08097CB4: @ 0x08097CB4
|
||||
push {lr}
|
||||
movs r3, #0
|
||||
movs r1, #3
|
||||
strb r1, [r0, #0xc]
|
||||
ldrb r2, [r0, #0x18]
|
||||
subs r1, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x18]
|
||||
ldrb r2, [r0, #0x19]
|
||||
movs r1, #0xd
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
movs r2, #4
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x19]
|
||||
movs r1, #0x1e
|
||||
strb r1, [r0, #0xe]
|
||||
strb r3, [r0, #0xf]
|
||||
ldr r1, _08097CF8 @ =gScreen
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0xf4
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r2]
|
||||
adds r1, #0x68
|
||||
adds r0, #0xc0
|
||||
strh r0, [r1]
|
||||
movs r0, #0xa5
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08097CF8: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_08097CFC
|
||||
sub_08097CFC: @ 0x08097CFC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrh r1, [r5, #0x2e]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08097D40
|
||||
ldr r0, _08097D38 @ =gUnk_0812336A
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08097D3C @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0801AF18
|
||||
b _08097D6C
|
||||
.align 2, 0
|
||||
_08097D38: .4byte gUnk_0812336A
|
||||
_08097D3C: .4byte gRoomControls
|
||||
_08097D40:
|
||||
ldr r0, _08097D70 @ =gUnk_08123344
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08097D74 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0801AF18
|
||||
_08097D6C:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08097D70: .4byte gUnk_08123344
|
||||
_08097D74: .4byte gRoomControls
|
||||
@@ -1,304 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectB
|
||||
ObjectB: @ 0x08083B88
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _08083BDC @ =gUnk_0811F7D8
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
lsrs r1, r1, #6
|
||||
movs r0, #1
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_08080CB4
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r2, #0x3f
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
ldrb r0, [r4, #0x19]
|
||||
ands r2, r0
|
||||
strb r2, [r4, #0x19]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08083BDC: .4byte gUnk_0811F7D8
|
||||
|
||||
thumb_func_start sub_08083BE0
|
||||
sub_08083BE0: @ 0x08083BE0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #6
|
||||
bl SetDefaultPriority
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08083BF0
|
||||
sub_08083BF0: @ 0x08083BF0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x41
|
||||
bne _08083C98
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #5
|
||||
bhi _08083C98
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08083C14 @ =_08083C18
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08083C14: .4byte _08083C18
|
||||
_08083C18: @ jump table
|
||||
.4byte _08083C30 @ case 0
|
||||
.4byte _08083C30 @ case 1
|
||||
.4byte _08083C4A @ case 2
|
||||
.4byte _08083C98 @ case 3
|
||||
.4byte _08083C98 @ case 4
|
||||
.4byte _08083C74 @ case 5
|
||||
_08083C30:
|
||||
ldrb r0, [r4, #0xa]
|
||||
ldrb r1, [r4, #0xb]
|
||||
bl GiveItem
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x43
|
||||
bgt _08083C62
|
||||
cmp r0, #0x40
|
||||
bge _08083C98
|
||||
b _08083C62
|
||||
_08083C4A:
|
||||
ldrb r0, [r4, #0xa]
|
||||
ldrb r1, [r4, #0xb]
|
||||
bl GiveItem
|
||||
ldr r1, _08083C6C @ =gUnk_080FD964
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0, #6]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
strh r1, [r0]
|
||||
_08083C62:
|
||||
ldr r0, _08083C70 @ =0x00000109
|
||||
bl SoundReq
|
||||
b _08083C98
|
||||
.align 2, 0
|
||||
_08083C6C: .4byte gUnk_080FD964
|
||||
_08083C70: .4byte 0x00000109
|
||||
_08083C74:
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl GetInventoryValue
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #3
|
||||
ldr r2, _08083C8C @ =gItemMetaData
|
||||
adds r1, r1, r2
|
||||
cmp r0, #0
|
||||
bne _08083C90
|
||||
ldrh r1, [r1, #4]
|
||||
b _08083C92
|
||||
.align 2, 0
|
||||
_08083C8C: .4byte gItemMetaData
|
||||
_08083C90:
|
||||
ldrh r1, [r1, #6]
|
||||
_08083C92:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
strh r1, [r0]
|
||||
_08083C98:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08083C9C
|
||||
sub_08083C9C: @ 0x08083C9C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x42
|
||||
bne _08083D22
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #5
|
||||
bhi _08083D22
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08083CC0 @ =_08083CC4
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08083CC0: .4byte _08083CC4
|
||||
_08083CC4: @ jump table
|
||||
.4byte _08083CDC @ case 0
|
||||
.4byte _08083D22 @ case 1
|
||||
.4byte _08083CDC @ case 2
|
||||
.4byte _08083D22 @ case 3
|
||||
.4byte _08083D22 @ case 4
|
||||
.4byte _08083CDC @ case 5
|
||||
_08083CDC:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrh r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08083D22
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x3f
|
||||
beq _08083D00
|
||||
cmp r0, #0x63
|
||||
bne _08083D16
|
||||
ldr r0, _08083CFC @ =gSave
|
||||
adds r0, #0xa9
|
||||
ldrb r0, [r0]
|
||||
adds r1, r1, r0
|
||||
b _08083D16
|
||||
.align 2, 0
|
||||
_08083CFC: .4byte gSave
|
||||
_08083D00:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
bls _08083D16
|
||||
ldr r0, _08083D10 @ =0x00000577
|
||||
cmp r1, r0
|
||||
bne _08083D14
|
||||
subs r1, #1
|
||||
b _08083D16
|
||||
.align 2, 0
|
||||
_08083D10: .4byte 0x00000577
|
||||
_08083D14:
|
||||
adds r1, #1
|
||||
_08083D16:
|
||||
adds r0, r1, #0
|
||||
bl MessageFromTarget
|
||||
ldr r1, _08083D24 @ =gMessage
|
||||
ldrb r0, [r4, #0xb]
|
||||
str r0, [r1, #0x10]
|
||||
_08083D22:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08083D24: .4byte gMessage
|
||||
|
||||
thumb_func_start sub_08083D28
|
||||
sub_08083D28: @ 0x08083D28
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #8
|
||||
beq _08083DD4
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #5
|
||||
bhi _08083DD0
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08083D44 @ =_08083D48
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08083D44: .4byte _08083D48
|
||||
_08083D48: @ jump table
|
||||
.4byte _08083D60 @ case 0
|
||||
.4byte _08083D60 @ case 1
|
||||
.4byte _08083D60 @ case 2
|
||||
.4byte _08083DAC @ case 3
|
||||
.4byte _08083DD0 @ case 4
|
||||
.4byte _08083DD0 @ case 5
|
||||
_08083D60:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x62
|
||||
beq _08083D88
|
||||
cmp r0, #0x63
|
||||
bne _08083DD0
|
||||
movs r0, #0xa0
|
||||
bl ModHealth
|
||||
ldr r0, _08083DA8 @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xa9
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bls _08083DD0
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
_08083D88:
|
||||
ldr r0, _08083DA8 @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xab
|
||||
ldrb r0, [r1]
|
||||
adds r0, #8
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xa0
|
||||
bls _08083DA0
|
||||
movs r0, #0xa0
|
||||
strb r0, [r1]
|
||||
_08083DA0:
|
||||
movs r0, #0xa0
|
||||
bl ModHealth
|
||||
b _08083DD0
|
||||
.align 2, 0
|
||||
_08083DA8: .4byte gSave
|
||||
_08083DAC:
|
||||
ldrb r0, [r4, #0xa]
|
||||
bl GetBottleContaining
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08083DC8
|
||||
ldr r0, _08083DC4 @ =gSave
|
||||
adds r0, r0, r1
|
||||
adds r0, #0xb5
|
||||
movs r1, #0x20
|
||||
strb r1, [r0]
|
||||
b _08083DD0
|
||||
.align 2, 0
|
||||
_08083DC4: .4byte gSave
|
||||
_08083DC8:
|
||||
ldrb r0, [r4, #0xa]
|
||||
movs r1, #2
|
||||
bl SetInventoryValue
|
||||
_08083DD0:
|
||||
bl DeleteThisEntity
|
||||
_08083DD4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,197 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectB3
|
||||
ObjectB3: @ 0x080A0A34
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _080A0A44
|
||||
cmp r0, #1
|
||||
beq _080A0A5C
|
||||
b _080A0A5E
|
||||
_080A0A44:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
ldr r1, _080A0A54 @ =gUnk_08124A18
|
||||
cmp r0, #0
|
||||
beq _080A0A5E
|
||||
ldr r1, _080A0A58 @ =gUnk_08124A10
|
||||
b _080A0A5E
|
||||
.align 2, 0
|
||||
_080A0A54: .4byte gUnk_08124A18
|
||||
_080A0A58: .4byte gUnk_08124A10
|
||||
_080A0A5C:
|
||||
ldr r1, _080A0AB8 @ =gUnk_08124A20
|
||||
_080A0A5E:
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080A0AB0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r2, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r3, #0x40
|
||||
orrs r0, r3
|
||||
strb r0, [r4, #0x19]
|
||||
movs r0, #0x29
|
||||
adds r0, r0, r4
|
||||
mov ip, r0
|
||||
ldrb r2, [r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
mov r2, ip
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r4, #0x1b]
|
||||
ands r1, r0
|
||||
orrs r1, r3
|
||||
strb r1, [r4, #0x1b]
|
||||
ldr r1, _080A0ABC @ =gUnk_080C9CBC
|
||||
ldr r0, _080A0AC0 @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl ChangeObjPalette
|
||||
_080A0AB0:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A0AB8: .4byte gUnk_08124A20
|
||||
_080A0ABC: .4byte gUnk_080C9CBC
|
||||
_080A0AC0: .4byte gFuseInfo
|
||||
|
||||
thumb_func_start sub_080A0AC4
|
||||
sub_080A0AC4: @ 0x080A0AC4
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xa]
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0AD0
|
||||
sub_080A0AD0: @ 0x080A0AD0
|
||||
push {lr}
|
||||
movs r1, #0x80
|
||||
bl GravityUpdate
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0ADC
|
||||
sub_080A0ADC: @ 0x080A0ADC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0807DD64
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl ExecuteScriptForEntity
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0AF0
|
||||
sub_080A0AF0: @ 0x080A0AF0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
bl ExecuteScriptForEntity
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #5
|
||||
bne _080A0B1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A0B1C
|
||||
bl DeleteThisEntity
|
||||
_080A0B1C:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x80
|
||||
bl GravityUpdate
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0B28
|
||||
sub_080A0B28: @ 0x080A0B28
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x2e
|
||||
ldrsh r2, [r4, r0]
|
||||
movs r0, #0x32
|
||||
ldrsh r3, [r4, r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DEDC
|
||||
ldrh r0, [r4, #0x32]
|
||||
subs r0, #0xb0
|
||||
strh r0, [r4, #0x32]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A0B4C
|
||||
sub_080A0B4C: @ 0x080A0B4C
|
||||
push {lr}
|
||||
movs r1, #0x78
|
||||
strh r1, [r0, #0x2e]
|
||||
movs r1, #0x50
|
||||
strh r1, [r0, #0x32]
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0B60
|
||||
sub_080A0B60: @ 0x080A0B60
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A0B7C
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xc]
|
||||
movs r0, #0x9b
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_080A0B7C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A0B80
|
||||
sub_080A0B80: @ 0x080A0B80
|
||||
ldr r1, [r0, #0x30]
|
||||
ldr r2, _080A0B8C @ =0xFFFD8000
|
||||
adds r1, r1, r2
|
||||
str r1, [r0, #0x30]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080A0B8C: .4byte 0xFFFD8000
|
||||
@@ -1,182 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectBD
|
||||
ObjectBD: @ 0x080A225C
|
||||
push {lr}
|
||||
ldr r2, _080A2270 @ =gUnk_0812503C
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2270: .4byte gUnk_0812503C
|
||||
|
||||
thumb_func_start sub_080A2274
|
||||
sub_080A2274: @ 0x080A2274
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080A22AE
|
||||
adds r0, r1, #0
|
||||
bl sub_080A2340
|
||||
movs r0, #0xbd
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
movs r1, #3
|
||||
cmp r0, #1
|
||||
bne _080A229C
|
||||
movs r1, #2
|
||||
_080A229C:
|
||||
movs r0, #0xbd
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
movs r0, #0xbd
|
||||
movs r1, #4
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
_080A22AE:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080A22B0
|
||||
sub_080A22B0: @ 0x080A22B0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080A22C0
|
||||
adds r0, r1, #0
|
||||
bl sub_080A2340
|
||||
_080A22C0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A22C4
|
||||
sub_080A22C4: @ 0x080A22C4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r5, [r4, #0xc]
|
||||
cmp r5, #0
|
||||
beq _080A22FC
|
||||
cmp r5, #1
|
||||
beq _080A231C
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A233E
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r1, [r4, #0xd]
|
||||
adds r0, r1, r0
|
||||
strb r0, [r4, #0x1e]
|
||||
lsls r1, r1, #0x18
|
||||
lsls r0, r0, #0x18
|
||||
cmp r1, r0
|
||||
bne _080A233E
|
||||
b _080A233A
|
||||
_080A22FC:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2340
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r5, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x1e]
|
||||
strb r0, [r4, #0xd]
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x1e
|
||||
strh r0, [r4, #0x24]
|
||||
b _080A233E
|
||||
_080A231C:
|
||||
ldrh r0, [r4, #0x24]
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A233E
|
||||
bl Random
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x1e
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #2
|
||||
b _080A233C
|
||||
_080A233A:
|
||||
movs r0, #1
|
||||
_080A233C:
|
||||
strb r0, [r4, #0xc]
|
||||
_080A233E:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_080A2340
|
||||
sub_080A2340: @ 0x080A2340
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #3
|
||||
ldr r2, _080A239C @ =gUnk_08125014
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r1]
|
||||
strh r2, [r0, #0x2e]
|
||||
ldrh r2, [r1, #2]
|
||||
strh r2, [r0, #0x32]
|
||||
ldrh r2, [r1, #4]
|
||||
strb r2, [r0, #0x1e]
|
||||
ldrb r1, [r1, #6]
|
||||
movs r2, #0x29
|
||||
adds r2, r2, r0
|
||||
mov ip, r2
|
||||
movs r2, #7
|
||||
ands r2, r1
|
||||
mov r1, ip
|
||||
ldrb r3, [r1]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r3
|
||||
orrs r1, r2
|
||||
mov r2, ip
|
||||
strb r1, [r2]
|
||||
ldrb r3, [r0, #0x19]
|
||||
movs r2, #0x3f
|
||||
adds r1, r2, #0
|
||||
ands r1, r3
|
||||
movs r3, #0x40
|
||||
orrs r1, r3
|
||||
strb r1, [r0, #0x19]
|
||||
ldrb r1, [r0, #0x1b]
|
||||
ands r2, r1
|
||||
orrs r2, r3
|
||||
strb r2, [r0, #0x1b]
|
||||
ldrb r2, [r0, #0x18]
|
||||
movs r1, #4
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
movs r2, #2
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x18]
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080A239C: .4byte gUnk_08125014
|
||||
@@ -1,156 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ObjectD
|
||||
ObjectD: @ 0x08084334
|
||||
push {lr}
|
||||
ldr r2, _08084348 @ =gUnk_0811F908
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08084348: .4byte gUnk_0811F908
|
||||
|
||||
thumb_func_start sub_0808434C
|
||||
sub_0808434C: @ 0x0808434C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r2, #1
|
||||
movs r3, #1
|
||||
strb r3, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x18]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3f
|
||||
strb r3, [r0]
|
||||
adds r1, #4
|
||||
movs r0, #0x47
|
||||
strb r0, [r1]
|
||||
subs r1, #5
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, _080843E0 @ =gHitbox_4
|
||||
str r0, [r5, #0x48]
|
||||
ldr r0, _080843E4 @ =0x00004050
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _080843E8 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
beq _080843C8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080843EC
|
||||
_080843C8:
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xc]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl SetFlag
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
b _080843F4
|
||||
.align 2, 0
|
||||
_080843E0: .4byte gHitbox_4
|
||||
_080843E4: .4byte 0x00004050
|
||||
_080843E8: .4byte gRoomControls
|
||||
_080843EC:
|
||||
ldrb r1, [r5, #0xa]
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
_080843F4:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080843F8
|
||||
sub_080843F8: @ 0x080843F8
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x9c
|
||||
bne _08084420
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xc]
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
adds r0, r2, #0
|
||||
movs r1, #0xd
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
ldr r0, _08084424 @ =0x0000010D
|
||||
bl EnqueueSFX
|
||||
_08084420:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08084424: .4byte 0x0000010D
|
||||
|
||||
thumb_func_start sub_08084428
|
||||
sub_08084428: @ 0x08084428
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08084454
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl SetFlag
|
||||
movs r0, #0x86
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
_08084454:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -1,210 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Paper
|
||||
Paper: @ 0x0809271C
|
||||
push {lr}
|
||||
ldr r2, _08092730 @ =gUnk_08122780
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08092730: .4byte gUnk_08122780
|
||||
|
||||
thumb_func_start sub_08092734
|
||||
sub_08092734: @ 0x08092734
|
||||
push {lr}
|
||||
ldr r2, _08092748 @ =gUnk_08122788
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08092748: .4byte gUnk_08122788
|
||||
|
||||
thumb_func_start sub_0809274C
|
||||
sub_0809274C: @ 0x0809274C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r5, #0x3f
|
||||
adds r0, r5, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldrh r0, [r4, #0x36]
|
||||
subs r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
beq _0809277C
|
||||
cmp r0, #2
|
||||
bne _080927A2
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0809277C:
|
||||
ldr r0, _080927A4 @ =0x00004051
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
ldr r3, _080927A8 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r4, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r5
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
movs r2, #1
|
||||
bl SetTile
|
||||
_080927A2:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080927A4: .4byte 0x00004051
|
||||
_080927A8: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_080927AC
|
||||
sub_080927AC: @ 0x080927AC
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r0, [r1, #0xb]
|
||||
strb r0, [r1, #0x1e]
|
||||
ldrb r0, [r1, #0xb]
|
||||
cmp r0, #0
|
||||
beq _080927C4
|
||||
cmp r0, #2
|
||||
beq _080927CA
|
||||
b _080927D0
|
||||
_080927C4:
|
||||
adds r1, #0x63
|
||||
movs r0, #2
|
||||
b _080927CE
|
||||
_080927CA:
|
||||
adds r1, #0x63
|
||||
movs r0, #0xfe
|
||||
_080927CE:
|
||||
strb r0, [r1]
|
||||
_080927D0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080927D4
|
||||
sub_080927D4: @ 0x080927D4
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x32]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
ldr r0, _08092848 @ =0x00004051
|
||||
mov r8, r0
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
ldr r6, _0809284C @ =gRoomControls
|
||||
ldrh r0, [r6, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r5, #0x3f
|
||||
ands r1, r5
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r4, r2]
|
||||
ldrh r2, [r6, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r5
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
subs r1, #1
|
||||
mov r0, r8
|
||||
movs r2, #1
|
||||
bl SetTile
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrh r0, [r6, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r4, r2]
|
||||
ldrh r2, [r6, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r5
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
movs r2, #1
|
||||
bl SetTile
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08092848: .4byte 0x00004051
|
||||
_0809284C: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_08092850
|
||||
sub_08092850: @ 0x08092850
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08092888
|
||||
ldr r3, _08092878 @ =gPlayerEntity
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r3, r0]
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r1, r0
|
||||
blt _0809286E
|
||||
adds r0, #0x18
|
||||
cmp r1, r0
|
||||
ble _0809287C
|
||||
_0809286E:
|
||||
ldrb r0, [r2, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
b _08092884
|
||||
.align 2, 0
|
||||
_08092878: .4byte gPlayerEntity
|
||||
_0809287C:
|
||||
ldrb r0, [r2, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x80
|
||||
_08092884:
|
||||
orrs r1, r0
|
||||
strb r1, [r2, #0x19]
|
||||
_08092888:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -42675,16 +42675,6 @@
|
||||
"start": 1181044,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object11/gUnk_08120588.bin",
|
||||
"start": 1181064,
|
||||
"size": 20
|
||||
},
|
||||
{
|
||||
"path": "object11/gUnk_081205B4.bin",
|
||||
"start": 1181108,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Railtrack_0.bin",
|
||||
"start": 1181156,
|
||||
@@ -42885,11 +42875,6 @@
|
||||
"size": 44,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object1E/gUnk_081208C0.bin",
|
||||
"start": 1181888,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object1F/gUnk_08120A18.bin",
|
||||
"start": 1182232,
|
||||
@@ -42900,36 +42885,6 @@
|
||||
"start": 1182240,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object20/gUnk_08120A30.bin",
|
||||
"start": 1182256,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "object20/gUnk_08120A3C.bin",
|
||||
"start": 1182268,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "object20/gUnk_08120A48.bin",
|
||||
"start": 1182280,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "object21/gUnk_08120A78.bin",
|
||||
"start": 1182328,
|
||||
"size": 2
|
||||
},
|
||||
{
|
||||
"path": "object21/gUnk_08120A7A.bin",
|
||||
"start": 1182330,
|
||||
"size": 6
|
||||
},
|
||||
{
|
||||
"path": "object21/gUnk_08120A8C.bin",
|
||||
"start": 1182348,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_FigurineDevice_0.bin",
|
||||
"start": 1182440,
|
||||
@@ -43163,11 +43118,6 @@
|
||||
"size": 4,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object30/gUnk_08121194.bin",
|
||||
"start": 1184148,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_PullableMushroom_0.bin",
|
||||
"start": 1184260,
|
||||
@@ -43382,37 +43332,6 @@
|
||||
"size": 4,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object3A/gUnk_081215E8.bin",
|
||||
"start": 1185256,
|
||||
"size": 80
|
||||
},
|
||||
{
|
||||
"path": "object3A/gUnk_08121648.bin",
|
||||
"start": 1185352,
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"path": "object3D/gUnk_081216C8_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1183248
|
||||
},
|
||||
"size": 20
|
||||
},
|
||||
{
|
||||
"path": "object3D/gUnk_081216C8_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1185480,
|
||||
"size": 20
|
||||
},
|
||||
{
|
||||
"path": "giantLeaf/gUnk_08121750.bin",
|
||||
"start": 1185616,
|
||||
@@ -43423,11 +43342,6 @@
|
||||
"start": 1185642,
|
||||
"size": 26
|
||||
},
|
||||
{
|
||||
"path": "object42/gUnk_081217B8.bin",
|
||||
"start": 1185720,
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Object43_0.bin",
|
||||
"start": 1185760,
|
||||
@@ -44106,11 +44020,6 @@
|
||||
"size": 28,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object64/gUnk_08122950.bin",
|
||||
"start": 1190224,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "object67/gUnk_081229D0.bin",
|
||||
"start": 1190352,
|
||||
@@ -44621,21 +44530,6 @@
|
||||
"start": 1192728,
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_08123328.bin",
|
||||
"start": 1192744,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_08123344.bin",
|
||||
"start": 1192772,
|
||||
"size": 38
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_0812336A.bin",
|
||||
"start": 1192810,
|
||||
"size": 26
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Bell_0.bin",
|
||||
"start": 1192844,
|
||||
@@ -45285,11 +45179,6 @@
|
||||
"start": 1200144,
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "objectBD/gUnk_08125014.bin",
|
||||
"start": 1200148,
|
||||
"size": 40
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Pinwheel_0.bin",
|
||||
"start": 1200232,
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120A30:: @ 08120A30
|
||||
.incbin "object20/gUnk_08120A30.bin"
|
||||
|
||||
gUnk_08120A3C:: @ 08120A3C
|
||||
.incbin "object20/gUnk_08120A3C.bin"
|
||||
|
||||
gUnk_08120A48:: @ 08120A48
|
||||
.incbin "object20/gUnk_08120A48.bin"
|
||||
|
||||
gUnk_08120A54:: @ 08120A54
|
||||
.4byte gUnk_08120A30
|
||||
.4byte gUnk_08120A30
|
||||
.4byte gUnk_08120A48
|
||||
.4byte gUnk_08120A3C
|
||||
.4byte gUnk_08120A3C
|
||||
@@ -1,24 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0812057C:: @ 0812057C
|
||||
.4byte sub_08084D58
|
||||
.4byte sub_08084E5C
|
||||
.4byte sub_08084EB4
|
||||
|
||||
gUnk_08120588:: @ 08120588
|
||||
.incbin "object11/gUnk_08120588.bin"
|
||||
|
||||
gUnk_0812059C:: @ 0812059C
|
||||
.4byte sub_08084ECC
|
||||
.4byte sub_08084ED8
|
||||
.4byte sub_08084EFC
|
||||
.4byte sub_08084F84
|
||||
.4byte sub_08084F88
|
||||
.4byte sub_08084F8C
|
||||
|
||||
gUnk_081205B4:: @ 081205B4
|
||||
.incbin "object11/gUnk_081205B4.bin"
|
||||
@@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081205BC:: @ 081205BC
|
||||
.4byte sub_08084FD8
|
||||
.4byte nullsub_115
|
||||
.4byte sub_08085028
|
||||
.4byte sub_080850B0
|
||||
.4byte sub_080850CC
|
||||
@@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081208B8:: @ 081208B8
|
||||
.4byte sub_08087528
|
||||
.4byte sub_080875F4
|
||||
|
||||
gUnk_081208C0:: @ 081208C0
|
||||
.incbin "object1E/gUnk_081208C0.bin"
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120A28:: @ 08120A28
|
||||
.4byte sub_08087824
|
||||
.4byte sub_08087888
|
||||
@@ -1,25 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08120A68:: @ 08120A68
|
||||
.4byte sub_08087A10
|
||||
.4byte sub_08087AFC
|
||||
.4byte 00000000
|
||||
.4byte sub_08087B58
|
||||
|
||||
gUnk_08120A78:: @ 08120A78
|
||||
.incbin "object21/gUnk_08120A78.bin"
|
||||
|
||||
gUnk_08120A7A:: @ 08120A7A
|
||||
.incbin "object21/gUnk_08120A7A.bin"
|
||||
|
||||
gUnk_08120A80:: @ 08120A80
|
||||
.4byte sub_08087B88
|
||||
.4byte sub_08087B9C
|
||||
.4byte sub_08087B9C
|
||||
|
||||
gUnk_08120A8C:: @ 08120A8C
|
||||
.incbin "object21/gUnk_08120A8C.bin"
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121188:: @ 08121188
|
||||
.4byte sub_0808A870
|
||||
.4byte sub_0808A8C8
|
||||
.4byte sub_0808A8E0
|
||||
|
||||
gUnk_08121194:: @ 08121194
|
||||
.incbin "object30/gUnk_08121194.bin"
|
||||
@@ -1,19 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081215E8:: @ 081215E8
|
||||
.incbin "object3A/gUnk_081215E8.bin"
|
||||
|
||||
gUnk_08121638:: @ 08121638
|
||||
.4byte sub_0808C6D4
|
||||
.4byte sub_0808C74C
|
||||
|
||||
gUnk_08121640:: @ 08121640
|
||||
.4byte sub_0808C858
|
||||
.4byte sub_0808C8B8
|
||||
|
||||
gUnk_08121648:: @ 08121648
|
||||
.incbin "object3A/gUnk_08121648.bin"
|
||||
@@ -1,18 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081216BC:: @ 081216BC
|
||||
.4byte sub_0808CF08
|
||||
.4byte sub_0808CF5C
|
||||
.4byte sub_0808D064
|
||||
|
||||
gUnk_081216C8:: @ 081216C8
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "object3D/gUnk_081216C8_EU.bin"
|
||||
.else
|
||||
.incbin "object3D/gUnk_081216C8_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
@@ -1,16 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081217A8:: @ 081217A8
|
||||
.4byte sub_0808DDB4
|
||||
.4byte sub_0808DDE0
|
||||
|
||||
gUnk_081217B0:: @ 081217B0
|
||||
.4byte sub_0808DDB4
|
||||
.4byte sub_0808DDE8
|
||||
|
||||
gUnk_081217B8:: @ 081217B8
|
||||
.incbin "object42/gUnk_081217B8.bin"
|
||||
@@ -1,15 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08121EB8:: @ 08121EB8
|
||||
.4byte sub_0808F794
|
||||
.4byte sub_0808F7A8
|
||||
.4byte sub_0808F7D4
|
||||
.4byte sub_0808F80C
|
||||
.4byte sub_0808F858
|
||||
.4byte sub_0808F8F0
|
||||
.4byte sub_0808F914
|
||||
.4byte sub_0808F940
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122794:: @ 08122794
|
||||
.4byte sub_080928C8
|
||||
.4byte nullsub_119
|
||||
|
||||
gUnk_0812279C:: @ 0812279C
|
||||
.4byte sub_08092930
|
||||
.4byte sub_08092940
|
||||
@@ -1,16 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122950:: @ 08122950
|
||||
.incbin "object64/gUnk_08122950.bin"
|
||||
|
||||
gUnk_0812295C:: @ 0812295C
|
||||
.4byte sub_08093E3C
|
||||
.4byte sub_08093EAC
|
||||
|
||||
gUnk_08122964:: @ 08122964
|
||||
.4byte sub_08093ED0
|
||||
.4byte sub_08093EF0
|
||||
@@ -1,9 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081232A4:: @ 081232A4
|
||||
.4byte sub_08097438
|
||||
.4byte sub_080974A4
|
||||
@@ -1,21 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08123328:: @ 08123328
|
||||
.incbin "object74/gUnk_08123328.bin"
|
||||
|
||||
gUnk_08123330:: @ 08123330
|
||||
.4byte sub_08097B84
|
||||
.4byte sub_08097BDC
|
||||
.4byte sub_08097C18
|
||||
.4byte sub_08097C20
|
||||
.4byte sub_08097C1C
|
||||
|
||||
gUnk_08123344:: @ 08123344
|
||||
.incbin "object74/gUnk_08123344.bin"
|
||||
|
||||
gUnk_0812336A:: @ 0812336A
|
||||
.incbin "object74/gUnk_0812336A.bin"
|
||||
@@ -1,11 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811F7D8:: @ 0811F7D8
|
||||
.4byte sub_08083BE0
|
||||
.4byte sub_08083BF0
|
||||
.4byte sub_08083C9C
|
||||
.4byte sub_08083D28
|
||||
@@ -1,19 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08124A10:: @ 08124A10
|
||||
.4byte sub_080A0ADC
|
||||
.4byte sub_080A0AF0
|
||||
|
||||
gUnk_08124A18:: @ 08124A18
|
||||
.4byte sub_080A0AC4
|
||||
.4byte sub_080A0AD0
|
||||
|
||||
gUnk_08124A20:: @ 08124A20
|
||||
.4byte sub_080A0B4C
|
||||
.4byte sub_080A0B60
|
||||
.4byte sub_080A0B80
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08125014:: @ 08125014
|
||||
.incbin "objectBD/gUnk_08125014.bin"
|
||||
|
||||
gUnk_0812503C:: @ 0812503C
|
||||
.4byte sub_080A2274
|
||||
.4byte sub_080A22B0
|
||||
.4byte sub_080A22B0
|
||||
.4byte sub_080A22B0
|
||||
.4byte sub_080A22C4
|
||||
@@ -1,11 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811F908:: @ 0811F908
|
||||
.4byte sub_0808434C
|
||||
.4byte sub_080843F8
|
||||
.4byte sub_08084428
|
||||
.4byte GetNextFrame
|
||||
@@ -1,14 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08122780:: @ 08122780
|
||||
.4byte sub_08092734
|
||||
.4byte sub_08092850
|
||||
|
||||
gUnk_08122788:: @ 08122788
|
||||
.4byte sub_0809274C
|
||||
.4byte sub_080927AC
|
||||
.4byte sub_080927D4
|
||||
+1
-1
@@ -16,7 +16,7 @@ void SortEntityAbove(Entity*, Entity*);
|
||||
void SortEntityBelow(Entity*, Entity*);
|
||||
|
||||
u32 sub_0806F5A4(u32 idx);
|
||||
u32 sub_0806F3E4(Entity*);
|
||||
bool32 sub_0806F3E4(Entity*);
|
||||
void LinearMoveUpdate(Entity*);
|
||||
bool32 sub_0806FD54(Entity*);
|
||||
u32 sub_0806FCAC(Entity*, Entity*);
|
||||
|
||||
+9
-1
@@ -38,7 +38,7 @@ extern void GenericKnockback2(Entity*);
|
||||
extern LayerStruct* GetLayerByIndex(u32);
|
||||
extern u32 GetRandomByWeight(const u8*);
|
||||
extern u32 GetTileIndex(u32, u32);
|
||||
extern void GiveItem(u32, u32);
|
||||
extern u32 GiveItem(u32, u32);
|
||||
extern void HandlePlayerLife(Entity*);
|
||||
extern bool32 HasSwordEquipped();
|
||||
extern bool32 IsColliding(Entity*, Entity*);
|
||||
@@ -64,6 +64,14 @@ extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
|
||||
extern void SetDirtTile(u32);
|
||||
/** @see Item */
|
||||
extern void SetInventoryValue(u32, u32);
|
||||
/**
|
||||
* @brief Sets multiple tiles at once
|
||||
*
|
||||
* @param tileData [u16 tileIndex, s16 positionOffset], ends with 0xffff
|
||||
* @param basePosition the position the offsets in tileData are based on
|
||||
* @param layer the tile layer
|
||||
*/
|
||||
extern void SetMultipleTiles(u16* tileData, u32 basePosition, u32 layer);
|
||||
extern void SoundReqClipped(Entity*, u32);
|
||||
extern void TryLoadPrologueHyruleTown(void);
|
||||
extern void UnloadGFXSlots(Entity*);
|
||||
|
||||
+152
-152
@@ -226,198 +226,198 @@ typedef enum {
|
||||
OBJECT_C1,
|
||||
} Object;
|
||||
|
||||
void ItemOnGround(Entity*);
|
||||
void DeathFx(Entity*);
|
||||
void ItemOnGround();
|
||||
void DeathFx();
|
||||
void ItemForSale();
|
||||
void Button(Entity*);
|
||||
void MinishEmoticon(Entity*);
|
||||
void Pot(Entity*);
|
||||
void Button();
|
||||
void MinishEmoticon();
|
||||
void Pot();
|
||||
void EzloCap();
|
||||
void BlockPushed();
|
||||
void LockedDoor(Entity*);
|
||||
void Object9(Entity*);
|
||||
void ObjectA(Entity*);
|
||||
void ObjectB(Entity*);
|
||||
void LockedDoor();
|
||||
void Object9();
|
||||
void ObjectA();
|
||||
void ObjectB();
|
||||
void ChestSpawner();
|
||||
void ObjectD(Entity*);
|
||||
void ObjectE(Entity*);
|
||||
void SpecialFx(Entity*);
|
||||
void Object10(Entity*);
|
||||
void Object11(Entity*);
|
||||
void Object12(Entity*);
|
||||
void Railtrack(Entity*);
|
||||
void ObjectD();
|
||||
void ObjectE();
|
||||
void SpecialFx();
|
||||
void Object10();
|
||||
void Object11();
|
||||
void Object12();
|
||||
void Railtrack();
|
||||
void LilypadLarge();
|
||||
void Object15(Entity*);
|
||||
void FloatingPlatform(Entity*);
|
||||
void Object17(Entity*);
|
||||
void EvilSpirit(Entity*);
|
||||
void HouseDoorExterior(Entity*);
|
||||
void Rupee(Entity*);
|
||||
void GreatFairy(Entity*);
|
||||
void Object1C(Entity*);
|
||||
void Object1D(Entity*);
|
||||
void Object1E(Entity*);
|
||||
void Object1F(Entity*);
|
||||
void Object20(Entity*);
|
||||
void Object21(Entity*);
|
||||
void Object15();
|
||||
void FloatingPlatform();
|
||||
void Object17();
|
||||
void EvilSpirit();
|
||||
void HouseDoorExterior();
|
||||
void Rupee();
|
||||
void GreatFairy();
|
||||
void Object1C();
|
||||
void Object1D();
|
||||
void Object1E();
|
||||
void Object1F();
|
||||
void Object20();
|
||||
void Object21();
|
||||
void FigurineDevice();
|
||||
void EyeSwitch(Entity*);
|
||||
void EyeSwitch();
|
||||
void PressurePlate();
|
||||
void BigBarrel(Entity*);
|
||||
void BarrelInside(Entity*);
|
||||
void BigBarrel();
|
||||
void BarrelInside();
|
||||
void PushableStatue();
|
||||
void Object28(Entity*);
|
||||
void AmbientClouds(Entity*);
|
||||
void Object2A(Entity*);
|
||||
void Object2B(Entity*);
|
||||
void Object28();
|
||||
void AmbientClouds();
|
||||
void Object2A();
|
||||
void Object2B();
|
||||
void Beanstalk();
|
||||
void Smoke(Entity*);
|
||||
void Smoke();
|
||||
void PushableRock();
|
||||
void HittableLever();
|
||||
void Object30(Entity*);
|
||||
void FrozenFlower(Entity*);
|
||||
void Object30();
|
||||
void FrozenFlower();
|
||||
void PullableMushroom();
|
||||
void Bollard(Entity*);
|
||||
void WarpPoint(Entity*);
|
||||
void Bollard();
|
||||
void WarpPoint();
|
||||
void Object35();
|
||||
void Object36(Entity*);
|
||||
void Object37(Entity*);
|
||||
void JarPortal(Entity*);
|
||||
void Object36();
|
||||
void Object37();
|
||||
void JarPortal();
|
||||
void BossDoor();
|
||||
void Object3A(Entity*);
|
||||
void MacroMushromStalks(Entity*);
|
||||
void MacroPlayer(Entity*);
|
||||
void Object3D(Entity*);
|
||||
void Object3A();
|
||||
void MacroMushromStalks();
|
||||
void MacroPlayer();
|
||||
void Object3D();
|
||||
void Object3E();
|
||||
void GiantLeaf(Entity*);
|
||||
void GiantLeaf();
|
||||
void Fairy();
|
||||
void LadderUp(Entity*);
|
||||
void Object42(Entity*);
|
||||
void LadderUp();
|
||||
void Object42();
|
||||
void Object43();
|
||||
void Object44(Entity*);
|
||||
void Object45(Entity*);
|
||||
void GiantBookLadder(Entity*);
|
||||
void HeartContainer(Entity*);
|
||||
void FileScreenObjects(Entity*);
|
||||
void Object49(Entity*);
|
||||
void BackgroundCloud(Entity*);
|
||||
void Object4B(Entity*);
|
||||
void Object44();
|
||||
void Object45();
|
||||
void GiantBookLadder();
|
||||
void HeartContainer();
|
||||
void FileScreenObjects();
|
||||
void Object49();
|
||||
void BackgroundCloud();
|
||||
void Object4B();
|
||||
void PushableFurniture();
|
||||
void Furniture(Entity*);
|
||||
void MinishSizedEntrance(Entity*);
|
||||
void Archway(Entity*);
|
||||
void GiantRock(Entity*);
|
||||
void GiantRock2(Entity*);
|
||||
void Object52(Entity*);
|
||||
void Object53(Entity*);
|
||||
void Furniture();
|
||||
void MinishSizedEntrance();
|
||||
void Archway();
|
||||
void GiantRock();
|
||||
void GiantRock2();
|
||||
void Object52();
|
||||
void Object53();
|
||||
void PullableLever();
|
||||
void Minecart(Entity*);
|
||||
void ThoughtBubble(Entity*);
|
||||
void HiddenLadderDown(Entity*);
|
||||
void GentariCurtain(Entity*);
|
||||
void Minecart();
|
||||
void ThoughtBubble();
|
||||
void HiddenLadderDown();
|
||||
void GentariCurtain();
|
||||
void LavaPlatform();
|
||||
void Paper(Entity*);
|
||||
void Object5B(Entity*);
|
||||
void Mask(Entity*);
|
||||
void HouseDoorInterior(Entity*);
|
||||
void Whirlwind(Entity*);
|
||||
void ObjectBlockingStairs(Entity*);
|
||||
void SwordsmanNewsletter(Entity*);
|
||||
void Paper();
|
||||
void Object5B();
|
||||
void Mask();
|
||||
void HouseDoorInterior();
|
||||
void Whirlwind();
|
||||
void ObjectBlockingStairs();
|
||||
void SwordsmanNewsletter();
|
||||
void Object61();
|
||||
void GiantTwig();
|
||||
void Object63(Entity*);
|
||||
void Object64(Entity*);
|
||||
void LadderHoleInBookshelf(Entity*);
|
||||
void Object66(Entity*);
|
||||
void Object67(Entity*);
|
||||
void Object63();
|
||||
void Object64();
|
||||
void LadderHoleInBookshelf();
|
||||
void Object66();
|
||||
void Object67();
|
||||
void Object68();
|
||||
void Object69(Entity*);
|
||||
void Object6A(Entity*);
|
||||
void Object69();
|
||||
void Object6A();
|
||||
void CrenelBeanSprout();
|
||||
void MinecartDoor();
|
||||
void ObjectOnPillar();
|
||||
void MineralWaterSource(Entity*);
|
||||
void MinishSizedArchway(Entity*);
|
||||
void Object70(Entity*);
|
||||
void MineralWaterSource();
|
||||
void MinishSizedArchway();
|
||||
void Object70();
|
||||
void PushableGrave();
|
||||
void StoneTablet(Entity*);
|
||||
void LilypadSmall(Entity*);
|
||||
void Object74(Entity*);
|
||||
void Object75(Entity*);
|
||||
void Object76(Entity*);
|
||||
void Bell(Entity*);
|
||||
void MacroDecoration(Entity*);
|
||||
void Object79(Entity*);
|
||||
void Steam(Entity*);
|
||||
void StoneTablet();
|
||||
void LilypadSmall();
|
||||
void Object74();
|
||||
void Object75();
|
||||
void Object76();
|
||||
void Bell();
|
||||
void MacroDecoration();
|
||||
void Object79();
|
||||
void Steam();
|
||||
void PushableLever();
|
||||
void MacroShoes(Entity*);
|
||||
void MacroShoes();
|
||||
void ObjectOnSpinyBeetle();
|
||||
void Object7E(Entity*);
|
||||
void PicoBloom(Entity*);
|
||||
void Board(Entity*);
|
||||
void Object81(Entity*);
|
||||
void BigVortex(Entity*);
|
||||
void Object7E();
|
||||
void PicoBloom();
|
||||
void Board();
|
||||
void Object81();
|
||||
void BigVortex();
|
||||
void BigPushableLever();
|
||||
void SmallIceBlock();
|
||||
void BigIceBlock();
|
||||
void Object86(Entity*);
|
||||
void OctorokBossObject(Entity*);
|
||||
void MacroBook(Entity*);
|
||||
void MazaalBossObject(Entity*);
|
||||
void CabinFurniture(Entity*);
|
||||
void Object86();
|
||||
void OctorokBossObject();
|
||||
void MacroBook();
|
||||
void MazaalBossObject();
|
||||
void CabinFurniture();
|
||||
void DoubleBookshelf();
|
||||
void Book(Entity*);
|
||||
void Fireplace(Entity*);
|
||||
void Book();
|
||||
void Fireplace();
|
||||
void Object8E();
|
||||
void FrozenWaterElement();
|
||||
void Object90(Entity*);
|
||||
void Object90();
|
||||
void FrozenOctorok();
|
||||
void BakerOven(Entity*);
|
||||
void Lamp(Entity*);
|
||||
void WindTribeFlag(Entity*);
|
||||
void Bird(Entity*);
|
||||
void Object96(Entity*);
|
||||
void BakerOven();
|
||||
void Lamp();
|
||||
void WindTribeFlag();
|
||||
void Bird();
|
||||
void Object96();
|
||||
void KeyStealingTakkuri();
|
||||
void Object98(Entity*);
|
||||
void Object99(Entity*);
|
||||
void MacroAcorn(Entity*);
|
||||
void Object9B(Entity*);
|
||||
void TreeHidingPortal(Entity*);
|
||||
void LightableSwitch(Entity*);
|
||||
void TreeThorns(Entity*);
|
||||
void Fan(Entity*);
|
||||
void AngryStatue(Entity*);
|
||||
void PalaceArchway(Entity*);
|
||||
void ObjectA2(Entity*);
|
||||
void Cloud(Entity*);
|
||||
void MinishLight(Entity*);
|
||||
void FireballChain(Entity*);
|
||||
void ObjectA6(Entity*);
|
||||
void ObjectA7(Entity*);
|
||||
void Object98();
|
||||
void Object99();
|
||||
void MacroAcorn();
|
||||
void Object9B();
|
||||
void TreeHidingPortal();
|
||||
void LightableSwitch();
|
||||
void TreeThorns();
|
||||
void Fan();
|
||||
void AngryStatue();
|
||||
void PalaceArchway();
|
||||
void ObjectA2();
|
||||
void Cloud();
|
||||
void MinishLight();
|
||||
void FireballChain();
|
||||
void ObjectA6();
|
||||
void ObjectA7();
|
||||
void ObjectA8();
|
||||
void ObjectA9(Entity*);
|
||||
void WaterfallOpening(Entity*);
|
||||
void ObjectAB(Entity*);
|
||||
void ObjectA9();
|
||||
void WaterfallOpening();
|
||||
void ObjectAB();
|
||||
void FourElements();
|
||||
void ObjectAD(Entity*);
|
||||
void FloatingBlock(Entity*);
|
||||
void ObjectAF(Entity*);
|
||||
void MetalDoor(Entity*);
|
||||
void JailBars(Entity*);
|
||||
void ObjectB2(Entity*);
|
||||
void ObjectB3(Entity*);
|
||||
void ObjectB4(Entity*);
|
||||
void ObjectB5(Entity*);
|
||||
void ObjectB6(Entity*);
|
||||
void Well(Entity*);
|
||||
void ObjectAD();
|
||||
void FloatingBlock();
|
||||
void ObjectAF();
|
||||
void MetalDoor();
|
||||
void JailBars();
|
||||
void ObjectB2();
|
||||
void ObjectB3();
|
||||
void ObjectB4();
|
||||
void ObjectB5();
|
||||
void ObjectB6();
|
||||
void Well();
|
||||
void WindTribeTeleporter();
|
||||
void ObjectB9(Entity*);
|
||||
void GyorgBossObject(Entity*);
|
||||
void Windcrest(Entity*);
|
||||
void LitArea(Entity*);
|
||||
void ObjectBD(Entity*);
|
||||
void Pinwheel(Entity*);
|
||||
void ObjectBF(Entity*);
|
||||
void ObjectB9();
|
||||
void GyorgBossObject();
|
||||
void Windcrest();
|
||||
void LitArea();
|
||||
void ObjectBD();
|
||||
void Pinwheel();
|
||||
void ObjectBF();
|
||||
void EnemyItem();
|
||||
void ObjectC1();
|
||||
|
||||
|
||||
@@ -631,14 +631,14 @@ SECTIONS {
|
||||
src/object/lockedDoor.o(.text);
|
||||
asm/object/object9.o(.text);
|
||||
src/object/objectA.o(.text);
|
||||
asm/object/objectB.o(.text);
|
||||
src/object/objectB.o(.text);
|
||||
src/object/chestSpawner.o(.text);
|
||||
asm/object/objectD.o(.text);
|
||||
asm/object/objectE.o(.text);
|
||||
src/object/objectD.o(.text);
|
||||
src/object/objectE.o(.text);
|
||||
src/object/specialFx.o(.text);
|
||||
asm/object/object10.o(.text);
|
||||
asm/object/object11.o(.text);
|
||||
asm/object/object12.o(.text);
|
||||
src/object/object11.o(.text);
|
||||
src/object/object12.o(.text);
|
||||
src/object/railtrack.o(.text);
|
||||
src/object/lilypadLarge.o(.text);
|
||||
asm/object/object15.o(.text);
|
||||
@@ -650,10 +650,10 @@ SECTIONS {
|
||||
src/object/greatFairy.o(.text);
|
||||
src/object/object1C.o(.text);
|
||||
src/object/object1D.o(.text);
|
||||
asm/object/object1E.o(.text);
|
||||
src/object/object1E.o(.text);
|
||||
asm/object/object1F.o(.text);
|
||||
asm/object/object20.o(.text);
|
||||
asm/object/object21.o(.text);
|
||||
src/object/object20.o(.text);
|
||||
src/object/object21.o(.text);
|
||||
src/object/figurineDevice.o(.text);
|
||||
src/object/eyeSwitch.o(.text);
|
||||
src/object/pressurePlate.o(.text);
|
||||
@@ -668,7 +668,7 @@ SECTIONS {
|
||||
src/object/smoke.o(.text);
|
||||
src/object/pushableRock.o(.text);
|
||||
src/object/hittableLever.o(.text);
|
||||
asm/object/object30.o(.text);
|
||||
src/object/object30.o(.text);
|
||||
src/object/frozenFlower.o(.text);
|
||||
src/object/pullableMushroom.o(.text);
|
||||
src/object/bollard.o(.text);
|
||||
@@ -678,18 +678,18 @@ SECTIONS {
|
||||
asm/object/object37.o(.text);
|
||||
src/object/jarPortal.o(.text);
|
||||
src/object/bossDoor.o(.text);
|
||||
asm/object/object3A.o(.text);
|
||||
src/object/object3A.o(.text);
|
||||
src/object/macroMushroomStalks.o(.text);
|
||||
asm/object/object75.o(.text); /* 75 and 76 are mislocated in object table */
|
||||
asm/object/object76.o(.text);
|
||||
asm/object/code_0808C964.o(.text);
|
||||
src/object/macroPlayer.o(.text);
|
||||
asm/object/object3D.o(.text);
|
||||
src/object/object3D.o(.text);
|
||||
src/object/object3E.o(.text);
|
||||
src/object/giantLeaf.o(.text);
|
||||
src/object/fairy.o(.text);
|
||||
src/object/ladderUp.o(.text);
|
||||
asm/object/object42.o(.text);
|
||||
src/object/object42.o(.text);
|
||||
src/object/object43.o(.text);
|
||||
asm/object/object44.o(.text);
|
||||
asm/object/object45.o(.text);
|
||||
@@ -698,7 +698,7 @@ SECTIONS {
|
||||
src/object/fileScreenObjects.o(.text);
|
||||
src/object/object49.o(.text);
|
||||
src/object/backgroundCloud.o(.text);
|
||||
asm/object/object4B.o(.text);
|
||||
src/object/object4B.o(.text);
|
||||
src/object/pushableFurniture.o(.text);
|
||||
src/object/furniture.o(.text);
|
||||
src/object/minishSizedEntrance.o(.text);
|
||||
@@ -714,8 +714,8 @@ SECTIONS {
|
||||
src/object/hiddenLadderDown.o(.text);
|
||||
src/object/gentariCurtains.o(.text);
|
||||
src/object/lavaPlatform.o(.text);
|
||||
asm/object/paper.o(.text);
|
||||
asm/object/object5B.o(.text);
|
||||
src/object/paper.o(.text);
|
||||
src/object/object5B.o(.text);
|
||||
src/object/mask.o(.text);
|
||||
src/object/houseDoorInterior.o(.text);
|
||||
src/object/whirlwind.o(.text);
|
||||
@@ -724,7 +724,7 @@ SECTIONS {
|
||||
src/object/object61.o(.text);
|
||||
src/object/giantTwig.o(.text);
|
||||
asm/object/object63.o(.text);
|
||||
asm/object/object64.o(.text);
|
||||
src/object/object64.o(.text);
|
||||
src/object/ladderHoleInBookshelf.o(.text);
|
||||
asm/object/object66.o(.text);
|
||||
asm/object/object67.o(.text);
|
||||
@@ -736,11 +736,11 @@ SECTIONS {
|
||||
src/object/objectOnPillar.o(.text);
|
||||
src/object/mineralWaterSource.o(.text);
|
||||
src/object/minishSizedArchway.o(.text);
|
||||
asm/object/object70.o(.text);
|
||||
src/object/object70.o(.text);
|
||||
src/object/pushableGrave.o(.text);
|
||||
src/object/stoneTablet.o(.text);
|
||||
src/object/lilypadSmall.o(.text);
|
||||
asm/object/object74.o(.text);
|
||||
src/object/object74.o(.text);
|
||||
src/object/bell.o(.text);
|
||||
src/object/macroDecorations.o(.text);
|
||||
asm/object/object79.o(.text);
|
||||
@@ -803,7 +803,7 @@ SECTIONS {
|
||||
src/object/metalDoor.o(.text);
|
||||
src/object/jailBars.o(.text);
|
||||
src/object/objectB2.o(.text);
|
||||
asm/object/objectB3.o(.text);
|
||||
src/object/objectB3.o(.text);
|
||||
asm/object/objectB4.o(.text);
|
||||
src/object/objectB5.o(.text);
|
||||
asm/object/objectB6.o(.text);
|
||||
@@ -813,7 +813,7 @@ SECTIONS {
|
||||
src/object/gyorgBossObject.o(.text);
|
||||
src/object/windcrest.o(.text);
|
||||
src/object/litArea.o(.text);
|
||||
asm/object/objectBD.o(.text);
|
||||
src/object/objectBD.o(.text);
|
||||
src/object/pinwheel.o(.text);
|
||||
src/object/objectBF.o(.text);
|
||||
src/object/enemyItem.o(.text);
|
||||
@@ -1347,16 +1347,16 @@ SECTIONS {
|
||||
src/object/lockedDoor.o(.rodata);
|
||||
data/const/object/object9.o(.rodata);
|
||||
data/animations/object/object9.o(.rodata);
|
||||
data/const/object/objectB.o(.rodata);
|
||||
src/object/objectB.o(.rodata);
|
||||
src/object/chestSpawner.o(.rodata);
|
||||
data/animations/object/chestSpawner.o(.rodata);
|
||||
data/const/object/objectD.o(.rodata);
|
||||
src/object/objectD.o(.rodata);
|
||||
data/animations/object/objectD.o(.rodata);
|
||||
src/object/specialFx.o(.rodata);
|
||||
data/animations/object/specialFx.o(.rodata);
|
||||
data/const/object/object10.o(.rodata);
|
||||
data/const/object/object11.o(.rodata);
|
||||
data/const/object/object12.o(.rodata);
|
||||
src/object/object11.o(.rodata);
|
||||
src/object/object12.o(.rodata);
|
||||
data/const/object/railtrack.o(.rodata);
|
||||
data/animations/object/railtrack.o(.rodata);
|
||||
data/const/object/lilypadLarge.o(.rodata);
|
||||
@@ -1370,12 +1370,11 @@ SECTIONS {
|
||||
src/object/greatFairy.o(.rodata);
|
||||
data/animations/npc/greatFairy.o(.rodata);
|
||||
data/const/object/object1D.o(.rodata);
|
||||
data/const/object/object1E.o(.rodata);
|
||||
src/object/object1E.o(.rodata);
|
||||
data/animations/object/object1E.o(.rodata);
|
||||
data/const/object/object1F.o(.rodata);
|
||||
data/const/object/object20.o(.rodata);
|
||||
data/animations/object/object20.o(.rodata);
|
||||
data/const/object/object21.o(.rodata);
|
||||
src/object/object20.o(.rodata);
|
||||
src/object/object21.o(.rodata);
|
||||
src/object/figurineDevice.o(.rodata);
|
||||
data/animations/object/figurineDevice.o(.rodata);
|
||||
src/object/eyeSwitch.o(.rodata);
|
||||
@@ -1396,7 +1395,7 @@ SECTIONS {
|
||||
src/object/pushableRock.o(.rodata);
|
||||
data/animations/object/pushableRock.o(.rodata);
|
||||
src/object/hittableLever.o(.rodata);
|
||||
data/const/object/object30.o(.rodata);
|
||||
src/object/object30.o(.rodata);
|
||||
data/const/object/object31.o(.rodata);
|
||||
src/object/pullableMushroom.o(.rodata);
|
||||
data/animations/object/pullableMushroom.o(.rodata);
|
||||
@@ -1412,16 +1411,16 @@ SECTIONS {
|
||||
data/animations/object/jarPortal.o(.rodata);
|
||||
src/object/bossDoor.o(.rodata);
|
||||
data/animations/object/bossDoor.o(.rodata);
|
||||
data/const/object/object3A.o(.rodata);
|
||||
src/object/object3A.o(.rodata);
|
||||
src/object/macroMushroomStalks.o(.rodata);
|
||||
data/const/object/object75.o(.rodata);
|
||||
data/const/object/object76.o(.rodata);
|
||||
src/object/macroPlayer.o(.rodata);
|
||||
data/const/object/object3D.o(.rodata);
|
||||
src/object/object3D.o(.rodata);
|
||||
src/object/object3E.o(.rodata);
|
||||
data/const/object/giantLeaf.o(.rodata);
|
||||
src/object/fairy.o(.rodata);
|
||||
data/const/object/object42.o(.rodata);
|
||||
src/object/object42.o(.rodata);
|
||||
src/object/object43.o(.rodata);
|
||||
data/animations/object/object43.o(.rodata);
|
||||
data/const/object/object44.o(.rodata);
|
||||
@@ -1435,7 +1434,7 @@ SECTIONS {
|
||||
data/animations/object/fileScreenObjects.o(.rodata);
|
||||
data/const/object/object49.o(.rodata);
|
||||
data/const/object/backgroundCloud.o(.rodata);
|
||||
data/const/object/object4B.o(.rodata);
|
||||
src/object/object4B.o(.rodata);
|
||||
src/object/pushableFurniture.o(.rodata);
|
||||
data/const/object/furniture.o(.rodata);
|
||||
data/animations/object/furniture.o(.rodata);
|
||||
@@ -1455,8 +1454,8 @@ SECTIONS {
|
||||
data/animations/object/gentariCurtains.o(.rodata);
|
||||
src/object/lavaPlatform.o(.rodata);
|
||||
data/animations/object/lavaPlatform.o(.rodata);
|
||||
data/const/object/paper.o(.rodata);
|
||||
data/const/object/object5B.o(.rodata);
|
||||
src/object/paper.o(.rodata);
|
||||
src/object/object5B.o(.rodata);
|
||||
data/const/object/mask.o(.rodata);
|
||||
src/object/houseDoorInterior.o(.rodata);
|
||||
src/object/whirlwind.o(.rodata);
|
||||
@@ -1466,7 +1465,7 @@ SECTIONS {
|
||||
src/object/object61.o(.rodata);
|
||||
src/object/giantTwig.o(.rodata);
|
||||
data/const/object/object63.o(.rodata);
|
||||
data/const/object/object64.o(.rodata);
|
||||
src/object/object64.o(.rodata);
|
||||
data/animations/object/object64.o(.rodata);
|
||||
src/object/ladderHoleInBookshelf.o(.rodata);
|
||||
data/const/object/object67.o(.rodata);
|
||||
@@ -1479,11 +1478,11 @@ SECTIONS {
|
||||
src/object/minecartDoor.o(.rodata);
|
||||
src/object/objectOnPillar.o(.rodata);
|
||||
data/const/object/mineralWaterSource.o(.rodata);
|
||||
data/const/object/object70.o(.rodata);
|
||||
src/object/object70.o(.rodata);
|
||||
src/object/pushableGrave.o(.rodata);
|
||||
src/object/stoneTablet.o(.rodata);
|
||||
data/const/object/lilypadSmall.o(.rodata);
|
||||
data/const/object/object74.o(.rodata);
|
||||
src/object/object74.o(.rodata);
|
||||
data/const/object/bell.o(.rodata);
|
||||
data/animations/object/bell.o(.rodata);
|
||||
src/object/macroDecorations.o(.rodata);
|
||||
@@ -1559,7 +1558,7 @@ SECTIONS {
|
||||
data/const/object/jailBars.o(.rodata);
|
||||
data/animations/object/jailBars.o(.rodata);
|
||||
data/animations/object/objectB2.o(.rodata);
|
||||
data/const/object/objectB3.o(.rodata);
|
||||
src/object/objectB3.o(.rodata);
|
||||
data/animations/object/objectB3.o(.rodata);
|
||||
data/const/object/objectB4.o(.rodata);
|
||||
data/animations/object/objectB4.o(.rodata);
|
||||
@@ -1568,7 +1567,7 @@ SECTIONS {
|
||||
data/const/object/objectB9.o(.rodata);
|
||||
src/object/gyorgBossObject.o(.rodata);
|
||||
data/const/object/windcrest.o(.rodata);
|
||||
data/const/object/objectBD.o(.rodata);
|
||||
src/object/objectBD.o(.rodata);
|
||||
data/const/object/pinwheel.o(.rodata);
|
||||
data/animations/object/pinwheel.o(.rodata);
|
||||
src/object/objectC1.o(.rodata);
|
||||
|
||||
+3
-3
@@ -55,7 +55,7 @@ u32 sub_0806F39C(Entity* ent) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_0806F3E4(Entity* ent) {
|
||||
bool32 sub_0806F3E4(Entity* ent) {
|
||||
Entity tmp_ent;
|
||||
s8* p;
|
||||
|
||||
@@ -95,9 +95,9 @@ u32 sub_0806F3E4(Entity* ent) {
|
||||
gPlayerState.item->type = 1;
|
||||
SoundReq(SFX_EF);
|
||||
}
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_0806F4E8(Entity* ent) {
|
||||
|
||||
+1
-1
@@ -2168,7 +2168,7 @@ s32 GetItemPrice(u32 item) {
|
||||
return ptr[0];
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/game/GiveItem.inc", void GiveItem(u32 a, u32 b))
|
||||
ASM_FUNC("asm/non_matching/game/GiveItem.inc", u32 GiveItem(u32 a, u32 b))
|
||||
|
||||
// TODO Adapt ItemMetaData struct
|
||||
void sub_08054288(s32 param_1) {
|
||||
|
||||
@@ -310,7 +310,7 @@ void sub_080842D8(ChestSpawnerEntity* this) {
|
||||
if ((super->y.HALF.HI & 8) != 0) {
|
||||
index += 2;
|
||||
}
|
||||
sub_0801AF18((u8*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
|
||||
const Hitbox gUnk_0811F8A8 = { 0, -3, { 0, 0, 0, 0 }, 6, 6 };
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
extern void sub_080A0960(Entity*, u32);
|
||||
|
||||
extern void (*const gUnk_08124950[])(Entity*);
|
||||
extern u8 gUnk_08124960;
|
||||
extern u8 gUnk_0812497A;
|
||||
extern u16 gUnk_08124960[];
|
||||
extern u16 gUnk_0812497A[];
|
||||
|
||||
void JailBars(Entity* this) {
|
||||
gUnk_08124950[this->action](this);
|
||||
@@ -49,11 +49,11 @@ void nullsub_127(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_080A0960(Entity* this, u32 arg1) {
|
||||
u8* puVar1;
|
||||
u16* puVar1;
|
||||
|
||||
puVar1 = &gUnk_08124960;
|
||||
puVar1 = gUnk_08124960;
|
||||
if (arg1 == 1) {
|
||||
puVar1 = &gUnk_0812497A;
|
||||
puVar1 = gUnk_0812497A;
|
||||
}
|
||||
sub_0801AF18(puVar1, COORD_TO_TILE(this), 1);
|
||||
SetMultipleTiles(puVar1, COORD_TO_TILE(this), 1);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
/**
|
||||
* @file object11.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object11 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[8];
|
||||
/*0x70*/ u16 unk_70;
|
||||
/*0x72*/ u8 unk_72;
|
||||
} Object11Entity;
|
||||
|
||||
typedef struct {
|
||||
u8 unk_0;
|
||||
u8 unk_1;
|
||||
u8 unk_2;
|
||||
} struct_08120588;
|
||||
|
||||
void Object11_Init(Object11Entity*);
|
||||
void Object11_Action1(Object11Entity*);
|
||||
void Object11_Action2(Object11Entity*);
|
||||
void Object11_Action2SubAction0(Object11Entity*);
|
||||
void Object11_Action2SubAction1(Object11Entity*);
|
||||
void Object11_Action2SubAction2(Object11Entity*);
|
||||
void Object11_Action2SubAction3(Object11Entity*);
|
||||
void Object11_Action2SubAction4(Object11Entity*);
|
||||
void Object11_Action2SubAction5(Object11Entity*);
|
||||
|
||||
void Object11(Object11Entity* this) {
|
||||
static void (*const Object11_Actions[])(Object11Entity*) = {
|
||||
Object11_Init,
|
||||
Object11_Action1,
|
||||
Object11_Action2,
|
||||
};
|
||||
if (!EntityIsDeleted(super)) {
|
||||
Object11_Actions[super->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
extern const Hitbox gUnk_081205B4;
|
||||
void Object11_Init(Object11Entity* this) {
|
||||
static const struct_08120588 gUnk_08120588[] = {
|
||||
{ 0, 32, 1 }, { 0, 64, 2 }, { 0, 32, 2 }, { 13, 1, 0 }, { 22, 1, 0 },
|
||||
};
|
||||
if (super->type == 3) {
|
||||
Object11_Action2SubAction5(this);
|
||||
}
|
||||
sub_08004168(super);
|
||||
if (super->type == 4) {
|
||||
Object11_Action2SubAction5(this);
|
||||
}
|
||||
super->action = 2;
|
||||
super->flags |= ENT_COLLIDE;
|
||||
super->spriteRendering.b3 = 2;
|
||||
super->field_0x1d = gUnk_08120588[super->type].unk_1;
|
||||
super->field_0x1c = gUnk_08120588[super->type].unk_2;
|
||||
super->speed = 0x80;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
super->health = 1;
|
||||
super->field_0x3c = 7;
|
||||
super->hitType = 0x6e;
|
||||
super->flags2 = 4;
|
||||
super->hitbox = (Hitbox*)&gUnk_081205B4;
|
||||
this->unk_72 = 0;
|
||||
this->unk_70 = GetTileIndex(COORD_TO_TILE(super), super->collisionLayer);
|
||||
SetTile(0x4022, COORD_TO_TILE(super), super->collisionLayer);
|
||||
InitializeAnimation(super, gUnk_08120588[super->type].unk_0);
|
||||
}
|
||||
|
||||
void Object11_Action1(Object11Entity* this) {
|
||||
if (((gPlayerState.field_0x1c & 0xf) != 1) || ((super->bitfield & 0x7f) != 0x13)) {
|
||||
sub_0807BA8C(COORD_TO_TILE(super), super->collisionLayer);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void Object11_Action2(Object11Entity* this) {
|
||||
static void (*const Object11_Action2SubActions[])(Object11Entity*) = {
|
||||
Object11_Action2SubAction0, Object11_Action2SubAction1, Object11_Action2SubAction2,
|
||||
Object11_Action2SubAction3, Object11_Action2SubAction4, Object11_Action2SubAction5,
|
||||
};
|
||||
Object11_Action2SubActions[super->subAction](this);
|
||||
}
|
||||
|
||||
const Hitbox gUnk_081205B4 = { 0, 0, { 6, 3, 3, 6 }, 6, 6 };
|
||||
|
||||
void Object11_Action2SubAction0(Object11Entity* this) {
|
||||
super->subAction = 1;
|
||||
Object11_Action2SubAction1(this);
|
||||
}
|
||||
|
||||
void Object11_Action2SubAction1(Object11Entity* this) {
|
||||
Object11_Action1(this);
|
||||
sub_0806F4E8(super);
|
||||
if ((super->field_0x1d != 0) && (--super->field_0x1d == 0)) {
|
||||
super->subAction = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void Object11_Action2SubAction2(Object11Entity* this) {
|
||||
if (this->unk_72 == 0) {
|
||||
this->unk_72 = 1;
|
||||
super->spriteOffsetX = 0;
|
||||
sub_0807B9B8(this->unk_70, COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
if (((gPlayerState.field_0x1c & 0xf) != 1) || ((super->bitfield & 0x7f) != 0x13)) {
|
||||
Object11_Action2SubAction5(this);
|
||||
}
|
||||
if (sub_0806F3E4(super) && ((super->field_0x1c & 0xf) == 1)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void Object11_Action2SubAction3(Object11Entity* this) {
|
||||
}
|
||||
|
||||
void Object11_Action2SubAction4(Object11Entity* this) {
|
||||
}
|
||||
|
||||
void Object11_Action2SubAction5(Object11Entity* this) {
|
||||
switch (super->type2) {
|
||||
case 0xff:
|
||||
break;
|
||||
case 0xf:
|
||||
CreateFx(super, super->actionDelay, 0x80);
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
CreateObjectWithParent(super, super->type2, super->actionDelay, 0);
|
||||
break;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* @file object12.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object12 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[30];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} Object12Entity;
|
||||
|
||||
void Object12_Init(Object12Entity*);
|
||||
void Object12_Action1(Object12Entity*);
|
||||
void Object12_Action2(Object12Entity*);
|
||||
void Object12_Action3(Object12Entity*);
|
||||
void Object12_Action4(Object12Entity*);
|
||||
void sub_080850FC(Object12Entity*);
|
||||
|
||||
void Object12(Object12Entity* this) {
|
||||
static void (*const Object12_Actions[])(Object12Entity*) = {
|
||||
Object12_Init, Object12_Action1, Object12_Action2, Object12_Action3, Object12_Action4,
|
||||
};
|
||||
Object12_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object12_Init(Object12Entity* this) {
|
||||
if (super->type == 0) {
|
||||
if (CheckFlags(this->unk_86)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
super->action = 1;
|
||||
super->spritePriority.b0 = 7;
|
||||
sub_080850FC(this);
|
||||
} else {
|
||||
super->action = 2;
|
||||
super->actionDelay = 0xf0;
|
||||
super->speed = 0x80;
|
||||
super->direction = 0x18;
|
||||
}
|
||||
super->frameIndex = 0;
|
||||
}
|
||||
|
||||
void Object12_Action1(Object12Entity* this) {
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/object12/Object12_Action2.inc", void Object12_Action2(Object12Entity* this)) {
|
||||
u32 tmp;
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action = 3;
|
||||
super->actionDelay = 0x1e;
|
||||
super->spriteOffsetY = 4;
|
||||
gScreen.lcd.displayControl |= 0x2000;
|
||||
gScreen.controls.windowInsideControl = 0x1f;
|
||||
gScreen.controls.windowOutsideControl = 0xf;
|
||||
tmp = super->x.HALF.HI - gRoomControls.scroll_x;
|
||||
gScreen.controls.window0HorizontalDimensions = (((tmp - 0x18) & 0xff) << 8) | ((tmp + 0x18) & 0xff);
|
||||
tmp = super->y.HALF.HI - gRoomControls.scroll_y;
|
||||
gScreen.controls.window0VerticalDimensions = (((tmp - 0x18) & 0xff) << 8) | ((tmp + 0x18) & 0xff);
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void Object12_Action3(Object12Entity* this) {
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action = 4;
|
||||
super->actionDelay = 0x60;
|
||||
}
|
||||
}
|
||||
|
||||
void Object12_Action4(Object12Entity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
gScreen.lcd.displayControl &= 0xdfff;
|
||||
DeleteEntity(super);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080850FC(Object12Entity* this) {
|
||||
u32 position = COORD_TO_TILE(super);
|
||||
u32 layer = super->collisionLayer;
|
||||
SetTile(0x403d, position - 0x41, layer);
|
||||
SetTile(0x403d, position - 0x40, layer);
|
||||
SetTile(0x403d, position - 0x3f, layer);
|
||||
SetTile(0x403d, position - 1, layer);
|
||||
SetTile(0x403d, position, layer);
|
||||
SetTile(0x403d, position + 1, layer);
|
||||
SetTile(0x403d, position + 0x3f, layer);
|
||||
SetTile(0x403d, position + 0x40, layer);
|
||||
SetTile(0x403d, position + 0x41, layer);
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* @file object1E.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object1E object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "area.h"
|
||||
|
||||
void sub_08087528(Entity*);
|
||||
void sub_080875F4(Entity*);
|
||||
void sub_08087640(Entity*);
|
||||
|
||||
void Object1E(Entity* this) {
|
||||
static void (*const gUnk_081208B8[])(Entity*) = {
|
||||
sub_08087528,
|
||||
sub_080875F4,
|
||||
};
|
||||
if (!EntityIsDeleted(this)) {
|
||||
gUnk_081208B8[this->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/object1E/sub_08087528.inc", void sub_08087528(Entity* this)) {
|
||||
u32 palette;
|
||||
|
||||
this->action = 1;
|
||||
this->animationState = gPlayerEntity.animationState >> 1;
|
||||
this->spriteRendering.b3 = 2;
|
||||
this->spritePriority.b0 = 3;
|
||||
this->spriteOrientation.flipY--;
|
||||
if (this->type2 != 0) {
|
||||
this->palette.b.b0 = 1;
|
||||
if (this->animationState == 1) {
|
||||
this->spriteSettings.flipX = 1;
|
||||
}
|
||||
sub_08087640(this);
|
||||
} else {
|
||||
if (gArea.locationIndex == 0x10) {
|
||||
palette = 0x16a;
|
||||
} else {
|
||||
palette = 4;
|
||||
}
|
||||
ChangeObjPalette(this, palette);
|
||||
switch (this->animationState) {
|
||||
case 1:
|
||||
this->spriteSettings.flipX = 1;
|
||||
if (this->type == 0x40) {
|
||||
this->y.HALF.HI += 4;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (this->type == 0x40) {
|
||||
this->y.HALF.HI += 4;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (this->type == 0x40) {
|
||||
this->spriteSettings.flipX = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
SetDefaultPriority(this, 3);
|
||||
InitializeAnimation(this, this->type2 * 4 + this->animationState);
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_080875F4(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if ((this->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (this->type2 != 0) {
|
||||
this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1 - this->frame;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08087640(Entity* this) {
|
||||
static const s8 gUnk_081208C0[] = { 0, -12, 16, 0, 0, 15, -16, 0 };
|
||||
s32 oldX;
|
||||
s32 oldY;
|
||||
u32 tmp;
|
||||
const s8* ptr;
|
||||
|
||||
oldX = this->x.HALF.HI;
|
||||
oldY = this->y.HALF.HI;
|
||||
ptr = &gUnk_081208C0[this->animationState * 2];
|
||||
this->x.HALF.HI += ptr[0];
|
||||
this->y.HALF.HI += ptr[1];
|
||||
if (gRoomControls.area == 3 && gRoomControls.room == 4) {
|
||||
#ifdef EU
|
||||
tmp = 0x18;
|
||||
} else {
|
||||
tmp = 0x17;
|
||||
#else
|
||||
tmp = 0x17;
|
||||
} else {
|
||||
tmp = 0x16;
|
||||
#endif
|
||||
}
|
||||
CreateRandomItemDrop(this, tmp);
|
||||
this->x.HALF.HI = oldX;
|
||||
this->y.HALF.HI = oldY;
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
/**
|
||||
* @file object20.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object20 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
void sub_08087824(Entity*);
|
||||
void sub_08087888(Entity*);
|
||||
void sub_080878CC(Entity*);
|
||||
|
||||
void (*const gUnk_08120A28[])(Entity*) = {
|
||||
sub_08087824,
|
||||
sub_08087888,
|
||||
};
|
||||
const Hitbox3D gUnk_08120A30 = { 0, 0, { 0, 0, 0, 0 }, 6, 6, 10, { 0, 0, 0 } };
|
||||
const Hitbox3D gUnk_08120A3C = { 0, 0, { 0, 0, 0, 0 }, 12, 12, 16, { 0, 0, 0 } };
|
||||
const Hitbox3D gUnk_08120A48 = { 0, 0, { 0, 0, 0, 0 }, 16, 16, 20, { 0, 0, 0 } };
|
||||
const Hitbox3D* const gUnk_08120A54[] = { &gUnk_08120A30, &gUnk_08120A30, &gUnk_08120A48, &gUnk_08120A3C,
|
||||
&gUnk_08120A3C };
|
||||
|
||||
void Object20(Entity* this) {
|
||||
gUnk_08120A28[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08087824(Entity* this) {
|
||||
if (this->collisionLayer == 0) {
|
||||
ResolveCollisionLayer(this);
|
||||
}
|
||||
this->action = 1;
|
||||
this->flags |= 0x80;
|
||||
this->field_0x3c = 0x13;
|
||||
this->health = 0xff;
|
||||
this->hitType = 0xa9;
|
||||
this->hurtType = 0x16;
|
||||
this->hitbox = (Hitbox*)gUnk_08120A54[0];
|
||||
this->flags2 = 0x8b;
|
||||
sub_080878CC(this);
|
||||
InitializeAnimation(this, 1);
|
||||
sub_0801766C(this);
|
||||
EnqueueSFX(SFX_ITEM_BOMB_EXPLODE);
|
||||
}
|
||||
|
||||
void sub_08087888(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if ((this->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
} else {
|
||||
if (this->frame < 5) {
|
||||
this->hitbox = (Hitbox*)gUnk_08120A54[this->frame];
|
||||
} else {
|
||||
this->flags &= 0x7f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/object20/sub_080878CC.inc", void sub_080878CC(Entity* this)) {
|
||||
s32 x;
|
||||
s32 y;
|
||||
s32 itX;
|
||||
s32 itY;
|
||||
u32 layer;
|
||||
u32 tileType;
|
||||
u32 pos;
|
||||
|
||||
x = this->x.HALF.HI;
|
||||
y = this->y.HALF.HI;
|
||||
layer = this->collisionLayer;
|
||||
for (itX = -0x10; itX < 0x11; itX += 0x10) {
|
||||
for (itY = -0x10; itY < 0x11; itY += 0x10) {
|
||||
pos = TILE((u32)x + itX, (u32)y + itY);
|
||||
if (sub_080B1AE0(pos, layer) == 0x2e) {
|
||||
tileType = GetTileType(pos, layer);
|
||||
if (tileType == 0x368 || tileType == 0x367
|
||||
/*(tileType < 0x369) && (0x366 < tileType)*/) {
|
||||
sub_08008796(this, 3, x + itX, y + itY);
|
||||
} else {
|
||||
SetTile(0x4022, pos, layer);
|
||||
}
|
||||
} else {
|
||||
sub_08008796(this, 3, x + itX, y + itY);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
@@ -0,0 +1,153 @@
|
||||
/**
|
||||
* @file object21.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object21 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x18];
|
||||
/*0x80*/ u32 unk_80;
|
||||
/*0x84*/ u32 unk_84;
|
||||
} Object21Entity;
|
||||
|
||||
void sub_08087A10(Object21Entity*);
|
||||
void sub_08087AFC(Object21Entity*);
|
||||
void sub_08087B58(Object21Entity*);
|
||||
void sub_08087B88(Object21Entity*);
|
||||
void sub_08087B9C(Object21Entity*);
|
||||
void sub_08087B9C(Object21Entity*);
|
||||
|
||||
void Object21(Object21Entity* this) {
|
||||
static void (*const gUnk_08120A68[])(Object21Entity*) = {
|
||||
sub_08087A10,
|
||||
sub_08087AFC,
|
||||
NULL,
|
||||
sub_08087B58,
|
||||
};
|
||||
gUnk_08120A68[super->action](this);
|
||||
GetNextFrame(super);
|
||||
if (super->actionDelay != 0) {
|
||||
super->actionDelay--;
|
||||
} else {
|
||||
if (super->animIndex == 0xa) {
|
||||
InitializeAnimation(super, 0xd);
|
||||
} else if ((super->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
if (super->speed != 0) {
|
||||
LinearMoveUpdate(super);
|
||||
if (super->speed > 0x10) {
|
||||
super->speed -= 0x10;
|
||||
} else {
|
||||
super->speed = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extern const Hitbox gUnk_08120A8C;
|
||||
|
||||
void sub_08087A10(Object21Entity* this) {
|
||||
static const u8 gUnk_08120A78[] = {
|
||||
3,
|
||||
63,
|
||||
};
|
||||
static const u8 gUnk_08120A7A[] = {
|
||||
15, 24, 30, 35, 0, 0,
|
||||
};
|
||||
u32 rand;
|
||||
u32 tmp;
|
||||
super->action = 1;
|
||||
if (super->type2 != 0) {
|
||||
ChangeObjPalette(super, 3);
|
||||
}
|
||||
if (super->type > 2) {
|
||||
ChangeObjPalette(super, gUnk_08120A78[super->type - 3]);
|
||||
}
|
||||
switch (super->type) {
|
||||
case 4:
|
||||
super->collisionLayer = 2;
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
case 0:
|
||||
case 3:
|
||||
super->flags |= ENT_COLLIDE;
|
||||
super->health = 1;
|
||||
super->field_0x3c = 7;
|
||||
super->hitType = 0xaa;
|
||||
super->flags2 = 0x0e;
|
||||
super->hitbox = (Hitbox*)&gUnk_08120A8C;
|
||||
super->field_0x1c = 0;
|
||||
case 2:
|
||||
rand = Random();
|
||||
super->actionDelay = gUnk_08120A7A[rand & 3];
|
||||
tmp = (rand >> 8) & 3;
|
||||
if ((rand & 0x10) != 0) {
|
||||
tmp = -tmp;
|
||||
}
|
||||
super->x.HALF.HI += tmp;
|
||||
super->y.HALF.HI += tmp;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
InitializeAnimation(super, 10);
|
||||
return;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
InitializeAnimation(super, 0x10);
|
||||
}
|
||||
|
||||
void sub_08087AFC(Object21Entity* this) {
|
||||
Object21Entity* entity;
|
||||
if ((super->bitfield & 0x80) == 0) {
|
||||
return;
|
||||
}
|
||||
switch (super->bitfield & 0x7f) {
|
||||
case 0x16:
|
||||
super->direction = GetFacingDirection(super->field_0x4c, super);
|
||||
super->speed = 0x100;
|
||||
break;
|
||||
case 0x13:
|
||||
super->action = 3;
|
||||
super->subAction = 0;
|
||||
break;
|
||||
case 0x1b:
|
||||
case 0x1c:
|
||||
entity = (Object21Entity*)super->field_0x4c;
|
||||
super->direction = CalculateDirectionTo(entity->unk_84, entity->unk_80, super->x.WORD, super->y.WORD);
|
||||
super->speed = 0x100;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08087B58(Object21Entity* this) {
|
||||
static void (*const gUnk_08120A80[])(Object21Entity*) = {
|
||||
sub_08087B88,
|
||||
sub_08087B9C,
|
||||
sub_08087B9C,
|
||||
};
|
||||
if ((super->bitfield & 0x80) != 0) {
|
||||
gUnk_08120A80[super->subAction](this);
|
||||
} else {
|
||||
super->action = 1;
|
||||
}
|
||||
}
|
||||
|
||||
const Hitbox gUnk_08120A8C = { 0, 0, { 6, 3, 3, 6 }, 3, 3 };
|
||||
|
||||
void sub_08087B88(Object21Entity* this) {
|
||||
super->knockbackSpeed = 0x100;
|
||||
super->subAction = 1;
|
||||
super->field_0x1d = 1;
|
||||
}
|
||||
|
||||
void sub_08087B9C(Object21Entity* this) {
|
||||
if (sub_0806F3E4(super)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
/**
|
||||
* @file object30.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object30 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u16 unk_68;
|
||||
/*0x6a*/ u16 unk_6a;
|
||||
/*0x6c*/ u16* unk_6c;
|
||||
/*0x70*/ u32 unk_70;
|
||||
} Object30Entity;
|
||||
|
||||
extern u32 sub_0806F798(Entity*);
|
||||
extern const Hitbox gUnk_08121C58;
|
||||
|
||||
void Object30_Init(Object30Entity*);
|
||||
void Object30_Action1(Object30Entity*);
|
||||
void Object30_Action2(Object30Entity*);
|
||||
void sub_0808A968(Object30Entity*);
|
||||
|
||||
void Object30(Object30Entity* this) {
|
||||
static void (*const Object30_Actions[])(Object30Entity*) = {
|
||||
Object30_Init,
|
||||
Object30_Action1,
|
||||
Object30_Action2,
|
||||
};
|
||||
Object30_Actions[super->action](this);
|
||||
sub_08080CB4(super);
|
||||
}
|
||||
|
||||
void Object30_Init(Object30Entity* this) {
|
||||
LayerStruct* data;
|
||||
const u16* ptr;
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
data = GetLayerByIndex(super->collisionLayer);
|
||||
ptr = &data->mapData[sub_0806F798(super)];
|
||||
this->unk_6c = (u16*)ptr;
|
||||
this->unk_68 = ptr[0];
|
||||
super->action = 1;
|
||||
break;
|
||||
case 1:
|
||||
sub_0808A968(this);
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
sub_0808A968(this);
|
||||
Object30_Action2(this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Object30_Action1(Object30Entity* this) {
|
||||
if (this->unk_68 != this->unk_6c[0]) {
|
||||
sub_0808A968(this);
|
||||
}
|
||||
}
|
||||
|
||||
void Object30_Action2(Object30Entity* this) {
|
||||
static const u8 gUnk_08121194[] = {
|
||||
249, 248, 247, 246, 245, 246, 247, 248,
|
||||
};
|
||||
u8 tmp;
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
if (this->unk_70 != 0) {
|
||||
if (super->zVelocity < 0) {
|
||||
if (super->z.HALF.HI > -8) {
|
||||
this->unk_70 = 0;
|
||||
} else {
|
||||
if (super->zVelocity < -0x4000) {
|
||||
this->unk_70 = -0x400;
|
||||
} else {
|
||||
this->unk_70 = 0x400;
|
||||
}
|
||||
}
|
||||
}
|
||||
GravityUpdate(super, this->unk_70);
|
||||
return;
|
||||
}
|
||||
// fallthrough
|
||||
case 1:
|
||||
tmp = gUnk_08121194[(super->field_0xf++ >> 3) & 7];
|
||||
super->z.HALF.HI = tmp << 0x18 >> 0x18;
|
||||
if (!IsCollidingPlayer(super)) {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
CreateItemEntity(ITEM_KINSTONE, (u32)super->type2, 0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_0808A968(Object30Entity* this) {
|
||||
super->action = 2;
|
||||
super->actionDelay = 0x1e;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->zVelocity = 0x28000;
|
||||
super->spritePriority.b1 = 3;
|
||||
super->spriteSettings.shadow = 0;
|
||||
super->field_0x3c |= 0x10;
|
||||
super->hitbox = (Hitbox*)&gUnk_08121C58;
|
||||
SetDefaultPriority(super, 2);
|
||||
this->unk_70 = 0x2800;
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
/**
|
||||
* @file object3A.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object3A object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u16 unk_68;
|
||||
/*0x6a*/ u16 unk_6a;
|
||||
/*0x6c*/ u8 unk_6c[0x15];
|
||||
/*0x81*/ u8 unk_81;
|
||||
/*0x82*/ s8 unk_82;
|
||||
/*0x83*/ u8 unk_83;
|
||||
/*0x84*/ u8 unk_84;
|
||||
/*0x85*/ s8 unk_85;
|
||||
/*0x86*/ s16 unk_86;
|
||||
} Object3AEntity;
|
||||
|
||||
typedef struct {
|
||||
u16 unk_0;
|
||||
u16 unk_1;
|
||||
u16 unk_2;
|
||||
s16 unk_3;
|
||||
u16 unk_4;
|
||||
u16 unk_5;
|
||||
s16 unk_6;
|
||||
u16 unk_7;
|
||||
u16 unk_8;
|
||||
u16 unk_9;
|
||||
} struct_081215E8;
|
||||
|
||||
extern void sub_0801E49C(u32, u32, u32, u32);
|
||||
extern bool32 gUnk_02036BB8;
|
||||
|
||||
void sub_0808C6D4(Object3AEntity*);
|
||||
void sub_0808C74C(Object3AEntity*);
|
||||
void sub_0808C858(Object3AEntity*);
|
||||
void sub_0808C8B8(Object3AEntity*);
|
||||
void sub_0808C840(Object3AEntity*);
|
||||
|
||||
const struct_081215E8 gUnk_081215E8[] = {
|
||||
{ 5, 4, 280, -6, 0, 0, -8, 0, 31, 63 },
|
||||
{ 6, 2, 0, 4, 0, 0, 8, 0, 63, 31 },
|
||||
{ 7, 4, 0, 4, 0, 0, -6, 0, 63, 31 },
|
||||
{ 6, 2, 0, 16, 0, 0, 16, 0, 63, 31 },
|
||||
};
|
||||
|
||||
void Object3A(Object3AEntity* this) {
|
||||
static void (*const gUnk_08121638[])(Object3AEntity*) = {
|
||||
sub_0808C6D4,
|
||||
sub_0808C74C,
|
||||
};
|
||||
static void (*const gUnk_08121640[])(Object3AEntity*) = {
|
||||
sub_0808C858,
|
||||
sub_0808C8B8,
|
||||
};
|
||||
|
||||
if (super->type == 0) {
|
||||
gUnk_08121638[super->action](this);
|
||||
} else {
|
||||
gUnk_08121640[super->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808C6D4(Object3AEntity* this) {
|
||||
Object3AEntity* obj;
|
||||
const struct_081215E8* ptr = &gUnk_081215E8[super->type2];
|
||||
this->unk_86 = ptr->unk_2;
|
||||
this->unk_85 = ptr->unk_3;
|
||||
this->unk_84 = ptr->unk_4;
|
||||
this->unk_83 = ptr->unk_5;
|
||||
this->unk_82 = ptr->unk_6;
|
||||
this->unk_81 = ptr->unk_7;
|
||||
sub_0801E1B8((gScreen.controls.windowInsideControl & 0xff00) | ptr->unk_8, ptr->unk_9);
|
||||
super->action = 1;
|
||||
sub_0808C74C(this);
|
||||
obj = (Object3AEntity*)CreateObject(OBJECT_3A, 1, ptr->unk_0);
|
||||
if (obj != NULL) {
|
||||
obj->unk_6a = ptr->unk_1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808C74C(Object3AEntity* this) {
|
||||
if (super->parent != NULL) {
|
||||
super->x.HALF.HI = super->parent->x.HALF.HI - gRoomControls.scroll_x;
|
||||
super->y.HALF.HI = super->parent->y.HALF.HI - gRoomControls.scroll_y;
|
||||
} else {
|
||||
super->x.HALF.HI = 0x78;
|
||||
super->y.HALF.HI = 0x50;
|
||||
}
|
||||
if (this->unk_86 < 0) {
|
||||
sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, 0, 0);
|
||||
gUnk_02036BB8 = TRUE;
|
||||
sub_0808C840(this);
|
||||
}
|
||||
if (this->unk_86 > 500) {
|
||||
sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, 500, 0);
|
||||
gUnk_02036BB8 = 1;
|
||||
sub_0808C840(this);
|
||||
}
|
||||
this->unk_86 += this->unk_85;
|
||||
this->unk_85 += this->unk_84;
|
||||
if (this->unk_85 > 0x10) {
|
||||
this->unk_85 = 0x10;
|
||||
}
|
||||
if (this->unk_85 < -0x10) {
|
||||
this->unk_85 = 0xf0;
|
||||
}
|
||||
this->unk_83 += this->unk_82;
|
||||
this->unk_82 += this->unk_81;
|
||||
if (this->unk_82 > 0x10) {
|
||||
this->unk_82 = 0x10;
|
||||
}
|
||||
if (this->unk_82 < -0x10) {
|
||||
this->unk_82 = -0x10;
|
||||
}
|
||||
sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, this->unk_86, this->unk_83);
|
||||
}
|
||||
|
||||
void sub_0808C840(Object3AEntity* this) {
|
||||
gScreen.controls.layerFXControl = 0;
|
||||
sub_0801E104();
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_0808C858(Object3AEntity* this) {
|
||||
if ((super->type2 & 2) != 0) {
|
||||
gScreen.controls.layerFXControl = 0x3fbf;
|
||||
} else {
|
||||
gScreen.controls.layerFXControl = 0x3fff;
|
||||
}
|
||||
if ((super->type2 & 1) != 0) {
|
||||
gScreen.controls.layerBrightness = 0;
|
||||
} else {
|
||||
gScreen.controls.layerBrightness = 0x10;
|
||||
}
|
||||
super->action = 1;
|
||||
this->unk_68 = 0x100;
|
||||
}
|
||||
|
||||
void sub_0808C8B8(Object3AEntity* this) {
|
||||
s32 tmp = this->unk_68 -= this->unk_6a;
|
||||
if (tmp * 0x10000 < 0) {
|
||||
this->unk_68 = 0;
|
||||
}
|
||||
if ((super->type2 & 1) != 0) {
|
||||
gScreen.controls.layerBrightness = 0x10 - ((s16)this->unk_68 >> 4);
|
||||
} else {
|
||||
gScreen.controls.layerBrightness = (s16)this->unk_68 >> 4;
|
||||
}
|
||||
if ((s16)this->unk_68 == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
const u16 gUnk_08121648[] = { 264, 252, 256, 256, 248, 260, 240, 264, 248, 260, 256, 256, 264, 252, 272, 248 };
|
||||
@@ -0,0 +1,117 @@
|
||||
/**
|
||||
* @file object3D.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object3D object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "area.h"
|
||||
#include "screen.h"
|
||||
#include "main.h"
|
||||
#include "structures.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u16 unk_68;
|
||||
} Object3DEntity;
|
||||
|
||||
void Object3D_Init(Object3DEntity*);
|
||||
void Object3D_Action1(Object3DEntity*);
|
||||
void Object3D_Action2(Object3DEntity*);
|
||||
void sub_0808D030(void);
|
||||
|
||||
void Object3D(Object3DEntity* this) {
|
||||
static void (*const Object3D_Actions[])(Object3DEntity*) = {
|
||||
Object3D_Init,
|
||||
Object3D_Action1,
|
||||
Object3D_Action2,
|
||||
};
|
||||
Object3D_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object3D_Init(Object3DEntity* this) {
|
||||
super->action = 1;
|
||||
super->x.HALF.HI = gArea.curPortalX - gRoomControls.scroll_x;
|
||||
super->y.HALF.HI = gArea.curPortalY - gRoomControls.scroll_y;
|
||||
this->unk_68 = 0x80;
|
||||
super->updatePriority = 6;
|
||||
sub_0801E1B8(0x1f17, 0);
|
||||
sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68);
|
||||
}
|
||||
|
||||
void Object3D_Action1(Object3DEntity* this) {
|
||||
#ifdef EU
|
||||
static const u16 gUnk_081216C8[] = { 206, 19, 333, 208, 16, 333, 207, 1, 333, 0 };
|
||||
#else
|
||||
static const u16 gUnk_081216C8[] = { 206, 19, 334, 208, 16, 334, 207, 1, 334, 0 };
|
||||
#endif
|
||||
const u16* ptr;
|
||||
this->unk_68 -= 2;
|
||||
if (this->unk_68 >= 0x15) {
|
||||
sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68);
|
||||
} else {
|
||||
gScreen.controls.windowOutsideControl = 0x10;
|
||||
sub_0808D030();
|
||||
ResetPaletteTable(0);
|
||||
ResetPalettes();
|
||||
gGFXSlots.unk0 = 1;
|
||||
ptr = &gUnk_081216C8[super->type * 3];
|
||||
LoadFixedGFX(super, ptr[0]);
|
||||
LoadObjPalette(super, ptr[1]);
|
||||
super->spriteIndex = ptr[2];
|
||||
if (super->type == 2) {
|
||||
super->frameIndex = 2;
|
||||
}
|
||||
super->action = 2;
|
||||
super->spriteSettings.draw = 2;
|
||||
super->spriteOrientation.flipY = 0;
|
||||
super->spriteRendering.b3 = 0;
|
||||
super->spritePriority.b0 = 0;
|
||||
super->actionDelay = 0x1e;
|
||||
super->field_0xf = 0xff;
|
||||
super->spriteRendering.b0 = 3;
|
||||
sub_0805EC9C(super, 0x100, 0x100, 0);
|
||||
gArea.field_0x10 = 1;
|
||||
SetFade(5, 8);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808D030(void) {
|
||||
struct OamData* ptr;
|
||||
s32 index;
|
||||
|
||||
ptr = gOAMControls.oam;
|
||||
index = 0x80;
|
||||
MemClear(&gOAMControls, 0xb74);
|
||||
while (index != 0) {
|
||||
// TODO split up into bitfield writes?
|
||||
*(u16*)ptr = 0x2a0;
|
||||
ptr++;
|
||||
index--;
|
||||
}
|
||||
gOAMControls.field_0x0 = 1;
|
||||
}
|
||||
|
||||
void Object3D_Action2(Object3DEntity* this) {
|
||||
u32 tmp = super->actionDelay--;
|
||||
if (tmp != 0) {
|
||||
if (this->unk_68 != 0) {
|
||||
this->unk_68 -= 2;
|
||||
} else {
|
||||
this->unk_68 = 0;
|
||||
}
|
||||
sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68);
|
||||
if (0x80 < super->field_0xf) {
|
||||
super->field_0xf -= 8;
|
||||
}
|
||||
sub_0805EC9C(super, super->field_0xf, super->field_0xf, 0);
|
||||
} else {
|
||||
gArea.filler3[0]++;
|
||||
gArea.field_0x10 = 0;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
* @file object42.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object42 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[4];
|
||||
/*0x6c*/ u16 unk_6c;
|
||||
} Object42Entity;
|
||||
|
||||
void sub_0808DDB4(Object42Entity*);
|
||||
void sub_0808DDE0(Object42Entity*);
|
||||
void sub_0808DDE8(Object42Entity*);
|
||||
|
||||
void Object42(Object42Entity* this) {
|
||||
static void (*const gUnk_081217A8[])(Object42Entity*) = {
|
||||
sub_0808DDB4,
|
||||
sub_0808DDE0,
|
||||
};
|
||||
static void (*const gUnk_081217B0[])(Object42Entity*) = {
|
||||
sub_0808DDB4,
|
||||
sub_0808DDE8,
|
||||
};
|
||||
if (super->type != 0) {
|
||||
gUnk_081217B0[super->action](this);
|
||||
} else {
|
||||
gUnk_081217A8[super->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808DDB4(Object42Entity* this) {
|
||||
super->action = 1;
|
||||
if (super->type != 0) {
|
||||
super->actionDelay = 0x78;
|
||||
this->unk_6c = 0xf0;
|
||||
InitializeAnimation(super, 0);
|
||||
sub_0808DDE8(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0808DDE0(Object42Entity* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_0808DDE8(Object42Entity* this) {
|
||||
static const s8 gUnk_081217B8[] = { 0, -6, 0, 6 };
|
||||
Entity* player;
|
||||
this->unk_6c--;
|
||||
if (sub_0807953C()) {
|
||||
super->field_0xf++;
|
||||
}
|
||||
if (((0x1e < super->field_0xf) || ((gPlayerState.flags & 0x1810) != 0)) || (this->unk_6c == 0)) {
|
||||
gPlayerState.flags &= 0xfffffbff;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
player = &gPlayerEntity;
|
||||
super->x.HALF.HI = (s8)gUnk_081217B8[gPlayerEntity.animationState >> 1] + player->x.HALF.HI;
|
||||
super->y.HALF.HI = gPlayerEntity.y.HALF.HI + -6;
|
||||
super->z = gPlayerEntity.z;
|
||||
super->collisionLayer = gPlayerEntity.collisionLayer;
|
||||
super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3;
|
||||
super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY;
|
||||
if ((gPlayerState.flags & 0x400) != 0) {
|
||||
GetNextFrame(super);
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (gPlayerEntity.animationState >> 1 == 2) {
|
||||
sub_0806FEBC(&gPlayerEntity, 3, super);
|
||||
super->y.HALF.HI -= 5;
|
||||
} else {
|
||||
sub_0806FEBC(&gPlayerEntity, 0, super);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/**
|
||||
* @file object4B.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object4B object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "menu.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
} Object4BEntity;
|
||||
|
||||
void Object4B_Init(Object4BEntity*);
|
||||
void Object4B_Action1(Object4BEntity*);
|
||||
void Object4B_Action2(Object4BEntity*);
|
||||
void Object4B_Action3(Object4BEntity*);
|
||||
void Object4B_Action4(Object4BEntity*);
|
||||
void Object4B_Action5(Object4BEntity*);
|
||||
void Object4B_Action6(Object4BEntity*);
|
||||
void Object4B_Action7(Object4BEntity*);
|
||||
|
||||
void Object4B(Object4BEntity* this) {
|
||||
static void (*const Object4B_Actions[])(Object4BEntity*) = {
|
||||
Object4B_Init, Object4B_Action1, Object4B_Action2, Object4B_Action3,
|
||||
Object4B_Action4, Object4B_Action5, Object4B_Action6, Object4B_Action7,
|
||||
};
|
||||
Object4B_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void Object4B_Init(Object4BEntity* this) {
|
||||
super->action = 1;
|
||||
super->actionDelay = 0x3c;
|
||||
InitializeAnimation(super, 0);
|
||||
}
|
||||
|
||||
void Object4B_Action1(Object4BEntity* this) {
|
||||
if (--super->actionDelay == 0) {
|
||||
super->actionDelay = 0x78;
|
||||
super->action++;
|
||||
super->spriteSettings.draw = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action2(Object4BEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
super->action++;
|
||||
super->spritePriority.b1 = 3;
|
||||
InitializeAnimation(super, 2);
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action3(Object4BEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action++;
|
||||
super->direction = 0;
|
||||
super->speed = 0x100;
|
||||
super->zVelocity = 0x20000;
|
||||
super->spriteOrientation.flipY = 0;
|
||||
super->actionDelay = 0;
|
||||
InitializeAnimation(super, 3);
|
||||
SoundReq(SFX_12B);
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action4(Object4BEntity* this) {
|
||||
if ((super->frame & 0x10) != 0) {
|
||||
LinearMoveUpdate(super);
|
||||
if (GravityUpdate(super, 0x2000) == 0) {
|
||||
GetNextFrame(super);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(super);
|
||||
}
|
||||
if ((super->y.HALF.HI - gRoomControls.origin_y) < 0x231) {
|
||||
super->y.HALF.HI = gRoomControls.origin_y + 0x230;
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
super->action++;
|
||||
super->actionDelay = 0x78;
|
||||
InitializeAnimation(super, 2);
|
||||
}
|
||||
} else if ((super->frame & 0x80) != 0) {
|
||||
super->zVelocity = 0x20000;
|
||||
InitializeAnimation(super, 3);
|
||||
SoundReq(SFX_12B);
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action5(Object4BEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->action++;
|
||||
InitializeAnimation(super, 5);
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action6(Object4BEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
super->action++;
|
||||
super->actionDelay = 0x3c;
|
||||
InitializeAnimation(super, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void Object4B_Action7(Object4BEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
gMenu.overlayType++;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/**
|
||||
* @file object5B.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object5B object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x1a];
|
||||
/*0x82*/ u16 unk_82;
|
||||
/*0x84*/ ScriptExecutionContext* unk_84;
|
||||
} Object5BEntity;
|
||||
|
||||
void sub_080928C8(Object5BEntity*);
|
||||
void nullsub_119(Object5BEntity*);
|
||||
void sub_08092930(Object5BEntity*);
|
||||
void sub_08092940(Object5BEntity*);
|
||||
void sub_08092958(Object5BEntity*, ScriptExecutionContext*);
|
||||
|
||||
void Object5B(Object5BEntity* this) {
|
||||
static void (*const gUnk_08122794[])(Object5BEntity*) = {
|
||||
sub_080928C8,
|
||||
nullsub_119,
|
||||
};
|
||||
static void (*const gUnk_0812279C[])(Object5BEntity*) = {
|
||||
sub_08092930,
|
||||
sub_08092940,
|
||||
};
|
||||
if ((super->flags & 2) != 0) {
|
||||
gUnk_0812279C[super->action](this);
|
||||
} else {
|
||||
gUnk_08122794[super->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080928C8(Object5BEntity* this) {
|
||||
super->action = 1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->frameIndex = super->type;
|
||||
super->spriteRendering.b3 = 3;
|
||||
super->spritePriority.b0 = 6;
|
||||
super->spriteOrientation.flipY = 2;
|
||||
switch (super->type) {
|
||||
case 2:
|
||||
CreateObjectWithParent(super, OBJECT_5B, 4, 0);
|
||||
break;
|
||||
case 4:
|
||||
super->spritePriority.b0 = 7;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void nullsub_119(Object5BEntity* this) {
|
||||
}
|
||||
|
||||
void sub_08092930(Object5BEntity* this) {
|
||||
sub_080928C8(this);
|
||||
this->unk_82 = 0;
|
||||
}
|
||||
|
||||
void sub_08092940(Object5BEntity* this) {
|
||||
ExecuteScript(super, this->unk_84);
|
||||
sub_08092958(this, this->unk_84);
|
||||
}
|
||||
|
||||
void sub_08092958(Object5BEntity* this, ScriptExecutionContext* context) {
|
||||
u32 tmp;
|
||||
while (context->postScriptActions != 0) {
|
||||
tmp = (~context->postScriptActions + 1) & context->postScriptActions;
|
||||
context->postScriptActions = context->postScriptActions ^ tmp;
|
||||
switch (tmp) {
|
||||
case 1:
|
||||
super->frameIndex = 0;
|
||||
break;
|
||||
case 2:
|
||||
super->frameIndex = context->intVariable;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
/**
|
||||
* @file object64.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object64 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
} Object64Entity;
|
||||
|
||||
void sub_08093E3C(Object64Entity*);
|
||||
void sub_08093EAC(Object64Entity*);
|
||||
void sub_08093ED0(Object64Entity*);
|
||||
void sub_08093EF0(Object64Entity*);
|
||||
|
||||
typedef struct {
|
||||
u16 unk_0;
|
||||
u8 unk_2;
|
||||
u8 unk_3;
|
||||
} struct_08122950;
|
||||
|
||||
const struct_08122950 gUnk_08122950[] = {
|
||||
{ 244, 31, 0 },
|
||||
{ 0, 31, 0 },
|
||||
{ 0, 31, 0 },
|
||||
};
|
||||
|
||||
void Object64(Object64Entity* this) {
|
||||
static void (*const gUnk_0812295C[])(Object64Entity*) = {
|
||||
sub_08093E3C,
|
||||
sub_08093EAC,
|
||||
};
|
||||
gUnk_0812295C[super->action](this);
|
||||
}
|
||||
|
||||
void sub_08093E3C(Object64Entity* this) {
|
||||
const u16* ptr;
|
||||
super->action = 1;
|
||||
super->flags &= 0x7f;
|
||||
super->spriteSettings.draw = 1;
|
||||
if (super->collisionLayer == 0) {
|
||||
ResolveCollisionLayer(super);
|
||||
}
|
||||
InitializeAnimation(super, super->type);
|
||||
ptr = &gUnk_08122950[super->type].unk_0;
|
||||
if ((ptr[0] != 0) && ((super->type2 & 0x40) == 0)) {
|
||||
EnqueueSFX(ptr[0]);
|
||||
}
|
||||
if ((super->type2 & 0x20) != 0) {
|
||||
super->spriteRendering.b3 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08093EAC(Object64Entity* this) {
|
||||
static void (*const gUnk_08122964[])(Object64Entity*) = {
|
||||
sub_08093ED0,
|
||||
sub_08093EF0,
|
||||
};
|
||||
gUnk_08122964[gUnk_08122950[super->type].unk_2 >> 4](this);
|
||||
}
|
||||
|
||||
void sub_08093ED0(Object64Entity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
DeleteEntity(super);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08093EF0(Object64Entity* this) {
|
||||
Entity* object;
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
if (super->subAction != 0) {
|
||||
return;
|
||||
}
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) == 0) {
|
||||
return;
|
||||
}
|
||||
object = CreateObject(OBJECT_64, 1, 0);
|
||||
if (object != NULL) {
|
||||
object->parent = super->parent;
|
||||
CopyPosition(super, object);
|
||||
}
|
||||
DeleteThisEntity();
|
||||
break;
|
||||
case 1:
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 1) != 0) {
|
||||
super->frame = 0;
|
||||
object = CreateObject(OBJECT_64, 2, 0);
|
||||
if (object != NULL) {
|
||||
object->parent = super->parent;
|
||||
CopyPosition(super, object);
|
||||
}
|
||||
}
|
||||
if ((super->frame & 0x80) == 0) {
|
||||
return;
|
||||
}
|
||||
if (super->parent == &gPlayerEntity) {
|
||||
SoundReq(SFX_PLY_VO6);
|
||||
sub_08079D84();
|
||||
}
|
||||
DeleteThisEntity();
|
||||
break;
|
||||
case 2:
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) == 0) {
|
||||
return;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* @file object70.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object70 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
void Object70_Init(Entity*);
|
||||
void Object70_Action1(Entity*);
|
||||
|
||||
void Object70(Entity* this) {
|
||||
static void (*const Object70_Actions[])(Entity*) = {
|
||||
Object70_Init,
|
||||
Object70_Action1,
|
||||
};
|
||||
Object70_Actions[this->action](this);
|
||||
}
|
||||
|
||||
void Object70_Init(Entity* this) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
this->frameIndex = this->type + 0xb;
|
||||
if (this->type != 0) {
|
||||
sub_08004168(this);
|
||||
gPlayerEntity.spriteOrientation.flipY = 3;
|
||||
if ((gPlayerEntity.spritePriority.b0) != 7) {
|
||||
this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1;
|
||||
} else {
|
||||
this->spritePriority.b0 = 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Object70_Action1(Entity* this) {
|
||||
u8 bVar1;
|
||||
|
||||
if (this->type == 0) {
|
||||
if (gPlayerEntity.z.WORD == 0) {
|
||||
if ((((gPlayerState.dash_state & 0x40) == 0) && (gPlayerState.floor_type == 0x11)) &&
|
||||
((gPlayerEntity.action == 1 || ((gPlayerEntity.action == 0x18 || (gPlayerEntity.action == 4)))))) {
|
||||
goto _080974FA;
|
||||
} else {
|
||||
if (gPlayerEntity.z.WORD == 0) {
|
||||
CreateFx(&gPlayerEntity, FX_GREEN_SPLASH, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
gPlayerEntity.spriteOrientation.flipY = 2;
|
||||
DeleteThisEntity();
|
||||
_080974FA:
|
||||
this->x = gPlayerEntity.x;
|
||||
this->y = gPlayerEntity.y;
|
||||
if (gPlayerState.jump_status == 0) {
|
||||
gPlayerEntity.spriteOrientation.flipY = 3;
|
||||
if (gPlayerEntity.spritePriority.b0 != 7) {
|
||||
this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1;
|
||||
} else {
|
||||
this->spritePriority.b0 = 7;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (gPlayerEntity.action != 0x1e) {
|
||||
if (this->collisionLayer == 1) {
|
||||
gPlayerEntity.spriteOrientation.flipY = 2;
|
||||
} else {
|
||||
gPlayerEntity.spriteOrientation.flipY = 1;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* @file object74.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object74 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x1e];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} Object74Entity;
|
||||
|
||||
void sub_08097B84(Object74Entity*);
|
||||
void sub_08097BDC(Object74Entity*);
|
||||
void sub_08097C18(Object74Entity*);
|
||||
void sub_08097C20(Object74Entity*);
|
||||
void sub_08097C1C(Object74Entity*);
|
||||
void sub_08097CFC(Object74Entity*);
|
||||
bool32 sub_08097CB0(Object74Entity*);
|
||||
void sub_08097CB4(Object74Entity*);
|
||||
|
||||
const Hitbox gUnk_08123328 = { 0, 0, { 4, 0, 0, 4 }, 18, 18 };
|
||||
|
||||
void Object74(Object74Entity* this) {
|
||||
static void (*const gUnk_08123330[])(Object74Entity*) = {
|
||||
sub_08097B84, sub_08097BDC, sub_08097C18, sub_08097C20, sub_08097C1C,
|
||||
};
|
||||
gUnk_08123330[super->action](this);
|
||||
}
|
||||
|
||||
void sub_08097B84(Object74Entity* this) {
|
||||
super->action = 1;
|
||||
super->spritePriority.b0 = 7;
|
||||
super->hitbox = (Hitbox*)&gUnk_08123328;
|
||||
if ((this->unk_86 == 0xffff) || (CheckFlags(this->unk_86))) {
|
||||
super->spriteSettings.draw = 1;
|
||||
super->action = 4;
|
||||
sub_08097CFC(this);
|
||||
} else {
|
||||
sub_0805BC4C();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08097BDC(Object74Entity* this) {
|
||||
if (CheckFlags(this->unk_86)) {
|
||||
SetPlayerControl(CONTROL_1);
|
||||
gUnk_02034490.unk0 = 1;
|
||||
RequestPriorityDuration(super, 0x1e);
|
||||
if (sub_08097CB0(this) == FALSE) {
|
||||
sub_08097CB4(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08097C18(Object74Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08097C1C(Object74Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08097C20(Object74Entity* this) {
|
||||
u32 tmp;
|
||||
SetPriorityTimer(0x1e);
|
||||
sub_0800445C(super);
|
||||
CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->actionDelay = 8;
|
||||
tmp = ++super->field_0xf;
|
||||
gScreen.controls.alphaBlend = (((0x10 - tmp) * 0x100)) | tmp;
|
||||
if (gScreen.controls.alphaBlend == 0x10) {
|
||||
SetPlayerControl(CONTROL_ENABLED);
|
||||
gUnk_02034490.unk0 = 0;
|
||||
gScreen.controls.layerFXControl = 0;
|
||||
sub_08097CFC(this);
|
||||
super->action = 4;
|
||||
super->spriteRendering.alphaBlend = 0;
|
||||
SoundReq(SFX_SECRET);
|
||||
SetGlobalFlag(TINY_ENTRANCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_08097CB0(Object74Entity* this) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_08097CB4(Object74Entity* this) {
|
||||
super->action = 3;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->spriteRendering.alphaBlend = 1;
|
||||
super->actionDelay = 0x1e;
|
||||
super->field_0xf = 0;
|
||||
gScreen.controls.layerFXControl = 0xf40;
|
||||
gScreen.controls.alphaBlend = 0x1000;
|
||||
SoundReq(SFX_14A);
|
||||
}
|
||||
|
||||
void sub_08097CFC(Object74Entity* this) {
|
||||
static const u16 gUnk_08123344[] = { 16448, 65471, 16449, 65472, 16450, 65473, 16451, 65535, 16452, 0,
|
||||
16453, 1, 16454, 63, 16455, 64, 16456, 65, 65535 };
|
||||
static const u16 gUnk_0812336A[] = {
|
||||
16449, 65471, 16449, 65472, 16452, 65535, 16452, 0, 16455, 63, 16455, 64, 65535
|
||||
};
|
||||
if ((super->x.HALF.HI & 0xf) == 0) {
|
||||
SetMultipleTiles((u16*)gUnk_0812336A, COORD_TO_TILE(super), super->collisionLayer);
|
||||
} else {
|
||||
SetMultipleTiles((u16*)gUnk_08123344, COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
/**
|
||||
* @file objectB.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectB object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "itemMetaData.h"
|
||||
#include "message.h"
|
||||
#include "save.h"
|
||||
#include "game.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u16 unk_68;
|
||||
} ObjectBEntity;
|
||||
|
||||
typedef struct {
|
||||
u8 unk_0[6];
|
||||
u16 unk_6;
|
||||
} struct_080FD964;
|
||||
extern const struct_080FD964 gUnk_080FD964[];
|
||||
extern const u16 gUnk_080FD5B4[];
|
||||
|
||||
void ObjectB_Init(ObjectBEntity*);
|
||||
void ObjectB_Action1(ObjectBEntity*);
|
||||
void ObjectB_Action2(ObjectBEntity*);
|
||||
void ObjectB_Action3(ObjectBEntity*);
|
||||
|
||||
void ObjectB(ObjectBEntity* this) {
|
||||
static void (*const ObjectB_Actions[])(ObjectBEntity*) = { ObjectB_Init, ObjectB_Action1, ObjectB_Action2,
|
||||
ObjectB_Action3 };
|
||||
u32 tmp;
|
||||
ObjectB_Actions[super->action](this);
|
||||
tmp = (super->parent->frame >> 6);
|
||||
super->spriteSettings.draw = tmp & 1;
|
||||
sub_08080CB4(super);
|
||||
super->spritePriority.b1 = 0;
|
||||
super->spriteOrientation.flipY = 1;
|
||||
super->spriteRendering.b3 = 0;
|
||||
}
|
||||
|
||||
void ObjectB_Init(ObjectBEntity* this) {
|
||||
SetDefaultPriority(super, 6);
|
||||
super->action = 1;
|
||||
}
|
||||
|
||||
void ObjectB_Action1(ObjectBEntity* this) {
|
||||
u32 tmp;
|
||||
const ItemMetaData* ptr;
|
||||
|
||||
if ((super->parent)->frame != 0x41) {
|
||||
return;
|
||||
}
|
||||
super->action = 2;
|
||||
switch (super->actionDelay) {
|
||||
case 0:
|
||||
case 1:
|
||||
this->unk_68 = GiveItem(super->type, super->type2);
|
||||
switch (super->type) {
|
||||
case 0x40:
|
||||
case 0x41:
|
||||
case 0x42:
|
||||
case 0x43:
|
||||
break;
|
||||
default:
|
||||
SoundReq(SFX_109);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
GiveItem(super->type, super->type2);
|
||||
this->unk_68 = gUnk_080FD964[super->type].unk_6;
|
||||
SoundReq(SFX_109);
|
||||
break;
|
||||
case 5:
|
||||
tmp = GetInventoryValue((u32)super->type);
|
||||
ptr = &gItemMetaData[super->type];
|
||||
if (tmp == 0) {
|
||||
this->unk_68 = *(u16*)&ptr->unk4;
|
||||
} else {
|
||||
this->unk_68 = *(u16*)&ptr->unk6;
|
||||
}
|
||||
return;
|
||||
case 3:
|
||||
case 4:
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectB_Action2(ObjectBEntity* this) {
|
||||
u32 messageIndex;
|
||||
if ((super->parent)->frame == 0x42) {
|
||||
super->action = 3;
|
||||
switch (super->actionDelay) {
|
||||
case 1:
|
||||
case 3:
|
||||
case 4:
|
||||
default:
|
||||
break;
|
||||
case 0:
|
||||
case 2:
|
||||
case 5:
|
||||
messageIndex = this->unk_68;
|
||||
if (messageIndex != 0) {
|
||||
switch (super->type) {
|
||||
case 0x63:
|
||||
messageIndex += gSave.stats.heartPieces;
|
||||
break;
|
||||
case 0x3f:
|
||||
if (super->type2 > 1) {
|
||||
if (messageIndex == 0x577) {
|
||||
messageIndex--;
|
||||
} else {
|
||||
messageIndex++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
MessageFromTarget(messageIndex);
|
||||
gMessage.field_0x10 = super->type2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectB_Action3(ObjectBEntity* this) {
|
||||
u32 tmp;
|
||||
if ((super->parent)->action == 8) {
|
||||
return;
|
||||
}
|
||||
switch (super->actionDelay) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
if (super->type != 0x62) {
|
||||
if (super->type != 0x63) {
|
||||
break;
|
||||
}
|
||||
ModHealth(0xa0);
|
||||
gSave.stats.heartPieces++;
|
||||
if (gSave.stats.heartPieces < 4) {
|
||||
break;
|
||||
}
|
||||
gSave.stats.heartPieces = 0;
|
||||
}
|
||||
gSave.stats.maxHealth += 8;
|
||||
if (gSave.stats.maxHealth > 0xa0) {
|
||||
gSave.stats.maxHealth = 0xa0;
|
||||
}
|
||||
ModHealth(0xa0);
|
||||
break;
|
||||
case 3:
|
||||
tmp = GetBottleContaining(super->type);
|
||||
if (tmp != 0) {
|
||||
gSave.stats.itemButtons[tmp + 1] = 0x20;
|
||||
} else {
|
||||
SetInventoryValue(super->type, ITEM_GREEN_SWORD);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* @file objectB3.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectB3 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "kinstone.h"
|
||||
|
||||
void sub_080A0ADC(Entity*);
|
||||
void sub_080A0AF0(Entity*);
|
||||
void sub_080A0AC4(Entity*);
|
||||
void sub_080A0AD0(Entity*);
|
||||
void sub_080A0B4C(Entity*);
|
||||
void sub_080A0B60(Entity*);
|
||||
void sub_080A0B80(Entity*);
|
||||
|
||||
void ObjectB3(Entity* this) {
|
||||
static void (*const gUnk_08124A10[])(Entity*) = {
|
||||
sub_080A0ADC,
|
||||
sub_080A0AF0,
|
||||
};
|
||||
static void (*const gUnk_08124A18[])(Entity*) = {
|
||||
sub_080A0AC4,
|
||||
sub_080A0AD0,
|
||||
};
|
||||
static void (*const gUnk_08124A20[])(Entity*) = {
|
||||
sub_080A0B4C,
|
||||
sub_080A0B60,
|
||||
sub_080A0B80,
|
||||
};
|
||||
void (*const* ptr)(Entity*);
|
||||
|
||||
switch (this->type) {
|
||||
case 0:
|
||||
if ((this->flags & 2) != 0) {
|
||||
ptr = gUnk_08124A10;
|
||||
} else {
|
||||
ptr = gUnk_08124A18;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
ptr = gUnk_08124A20;
|
||||
break;
|
||||
}
|
||||
ptr[this->action](this);
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->spritePriority.b0 = 0;
|
||||
this->spriteOrientation.flipY = 1;
|
||||
ChangeObjPalette(this, gUnk_080C9CBC[gFuseInfo._3].unk0);
|
||||
}
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
void sub_080A0AC4(Entity* this) {
|
||||
InitializeAnimation(this, this->type);
|
||||
}
|
||||
|
||||
void sub_080A0AD0(Entity* this) {
|
||||
GravityUpdate(this, 0x80);
|
||||
}
|
||||
|
||||
void sub_080A0ADC(Entity* this) {
|
||||
sub_0807DD64(this);
|
||||
ExecuteScriptForEntity(this, NULL);
|
||||
}
|
||||
|
||||
void sub_080A0AF0(Entity* this) {
|
||||
ExecuteScriptForEntity(this, NULL);
|
||||
GetNextFrame(this);
|
||||
if (this->animIndex == 5) {
|
||||
if ((this->frame & 0x80) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
GravityUpdate(this, 0x80);
|
||||
}
|
||||
|
||||
void sub_080A0B28(Entity* this, ScriptExecutionContext* context) {
|
||||
sub_0807DEDC(this, context, this->x.HALF.HI, this->y.HALF.HI);
|
||||
this->y.HALF.HI -= 0xb0;
|
||||
this->spriteSettings.draw = 0;
|
||||
}
|
||||
|
||||
void sub_080A0B4C(Entity* this) {
|
||||
this->x.HALF.HI = 0x78;
|
||||
this->y.HALF.HI = 0x50;
|
||||
InitializeAnimation(this, 0);
|
||||
}
|
||||
|
||||
void sub_080A0B60(Entity* this) {
|
||||
if ((this->frame & 0x40) != 0) {
|
||||
this->action = 2;
|
||||
SoundReq(SFX_136);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A0B80(Entity* this) {
|
||||
this->y.WORD -= 0x28000;
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
/**
|
||||
* @file objectBD.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectBD object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
void sub_080A2274(Entity*);
|
||||
void sub_080A22B0(Entity*);
|
||||
void sub_080A22C4(Entity*);
|
||||
void sub_080A2340(Entity*);
|
||||
|
||||
typedef struct {
|
||||
u16 unk_0;
|
||||
u16 unk_2;
|
||||
u16 unk_4;
|
||||
u8 unk_6;
|
||||
u8 pad;
|
||||
} struct_08125014;
|
||||
|
||||
const struct_08125014 gUnk_08125014[] = {
|
||||
{ 120, 48, 16, 4, 0 }, { 136, 81, 22, 3, 0 }, { 190, 20, 25, 2, 0 }, { 192, 81, 26, 2, 0 }, { 32, 104, 27, 3, 0 },
|
||||
};
|
||||
|
||||
void ObjectBD(Entity* this) {
|
||||
static void (*const gUnk_0812503C[])(Entity*) = {
|
||||
sub_080A2274, sub_080A22B0, sub_080A22B0, sub_080A22B0, sub_080A22C4,
|
||||
};
|
||||
gUnk_0812503C[this->type](this);
|
||||
}
|
||||
|
||||
void sub_080A2274(Entity* this) {
|
||||
u32 addr;
|
||||
u32 type;
|
||||
|
||||
if (this->action == 0) {
|
||||
sub_080A2340(this);
|
||||
CreateObject(OBJECT_BD, 1, 0);
|
||||
addr = 0x02000000; // TODO write to 0x2000007
|
||||
if (*(u8*)(addr + 7) == 1) {
|
||||
type = 2;
|
||||
} else {
|
||||
type = 3;
|
||||
}
|
||||
CreateObject(OBJECT_BD, type, 0);
|
||||
CreateObject(OBJECT_BD, 4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A22B0(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
sub_080A2340(this);
|
||||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/objectBD/sub_080A22C4.inc", void sub_080A22C4(Entity* this)) {
|
||||
u8 bVar1;
|
||||
u8 uVar2;
|
||||
s16 sVar3;
|
||||
u32 uVar4;
|
||||
u32 tmp1, tmp2, tmp3, tmp4;
|
||||
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
sub_080A2340(this);
|
||||
this->actionDelay = 8;
|
||||
this->field_0xf = 0;
|
||||
this->subAction = this->frameIndex;
|
||||
this->speed = (Random() & 3) * 0x10 + 0x1e;
|
||||
break;
|
||||
case 1:
|
||||
if (--this->speed != 0) {
|
||||
return;
|
||||
}
|
||||
this->speed = (Random() & 7) * 0x10 + 0x1e;
|
||||
this->action = 2;
|
||||
break;
|
||||
default:
|
||||
if (--this->actionDelay != 0) {
|
||||
return;
|
||||
}
|
||||
this->actionDelay = 8;
|
||||
this->field_0xf = tmp2 = (this->field_0xf + 1) & 3;
|
||||
tmp3 = this->subAction;
|
||||
tmp1 = tmp3 + tmp2;
|
||||
this->frameIndex = tmp1;
|
||||
if (tmp3 * 0x1000000 != tmp1 * 0x1000000) {
|
||||
return;
|
||||
}
|
||||
this->action = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_080A2340(Entity* this) {
|
||||
const struct_08125014* ptr;
|
||||
ptr = &gUnk_08125014[this->type];
|
||||
this->x.HALF.HI = ptr->unk_0;
|
||||
this->y.HALF.HI = ptr->unk_2;
|
||||
this->frameIndex = ptr->unk_4;
|
||||
this->spritePriority.b0 = ptr->unk_6;
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->spriteSettings.draw = 2;
|
||||
this->action = 1;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @file objectD.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectD 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[0x1e];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} ObjectDEntity;
|
||||
|
||||
void sub_0808434C(ObjectDEntity*);
|
||||
void sub_080843F8(ObjectDEntity*);
|
||||
void sub_08084428(ObjectDEntity*);
|
||||
|
||||
void (*const gUnk_0811F908[])(ObjectDEntity*) = {
|
||||
sub_0808434C,
|
||||
sub_080843F8,
|
||||
sub_08084428,
|
||||
(void (*)(ObjectDEntity*))GetNextFrame,
|
||||
};
|
||||
|
||||
void ObjectD(ObjectDEntity* this) {
|
||||
gUnk_0811F908[super->action](this);
|
||||
}
|
||||
|
||||
void sub_0808434C(ObjectDEntity* this) {
|
||||
super->action = 1;
|
||||
super->flags |= 0x80;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->field_0x3c = 7;
|
||||
super->hitType = 1;
|
||||
super->hurtType = 0x47;
|
||||
super->flags2 = 2;
|
||||
super->hitbox = (Hitbox*)&gHitbox_4;
|
||||
SetTile(0x4050, COORD_TO_TILE(super), super->collisionLayer);
|
||||
if (super->type == 1 || CheckFlags(this->unk_86)) {
|
||||
super->action = 3;
|
||||
SetFlag(this->unk_86);
|
||||
InitializeAnimation(super, 1);
|
||||
} else {
|
||||
InitializeAnimation(super, super->type);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080843F8(ObjectDEntity* this) {
|
||||
if (super->bitfield == 0x9c) {
|
||||
super->action = 2;
|
||||
super->flags &= 0x7f;
|
||||
CreateFx(super, FX_ICE, 0);
|
||||
EnqueueSFX(SFX_10D);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08084428(ObjectDEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 1) != 0) {
|
||||
super->action = 3;
|
||||
SetFlag(this->unk_86);
|
||||
EnqueueSFX(SFX_BUTTON_PRESS);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* @file objectE.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief ObjectE object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
void ObjectE(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->actionDelay = 0x14;
|
||||
sub_08004168(this);
|
||||
} else {
|
||||
if (this->actionDelay-- == 0) {
|
||||
sub_0807B7D8(0x35, COORD_TO_TILE(this), this->collisionLayer);
|
||||
CreateFx(this, FX_FALL_DOWN, 0x40);
|
||||
SoundReq(SFX_126);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* @file paper.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Paper object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
void Paper_Init(Entity*);
|
||||
void Paper_Action1(Entity*);
|
||||
void Paper_Type0(Entity*);
|
||||
void Paper_Type1(Entity*);
|
||||
void Paper_Type2(Entity*);
|
||||
|
||||
void Paper(Entity* this) {
|
||||
static void (*const Paper_Actions[])(Entity*) = {
|
||||
Paper_Init,
|
||||
Paper_Action1,
|
||||
};
|
||||
Paper_Actions[this->action](this);
|
||||
}
|
||||
|
||||
void Paper_Init(Entity* this) {
|
||||
static void (*const Paper_Types[])(Entity*) = {
|
||||
Paper_Type0,
|
||||
Paper_Type1,
|
||||
Paper_Type2,
|
||||
};
|
||||
Paper_Types[this->type](this);
|
||||
}
|
||||
|
||||
void Paper_Type0(Entity* this) {
|
||||
this->action = 1;
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->z.HALF.HI -= 8;
|
||||
if (this->type2 != 1) {
|
||||
if (this->type2 != 2) {
|
||||
return;
|
||||
}
|
||||
this->spriteSettings.draw = 0;
|
||||
}
|
||||
SetTile(0x4051, COORD_TO_TILE(this), 1);
|
||||
}
|
||||
|
||||
void Paper_Type1(Entity* this) {
|
||||
this->action = 1;
|
||||
this->frameIndex = this->type2;
|
||||
switch (this->type2) {
|
||||
case 0:
|
||||
this->spriteOffsetY = 2;
|
||||
break;
|
||||
case 2:
|
||||
this->spriteOffsetY = -2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Paper_Type2(Entity* this) {
|
||||
this->action = 1;
|
||||
this->y.HALF.HI++;
|
||||
this->spriteOffsetY = -1;
|
||||
SetTile(0x4051, COORD_TO_TILE(this) - 1, 1);
|
||||
SetTile(0x4051, COORD_TO_TILE(this), 1);
|
||||
}
|
||||
|
||||
void Paper_Action1(Entity* this) {
|
||||
if (this->type == 0) {
|
||||
if ((gPlayerEntity.y.HALF.HI < this->y.HALF.HI) || (gPlayerEntity.y.HALF.HI) > this->y.HALF.HI + 0x18) {
|
||||
this->spriteRendering.b3 = 1;
|
||||
} else {
|
||||
this->spriteRendering.b3 = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,7 +78,7 @@ void PushableGrave_Init(PushableGraveEntity* this) {
|
||||
super->hitbox = (Hitbox*)&gUnk_080FD570;
|
||||
SetTile(tileIndex, tilePosition, super->collisionLayer);
|
||||
if (super->type2 == 2) {
|
||||
sub_0801AF18((u8*)gUnk_081232C0, tilePosition, super->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232C0, tilePosition, super->collisionLayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,22 +15,17 @@ void StoneTablet(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_080979CC(Entity* this) {
|
||||
static const u8 gUnk_081232EC[] = {
|
||||
0x22, 0x40, 0xFE, 0xFF, 0x22, 0x40, 0xFF, 0xFF, 0x22, 0x40, 0x0, 0x0, 0x22, 0x40, 0x1, 0x0, 0xFF, 0xFF,
|
||||
};
|
||||
|
||||
static const u8 gUnk_081232FE[] = {
|
||||
0x65, 0x40, 0xBF, 0xFF, 0x22, 0x40, 0xC0, 0xFF, 0x66, 0x40, 0xC1, 0xFF, 0x29,
|
||||
0x40, 0xFF, 0xFF, 0x26, 0x40, 0x0, 0x0, 0x2A, 0x40, 0x1, 0x0, 0xFF, 0xFF,
|
||||
};
|
||||
static const u16 gUnk_081232EC[] = { 0x4022, 0xfffe, 0x4022, 0xffff, 0x4022, 0x0, 0x4022, 0x1, 0xffff };
|
||||
static const u16 gUnk_081232FE[] = { 0x4065, 0xffbf, 0x4022, 0xffc0, 0x4066, 0xffc1, 0x4029,
|
||||
0xffff, 0x4026, 0x0, 0x402a, 0x1, 0xffff };
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
if (this->type == 3) {
|
||||
this->frameIndex = 0;
|
||||
sub_0801AF18(gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer);
|
||||
} else {
|
||||
this->frameIndex = this->type;
|
||||
sub_0801AF18(gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user