tingleSiblings.c started

This commit is contained in:
theo3 2020-07-15 20:12:52 -07:00
parent c97a025a88
commit 035d4a150f
3 changed files with 44 additions and 79 deletions

View File

@ -6,85 +6,6 @@
.text
thumb_func_start TingleSiblings
TingleSiblings: @ 0x08064D58
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08064D6E
adds r0, r2, #0
bl sub_08064DE4
b _08064D74
_08064D6E:
adds r0, r2, #0
bl sub_08064D78
_08064D74:
pop {pc}
.align 2, 0
thumb_func_start sub_08064D78
sub_08064D78: @ 0x08064D78
push {lr}
ldr r2, _08064D8C @ =gUnk_0810FBFC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08064D8C: .4byte gUnk_0810FBFC
thumb_func_start sub_08064D90
sub_08064D90: @ 0x08064D90
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitAnimationForceUpdate
movs r0, #1
strb r0, [r4, #0xf]
pop {r4, pc}
thumb_func_start sub_08064DA0
sub_08064DA0: @ 0x08064DA0
push {r4, lr}
adds r4, r0, #0
bl sub_08064EE8
adds r0, r4, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08064DC8
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #6
bl InitAnimationForceUpdate
movs r0, #0
bl TextboxNoOverlapFollow
_08064DC8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08064DCC
sub_08064DCC: @ 0x08064DCC
push {r4, lr}
adds r4, r0, #0
bl sub_08064EE8
adds r0, r4, #0
movs r1, #2
bl InitAnimationForceUpdate
movs r0, #1
strb r0, [r4, #0xc]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08064DE4
sub_08064DE4: @ 0x08064DE4
push {r4, r5, lr}

View File

@ -559,6 +559,7 @@ SECTIONS {
asm/nayru.o(.text);
asm/farore.o(.text);
asm/sturgeon.o(.text);
src/npc/tingleSiblings.o(.text);
asm/tingleSiblings.o(.text);
asm/stockwell.o(.text);
src/npc/talon.o(.text);

43
src/npc/tingleSiblings.c Normal file
View File

@ -0,0 +1,43 @@
#include "global.h"
#include "entity.h"
#include "npc.h"
#include "textbox.h"
extern void sub_08064DE4(Entity*);
extern void sub_08064D78(Entity*);
extern void sub_08064EE8(Entity*);
extern void (*const gUnk_0810FBFC[])(Entity*);
void TingleSiblings(Entity* this) {
if ((this->flags & 2) != 0) {
sub_08064DE4(this);
}
else {
sub_08064D78(this);
}
}
void sub_08064D78(Entity* this) {
gUnk_0810FBFC[this->action](this);
}
void sub_08064D90(Entity* this) {
InitAnimationForceUpdate(this, 2);
this->field_0xf = 1;
}
void sub_08064DA0(Entity* this) {
sub_08064EE8(this);
if (this->interactType != 0) {
this->action = 2;
InitAnimationForceUpdate(this, 6);
TextboxNoOverlapFollow(0);
}
}
void sub_08064DCC(Entity* this) {
sub_08064EE8(this);
InitAnimationForceUpdate(this, 2);
this->action = 1;
}