Add missing inlines for JPADraw

This commit is contained in:
LagoLunatic
2026-05-26 21:56:55 -04:00
parent c3eab3103e
commit 2dced07761
3 changed files with 27 additions and 28 deletions
@@ -8,6 +8,7 @@ class JPAExTexShape;
class JPADrawSetupTev {
public:
JPADrawSetupTev() {}
~JPADrawSetupTev() {}
void setupTev(JPABaseShape* param_1, JPAExTexShape* param_2);
+8 -5
View File
@@ -237,6 +237,8 @@ public:
void setGlobalParticleScale(f32 scaleX, f32 scaleY) {
mGlobalParticleScale.set(scaleX, scaleY, 1.0f);
}
void setGlobalParticleWidthScale(f32 x) { mGlobalParticleScale.x = x; }
void setGlobalParticleHeightScale(f32 y) { mGlobalParticleScale.y = y; }
void setGlobalDynamicsScale(const JGeometry::TVec3<f32>& scale) {
mGlobalDynamicsScale.set(scale);
}
@@ -260,6 +262,8 @@ public:
mGlobalEnvColor.g = g;
mGlobalEnvColor.b = b;
}
void getBaseEnvColor(GXColor& color) { color = mGlobalEnvColor; }
void getBasePrmColor(GXColor& color) { color = mGlobalPrmColor; }
void setVolumeSweep(f32 i_volSweep) { mVolumeSweep = i_volSweep; }
void setVolumeSize(u16 size) { mVolumeSize = size; }
@@ -316,17 +320,12 @@ public:
void calcEmitterGlobalTranslation(JGeometry::TVec3<f32>&) {}
void drawCB() {}
void drawEmitterCallBack() {}
void getAxisYVec(JGeometry::TVec3<f32>&) const {}
void getBaseEnvColor(GXColor&) {}
void getBasePrmColor(GXColor&) {}
void getCurrentCreateNumber() const {}
f32 getFrame() { return mTick.getFrame(); }
void getgReRDirection(JGeometry::TVec3<f32>&) {}
void isContinuousParticle() {}
void loadTexture(u8, GXTexMapID) {}
void setEmitterRotation(const JGeometry::TVec3<s16>&) {}
void setGlobalParticleHeightScale(f32 y) { mGlobalParticleScale.y = y; }
void setGlobalParticleWidthScale(f32 x) { mGlobalParticleScale.x = x; }
static JPAEmitterInfo emtrInfo;
@@ -338,6 +337,10 @@ public:
vec1.set(emtrInfo.mEmitterGlobalRot[0][1], emtrInfo.mEmitterGlobalRot[1][1], emtrInfo.mEmitterGlobalRot[2][1]);
vec2.set(emtrInfo.mEmitterGlobalRot[0][2], emtrInfo.mEmitterGlobalRot[1][2], emtrInfo.mEmitterGlobalRot[2][2]);
}
void getAxisYVec(JGeometry::TVec3<f32>& vec) const {
// Same as above comment, this implementation could be fake.
vec.set(emtrInfo.mEmitterGlobalRot[0][1], emtrInfo.mEmitterGlobalRot[1][1], emtrInfo.mEmitterGlobalRot[2][1]);
}
static f32 getAspect() { return emtrInfo.mAspect; }
static f32 getFovy() { return emtrInfo.mFovy; }
+18 -23
View File
@@ -119,8 +119,8 @@ void JPADraw::draw(MtxP drawMtx) {
GXSetChanCtrl(GX_COLOR0A0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE);
GXSetChanCtrl(GX_COLOR1A1, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE);
GXSetBlendMode(dc.pbsp->getBlendMode1(), dc.pbsp->getSrcBlendFactor1(), dc.pbsp->getDstBlendFactor1(), dc.pbsp->getBlendOp1());
cb.mPrmColor = dc.pbe->mGlobalPrmColor;
cb.mEnvColor = dc.pbe->mGlobalEnvColor;
dc.pbe->getBasePrmColor(cb.mPrmColor);
dc.pbe->getBaseEnvColor(cb.mEnvColor);
cb.mDrawMtxPtr = drawMtx;
cb.mSetupTev.setupTev(dc.pbsp, dc.petx);
for (int i = 0; i < execEmtrVisNum; i++) {
@@ -165,7 +165,7 @@ void JPADraw::calcChild(JPABaseParticle* ptcl) {
/* 80268A48-80268F28 .text initParticle__7JPADrawFP15JPABaseParticle */
void JPADraw::initParticle(JPABaseParticle* ptcl) {
JPADrawParams* params = ptcl->getDrawParamPPtr();
params->mAxis.set(JPABaseEmitter::emtrInfo.mEmitterGlobalRot[0][1], JPABaseEmitter::emtrInfo.mEmitterGlobalRot[1][1], JPABaseEmitter::emtrInfo.mEmitterGlobalRot[2][1]);
dc.pbe->getAxisYVec(params->mAxis);
params->mPrmColor = mPrmColor;
params->mEnvColor = mEnvColor;
params->mAlphaOut = 1.0f;
@@ -665,12 +665,11 @@ void JPADraw::setParticleClipBoard() {
GXLoadPosMtxImm(cb.mDrawMtx, GX_PNMTX0);
JPABaseEmitter* emtr = dc.pbe;
f32 scaleX = emtr->mGlobalParticleScale.x;
f32 scaleY = emtr->mGlobalParticleScale.y;
JGeometry::TVec3<f32> scale;
dc.pbe->getGlobalParticleScale(scale);
cb.mGlobalScaleX = 25.0f * dc.pbsp->getBaseSizeX() * scaleX;
cb.mGlobalScaleY = 25.0f * dc.pbsp->getBaseSizeY() * scaleY;
cb.mGlobalScaleX = 25.0f * dc.pbsp->getBaseSizeX() * scale.x;
cb.mGlobalScaleY = 25.0f * dc.pbsp->getBaseSizeY() * scale.y;
if (dc.pbsp->getType() == JPABaseShape::JPAType_Point) {
cb.mGlobalScaleX *= 1.02f;
@@ -751,16 +750,15 @@ void JPADraw::setChildClipBoard() {
GXLoadPosMtxImm(cb.mDrawMtx, GX_PNMTX0);
JPABaseEmitter* emtr = dc.pbe;
f32 scaleX = emtr->mGlobalParticleScale.x;
f32 scaleY = emtr->mGlobalParticleScale.y;
JGeometry::TVec3<f32> scale;
dc.pbe->getGlobalParticleScale(scale);
if (!dc.pssp->isInheritedScale()) {
cb.mGlobalScaleX = 25.0f * dc.pssp->getScaleX() * scaleX;
cb.mGlobalScaleY = 25.0f * dc.pssp->getScaleY() * scaleY;
cb.mGlobalScaleX = 25.0f * dc.pssp->getScaleX() * scale.x;
cb.mGlobalScaleY = 25.0f * dc.pssp->getScaleY() * scale.y;
} else {
cb.mGlobalScaleX = 25.0f * dc.pbsp->getBaseSizeX() * scaleX;
cb.mGlobalScaleY = 25.0f * dc.pbsp->getBaseSizeY() * scaleY;
cb.mGlobalScaleX = 25.0f * dc.pbsp->getBaseSizeX() * scale.x;
cb.mGlobalScaleY = 25.0f * dc.pbsp->getBaseSizeY() * scale.y;
}
if (dc.pssp->getType() == JPABaseShape::JPAType_Point) {
@@ -859,7 +857,7 @@ void JPADraw::drawParticle() {
void JPADraw::drawChild() {
field_0xc2 |= 0x02;
setChildClipBoard();
dc.mpActiveParticles = &dc.pbe->mChildParticles;
dc.mpActiveParticles = dc.pbe->getChildParticleList();
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
GXEnableTexOffsets(GX_TEXCOORD0, GX_TRUE, GX_TRUE);
@@ -923,7 +921,7 @@ void JPADraw::zDrawParticle() {
GXSetLineWidth(cb.mGlobalScaleX, GX_TO_ONE);
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
GXSetZCompLoc(GX_FALSE);
GXSetAlphaCompare(GX_GEQUAL, dc.pbe->mGlobalPrmColor.a, GX_AOP_OR, GX_GEQUAL, dc.pbe->mGlobalPrmColor.a);
GXSetAlphaCompare(GX_GEQUAL, dc.pbe->getGlobalAlpha(), GX_AOP_OR, GX_GEQUAL, dc.pbe->getGlobalAlpha());
GXSetAlphaUpdate(GX_FALSE);
GXSetColorUpdate(GX_FALSE);
GXSetCullMode(GX_CULL_NONE);
@@ -959,7 +957,7 @@ void JPADraw::zDrawParticle() {
void JPADraw::zDrawChild() {
field_0xc2 |= 0x02;
setChildClipBoard();
dc.mpActiveParticles = &dc.pbe->mChildParticles;
dc.mpActiveParticles = dc.pbe->getChildParticleList();
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
GXEnableTexOffsets(GX_TEXCOORD0, GX_TRUE, GX_TRUE);
@@ -971,7 +969,7 @@ void JPADraw::zDrawChild() {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
GXSetZCompLoc(GX_FALSE);
GXSetAlphaCompare(GX_GEQUAL, dc.pbe->mGlobalPrmColor.a, GX_AOP_OR, GX_GEQUAL, dc.pbe->mGlobalPrmColor.a);
GXSetAlphaCompare(GX_GEQUAL, dc.pbe->getGlobalAlpha(), GX_AOP_OR, GX_GEQUAL, dc.pbe->getGlobalAlpha());
GXSetAlphaUpdate(GX_FALSE);
GXSetColorUpdate(GX_FALSE);
GXSetCullMode(GX_CULL_NONE);
@@ -1006,10 +1004,7 @@ void JPADraw::zDrawChild() {
/* 8026C4DC-8026C640 .text loadYBBMtx__7JPADrawFPA4_f */
void JPADraw::loadYBBMtx(MtxP mtx) {
JGeometry::TVec3<f32> v;
v.x = 0.0f;
v.y = mtx[1][1];
v.z = mtx[2][1];
JGeometry::TVec3<f32> v(0.0f, mtx[1][1], mtx[2][1]);
JUT_ASSERT(0x596, !v.isZero());
v.normalize();