first few funcs

This commit is contained in:
inspectredc
2023-11-01 16:52:41 +00:00
parent 51ad0cbdc7
commit 6cb2d0d436
2 changed files with 80 additions and 8 deletions
+67 -5
View File
@@ -121,25 +121,87 @@ extern UNK_TYPE D_0600466C;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E084.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E0F0.s")
void func_8086E0F0(EnOkuta* this, PlayState* arg1) {
if (this->unk18C == 10) {
this->unk18C = 0;
this->unk254 = 0.0f;
Actor_SpawnIceEffects(arg1, &this->actor, this->bodyPartsPos, 0xA, 2, 0.3f, 0.2f);
this->collider.base.colType = 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E168.s")
#if 0
static Color_RGBA8 D_80870928 = {255, 255, 255, 255};
static Color_RGBA8 D_8087092C = {255, 150, 150, 150};
void func_8086E214(Vec3f* pos, Vec3f* velocity, s16 scaleStep, PlayState* play) {
func_800B0DE0(play, pos, velocity, &gZeroVec3f, &D_80870928, &D_8087092C, 400, scaleStep);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E214.s")
#endif
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E27C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E2C0.s")
void func_8086E2C0(EnOkuta* this, PlayState* play) {
f32 temp_fv0;
Vec3f sp28;
temp_fv0 = this->actor.world.pos.y - this->actor.home.pos.y;
if ((((u32) play->gameplayFrames % 7) == 0) && (temp_fv0 < 50.0f) && (temp_fv0 >= -20.0f)) {
sp28.x = this->actor.world.pos.x;
sp28.y = this->actor.home.pos.y;
sp28.z = this->actor.world.pos.z;
EffectSsGRipple_Spawn(play, &sp28, 250, 650, 0);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E378.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E3B8.s")
void func_8086E3B8(EnOkuta* this, PlayState* play) {
Vec3f pos;
Vec3f velocity;
f32 sp3C;
f32 sp38;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E4FC.s")
sp3C = Math_SinS(this->actor.shape.rot.y);
sp38 = Math_CosS(this->actor.shape.rot.y);
pos.x = this->actor.world.pos.x + (25.0f * sp3C);
pos.y = this->actor.world.pos.y - 6.0f;
pos.z = this->actor.world.pos.z + (25.0f * sp38);
if (Actor_Spawn(&play->actorCtx, play, 8, pos.x, pos.y, pos.z, this->actor.shape.rot.x,
this->actor.shape.rot.y, this->actor.shape.rot.z, this->actor.params + 0x10) != NULL) {
pos.x = this->actor.world.pos.x + (40.0f * sp3C);
pos.z = this->actor.world.pos.z + (40.0f * sp38);
pos.y = this->actor.world.pos.y;
velocity.x = 1.5f * sp3C;
velocity.y = 0.0f;
velocity.z = 1.5f * sp38;
func_8086E214(&pos, &velocity, 0x14, play);
}
Actor_PlaySfx(&this->actor, 0x387E);
}
void func_8086E4FC(EnOkuta* this) {
this->actor.draw = NULL;
this->actor.flags &= ~1;
this->actionFunc = func_8086E52C;
this->actor.world.pos.y = this->actor.home.pos.y;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E52C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E5E8.s")
void func_8086E5E8(EnOkuta* this, s32 arg1) {
this->actor.draw = EnOkuta_Draw;
this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
this->actor.flags |= 1;
Animation_PlayOnce(&this->skelAnime, &D_0600466C);
func_8086E168(this, arg1);
this->actionFunc = func_8086E658;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Okuta/func_8086E658.s")
+13 -3
View File
@@ -9,9 +9,19 @@ typedef void (*EnOkutaActionFunc)(struct EnOkuta*, PlayState*);
typedef struct EnOkuta {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x44];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnOkutaActionFunc actionFunc;
/* 0x18C */ char unk_18C[0x1A8];
} EnOkuta; // size = 0x334
/* 0x18C */ u8 unk18C;
/* 0x18D */ char pad18D;
/* 0x18E */ s16 unk18E;
/* 0x190 */ s16 unk190;
/* 0x192 */ Vec3s jointTable[16];
/* 0x1F2 */ Vec3s morphTable[16];
/* 0x252 */ char pad252[2];
/* 0x254 */ f32 unk254;
/* 0x258 */ char pad258[0x18];
/* 0x270 */ Vec3f bodyPartsPos[0xA];
/* 0x2E8 */ ColliderCylinder collider;
} EnOkuta;
#endif // Z_EN_OKUTA_H