2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-05-14 04:31:22 +00:00
metaforce/Runtime/Particle/CRealElement.hpp
2016-02-04 22:34:14 -10:00

246 lines
4.8 KiB
C++

#ifndef __RETRO_CREALELEMENT_HPP__
#define __RETRO_CREALELEMENT_HPP__
#include "IElement.hpp"
namespace Retro
{
class CRELifetimeTween : public CRealElement
{
std::unique_ptr<CRealElement> x4_a;
std::unique_ptr<CRealElement> x8_b;
public:
CRELifetimeTween(CRealElement* a, CRealElement* b)
: x4_a(a), x8_b(b) {}
bool GetValue(int frame, float& valOut) const;
};
class CREConstant : public CRealElement
{
float x4_val;
public:
CREConstant(float val) : x4_val(val) {}
bool GetValue(int frame, float& valOut) const;
bool IsConstant() const {return true;}
};
class CRETimeChain : public CRealElement
{
std::unique_ptr<CRealElement> x4_a;
std::unique_ptr<CRealElement> x8_b;
std::unique_ptr<CIntElement> xc_c;
public:
CRETimeChain(CRealElement* a, CRealElement* b, CIntElement* c)
: x4_a(a), x8_b(b), xc_c(c) {}
bool GetValue(int frame, float& valOut) const;
};
class CREAdd : public CRealElement
{
std::unique_ptr<CRealElement> x4_a;
std::unique_ptr<CRealElement> x8_b;
public:
CREAdd(CRealElement* a, CRealElement* b)
: x4_a(a), x8_b(b) {}
bool GetValue(int frame, float& valOut) const;
};
class CREClamp : public CRealElement
{
std::unique_ptr<CRealElement> x4_a;
std::unique_ptr<CRealElement> x8_b;
std::unique_ptr<CRealElement> xc_c;
public:
CREClamp(CRealElement* a, CRealElement* b, CRealElement* c)
: x4_a(a), x8_b(b), xc_c(c) {}
bool GetValue(int frame, float& valOut) const;
};
class CREKeyframeEmitter : public CRealElement
{
u32 x4_percent;
u32 x8_a;
bool xc_b;
bool xd_c;
u32 x10_d;
u32 x14_e;
std::vector<float> x18_keys;
public:
CREKeyframeEmitter(CInputStream& in);
bool GetValue(int frame, float& valOut) const;
};
class CREInitialRandom : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
bool IsConstant() const {return true;}
};
class CRERandom : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREMultiply : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREPulse : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRETimeScale : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRELifetimePercent : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRESineWave : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREISWT : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRECompareLessThan : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRECompareEquals : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam1 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam2 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam3 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam4 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam5 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam6 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam7 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREParticleAccessParam8 : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREPSLL : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREPRLW : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREPSOF : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRESubtract : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREVectorMagnitude : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREVectorXToReal : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREVectorYToReal : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREVectorZToReal : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CRECEXT : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
class CREITRL : public CRealElement
{
public:
bool GetValue(int frame, float& valOut) const;
};
}
#endif // __RETRO_CREALELEMENT_HPP__