mirror of https://github.com/zeldaret/tmc.git
Merge pull request #15 from 21aslade:master
Two functions in townMinish.c OK
This commit is contained in:
commit
e5f36eecff
|
@ -6,68 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_0806ABC8
|
||||
sub_0806ABC8: @ 0x0806ABC8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806ABF4
|
||||
ldr r0, _0806ABF0 @ =gUnk_081126E8
|
||||
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 sub_0806ED78
|
||||
b _0806ABFA
|
||||
.align 2, 0
|
||||
_0806ABF0: .4byte gUnk_081126E8
|
||||
_0806ABF4:
|
||||
adds r0, r4, #0
|
||||
bl sub_0806ACC4
|
||||
_0806ABFA:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806ABFC
|
||||
sub_0806ABFC: @ 0x0806ABFC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0806AC38 @ =gUnk_08112674
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl sub_0806FDEC
|
||||
cmp r0, #0
|
||||
beq _0806AC36
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x6a
|
||||
strb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
subs r2, #1
|
||||
strb r0, [r2]
|
||||
strb r1, [r4, #0xe]
|
||||
_0806AC36:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806AC38: .4byte gUnk_08112674
|
||||
|
||||
thumb_func_start sub_0806AC3C
|
||||
sub_0806AC3C: @ 0x0806AC3C
|
||||
push {r4, r5, lr}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
#ifndef NPC_H
|
||||
#define NPC_H
|
||||
|
||||
typedef struct {
|
||||
u16 palette;
|
||||
u8 animIndex;
|
||||
u8 unk;
|
||||
} SpriteLoadThing;
|
||||
|
||||
#endif
|
|
@ -518,6 +518,7 @@ SECTIONS {
|
|||
asm/dog.o(.text);
|
||||
asm/syrup.o(.text);
|
||||
asm/rem.o(.text);
|
||||
src/townMinish.o(.text);
|
||||
asm/townMinish.o(.text);
|
||||
asm/librari.o(.text);
|
||||
asm/percy.o(.text);
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "npc.h"
|
||||
|
||||
extern void InitializeAnimation(Entity *, u32);
|
||||
|
||||
extern void sub_0806ED78(Entity *);
|
||||
|
||||
extern void (*gUnk_081126E8[])();
|
||||
extern void sub_0806ACC4(Entity *);
|
||||
|
||||
extern u32 sub_0806FDEC(Entity *, SpriteLoadThing *);
|
||||
extern SpriteLoadThing gUnk_08112674[];
|
||||
|
||||
void sub_0806ABC8(Entity *this)
|
||||
{
|
||||
if ((this->flags & 2) == 0) {
|
||||
(*gUnk_081126E8[this->action])(this);
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
else {
|
||||
sub_0806ACC4(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806ABFC(Entity *this)
|
||||
{
|
||||
u8 animationState;
|
||||
|
||||
SpriteLoadThing* spriteLoadThing = &gUnk_08112674[this->entityType.parameter1 << 2];
|
||||
if (!sub_0806FDEC(this, spriteLoadThing))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
InitializeAnimation(this, 2);
|
||||
this->action = 1;
|
||||
this->field_0x6a.HALF.LO = this->parameter3;
|
||||
|
||||
this->animationState = this->field_0x6a.HALF.LO << 1;
|
||||
animationState = this->animationState;
|
||||
this->field_0x69 = animationState << 2;
|
||||
|
||||
this->parameter3 = 0;
|
||||
}
|
||||
|
||||
// Not matching yet, not 100% sure it's functionally identical
|
||||
/*void sub_0806AC3C(Entity *this) {
|
||||
if (this->field_0x58 <= 3) {
|
||||
s32 unk;
|
||||
u8 field_0x69;
|
||||
|
||||
Entity *link = &gLinkEntity;
|
||||
if (sub_080041A0(this, link, 0x18, 0x18)) {
|
||||
unk = sub_080045C4(this, link) & (u8)0x1e;
|
||||
}
|
||||
else {
|
||||
unk = this->animationState << 2;
|
||||
}
|
||||
|
||||
field_0x69 = this->field_0x69;
|
||||
|
||||
if (unk != field_0x69) {
|
||||
s32 temp;
|
||||
|
||||
if (((unk - field_0x69) & 0x1f) <= 0xf) {
|
||||
field_0x69--;
|
||||
}
|
||||
else {
|
||||
field_0x69++;
|
||||
}
|
||||
|
||||
temp = field_0x69;
|
||||
this->field_0x69 = temp & 0x1f;
|
||||
}
|
||||
|
||||
if (!(this->field_0x69 & 7)) {
|
||||
this->animationState = sub_0806F5B0(this->field_0x69);
|
||||
UpdateSprite(this, (this->animationState >> 1) ^ 2);
|
||||
}
|
||||
}
|
||||
|
||||
sub_080042B8(this);
|
||||
}*/
|
Loading…
Reference in New Issue