1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 23:10:22 +00:00

Actor Struct Changes (and a few related things) (#617)

* reformat header

* type -> category

* done for now i think

* some more stuff

* first -> head

* focus

* flag comment

* ground -> floor

* remove asm, name wrapper funcs

* name func, format

* review

* targetPriority, format

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "0305ec2c2"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "0305ec2c2"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* comment

* review

* feet flags

* horse shadow
This commit is contained in:
fig02 2021-01-18 16:04:04 -05:00 committed by GitHub
parent 20206fba0d
commit 00a5edea71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
697 changed files with 8157 additions and 7942 deletions

View file

@ -22,7 +22,7 @@ void EnOkuta_ProjectileFly(EnOkuta* this, GlobalContext* globalCtx);
const ActorInit En_Okuta_InitVars = {
ACTOR_EN_OKUTA,
ACTORTYPE_ENEMY,
ACTORCAT_ENEMY,
FLAGS,
OBJECT_OKUTA,
sizeof(EnOkuta),
@ -120,7 +120,7 @@ static DamageTable sDamageTable = {
static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 66, ICHAIN_CONTINUE),
ICHAIN_F32(unk_4C, 6500, ICHAIN_STOP),
ICHAIN_F32(targetArrowOffset, 6500, ICHAIN_STOP),
};
void EnOkuta_Init(Actor* thisx, GlobalContext* globalCtx) {
@ -141,24 +141,24 @@ void EnOkuta_Init(Actor* thisx, GlobalContext* globalCtx) {
if ((this->numShots == 0xFF) || (this->numShots == 0)) {
this->numShots = 1;
}
thisx->groundY =
BgCheck_EntityRaycastFloor4(&globalCtx->colCtx, &thisx->floorPoly, &sp30, thisx, &thisx->posRot.pos);
thisx->floorHeight =
BgCheck_EntityRaycastFloor4(&globalCtx->colCtx, &thisx->floorPoly, &sp30, thisx, &thisx->world.pos);
//! @bug calls WaterBox_GetSurfaceImpl directly
if (!WaterBox_GetSurfaceImpl(globalCtx, &globalCtx->colCtx, thisx->posRot.pos.x, thisx->posRot.pos.z, &ySurface,
if (!WaterBox_GetSurfaceImpl(globalCtx, &globalCtx->colCtx, thisx->world.pos.x, thisx->world.pos.z, &ySurface,
&outWaterBox) ||
(ySurface <= thisx->groundY)) {
(ySurface <= thisx->floorHeight)) {
Actor_Kill(thisx);
} else {
thisx->initPosRot.pos.y = ySurface;
thisx->home.pos.y = ySurface;
}
EnOkuta_SetupWaitToAppear(this);
} else {
ActorShape_Init(&thisx->shape, 1100.0f, ActorShadow_DrawFunc_Circle, 18.0f);
ActorShape_Init(&thisx->shape, 1100.0f, ActorShadow_DrawCircle, 18.0f);
thisx->flags &= ~1;
thisx->flags |= 0x10;
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, thisx, &sProjectileColliderInit);
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, thisx, ACTORTYPE_PROP);
Actor_ChangeCategory(globalCtx, &globalCtx->actorCtx, thisx, ACTORCAT_PROP);
this->timer = 30;
thisx->shape.rot.y = 0;
this->actionFunc = EnOkuta_ProjectileFly;
@ -176,7 +176,7 @@ void EnOkuta_SpawnBubbles(EnOkuta* this, GlobalContext* globalCtx) {
s32 i;
for (i = 0; i < 10; i++) {
EffectSsBubble_Spawn(globalCtx, &this->actor.posRot.pos, -10.0f, 10.0f, 30.0f, 0.25f);
EffectSsBubble_Spawn(globalCtx, &this->actor.world.pos, -10.0f, 10.0f, 30.0f, 0.25f);
}
}
@ -189,17 +189,17 @@ void EnOkuta_SpawnDust(Vec3f* pos, Vec3f* velocity, s16 scaleStep, GlobalContext
}
void EnOkuta_SpawnSplash(EnOkuta* this, GlobalContext* globalCtx) {
EffectSsGSplash_Spawn(globalCtx, &this->actor.initPosRot.pos, NULL, NULL, 0, 1300);
EffectSsGSplash_Spawn(globalCtx, &this->actor.home.pos, NULL, NULL, 0, 1300);
}
void EnOkuta_SpawnRipple(EnOkuta* this, GlobalContext* globalCtx) {
Vec3f pos;
pos.x = this->actor.posRot.pos.x;
pos.y = this->actor.initPosRot.pos.y;
pos.z = this->actor.posRot.pos.z;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.home.pos.y;
pos.z = this->actor.world.pos.z;
if ((globalCtx->gameplayFrames % 7) == 0 &&
((this->actionFunc != EnOkuta_Shoot) || ((this->actor.posRot.pos.y - this->actor.initPosRot.pos.y) < 50.0f))) {
((this->actionFunc != EnOkuta_Shoot) || ((this->actor.world.pos.y - this->actor.home.pos.y) < 50.0f))) {
EffectSsGRipple_Spawn(globalCtx, &pos, 250, 650, 0);
}
}
@ -208,12 +208,12 @@ void EnOkuta_SetupWaitToAppear(EnOkuta* this) {
this->actor.draw = NULL;
this->actor.flags &= ~1;
this->actionFunc = EnOkuta_WaitToAppear;
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y;
this->actor.world.pos.y = this->actor.home.pos.y;
}
void EnOkuta_SetupAppear(EnOkuta* this, GlobalContext* globalCtx) {
this->actor.draw = EnOkuta_Draw;
this->actor.shape.rot.y = this->actor.yawTowardsLink;
this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
this->actor.flags |= 1;
Animation_PlayOnce(&this->skelAnime, &D_06003C64);
EnOkuta_SpawnBubbles(this, globalCtx);
@ -236,7 +236,7 @@ void EnOkuta_SetupShoot(EnOkuta* this, GlobalContext* globalCtx) {
if (this->actionFunc != EnOkuta_Shoot) {
this->timer = this->numShots;
}
this->jumpHeight = this->actor.yDistToLink + 20.0f;
this->jumpHeight = this->actor.yDistToPlayer + 20.0f;
this->jumpHeight = CLAMP_MIN(this->jumpHeight, 10.0f);
if (this->jumpHeight > 50.0f) {
EnOkuta_SpawnSplash(this, globalCtx);
@ -274,14 +274,14 @@ void EnOkuta_SpawnProjectile(EnOkuta* this, GlobalContext* globalCtx) {
f32 sin = Math_SinS(this->actor.shape.rot.y);
f32 cos = Math_CosS(this->actor.shape.rot.y);
pos.x = this->actor.posRot.pos.x + (25.0f * sin);
pos.y = this->actor.posRot.pos.y - 6.0f;
pos.z = this->actor.posRot.pos.z + (25.0f * cos);
pos.x = this->actor.world.pos.x + (25.0f * sin);
pos.y = this->actor.world.pos.y - 6.0f;
pos.z = this->actor.world.pos.z + (25.0f * cos);
if (Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_OKUTA, pos.x, pos.y, pos.z, this->actor.shape.rot.x,
this->actor.shape.rot.y, this->actor.shape.rot.z, 0x10) != NULL) {
pos.x = this->actor.posRot.pos.x + (40.0f * sin);
pos.z = this->actor.posRot.pos.z + (40.0f * cos);
pos.y = this->actor.posRot.pos.y;
pos.x = this->actor.world.pos.x + (40.0f * sin);
pos.z = this->actor.world.pos.z + (40.0f * cos);
pos.y = this->actor.world.pos.y;
velocity.x = 1.5f * sin;
velocity.y = 0.0f;
velocity.z = 1.5f * cos;
@ -291,8 +291,8 @@ void EnOkuta_SpawnProjectile(EnOkuta* this, GlobalContext* globalCtx) {
}
void EnOkuta_WaitToAppear(EnOkuta* this, GlobalContext* globalCtx) {
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y;
if ((this->actor.xzDistToLink < 480.0f) && (this->actor.xzDistToLink > 200.0f)) {
this->actor.world.pos.y = this->actor.home.pos.y;
if ((this->actor.xzDistToPlayer < 480.0f) && (this->actor.xzDistToPlayer > 200.0f)) {
EnOkuta_SetupAppear(this, globalCtx);
}
}
@ -301,7 +301,7 @@ void EnOkuta_Appear(EnOkuta* this, GlobalContext* globalCtx) {
s32 pad;
if (SkelAnime_Update(&this->skelAnime)) {
if (this->actor.xzDistToLink < 160.0f) {
if (this->actor.xzDistToPlayer < 160.0f) {
EnOkuta_SetupHide(this);
} else {
EnOkuta_SetupWaitToShoot(this);
@ -325,7 +325,7 @@ void EnOkuta_Appear(EnOkuta* this, GlobalContext* globalCtx) {
void EnOkuta_Hide(EnOkuta* this, GlobalContext* globalCtx) {
s32 pad;
Math_ApproachF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 0.5f, 30.0f);
Math_ApproachF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f, 30.0f);
if (SkelAnime_Update(&this->skelAnime)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_OCTAROCK_BUBLE);
EnOkuta_SpawnBubbles(this, globalCtx);
@ -345,7 +345,7 @@ void EnOkuta_WaitToShoot(EnOkuta* this, GlobalContext* globalCtx) {
s16 temp_v0_2;
s32 phi_v1;
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y;
this->actor.world.pos.y = this->actor.home.pos.y;
SkelAnime_Update(&this->skelAnime);
if (Animation_OnFrame(&this->skelAnime, 0.0f)) {
if (this->timer != 0) {
@ -355,19 +355,19 @@ void EnOkuta_WaitToShoot(EnOkuta* this, GlobalContext* globalCtx) {
if (Animation_OnFrame(&this->skelAnime, 0.5f)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_OCTAROCK_FLOAT);
}
if (this->actor.xzDistToLink < 160.0f || this->actor.xzDistToLink > 560.0f) {
if (this->actor.xzDistToPlayer < 160.0f || this->actor.xzDistToPlayer > 560.0f) {
EnOkuta_SetupHide(this);
} else {
temp_v0_2 = Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsLink, 3, 0x71C, 0x38E);
temp_v0_2 = Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 0x71C, 0x38E);
phi_v1 = ABS(temp_v0_2);
if ((phi_v1 < 0x38E) && (this->timer == 0) && (this->actor.yDistToLink < 200.0f)) {
if ((phi_v1 < 0x38E) && (this->timer == 0) && (this->actor.yDistToPlayer < 200.0f)) {
EnOkuta_SetupShoot(this, globalCtx);
}
}
}
void EnOkuta_Shoot(EnOkuta* this, GlobalContext* globalCtx) {
Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsLink, 3, 0x71C);
Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 0x71C);
if (SkelAnime_Update(&this->skelAnime)) {
if (this->timer != 0) {
this->timer--;
@ -381,8 +381,7 @@ void EnOkuta_Shoot(EnOkuta* this, GlobalContext* globalCtx) {
f32 curFrame = this->skelAnime.curFrame;
if (curFrame < 13.0f) {
this->actor.posRot.pos.y =
(sinf((0.08333f * M_PI) * curFrame) * this->jumpHeight) + this->actor.initPosRot.pos.y;
this->actor.world.pos.y = (sinf((0.08333f * M_PI) * curFrame) * this->jumpHeight) + this->actor.home.pos.y;
}
if (Animation_OnFrame(&this->skelAnime, 6.0f)) {
EnOkuta_SpawnProjectile(this, globalCtx);
@ -394,7 +393,7 @@ void EnOkuta_Shoot(EnOkuta* this, GlobalContext* globalCtx) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_OCTAROCK_LAND);
}
}
if (this->actor.xzDistToLink < 160.0f) {
if (this->actor.xzDistToPlayer < 160.0f) {
EnOkuta_SetupHide(this);
}
}
@ -403,7 +402,7 @@ void EnOkuta_WaitToDie(EnOkuta* this, GlobalContext* globalCtx) {
if (SkelAnime_Update(&this->skelAnime)) {
EnOkuta_SetupDie(this);
}
Math_ApproachF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 0.5f, 5.0f);
Math_ApproachF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f, 5.0f);
}
void EnOkuta_Die(EnOkuta* this, GlobalContext* globalCtx) {
@ -417,11 +416,11 @@ void EnOkuta_Die(EnOkuta* this, GlobalContext* globalCtx) {
if (SkelAnime_Update(&this->skelAnime)) {
this->timer++;
}
Math_ApproachF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 0.5f, 5.0f);
Math_ApproachF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f, 5.0f);
if (this->timer == 5) {
pos.x = this->actor.posRot.pos.x;
pos.y = this->actor.posRot.pos.y + 40.0f;
pos.z = this->actor.posRot.pos.z;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + 40.0f;
pos.z = this->actor.world.pos.z;
velocity.x = 0.0f;
velocity.y = -0.5f;
velocity.z = 0.0f;
@ -440,13 +439,13 @@ void EnOkuta_Die(EnOkuta* this, GlobalContext* globalCtx) {
Actor_SetScale(&this->actor, (((this->timer - 5) * 0.04f) + 0.8f) * 0.01f);
} else {
if (Math_StepToF(&this->actor.scale.x, 0.0f, 0.0005f)) {
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 30, NA_SE_EN_OCTAROCK_BUBLE);
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.posRot.pos, 0x70);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 30, NA_SE_EN_OCTAROCK_BUBLE);
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 0x70);
for (i = 0; i < 20; i++) {
velocity.x = (Rand_ZeroOne() - 0.5f) * 7.0f;
velocity.y = Rand_ZeroOne() * 7.0f;
velocity.z = (Rand_ZeroOne() - 0.5f) * 7.0f;
EffectSsDtBubble_SpawnCustomColor(globalCtx, &this->actor.posRot.pos, &velocity, &accel, &primColor,
EffectSsDtBubble_SpawnCustomColor(globalCtx, &this->actor.world.pos, &velocity, &accel, &primColor,
&envColor, Rand_S16Offset(100, 50), 25, 0);
}
Actor_Kill(&this->actor);
@ -467,13 +466,13 @@ void EnOkuta_Freeze(EnOkuta* this, GlobalContext* globalCtx) {
}
if ((this->timer >= 64) && (this->timer & 1)) {
temp_v1 = (this->timer - 64) >> 1;
pos.y = (this->actor.posRot.pos.y - 32.0f) + (8.0f * (8 - temp_v1));
pos.x = this->actor.posRot.pos.x + ((temp_v1 & 2) ? 10.0f : -10.0f);
pos.z = this->actor.posRot.pos.z + ((temp_v1 & 1) ? 10.0f : -10.0f);
pos.y = (this->actor.world.pos.y - 32.0f) + (8.0f * (8 - temp_v1));
pos.x = this->actor.world.pos.x + ((temp_v1 & 2) ? 10.0f : -10.0f);
pos.z = this->actor.world.pos.z + ((temp_v1 & 1) ? 10.0f : -10.0f);
EffectSsEnIce_SpawnFlyingVec3f(globalCtx, &this->actor, &pos, 150, 150, 150, 250, 235, 245, 255,
(Rand_ZeroOne() * 0.2f) + 1.9f);
}
Math_ApproachF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 0.5f, 5.0f);
Math_ApproachF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f, 5.0f);
}
void EnOkuta_ProjectileFly(EnOkuta* this, GlobalContext* globalCtx) {
@ -485,7 +484,7 @@ void EnOkuta_ProjectileFly(EnOkuta* this, GlobalContext* globalCtx) {
if (this->timer == 0) {
this->actor.gravity = -1.0f;
}
this->actor.initPosRot.rot.z += 0x1554;
this->actor.home.rot.z += 0x1554;
if (this->actor.bgCheckFlags & 0x20) {
this->actor.gravity = -1.0f;
this->actor.speedXZ -= 0.1f;
@ -493,7 +492,7 @@ void EnOkuta_ProjectileFly(EnOkuta* this, GlobalContext* globalCtx) {
}
if ((this->actor.bgCheckFlags & 8) || (this->actor.bgCheckFlags & 1) || (this->collider.base.atFlags & AT_HIT) ||
this->collider.base.acFlags & AC_HIT || this->collider.base.ocFlags1 & OC1_HIT ||
this->actor.groundY == BGCHECK_Y_MIN) {
this->actor.floorHeight == BGCHECK_Y_MIN) {
if ((player->currentShield == PLAYER_SHIELD_DEKU ||
(player->currentShield == PLAYER_SHIELD_HYLIAN && LINK_IS_ADULT)) &&
this->collider.base.atFlags & AT_HIT && this->collider.base.atFlags & AT_TYPE_ENEMY &&
@ -502,14 +501,14 @@ void EnOkuta_ProjectileFly(EnOkuta* this, GlobalContext* globalCtx) {
this->collider.base.atFlags |= AT_TYPE_PLAYER;
this->collider.info.toucher.dmgFlags = 2;
func_800D20CC(&player->shieldMf, &sp40, 0);
this->actor.posRot.rot.y = sp40.y + 0x8000;
this->actor.world.rot.y = sp40.y + 0x8000;
this->timer = 30;
} else {
pos.x = this->actor.posRot.pos.x;
pos.y = this->actor.posRot.pos.y + 11.0f;
pos.z = this->actor.posRot.pos.z;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + 11.0f;
pos.z = this->actor.world.pos.z;
EffectSsHahen_SpawnBurst(globalCtx, &pos, 6.0f, 0, 1, 2, 15, 7, 10, D_06003380);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
Actor_Kill(&this->actor);
}
} else if (this->timer == -300) {
@ -591,15 +590,15 @@ void EnOkuta_Update(Actor* thisx, GlobalContext* globalCtx) {
if (!(player->stateFlags1 & 0x300000C0)) {
if (this->actor.params == 0) {
EnOkuta_ColliderCheck(this, globalCtx2);
if (!WaterBox_GetSurfaceImpl(globalCtx2, &globalCtx2->colCtx, this->actor.posRot.pos.x,
this->actor.posRot.pos.z, &ySurface, &outWaterBox) ||
(ySurface < this->actor.groundY)) {
if (!WaterBox_GetSurfaceImpl(globalCtx2, &globalCtx2->colCtx, this->actor.world.pos.x,
this->actor.world.pos.z, &ySurface, &outWaterBox) ||
(ySurface < this->actor.floorHeight)) {
if (this->actor.colChkInfo.health != 0) {
Actor_Kill(&this->actor);
return;
}
} else {
this->actor.initPosRot.pos.y = ySurface;
this->actor.home.pos.y = ySurface;
}
}
this->actionFunc(this, globalCtx2);
@ -611,27 +610,25 @@ void EnOkuta_Update(Actor* thisx, GlobalContext* globalCtx) {
} else {
sp34 = false;
Actor_MoveForward(&this->actor);
Math_Vec3f_Copy(&sp38, &this->actor.posRot.pos);
func_8002E4B4(globalCtx2, &this->actor, 10.0f, 15.0f, 30.0f, 5);
Math_Vec3f_Copy(&sp38, &this->actor.world.pos);
Actor_UpdateBgCheckInfo(globalCtx2, &this->actor, 10.0f, 15.0f, 30.0f, 5);
if ((this->actor.bgCheckFlags & 8) &&
SurfaceType_IsIgnoredByProjectiles(&globalCtx2->colCtx, this->actor.wallPoly,
this->actor.wallPolySource)) {
SurfaceType_IsIgnoredByProjectiles(&globalCtx2->colCtx, this->actor.wallPoly, this->actor.wallBgId)) {
sp34 = true;
this->actor.bgCheckFlags &= ~8;
}
if ((this->actor.bgCheckFlags & 1) &&
SurfaceType_IsIgnoredByProjectiles(&globalCtx2->colCtx, this->actor.floorPoly,
this->actor.floorPolySource)) {
SurfaceType_IsIgnoredByProjectiles(&globalCtx2->colCtx, this->actor.floorPoly, this->actor.floorBgId)) {
sp34 = true;
this->actor.bgCheckFlags &= ~1;
}
if (sp34 && !(this->actor.bgCheckFlags & 9)) {
Math_Vec3f_Copy(&this->actor.posRot.pos, &sp38);
Math_Vec3f_Copy(&this->actor.world.pos, &sp38);
}
}
Collider_UpdateCylinder(&this->actor, &this->collider);
if ((this->actionFunc == EnOkuta_Appear) || (this->actionFunc == EnOkuta_Hide)) {
this->collider.dim.pos.y = this->actor.posRot.pos.y + (this->skelAnime.jointTable->y * this->actor.scale.y);
this->collider.dim.pos.y = this->actor.world.pos.y + (this->skelAnime.jointTable->y * this->actor.scale.y);
this->collider.dim.radius = sOctorockColliderInit.dim.radius * this->actor.scale.x * 100.0f;
}
if (this->actor.params == 0x10) {
@ -645,7 +642,7 @@ void EnOkuta_Update(Actor* thisx, GlobalContext* globalCtx) {
}
CollisionCheck_SetOC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base);
}
Actor_SetHeight(&this->actor, 15.0f);
Actor_SetFocus(&this->actor, 15.0f);
if ((this->actor.params == 0) && (this->actor.draw != NULL)) {
EnOkuta_SpawnRipple(this, globalCtx2);
}
@ -725,7 +722,7 @@ void EnOkuta_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_okuta.c", 1653);
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
Matrix_RotateZ(this->actor.initPosRot.rot.z * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_RotateZ(this->actor.home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_okuta.c", 1657),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06003380);