* En_Prz

* PR

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
This commit is contained in:
Maide 2022-03-05 15:09:23 +00:00 committed by GitHub
parent 1e4411a871
commit 26d71ffbf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 475 additions and 35 deletions

3
spec
View File

@ -3124,8 +3124,7 @@ beginseg
name "ovl_En_Prz"
compress
include "build/src/overlays/actors/ovl_En_Prz/z_en_prz.o"
include "build/data/ovl_En_Prz/ovl_En_Prz.data.o"
include "build/data/ovl_En_Prz/ovl_En_Prz.reloc.o"
include "build/src/overlays/actors/ovl_En_Prz/ovl_En_Prz_reloc.o"
endseg
beginseg

View File

@ -5,6 +5,8 @@
*/
#include "z_en_prz.h"
#include "objects/object_pr/object_pr.h"
#include "overlays/actors/ovl_En_Pr/z_en_pr.h"
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10)
@ -15,9 +17,15 @@ void EnPrz_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnPrz_Update(Actor* thisx, GlobalContext* globalCtx);
void EnPrz_Draw(Actor* thisx, GlobalContext* globalCtx);
#if 0
// static DamageTable sDamageTable = {
static DamageTable D_80A771C0 = {
void func_80A76388(EnPrz* this);
void func_80A763E8(EnPrz* this, GlobalContext* globalCtx);
void func_80A76604(EnPrz* this, GlobalContext* globalCtx);
void func_80A76634(EnPrz* this, GlobalContext* globalCtx);
void func_80A76748(EnPrz* this);
void func_80A767A8(EnPrz* this, GlobalContext* globalCtx);
void func_80A76B14(EnPrz* this, GlobalContext* globalCtx);
static DamageTable sDamageTable = {
/* Deku Nut */ DMG_ENTRY(0, 0x0),
/* Deku Stick */ DMG_ENTRY(0, 0x0),
/* Horse trample */ DMG_ENTRY(0, 0x0),
@ -52,10 +60,25 @@ static DamageTable D_80A771C0 = {
/* Powder Keg */ DMG_ENTRY(1, 0xF),
};
// static ColliderCylinderInit sCylinderInit = {
static ColliderCylinderInit D_80A771F4 = {
{ COLTYPE_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, OC2_TYPE_1, COLSHAPE_CYLINDER, },
{ ELEMTYPE_UNK4, { 0x20000000, 0x00, 0x04 }, { 0xF7CFFFFF, 0x00, 0x00 }, TOUCH_ON | TOUCH_SFX_NORMAL, BUMP_ON, OCELEM_NONE, },
f32 D_80A771E0[] = { 40.0f, 40.0f, 40.0f, 30.0f, 30.0f };
static ColliderCylinderInit sCylinderInit = {
{
COLTYPE_NONE,
AT_ON | AT_TYPE_ENEMY,
AC_ON | AC_TYPE_PLAYER,
OC1_NONE,
OC2_TYPE_1,
COLSHAPE_CYLINDER,
},
{
ELEMTYPE_UNK4,
{ 0x20000000, 0x00, 0x04 },
{ 0xF7CFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
OCELEM_NONE,
},
{ 10, 10, 0, { 0, 0, 0 } },
};
@ -71,45 +94,436 @@ const ActorInit En_Prz_InitVars = {
(ActorFunc)EnPrz_Draw,
};
#endif
AnimationHeader* D_80A77240[] = { &object_pr_Anim_004340, &object_pr_Anim_004274 };
extern DamageTable D_80A771C0;
extern ColliderCylinderInit D_80A771F4;
u8 D_80A77248[] = { 0, 0 };
extern UNK_TYPE D_06004340;
Vec3f D_80A7724C = { 0.0f, 0.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/EnPrz_Init.s")
void EnPrz_Init(Actor* thisx, GlobalContext* globalCtx) {
EnPrz* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/EnPrz_Destroy.s")
this->unk_20C = 0.01f;
this->unk_1E4 = this->actor.world.rot.y;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A75F18.s")
Actor_SetScale(&this->actor, 0.01f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A75FA4.s")
this->actor.targetMode = 3;
this->unk_1E8 = 255;
this->actor.hintId = 0x5B;
this->actor.colChkInfo.damageTable = &sDamageTable;
this->actor.colChkInfo.health = 1;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76070.s")
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &object_pr_Skel_004188, &object_pr_Anim_004340, this->jointTable,
this->morphTable, 5);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A762C0.s")
this->unk_1E6 = ENPRZ_GET(&this->actor);
this->actor.shape.yOffset = 500.0f;
this->actor.flags |= ACTOR_FLAG_8000000;
this->actor.flags &= ~ACTOR_FLAG_1;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76388.s")
Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
Math_Vec3f_Copy(&this->unk_1D8, &this->actor.world.pos);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A763E8.s")
this->unk_220 = &this->actor;
this->unk_1EC = 255;
this->unk_202 = randPlusMinusPoint5Scaled((this->unk_1E6 * 100.0f) + 1000.0f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76604.s")
func_80A76388(this);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76634.s")
void EnPrz_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76748.s")
void func_80A75F18(EnPrz* this, s32 arg1) {
this->unk_204 = arg1;
Animation_Change(&this->skelAnime, D_80A77240[arg1], 1.0f, 0.0f, Animation_GetLastFrame(D_80A77240[arg1]),
D_80A77248[arg1], -2.0f);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A767A8.s")
s32 func_80A75FA4(EnPrz* this, GlobalContext* globalCtx) {
WaterBox* sp2C;
f32 temp_f0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76A1C.s")
if (WaterBox_GetSurface1(globalCtx, &globalCtx->colCtx, this->actor.world.pos.x, this->actor.world.pos.z,
&this->unk_210, &sp2C)) {
temp_f0 = BREG(10) + (this->unk_210 - 10.0f);
if (temp_f0 < this->actor.world.pos.y) {
this->unk_1D8.y = temp_f0;
return 1;
}
} else {
temp_f0 = this->actor.floorHeight + 35.0f;
if (this->actor.world.pos.y < temp_f0) {
this->unk_1D8.y = temp_f0;
return 2;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76B14.s")
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/EnPrz_Update.s")
void func_80A76070(EnPrz* this, s16 arg1, GlobalContext* globalCtx) {
s16 temp_s0 = arg1 - this->actor.world.rot.y;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76F70.s")
temp_s0 *= 0.01f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/func_80A76FCC.s")
if (temp_s0 > 100) {
temp_s0 = 100;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Prz/EnPrz_Draw.s")
if (temp_s0 < -100) {
temp_s0 = -100;
}
if (fabsf(this->actor.world.rot.y - (f32)arg1) < (randPlusMinusPoint5Scaled(20.0f) + 100.0f)) {
Math_ApproachZeroF(&this->unk_218, 0.5f, 20.0f);
} else {
Math_ApproachF(&this->unk_218, temp_s0, 0.5f, 5.0f);
}
temp_s0 = fabsf(this->unk_218) * 0.1f;
if (temp_s0 < 2) {
temp_s0 = 2;
}
Math_SmoothStepToS(&this->actor.world.rot.y, arg1, temp_s0, this->unk_202 + 0x1388, 0);
func_80A75FA4(this, globalCtx);
Math_ApproachF(&this->actor.world.pos.y, this->unk_1D8.y, 0.5f, 1.0f);
temp_s0 = Math_Vec3f_Pitch(&this->actor.world.pos, &this->unk_1D8) * 0.5f;
if (fabsf(this->actor.world.pos.y - this->unk_208) > 4.0f) {
Math_SmoothStepToS(&this->actor.world.rot.x, temp_s0, 1, BREG(48) + 0x1F4, 0);
} else {
Math_SmoothStepToS(&this->actor.world.rot.x, 0, 1, BREG(52) + 0xBB8, 0);
}
}
s32 func_80A762C0(EnPrz* this, GlobalContext* globalCtx) {
CollisionPoly* sp54;
Vec3f sp48;
s32 sp44;
Vec3f sp38;
Math_Vec3f_Copy(&sp38, &this->actor.world.pos);
sp38.x += Math_SinS(this->actor.world.rot.y) * 40.0f;
sp38.z += Math_CosS(this->actor.world.rot.y) * 40.0f;
if (BgCheck_EntityLineTest1(&globalCtx->colCtx, &this->actor.world.pos, &sp38, &sp48, &sp54, true, false, false,
true, &sp44)) {
return true;
}
return false;
}
void func_80A76388(EnPrz* this) {
this->actor.speedXZ = randPlusMinusPoint5Scaled(1.0f) + 4.0f;
func_80A75F18(this, 0);
this->unk_1EA = 1;
this->actionFunc = func_80A763E8;
}
void func_80A763E8(EnPrz* this, GlobalContext* globalCtx) {
Actor* sp3C = this->actor.parent;
Player* player = GET_PLAYER(globalCtx);
s16 yaw;
s32 pad;
if (&this->actor == this->unk_220) {
return;
}
if ((player->stateFlags1 & 0x8000000) && (this->unk_1F2 == 0)) {
func_80A76748(this);
return;
}
if (func_80A762C0(this, globalCtx)) {
func_80A76604(this, globalCtx);
return;
}
if ((this->unk_220 != NULL) && (this->unk_220->update == NULL)) {
this->unk_220 = this->actor.parent;
}
if ((this->unk_1EE == 0) && (this->unk_1F2 == 0)) {
s16 rot;
this->unk_214 = randPlusMinusPoint5Scaled(40.0f);
rot = BINANG_ROT180(this->unk_220->world.rot.y);
this->unk_1D8.x += Math_SinS(rot) * this->unk_214;
this->unk_1D8.y = randPlusMinusPoint5Scaled(40.0f) + (this->unk_220->world.pos.y + 40.0f);
rot = BINANG_ROT180(this->unk_220->world.rot.y);
this->unk_1D8.z += Math_CosS(rot) * this->unk_214;
this->unk_1EE = Rand_S16Offset(20, 30);
} else if (sqrtf(SQ(this->actor.world.pos.x - sp3C->world.pos.x) +
SQ(this->actor.world.pos.z - sp3C->world.pos.z)) > 100.0f) {
Math_Vec3f_Copy(&this->unk_1D8, &sp3C->world.pos);
}
if (1) {}
if ((Rand_ZeroOne() < 0.1f) && (this->unk_1C8 == 0)) {
this->unk_1C8 = 1;
}
yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_1D8);
func_80A76070(this, yaw, globalCtx);
}
void func_80A76604(EnPrz* this, GlobalContext* globalCtx) {
this->unk_1EE = 0;
this->unk_1E4 = BINANG_ADD(this->actor.world.rot.y, 0x4000);
this->unk_1EA = 2;
this->actionFunc = func_80A76634;
}
void func_80A76634(EnPrz* this, GlobalContext* globalCtx) {
Player* player = GET_PLAYER(globalCtx);
func_80A76070(this, this->unk_1E4, globalCtx);
if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, this->unk_1E4)) < 0x100) {
if (func_80A762C0(this, globalCtx) != 0) {
this->unk_1E4 += 0x1500;
this->unk_1E4 += (s16)Rand_ZeroFloat(5000.0f);
} else if ((player->stateFlags1 & 0x8000000) && (player->actor.floorHeight < 30.0f)) {
this->actionFunc = func_80A763E8;
} else {
this->unk_1EE = 10;
this->unk_1EA = 1;
this->actionFunc = func_80A763E8;
}
}
}
void func_80A76748(EnPrz* this) {
this->actor.speedXZ = randPlusMinusPoint5Scaled(1.0f) + 3.0f;
this->unk_1EE = 0;
this->unk_1EA = 3;
this->skelAnime.playSpeed = 2.0f;
this->actionFunc = func_80A767A8;
}
void func_80A767A8(EnPrz* this, GlobalContext* globalCtx) {
Player* player = GET_PLAYER(globalCtx);
EnPr* pr = (EnPr*)this->actor.parent;
f32 sqrt;
s32 pad[2];
u8 playerForm;
if (func_80A762C0(this, globalCtx)) {
func_80A75F18(this, 0);
this->actor.speedXZ = randPlusMinusPoint5Scaled(1.0f) + 4.0f;
func_80A76604(this, globalCtx);
return;
}
sqrt = sqrtf(SQ(player->actor.world.pos.x - this->actor.parent->home.pos.x) +
SQ(player->actor.world.pos.z - this->actor.parent->home.pos.z));
if (!(player->stateFlags1 & 0x8000000) || (pr->unk_2C8 < sqrt)) {
this->unk_1F2 = 100;
this->skelAnime.playSpeed = 1.0f;
func_80A76388(this);
return;
}
if ((this->actor.xzDistToPlayer < 200.0f) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 80.0f)) {
if (this->unk_204 != 1) {
func_80A75F18(this, 1);
}
this->skelAnime.playSpeed = 1.0f;
} else {
if (this->unk_204 != 0) {
func_80A75F18(this, 0);
}
this->skelAnime.playSpeed = 2.0f;
}
if (this->unk_1EE == 0) {
this->unk_1EE = Rand_S16Offset(2, 3);
Math_Vec3f_Copy(&this->unk_1D8, &player->actor.world.pos);
}
if ((Rand_ZeroOne() < 0.1f) && (this->unk_1C8 == 0)) {
this->unk_1C8 = 1;
}
playerForm = gSaveContext.playerForm;
this->unk_1D8.y =
(player->actor.world.pos.y + D_80A771E0[playerForm]) + randPlusMinusPoint5Scaled((2.0f * this->unk_1E6) + 1.0f);
func_80A76070(this, Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_1D8), globalCtx);
}
void func_80A76A1C(EnPrz* this) {
this->unk_1E8 = 0;
this->actor.flags |= ACTOR_FLAG_8000000;
this->actor.flags &= ~ACTOR_FLAG_1;
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_BUBLEWALK_DEAD);
this->unk_1EE = Rand_S16Offset(100, 30);
this->unk_1FC = 0x4000;
if (Rand_ZeroOne() < 0.5f) {
this->unk_1FC = -0x4000;
}
this->unk_1FE = this->actor.world.rot.y;
this->actor.speedXZ = Rand_ZeroFloat(0.5f);
this->actor.world.rot.y = randPlusMinusPoint5Scaled(0x8000);
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 30);
this->unk_1EE = 50;
func_80A75F18(this, 0);
this->unk_1EA = 7;
this->actionFunc = func_80A76B14;
}
void func_80A76B14(EnPrz* this, GlobalContext* globalCtx) {
WaterBox* sp7C;
s32 i;
Vec3f sp6C;
s32 phi_s0 = false;
Math_SmoothStepToS(&this->actor.shape.rot.x, 0, 5, 0x2710, 0x3E8);
Math_SmoothStepToS(&this->actor.shape.rot.z, this->unk_1FC, 5, 0x2710, 0x3E8);
Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_1FE, 5, 0x2710, 0x3E8);
if (WaterBox_GetSurface1(globalCtx, &globalCtx->colCtx, this->actor.world.pos.x, this->actor.world.pos.z,
&this->unk_210, &sp7C)) {
if ((this->unk_210 - 15.0f) <= this->actor.world.pos.y) {
phi_s0 = true;
} else {
Math_ApproachF(&this->actor.world.pos.y, this->unk_210 - 14.0f, 0.3f, 1.0f);
}
}
if ((this->unk_1EE == 0) || phi_s0) {
Math_SmoothStepToS(&this->unk_1EC, 0, 1, 15, 50);
if (this->unk_1EC < 2) {
for (i = 0; i < 10; i++) {
Math_Vec3f_Copy(&sp6C, &this->actor.world.pos);
sp6C.x += randPlusMinusPoint5Scaled(20.0f);
sp6C.y += randPlusMinusPoint5Scaled(5.0f);
sp6C.z += randPlusMinusPoint5Scaled(20.0f);
EffectSsBubble_Spawn(globalCtx, &sp6C, 0.0f, 5.0f, 5.0f, Rand_ZeroFloat(0.03f) + 0.07f);
}
Actor_MarkForDeath(&this->actor);
}
}
}
void EnPrz_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnPrz* this = THIS;
s32 sp44 = false;
Vec3f sp38;
if (this->unk_1EA != 7) {
SkelAnime_Update(&this->skelAnime);
}
this->actionFunc(this, globalCtx);
if (this->unk_1EE != 0) {
this->unk_1EE--;
}
if (this->unk_1F2 != 0) {
this->unk_1F2--;
}
Actor_MoveWithGravity(&this->actor);
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 0.0f, 10.0f, 10.0f, 0x1D);
if (this->unk_1EA != 7) {
Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot);
}
if (this->unk_1EA != 7) {
if (this->collider.base.acFlags & AC_HIT) {
Actor_ApplyDamage(&this->actor);
if (this->actor.colChkInfo.health <= 0) {
sp44 = true;
}
}
if (sp44 || (this->actor.parent == NULL) || (this->actor.parent->colChkInfo.health <= 0)) {
this->collider.base.acFlags &= ~AC_HIT;
if (this->unk_1EA != 7) {
func_80A76A1C(this);
return;
}
}
Collider_UpdateCylinder(&this->actor, &this->collider);
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (this->unk_1C8 != 0) {
Math_Vec3f_Copy(&sp38, &this->unk_1CC);
this->unk_1C8 = 0;
sp38.x += randPlusMinusPoint5Scaled(20.0f);
sp38.y += randPlusMinusPoint5Scaled(5.0f);
sp38.z += randPlusMinusPoint5Scaled(20.0f);
EffectSsBubble_Spawn(globalCtx, &sp38, 0.0f, 5.0f, 5.0f, Rand_ZeroFloat(0.03f) + 0.07f);
}
}
}
s32 func_80A76F70(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnPrz* this = THIS;
if (limbIndex == 2) {
rot->y += (s16)this->unk_218 * -100;
}
return false;
}
void func_80A76FCC(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
Vec3f sp1C = D_80A7724C;
EnPrz* this = THIS;
if (limbIndex == 2) {
Matrix_InsertTranslation(0.0f, 0.0f, 0.0f, MTXMODE_APPLY);
Matrix_MultiplyVector3fByState(&sp1C, &this->unk_1CC);
}
}
void EnPrz_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnPrz* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx);
func_8012C28C(globalCtx->state.gfxCtx);
if (this->unk_1EC == 255) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->unk_1E8, this->unk_1E8, this->unk_1E8, this->unk_1EC);
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, this->unk_1EC);
Scene_SetRenderModeXlu(globalCtx, 0, 1);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, func_80A76F70, func_80A76FCC, &this->actor);
} else {
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->unk_1EC);
Scene_SetRenderModeXlu(globalCtx, 1, 2);
POLY_XLU_DISP = SkelAnime_DrawFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, NULL, NULL, &this->actor, POLY_XLU_DISP);
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
}

