diff --git a/Runtime/Particle/CFlameWarp.cpp b/Runtime/Particle/CFlameWarp.cpp new file mode 100644 index 000000000..12c39312a --- /dev/null +++ b/Runtime/Particle/CFlameWarp.cpp @@ -0,0 +1,6 @@ +#include "CFlameWarp.hpp" + +namespace pshag +{ + +} diff --git a/Runtime/Particle/CFlameWarp.hpp b/Runtime/Particle/CFlameWarp.hpp new file mode 100644 index 000000000..50ed33c11 --- /dev/null +++ b/Runtime/Particle/CFlameWarp.hpp @@ -0,0 +1,39 @@ +#ifndef __PSHAG_CFLAMEWARP_HPP__ +#define __PSHAG_CFLAMEWARP_HPP__ + +#include "CWarp.hpp" + +namespace pshag +{ +class CFlameWarp : public CWarp +{ + Zeus::CVector3f x4; + Zeus::CVector3f xc; + float x1c; + float x20; + int x24; + bool x28_activated : 1; + +public: + CFlameWarp(float a, const Zeus::CVector3f& b) + : x4(b), x1c(0.0), x20(a * a), x24(0) + { + x28_activated = false; + } + + ~CFlameWarp() {} + + bool UpdateWarp() { return x28_activated; } + void ModifyParticles(int, int, int *, + Zeus::CVector3f*, + Zeus::CVector3f*, + Zeus::CVector3f*, + Zeus::CColor*, + float*, float*) {} + void Activate(bool) { x28_activated = true; } + bool IsActivated() { return x28_activated; } + FourCC Get4CharID() { return FOURCC('FWRP'); } +}; +} + +#endif // __PSHAG_CFLAMEWARP_HPP__ diff --git a/Runtime/Particle/CMakeLists.txt b/Runtime/Particle/CMakeLists.txt index 6388e36ce..746028a01 100644 --- a/Runtime/Particle/CMakeLists.txt +++ b/Runtime/Particle/CMakeLists.txt @@ -31,6 +31,7 @@ add_library(RuntimeCommonParticle CDecalManager.hpp CDecalManager.cpp CSpawnSystemKeyframeData.hpp CSpawnSystemKeyframeData.cpp CWarp.hpp CWarp.cpp + CFlameWarp.hpp CFlameWarp.cpp CParticleGlobals.hpp CParticleGlobals.cpp CElementGenShaders.hpp CElementGenShadersGLSL.cpp diff --git a/Runtime/Particle/CWarp.hpp b/Runtime/Particle/CWarp.hpp index b616972db..5ed3c25d4 100644 --- a/Runtime/Particle/CWarp.hpp +++ b/Runtime/Particle/CWarp.hpp @@ -1,11 +1,27 @@ #ifndef __PSHAG_CWARP_HPP__ #define __PSHAG_CWARP_HPP__ +#include +#include +#include "RetroTypes.hpp" + namespace pshag { class CWarp { +public: + virtual ~CWarp() {} + virtual bool UpdateWarp()=0; + virtual void ModifyParticles(int, int, int*, + Zeus::CVector3f*, + Zeus::CVector3f*, + Zeus::CVector3f*, + Zeus::CColor*, + float*, float*)=0; + virtual void Activate(bool)=0; + virtual bool IsActivated()=0; + virtual FourCC Get4CharID()=0; }; }