prime/include/Kyoto/Particles/CIntElement.hpp

209 lines
4.3 KiB
C++
Raw Normal View History

2022-10-09 16:34:58 +00:00
#ifndef _CINTELEMENT
#define _CINTELEMENT
#include "types.h"
#include "Kyoto/Particles/IElement.hpp"
#include "rstl/vector.hpp"
class CInputStream;
class CIEConstant : public CIntElement {
int x4_val;
public:
CIEConstant(int val);
~CIEConstant();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEDeath : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEDeath(CIntElement* a, CIntElement* b);
~CIEDeath();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEAdd : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEAdd(CIntElement* a, CIntElement* b);
~CIEAdd();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEMultiply : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEMultiply(CIntElement* a, CIntElement* b);
~CIEMultiply();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEModulo : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEModulo(CIntElement* a, CIntElement* b);
~CIEModulo();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIERandom : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIERandom(CIntElement* a, CIntElement* b);
~CIERandom();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIESampleAndHold : public CIntElement {
CIntElement* x4_sampleSource;
mutable int x8_nextSampleFrame;
CIntElement* xc_waitFramesMin;
CIntElement* x10_waitFramesMax;
mutable int x14_holdVal;
public:
CIESampleAndHold(CIntElement* a, CIntElement* b, CIntElement* c);
~CIESampleAndHold();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEImpulse : public CIntElement {
CIntElement* x4_a;
public:
CIEImpulse(CIntElement* a);
~CIEImpulse();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIETimescale : public CIntElement {
CRealElement* x4_a;
public:
CIETimescale(CRealElement* a);
~CIETimescale();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEInitialRandom : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEInitialRandom(CIntElement* a, CIntElement* b);
~CIEInitialRandom();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIETimeChain : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
CIntElement* xc_swFrame;
public:
CIETimeChain(CIntElement* a, CIntElement* b, CIntElement* c);
~CIETimeChain();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEClamp : public CIntElement {
CIntElement* x4_min;
CIntElement* x8_max;
CIntElement* xc_val;
public:
CIEClamp(CIntElement* a, CIntElement* b, CIntElement* c);
~CIEClamp();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEPulse : public CIntElement {
CIntElement* x4_aDuration;
CIntElement* x8_bDuration;
CIntElement* xc_aVal;
CIntElement* x10_bVal;
public:
CIEPulse(CIntElement* a, CIntElement* b, CIntElement* c, CIntElement* d);
~CIEPulse();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIELifetimePercent : public CIntElement {
CIntElement* x4_percentVal;
public:
CIELifetimePercent(CIntElement* a);
~CIELifetimePercent();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEKeyframeEmitter : public CIntElement {
int x4_percent;
int x8_unk1;
bool xc_loop;
bool xd_unk2;
int x10_loopEnd;
int x14_loopStart;
rstl::vector< int > x18_keys;
public:
CIEKeyframeEmitter(CInputStream& in);
~CIEKeyframeEmitter();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIESubtract : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIESubtract(CIntElement* a, CIntElement* b);
~CIESubtract();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIERealToInt : public CIntElement {
CRealElement* x4_a;
CRealElement* x8_b;
public:
CIERealToInt(CRealElement* a, CRealElement* b);
~CIERealToInt();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEGetCumulativeParticleCount : public CIntElement {
public:
~CIEGetCumulativeParticleCount() {}
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEGetActiveParticleCount : public CIntElement {
public:
~CIEGetActiveParticleCount() {}
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
class CIEGetEmitterTime : public CIntElement {
public:
~CIEGetEmitterTime();
bool GetValue(int frame, int& valOut) const;
2022-10-09 16:34:58 +00:00
};
#endif // _CINTELEMENT