View File

@ -7,13 +7,39 @@ struct EnPrz;
typedef void (*EnPrzActionFunc)(struct EnPrz*, GlobalContext*);
#define ENPRZ_GET(thisx) ((thisx)->params & 0xFF)
typedef struct EnPrz {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x80];
/* 0x0144 */ SkelAnime skelAnime;
/* 0x0188 */ Vec3s jointTable[5];
/* 0x01A6 */ Vec3s morphTable[5];
/* 0x01C4 */ EnPrzActionFunc actionFunc;
/* 0x01C8 */ char unk_1C8[0x58];
/* 0x01C8 */ u8 unk_1C8;
/* 0x01CC */ Vec3f unk_1CC;
/* 0x01D8 */ Vec3f unk_1D8;
/* 0x01E4 */ s16 unk_1E4;
/* 0x01E6 */ s16 unk_1E6;
/* 0x01E8 */ s16 unk_1E8;
/* 0x01EA */ s16 unk_1EA;
/* 0x01EC */ s16 unk_1EC;
/* 0x01EE */ s16 unk_1EE;
/* 0x01F0 */ UNK_TYPE1 unk1F0[2];
/* 0x01F2 */ s16 unk_1F2;
/* 0x01F4 */ UNK_TYPE1 unk1F4[8];
/* 0x01FC */ s16 unk_1FC;
/* 0x01FE */ s16 unk_1FE;
/* 0x0200 */ UNK_TYPE1 unk200[2];
/* 0x0202 */ s16 unk_202;
/* 0x0204 */ s32 unk_204;
/* 0x0208 */ f32 unk_208;
/* 0x020C */ f32 unk_20C;
/* 0x0210 */ f32 unk_210;
/* 0x0214 */ f32 unk_214;
/* 0x0218 */ f32 unk_218;
/* 0x021C */ UNK_TYPE1 unk21C[4];
/* 0x0220 */ Actor* unk_220;
/* 0x0224 */ char unk_224[0x4C];
/* 0x0224 */ ColliderCylinder collider;
} EnPrz; // size = 0x270
extern const ActorInit En_Prz_InitVars;

View File

@ -1678,8 +1678,9 @@ D_06009930 = 0x06009930;
D_0600A844 = 0x0600A844;
D_06012768 = 0x06012768;
// ovl_En_Prz
// ovl_En_Pr2
D_06003904 = 0x06003904;
D_06004188 = 0x06004188;
D_06004340 = 0x06004340;