prime/include/Kyoto/Particles/CIntElement.hpp

209 lines
4.7 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);
2023-02-06 17:01:01 +00:00
~CIEConstant() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEDeath : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEDeath(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIEDeath() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEAdd : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEAdd(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIEAdd() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEMultiply : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEMultiply(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIEMultiply() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEModulo : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEModulo(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIEModulo() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIERandom : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIERandom(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIERandom() override;
bool GetValue(int frame, int& valOut) const override;
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);
2023-02-06 17:01:01 +00:00
~CIESampleAndHold() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEImpulse : public CIntElement {
CIntElement* x4_a;
public:
CIEImpulse(CIntElement* a);
2023-02-06 17:01:01 +00:00
~CIEImpulse() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIETimescale : public CIntElement {
CRealElement* x4_a;
public:
CIETimescale(CRealElement* a);
~CIETimescale();
2023-02-06 17:01:01 +00:00
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEInitialRandom : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIEInitialRandom(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIEInitialRandom() override;
bool GetValue(int frame, int& valOut) const override;
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);
2023-02-06 17:01:01 +00:00
~CIETimeChain() override;
bool GetValue(int frame, int& valOut) const override;
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);
2023-02-06 17:01:01 +00:00
~CIEClamp() override;
bool GetValue(int frame, int& valOut) const override;
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);
2023-02-06 17:01:01 +00:00
~CIEPulse() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIELifetimePercent : public CIntElement {
CIntElement* x4_percentVal;
public:
CIELifetimePercent(CIntElement* a);
2023-02-06 17:01:01 +00:00
~CIELifetimePercent() override;
bool GetValue(int frame, int& valOut) const override;
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);
2023-02-06 17:01:01 +00:00
~CIEKeyframeEmitter() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIESubtract : public CIntElement {
CIntElement* x4_a;
CIntElement* x8_b;
public:
CIESubtract(CIntElement* a, CIntElement* b);
2023-02-06 17:01:01 +00:00
~CIESubtract() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIERealToInt : public CIntElement {
CRealElement* x4_a;
CRealElement* x8_b;
public:
CIERealToInt(CRealElement* a, CRealElement* b);
2023-02-06 17:01:01 +00:00
~CIERealToInt() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEGetCumulativeParticleCount : public CIntElement {
public:
2023-02-06 17:01:01 +00:00
~CIEGetCumulativeParticleCount() override {}
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEGetActiveParticleCount : public CIntElement {
public:
2023-02-06 17:01:01 +00:00
~CIEGetActiveParticleCount() override {}
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
class CIEGetEmitterTime : public CIntElement {
public:
2023-02-06 17:01:01 +00:00
~CIEGetEmitterTime() override;
bool GetValue(int frame, int& valOut) const override;
2022-10-09 16:34:58 +00:00
};
#endif // _CINTELEMENT