mirror of https://github.com/zeldaret/tmc.git
commit
85aaada18f
|
@ -0,0 +1,59 @@
|
||||||
|
.syntax unified
|
||||||
|
push {r4, r5, r6, r7, lr}
|
||||||
|
mov r7, r8
|
||||||
|
push {r7}
|
||||||
|
movs r5, #0
|
||||||
|
ldrh r1, [r0, #0x2e]
|
||||||
|
subs r1, #8
|
||||||
|
lsls r1, r1, #0x10
|
||||||
|
lsrs r1, r1, #0x10
|
||||||
|
mov ip, r1
|
||||||
|
ldrh r1, [r0, #0x32]
|
||||||
|
subs r1, #8
|
||||||
|
lsls r1, r1, #0x10
|
||||||
|
lsrs r7, r1, #0x10
|
||||||
|
movs r4, #0
|
||||||
|
ldr r1, _080889A0 @ =gRoomVars
|
||||||
|
ldr r2, _080889A4 @ =sSpriteOffsets
|
||||||
|
mov r8, r2
|
||||||
|
adds r3, r1, #0
|
||||||
|
adds r3, #0xac
|
||||||
|
adds r6, r0, #0
|
||||||
|
adds r6, #0x72
|
||||||
|
_08088962:
|
||||||
|
ldr r2, [r3]
|
||||||
|
cmp r2, #0
|
||||||
|
beq _08088990
|
||||||
|
ldrh r0, [r2, #0x2e]
|
||||||
|
mov r1, ip
|
||||||
|
subs r0, r0, r1
|
||||||
|
lsls r0, r0, #0x10
|
||||||
|
lsrs r0, r0, #0x10
|
||||||
|
cmp r0, #0x10
|
||||||
|
bhi _08088990
|
||||||
|
ldrh r0, [r2, #0x32]
|
||||||
|
subs r0, r0, r7
|
||||||
|
lsls r0, r0, #0x10
|
||||||
|
lsrs r0, r0, #0x10
|
||||||
|
cmp r0, #0x10
|
||||||
|
bhi _08088990
|
||||||
|
ldrb r0, [r6]
|
||||||
|
add r0, r8
|
||||||
|
ldrb r1, [r0]
|
||||||
|
adds r0, r2, #0
|
||||||
|
adds r0, #0x63
|
||||||
|
strb r1, [r0]
|
||||||
|
adds r5, #1
|
||||||
|
_08088990:
|
||||||
|
adds r3, #4
|
||||||
|
adds r4, #1
|
||||||
|
cmp r4, #7
|
||||||
|
bls _08088962
|
||||||
|
adds r0, r5, #0
|
||||||
|
pop {r3}
|
||||||
|
mov r8, r3
|
||||||
|
pop {r4, r5, r6, r7, pc}
|
||||||
|
.align 2, 0
|
||||||
|
_080889A0: .4byte gRoomVars
|
||||||
|
_080889A4: .4byte sSpriteOffsets
|
||||||
|
.syntax divided
|
|
@ -392,7 +392,7 @@ _0808D972:
|
||||||
strh r0, [r4, #0x36]
|
strh r0, [r4, #0x36]
|
||||||
ldr r1, _0808D994 @ =gPlayerEntity
|
ldr r1, _0808D994 @ =gPlayerEntity
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_080177A0
|
bl IsColliding
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _0808D992
|
beq _0808D992
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
|
|
|
@ -151,7 +151,7 @@ sub_080A02CC: @ 0x080A02CC
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_080A0444
|
bl sub_080A0444
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_08017850
|
bl IsCollidingPlayer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080A0342
|
beq _080A0342
|
||||||
ldr r0, [r4, #0x54]
|
ldr r0, [r4, #0x54]
|
||||||
|
|
|
@ -144,7 +144,7 @@ _0808A930:
|
||||||
asrs r0, r0, #0x18
|
asrs r0, r0, #0x18
|
||||||
strh r0, [r4, #0x36]
|
strh r0, [r4, #0x36]
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_08017850
|
bl IsCollidingPlayer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _0808A962
|
beq _0808A962
|
||||||
_0808A954:
|
_0808A954:
|
||||||
|
|
|
@ -189,7 +189,7 @@ sub_0809D8C8: @ 0x0809D8C8
|
||||||
_0809D8E4: .4byte gPlayerState
|
_0809D8E4: .4byte gPlayerState
|
||||||
_0809D8E8:
|
_0809D8E8:
|
||||||
adds r0, r5, #0
|
adds r0, r5, #0
|
||||||
bl sub_08017850
|
bl IsCollidingPlayer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _0809D90A
|
beq _0809D90A
|
||||||
ldrb r0, [r6, #0xd]
|
ldrb r0, [r6, #0xd]
|
||||||
|
|
|
@ -340,7 +340,7 @@ _0809FD1C:
|
||||||
strh r0, [r4, #0x36]
|
strh r0, [r4, #0x36]
|
||||||
ldr r1, _0809FD48 @ =gPlayerEntity
|
ldr r1, _0809FD48 @ =gPlayerEntity
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_080177A0
|
bl IsColliding
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _0809FD44
|
beq _0809FD44
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
|
|
|
@ -1,308 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
|
|
||||||
thumb_func_start PressurePlate
|
|
||||||
PressurePlate: @ 0x08088804
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldrb r0, [r4, #0xf]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08088828
|
|
||||||
subs r0, #1
|
|
||||||
strb r0, [r4, #0xf]
|
|
||||||
lsls r0, r0, #0x18
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08088828
|
|
||||||
ldrb r0, [r4, #0x14]
|
|
||||||
adds r1, r4, #0
|
|
||||||
adds r1, #0x72
|
|
||||||
strb r0, [r1]
|
|
||||||
ldrb r1, [r4, #0x14]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
_08088828:
|
|
||||||
ldr r0, _0808883C @ =gUnk_08120BE0
|
|
||||||
ldrb r1, [r4, #0xc]
|
|
||||||
lsls r1, r1, #2
|
|
||||||
adds r1, r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0808883C: .4byte gUnk_08120BE0
|
|
||||||
|
|
||||||
thumb_func_start sub_08088840
|
|
||||||
sub_08088840: @ 0x08088840
|
|
||||||
movs r3, #1
|
|
||||||
movs r1, #1
|
|
||||||
strb r1, [r0, #0xc]
|
|
||||||
ldrb r2, [r0, #0x18]
|
|
||||||
subs r1, #5
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r3
|
|
||||||
strb r1, [r0, #0x18]
|
|
||||||
adds r3, r0, #0
|
|
||||||
adds r3, #0x29
|
|
||||||
ldrb r1, [r3]
|
|
||||||
movs r2, #7
|
|
||||||
orrs r1, r2
|
|
||||||
strb r1, [r3]
|
|
||||||
ldr r1, _08088868 @ =gUnk_080FD1D4
|
|
||||||
str r1, [r0, #0x48]
|
|
||||||
ldrb r1, [r0, #0x14]
|
|
||||||
adds r0, #0x72
|
|
||||||
strb r1, [r0]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08088868: .4byte gUnk_080FD1D4
|
|
||||||
|
|
||||||
thumb_func_start sub_0808886C
|
|
||||||
sub_0808886C: @ 0x0808886C
|
|
||||||
push {r4, r5, lr}
|
|
||||||
adds r5, r0, #0
|
|
||||||
bl sub_08088938
|
|
||||||
adds r4, r0, #0
|
|
||||||
adds r0, r5, #0
|
|
||||||
bl sub_080889A8
|
|
||||||
adds r4, r4, r0
|
|
||||||
lsls r4, r4, #0x18
|
|
||||||
lsrs r4, r4, #0x18
|
|
||||||
ldrb r1, [r5, #0xa]
|
|
||||||
adds r0, r1, #2
|
|
||||||
cmp r0, r4
|
|
||||||
bgt _080888B8
|
|
||||||
movs r1, #0
|
|
||||||
movs r0, #2
|
|
||||||
strb r0, [r5, #0xc]
|
|
||||||
strb r1, [r5, #0xf]
|
|
||||||
movs r0, #4
|
|
||||||
strb r0, [r5, #0x14]
|
|
||||||
strh r1, [r5, #0x36]
|
|
||||||
adds r0, r5, #0
|
|
||||||
movs r1, #4
|
|
||||||
bl InitializeAnimation
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r0, #0x86
|
|
||||||
ldrh r0, [r0]
|
|
||||||
bl SetFlag
|
|
||||||
ldr r0, _080888B4 @ =0x0000016B
|
|
||||||
bl EnqueueSFX
|
|
||||||
b _080888F2
|
|
||||||
.align 2, 0
|
|
||||||
_080888B4: .4byte 0x0000016B
|
|
||||||
_080888B8:
|
|
||||||
ldrb r0, [r5, #0x14]
|
|
||||||
cmp r4, r0
|
|
||||||
bls _080888E4
|
|
||||||
adds r0, r1, #1
|
|
||||||
cmp r0, r4
|
|
||||||
bne _080888D2
|
|
||||||
movs r0, #4
|
|
||||||
strb r0, [r5, #0xf]
|
|
||||||
adds r1, r4, #1
|
|
||||||
adds r0, r5, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
b _080888DA
|
|
||||||
_080888D2:
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r1, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
_080888DA:
|
|
||||||
movs r0, #0x86
|
|
||||||
lsls r0, r0, #1
|
|
||||||
bl EnqueueSFX
|
|
||||||
b _080888F0
|
|
||||||
_080888E4:
|
|
||||||
cmp r4, r0
|
|
||||||
bhs _080888F0
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r1, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
_080888F0:
|
|
||||||
strb r4, [r5, #0x14]
|
|
||||||
_080888F2:
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_080888F4
|
|
||||||
sub_080888F4: @ 0x080888F4
|
|
||||||
push {r4, r5, lr}
|
|
||||||
adds r5, r0, #0
|
|
||||||
adds r0, #0x70
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08088934
|
|
||||||
adds r0, r5, #0
|
|
||||||
bl sub_08088938
|
|
||||||
adds r4, r0, #0
|
|
||||||
adds r0, r5, #0
|
|
||||||
bl sub_080889A8
|
|
||||||
adds r4, r4, r0
|
|
||||||
lsls r4, r4, #0x18
|
|
||||||
lsrs r4, r4, #0x18
|
|
||||||
ldrb r0, [r5, #0xa]
|
|
||||||
adds r0, #2
|
|
||||||
cmp r0, r4
|
|
||||||
ble _08088934
|
|
||||||
movs r0, #1
|
|
||||||
strb r0, [r5, #0xc]
|
|
||||||
strb r4, [r5, #0x14]
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r0, #0x86
|
|
||||||
ldrh r0, [r0]
|
|
||||||
bl ClearFlag
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r1, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
_08088934:
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_08088938
|
|
||||||
sub_08088938: @ 0x08088938
|
|
||||||
push {r4, r5, r6, r7, lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
movs r5, #0
|
|
||||||
ldrh r1, [r0, #0x2e]
|
|
||||||
subs r1, #8
|
|
||||||
lsls r1, r1, #0x10
|
|
||||||
lsrs r1, r1, #0x10
|
|
||||||
mov ip, r1
|
|
||||||
ldrh r1, [r0, #0x32]
|
|
||||||
subs r1, #8
|
|
||||||
lsls r1, r1, #0x10
|
|
||||||
lsrs r7, r1, #0x10
|
|
||||||
movs r4, #0
|
|
||||||
ldr r1, _080889A0 @ =gRoomVars
|
|
||||||
ldr r2, _080889A4 @ =gUnk_08120BEC
|
|
||||||
mov r8, r2
|
|
||||||
adds r3, r1, #0
|
|
||||||
adds r3, #0xac
|
|
||||||
adds r6, r0, #0
|
|
||||||
adds r6, #0x72
|
|
||||||
_08088962:
|
|
||||||
ldr r2, [r3]
|
|
||||||
cmp r2, #0
|
|
||||||
beq _08088990
|
|
||||||
ldrh r0, [r2, #0x2e]
|
|
||||||
mov r1, ip
|
|
||||||
subs r0, r0, r1
|
|
||||||
lsls r0, r0, #0x10
|
|
||||||
lsrs r0, r0, #0x10
|
|
||||||
cmp r0, #0x10
|
|
||||||
bhi _08088990
|
|
||||||
ldrh r0, [r2, #0x32]
|
|
||||||
subs r0, r0, r7
|
|
||||||
lsls r0, r0, #0x10
|
|
||||||
lsrs r0, r0, #0x10
|
|
||||||
cmp r0, #0x10
|
|
||||||
bhi _08088990
|
|
||||||
ldrb r0, [r6]
|
|
||||||
add r0, r8
|
|
||||||
ldrb r1, [r0]
|
|
||||||
adds r0, r2, #0
|
|
||||||
adds r0, #0x63
|
|
||||||
strb r1, [r0]
|
|
||||||
adds r5, #1
|
|
||||||
_08088990:
|
|
||||||
adds r3, #4
|
|
||||||
adds r4, #1
|
|
||||||
cmp r4, #7
|
|
||||||
bls _08088962
|
|
||||||
adds r0, r5, #0
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4, r5, r6, r7, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_080889A0: .4byte gRoomVars
|
|
||||||
_080889A4: .4byte gUnk_08120BEC
|
|
||||||
|
|
||||||
thumb_func_start sub_080889A8
|
|
||||||
sub_080889A8: @ 0x080889A8
|
|
||||||
push {r4, r5, r6, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
movs r5, #0
|
|
||||||
bl sub_08017850
|
|
||||||
cmp r0, #0
|
|
||||||
beq _080889CA
|
|
||||||
ldr r1, _08088A40 @ =gPlayerEntity
|
|
||||||
ldr r2, _08088A44 @ =gUnk_08120BEC
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x72
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r0, r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, #0x63
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r5, #1
|
|
||||||
_080889CA:
|
|
||||||
ldr r0, _08088A48 @ =gPlayerState
|
|
||||||
ldr r0, [r0, #0x30]
|
|
||||||
movs r1, #0x80
|
|
||||||
lsls r1, r1, #0xf
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08088A3A
|
|
||||||
ldr r6, _08088A4C @ =gPlayerClones
|
|
||||||
ldr r1, [r6]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_080177A0
|
|
||||||
cmp r0, #0
|
|
||||||
beq _080889FA
|
|
||||||
ldr r1, [r6]
|
|
||||||
ldr r2, _08088A44 @ =gUnk_08120BEC
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x72
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r0, r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, #0x63
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r5, #1
|
|
||||||
_080889FA:
|
|
||||||
ldr r1, [r6, #4]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_080177A0
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08088A1A
|
|
||||||
ldr r1, [r6, #4]
|
|
||||||
ldr r2, _08088A44 @ =gUnk_08120BEC
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x72
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r0, r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, #0x63
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r5, #1
|
|
||||||
_08088A1A:
|
|
||||||
ldr r1, [r6, #8]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_080177A0
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08088A3A
|
|
||||||
ldr r1, [r6, #8]
|
|
||||||
ldr r2, _08088A44 @ =gUnk_08120BEC
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x72
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r0, r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, #0x63
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r5, #1
|
|
||||||
_08088A3A:
|
|
||||||
adds r0, r5, #0
|
|
||||||
pop {r4, r5, r6, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08088A40: .4byte gPlayerEntity
|
|
||||||
_08088A44: .4byte gUnk_08120BEC
|
|
||||||
_08088A48: .4byte gPlayerState
|
|
||||||
_08088A4C: .4byte gPlayerClones
|
|
|
@ -709,7 +709,7 @@ sub_080A11C0: @ 0x080A11C0
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _080A11DC
|
bne _080A11DC
|
||||||
adds r0, r1, #0
|
adds r0, r1, #0
|
||||||
bl sub_08017850
|
bl IsCollidingPlayer
|
||||||
b _080A11DE
|
b _080A11DE
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080A11D8: .4byte gPlayerEntity
|
_080A11D8: .4byte gPlayerEntity
|
||||||
|
|
|
@ -2861,7 +2861,7 @@
|
||||||
"size": 52
|
"size": 52
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "sounds/sfx10C.bin",
|
"path": "sounds/sfxButtonPress.bin",
|
||||||
"start": 14557448,
|
"start": 14557448,
|
||||||
"type": "midi",
|
"type": "midi",
|
||||||
"options": {
|
"options": {
|
||||||
|
@ -3906,7 +3906,7 @@
|
||||||
"size": 60
|
"size": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "sounds/sfx16B.bin",
|
"path": "sounds/sfxPressurePlate.bin",
|
||||||
"start": 14565100,
|
"start": 14565100,
|
||||||
"type": "midi",
|
"type": "midi",
|
||||||
"options": {
|
"options": {
|
||||||
|
|
|
@ -266,7 +266,7 @@
|
||||||
.equiv SFX_109, 0x109
|
.equiv SFX_109, 0x109
|
||||||
.equiv SFX_10A, 0x10a
|
.equiv SFX_10A, 0x10a
|
||||||
.equiv SFX_10B, 0x10b
|
.equiv SFX_10B, 0x10b
|
||||||
.equiv SFX_10C, 0x10c
|
.equiv SFX_BUTTON_PRESS, 0x10c
|
||||||
.equiv SFX_10D, 0x10d
|
.equiv SFX_10D, 0x10d
|
||||||
.equiv SFX_10E, 0x10e
|
.equiv SFX_10E, 0x10e
|
||||||
.equiv SFX_10F, 0x10f
|
.equiv SFX_10F, 0x10f
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
@ .align 2
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate_0:: @ 08120BF1
|
|
||||||
.include "animations/gSpriteAnimations_PressurePlate_0.s"
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate_1:: @ 08120BF5
|
|
||||||
.include "animations/gSpriteAnimations_PressurePlate_1.s"
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate_2:: @ 08120BF9
|
|
||||||
.include "animations/gSpriteAnimations_PressurePlate_2.s"
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate_3:: @ 08120BFD
|
|
||||||
.include "animations/gSpriteAnimations_PressurePlate_3.s"
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate_4:: @ 08120C01
|
|
||||||
.include "animations/gSpriteAnimations_PressurePlate_4.s"
|
|
||||||
|
|
||||||
gSpriteAnimations_PressurePlate:: @ 08120C08
|
|
||||||
.4byte gSpriteAnimations_PressurePlate_0
|
|
||||||
.4byte gSpriteAnimations_PressurePlate_1
|
|
||||||
.4byte gSpriteAnimations_PressurePlate_2
|
|
||||||
.4byte gSpriteAnimations_PressurePlate_3
|
|
||||||
.4byte gSpriteAnimations_PressurePlate_4
|
|
|
@ -1,13 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
.align 2
|
|
||||||
|
|
||||||
gUnk_08120BE0:: @ 08120BE0
|
|
||||||
.4byte sub_08088840
|
|
||||||
.4byte sub_0808886C
|
|
||||||
.4byte sub_080888F4
|
|
||||||
|
|
||||||
gUnk_08120BEC:: @ 08120BEC
|
|
||||||
.incbin "PressurePlate/gUnk_08120BEC.bin"
|
|
|
@ -46,7 +46,7 @@ script_080144C0:
|
||||||
script_080144C8:
|
script_080144C8:
|
||||||
ModRupees 0xfff6
|
ModRupees 0xfff6
|
||||||
MessageFromTarget 0x420c
|
MessageFromTarget 0x420c
|
||||||
PlaySound SFX_10C
|
PlaySound SFX_BUTTON_PRESS
|
||||||
Wait 0x0018
|
Wait 0x0018
|
||||||
SetRoomFlag 0x0000
|
SetRoomFlag 0x0000
|
||||||
SetLocalFlag 0x0092
|
SetLocalFlag 0x0092
|
||||||
|
|
|
@ -232,7 +232,7 @@
|
||||||
.include "sounds/sfx109.s"
|
.include "sounds/sfx109.s"
|
||||||
.include "sounds/sfx10A.s"
|
.include "sounds/sfx10A.s"
|
||||||
.include "sounds/sfx10B.s"
|
.include "sounds/sfx10B.s"
|
||||||
.include "sounds/sfx10C.s"
|
.include "sounds/sfxButtonPress.s"
|
||||||
.include "sounds/sfx10D.s"
|
.include "sounds/sfx10D.s"
|
||||||
.include "sounds/sfx10E.s"
|
.include "sounds/sfx10E.s"
|
||||||
.include "sounds/sfx10F.s"
|
.include "sounds/sfx10F.s"
|
||||||
|
@ -327,7 +327,7 @@
|
||||||
.include "sounds/sfx168.s"
|
.include "sounds/sfx168.s"
|
||||||
.include "sounds/sfx169.s"
|
.include "sounds/sfx169.s"
|
||||||
.include "sounds/sfx16A.s"
|
.include "sounds/sfx16A.s"
|
||||||
.include "sounds/sfx16B.s"
|
.include "sounds/sfxPressurePlate.s"
|
||||||
.include "sounds/sfx16C.s"
|
.include "sounds/sfx16C.s"
|
||||||
.include "sounds/sfx16D.s"
|
.include "sounds/sfx16D.s"
|
||||||
.include "sounds/sfx16E.s"
|
.include "sounds/sfx16E.s"
|
||||||
|
|
|
@ -86,7 +86,7 @@ extern u32 sub_080002B8(Entity*);
|
||||||
extern u32 sub_08049F84(Entity*, u32);
|
extern u32 sub_08049F84(Entity*, u32);
|
||||||
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
|
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
|
||||||
extern void sub_08004542(Entity*);
|
extern void sub_08004542(Entity*);
|
||||||
extern u32 sub_08017850(Entity*);
|
extern u32 IsCollidingPlayer(Entity*);
|
||||||
extern void sub_080809D4(void);
|
extern void sub_080809D4(void);
|
||||||
extern void sub_08080CB4(Entity*);
|
extern void sub_08080CB4(Entity*);
|
||||||
extern void sub_0807B7D8(u32, u32, u32);
|
extern void sub_0807B7D8(u32, u32, u32);
|
||||||
|
|
|
@ -262,7 +262,7 @@ void Object20(Entity*);
|
||||||
void Object21(Entity*);
|
void Object21(Entity*);
|
||||||
void FigurineDevice(Entity*);
|
void FigurineDevice(Entity*);
|
||||||
void EyeSwitch(Entity*);
|
void EyeSwitch(Entity*);
|
||||||
void PressurePlate(Entity*);
|
void PressurePlate();
|
||||||
void BigBarrel(Entity*);
|
void BigBarrel(Entity*);
|
||||||
void BarrelInside(Entity*);
|
void BarrelInside(Entity*);
|
||||||
void PushableStatue(Entity*);
|
void PushableStatue(Entity*);
|
||||||
|
|
|
@ -278,6 +278,7 @@ extern void (*const gPlayerItemFunctions[])(Entity*);
|
||||||
extern u8 gBombBagSizes[];
|
extern u8 gBombBagSizes[];
|
||||||
extern u8 gQuiverSizes[];
|
extern u8 gQuiverSizes[];
|
||||||
extern u16 gWalletSizes[];
|
extern u16 gWalletSizes[];
|
||||||
|
extern Entity* gPlayerClones[];
|
||||||
|
|
||||||
extern PlayerState gPlayerState;
|
extern PlayerState gPlayerState;
|
||||||
extern Entity gPlayerEntity;
|
extern Entity gPlayerEntity;
|
||||||
|
|
|
@ -299,7 +299,7 @@ typedef enum {
|
||||||
SFX_109,
|
SFX_109,
|
||||||
SFX_10A,
|
SFX_10A,
|
||||||
SFX_10B,
|
SFX_10B,
|
||||||
SFX_10C,
|
SFX_BUTTON_PRESS,
|
||||||
SFX_10D,
|
SFX_10D,
|
||||||
SFX_10E,
|
SFX_10E,
|
||||||
SFX_10F,
|
SFX_10F,
|
||||||
|
@ -394,7 +394,7 @@ typedef enum {
|
||||||
SFX_168,
|
SFX_168,
|
||||||
SFX_169,
|
SFX_169,
|
||||||
SFX_16A,
|
SFX_16A,
|
||||||
SFX_16B,
|
SFX_PRESSURE_PLATE,
|
||||||
SFX_16C,
|
SFX_16C,
|
||||||
SFX_16D,
|
SFX_16D,
|
||||||
SFX_16E,
|
SFX_16E,
|
||||||
|
|
|
@ -22,7 +22,7 @@ typedef struct {
|
||||||
u8 endOfAnimation : 1;
|
u8 endOfAnimation : 1;
|
||||||
} PACKED b;
|
} PACKED b;
|
||||||
} PACKED frameSettings;
|
} PACKED frameSettings;
|
||||||
} Frame;
|
} PACKED Frame;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 numGfxTiles;
|
u8 numGfxTiles;
|
||||||
|
|
|
@ -680,7 +680,7 @@ SECTIONS {
|
||||||
asm/object/object21.o(.text);
|
asm/object/object21.o(.text);
|
||||||
asm/object/figurineDevice.o(.text);
|
asm/object/figurineDevice.o(.text);
|
||||||
asm/object/eyeSwitch.o(.text);
|
asm/object/eyeSwitch.o(.text);
|
||||||
asm/object/pressurePlate.o(.text);
|
src/object/pressurePlate.o(.text);
|
||||||
asm/object/bigBarrel.o(.text);
|
asm/object/bigBarrel.o(.text);
|
||||||
src/object/barrelInside.o(.text);
|
src/object/barrelInside.o(.text);
|
||||||
asm/object/pushableStatue.o(.text);
|
asm/object/pushableStatue.o(.text);
|
||||||
|
@ -1400,8 +1400,7 @@ SECTIONS {
|
||||||
data/animations/object/figurineDevice.o(.rodata);
|
data/animations/object/figurineDevice.o(.rodata);
|
||||||
data/const/object/eyeSwitch.o(.rodata);
|
data/const/object/eyeSwitch.o(.rodata);
|
||||||
data/animations/object/eyeSwitch.o(.rodata);
|
data/animations/object/eyeSwitch.o(.rodata);
|
||||||
data/const/object/pressurePlate.o(.rodata);
|
src/object/pressurePlate.o(.rodata);
|
||||||
data/animations/object/pressurePlate.o(.rodata);
|
|
||||||
data/const/object/bigBarrel.o(.rodata);
|
data/const/object/bigBarrel.o(.rodata);
|
||||||
data/animations/object/bigBarrel.o(.rodata);
|
data/animations/object/bigBarrel.o(.rodata);
|
||||||
src/object/barrelInside.o(.rodata);
|
src/object/barrelInside.o(.rodata);
|
||||||
|
|
|
@ -177,7 +177,7 @@ NONMATCH("asm/non_matching/arm_proxy/sub_08017744.inc", void sub_08017744(Entity
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
END_NONMATCH
|
||||||
|
|
||||||
bool32 sub_080177A0(Entity* this, Entity* that) {
|
bool32 IsColliding(Entity* this, Entity* that) {
|
||||||
u32 this_d;
|
u32 this_d;
|
||||||
u32 depth;
|
u32 depth;
|
||||||
|
|
||||||
|
@ -206,9 +206,9 @@ bool32 sub_080177A0(Entity* this, Entity* that) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_08017850(Entity* this) {
|
bool32 IsCollidingPlayer(Entity* this) {
|
||||||
if (sub_08079F8C())
|
if (sub_08079F8C())
|
||||||
return sub_080177A0(this, &gPlayerEntity);
|
return IsColliding(this, &gPlayerEntity);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -605,7 +605,7 @@ NONMATCH("asm/non_matching/gleerok/sub_0802D86C.inc", void sub_0802D86C(GleerokE
|
||||||
super->parent->subAction = 4;
|
super->parent->subAction = 4;
|
||||||
super->parent->type2 = 0;
|
super->parent->type2 = 0;
|
||||||
((GleerokEntity*)super->parent)->unk_7b = 0;
|
((GleerokEntity*)super->parent)->unk_7b = 0;
|
||||||
SoundReq(SFX_10C);
|
SoundReq(SFX_BUTTON_PRESS);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (super->actionDelay != this->unk_84->filler[1]) {
|
if (super->actionDelay != this->unk_84->filler[1]) {
|
||||||
|
|
|
@ -116,7 +116,7 @@ void sub_0809D10C(Entity* this) {
|
||||||
void sub_0809D130(Entity* this) {
|
void sub_0809D130(Entity* this) {
|
||||||
if ((gPlayerState.flags & PL_MINISH) != 0) {
|
if ((gPlayerState.flags & PL_MINISH) != 0) {
|
||||||
sub_0800445C(this);
|
sub_0800445C(this);
|
||||||
} else if (sub_08017850(this) != 0) {
|
} else if (IsCollidingPlayer(this) != 0) {
|
||||||
CreateItemEntity(0x17, 0, 0);
|
CreateItemEntity(0x17, 0, 0);
|
||||||
gSave.windcrests |= 0x10000000;
|
gSave.windcrests |= 0x10000000;
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
|
|
|
@ -141,7 +141,7 @@ void sub_0809B56C(Entity* this) {
|
||||||
void sub_0809B5B4(Entity* this) {
|
void sub_0809B5B4(Entity* this) {
|
||||||
if (gPlayerState.flags & PL_MINISH) {
|
if (gPlayerState.flags & PL_MINISH) {
|
||||||
sub_0800445C(this);
|
sub_0800445C(this);
|
||||||
} else if (sub_08017850(this)) {
|
} else if (IsCollidingPlayer(this)) {
|
||||||
CreateItemEntity(this->type + 0x39, 0, 0);
|
CreateItemEntity(this->type + 0x39, 0, 0);
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,7 +90,7 @@ void sub_08081C30(Entity* this) {
|
||||||
this->action = 2;
|
this->action = 2;
|
||||||
ClearFlag(this->field_0x86.HWORD);
|
ClearFlag(this->field_0x86.HWORD);
|
||||||
SetTileType(0x77, this->field_0x74.HWORD, this->collisionLayer);
|
SetTileType(0x77, this->field_0x74.HWORD, this->collisionLayer);
|
||||||
SoundReq(SFX_10C);
|
SoundReq(SFX_BUTTON_PRESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ u32 sub_08081F7C(Entity* this, u32 r7) {
|
||||||
SetFlag(this->field_0x86.HWORD);
|
SetFlag(this->field_0x86.HWORD);
|
||||||
SetTileType(r7, this->field_0x74.HWORD, this->collisionLayer);
|
SetTileType(r7, this->field_0x74.HWORD, this->collisionLayer);
|
||||||
sub_08081F24(this);
|
sub_08081F24(this);
|
||||||
SoundReq(SFX_10C);
|
SoundReq(SFX_BUTTON_PRESS);
|
||||||
if (this->field_0x70.HALF_U.LO != 0xFFFF)
|
if (this->field_0x70.HALF_U.LO != 0xFFFF)
|
||||||
SetTile(this->field_0x70.HALF_U.LO, this->field_0x74.HWORD, this->collisionLayer);
|
SetTile(this->field_0x70.HALF_U.LO, this->field_0x74.HWORD, this->collisionLayer);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -59,7 +59,7 @@ static void sub_0808E714(Entity* this) {
|
||||||
|
|
||||||
static void sub_0808E764(Entity* this) {
|
static void sub_0808E764(Entity* this) {
|
||||||
sub_08080CB4(this);
|
sub_08080CB4(this);
|
||||||
if (!(gPlayerState.flags & PL_MINISH) && sub_08017850(this)) {
|
if (!(gPlayerState.flags & PL_MINISH) && IsCollidingPlayer(this)) {
|
||||||
SetFlag(this->cutsceneBeh.HWORD);
|
SetFlag(this->cutsceneBeh.HWORD);
|
||||||
CreateItemEntity(0x62, 0, 0);
|
CreateItemEntity(0x62, 0, 0);
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
|
|
|
@ -18,7 +18,7 @@ void sub_080813BC(Entity*);
|
||||||
void sub_080810FC(Entity*);
|
void sub_080810FC(Entity*);
|
||||||
bool32 CheckShouldPlayItemGetCutscene(Entity*);
|
bool32 CheckShouldPlayItemGetCutscene(Entity*);
|
||||||
|
|
||||||
extern u32 sub_080177A0(Entity*, Entity*);
|
extern u32 IsColliding(Entity*, Entity*);
|
||||||
extern void GiveItem(u32, u32);
|
extern void GiveItem(u32, u32);
|
||||||
|
|
||||||
extern void (*const gUnk_0811E7D4[])(Entity*);
|
extern void (*const gUnk_0811E7D4[])(Entity*);
|
||||||
|
@ -269,10 +269,10 @@ void sub_080812A8(Entity* this) {
|
||||||
void sub_080812E8(Entity* this) {
|
void sub_080812E8(Entity* this) {
|
||||||
PlayerState* playerState = &gPlayerState;
|
PlayerState* playerState = &gPlayerState;
|
||||||
#ifdef EU
|
#ifdef EU
|
||||||
if ((playerState->swim_state & 0x80) && sub_080177A0(this, &gPlayerEntity)) {
|
if ((playerState->swim_state & 0x80) && IsColliding(this, &gPlayerEntity)) {
|
||||||
#else
|
#else
|
||||||
if ((playerState->swim_state & 0x80) && (playerState->flags & PL_MINISH) == 0 &&
|
if ((playerState->swim_state & 0x80) && (playerState->flags & PL_MINISH) == 0 &&
|
||||||
sub_080177A0(this, &gPlayerEntity)) {
|
IsColliding(this, &gPlayerEntity)) {
|
||||||
#endif
|
#endif
|
||||||
sub_080810FC(this);
|
sub_080810FC(this);
|
||||||
}
|
}
|
||||||
|
@ -289,7 +289,7 @@ void sub_08081328(Entity* this) {
|
||||||
CopyPosition(other, this);
|
CopyPosition(other, this);
|
||||||
this->z.HALF.HI--;
|
this->z.HALF.HI--;
|
||||||
other = &gPlayerEntity;
|
other = &gPlayerEntity;
|
||||||
if (sub_080177A0(this, other)) {
|
if (IsColliding(this, other)) {
|
||||||
sub_080810FC(this);
|
sub_080810FC(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
#define NENT_DEPRECATED
|
||||||
|
#include "object.h"
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
|
u32 IsColliding(Entity*, Entity*);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
Entity base;
|
||||||
|
/*0x68*/ union SplitHWord field_0x68;
|
||||||
|
/*0x6a*/ union SplitHWord field_0x6a;
|
||||||
|
/*0x6c*/ union SplitHWord field_0x6c;
|
||||||
|
/*0x6e*/ union SplitHWord field_0x6e;
|
||||||
|
/*0x70*/ u16 canToggle;
|
||||||
|
/*0x72*/ u8 dir;
|
||||||
|
/*0x73*/ u8 filler73[0x86 - 0x73];
|
||||||
|
/*0x86*/ u16 flag;
|
||||||
|
} PressurePlateEntity;
|
||||||
|
|
||||||
|
typedef void(PressurePlateAction)(PressurePlateEntity*);
|
||||||
|
|
||||||
|
PressurePlateAction sub_08088840;
|
||||||
|
PressurePlateAction sub_0808886C;
|
||||||
|
PressurePlateAction sub_080888F4;
|
||||||
|
|
||||||
|
extern Hitbox gUnk_080FD1D4;
|
||||||
|
|
||||||
|
static u32 sub_08088938(PressurePlateEntity*);
|
||||||
|
static u32 get_standing_count(PressurePlateEntity*);
|
||||||
|
|
||||||
|
static const u8 sSpriteOffsets[];
|
||||||
|
|
||||||
|
void PressurePlate(PressurePlateEntity* this) {
|
||||||
|
static PressurePlateAction* const sActions[] = {
|
||||||
|
sub_08088840,
|
||||||
|
sub_0808886C,
|
||||||
|
sub_080888F4,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (super->field_0xf) {
|
||||||
|
if (--super->field_0xf == 0) {
|
||||||
|
this->dir = super->animationState;
|
||||||
|
InitializeAnimation(super, super->animationState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sActions[super->action](this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08088840(PressurePlateEntity* this) {
|
||||||
|
super->action = 1;
|
||||||
|
super->spriteSettings.draw = 1;
|
||||||
|
super->spritePriority.b0 = 7;
|
||||||
|
super->hitbox = &gUnk_080FD1D4;
|
||||||
|
this->dir = super->animationState;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0808886C(PressurePlateEntity* this) {
|
||||||
|
u8 weight;
|
||||||
|
|
||||||
|
weight = sub_08088938(this) + get_standing_count(this);
|
||||||
|
if (super->type + 2 <= weight) {
|
||||||
|
super->action = 2;
|
||||||
|
super->field_0xf = 0;
|
||||||
|
super->animationState = 4;
|
||||||
|
super->z.HALF.HI = 0;
|
||||||
|
InitializeAnimation(super, 4);
|
||||||
|
SetFlag(this->flag);
|
||||||
|
EnqueueSFX(SFX_PRESSURE_PLATE);
|
||||||
|
} else {
|
||||||
|
if (weight > super->animationState) {
|
||||||
|
if (super->type + 1 == weight) {
|
||||||
|
super->field_0xf = 4;
|
||||||
|
InitializeAnimation(super, weight + 1);
|
||||||
|
} else {
|
||||||
|
InitializeAnimation(super, weight);
|
||||||
|
}
|
||||||
|
EnqueueSFX(SFX_BUTTON_PRESS);
|
||||||
|
} else if (weight < super->animationState) {
|
||||||
|
InitializeAnimation(super, weight);
|
||||||
|
}
|
||||||
|
super->animationState = weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080888F4(PressurePlateEntity* this) {
|
||||||
|
u8 weight;
|
||||||
|
|
||||||
|
if (this->canToggle) {
|
||||||
|
weight = sub_08088938(this) + get_standing_count(this);
|
||||||
|
if (super->type + 2 > weight) {
|
||||||
|
super->action = 1;
|
||||||
|
super->animationState = weight;
|
||||||
|
ClearFlag(this->flag);
|
||||||
|
InitializeAnimation(super, weight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static u32 NONMATCH("asm/non_matching/pressurePlate/sub_08088938.inc", sub_08088938(PressurePlateEntity* this)) {
|
||||||
|
u16 x, y;
|
||||||
|
s32 num;
|
||||||
|
u8* tmp;
|
||||||
|
u32 i;
|
||||||
|
|
||||||
|
num = 0;
|
||||||
|
x = super->x.HALF.HI - 8;
|
||||||
|
y = super->y.HALF.HI - 8;
|
||||||
|
|
||||||
|
tmp = &this->dir;
|
||||||
|
for (i = 0; i < 8; ++i) {
|
||||||
|
Entity* e = gRoomVars.field_0x8c[8 + i];
|
||||||
|
if (e != NULL) {
|
||||||
|
if ((u16)(e->x.HALF.HI - x) < 0x11 && ((u16)(e->y.HALF_U.HI - y) < 0x11)) {
|
||||||
|
e->spriteOffsetY = sSpriteOffsets[*tmp];
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
END_NONMATCH
|
||||||
|
|
||||||
|
static u32 get_standing_count(PressurePlateEntity* this) {
|
||||||
|
u32 num;
|
||||||
|
|
||||||
|
num = 0;
|
||||||
|
if (IsCollidingPlayer(super) != 0) {
|
||||||
|
gPlayerEntity.spriteOffsetY = sSpriteOffsets[this->dir];
|
||||||
|
num = 1;
|
||||||
|
}
|
||||||
|
if ((gPlayerState.flags & PL_CLONING) != 0) {
|
||||||
|
if (IsColliding(super, gPlayerClones[0]) != 0) {
|
||||||
|
gPlayerClones[0]->spriteOffsetY = sSpriteOffsets[this->dir];
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
if (IsColliding(super, gPlayerClones[1]) != 0) {
|
||||||
|
gPlayerClones[1]->spriteOffsetY = sSpriteOffsets[this->dir];
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
if (IsColliding(super, gPlayerClones[2]) != 0) {
|
||||||
|
gPlayerClones[2]->spriteOffsetY = sSpriteOffsets[this->dir];
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const u8 sSpriteOffsets[] = {
|
||||||
|
-4, -3, -2, -1, 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Frame gSpriteAnimations_PressurePlate_0 = {
|
||||||
|
.index = 0,
|
||||||
|
.duration = 0xFF,
|
||||||
|
.frameSettings = { .b = { .endOfAnimation = 1 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Frame gSpriteAnimations_PressurePlate_1 = {
|
||||||
|
.index = 1,
|
||||||
|
.duration = 0xFF,
|
||||||
|
.frameSettings = { .b = { .endOfAnimation = 1 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Frame gSpriteAnimations_PressurePlate_2 = {
|
||||||
|
.index = 2,
|
||||||
|
.duration = 0xFF,
|
||||||
|
.frameSettings = { .b = { .endOfAnimation = 1 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Frame gSpriteAnimations_PressurePlate_3 = {
|
||||||
|
.index = 3,
|
||||||
|
.duration = 0xFF,
|
||||||
|
.frameSettings = { .b = { .endOfAnimation = 1 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Frame gSpriteAnimations_PressurePlate_4 = {
|
||||||
|
.index = 4,
|
||||||
|
.duration = 0xFF,
|
||||||
|
.frameSettings = { .b = { .endOfAnimation = 1 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
const Frame* const gSpriteAnimations_PressurePlate[] = {
|
||||||
|
&gSpriteAnimations_PressurePlate_0, &gSpriteAnimations_PressurePlate_1, &gSpriteAnimations_PressurePlate_2,
|
||||||
|
&gSpriteAnimations_PressurePlate_3, &gSpriteAnimations_PressurePlate_4,
|
||||||
|
};
|
|
@ -321,7 +321,6 @@ extern u8 gUnk_080082DC[];
|
||||||
extern u16 script_BedInLinksRoom;
|
extern u16 script_BedInLinksRoom;
|
||||||
extern u16 script_BedAtSimons;
|
extern u16 script_BedAtSimons;
|
||||||
|
|
||||||
extern Entity* gPlayerClones[];
|
|
||||||
extern ScriptExecutionContext gPlayerScriptExecutionContext;
|
extern ScriptExecutionContext gPlayerScriptExecutionContext;
|
||||||
|
|
||||||
NONMATCH("asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc", u32 CheckPlayerInactive(void)) {
|
NONMATCH("asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc", u32 CheckPlayerInactive(void)) {
|
||||||
|
|
|
@ -5,7 +5,7 @@ extern void CreateItemOnGround(Entity*);
|
||||||
extern s32 sub_080AF090(Entity*);
|
extern s32 sub_080AF090(Entity*);
|
||||||
extern void sub_080043A8(Entity*);
|
extern void sub_080043A8(Entity*);
|
||||||
extern void CreateChestSpawner(Entity*);
|
extern void CreateChestSpawner(Entity*);
|
||||||
extern u32 sub_080177A0(Entity*, Entity*);
|
extern u32 IsColliding(Entity*, Entity*);
|
||||||
|
|
||||||
extern void (*const CannonballProjectile_Functions[])(Entity*);
|
extern void (*const CannonballProjectile_Functions[])(Entity*);
|
||||||
extern void (*const CannonballProjectile_Actions[])(Entity*);
|
extern void (*const CannonballProjectile_Actions[])(Entity*);
|
||||||
|
@ -79,7 +79,7 @@ bool32 sub_080AB634(Entity* this) {
|
||||||
Entity** entities = ((Entity**)&this->parent->zVelocity);
|
Entity** entities = ((Entity**)&this->parent->zVelocity);
|
||||||
u32 i;
|
u32 i;
|
||||||
for (i = 0; i <= 3; ++i) {
|
for (i = 0; i <= 3; ++i) {
|
||||||
if (entities[i] != NULL && (sub_080177A0(this, entities[i]) != 0)) {
|
if (entities[i] != NULL && (IsColliding(this, entities[i]) != 0)) {
|
||||||
if (entities[i]->action < 3) {
|
if (entities[i]->action < 3) {
|
||||||
entities[i]->action = 3;
|
entities[i]->action = 3;
|
||||||
entities[i]->actionDelay = 0x1e;
|
entities[i]->actionDelay = 0x1e;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
extern s32 sub_080AF090(Entity*);
|
extern s32 sub_080AF090(Entity*);
|
||||||
extern s32 IsProjectileOffScreen(Entity*);
|
extern s32 IsProjectileOffScreen(Entity*);
|
||||||
extern void sub_08016AD2(Entity*);
|
extern void sub_08016AD2(Entity*);
|
||||||
extern u32 sub_080177A0(Entity*, Entity*);
|
extern u32 IsColliding(Entity*, Entity*);
|
||||||
|
|
||||||
extern void (*const DekuSeedProjectile_Functions[])(Entity*);
|
extern void (*const DekuSeedProjectile_Functions[])(Entity*);
|
||||||
extern void (*const DekuSeedProjectile_Actions[])(Entity*);
|
extern void (*const DekuSeedProjectile_Actions[])(Entity*);
|
||||||
|
@ -70,7 +70,7 @@ void DekuSeedProjectile_Action1(Entity* this) {
|
||||||
}
|
}
|
||||||
if (this->field_0xf != 0) {
|
if (this->field_0xf != 0) {
|
||||||
parent = this->parent;
|
parent = this->parent;
|
||||||
if ((parent->next != NULL) && (sub_080177A0(this, parent) != 0)) {
|
if ((parent->next != NULL) && (IsColliding(this, parent) != 0)) {
|
||||||
this->iframes = 0x10;
|
this->iframes = 0x10;
|
||||||
this->knockbackDirection = -this->direction;
|
this->knockbackDirection = -this->direction;
|
||||||
this->bitfield = 0x80;
|
this->bitfield = 0x80;
|
||||||
|
|
|
@ -462,7 +462,7 @@ extern const SongHeader sfx108;
|
||||||
extern const SongHeader sfx109;
|
extern const SongHeader sfx109;
|
||||||
extern const SongHeader sfx10A;
|
extern const SongHeader sfx10A;
|
||||||
extern const SongHeader sfx10B;
|
extern const SongHeader sfx10B;
|
||||||
extern const SongHeader sfx10C;
|
extern const SongHeader sfxButtonPress;
|
||||||
extern const SongHeader sfx10D;
|
extern const SongHeader sfx10D;
|
||||||
extern const SongHeader sfx10E;
|
extern const SongHeader sfx10E;
|
||||||
extern const SongHeader sfx10F;
|
extern const SongHeader sfx10F;
|
||||||
|
@ -557,7 +557,7 @@ extern const SongHeader sfx167;
|
||||||
extern const SongHeader sfx168;
|
extern const SongHeader sfx168;
|
||||||
extern const SongHeader sfx169;
|
extern const SongHeader sfx169;
|
||||||
extern const SongHeader sfx16A;
|
extern const SongHeader sfx16A;
|
||||||
extern const SongHeader sfx16B;
|
extern const SongHeader sfxPressurePlate;
|
||||||
extern const SongHeader sfx16C;
|
extern const SongHeader sfx16C;
|
||||||
extern const SongHeader sfx16D;
|
extern const SongHeader sfx16D;
|
||||||
extern const SongHeader sfx16E;
|
extern const SongHeader sfx16E;
|
||||||
|
@ -1094,7 +1094,7 @@ const Song gSongTable[] = {
|
||||||
[SFX_109] = { &sfx109, MUSIC_PLAYER_1E, MUSIC_PLAYER_1E },
|
[SFX_109] = { &sfx109, MUSIC_PLAYER_1E, MUSIC_PLAYER_1E },
|
||||||
[SFX_10A] = { &sfx10A, MUSIC_PLAYER_08, MUSIC_PLAYER_08 },
|
[SFX_10A] = { &sfx10A, MUSIC_PLAYER_08, MUSIC_PLAYER_08 },
|
||||||
[SFX_10B] = { &sfx10B, MUSIC_PLAYER_07, MUSIC_PLAYER_07 },
|
[SFX_10B] = { &sfx10B, MUSIC_PLAYER_07, MUSIC_PLAYER_07 },
|
||||||
[SFX_10C] = { &sfx10C, MUSIC_PLAYER_06, MUSIC_PLAYER_06 },
|
[SFX_BUTTON_PRESS] = { &sfxButtonPress, MUSIC_PLAYER_06, MUSIC_PLAYER_06 },
|
||||||
[SFX_10D] = { &sfx10D, MUSIC_PLAYER_05, MUSIC_PLAYER_05 },
|
[SFX_10D] = { &sfx10D, MUSIC_PLAYER_05, MUSIC_PLAYER_05 },
|
||||||
[SFX_10E] = { &sfx10E, MUSIC_PLAYER_04, MUSIC_PLAYER_04 },
|
[SFX_10E] = { &sfx10E, MUSIC_PLAYER_04, MUSIC_PLAYER_04 },
|
||||||
[SFX_10F] = { &sfx10F, MUSIC_PLAYER_03, MUSIC_PLAYER_03 },
|
[SFX_10F] = { &sfx10F, MUSIC_PLAYER_03, MUSIC_PLAYER_03 },
|
||||||
|
@ -1189,7 +1189,7 @@ const Song gSongTable[] = {
|
||||||
[SFX_168] = { &sfx168, MUSIC_PLAYER_16, MUSIC_PLAYER_16 },
|
[SFX_168] = { &sfx168, MUSIC_PLAYER_16, MUSIC_PLAYER_16 },
|
||||||
[SFX_169] = { &sfx169, MUSIC_PLAYER_15, MUSIC_PLAYER_15 },
|
[SFX_169] = { &sfx169, MUSIC_PLAYER_15, MUSIC_PLAYER_15 },
|
||||||
[SFX_16A] = { &sfx16A, MUSIC_PLAYER_14, MUSIC_PLAYER_14 },
|
[SFX_16A] = { &sfx16A, MUSIC_PLAYER_14, MUSIC_PLAYER_14 },
|
||||||
[SFX_16B] = { &sfx16B, MUSIC_PLAYER_13, MUSIC_PLAYER_13 },
|
[SFX_PRESSURE_PLATE] = { &sfxPressurePlate, MUSIC_PLAYER_13, MUSIC_PLAYER_13 },
|
||||||
[SFX_16C] = { &sfx16C, MUSIC_PLAYER_03, MUSIC_PLAYER_03 },
|
[SFX_16C] = { &sfx16C, MUSIC_PLAYER_03, MUSIC_PLAYER_03 },
|
||||||
[SFX_16D] = { &sfx16D, MUSIC_PLAYER_12, MUSIC_PLAYER_12 },
|
[SFX_16D] = { &sfx16D, MUSIC_PLAYER_12, MUSIC_PLAYER_12 },
|
||||||
[SFX_16E] = { &sfx16E, MUSIC_PLAYER_11, MUSIC_PLAYER_11 },
|
[SFX_16E] = { &sfx16E, MUSIC_PLAYER_11, MUSIC_PLAYER_11 },
|
||||||
|
|
Loading…
Reference in New Issue