mirror of https://github.com/AxioDL/metaforce.git
CParticleGen inheritance fix
This commit is contained in:
parent
5f4eee538d
commit
acf65c561a
|
@ -246,8 +246,6 @@ public:
|
||||||
TLockedToken(const CToken& other) : TToken<T>(other) {m_obj = TToken<T>::GetObj();}
|
TLockedToken(const CToken& other) : TToken<T>(other) {m_obj = TToken<T>::GetObj();}
|
||||||
TLockedToken(CToken&& other) : TToken<T>(std::move(other)) {m_obj = TToken<T>::GetObj();}
|
TLockedToken(CToken&& other) : TToken<T>(std::move(other)) {m_obj = TToken<T>::GetObj();}
|
||||||
T* GetObj() {return m_obj;}
|
T* GetObj() {return m_obj;}
|
||||||
template <class U>
|
|
||||||
U* CastObj() {return static_cast<U*>(m_obj);}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
class CElectricDescription : public IGenDescription
|
class CElectricDescription
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ void CElementGen::Initialize()
|
||||||
g_StaticListInitialized = true;
|
g_StaticListInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CElementGen::CElementGen(const TToken<IGenDescription>& gen) : x1c_genDesc(gen), x230_randState(x74_randomSeed) {}
|
CElementGen::CElementGen(const TToken<CGenDescription>& gen) : x1c_genDesc(gen), x230_randState(x74_randomSeed) {}
|
||||||
|
|
||||||
CElementGen::CElementGen(const TToken<CGenDescription>& gen,
|
CElementGen::CElementGen(const TToken<CGenDescription>& gen,
|
||||||
EModelOrientationType orientType,
|
EModelOrientationType orientType,
|
||||||
|
@ -54,7 +54,7 @@ CElementGen::CElementGen(const TToken<CGenDescription>& gen,
|
||||||
: x1c_genDesc(gen), x28_orientType(orientType),
|
: x1c_genDesc(gen), x28_orientType(orientType),
|
||||||
x226_enableOPTS((flags & EOptionalSystemFlags::Two) != EOptionalSystemFlags::None), x230_randState(x74_randomSeed)
|
x226_enableOPTS((flags & EOptionalSystemFlags::Two) != EOptionalSystemFlags::None), x230_randState(x74_randomSeed)
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
CIntElement* seedElem = desc->x1c_SEED.get();
|
CIntElement* seedElem = desc->x1c_SEED.get();
|
||||||
if (seedElem)
|
if (seedElem)
|
||||||
|
@ -207,7 +207,7 @@ CElementGen::~CElementGen()
|
||||||
|
|
||||||
void CElementGen::Update(double t)
|
void CElementGen::Update(double t)
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
CIntElement* pswtElem = desc->x10_PSWT.get();
|
CIntElement* pswtElem = desc->x10_PSWT.get();
|
||||||
if (pswtElem && !x225_28_warmedUp)
|
if (pswtElem && !x225_28_warmedUp)
|
||||||
{
|
{
|
||||||
|
@ -228,7 +228,7 @@ void CElementGen::Update(double t)
|
||||||
bool CElementGen::InternalUpdate(double dt)
|
bool CElementGen::InternalUpdate(double dt)
|
||||||
{
|
{
|
||||||
CGlobalRandom gr(x230_randState);
|
CGlobalRandom gr(x230_randState);
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
double dt1 = 1 / 60.0;
|
double dt1 = 1 / 60.0;
|
||||||
if (fabs(dt - 1 / 60.0) >= 1 / 60000.0)
|
if (fabs(dt - 1 / 60.0) >= 1 / 60000.0)
|
||||||
|
@ -326,7 +326,7 @@ void CElementGen::AccumulateBounds(Zeus::CVector3f& pos, float size)
|
||||||
|
|
||||||
void CElementGen::UpdateExistingParticles()
|
void CElementGen::UpdateExistingParticles()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
x208_activeParticleCount = 0;
|
x208_activeParticleCount = 0;
|
||||||
CParticleGlobals::SetEmitterTime(x50_curFrame);
|
CParticleGlobals::SetEmitterTime(x50_curFrame);
|
||||||
|
@ -469,7 +469,7 @@ void CElementGen::UpdateExistingParticles()
|
||||||
|
|
||||||
void CElementGen::CreateNewParticles(int count)
|
void CElementGen::CreateNewParticles(int count)
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
if (!g_StaticListInitialized)
|
if (!g_StaticListInitialized)
|
||||||
Initialize();
|
Initialize();
|
||||||
|
@ -561,7 +561,7 @@ void CElementGen::CreateNewParticles(int count)
|
||||||
|
|
||||||
void CElementGen::UpdatePSTranslationAndOrientation()
|
void CElementGen::UpdatePSTranslationAndOrientation()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
CGlobalRandom gr(x230_randState);
|
CGlobalRandom gr(x230_randState);
|
||||||
if (x214_PSLT < x50_curFrame)
|
if (x214_PSLT < x50_curFrame)
|
||||||
|
@ -626,7 +626,7 @@ CElementGen* CElementGen::ConstructChildParticleSystem(const TToken<CGenDescript
|
||||||
|
|
||||||
void CElementGen::UpdateChildParticleSystems(double dt)
|
void CElementGen::UpdateChildParticleSystems(double dt)
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
CGlobalRandom gr(x230_randState);
|
CGlobalRandom gr(x230_randState);
|
||||||
SChildGeneratorDesc& icts = desc->x8c_ICTS;
|
SChildGeneratorDesc& icts = desc->x8c_ICTS;
|
||||||
|
@ -793,7 +793,7 @@ void CElementGen::UpdateChildParticleSystems(double dt)
|
||||||
|
|
||||||
void CElementGen::UpdateLightParameters()
|
void CElementGen::UpdateLightParameters()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
CColorElement* lclr = desc->x104_LCLR.get();
|
CColorElement* lclr = desc->x104_LCLR.get();
|
||||||
if (lclr)
|
if (lclr)
|
||||||
|
@ -926,7 +926,7 @@ u32 CElementGen::GetSystemCount()
|
||||||
|
|
||||||
void CElementGen::Render()
|
void CElementGen::Render()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
x22c_backupLightActive = CGraphics::g_LightActive;
|
x22c_backupLightActive = CGraphics::g_LightActive;
|
||||||
CGraphics::DisableAllLights();
|
CGraphics::DisableAllLights();
|
||||||
|
@ -959,7 +959,7 @@ void CElementGen::Render()
|
||||||
|
|
||||||
void CElementGen::RenderModels()
|
void CElementGen::RenderModels()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
if (x225_29_modelsUseLights)
|
if (x225_29_modelsUseLights)
|
||||||
CGraphics::SetLightState(x22c_backupLightActive);
|
CGraphics::SetLightState(x22c_backupLightActive);
|
||||||
|
@ -1153,7 +1153,7 @@ void CElementGen::RenderLines()
|
||||||
|
|
||||||
void CElementGen::RenderParticles()
|
void CElementGen::RenderParticles()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
CGlobalRandom gr(x230_randState);
|
CGlobalRandom gr(x230_randState);
|
||||||
|
|
||||||
CUVElement* texr = desc->x54_TEXR.get();
|
CUVElement* texr = desc->x54_TEXR.get();
|
||||||
|
@ -1438,7 +1438,7 @@ void CElementGen::RenderParticles()
|
||||||
|
|
||||||
void CElementGen::RenderParticlesIndirectTexture()
|
void CElementGen::RenderParticlesIndirectTexture()
|
||||||
{
|
{
|
||||||
CGenDescription* desc = x1c_genDesc.CastObj<CGenDescription>();
|
CGenDescription* desc = x1c_genDesc.GetObj();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1585,6 +1585,16 @@ const Zeus::CVector3f& CElementGen::GetTranslation() const
|
||||||
return x7c_translation;
|
return x7c_translation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Zeus::CTransform& CElementGen::GetGlobalOrientation() const
|
||||||
|
{
|
||||||
|
return x1d8_globalOrientation;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CElementGen::GetGlobalTranslation() const
|
||||||
|
{
|
||||||
|
return x88_globalTranslation;
|
||||||
|
}
|
||||||
|
|
||||||
const Zeus::CVector3f& CElementGen::GetGlobalScale() const
|
const Zeus::CVector3f& CElementGen::GetGlobalScale() const
|
||||||
{
|
{
|
||||||
return xa0_globalScale;
|
return xa0_globalScale;
|
||||||
|
@ -1656,6 +1666,11 @@ CLight CElementGen::GetLight() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CElementGen::GetParticleEmission() const
|
||||||
|
{
|
||||||
|
return x68_particleEmission;
|
||||||
|
}
|
||||||
|
|
||||||
void CElementGen::DestroyParticles()
|
void CElementGen::DestroyParticles()
|
||||||
{
|
{
|
||||||
for (CParticleListItem& p : x2c_particleLists)
|
for (CParticleListItem& p : x2c_particleLists)
|
||||||
|
@ -1674,9 +1689,4 @@ void CElementGen::DestroyParticles()
|
||||||
ch->DestroyParticles();
|
ch->DestroyParticles();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CElementGen::AddModifier(CWarp* mod)
|
|
||||||
{
|
|
||||||
x8_modifierList.push_back(mod);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include "CLight.hpp"
|
#include "CLight.hpp"
|
||||||
#include "CGraphics.hpp"
|
#include "CGraphics.hpp"
|
||||||
#include "CRandom16.hpp"
|
#include "CRandom16.hpp"
|
||||||
#include "CWarp.hpp"
|
#include "CParticleGen.hpp"
|
||||||
|
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
|
@ -21,7 +21,7 @@ class CGenDescription;
|
||||||
class CParticleSwoosh;
|
class CParticleSwoosh;
|
||||||
class CParticleElectric;
|
class CParticleElectric;
|
||||||
|
|
||||||
class CElementGen
|
class CElementGen : public CParticleGen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum class EModelOrientationType
|
enum class EModelOrientationType
|
||||||
|
@ -71,9 +71,9 @@ public:
|
||||||
Zeus::CColor x34_color = {0.f, 0.f, 0.f, 1.f};
|
Zeus::CColor x34_color = {0.f, 0.f, 0.f, 1.f};
|
||||||
};
|
};
|
||||||
protected:
|
protected:
|
||||||
CElementGen(const TToken<IGenDescription>& gen);
|
CElementGen(const TToken<CGenDescription>& gen);
|
||||||
std::list<CWarp*> x8_modifierList;
|
|
||||||
TLockedToken<IGenDescription> x1c_genDesc;
|
TLockedToken<CGenDescription> x1c_genDesc;
|
||||||
EModelOrientationType x28_orientType;
|
EModelOrientationType x28_orientType;
|
||||||
std::vector<CParticleListItem> x2c_particleLists;
|
std::vector<CParticleListItem> x2c_particleLists;
|
||||||
std::vector<Zeus::CMatrix3f> x3c_parentMatrices;
|
std::vector<Zeus::CMatrix3f> x3c_parentMatrices;
|
||||||
|
@ -153,14 +153,14 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CElementGen(const TToken<CGenDescription>& gen, EModelOrientationType orientType, EOptionalSystemFlags flags);
|
CElementGen(const TToken<CGenDescription>& gen, EModelOrientationType orientType, EOptionalSystemFlags flags);
|
||||||
virtual ~CElementGen();
|
~CElementGen();
|
||||||
|
|
||||||
virtual const Zeus::CVector3f& GetGlobalTranslation() const
|
static s32 g_FreeIndex;
|
||||||
{ return x88_globalTranslation; }
|
static bool g_StaticListInitialized;
|
||||||
virtual const Zeus::CTransform& GetGlobalOrientation() const
|
static int g_ParticleAliveCount;
|
||||||
{ return x1d8_globalOrientation; }
|
static int g_ParticleSystemAliveCount;
|
||||||
virtual bool GetParticleEmission() const
|
static bool g_MoveRedToAlphaBuffer;
|
||||||
{ return x68_particleEmission; }
|
static void Initialize();
|
||||||
|
|
||||||
void SetGeneratorRateScalar(float scalar)
|
void SetGeneratorRateScalar(float scalar)
|
||||||
{
|
{
|
||||||
|
@ -176,13 +176,6 @@ public:
|
||||||
child->SetGeneratorRateScalar(x78_generatorRate);
|
child->SetGeneratorRateScalar(x78_generatorRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
static s32 g_FreeIndex;
|
|
||||||
static bool g_StaticListInitialized;
|
|
||||||
static int g_ParticleAliveCount;
|
|
||||||
static int g_ParticleSystemAliveCount;
|
|
||||||
static bool g_MoveRedToAlphaBuffer;
|
|
||||||
static void Initialize();
|
|
||||||
|
|
||||||
void UpdateExistingParticles();
|
void UpdateExistingParticles();
|
||||||
void CreateNewParticles(int);
|
void CreateNewParticles(int);
|
||||||
void UpdatePSTranslationAndOrientation();
|
void UpdatePSTranslationAndOrientation();
|
||||||
|
@ -194,33 +187,35 @@ public:
|
||||||
u32 GetParticleCountAllInternal() const;
|
u32 GetParticleCountAllInternal() const;
|
||||||
u32 GetParticleCountAll() const {return x20c_recursiveParticleCount;}
|
u32 GetParticleCountAll() const {return x20c_recursiveParticleCount;}
|
||||||
|
|
||||||
|
bool InternalUpdate(double);
|
||||||
void RenderModels();
|
void RenderModels();
|
||||||
void RenderLines();
|
void RenderLines();
|
||||||
void RenderParticles();
|
void RenderParticles();
|
||||||
void RenderParticlesIndirectTexture();
|
void RenderParticlesIndirectTexture();
|
||||||
|
|
||||||
virtual void Update(double);
|
void Update(double);
|
||||||
bool InternalUpdate(double);
|
void Render();
|
||||||
virtual void Render();
|
void SetOrientation(const Zeus::CTransform&);
|
||||||
virtual void SetOrientation(const Zeus::CTransform&);
|
void SetTranslation(const Zeus::CVector3f&);
|
||||||
virtual void SetTranslation(const Zeus::CVector3f&);
|
void SetGlobalOrientation(const Zeus::CTransform&);
|
||||||
virtual void SetGlobalOrientation(const Zeus::CTransform&);
|
void SetGlobalTranslation(const Zeus::CVector3f&);
|
||||||
virtual void SetGlobalTranslation(const Zeus::CVector3f&);
|
void SetGlobalScale(const Zeus::CVector3f&);
|
||||||
virtual void SetGlobalScale(const Zeus::CVector3f&);
|
void SetLocalScale(const Zeus::CVector3f&);
|
||||||
virtual void SetLocalScale(const Zeus::CVector3f&);
|
void SetParticleEmission(bool);
|
||||||
virtual void SetParticleEmission(bool);
|
void SetModulationColor(const Zeus::CColor&);
|
||||||
virtual void SetModulationColor(const Zeus::CColor&);
|
const Zeus::CTransform& GetOrientation() const;
|
||||||
virtual const Zeus::CTransform& GetOrientation() const;
|
const Zeus::CVector3f& GetTranslation() const;
|
||||||
virtual const Zeus::CVector3f& GetTranslation() const;
|
const Zeus::CTransform& GetGlobalOrientation() const;
|
||||||
virtual const Zeus::CVector3f& GetGlobalScale() const;
|
const Zeus::CVector3f& GetGlobalTranslation() const;
|
||||||
virtual const Zeus::CColor& GetModulationColor() const;
|
const Zeus::CVector3f& GetGlobalScale() const;
|
||||||
virtual bool IsSystemDeletable() const;
|
const Zeus::CColor& GetModulationColor() const;
|
||||||
virtual std::pair<Zeus::CAABox, bool> GetBounds() const;
|
bool IsSystemDeletable() const;
|
||||||
virtual u32 GetParticleCount() const;
|
std::pair<Zeus::CAABox, bool> GetBounds() const;
|
||||||
virtual bool SystemHasLight() const;
|
u32 GetParticleCount() const;
|
||||||
virtual CLight GetLight() const;
|
bool SystemHasLight() const;
|
||||||
virtual void DestroyParticles();
|
CLight GetLight() const;
|
||||||
virtual void AddModifier(CWarp*);
|
bool GetParticleEmission() const;
|
||||||
|
void DestroyParticles();
|
||||||
};
|
};
|
||||||
ENABLE_BITWISE_ENUM(CElementGen::EOptionalSystemFlags)
|
ENABLE_BITWISE_ENUM(CElementGen::EOptionalSystemFlags)
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
|
|
||||||
class CGenDescription : public IGenDescription
|
class CGenDescription
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
std::unique_ptr<CVectorElement> x0_PSIV;
|
std::unique_ptr<CVectorElement> x0_PSIV;
|
||||||
|
|
|
@ -19,6 +19,7 @@ add_library(RuntimeCommonParticle
|
||||||
CParticleSwoosh.hpp CParticleSwoosh.cpp
|
CParticleSwoosh.hpp CParticleSwoosh.cpp
|
||||||
CParticleElectricDataFactory.hpp CParticleElectricDataFactory.cpp
|
CParticleElectricDataFactory.hpp CParticleElectricDataFactory.cpp
|
||||||
CParticleElectric.hpp CParticleElectric.cpp
|
CParticleElectric.hpp CParticleElectric.cpp
|
||||||
|
CParticleGen.hpp CParticleGen.cpp
|
||||||
CDecalManager.hpp CDecalManager.cpp
|
CDecalManager.hpp CDecalManager.cpp
|
||||||
CSpawnSystemKeyframeData.hpp CSpawnSystemKeyframeData.cpp
|
CSpawnSystemKeyframeData.hpp CSpawnSystemKeyframeData.cpp
|
||||||
CWarp.hpp CWarp.cpp
|
CWarp.hpp CWarp.cpp
|
||||||
|
|
|
@ -22,8 +22,6 @@ class CVectorElement;
|
||||||
class CRealElement;
|
class CRealElement;
|
||||||
class CIntElement;
|
class CIntElement;
|
||||||
|
|
||||||
class IGenDescription {};
|
|
||||||
|
|
||||||
struct SParticleModel
|
struct SParticleModel
|
||||||
{
|
{
|
||||||
TLockedToken<CModel> m_model;
|
TLockedToken<CModel> m_model;
|
||||||
|
|
|
@ -4,7 +4,98 @@ namespace Retro
|
||||||
{
|
{
|
||||||
|
|
||||||
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& desc)
|
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& desc)
|
||||||
: CElementGen(desc)
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::Update(double)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::Render()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetOrientation(const Zeus::CTransform&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetTranslation(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetGlobalOrientation(const Zeus::CTransform&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetGlobalTranslation(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetGlobalScale(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetLocalScale(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetParticleEmission(bool)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::SetModulationColor(const Zeus::CColor&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CTransform& CParticleElectric::GetOrientation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleElectric::GetTranslation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CTransform& CParticleElectric::GetGlobalOrientation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleElectric::GetGlobalTranslation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleElectric::GetGlobalScale() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CColor& CParticleElectric::GetModulationColor() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleElectric::IsSystemDeletable() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<Zeus::CAABox, bool> CParticleElectric::GetBounds() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 CParticleElectric::GetParticleCount() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleElectric::SystemHasLight() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CLight CParticleElectric::GetLight() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleElectric::GetParticleEmission() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleElectric::DestroyParticles()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,41 @@
|
||||||
#ifndef __RETRO_CPARTICLEELECTRIC_HPP__
|
#ifndef __RETRO_CPARTICLEELECTRIC_HPP__
|
||||||
#define __RETRO_CPARTICLEELECTRIC_HPP__
|
#define __RETRO_CPARTICLEELECTRIC_HPP__
|
||||||
|
|
||||||
#include "CElementGen.hpp"
|
#include "CParticleGen.hpp"
|
||||||
|
#include "CToken.hpp"
|
||||||
|
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
class CElectricDescription;
|
class CElectricDescription;
|
||||||
|
|
||||||
class CParticleElectric : public CElementGen
|
class CParticleElectric : public CParticleGen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CParticleElectric(const TToken<CElectricDescription>& desc);
|
CParticleElectric(const TToken<CElectricDescription>& desc);
|
||||||
|
|
||||||
|
void Update(double);
|
||||||
|
void Render();
|
||||||
|
void SetOrientation(const Zeus::CTransform&);
|
||||||
|
void SetTranslation(const Zeus::CVector3f&);
|
||||||
|
void SetGlobalOrientation(const Zeus::CTransform&);
|
||||||
|
void SetGlobalTranslation(const Zeus::CVector3f&);
|
||||||
|
void SetGlobalScale(const Zeus::CVector3f&);
|
||||||
|
void SetLocalScale(const Zeus::CVector3f&);
|
||||||
|
void SetParticleEmission(bool);
|
||||||
|
void SetModulationColor(const Zeus::CColor&);
|
||||||
|
const Zeus::CTransform& GetOrientation() const;
|
||||||
|
const Zeus::CVector3f& GetTranslation() const;
|
||||||
|
const Zeus::CTransform& GetGlobalOrientation() const;
|
||||||
|
const Zeus::CVector3f& GetGlobalTranslation() const;
|
||||||
|
const Zeus::CVector3f& GetGlobalScale() const;
|
||||||
|
const Zeus::CColor& GetModulationColor() const;
|
||||||
|
bool IsSystemDeletable() const;
|
||||||
|
std::pair<Zeus::CAABox, bool> GetBounds() const;
|
||||||
|
u32 GetParticleCount() const;
|
||||||
|
bool SystemHasLight() const;
|
||||||
|
CLight GetLight() const;
|
||||||
|
bool GetParticleEmission() const;
|
||||||
|
void DestroyParticles();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#include "CParticleGen.hpp"
|
||||||
|
|
||||||
|
namespace Retro
|
||||||
|
{
|
||||||
|
|
||||||
|
void CParticleGen::AddModifier(CWarp* mod)
|
||||||
|
{
|
||||||
|
x8_modifierList.push_back(mod);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
#ifndef __RETRO_CPARTICLEGEN_HPP__
|
||||||
|
#define __RETRO_CPARTICLEGEN_HPP__
|
||||||
|
|
||||||
|
#include "RetroTypes.hpp"
|
||||||
|
#include "CLight.hpp"
|
||||||
|
#include "CWarp.hpp"
|
||||||
|
#include "CColor.hpp"
|
||||||
|
#include "CVector3f.hpp"
|
||||||
|
#include "CTransform.hpp"
|
||||||
|
#include "CAABox.hpp"
|
||||||
|
#include <list>
|
||||||
|
|
||||||
|
namespace Retro
|
||||||
|
{
|
||||||
|
|
||||||
|
class CParticleGen
|
||||||
|
{
|
||||||
|
std::list<CWarp*> x8_modifierList;
|
||||||
|
public:
|
||||||
|
virtual ~CParticleGen() = default;
|
||||||
|
|
||||||
|
virtual void Update(double)=0;
|
||||||
|
virtual void Render()=0;
|
||||||
|
virtual void SetOrientation(const Zeus::CTransform&)=0;
|
||||||
|
virtual void SetTranslation(const Zeus::CVector3f&)=0;
|
||||||
|
virtual void SetGlobalOrientation(const Zeus::CTransform&)=0;
|
||||||
|
virtual void SetGlobalTranslation(const Zeus::CVector3f&)=0;
|
||||||
|
virtual void SetGlobalScale(const Zeus::CVector3f&)=0;
|
||||||
|
virtual void SetLocalScale(const Zeus::CVector3f&)=0;
|
||||||
|
virtual void SetParticleEmission(bool)=0;
|
||||||
|
virtual void SetModulationColor(const Zeus::CColor&)=0;
|
||||||
|
virtual const Zeus::CTransform& GetOrientation() const=0;
|
||||||
|
virtual const Zeus::CVector3f& GetTranslation() const=0;
|
||||||
|
virtual const Zeus::CTransform& GetGlobalOrientation() const=0;
|
||||||
|
virtual const Zeus::CVector3f& GetGlobalTranslation() const=0;
|
||||||
|
virtual const Zeus::CVector3f& GetGlobalScale() const=0;
|
||||||
|
virtual const Zeus::CColor& GetModulationColor() const=0;
|
||||||
|
virtual bool IsSystemDeletable() const=0;
|
||||||
|
virtual std::pair<Zeus::CAABox, bool> GetBounds() const=0;
|
||||||
|
virtual u32 GetParticleCount() const=0;
|
||||||
|
virtual bool SystemHasLight() const=0;
|
||||||
|
virtual CLight GetLight() const=0;
|
||||||
|
virtual bool GetParticleEmission() const=0;
|
||||||
|
virtual void DestroyParticles()=0;
|
||||||
|
|
||||||
|
virtual void AddModifier(CWarp* mod);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // __RETRO_CPARTICLEGEN_HPP__
|
|
@ -4,7 +4,98 @@ namespace Retro
|
||||||
{
|
{
|
||||||
|
|
||||||
CParticleSwoosh::CParticleSwoosh(const TToken<CSwooshDescription>& desc, int)
|
CParticleSwoosh::CParticleSwoosh(const TToken<CSwooshDescription>& desc, int)
|
||||||
: CElementGen(desc)
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::Update(double)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::Render()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetOrientation(const Zeus::CTransform&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetTranslation(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetGlobalOrientation(const Zeus::CTransform&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetGlobalTranslation(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetGlobalScale(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetLocalScale(const Zeus::CVector3f&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetParticleEmission(bool)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::SetModulationColor(const Zeus::CColor&)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CTransform& CParticleSwoosh::GetOrientation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleSwoosh::GetTranslation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CTransform& CParticleSwoosh::GetGlobalOrientation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleSwoosh::GetGlobalTranslation() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CVector3f& CParticleSwoosh::GetGlobalScale() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const Zeus::CColor& CParticleSwoosh::GetModulationColor() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleSwoosh::IsSystemDeletable() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<Zeus::CAABox, bool> CParticleSwoosh::GetBounds() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 CParticleSwoosh::GetParticleCount() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleSwoosh::SystemHasLight() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CLight CParticleSwoosh::GetLight() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CParticleSwoosh::GetParticleEmission() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CParticleSwoosh::DestroyParticles()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,41 @@
|
||||||
#ifndef __RETRO_CPARTICLESWOOSH_HPP__
|
#ifndef __RETRO_CPARTICLESWOOSH_HPP__
|
||||||
#define __RETRO_CPARTICLESWOOSH_HPP__
|
#define __RETRO_CPARTICLESWOOSH_HPP__
|
||||||
|
|
||||||
#include "CElementGen.hpp"
|
#include "CParticleGen.hpp"
|
||||||
#include "CToken.hpp"
|
#include "CToken.hpp"
|
||||||
|
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
class CSwooshDescription;
|
class CSwooshDescription;
|
||||||
|
|
||||||
class CParticleSwoosh : public CElementGen
|
class CParticleSwoosh : public CParticleGen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CParticleSwoosh(const TToken<CSwooshDescription>& desc, int);
|
CParticleSwoosh(const TToken<CSwooshDescription>& desc, int);
|
||||||
|
|
||||||
|
void Update(double);
|
||||||
|
void Render();
|
||||||
|
void SetOrientation(const Zeus::CTransform&);
|
||||||
|
void SetTranslation(const Zeus::CVector3f&);
|
||||||
|
void SetGlobalOrientation(const Zeus::CTransform&);
|
||||||
|
void SetGlobalTranslation(const Zeus::CVector3f&);
|
||||||
|
void SetGlobalScale(const Zeus::CVector3f&);
|
||||||
|
void SetLocalScale(const Zeus::CVector3f&);
|
||||||
|
void SetParticleEmission(bool);
|
||||||
|
void SetModulationColor(const Zeus::CColor&);
|
||||||
|
const Zeus::CTransform& GetOrientation() const;
|
||||||
|
const Zeus::CVector3f& GetTranslation() const;
|
||||||
|
const Zeus::CTransform& GetGlobalOrientation() const;
|
||||||
|
const Zeus::CVector3f& GetGlobalTranslation() const;
|
||||||
|
const Zeus::CVector3f& GetGlobalScale() const;
|
||||||
|
const Zeus::CColor& GetModulationColor() const;
|
||||||
|
bool IsSystemDeletable() const;
|
||||||
|
std::pair<Zeus::CAABox, bool> GetBounds() const;
|
||||||
|
u32 GetParticleCount() const;
|
||||||
|
bool SystemHasLight() const;
|
||||||
|
CLight GetLight() const;
|
||||||
|
bool GetParticleEmission() const;
|
||||||
|
void DestroyParticles();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
namespace Retro
|
namespace Retro
|
||||||
{
|
{
|
||||||
class CSwooshDescription : public IGenDescription
|
class CSwooshDescription
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue