mirror of https://github.com/zeldaret/tmc.git
Put const data in mailbox
This commit is contained in:
parent
3eb303c7c9
commit
cda3d6fbe5
|
@ -1,11 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gMailboxBehaviors:: @ 0810C804
|
||||
.4byte sub_08063210
|
||||
.4byte sub_08063220
|
||||
.4byte sub_08063254
|
||||
.4byte sub_08063278
|
|
@ -1175,7 +1175,7 @@ SECTIONS {
|
|||
data/animations/npc/pita.o(.rodata);
|
||||
src/npc/minishEzlo.o(.rodata);
|
||||
data/animations/npc/minishEzlo.o(.rodata);
|
||||
data/const/npc/mailbox.o(.rodata);
|
||||
src/npc/mailbox.o(.rodata);
|
||||
data/animations/npc/mailbox.o(.rodata);
|
||||
data/const/npc/beedle.o(.rodata);
|
||||
data/animations/npc/beedle.o(.rodata);
|
||||
|
|
|
@ -4,11 +4,19 @@
|
|||
#include "effects.h"
|
||||
#include "npc.h"
|
||||
|
||||
extern void sub_08063280(Entity*, u32);
|
||||
|
||||
extern void (*gMailboxBehaviors[4])(Entity*);
|
||||
void sub_08063280(Entity*);
|
||||
void sub_08063210(Entity*);
|
||||
void sub_08063220(Entity*);
|
||||
void sub_08063254(Entity*);
|
||||
void sub_08063278(Entity*);
|
||||
|
||||
void Mailbox(Entity* this) {
|
||||
static void (*const gMailboxBehaviors[4])(Entity*) = {
|
||||
sub_08063210,
|
||||
sub_08063220,
|
||||
sub_08063254,
|
||||
sub_08063278,
|
||||
};
|
||||
gMailboxBehaviors[this->action](this);
|
||||
|
||||
if (this->action != 0) {
|
||||
|
@ -34,30 +42,28 @@ void sub_08063220(Entity* this) {
|
|||
if (this->animIndex != bVar1) {
|
||||
InitAnimationForceUpdate(this, bVar1);
|
||||
} else {
|
||||
sub_08063280(this, bVar1);
|
||||
sub_08063280(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08063254(Entity* this, u32 unused) {
|
||||
sub_08063280(this, unused);
|
||||
void sub_08063254(Entity* this) {
|
||||
sub_08063280(this);
|
||||
if ((this->frame & ANIM_DONE) != 0) {
|
||||
this->action = 3;
|
||||
MessageFromTarget(0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08063278(Entity* this, u32 unused) {
|
||||
sub_08063280(this, unused);
|
||||
void sub_08063278(Entity* this) {
|
||||
sub_08063280(this);
|
||||
}
|
||||
|
||||
void sub_08063280(Entity* this, u32 unused) {
|
||||
Entity* e; // r4@1
|
||||
u8 var; // r2@1
|
||||
void sub_08063280(Entity* this) {
|
||||
u8 var; // r2@1
|
||||
|
||||
e = this;
|
||||
UpdateAnimationSingleFrame(e);
|
||||
var = e->frame & 0x7F;
|
||||
e->frame ^= var;
|
||||
UpdateAnimationSingleFrame(this);
|
||||
var = this->frame & ~ANIM_DONE;
|
||||
this->frame ^= var;
|
||||
if (var == 2)
|
||||
CreateFx(e, FX_MAILBOX_UNUSED, 0);
|
||||
CreateFx(this, FX_MAILBOX_UNUSED, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue