diff options
Diffstat (limited to 'include/JSystem/JStudio/JStudio_JParticle/control.h')
| -rw-r--r-- | include/JSystem/JStudio/JStudio_JParticle/control.h | 91 |
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 |
