mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-11 06:34:45 -04:00
d_kankyo_rain work
This commit is contained in:
@@ -424,6 +424,7 @@ void dKy_arrowcol_chg_move();
|
||||
void dKy_setLight_init();
|
||||
void dKy_setLight();
|
||||
void dKy_GxFog_set();
|
||||
void dKy_GxFog_sea_set();
|
||||
void GxXFog_set();
|
||||
void dKy_set_actcol_ratio(f32 ratio);
|
||||
void dKy_set_bgcol_ratio(f32 ratio);
|
||||
|
||||
@@ -294,7 +294,7 @@ public:
|
||||
|
||||
/* 0x0010 */ u8* mpTexUsonami;
|
||||
/* 0x0014 */ u8* mpTexUsonamiM;
|
||||
/* 0x0018 */ WAVE_EFF mWaveEff[300];
|
||||
/* 0x0018 */ WAVE_EFF mEff[300];
|
||||
/* 0x41B8 */ f32 mSkewWidth;
|
||||
/* 0x41BC */ f32 mSkewDir;
|
||||
};
|
||||
|
||||
+200
-51
@@ -605,55 +605,55 @@ void wave_move() {
|
||||
|
||||
for (s32 i = 0; i < g_env_light.mWaveChan.mWaveCount; i++) {
|
||||
if (g_env_light.mWaveChan.mWaveReset)
|
||||
pPkt->mWaveEff[i].mStatus = 0;
|
||||
pPkt->mEff[i].mStatus = 0;
|
||||
|
||||
switch (pPkt->mWaveEff[i].mStatus) {
|
||||
switch (pPkt->mEff[i].mStatus) {
|
||||
case 0:
|
||||
{
|
||||
pPkt->mWaveEff[i].mBasePos.x = eyevect.x;
|
||||
pPkt->mWaveEff[i].mBasePos.y = seaLevel;
|
||||
pPkt->mWaveEff[i].mBasePos.z = eyevect.z;
|
||||
pPkt->mWaveEff[i].mPos.x = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mWaveEff[i].mPos.y = 0.0f;
|
||||
pPkt->mWaveEff[i].mPos.z = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mWaveEff[i].mCounter = cM_rndF(65536.0f);
|
||||
pPkt->mWaveEff[i].mAlpha = 0.0f;
|
||||
pPkt->mWaveEff[i].field_0x32 = cM_rndF(65536.0f);
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 1.0f;
|
||||
pPkt->mWaveEff[i].mScale = g_env_light.mWaveChan.mWaveScaleRand + cM_rndF(1.0f - g_env_light.mWaveChan.mWaveScaleRand);
|
||||
pPkt->mWaveEff[i].mSpeed = pPkt->mWaveEff[i].mScale;
|
||||
pPkt->mWaveEff[i].mCounterSpeed = ((1.0f - pPkt->mWaveEff[i].mScale) * 0.05f + 0.02f) * g_env_light.mWaveChan.mWaveCounterSpeedScale;
|
||||
pPkt->mWaveEff[i].field_0x30 = 0;
|
||||
pPkt->mWaveEff[i].mStatus++;
|
||||
pPkt->mEff[i].mBasePos.x = eyevect.x;
|
||||
pPkt->mEff[i].mBasePos.y = seaLevel;
|
||||
pPkt->mEff[i].mBasePos.z = eyevect.z;
|
||||
pPkt->mEff[i].mPos.x = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mEff[i].mPos.y = 0.0f;
|
||||
pPkt->mEff[i].mPos.z = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mEff[i].mCounter = cM_rndF(65536.0f);
|
||||
pPkt->mEff[i].mAlpha = 0.0f;
|
||||
pPkt->mEff[i].field_0x32 = cM_rndF(65536.0f);
|
||||
pPkt->mEff[i].mStrengthEnv = 1.0f;
|
||||
pPkt->mEff[i].mScale = g_env_light.mWaveChan.mWaveScaleRand + cM_rndF(1.0f - g_env_light.mWaveChan.mWaveScaleRand);
|
||||
pPkt->mEff[i].mSpeed = pPkt->mEff[i].mScale;
|
||||
pPkt->mEff[i].mCounterSpeed = ((1.0f - pPkt->mEff[i].mScale) * 0.05f + 0.02f) * g_env_light.mWaveChan.mWaveCounterSpeedScale;
|
||||
pPkt->mEff[i].field_0x30 = 0;
|
||||
pPkt->mEff[i].mStatus++;
|
||||
}
|
||||
// fallthrough
|
||||
case 1:
|
||||
case 2:
|
||||
{
|
||||
pPkt->mWaveEff[i].mPos.x += (windPowVec.x * g_env_light.mWaveChan.mWaveSpeed * pPkt->mWaveEff[i].mSpeed) * (pPkt->mWaveEff[i].mStrengthEnv * 0.5f + 0.5f) * (pPkt->mWaveEff[i].mAlpha * 0.8f + 0.2f);
|
||||
pPkt->mWaveEff[i].mPos.z += (windPowVec.z * g_env_light.mWaveChan.mWaveSpeed * pPkt->mWaveEff[i].mSpeed) * (pPkt->mWaveEff[i].mStrengthEnv * 0.5f + 0.5f) * (pPkt->mWaveEff[i].mAlpha * 0.8f + 0.2f);
|
||||
pPkt->mWaveEff[i].mCounter += pPkt->mWaveEff[i].mCounterSpeed;
|
||||
pos.x = pPkt->mWaveEff[i].mBasePos.x + pPkt->mWaveEff[i].mPos.x;
|
||||
pos.y = pPkt->mWaveEff[i].mBasePos.y + pPkt->mWaveEff[i].mPos.y;
|
||||
pos.z = pPkt->mWaveEff[i].mBasePos.z + pPkt->mWaveEff[i].mPos.z;
|
||||
pPkt->mEff[i].mPos.x += (windPowVec.x * g_env_light.mWaveChan.mWaveSpeed * pPkt->mEff[i].mSpeed) * (pPkt->mEff[i].mStrengthEnv * 0.5f + 0.5f) * (pPkt->mEff[i].mAlpha * 0.8f + 0.2f);
|
||||
pPkt->mEff[i].mPos.z += (windPowVec.z * g_env_light.mWaveChan.mWaveSpeed * pPkt->mEff[i].mSpeed) * (pPkt->mEff[i].mStrengthEnv * 0.5f + 0.5f) * (pPkt->mEff[i].mAlpha * 0.8f + 0.2f);
|
||||
pPkt->mEff[i].mCounter += pPkt->mEff[i].mCounterSpeed;
|
||||
pos.x = pPkt->mEff[i].mBasePos.x + pPkt->mEff[i].mPos.x;
|
||||
pos.y = pPkt->mEff[i].mBasePos.y + pPkt->mEff[i].mPos.y;
|
||||
pos.z = pPkt->mEff[i].mBasePos.z + pPkt->mEff[i].mPos.z;
|
||||
if (pos.abs(eyevect) > g_env_light.mWaveChan.mWaveSpawnRadius) {
|
||||
pPkt->mWaveEff[i].mBasePos.x = eyevect.x;
|
||||
pPkt->mWaveEff[i].mBasePos.z = eyevect.z;
|
||||
pPkt->mEff[i].mBasePos.x = eyevect.x;
|
||||
pPkt->mEff[i].mBasePos.z = eyevect.z;
|
||||
if (pos.abs(eyevect) > (g_env_light.mWaveChan.mWaveSpawnRadius + 350.0f)) {
|
||||
pPkt->mWaveEff[i].mPos.x = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mWaveEff[i].mPos.z = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mEff[i].mPos.x = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
pPkt->mEff[i].mPos.z = cM_rndFX(g_env_light.mWaveChan.mWaveSpawnRadius);
|
||||
} else {
|
||||
get_vectle_calc(&pos, &eyevect, &newPos);
|
||||
pPkt->mWaveEff[i].mPos.x = newPos.x * g_env_light.mWaveChan.mWaveSpawnRadius;
|
||||
pPkt->mWaveEff[i].mPos.z = newPos.z * g_env_light.mWaveChan.mWaveSpawnRadius;
|
||||
pPkt->mEff[i].mPos.x = newPos.x * g_env_light.mWaveChan.mWaveSpawnRadius;
|
||||
pPkt->mEff[i].mPos.z = newPos.z * g_env_light.mWaveChan.mWaveSpawnRadius;
|
||||
}
|
||||
pPkt->mWaveEff[i].mAlpha = 0.0f;
|
||||
pPkt->mEff[i].mAlpha = 0.0f;
|
||||
}
|
||||
pos.x = pPkt->mWaveEff[i].mBasePos.x + pPkt->mWaveEff[i].mPos.x;
|
||||
pos.y = pPkt->mWaveEff[i].mBasePos.y + pPkt->mWaveEff[i].mPos.y;
|
||||
pos.z = pPkt->mWaveEff[i].mBasePos.z + pPkt->mWaveEff[i].mPos.z;
|
||||
pos.x = pPkt->mEff[i].mBasePos.x + pPkt->mEff[i].mPos.x;
|
||||
pos.y = pPkt->mEff[i].mBasePos.y + pPkt->mEff[i].mPos.y;
|
||||
pos.z = pPkt->mEff[i].mBasePos.z + pPkt->mEff[i].mPos.z;
|
||||
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 1.0f;
|
||||
pPkt->mEff[i].mStrengthEnv = 1.0f;
|
||||
for (s32 j = 0; j < 10; j++) {
|
||||
if (envLight.mpWaveInfl[j] == NULL)
|
||||
continue;
|
||||
@@ -664,17 +664,17 @@ void wave_move() {
|
||||
f32 innerRadius = envLight.mpWaveInfl[j]->mInnerRadius;
|
||||
if (dist < outerRadius) {
|
||||
if (dist < innerRadius) {
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 0.0f;
|
||||
pPkt->mEff[i].mStrengthEnv = 0.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
f32 range = outerRadius - innerRadius;
|
||||
if (range > 0.0f) {
|
||||
f32 fade = (dist - innerRadius) / range;
|
||||
if (pPkt->mWaveEff[i].mStrengthEnv > fade)
|
||||
pPkt->mWaveEff[i].mStrengthEnv = fade;
|
||||
if (pPkt->mEff[i].mStrengthEnv > fade)
|
||||
pPkt->mEff[i].mStrengthEnv = fade;
|
||||
} else {
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 0.0f;
|
||||
pPkt->mEff[i].mStrengthEnv = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -689,10 +689,10 @@ void wave_move() {
|
||||
f32 range = outerRadius - innerRadius;
|
||||
if (range > 0.0f) {
|
||||
f32 fade = (dist - innerRadius) / range;
|
||||
if (pPkt->mWaveEff[i].mStrengthEnv > fade)
|
||||
pPkt->mWaveEff[i].mStrengthEnv = fade;
|
||||
if (pPkt->mEff[i].mStrengthEnv > fade)
|
||||
pPkt->mEff[i].mStrengthEnv = fade;
|
||||
} else {
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 0.0f;
|
||||
pPkt->mEff[i].mStrengthEnv = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -706,10 +706,10 @@ void wave_move() {
|
||||
f32 range = outerRadius - innerRadius;
|
||||
if (dist < outerRadius) {
|
||||
if (innerRadius < dist) {
|
||||
pPkt->mWaveEff[i].mStrengthEnv = 0.0f;
|
||||
pPkt->mEff[i].mStrengthEnv = 0.0f;
|
||||
} else {
|
||||
f32 fade = (dist - innerRadius) / range;
|
||||
pPkt->mWaveEff[i].mStrengthEnv *= fade;
|
||||
pPkt->mEff[i].mStrengthEnv *= fade;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -717,7 +717,7 @@ void wave_move() {
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
pPkt->mWaveEff[i].mStatus = 0;
|
||||
pPkt->mEff[i].mStatus = 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -725,21 +725,21 @@ void wave_move() {
|
||||
}
|
||||
|
||||
{
|
||||
newPos2.x = pPkt->mWaveEff[i].mBasePos.x + pPkt->mWaveEff[i].mPos.x;
|
||||
newPos2.y = pPkt->mWaveEff[i].mBasePos.y + pPkt->mWaveEff[i].mPos.y;
|
||||
newPos2.z = pPkt->mWaveEff[i].mBasePos.z + pPkt->mWaveEff[i].mPos.z;
|
||||
newPos2.x = pPkt->mEff[i].mBasePos.x + pPkt->mEff[i].mPos.x;
|
||||
newPos2.y = pPkt->mEff[i].mBasePos.y + pPkt->mEff[i].mPos.y;
|
||||
newPos2.z = pPkt->mEff[i].mBasePos.z + pPkt->mEff[i].mPos.z;
|
||||
f32 dist = newPos2.abs(pCamera->mLookat.mEye);
|
||||
if (dist < 0.0f)
|
||||
dist = 0.0f;
|
||||
f32 alphaTarget = 1.0f - (dist / (2.0f * g_env_light.mWaveChan.mWaveSpawnDist));
|
||||
alphaTarget *= 1.03f;
|
||||
alphaTarget *= (f32)sin(pPkt->mWaveEff[i].mCounter);
|
||||
alphaTarget *= (f32)sin(pPkt->mEff[i].mCounter);
|
||||
if (alphaTarget > 1.0f)
|
||||
alphaTarget = 1.0f;
|
||||
if (alphaTarget < 0.0f)
|
||||
alphaTarget = 0.0f;
|
||||
cLib_addCalc(&pPkt->mWaveEff[i].mAlpha, alphaTarget, 0.5f, 0.5f, 0.001f);
|
||||
pPkt->mWaveEff[i].mBasePos.y = seaLevel;
|
||||
cLib_addCalc(&pPkt->mEff[i].mAlpha, alphaTarget, 0.5f, 0.5f, 0.001f);
|
||||
pPkt->mEff[i].mBasePos.y = seaLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1640,7 +1640,156 @@ void dKyr_drawStar(Mtx drawMtx, u8** pImg) {
|
||||
|
||||
/* 80099D38-8009A5D4 .text drawWave__FPA4_fPPUc */
|
||||
void drawWave(Mtx drawMtx, u8** pImg) {
|
||||
/* Nonmatching */
|
||||
dKankyo_wave_Packet* pPkt;
|
||||
camera_class* pCamera;
|
||||
GXTexObj texObj;
|
||||
Mtx camMtx;
|
||||
Mtx rotMtx;
|
||||
cXyz pos[4];
|
||||
cXyz windvec;
|
||||
cXyz vp;
|
||||
cXyz lp;
|
||||
cXyz p;
|
||||
cXyz dummy;
|
||||
cXyz tilt;
|
||||
GXColor dif, amb;
|
||||
|
||||
pPkt = dKy_getEnvlight().mpWavePacket;
|
||||
pCamera = dComIfGp_getCamera(0);
|
||||
|
||||
if (!(dKy_getEnvlight().mWaveChan.mWaveFlatInter >= 1.0f) && dComIfGd_getView() != NULL) {
|
||||
MTXInverse(dComIfGd_getViewRotMtx(), camMtx);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
f32 rot = cM_sht2d(pCamera->mBank);
|
||||
j3dSys.reinitGX();
|
||||
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
|
||||
s32 texidx = strcmp(dComIfGp_getStartStageName(), "MajyuE") == 0 ? 1 : 0;
|
||||
dKyr_set_btitex(&texObj, (ResTIMG*)pImg[texidx]);
|
||||
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, false, GX_PTIDENTITY);
|
||||
dKy_get_seacolor(&amb, &dif);
|
||||
GXSetTevColor(GX_TEVREG0, dif);
|
||||
GXSetTevKColorSel(GX_TEVSTAGE0, GX_TEV_KCSEL_K0);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_K3_A);
|
||||
GXSetTevKColor(GX_KCOLOR0, amb);
|
||||
GXSetTevKColor(GX_KCOLOR3, amb);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C0, GX_CC_KONST, GX_CC_TEXC, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_KONST, GX_CA_TEXA, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
dKy_GxFog_sea_set();
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET);
|
||||
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
|
||||
GXSetZCompLoc(GX_FALSE);
|
||||
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_S16, 8);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
MTXRotDeg(rotMtx, 'Z', rot);
|
||||
MTXConcat(camMtx, rotMtx, camMtx);
|
||||
GXLoadPosMtxImm(drawMtx, GX_PNMTX0);
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
|
||||
s32 counter = 0;
|
||||
for (s32 i = 0; i < dKy_getEnvlight().mWaveChan.mWaveCount; i++, counter += 31) {
|
||||
p.x = pPkt->mEff[i].mBasePos.x + pPkt->mEff[i].mPos.x;
|
||||
p.y = pPkt->mEff[i].mBasePos.y + pPkt->mEff[i].mPos.y;
|
||||
p.z = pPkt->mEff[i].mBasePos.z + pPkt->mEff[i].mPos.z;
|
||||
|
||||
f32 wave = sin(pPkt->mEff[i].mCounter);
|
||||
if (wave <= 0.0f)
|
||||
continue;
|
||||
|
||||
f32 scale = dKy_getEnvlight().mWaveChan.mWaveScale * pPkt->mEff[i].mScale;
|
||||
f32 strength = pPkt->mEff[i].mStrengthEnv;
|
||||
f32 height = wave * scale * strength;
|
||||
f32 width = dKy_getEnvlight().mWaveChan.mWaveScaleBottom * scale * (strength - height * counter * 0.000015f);
|
||||
if (height <= 0.01f)
|
||||
continue;
|
||||
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP0);
|
||||
amb.a = pPkt->mEff[i].mAlpha;
|
||||
GXSetTevKColor(GX_KCOLOR3, amb);
|
||||
|
||||
if (pPkt->mSkewDir >= 0.0f) {
|
||||
vp.x = -width - pPkt->mSkewDir * width * (-pPkt->mEff[i].mSpeed * 1.2f);
|
||||
} else {
|
||||
vp.x = -width + pPkt->mSkewDir * width * (-pPkt->mEff[i].mSpeed * 1.2f);
|
||||
}
|
||||
vp.y = height;
|
||||
vp.z = 0.0f;
|
||||
MTXMultVec(camMtx, &vp, &lp);
|
||||
pos[0].x = p.x + lp.x;
|
||||
pos[0].y = p.y + lp.y;
|
||||
pos[0].z = p.z + lp.z;
|
||||
|
||||
if (pPkt->mSkewDir >= 0.0f) {
|
||||
vp.x = width - pPkt->mSkewDir * width * (-pPkt->mEff[i].mSpeed * 1.2f);
|
||||
} else {
|
||||
vp.x = width + pPkt->mSkewDir * width * (-pPkt->mEff[i].mSpeed * 1.2f);
|
||||
}
|
||||
vp.y = height;
|
||||
vp.z = 0.0f;
|
||||
MTXMultVec(camMtx, &vp, &lp);
|
||||
pos[1].x = p.x + lp.x;
|
||||
pos[1].y = p.y + lp.y;
|
||||
pos[1].z = p.z + lp.z;
|
||||
|
||||
vp.x = width;
|
||||
vp.y = 0.0f;
|
||||
vp.z = 0.0f;
|
||||
MTXMultVec(camMtx, &vp, &lp);
|
||||
pos[2].x = p.x + lp.x;
|
||||
pos[2].y = p.y + lp.y;
|
||||
pos[2].z = p.z + lp.z;
|
||||
|
||||
vp.x = width;
|
||||
vp.y = 0.0f;
|
||||
vp.z = 0.0f;
|
||||
MTXMultVec(camMtx, &vp, &lp);
|
||||
pos[3].x = p.x + lp.x;
|
||||
pos[3].y = p.y + lp.y;
|
||||
pos[3].z = p.z + lp.z;
|
||||
|
||||
static const cXyz add_table[4] = {
|
||||
cXyz(0.0f, 0.0f, 0.0f),
|
||||
cXyz(800.0f, 0.0f, 400.0f),
|
||||
cXyz(600.0f, 0.0f, 200.0f),
|
||||
cXyz(200.0f, 0.0f, 800.0f),
|
||||
};
|
||||
|
||||
for (s32 j = 0; j < 1; j++) {
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
const cXyz & addv = add_table[j];
|
||||
f32 addX = addv.x, addY = addv.y, addZ = addv.z;
|
||||
GXPosition3f32(pos[0].x + addX, pos[0].y + addY, pos[0].z + addZ);
|
||||
GXTexCoord2s16(0, 0);
|
||||
GXPosition3f32(pos[1].x + addX, pos[1].y + addY, pos[1].z + addZ);
|
||||
GXTexCoord2s16(0xFA, 0);
|
||||
GXPosition3f32(pos[2].x + addX, pos[2].y + addY, pos[2].z + addZ);
|
||||
GXTexCoord2s16(0xFA, 0xFA);
|
||||
GXPosition3f32(pos[3].x + addX, pos[3].y + addY, pos[3].z + addZ);
|
||||
GXTexCoord2s16(0, 0xFA);
|
||||
GXEnd();
|
||||
}
|
||||
}
|
||||
|
||||
#if VERSION != VERSION_JPN
|
||||
J3DShape::resetVcdVatCache();
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 8009A5D4-8009AB88 .text drawCloudShadow__FPA4_fPPUc */
|
||||
|
||||
Reference in New Issue
Block a user