summaryrefslogtreecommitdiff
path: root/include/JSystem/JStudio/JStudio_JParticle/control.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/JSystem/JStudio/JStudio_JParticle/control.h')
-rw-r--r--include/JSystem/JStudio/JStudio_JParticle/control.h91
1 files changed, 82 insertions, 9 deletions
diff --git a/include/JSystem/JStudio/JStudio_JParticle/control.h b/include/JSystem/JStudio/JStudio_JParticle/control.h
index 0b9e4d9cf6..44e1ca6597 100644
--- a/include/JSystem/JStudio/JStudio_JParticle/control.h
+++ b/include/JSystem/JStudio/JStudio_JParticle/control.h
@@ -2,11 +2,14 @@
#define JSTUDIO_JPARTICLE_CONTROL_H
#include "JSystem/JParticle/JPAParticle.h"
+#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
namespace JStudio_JParticle {
struct TCreateObject : public JStudio::TCreateObject {
+ typedef JStudio::TObject* (*CreateFunc)(JStudio::stb::data::TParse_TBlock_object const&,
+ JStudio_JParticle::TCreateObject*);
TCreateObject(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system) {
pJPAEmitterManager_ = p_emitMgr;
pJSGSystem_ = p_system;
@@ -16,24 +19,52 @@ struct TCreateObject : public JStudio::TCreateObject {
/* 8028E3A0 */ virtual ~TCreateObject();
/* 8028E400 */ virtual bool create(JStudio::TObject**,
JStudio::stb::data::TParse_TBlock_object const&);
- /* 8028E474 */ virtual void emitter_create(u32);
+ /* 8028E474 */ virtual JPABaseEmitter* emitter_create(u32);
/* 8028E4E4 */ virtual void emitter_destroy(JPABaseEmitter*);
- /* 8028E508 */ void createObject_JPA_PARTICLE_(JStudio::stb::data::TParse_TBlock_object const&,
- JStudio_JParticle::TCreateObject*);
+ /* 8028E508 */ static JStudio::TObject*
+ createObject_JPA_PARTICLE_(JStudio::stb::data::TParse_TBlock_object const&,
+ JStudio_JParticle::TCreateObject*);
+ const JStage::TSystem* get_pJSGSystem_() { return pJSGSystem_; }
+ bool isPermit_onExit_notEnd() { return mPermit_onExit_notEnd; }
+
/* 0x0C */ JPAEmitterManager* pJPAEmitterManager_;
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
/* 0x14 */ bool mPermit_onExit_notEnd;
};
struct TAdaptor_particle : public JStudio::TAdaptor_particle {
- struct TJPACallback_emitter_ {
- /* 8028E700 */ ~TJPACallback_emitter_();
- /* 8028ECC0 */ void execute(JPABaseEmitter*);
- /* 8028F060 */ void executeAfter(JPABaseEmitter*);
- /* 8028F098 */ void draw(JPABaseEmitter*);
- /* 8028F0D0 */ void drawAfter(JPABaseEmitter*);
+ typedef JStudio::TObject_particle ObjectType;
+
+ struct TJPACallback_emitter_ : public JPAEmitterCallBack {
+ TJPACallback_emitter_(TAdaptor_particle* param_1) {
+ pThis_ = param_1;
+ pOld = NULL;
+ JUT_ASSERT(113, pThis_!=0);
+ }
+ /* 8028E700 */ virtual ~TJPACallback_emitter_() {}
+ /* 8028ECC0 */ virtual void execute(JPABaseEmitter*);
+ /* 8028F060 */ virtual void executeAfter(JPABaseEmitter*);
+ /* 8028F098 */ virtual void draw(JPABaseEmitter*);
+ /* 8028F0D0 */ virtual void drawAfter(JPABaseEmitter*);
+
+ JPAEmitterCallBack* getOld() { return pOld; }
+ void setOld(JPAEmitterCallBack* cb) { pOld = cb; }
+
+ /* 0x4 */ TAdaptor_particle* pThis_;
+ /* 0x8 */ JPAEmitterCallBack* pOld;
+ };
+
+ struct TJPAEmitter_stopDrawParticle_ {
+ TJPAEmitter_stopDrawParticle_(JPABaseEmitter* emitter) : pJPAEmitter_(emitter) {}
+ ~TJPAEmitter_stopDrawParticle_() {
+ if (pJPAEmitter_ != NULL) {
+ pJPAEmitter_->stopDrawParticle();
+ }
+ }
+ void set(JPABaseEmitter* emitter) { pJPAEmitter_ = emitter; }
+ /* 0x0 */ JPABaseEmitter* pJPAEmitter_;
};
/* 8028E60C */ TAdaptor_particle(JStudio_JParticle::TCreateObject*);
@@ -61,6 +92,48 @@ struct TAdaptor_particle : public JStudio::TAdaptor_particle {
/* 8028EC88 */ virtual void adaptor_do_REPEAT(JStudio::data::TEOperationData, void const*, u32);
/* 8028ECA4 */ virtual void adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData, void const*,
u32);
+
+ static bool state_isFade_(u8 param_1) {
+ return param_1 == 1 || param_1 == 3;
+ }
+
+ bool state_isFade_() {
+ return state_isFade_(field_0x1b8);
+ }
+
+ void beginParticle_fadeIn_(u32 param_1) {
+ field_0x1c8 = param_1;
+ beginParticle_fadeIn_();
+ }
+
+ void beginParticle_() {
+ beginParticle_fadeIn_(0);
+ }
+
+ void endParticle_() {
+ if (pJPAEmitter_ != NULL) {
+ pJPAEmitter_->becomeInvalidEmitter();
+ }
+ }
+
+ void set_bPermit_onExit_notEnd_(bool param_1) { field_0x1b4 = param_1; }
+
+ /* 0x1A0 */ TCreateObject* pCreateObject_;
+ /* 0x1A4 */ JPABaseEmitter* pJPAEmitter_;
+ /* 0x1A8 */ TJPACallback_emitter_ field_0x1a8;
+ /* 0x1B4 */ u8 field_0x1b4;
+ /* 0x1B5 */ u8 field_0x1b5;
+ /* 0x1B6 */ u8 field_0x1b6;
+ /* 0x1B7 */ u8 field_0x1b7;
+ /* 0x1B8 */ u8 field_0x1b8;
+ /* 0x1BC */ u32 field_0x1bc;
+ /* 0x1C0 */ u32 u32FadeTime_end;
+ /* 0x1C4 */ u32 field_0x1c4;
+ /* 0x1C8 */ u32 field_0x1c8;
+ /* 0x1CC */ u32 field_0x1cc;
+ /* 0x1D0 */ JStage::TObject* field_0x1d0;
+ /* 0x1D4 */ u32 field_0x1d4;
+ /* 0x1D8 */ u8 field_0x1d8;
};
}; // namespace JStudio_JParticle