mirror of
https://github.com/zeldaret/tp
synced 2026-05-26 07:39:06 -04:00
956e84b0e7
* Fix clang union handling (affects all TUs including d_camera.h) Union members with non-trivial ctors/dtors is undefined behavior and clangd normally throws a fit and refuses to parse the whole union, but it seems to be possible to ifdef the problematic ctors out for non-mwerks compilers and explicitly tell modern compilers to use the defaults instead. Thanks to encounter for this fix. * Link all TUs that already match on debug In order to link TUs for debug, most functions seem to need to have their alignment set to 16 in symbols.txt. There are a few hundred functions that seem to be the exception and break when their alignment is set to 16, but I don't know the reason for this. * Remove some fakematches (nosyminline/sym off) for weak func order in retail * Fix clang not knowing that MSL_C++ is C++ * Link more debug TUs * Fix missing PAL split * Fix wrong slashes being used in includes * RZDE01_00: Fix incorrect capitalization in config.yml * Add RZDE01_00 to configure task * Revert configure.py to use MatchingFor * Fix PAL splits and symbols, link matching PAL TUs
142 lines
5.7 KiB
C++
142 lines
5.7 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);
|
|
}
|
|
/* 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 */
|