mirror of https://github.com/zeldaret/tp.git
d_particle equivalent (#2869)
This commit is contained in:
parent
e0f996e6c3
commit
2bff9b49b5
|
|
@ -21831,7 +21831,7 @@ mPcallback__18dPa_modelEcallBack = .sbss:0x80450E94; // type:object size:0x4 sco
|
|||
mModel__18dPa_modelEcallBack = .sbss:0x80450E98; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
struct_80450E9C = .sbss:0x80450E9C; // type:object size:0x1 scope:local align:1 data:byte
|
||||
struct_80450E9D = .sbss:0x80450E9D; // type:object size:0x1 scope:local align:1 data:byte
|
||||
data_80450E9E = .sbss:0x80450E9E; // type:object size:0x1 scope:local align:1 data:byte
|
||||
init$2305 = .sbss:0x80450E9E; // type:object size:0x1 scope:local align:1 data:byte
|
||||
mEmitterMng__13dPa_control_c = .sbss:0x80450EA0; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mWaterBubblePcallBack__13dPa_control_c = .sbss:0x80450EA4; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mFsenthPcallBack__13dPa_control_c = .sbss:0x80450EA8; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
|
|
|
|||
|
|
@ -21847,7 +21847,7 @@ mPcallback__18dPa_modelEcallBack = .sbss:0x8044AFD4; // type:object size:0x4 sco
|
|||
mModel__18dPa_modelEcallBack = .sbss:0x8044AFD8; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
struct_80450E9C = .sbss:0x8044AFDC; // type:object size:0x1 scope:local align:1 data:byte
|
||||
struct_80450E9D = .sbss:0x8044AFDD; // type:object size:0x1 scope:local align:1 data:byte
|
||||
data_80450E9E = .sbss:0x8044AFDE; // type:object size:0x1 scope:local align:1 data:byte
|
||||
init$2305 = .sbss:0x8044AFDE; // type:object size:0x1 scope:local align:1 data:byte
|
||||
mEmitterMng__13dPa_control_c = .sbss:0x8044AFE0; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mWaterBubblePcallBack__13dPa_control_c = .sbss:0x8044AFE4; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mFsenthPcallBack__13dPa_control_c = .sbss:0x8044AFE8; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
|
|
|
|||
|
|
@ -21852,9 +21852,9 @@ lbl_80452E48 = .sbss:0x80452E48; // type:object size:0x1 data:byte
|
|||
mEcallback__18dPa_modelEcallBack = .sbss:0x80452E50; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mPcallback__18dPa_modelEcallBack = .sbss:0x80452E54; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mModel__18dPa_modelEcallBack = .sbss:0x80452E58; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
lbl_80452E5C = .sbss:0x80452E5C; // type:object size:0x1 data:byte
|
||||
lbl_80452E5D = .sbss:0x80452E5D; // type:object size:0x1 data:byte
|
||||
lbl_80452E5E = .sbss:0x80452E5E; // type:object size:0x1 data:byte
|
||||
struct_80450E9C = .sbss:0x80452E5C; // type:object size:0x1 data:byte
|
||||
struct_80450E9D = .sbss:0x80452E5D; // type:object size:0x1 data:byte
|
||||
init$2305 = .sbss:0x80452E5E; // type:object size:0x1 data:byte
|
||||
mEmitterMng__13dPa_control_c = .sbss:0x80452E60; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mWaterBubblePcallBack__13dPa_control_c = .sbss:0x80452E64; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
mFsenthPcallBack__13dPa_control_c = .sbss:0x80452E68; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ config.libs = [
|
|||
Object(MatchingFor(ALL_GCN), "d/d_event_lib.cpp"), # debug weak func order
|
||||
Object(Equivalent, "d/d_event_debug.cpp"), # RTTI
|
||||
Object(MatchingFor(ALL_GCN), "d/d_simple_model.cpp"),
|
||||
Object(NonMatching, "d/d_particle.cpp"),
|
||||
Object(Equivalent, "d/d_particle.cpp"), # weak func order
|
||||
Object(MatchingFor(ALL_GCN, "Shield"), "d/d_particle_name.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_particle_copoly.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_path.cpp"),
|
||||
|
|
|
|||
|
|
@ -164,7 +164,16 @@ public:
|
|||
mGlobalPScl.set(scaleX, scaleY);
|
||||
}
|
||||
void getGlobalParticleScale(JGeometry::TVec3<f32>& scale) const {
|
||||
//TODO: Possible fakematch. Debug and Wii indicate TVec3::set, but using it breaks regalloc
|
||||
// in dPa_gen_b_light8PcallBack::draw on GCN (where the call to set would normally be
|
||||
// inlined).
|
||||
#if PLATFORM_GCN
|
||||
scale.x = mGlobalPScl.x;
|
||||
scale.y = mGlobalPScl.y;
|
||||
scale.z = 1.0f;
|
||||
#else
|
||||
scale.set(mGlobalPScl.x, mGlobalPScl.y, 1.0f);
|
||||
#endif
|
||||
}
|
||||
void setGlobalScale(const JGeometry::TVec3<f32>& scale) {
|
||||
mGlobalScl.set(scale);
|
||||
|
|
|
|||
|
|
@ -79,7 +79,6 @@ public:
|
|||
*/
|
||||
class JPAParticleCallBack {
|
||||
public:
|
||||
JPAParticleCallBack() {}
|
||||
virtual ~JPAParticleCallBack() = 0;
|
||||
virtual void execute(JPABaseEmitter*, JPABaseParticle*) {}
|
||||
virtual void draw(JPABaseEmitter*, JPABaseParticle*) {}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
#ifndef D_PARTICLE_D_PARTICLE_H
|
||||
#define D_PARTICLE_D_PARTICLE_H
|
||||
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_pla.h"
|
||||
#include "JSystem/JParticle/JPAEmitter.h"
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "d/d_particle_name.h"
|
||||
#include "d/d_kankyo.h"
|
||||
|
||||
|
|
@ -23,26 +24,6 @@ public:
|
|||
/* 8004FB8C */ virtual void cleanup() {}
|
||||
};
|
||||
|
||||
class dPa_hermiteEcallBack_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_hermiteEcallBack_c() {}
|
||||
|
||||
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
|
||||
|
||||
/* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c() {}
|
||||
/* 8004F6C4 */ virtual void executeAfter(JPABaseEmitter*);
|
||||
/* 8004FABC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
void setRate(f32 rate) { mRate = rate; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ f32 mRate;
|
||||
/* 0x08 */ int mMaxCnt;
|
||||
/* 0x0C */ cXyz const* field_0xc;
|
||||
/* 0x10 */ cXyz const* field_0x10;
|
||||
/* 0x14 */ cXyz const* field_0x14;
|
||||
};
|
||||
|
||||
class mDoDvdThd_toMainRam_c;
|
||||
class cBgS_PolyInfo;
|
||||
class JPAEmitterManager;
|
||||
|
|
@ -73,72 +54,12 @@ public:
|
|||
/* 0x10 */ dPa_simpleData_c* mData;
|
||||
}; // Size: 0x14
|
||||
|
||||
class dPa_followEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
/* 80049580 */ dPa_followEcallBack(u8 param_0 = 0, u8 param_1 = 0);
|
||||
|
||||
/* 80050200 */ virtual ~dPa_followEcallBack() {}
|
||||
/* 800495BC */ virtual void execute(JPABaseEmitter*);
|
||||
/* 800496B0 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 800496B4 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
/* 80050284 */ virtual void cleanup() { end(); }
|
||||
/* 8004974C */ virtual void end();
|
||||
|
||||
void remove() { end(); }
|
||||
JPABaseEmitter* getEmitter() { return mpEmitter; }
|
||||
bool isEnd() {
|
||||
return field_0x10 & 1;
|
||||
}
|
||||
|
||||
/* 0x04 */ JPABaseEmitter* mpEmitter;
|
||||
/* 0x08 */ const cXyz* field_0x8;
|
||||
/* 0x0C */ const csXyz* field_0xc;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
};
|
||||
|
||||
class dPa_windPcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FF2C */ virtual ~dPa_windPcallBack() {}
|
||||
/* 8004B4E0 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_wbPcallBack_c : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FECC */ virtual ~dPa_wbPcallBack_c() {}
|
||||
/* 8004DC28 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_setColorEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_setColorEcallBack(const GXColor& color) { mColor = color; }
|
||||
|
||||
/* 800502E4 */ virtual ~dPa_setColorEcallBack() {}
|
||||
/* 800502B0 */ virtual void draw(JPABaseEmitter*) { GXSetTevColor(GX_TEVREG1, mColor); }
|
||||
/* 800502E0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
|
||||
|
||||
/* 0x4 */ GXColor mColor;
|
||||
};
|
||||
|
||||
class dPa_selectTexEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_selectTexEcallBack(u8 param_0) { field_0x4 = param_0; }
|
||||
|
||||
/* 8004FF8C */ virtual ~dPa_selectTexEcallBack() {}
|
||||
/* 8004ADC4 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 80050010 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
|
||||
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
};
|
||||
|
||||
class dPa_particleTracePcallBack_c : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FC68 */ virtual ~dPa_particleTracePcallBack_c() {}
|
||||
/* 8004FAD4 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_modelPcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 80050038 */ virtual ~dPa_modelPcallBack() {}
|
||||
|
|
@ -152,7 +73,6 @@ public:
|
|||
/* 8004A7AC */ void setup();
|
||||
/* 8004A88C */ void cleanup();
|
||||
/* 8004A8DC */ void draw(f32 (*)[4]);
|
||||
/* 8004AB88 */ ~model_c();
|
||||
/* 8004FB90 */ model_c() { field_0x0 = NULL; }
|
||||
|
||||
void reset() {
|
||||
|
|
@ -184,7 +104,6 @@ public:
|
|||
/* 8004AD58 */ static model_c* getModel(JPABaseEmitter*);
|
||||
/* 8004AD90 */ static u8 getRotAxis(JPABaseEmitter*);
|
||||
|
||||
/* 80050378 */ virtual ~dPa_modelEcallBack() {}
|
||||
/* 8004AA34 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 80050014 */ virtual void drawAfter(JPABaseEmitter* param_0) { cleanupModel(param_0); }
|
||||
/* 8004AAA8 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
|
@ -202,11 +121,48 @@ public:
|
|||
static model_c* mModel;
|
||||
};
|
||||
|
||||
class dPa_light8PcallBack : public JPAParticleCallBack {
|
||||
class dPa_selectTexEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
/* 8004FE0C */ virtual ~dPa_light8PcallBack() {}
|
||||
/* 8004DD10 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004DD1C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
dPa_selectTexEcallBack(u8 param_0) { field_0x4 = param_0; }
|
||||
|
||||
/* 8004FF8C */ virtual ~dPa_selectTexEcallBack() {}
|
||||
/* 8004ADC4 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 80050010 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
|
||||
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
};
|
||||
|
||||
class dPa_followEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
/* 80049580 */ dPa_followEcallBack(u8 param_0 = 0, u8 param_1 = 0);
|
||||
|
||||
/* 80050200 */ virtual ~dPa_followEcallBack() {}
|
||||
/* 800495BC */ virtual void execute(JPABaseEmitter*);
|
||||
/* 800496B0 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 800496B4 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
/* 80050284 */ virtual void cleanup() { end(); }
|
||||
/* 8004974C */ virtual void end();
|
||||
|
||||
void remove() { end(); }
|
||||
JPABaseEmitter* getEmitter() { return mpEmitter; }
|
||||
bool isEnd() {
|
||||
return field_0x10 & 1;
|
||||
}
|
||||
|
||||
/* 0x04 */ JPABaseEmitter* mpEmitter;
|
||||
/* 0x08 */ const cXyz* field_0x8;
|
||||
/* 0x0C */ const csXyz* field_0xc;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
};
|
||||
|
||||
class dPa_fsenthPcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FE6C */ virtual ~dPa_fsenthPcallBack() {}
|
||||
/* 8004DCA0 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004DD0C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_light8EcallBack : public dPa_levelEcallBack {
|
||||
|
|
@ -217,21 +173,28 @@ public:
|
|||
/* 8004979C */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
};
|
||||
|
||||
class dPa_gen_d_light8PcallBack : public JPAParticleCallBack {
|
||||
class dPa_gen_b_light8EcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
/* 8004FD4C */ virtual ~dPa_gen_d_light8PcallBack() {}
|
||||
/* 8004DD18 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004ED44 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 800500B8 */ virtual ~dPa_gen_b_light8EcallBack() {}
|
||||
/* 8004A364 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 8005013C */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); }
|
||||
/* 800497B0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
};
|
||||
|
||||
class dPa_gen_d_light8EcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
/* 800503FC */ virtual ~dPa_gen_d_light8EcallBack() {}
|
||||
/* 8004A388 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 80050098 */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); }
|
||||
/* 800497CC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
};
|
||||
|
||||
class dPa_light8PcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FE0C */ virtual ~dPa_light8PcallBack() {}
|
||||
/* 8004DD10 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004DD1C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_gen_b_light8PcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FDAC */ virtual ~dPa_gen_b_light8PcallBack() {}
|
||||
|
|
@ -239,19 +202,54 @@ public:
|
|||
/* 8004E6A8 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_gen_b_light8EcallBack : public dPa_levelEcallBack {
|
||||
class dPa_gen_d_light8PcallBack : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 800500B8 */ virtual ~dPa_gen_b_light8EcallBack() {}
|
||||
/* 8004A364 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 8005013C */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); }
|
||||
/* 800497B0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
/* 8004FD4C */ virtual ~dPa_gen_d_light8PcallBack() {}
|
||||
/* 8004DD18 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004ED44 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_fsenthPcallBack : public JPAParticleCallBack {
|
||||
class dPa_wbPcallBack_c : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FE6C */ virtual ~dPa_fsenthPcallBack() {}
|
||||
/* 8004DCA0 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004DD0C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 8004FECC */ virtual ~dPa_wbPcallBack_c() {}
|
||||
/* 8004DC28 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_particleTracePcallBack_c : public JPAParticleCallBack {
|
||||
public:
|
||||
/* 8004FC68 */ virtual ~dPa_particleTracePcallBack_c() {}
|
||||
/* 8004FAD4 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
class dPa_hermiteEcallBack_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_hermiteEcallBack_c() {}
|
||||
|
||||
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
|
||||
|
||||
/* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c() {}
|
||||
/* 8004F6C4 */ virtual void executeAfter(JPABaseEmitter*);
|
||||
/* 8004FABC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
void setRate(f32 rate) { mRate = rate; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ f32 mRate;
|
||||
/* 0x08 */ int mMaxCnt;
|
||||
/* 0x0C */ cXyz const* field_0xc;
|
||||
/* 0x10 */ cXyz const* field_0x10;
|
||||
/* 0x14 */ cXyz const* field_0x14;
|
||||
};
|
||||
|
||||
class dPa_setColorEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_setColorEcallBack(const GXColor& color) { mColor = color; }
|
||||
|
||||
/* 800502E4 */ virtual ~dPa_setColorEcallBack() {}
|
||||
/* 800502B0 */ virtual void draw(JPABaseEmitter*) { GXSetTevColor(GX_TEVREG1, mColor); }
|
||||
/* 800502E0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
|
||||
|
||||
/* 0x4 */ GXColor mColor;
|
||||
};
|
||||
|
||||
class dPa_simpleData_c {
|
||||
|
|
|
|||
|
|
@ -321,13 +321,11 @@ bool JPABaseParticle::canCreateChild(JPAEmitterWorkData* work) {
|
|||
/* 80280548-80280568 27AE88 0020+00 0/0 3/3 0/0 .text
|
||||
* getWidth__15JPABaseParticleCFPC14JPABaseEmitter */
|
||||
f32 JPABaseParticle::getWidth(JPABaseEmitter const* emtr) const {
|
||||
f32 scale = 2.0f * mParticleScaleX;
|
||||
return scale * emtr->mpEmtrMgr->pWd->mGlobalPtclScl.x;
|
||||
return mParticleScaleX * 2.0f * emtr->mpEmtrMgr->pWd->mGlobalPtclScl.x;
|
||||
}
|
||||
|
||||
/* 80280568-80280588 27AEA8 0020+00 0/0 3/3 0/0 .text
|
||||
* getHeight__15JPABaseParticleCFPC14JPABaseEmitter */
|
||||
f32 JPABaseParticle::getHeight(JPABaseEmitter const* emtr) const {
|
||||
f32 scale = 2.0f * mParticleScaleY;
|
||||
return scale * emtr->mpEmtrMgr->pWd->mGlobalPtclScl.y;
|
||||
return mParticleScaleY * 2.0f * emtr->mpEmtrMgr->pWd->mGlobalPtclScl.y;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,15 @@
|
|||
// Translation Unit: d/d_particle
|
||||
//
|
||||
|
||||
// d_particle is odd in that it doesn't appear to include dolzel.pch.
|
||||
// It uses ...data pooling, but weak data from the PCH (e.g. Z2Calc::cNullVec)
|
||||
// isn't present like would be expected for a TU using pooling.
|
||||
//
|
||||
// Note that it _is_ possible that it does include the PCH and there's just some
|
||||
// not-yet-understood behavior causing the weak data to be stripped anyway.
|
||||
// Notably, TWW's version of this TU _does_ use the PCH, but it also includes
|
||||
// weak data from it (unlike here).
|
||||
|
||||
#include "d/d_particle.h"
|
||||
#include "d/d_jnt_col.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
|
|
@ -140,7 +149,7 @@ static u8 struct_80450E9D;
|
|||
|
||||
/* 8004979C-800497B0 0440DC 0014+00 1/0 0/0 0/0 .text
|
||||
* setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
|
||||
//
|
||||
//
|
||||
void dPa_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1,
|
||||
csXyz const* param_2, s8 param_3) {
|
||||
param_0->setDrawTimes(2);
|
||||
|
|
@ -535,7 +544,7 @@ bool dPa_modelEcallBack::model_c::set(J3DModelData* param_0, dKy_tevstr_c const&
|
|||
*(Arr*)&field_0x8.TevColor = *(Arr*)¶m_1.TevColor;
|
||||
*(int*)&field_0x8.TevKColor = *(int*)¶m_1.TevKColor;
|
||||
*(int*)&field_0x8.mLightInf = *(int*)¶m_1.mLightInf;
|
||||
|
||||
|
||||
field_0x8.mFogStartZ = param_1.mFogStartZ;
|
||||
field_0x8.mFogEndZ = param_1.mFogEndZ;
|
||||
field_0x8.pat_ratio = param_1.pat_ratio;
|
||||
|
|
@ -586,7 +595,7 @@ void dPa_modelEcallBack::model_c::setup() {
|
|||
void dPa_modelEcallBack::model_c::cleanup() {
|
||||
if (field_0x4 == NULL) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x392 == 0) {
|
||||
field_0x0->removeTexNoAnimator((J3DAnmTexPattern*)field_0x4);
|
||||
|
|
@ -660,10 +669,6 @@ void dPa_modelEcallBack::create(u8 param_0) {
|
|||
struct_80450E9D = 0;
|
||||
}
|
||||
|
||||
/* 8004AB88-8004ABC4 0454C8 003C+00 2/2 0/0 0/0 .text __dt__Q218dPa_modelEcallBack7model_cFv */
|
||||
dPa_modelEcallBack::model_c::~model_c() {
|
||||
}
|
||||
|
||||
/* 8004ABC4-8004AC00 045504 003C+00 1/1 0/0 0/0 .text remove__18dPa_modelEcallBackFv */
|
||||
void dPa_modelEcallBack::remove() {
|
||||
if (mModel != NULL) {
|
||||
|
|
@ -2109,7 +2114,6 @@ void dPa_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* param_2
|
|||
|
||||
/* 8004E6A8-8004ED44 048FE8 069C+00 1/0 0/0 0/0 .text
|
||||
* draw__25dPa_gen_b_light8PcallBackFP14JPABaseEmitterP15JPABaseParticle */
|
||||
// NONMATCHING - fpr regalloc
|
||||
void dPa_gen_b_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* param_2) {
|
||||
Mtx local_80;
|
||||
JGeometry::TVec3<f32> local_8c;
|
||||
|
|
@ -2128,13 +2132,13 @@ void dPa_gen_b_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* p
|
|||
f32 dVar9 = JMASSin(param_2->getRotateAngle());
|
||||
f32 dVar10 = JMASCos(param_2->getRotateAngle());
|
||||
param_1->getGlobalParticleScale(local_bc);
|
||||
local_bc.x *= param_2->getWidth(param_1);
|
||||
local_bc.y *= param_2->getHeight(param_1);
|
||||
local_80[0][0] = dVar10 * local_bc.x;
|
||||
local_80[0][1] = -dVar9 * local_bc.y;
|
||||
f32 var_f29 = local_bc.x * param_2->getWidth(param_1);
|
||||
f32 var_f28 = local_bc.y * param_2->getHeight(param_1);
|
||||
local_80[0][0] = dVar10 * var_f29;
|
||||
local_80[0][1] = -dVar9 * var_f28;
|
||||
local_80[0][3] = local_8c.x;
|
||||
local_80[1][0] = dVar9 * local_bc.x;
|
||||
local_80[1][1] = dVar10 * local_bc.y;
|
||||
local_80[1][0] = dVar9 * var_f29;
|
||||
local_80[1][1] = dVar10 * var_f28;
|
||||
local_80[1][3] = local_8c.y;
|
||||
local_80[2][2] = 1.0f;
|
||||
local_80[2][3] = local_8c.z;
|
||||
|
|
|
|||
Loading…
Reference in New Issue