mirror of https://github.com/zeldaret/tmc.git
Decompile PushableLever
This commit is contained in:
parent
97164d57cd
commit
c7c6c6010c
|
|
@ -887,7 +887,7 @@ sub_080307EC: @ 0x080307EC
|
|||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r5, #0x78
|
||||
strh r0, [r5]
|
||||
ldr r0, _08030830 @ =0x00004022
|
||||
|
|
|
|||
|
|
@ -687,14 +687,14 @@ sub_08030F00: @ 0x08030F00
|
|||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x80
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #1
|
||||
mov sl, r0
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x82
|
||||
strh r0, [r1]
|
||||
|
|
@ -703,7 +703,7 @@ sub_08030F00: @ 0x08030F00
|
|||
mov sb, r3
|
||||
ldrb r1, [r6]
|
||||
mov r0, sb
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x84
|
||||
strh r0, [r1]
|
||||
|
|
@ -711,7 +711,7 @@ sub_08030F00: @ 0x08030F00
|
|||
adds r0, r0, r4
|
||||
mov r8, r0
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x86
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ sub_08037220: @ 0x08037220
|
|||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
@ -542,7 +542,7 @@ sub_08037418: @ 0x08037418
|
|||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _08037468 @ =0x00004067
|
||||
cmp r0, r1
|
||||
bne _08037460
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ sub_08033890: @ 0x08033890
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
@ -583,7 +583,7 @@ _08033BB2:
|
|||
ldrh r0, [r5]
|
||||
ldr r2, [sp, #8]
|
||||
ldrb r1, [r2]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
mov r3, sl
|
||||
strh r0, [r3]
|
||||
lsls r0, r0, #0x10
|
||||
|
|
|
|||
|
|
@ -551,7 +551,7 @@ sub_0802F888: @ 0x0802F888
|
|||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r4, #0x86
|
||||
strh r0, [r4]
|
||||
ldr r0, _0802F8E0 @ =0x00004071
|
||||
|
|
@ -643,7 +643,7 @@ _0802F920:
|
|||
mov r2, r8
|
||||
ldrb r1, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _0802F9C4 @ =0x00004071
|
||||
cmp r0, r1
|
||||
beq _0802F9A2
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ _08070280:
|
|||
adds r4, r5, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
str r0, [r5, #0x7c]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x14
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08070408 @ =0x00004021
|
||||
cmp r1, r0
|
||||
|
|
|
|||
|
|
@ -176,13 +176,13 @@ sub_08098FE0: @ 0x08098FE0
|
|||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
@ -233,13 +233,13 @@ _0809906C:
|
|||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
@ -271,7 +271,7 @@ sub_080990EC: @ 0x080990EC
|
|||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _0809911C @ =0x00004059
|
||||
cmp r0, r1
|
||||
bne _08099140
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ sub_0808B3AC: @ 0x0808B3AC
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -432,20 +432,20 @@ _0808C510:
|
|||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
adds r0, #1
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
strh r0, [r1]
|
||||
|
|
@ -475,20 +475,20 @@ _0808C570:
|
|||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
adds r0, #0x40
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -103,13 +103,13 @@ _0809207A:
|
|||
strh r2, [r7]
|
||||
ldrh r0, [r5]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ _08096B12:
|
|||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ _08084D7E:
|
|||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ sub_0808B934: @ 0x0808B934
|
|||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ sub_080970F4: @ 0x080970F4
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ sub_0808FB68: @ 0x0808FB68
|
|||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0808FBAC @ =0x00004031
|
||||
cmp r1, r0
|
||||
|
|
@ -324,7 +324,7 @@ _0808FBB0:
|
|||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0808FBF8 @ =0x00004031
|
||||
cmp r1, r0
|
||||
|
|
@ -364,7 +364,7 @@ sub_0808FBFC: @ 0x0808FBFC
|
|||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0808FC38 @ =0x0000404A
|
||||
cmp r1, r0
|
||||
|
|
@ -612,7 +612,7 @@ _0808FDB6:
|
|||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808FDE0: .4byte 0x0000010F
|
||||
|
|
@ -630,7 +630,7 @@ sub_0808FDE8: @ 0x0808FDE8
|
|||
adds r4, r0, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r6, _0808FE28 @ =0x0000402E
|
||||
cmp r0, r6
|
||||
bne _0808FE30
|
||||
|
|
@ -684,7 +684,7 @@ _0808FE58:
|
|||
adds r4, r0, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r6, _0808FE98 @ =0x0000402F
|
||||
cmp r0, r6
|
||||
bne _0808FEA0
|
||||
|
|
@ -851,7 +851,7 @@ _0808FF9C:
|
|||
strh r7, [r0]
|
||||
ldrh r0, [r0]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
@ -872,7 +872,7 @@ _0808FFC0:
|
|||
strh r7, [r0]
|
||||
ldrh r0, [r0]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
@ -893,7 +893,7 @@ _0808FFC0:
|
|||
strh r0, [r5]
|
||||
ldrh r0, [r5]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
@ -918,7 +918,7 @@ _0809002C:
|
|||
strh r7, [r0]
|
||||
ldrh r0, [r0]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
|
@ -939,7 +939,7 @@ _0809002C:
|
|||
strh r0, [r4]
|
||||
ldrh r0, [r4]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
|
@ -974,7 +974,7 @@ sub_08090094: @ 0x08090094
|
|||
adds r4, r0, #0
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r3, r0, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
|
|
|
|||
|
|
@ -64,60 +64,60 @@ sub_080975A0: @ 0x080975A0
|
|||
adds r7, r4, #0
|
||||
adds r7, #0x38
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6a
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #0
|
||||
subs r0, #0x40
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #0
|
||||
subs r0, #0x3f
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6e
|
||||
strh r0, [r1]
|
||||
subs r0, r5, #1
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
ldrb r1, [r7]
|
||||
adds r0, r5, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #1
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3f
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r7]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ sub_08098354: @ 0x08098354
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
|
|
@ -210,7 +210,7 @@ _080983BC:
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
|
|
@ -237,7 +237,7 @@ sub_08098418: @ 0x08098418
|
|||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _08098448 @ =0x00004054
|
||||
cmp r0, r1
|
||||
bne _0809846C
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ sub_0808A644: @ 0x0808A644
|
|||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -360,7 +360,7 @@ sub_08089454: @ 0x08089454
|
|||
adds r4, r5, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x80
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ sub_08099468: @ 0x08099468
|
|||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -186,8 +186,8 @@ sub_080001D0: @ 0x080001D0
|
|||
strb r0, [r3, r1]
|
||||
bx lr
|
||||
|
||||
non_word_aligned_thumb_func_start sub_080001DA
|
||||
sub_080001DA: @ 0x080001DA
|
||||
non_word_aligned_thumb_func_start GetTileIndex
|
||||
GetTileIndex: @ 0x080001DA
|
||||
lsls r1, r1, #3
|
||||
ldr r2, _08000224 @ =gUnk_08000228
|
||||
ldr r1, [r2, r1]
|
||||
|
|
|
|||
|
|
@ -160,4 +160,5 @@ extern void sub_08079BD8(Entity*);
|
|||
extern void sub_080AEFB4(Entity*);
|
||||
extern void UnloadOBJPalette(Entity*);
|
||||
void sub_080322E8(Entity*);
|
||||
extern u32 GetTileIndex(u32, u32);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ void Bell(Entity*);
|
|||
void MacroDecoration(Entity*);
|
||||
void Object79(Entity*);
|
||||
void Steam(Entity*);
|
||||
void PushableLever(Entity*);
|
||||
void PushableLever();
|
||||
void MacroShoes(Entity*);
|
||||
void ObjectOnSpinyBeetle(Entity*);
|
||||
void Object7E(Entity*);
|
||||
|
|
|
|||
|
|
@ -769,7 +769,7 @@ SECTIONS {
|
|||
asm/object/macroDecorations.o(.text);
|
||||
asm/object/object79.o(.text);
|
||||
src/object/steam.o(.text);
|
||||
asm/object/pushableLever.o(.text);
|
||||
src/object/pushableLever.o(.text);
|
||||
asm/object/macroShoes.o(.text);
|
||||
asm/object/objectOnSpinyBeetle.o(.text);
|
||||
src/object/object7E.o(.text);
|
||||
|
|
@ -1511,7 +1511,7 @@ SECTIONS {
|
|||
data/const/object/object79.o(.rodata);
|
||||
data/animations/object/object79.o(.rodata);
|
||||
src/object/steam.o(.rodata);
|
||||
data/const/object/pushableLever.o(.rodata);
|
||||
src/object/pushableLever.o(.rodata);
|
||||
data/animations/object/pushableLever.o(.rodata);
|
||||
data/const/object/macroShoes.o(.rodata);
|
||||
data/const/object/objectOnSpinyBeetle.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ bool32 sub_0802915C(Entity*);
|
|||
bool32 sub_080291DC(Entity*);
|
||||
void sub_0802922C(Entity*);
|
||||
void sub_08028E9C(Entity*);
|
||||
u32 sub_080001DA(u32, u32);
|
||||
void sub_08028FFC(Entity*);
|
||||
void sub_0802925C(Entity*);
|
||||
void sub_080290E0(Entity*, u32);
|
||||
|
|
@ -90,7 +89,7 @@ void sub_08028994(Entity* this) {
|
|||
} else {
|
||||
this->actionDelay = 0;
|
||||
this->field_0x76.HWORD = COORD_TO_TILE(this);
|
||||
this->field_0x74.HWORD = sub_080001DA(this->field_0x76.HWORD, this->collisionLayer);
|
||||
this->field_0x74.HWORD = GetTileIndex(this->field_0x76.HWORD, this->collisionLayer);
|
||||
this->hurtType = 0x41;
|
||||
sub_08028FFC(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern s16 sub_080001DA(u32, u32); // ?
|
||||
extern void sub_08049CF4(Entity*);
|
||||
void sub_080221C0(Entity*);
|
||||
|
||||
|
|
@ -118,7 +117,7 @@ void sub_08022198(Entity* this) {
|
|||
void sub_080221C0(Entity* this) {
|
||||
u32 tile = COORD_TO_TILE(this) + gUnk_080B4488[this->type2];
|
||||
this->field_0x7c.HALF.HI = tile;
|
||||
this->field_0x7c.HALF.LO = sub_080001DA(tile, this->collisionLayer);
|
||||
this->field_0x7c.HALF.LO = GetTileIndex(tile, this->collisionLayer);
|
||||
SetTile(gUnk_080CB79C[this->type2], tile, this->collisionLayer);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,14 +137,13 @@ void nullsub_148(Entity* this) {
|
|||
/* ... */
|
||||
}
|
||||
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
|
||||
void sub_0802C4B0(Entity* this) {
|
||||
u32 offset;
|
||||
u32 index;
|
||||
u32 rand;
|
||||
|
||||
switch (sub_080001DA(this->field_0x7c.HALF_U.HI, this->collisionLayer)) {
|
||||
switch (GetTileIndex(this->field_0x7c.HALF_U.HI, this->collisionLayer)) {
|
||||
case 0x1ab ... 0x1af:
|
||||
offset = 8;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ void (*const gUnk_080CFBD4[])(FlyingSkullEntity*);
|
|||
const s8 gUnk_080CFBE4[4];
|
||||
|
||||
extern s32 sub_080012DC(Entity*);
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
extern void sub_08078930(Entity*);
|
||||
|
||||
void sub_0803A100(FlyingSkullEntity* this);
|
||||
|
|
@ -118,7 +117,7 @@ void sub_08039D74(FlyingSkullEntity* this) {
|
|||
super->y.HALF.HI += 3;
|
||||
|
||||
tmp = COORD_TO_TILE(super);
|
||||
this->unk_0x74 = sub_080001DA(tmp, super->collisionLayer);
|
||||
this->unk_0x74 = GetTileIndex(tmp, super->collisionLayer);
|
||||
SetTile(0x4060, tmp, super->collisionLayer);
|
||||
InitializeAnimation(super, 0);
|
||||
}
|
||||
|
|
@ -246,7 +245,7 @@ void sub_0803A0E0(FlyingSkullEntity* this) {
|
|||
|
||||
void sub_0803A100(FlyingSkullEntity* this) {
|
||||
u32 tile = COORD_TO_TILE(super);
|
||||
if (sub_080001DA(tile, super->collisionLayer) == 0x4067) {
|
||||
if (GetTileIndex(tile, super->collisionLayer) == 0x4067) {
|
||||
SetTile(this->unk_0x74, tile, super->collisionLayer);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,6 @@ void sub_08081C98(Entity* this) {
|
|||
}
|
||||
|
||||
Entity* sub_08081D74(Entity*);
|
||||
u32 sub_080001DA(u32, u32);
|
||||
|
||||
u32 sub_08081CB0(Entity* this) {
|
||||
u16 tmp;
|
||||
|
|
@ -114,7 +113,7 @@ u32 sub_08081CB0(Entity* this) {
|
|||
} else {
|
||||
tmp = GetTileType(this->field_0x74.HWORD, this->collisionLayer);
|
||||
if (tmp != 0x77 && tmp != 0x79 && tmp != 0x4035) {
|
||||
this->field_0x70.HALF.LO = sub_080001DA(this->field_0x74.HWORD, this->collisionLayer);
|
||||
this->field_0x70.HALF.LO = GetTileIndex(this->field_0x74.HWORD, this->collisionLayer);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -129,7 +128,7 @@ u32 sub_08081D28(Entity* this) {
|
|||
if (this->field_0x70.HALF_U.LO == 0xFFFF) {
|
||||
return 0;
|
||||
}
|
||||
if (sub_080001DA(this->field_0x74.HWORD, this->collisionLayer) != this->field_0x70.HALF_U.LO) {
|
||||
if (GetTileIndex(this->field_0x74.HWORD, this->collisionLayer) != this->field_0x70.HALF_U.LO) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
#include "object.h"
|
||||
|
||||
extern void sub_080001D0(u32, u32, u32);
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
|
||||
enum {
|
||||
FURNITURE_INIT,
|
||||
|
|
@ -374,7 +373,7 @@ static void sub_08090B6C(FurnitureEntity* this) {
|
|||
}
|
||||
|
||||
static void sub_08090CDC(u32 id, u32 pos, u32 layer) {
|
||||
u16 cur = sub_080001DA(pos, layer);
|
||||
u16 cur = GetTileIndex(pos, layer);
|
||||
u32 next = cur;
|
||||
u32 id2;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ void LockedDoor(Entity* this) {
|
|||
|
||||
extern Hitbox gHitbox_2;
|
||||
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
extern void sub_08078850(Entity*, u32, u32, u32);
|
||||
|
||||
typedef struct PACKED {
|
||||
|
|
@ -102,7 +101,7 @@ void sub_08083338(Entity* this) {
|
|||
this->spritePriority.b0 = 5;
|
||||
this->frame = this->type & 0xF;
|
||||
this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI);
|
||||
this->field_0x74.HWORD = sub_080001DA(this->field_0x76.HWORD, this->collisionLayer);
|
||||
this->field_0x74.HWORD = GetTileIndex(this->field_0x76.HWORD, this->collisionLayer);
|
||||
switch (this->type2) {
|
||||
case 0:
|
||||
if (!CheckFlags(this->field_0x86.HWORD)) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
extern void (*MaskActionFuncs[])(Entity*);
|
||||
|
||||
extern void sub_08000148(u16, u16, u32);
|
||||
extern s16 sub_080001DA(u16, u32);
|
||||
|
||||
extern void sub_0805457C(Entity*, s32);
|
||||
|
||||
|
|
@ -48,8 +47,8 @@ void sub_080929A4(Entity* this) {
|
|||
|
||||
this->frameIndex = this->type2 & 0x3f;
|
||||
|
||||
this->field_0x7c.HALF.HI = COORD_TO_TILE(this);
|
||||
this->field_0x7c.HALF.LO = sub_080001DA(this->field_0x7c.HALF.HI, 1);
|
||||
this->field_0x7c.HALF_U.HI = COORD_TO_TILE(this);
|
||||
this->field_0x7c.HALF_U.LO = GetTileIndex(this->field_0x7c.HALF_U.HI, 1);
|
||||
|
||||
this->field_0x7a.HWORD = sub_080002E0((u16)this->field_0x7c.HALF.HI, 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
extern u32 sub_08083734(Entity*, u32);
|
||||
extern void sub_080A080C(Entity*);
|
||||
extern void sub_080A0870(Entity*);
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
|
||||
extern void (*const gUnk_0812493C[])(Entity*);
|
||||
|
||||
|
|
@ -93,9 +92,9 @@ void sub_080A07F0(Entity* this) {
|
|||
}
|
||||
|
||||
void sub_080A080C(Entity* this) {
|
||||
this->field_0x76.HWORD = sub_080001DA(this->field_0x74.HWORD - 1, this->collisionLayer);
|
||||
this->field_0x78.HWORD = sub_080001DA(this->field_0x74.HWORD, this->collisionLayer);
|
||||
this->field_0x7a.HWORD = sub_080001DA(this->field_0x74.HWORD + 1, this->collisionLayer);
|
||||
this->field_0x76.HWORD = GetTileIndex(this->field_0x74.HWORD - 1, this->collisionLayer);
|
||||
this->field_0x78.HWORD = GetTileIndex(this->field_0x74.HWORD, this->collisionLayer);
|
||||
this->field_0x7a.HWORD = GetTileIndex(this->field_0x74.HWORD + 1, this->collisionLayer);
|
||||
SetTile(0x4022, this->field_0x74.HWORD - 1, this->collisionLayer);
|
||||
SetTile(0x4022, this->field_0x74.HWORD, this->collisionLayer);
|
||||
SetTile(0x4022, this->field_0x74.HWORD + 1, this->collisionLayer);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ extern void (*const gUnk_0811F0C4[])(Entity*);
|
|||
extern Hitbox gHitbox_18; // TODO: should be const
|
||||
extern Hitbox gUnk_080FD340; // TODO: should be const
|
||||
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
extern void sub_08078930(Entity*);
|
||||
extern void sub_08016A6C(Entity*);
|
||||
|
||||
|
|
@ -47,7 +46,7 @@ void sub_0808222C(Entity* this) {
|
|||
ResolveCollisionLayer(this);
|
||||
}
|
||||
|
||||
this->field_0x70.HALF.LO = sub_080001DA(COORD_TO_TILE(this), this->collisionLayer);
|
||||
this->field_0x70.HALF.LO = GetTileIndex(COORD_TO_TILE(this), this->collisionLayer);
|
||||
if ((u16)this->field_0x70.HALF.LO == 0x4000) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
|
@ -188,7 +187,7 @@ void sub_08082614(Entity* this) {
|
|||
this->speed <<= 1;
|
||||
}
|
||||
|
||||
this->field_0x70.HALF.LO = sub_080001DA(COORD_TO_TILE(this), this->collisionLayer);
|
||||
this->field_0x70.HALF.LO = GetTileIndex(COORD_TO_TILE(this), this->collisionLayer);
|
||||
tileType = GetTileTypeByEntity(this);
|
||||
switch (tileType) {
|
||||
case 0x71:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,148 @@
|
|||
/**
|
||||
* @file pushableLever.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Pushable Lever object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[8];
|
||||
/*0x70*/ u16 tilePosition;
|
||||
/*0x72*/ u16 tileIndex;
|
||||
/*0x74*/ u16 timer;
|
||||
/*0x76*/ u8 unk_76[16];
|
||||
/*0x86*/ u16 pushedFlag;
|
||||
} PushableLeverEntity;
|
||||
|
||||
enum PushableLeverAction {
|
||||
INIT,
|
||||
IDLE,
|
||||
PUSHING
|
||||
};
|
||||
|
||||
extern void (*const PushableLever_Actions[])(PushableLeverEntity*);
|
||||
extern const u16 PushableLever_Tiles[];
|
||||
extern const u8 PushableLever_InitialOffsets[];
|
||||
extern const u8 PushableLever_PushedOffsets[];
|
||||
|
||||
void PushableLever_SetIdle(PushableLeverEntity*);
|
||||
bool32 PushableLever_ShouldStartPushing(PushableLeverEntity* this);
|
||||
void PushableLever_SetTiles(PushableLeverEntity*);
|
||||
void PushableLever_CalculateSpriteOffsets(PushableLeverEntity*);
|
||||
|
||||
#define TILE_INITIAL 0x4053
|
||||
#define TILE_PUSHED 0x4052
|
||||
|
||||
void PushableLever(PushableLeverEntity* this) {
|
||||
PushableLever_Actions[super->action](this);
|
||||
}
|
||||
|
||||
void PushableLever_Init(PushableLeverEntity* this) {
|
||||
super->spritePriority.b0 = 5;
|
||||
PushableLever_SetIdle(this);
|
||||
}
|
||||
|
||||
void PushableLever_Idle(PushableLeverEntity* this) {
|
||||
if (PushableLever_ShouldStartPushing(this)) {
|
||||
super->action = PUSHING;
|
||||
super->spriteOffsetX = 0;
|
||||
super->spriteOffsetY = 0;
|
||||
SetTile(this->tileIndex, this->tilePosition, super->collisionLayer);
|
||||
EnqueueSFX(SFX_16A);
|
||||
RequestPriorityDuration(super, 0x1e);
|
||||
if (sub_08079F8C()) {
|
||||
gPlayerState.pushedObject = 0x90;
|
||||
gPlayerState.queued_action = 5;
|
||||
gPlayerState.flags |= 1;
|
||||
gPlayerEntity.x.HALF.LO = 0;
|
||||
gPlayerEntity.y.HALF.LO = 0;
|
||||
gPlayerEntity.direction = gPlayerEntity.animationState << 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PushableLever_Pushing(PushableLeverEntity* this) {
|
||||
GetNextFrame(super);
|
||||
if ((super->frame & 0x80) != 0) {
|
||||
if (super->type2 == 0) {
|
||||
SetFlag(this->pushedFlag);
|
||||
} else {
|
||||
ClearFlag(this->pushedFlag);
|
||||
}
|
||||
PushableLever_SetIdle(this);
|
||||
}
|
||||
}
|
||||
|
||||
void PushableLever_SetIdle(PushableLeverEntity* this) {
|
||||
super->action = IDLE;
|
||||
this->timer = 0x3c;
|
||||
PushableLever_SetTiles(this);
|
||||
}
|
||||
|
||||
void PushableLever_SetTiles(PushableLeverEntity* this) {
|
||||
if (CheckFlags(this->pushedFlag) == FALSE) {
|
||||
super->type2 = 0;
|
||||
this->tilePosition = COORD_TO_TILE_OFFSET(super, 0, 0x10);
|
||||
this->tileIndex = GetTileIndex(this->tilePosition, super->collisionLayer);
|
||||
SetTile(TILE_INITIAL, this->tilePosition, super->collisionLayer);
|
||||
InitializeAnimation(super, 1);
|
||||
} else {
|
||||
super->type2 = 1;
|
||||
this->tilePosition = COORD_TO_TILE_OFFSET(super, 0x10, 0);
|
||||
this->tileIndex = GetTileIndex(this->tilePosition, super->collisionLayer);
|
||||
SetTile(TILE_PUSHED, this->tilePosition, super->collisionLayer);
|
||||
InitializeAnimation(super, 0);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 PushableLever_ShouldStartPushing(PushableLeverEntity* this) {
|
||||
if (GetTileIndex(this->tilePosition, super->collisionLayer) == 0x4054) {
|
||||
if (--this->timer == 0) {
|
||||
return TRUE;
|
||||
}
|
||||
PushableLever_CalculateSpriteOffsets(this);
|
||||
SetTile(PushableLever_Tiles[super->type2], this->tilePosition, super->collisionLayer);
|
||||
} else {
|
||||
this->timer = 0x3c;
|
||||
super->spriteOffsetX = 0;
|
||||
super->spriteOffsetY = 0;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void PushableLever_CalculateSpriteOffsets(PushableLeverEntity* this) {
|
||||
const u8* offsets;
|
||||
if (super->type2 == 0) {
|
||||
offsets = PushableLever_InitialOffsets;
|
||||
} else {
|
||||
offsets = PushableLever_PushedOffsets;
|
||||
}
|
||||
offsets = &offsets[(this->timer / 4) & 6];
|
||||
super->spriteOffsetX = offsets[0];
|
||||
super->spriteOffsetY = offsets[1];
|
||||
if ((this->timer & 3) == 0) {
|
||||
EnqueueSFX(SFX_104);
|
||||
}
|
||||
}
|
||||
|
||||
void (*const PushableLever_Actions[])(PushableLeverEntity*) = {
|
||||
PushableLever_Init,
|
||||
PushableLever_Idle,
|
||||
PushableLever_Pushing,
|
||||
};
|
||||
const u16 PushableLever_Tiles[] = {
|
||||
TILE_INITIAL,
|
||||
TILE_PUSHED,
|
||||
};
|
||||
const u8 PushableLever_InitialOffsets[] = {
|
||||
0, 0, 0, 0, 255, 0, 0, 0,
|
||||
};
|
||||
const u8 PushableLever_PushedOffsets[] = {
|
||||
0, 0, 0, 0, 0, 255, 0, 0,
|
||||
};
|
||||
|
|
@ -281,7 +281,6 @@ extern u32 sub_080797C4(void);
|
|||
extern void sub_0800892E(Entity*);
|
||||
extern void sub_08078F24(void);
|
||||
extern void sub_0807B068(Entity*);
|
||||
extern u32 sub_080001DA(u32, u32);
|
||||
extern u32 sub_0807A2F8(u32);
|
||||
extern u32 sub_0806F730(Entity*);
|
||||
extern u32 sub_08007DD6(u32, const u16*);
|
||||
|
|
@ -2155,7 +2154,7 @@ static void PlayerInHoleInit(Entity* this) {
|
|||
gPlayerState.animation = 0x950;
|
||||
} else {
|
||||
gPlayerState.animation = 0x61c;
|
||||
if (sub_080001DA(COORD_TO_TILE(this), this->collisionLayer) == 0x4020) {
|
||||
if (GetTileIndex(COORD_TO_TILE(this), this->collisionLayer) == 0x4020) {
|
||||
this->actionDelay = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue