rename EffectsStruct -> dEmitter_c

This commit is contained in:
robojumper
2025-09-27 15:25:37 +02:00
parent 532e06a35a
commit ab5be7e133
36 changed files with 153 additions and 151 deletions
+8 -8
View File
@@ -117,14 +117,14 @@ private:
/* 0x3B8 */ dBgS_ObjAcch mObjAcch;
/* 0x768 */ dCcD_Cyl mCyl;
/* 0x8B8 */ STATE_MGR_DECLARE(dAcItem_c);
/* 0x8F4 */ EffectsStruct mEff_0x8F4;
/* 0x928 */ EffectsStruct mEff_0x928;
/* 0x95C */ EffectsStruct mEff_0x95C;
/* 0x990 */ EffectsStruct mEff_0x990;
/* 0x9C4 */ EffectsStruct mEff_0x9C4;
/* 0x9F8 */ EffectsStruct mEff_0x9F8;
/* 0xA2C */ EffectsStruct mEff_0xA2C;
/* 0xA60 */ EffectsStruct mEff_0xA60;
/* 0x8F4 */ dEmitter_c mEff_0x8F4;
/* 0x928 */ dEmitter_c mEff_0x928;
/* 0x95C */ dEmitter_c mEff_0x95C;
/* 0x990 */ dEmitter_c mEff_0x990;
/* 0x9C4 */ dEmitter_c mEff_0x9C4;
/* 0x9F8 */ dEmitter_c mEff_0x9F8;
/* 0xA2C */ dEmitter_c mEff_0xA2C;
/* 0xA60 */ dEmitter_c mEff_0xA60;
/* 0xA94 */ dAcRef_c<dAcOScatterSand> mCoveredSand;
/* 0xAA0 */ dAcRef_c<dAcObjBase_c> mUnkRef;
/* 0xAAC */ mVec3_c posCopy;
+1 -1
View File
@@ -140,7 +140,7 @@ private:
/* 0x9B0 */ STATE_MGR_DECLARE(dAcEsm_c);
/* 0x9EC */ dAcRef_c<dAcBomb_c> mBombRef;
/* 0x9F8 */ dJntCol_c mJntCol;
/* 0xA0C */ EffectsStruct mEffArr[2];
/* 0xA0C */ dEmitter_c mEffArr[2];
/* 0xA74 */ TimeAreaStruct mTimeArea;
/* 0xA80 */ mVec3_c mPosCopy1;
/* 0xA8C */ mVec3_c mScaleTarget;
+1 -1
View File
@@ -41,7 +41,7 @@ public:
/* 0x35C */ dCcD_Cps mCcCps;
/* 0x4CC */ dCcD_Sph mCcSph;
/* 0x61C */ cBgS_PolyInfo mPolyInfo; // ??
/* 0x648 */ EffectsStruct mEffects;
/* 0x648 */ dEmitter_c mEffects;
/* 0x67C */ u32 field_0x67C;
/* 0x680 */ u8 mSubType;
/* 0x681 */ u8 field_0x681;
+2 -2
View File
@@ -66,8 +66,8 @@ public:
/* 0x9B4 */ u8 _9B4[0x9B8 - 0x9B4];
/* 0x9B8 */ dAcBomb_c *mSelfRef;
/* 0x9BC */ u8 _9BC[0x9D4 - 0x9BC];
/* 0x9D4 */ EffectsStruct mEffect1;
/* 0xA08 */ EffectsStruct mEffect2;
/* 0x9D4 */ dEmitter_c mEffect1;
/* 0xA08 */ dEmitter_c mEffect2;
/* 0xA3C */ u32 field_0xA3C;
/* 0xA40 */ u32 field_0xA40;
/* 0xA44 */ s16 field_0xA44;
+4 -4
View File
@@ -223,10 +223,10 @@ private:
/* 0x08F0 */ mVec3_c field_0x8F0;
/* 0x08FC */ dCcD_Sph mSph0;
/* 0x0A4C */ dCcD_Sph mSph1;
/* 0x0B9C */ EffectsStruct mEff0;
/* 0x0BD0 */ EffectsStruct mEff1;
/* 0x0C04 */ EffectsStruct mEff2;
/* 0x0C38 */ EffectsStruct mEff3;
/* 0x0B9C */ dEmitter_c mEff0;
/* 0x0BD0 */ dEmitter_c mEff1;
/* 0x0C04 */ dEmitter_c mEff2;
/* 0x0C38 */ dEmitter_c mEff3;
/* 0x0C6C */ dLytFader_c mLytFader;
/* 0x114C */ mFader_c mFader;
/* 0x1150 */ u8 _0x1150[0x115C - 0x1150];
+1 -1
View File
@@ -92,7 +92,7 @@ private:
/* 0x865 */ u8 mIsDocked;
/* 0x868 */ s32 field_0x868;
/* 0x86C */ u32 field_0x86C;
/* 0x870 */ EffectsStruct mEffects[2];
/* 0x870 */ dEmitter_c mEffects[2];
/* 0x8D8 */ u8 field_0x8D8;
/* 0x8D9 */ u8 field_0x8D9;
/* 0x8DA */ u8 field_0x8DA;
+1 -1
View File
@@ -67,7 +67,7 @@ private:
/* 0x7B0 */ dCcD_Sph mCcSph1;
/* 0x900 */ dCcD_Sph mCcSph2;
/* 0xA50 */ STATE_MGR_DECLARE(dAcOFairy_c);
/* 0xA8C */ EffectsStruct mEffects[2];
/* 0xA8C */ dEmitter_c mEffects[2];
/* 0xAF4 */ mVec3_c mOrigPosition; ///< The original position of the actor around which it is moving
/* 0xB00 */ mVec3_c mSpawnPosition; ///< The (slightly randomized) spawn position
/* 0xB0C */ u8 _0xB0C[0xB18 - 0xB0C];
+1 -1
View File
@@ -53,7 +53,7 @@ private:
/* 0x3D8 */ dBgW mBgW;
/* 0x5E8 */ dCcD_Cyl mCyl;
/* 0x738 */ STATE_MGR_DECLARE(dAcOSeatSword_c);
/* 0x774 */ EffectsStruct mEff;
/* 0x774 */ dEmitter_c mEff;
/* 0x7A8 */ mMtx_c mSwordMtx;
/* 0x7D8 */ mVec3_c mEffPos;
/* 0x7E4 */ f32 field_0x7E4;
+1 -1
View File
@@ -62,7 +62,7 @@ private:
/* 0x3C2 */ s16 mPreviousTurnSpeed;
/* 0x3C4 */ mMtx_c field_0x3C4;
/* 0x3F4 */ mVec3_c field_0x3F4;
/* 0x400 */ EffectsStruct mEffects;
/* 0x400 */ dEmitter_c mEffects;
};
#endif
+1 -1
View File
@@ -105,7 +105,7 @@ private:
void getLinkOffset(mVec3_c &out) const;
/* 0x330 */ m3d::mdlAnmChr mMdl;
/* 0x398 */ EffectsStruct mEffects;
/* 0x398 */ dEmitter_c mEffects;
/* 0x3CC */ dBgW mBgWs[3];
/* 0x9FC */ STATE_MGR_DECLARE(dAcOTowerHandD101_c);
/* 0xA38 */ ActorEventRelated mEvent;
+1 -1
View File
@@ -35,7 +35,7 @@ private:
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mMdl;
dCcD_Sph mCollision;
EffectsStruct mEffects;
dEmitter_c mEffects;
m3d::anmTexSrt_c mAnm;
mAng mStartingOffset;
};
+1 -1
View File
@@ -21,7 +21,7 @@ public:
private:
/* 0x330 */ dCcD_Cyl mCcCyl;
/* 0x480 */ EffectsStruct mEff;
/* 0x480 */ dEmitter_c mEff;
/* 0x4B4 */ ActorEventRelated mEvent;
/* 0x504 */ mVec3_c mLinkPos;
/* 0x510 */ u8 mExitListIdx;
+1 -1
View File
@@ -24,7 +24,7 @@ private:
/* 0x9C4 */ m3d::smdl_c mMdl1;
/* 0x9E0 */ m3d::smdl_c mMdl2;
/* 0x9FC */ m3d::anmChr_c mAnm;
/* 0xA34 */ EffectsStruct mEffect;
/* 0xA34 */ dEmitter_c mEffect;
/* 0xA68 */ u8 _0xA68[0xA6C - 0xA68];
/* 0xA6C */ dCcD_Cyl mCcCyl;
};
+3 -3
View File
@@ -213,8 +213,8 @@ public:
/* 0x04 */ UI_STATE_MGR_DECLARE(lytDowsingCsr_c);
/* 0x40 */ d2d::AnmGroups mAnm;
/* 0x4C */ d2d::LytBase_c *mpLyt;
/* 0x50 */ EffectsStruct mEffects1;
/* 0x84 */ EffectsStruct mEffects2;
/* 0x50 */ dEmitter_c mEffects1;
/* 0x84 */ dEmitter_c mEffects2;
/* 0xB8 */ nw4r::lyt::Pane *mpRingAllPane;
/* 0xBC */ nw4r::lyt::Pane *mpDowsingPane;
/* 0xC0 */ f32 field_0xC0;
@@ -385,7 +385,7 @@ public:
Tmp<0x17> tmp;
};
/* 0x048 */ EffectsStruct mEffects;
/* 0x048 */ dEmitter_c mEffects;
/* 0x07C */ dEmitterCallbackCursorTrail_c mTrailCb;
/* 0x0B0 */ mVec3_c mPositionThisFrame;
/* 0x0BC */ mVec3_c mPositionLastFrame;
+1 -1
View File
@@ -33,7 +33,7 @@ public:
private:
/* 0x068 */ mColor field_0x68[1][3];
/* 0x074 */ EffectsStruct mEff;
/* 0x074 */ dEmitter_c mEff;
/* 0x0A8 */ u8 _0xA8[0xB4 - 0xA8];
/* 0x0B4 */ mColor field_0xB4;
/* 0x0B8 */ u8 _0xB8[0xD0 - 0xB8];
@@ -288,7 +288,7 @@ private:
/* 0x0E34 */ dLytCommonIconItem_c mItemIcons[9];
/* 0x567C */ d2d::SubPaneList mSubpaneList;
/* 0x5688 */ d2d::SubPaneListNode mSubpanes[9];
/* 0x5718 */ EffectsStruct mEffects;
/* 0x5718 */ dEmitter_c mEffects;
/* 0x574C */ InternalItem_e field_0x574C;
/* 0x5750 */ InternalItem_e field_0x5750;
+1 -1
View File
@@ -178,7 +178,7 @@ private:
/* 0x0CB0 */ dLytCommonIconItem_c mItemIcons[8];
/* 0x4CF0 */ d2d::SubPaneList mSubpaneList;
/* 0x4CFC */ d2d::SubPaneListNode mSubpanes[8];
/* 0x4D7C */ EffectsStruct mEffects[4];
/* 0x4D7C */ dEmitter_c mEffects[4];
/* 0x4E4C */ mAng3_c mEffectsRot[4];
/* 0x4E64 */ s32 mSlotForEffect[4];
/* 0x4E74 */ f32 mArrowRotation;
+1 -1
View File
@@ -52,7 +52,7 @@ public:
void resetBowlNuts();
void updateDropLine(nw4r::lyt::Pane *pane);
void createEffect(s32 fruitIndex);
void startEffect(s32 fruitIndex);
bool incrementTearCount();
bool isAnyFruitAnimAtFrame(f32 f) const;
+2 -2
View File
@@ -156,8 +156,8 @@ class AttentionManager {
/* 0xB64 */ u8 mHasTarget;
/* 0xB65 */ u8 field_0xB65[0xB68 - 0xB65];
/* 0xB68 */ UNKWORD field_0xB68;
/* 0xB6C */ EffectsStruct mEffect1;
/* 0xBA0 */ EffectsStruct mEffect2;
/* 0xB6C */ dEmitter_c mEffect1;
/* 0xBA0 */ dEmitter_c mEffect2;
/* 0xBD4 */ u8 field_0xBD4;
/* 0xBD5 */ u8 field_0xBD5;
+27 -26
View File
@@ -1,5 +1,5 @@
#ifndef EFFECTS_STRUCT_H
#define EFFECTS_STRUCT_H
#ifndef D_EMITTER_H
#define D_EMITTER_H
#include "JSystem/JParticle/JPADrawInfo.h"
#include "JSystem/JParticle/JPAEmitter.h"
@@ -25,7 +25,7 @@ class dEmitterBase_c;
class dEmitterCallback_c;
class dParticleCallback_c;
#include "toBeSorted/d_emmitter_resource_map.inc"
#include "toBeSorted/d_emitter_resource_map.inc"
class dEmitterBase_c {
friend class dEmitterCallback_c;
@@ -83,22 +83,25 @@ public:
void bindShpEmitter(s32 id, bool unused); // corresponds to setup at 8002b6b0
};
// Suggested name: dEmitter_c
class EffectsStruct : public dEmitterBase_c {
class dEmitter_c : public dEmitterBase_c {
public:
enum Flags_e {
EMITTER_0x1 = 0x1,
EMITTER_0x2 = 0x2,
EMITTER_0x4 = 0x4,
/** This emitter has been newly set up. */
EMITTER_New = 0x1,
/** This emitter actually does something. */
EMITTER_Active = 0x2,
/** This emitter will stop when it's done (not held). */
EMITTER_OneShot = 0x4,
/** This emitter has a changing alpha value */
EMITTER_Fading = 0x8,
EMITTER_0x10 = 0x10,
EMITTER_0x20 = 0x20,
};
// vt at 0x1C
EffectsStruct();
EffectsStruct(dBase_c *);
virtual ~EffectsStruct();
dEmitter_c();
dEmitter_c(dBase_c *);
virtual ~dEmitter_c();
inline void init(dBase_c *owner) {
mpOwner = owner;
@@ -115,27 +118,25 @@ public:
void remove(bool bForceDeleteEmitters);
// TODO maybe reconsider the naming here - the observation here is that a "continous" effect
// is typically called every frame, while the others are one-shot calls
bool createContinuousEffect(
bool holdEffect(
u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
const GXColor *c2
);
bool createContinuousUIEffect(
bool holdUIEffect(
u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
const GXColor *c2
);
bool createContinuousEffect(u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool holdEffect(u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool createEffect(
bool startEffect(
u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
const GXColor *c2
);
bool createUIEffect(
bool startUIEffect(
u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
const GXColor *c2
);
bool createEffect(u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool startEffect(u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool hasEmitters() const {
return mpEmitterHead != 0;
@@ -162,18 +163,18 @@ public:
protected:
bool canReuse(u16 resourceId) const {
return hasEmitters() && !checkFlag(EMITTER_0x2) && mEffect == resourceId;
return hasEmitters() && !checkFlag(EMITTER_Active) && mEffect == resourceId;
}
bool createEffect(
bool bFlags, u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
bool setupEffect(
bool create, u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,
const GXColor *c2
);
bool createEffect(bool bFlags, u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool setupEffect(bool create, u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2);
bool getOwnerPolyAttrs(s32 *pOut1, s32 *pOut2);
public:
/* 0x24 */ TListNode<EffectsStruct> mNode;
/* 0x24 */ TListNode<dEmitter_c> mNode;
protected:
/* 0x28 */ dBase_c *mpOwner;
@@ -191,7 +192,7 @@ private:
/* 0x04 */ f32 mHeight;
/* 0x08 */ f32 mDepth;
/* 0x0C */ f32 mScale;
/* 0x10 */ EffectsStruct mEff;
/* 0x10 */ dEmitter_c mEff;
dAcObjBase_c *getActor() const {
return static_cast<dAcObjBase_c *>(mEff.getOwner());
@@ -493,7 +494,7 @@ public:
BWallF210,
};
typedef TList<EffectsStruct, offsetof(EffectsStruct, mNode)> EffectsList;
typedef TList<dEmitter_c, offsetof(dEmitter_c, mNode)> EffectsList;
static EffectsList sPlayingEffectsList;
static CommonEmitterCallback sCommonEmitterCallbacks[2];
static dShpEmitter_c sShpEmitters[47];