mirror of https://github.com/zeldaret/tp.git
143 lines
5.8 KiB
C++
143 lines
5.8 KiB
C++
#ifndef JSTUDIO_JPARTICLE_CONTROL_H
|
|
#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;
|
|
mPermit_onExit_notEnd = false;
|
|
JUT_ASSERT(48, pJPAEmitterManager_!=0);
|
|
}
|
|
|
|
/* 8028E3A0 */ virtual ~TCreateObject();
|
|
/* 8028E400 */ virtual bool create(JStudio::TObject**,
|
|
JStudio::stb::data::TParse_TBlock_object const&);
|
|
/* 8028E474 */ virtual JPABaseEmitter* emitter_create(u32);
|
|
/* 8028E4E4 */ virtual void emitter_destroy(JPABaseEmitter*);
|
|
|
|
/* 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 {
|
|
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*);
|
|
/* 8028F108 */ void beginParticle_fadeIn_();
|
|
/* 8028F1C0 */ void endParticle_fadeOut_(u32);
|
|
|
|
/* 8028E760 */ virtual ~TAdaptor_particle();
|
|
/* 8028E850 */ virtual void adaptor_do_prepare();
|
|
/* 8028E97C */ virtual void adaptor_do_end();
|
|
/* 8028E980 */ virtual void adaptor_do_update(u32);
|
|
/* 8028EA68 */ virtual void adaptor_do_PARTICLE(JStudio::data::TEOperationData, void const*, u32);
|
|
/* 8028EA7C */ virtual void adaptor_do_BEGIN(JStudio::data::TEOperationData, void const*, u32);
|
|
/* 8028EAB0 */ virtual void adaptor_do_BEGIN_FADE_IN(JStudio::data::TEOperationData, void const*,
|
|
u32);
|
|
/* 8028EAF8 */ virtual void adaptor_do_END(JStudio::data::TEOperationData, void const*, u32);
|
|
/* 8028EB24 */ virtual void adaptor_do_END_FADE_OUT(JStudio::data::TEOperationData, void const*,
|
|
u32);
|
|
/* 8028EB6C */ virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
|
|
/* 8028EBD8 */ virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*,
|
|
u32);
|
|
/* 8028EC58 */ virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*,
|
|
u32);
|
|
/* 8028EC74 */ virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const*,
|
|
u32);
|
|
/* 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
|
|
|
|
#endif /* JSTUDIO_JPARTICLE_CONTROL_H */
|