summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-05-04 18:20:13 +0200
committerrobojumper <robojumper@gmail.com>2025-05-10 22:24:16 +0200
commit3bce2ab39609ac0b726f649bf148dfae4b172034 (patch)
treeca52b1b04a548d60ffaaddf48b0eded57384b223 /include
parent820c08e1d626965946269779f035867258a3a4cc (diff)
EffectsStruct::fn_ begone
Diffstat (limited to 'include')
-rw-r--r--include/toBeSorted/effects_struct.h28
1 files changed, 21 insertions, 7 deletions
diff --git a/include/toBeSorted/effects_struct.h b/include/toBeSorted/effects_struct.h
index a61d7dab..d9c8365b 100644
--- a/include/toBeSorted/effects_struct.h
+++ b/include/toBeSorted/effects_struct.h
@@ -5,7 +5,6 @@
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "common.h"
-#include "d/a/d_a_base.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/d_base.h"
#include "m/m2d.h"
@@ -36,6 +35,10 @@ public:
const GXColor *c2, s32 idx1, s32 idx2
);
+ dEmitterCallback_c *getEmitterCallback() const {
+ return mpEmitterCallback;
+ }
+
protected:
void deactivateEmitters();
void stopCalcEmitters();
@@ -108,16 +111,25 @@ public:
void setFading(u8 lifetime);
void remove(bool bForceDeleteEmitters);
- void fn_80029920(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
- void fn_80029980(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
- void fn_800299F0(u16 effect, mMtx_c *mtx, void *, void *);
- void fn_80029A10(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
- void fn_80029A70(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
+
+ // 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(u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1, const GXColor *c2);
+ bool createContinuousUIEffect(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 createEffect(u16 resourceId, const mVec3_c &pos, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1, const GXColor *c2);
+ bool createUIEffect(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 hasEmitters() const {
return mpEmitterHead != 0;
}
+ u8 getGroupId() const {
+ return mpEmitterHead->getGroupID();
+ }
+
bool checkFlag(u32 flag) const {
return mFlags & flag;
}
@@ -201,7 +213,7 @@ class dEmitterCallback_c : public JPAEmitterCallBack {
public:
virtual ~dEmitterCallback_c();
virtual void create(JPABaseEmitter *) {}
- virtual void vt_0x20(JPABaseEmitter *) {}
+ virtual void vt_0x20(f32, f32) {}
void remove(dEmitterBase_c *emitter);
@@ -225,6 +237,7 @@ public:
class dParticleFogProc_c : public d3d::UnkProc {
public:
+ dParticleFogProc_c() {}
virtual ~dParticleFogProc_c() {}
virtual void drawOpa() override {
doDraw();
@@ -361,6 +374,7 @@ public:
static void draw(const JPADrawInfo *info, u32 groupId);
static void draw();
static void execute();
+ static void doCustomSkywardSwordThing(f32 x, f32 y);
static void setupEffects();
static dEmitterBase_c *spawnEffect(
u16 effectResourceId, const mVec3_c &position, const mAng3_c *rot, const mVec3_c *scale, const GXColor *c1,