mirror of https://github.com/zeldaret/tmc.git
Decompile minishLight.c
This commit is contained in:
parent
e2bbe039de
commit
778577d6eb
|
|
@ -1,81 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start MinishLight
|
||||
MinishLight: @ 0x0809F828
|
||||
push {lr}
|
||||
ldr r2, _0809F83C @ =gUnk_081247F8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0809F83C: .4byte gUnk_081247F8
|
||||
|
||||
thumb_func_start sub_0809F840
|
||||
sub_0809F840: @ 0x0809F840
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
strb r1, [r2, #0x1e]
|
||||
movs r0, #0x20
|
||||
strb r0, [r2, #0xe]
|
||||
strb r1, [r2, #0xf]
|
||||
ldrb r0, [r2, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0809F860
|
||||
ldrb r0, [r2, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x18]
|
||||
_0809F860:
|
||||
adds r0, r2, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0809F868
|
||||
sub_0809F868: @ 0x0809F868
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0809F8A2
|
||||
ldrb r0, [r1, #0xf]
|
||||
cmp r0, #0
|
||||
bne _0809F890
|
||||
ldrb r0, [r1, #0x1e]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0x1e]
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
bne _0809F89E
|
||||
movs r0, #1
|
||||
b _0809F89C
|
||||
_0809F890:
|
||||
ldrb r0, [r1, #0x1e]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0x1e]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0809F89E
|
||||
_0809F89C:
|
||||
strb r0, [r1, #0xf]
|
||||
_0809F89E:
|
||||
movs r0, #0x20
|
||||
strb r0, [r1, #0xe]
|
||||
_0809F8A2:
|
||||
pop {pc}
|
||||
|
|
@ -839,7 +839,7 @@ SECTIONS {
|
|||
src/object/palaceArchway.o(.text);
|
||||
asm/objectA2.o(.text);
|
||||
src/object/cloud.o(.text);
|
||||
asm/minishLight.o(.text);
|
||||
src/object/minishLight.o(.text);
|
||||
asm/objectA5.o(.text);
|
||||
asm/objectA6.o(.text);
|
||||
asm/objectA7.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern void (* const gUnk_081247F8[])(Entity*);
|
||||
|
||||
void MinishLight(Entity* this)
|
||||
{
|
||||
gUnk_081247F8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0809F840(Entity* this)
|
||||
{
|
||||
this->action = 1;
|
||||
this->frameIndex = 0;
|
||||
this->actionDelay = 0x20;
|
||||
this->field_0xf = 0;
|
||||
|
||||
if (this->entityType.parameter != 0)
|
||||
{
|
||||
this->spriteSettings.b.flipX = 1;
|
||||
}
|
||||
|
||||
UpdateSpriteForCollisionLayer(this);
|
||||
}
|
||||
|
||||
void sub_0809F868(Entity* this)
|
||||
{
|
||||
if (--this->actionDelay == 0) {
|
||||
if (this->field_0xf == 0) {
|
||||
if (++this->frameIndex == 3) {
|
||||
this->field_0xf = 1;
|
||||
}
|
||||
} else {
|
||||
if (--this->frameIndex == 0) {
|
||||
this->field_0xf = 0;
|
||||
}
|
||||
}
|
||||
this->actionDelay = 32;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue