ObjTokeidai_Init OK

This commit is contained in:
tom-overton 2021-10-31 20:04:51 -07:00
parent 7f84189753
commit 927ccae9ea
2 changed files with 80 additions and 3 deletions

View File

@ -36,6 +36,7 @@ void func_80AB3ED0(ObjTokeidai* this, GlobalContext* globalCtx);
void func_80AB4040(ObjTokeidai* this, GlobalContext* globalCtx);
void func_80AB4080(ObjTokeidai* this, GlobalContext* globalCtx);
void func_80AB4160(ObjTokeidai* this, GlobalContext* globalCtx);
void func_80AB4394(Actor* thisx, GlobalContext* globalCtx);
const ActorInit Obj_Tokeidai_InitVars = {
ACTOR_OBJ_TOKEIDAI,
@ -49,12 +50,21 @@ const ActorInit Obj_Tokeidai_InitVars = {
(ActorFunc)ObjTokeidai_Draw,
};
static s32 D_80AB49E0[] = { 0xC8580064, 0xB0FC0FA0, 0xB1000CE4, 0x30FC044C };
// static InitChainEntry sInitChain
static InitChainEntry D_80AB49E0[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1100, ICHAIN_STOP),
};
extern UNK_TYPE D_06009A08;
extern UNK_TYPE D_0600B208;
extern UNK_TYPE D_0600BA78;
extern UNK_TYPE D_0600CF28;
extern UNK_TYPE D_0600D388;
extern UNK_TYPE D_0600D8E0;
extern UNK_TYPE D_0600D8E8;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/func_80AB2790.s")
@ -68,7 +78,67 @@ extern UNK_TYPE D_0600D388;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/func_80AB2BBC.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/ObjTokeidai_Init.s")
void ObjTokeidai_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjTokeidai* this = THIS;
Actor_ProcessInitChain(&this->actor, D_80AB49E0);
this->actionFunc = func_80AB3BD8;
this->unk_144 = NULL;
this->unk_148 = NULL;
this->unk_160 = 0;
this->unk_15E = 0;
this->unk_162 = 0;
this->unk_170 = gSaveContext.time;
this->actor.home.rot.x = 0;
switch ((this->actor.params & 0xF000) >> 0xC) {
case 4:
Actor_SetScale(&this->actor, 0.15f);
func_80AB28C8(this, globalCtx);
break;
case 0:
func_80AB28C8(this, globalCtx);
break;
case 1:
this->unk_144 = &D_0600D388;
break;
case 8:
Actor_SetScale(&this->actor, 1.0f);
this->unk_144 = &D_06009A08;
this->actionFunc = func_80AB365C;
break;
case 5:
Actor_SetScale(&this->actor, 0.15f);
func_80AB29F8(this, globalCtx);
break;
case 2:
func_80AB29F8(this, globalCtx);
break;
case 9:
Actor_SetScale(&this->actor, 0.02f);
this->actor.draw = func_80AB4394;
func_80AB2834(this);
this->actionFunc = func_80AB4040;
break;
case 10:
Actor_SetScale(&this->actor, 0.01f);
this->actor.draw = func_80AB4394;
func_80AB2834(this);
this->actionFunc = func_80AB4040;
break;
case 6:
Actor_SetScale(&this->actor, 0.15f);
func_80AB2BBC(this, globalCtx);
break;
case 3:
func_80AB2BBC(this, globalCtx);
break;
case 11:
this->unk_144 = &D_0600D8E8;
this->unk_148 = &D_0600D8E0;
this->actionFunc = func_80AB3BE8;
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/ObjTokeidai_Destroy.s")

View File

@ -9,7 +9,14 @@ typedef void (*ObjTokeidaiActionFunc)(struct ObjTokeidai*, GlobalContext*);
typedef struct ObjTokeidai {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x30];
/* 0x0144 */ void* unk_144;
/* 0x0148 */ void* unk_148;
/* 0x014C */ char unk_14C[0x12];
/* 0x015E */ s16 unk_15E;
/* 0x0160 */ s16 unk_160;
/* 0x0162 */ s16 unk_162;
/* 0x0164 */ char unk_164[0xC];
/* 0x0170 */ u16 unk_170;
/* 0x0174 */ ObjTokeidaiActionFunc actionFunc;
} ObjTokeidai; // size = 0x178