prime/include/Kyoto/Particles/CColorElement.hpp

98 lines
2.4 KiB
C++
Raw Normal View History

2022-10-18 23:13:51 +00:00
#ifndef _CCOLORELEMENT
#define _CCOLORELEMENT
#include "types.h"
#include "Kyoto/Graphics/CColor.hpp"
#include "Kyoto/Particles/IElement.hpp"
class CCEConstant : public CColorElement {
CRealElement* x4_r;
CRealElement* x8_g;
CRealElement* xc_b;
CRealElement* x10_a;
public:
CCEConstant(CRealElement* r, CRealElement* g, CRealElement* b, CRealElement* a);
~CCEConstant() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCEFastConstant : public CColorElement {
CColor x4_val;
public:
CCEFastConstant(float r, float g, float b, float a);
~CCEFastConstant() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCEFade : public CColorElement {
CColorElement* x4_a;
CColorElement* x8_b;
CRealElement* xc_endFrame;
public:
CCEFade(CColorElement* a, CColorElement* b, CRealElement* end);
~CCEFade() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCEFadeEnd : public CColorElement {
CColorElement* x4_a;
CColorElement* x8_b;
CRealElement* xc_startFrame;
CRealElement* x10_endFrame;
public:
CCEFadeEnd(CColorElement* a, CColorElement* b, CRealElement* start, CRealElement* end);
~CCEFadeEnd() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCETimeChain : public CColorElement {
CColorElement* x4_a;
CColorElement* x8_b;
CIntElement* xc_swFrame;
public:
CCETimeChain(CColorElement* a, CColorElement* b, CIntElement* c);
~CCETimeChain() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCEPulse : public CColorElement {
CIntElement* x4_aDuration;
CIntElement* x8_bDuration;
CColorElement* xc_aVal;
CColorElement* x10_bVal;
public:
CCEPulse(CIntElement* a, CIntElement* b, CColorElement* c, CColorElement* d);
~CCEPulse() override;
bool GetValue(int frame, CColor& colorOut) const override;
};
class CCEKeyframeEmitter : public CColorElement {
int x4_percent;
int x8_unk1;
bool xc_loop;
bool xd_unk2;
int x10_loopEnd;
int x14_loopStart;
rstl::vector< CColor > x18_keys;
public:
CCEKeyframeEmitter(CInputStream& in);
~CCEKeyframeEmitter() override;
bool GetValue(int frame, CColor& valOut) const override;
};
class CCEParticleColor : public CColorElement {
public:
~CCEParticleColor() override {}
bool GetValue(int frame, CColor& colorOut) const override;
};
#endif // _CCOLORELEMENT