2016-04-20 21:44:18 +00:00
|
|
|
#ifndef __URDE_CSCRIPEFFECT_HPP__
|
|
|
|
#define __URDE_CSCRIPEFFECT_HPP__
|
|
|
|
|
|
|
|
#include "CActor.hpp"
|
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
2018-05-14 03:38:36 +00:00
|
|
|
class CElementGen;
|
|
|
|
class CParticleElectric;
|
2016-04-20 21:44:18 +00:00
|
|
|
class CScriptEffect : public CActor
|
|
|
|
{
|
2017-03-24 05:30:16 +00:00
|
|
|
static u32 g_NumParticlesUpdating;
|
|
|
|
static u32 g_NumParticlesRendered;
|
2018-05-14 03:38:36 +00:00
|
|
|
TLockedToken<CElectricDescription> xe8_electricToken;
|
|
|
|
std::unique_ptr<CParticleElectric> xf4_electric;
|
|
|
|
TLockedToken<CGenDescription> xf8_particleSystemToken;
|
|
|
|
std::unique_ptr<CElementGen> x104_particleSystem;
|
|
|
|
TUniqueId x108_lightId = kInvalidUniqueId;
|
|
|
|
CAssetId x10c_partId;
|
|
|
|
bool x110_24_ : 1;
|
|
|
|
bool x110_25_ : 1;
|
|
|
|
bool x110_26_ : 1;
|
|
|
|
bool x110_27_ : 1;
|
|
|
|
bool x110_28_ : 1;
|
|
|
|
bool x110_29_ : 1;
|
|
|
|
bool x110_30_ : 1;
|
|
|
|
bool x110_31_ : 1;
|
|
|
|
bool x111_24_ : 1;
|
|
|
|
bool x111_25_ : 1;
|
|
|
|
bool x111_26_canRender : 1;
|
|
|
|
float x114_;
|
|
|
|
float x118_;
|
|
|
|
float x11c_;
|
|
|
|
float x120_;
|
|
|
|
float x124_;
|
|
|
|
float x128_;
|
|
|
|
float x12c_;
|
|
|
|
float x130_;
|
|
|
|
float x134_;
|
|
|
|
std::unique_ptr<CActorLights> x138_actorLights;
|
|
|
|
TUniqueId x13c_triggerId = kInvalidUniqueId;
|
|
|
|
float x140_ = 0.f;
|
2016-04-20 21:44:18 +00:00
|
|
|
public:
|
2017-11-13 06:19:18 +00:00
|
|
|
CScriptEffect(TUniqueId, std::string_view name, const CEntityInfo& info,
|
2016-04-20 21:44:18 +00:00
|
|
|
const zeus::CTransform& xf, const zeus::CVector3f& scale,
|
2017-08-13 05:26:14 +00:00
|
|
|
CAssetId partId, CAssetId elscId, bool, bool, bool, bool active,
|
2016-04-20 21:44:18 +00:00
|
|
|
bool, float, float, float, float, bool, float, float, float,
|
|
|
|
bool, bool, bool, const CLightParameters& lParms, bool);
|
2017-01-15 03:07:01 +00:00
|
|
|
|
|
|
|
void Accept(IVisitor& visitor);
|
2018-05-14 03:38:36 +00:00
|
|
|
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
|
|
|
void PreRender(CStateManager&, const zeus::CFrustum&);
|
|
|
|
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const;
|
|
|
|
void Render(const CStateManager&) const;
|
|
|
|
void Think(float, CStateManager&);
|
|
|
|
bool CanRenderUnsorted(const CStateManager&) const { return false; }
|
|
|
|
void CalculateRenderBounds();
|
|
|
|
zeus::CAABox GetSortingBounds(const CStateManager&) const;
|
|
|
|
bool AreBothSystemsDeleteable();
|
2017-03-24 05:30:16 +00:00
|
|
|
static void ResetParticleCounts()
|
|
|
|
{
|
|
|
|
g_NumParticlesUpdating = 0;
|
|
|
|
g_NumParticlesRendered = 0;
|
|
|
|
}
|
2016-04-20 21:44:18 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __URDE_CSCRIPEFFECT_HPP__
|