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);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEConstant() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CCEFastConstant : public CColorElement {
|
|
|
|
CColor x4_val;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CCEFastConstant(float r, float g, float b, float a);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEFastConstant() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CCEFade : public CColorElement {
|
|
|
|
CColorElement* x4_a;
|
|
|
|
CColorElement* x8_b;
|
|
|
|
CRealElement* xc_endFrame;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CCEFade(CColorElement* a, CColorElement* b, CRealElement* end);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEFade() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEFadeEnd() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CCETimeChain : public CColorElement {
|
|
|
|
CColorElement* x4_a;
|
|
|
|
CColorElement* x8_b;
|
|
|
|
CIntElement* xc_swFrame;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CCETimeChain(CColorElement* a, CColorElement* b, CIntElement* c);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCETimeChain() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEPulse() override;
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEKeyframeEmitter() override;
|
|
|
|
bool GetValue(int frame, CColor& valOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CCEParticleColor : public CColorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CCEParticleColor() override {}
|
|
|
|
bool GetValue(int frame, CColor& colorOut) const override;
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _CCOLORELEMENT
|