mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-09 13:47:41 +00:00
Particle and RasterFont progress
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef _CVECTORELEMENT
|
||||
#define _CVECTORELEMENT
|
||||
|
||||
#include "Kyoto/Streams/CInputStream.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
@@ -73,6 +74,21 @@ public:
|
||||
CRealElement* xc_z;
|
||||
};
|
||||
|
||||
class CVECircleCluster : public CVectorElement {
|
||||
public:
|
||||
CVECircleCluster(CVectorElement* circleOffset, CVectorElement* circleNormal,
|
||||
CIntElement* cycleFrames, CRealElement* randomFactor);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mCircleOffset;
|
||||
CVector3f mXVec;
|
||||
CVector3f mYVec;
|
||||
CIntElement* mCycleFrames;
|
||||
CRealElement* mRandomFactor;
|
||||
};
|
||||
|
||||
class CVECone : public CVectorElement {
|
||||
CVectorElement* x4_direction;
|
||||
CRealElement* x8_magnitude;
|
||||
@@ -86,17 +102,126 @@ public:
|
||||
};
|
||||
|
||||
class CVEAngleCone : public CVectorElement {
|
||||
CRealElement* x4_angleXConstant;
|
||||
CRealElement* x8_angleYConstant;
|
||||
CRealElement* xc_angleXRange;
|
||||
CRealElement* x10_angleYRange;
|
||||
CRealElement* x14_magnitude;
|
||||
|
||||
public:
|
||||
CVEAngleCone(CRealElement* angleXConstant, CRealElement* angleYConstant,
|
||||
CRealElement* angleXRange, CRealElement* angleYRange, CRealElement* magnitude);
|
||||
~CVEAngleCone();
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CRealElement* x4_angleXConstant;
|
||||
CRealElement* x8_angleYConstant;
|
||||
CRealElement* xc_angleXRange;
|
||||
CRealElement* x10_angleYRange;
|
||||
CRealElement* x14_magnitude;
|
||||
};
|
||||
|
||||
class CVECircle : public CVectorElement {
|
||||
public:
|
||||
CVECircle(CVectorElement* circleOffset, CVectorElement* circleNormal, CRealElement* angleConstant,
|
||||
CRealElement* angleLinear, CRealElement* radius);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mCircleOffset;
|
||||
CVector3f mXVec;
|
||||
CVector3f mYVec;
|
||||
CRealElement* mAngleConstant;
|
||||
CRealElement* mAngleLinear;
|
||||
CRealElement* mRadius;
|
||||
};
|
||||
|
||||
class CVEKeyframeEmitter : public CVectorElement {
|
||||
public:
|
||||
CVEKeyframeEmitter(CInputStream& in);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
uint mPercent;
|
||||
uint mUnk1;
|
||||
bool mLoop;
|
||||
bool mUnk2;
|
||||
uint mLoopEnd;
|
||||
uint mLoopStart;
|
||||
rstl::vector< CVector3f > mKeys;
|
||||
};
|
||||
|
||||
class CVEAdd : public CVectorElement {
|
||||
public:
|
||||
CVEAdd(CVectorElement* a, CVectorElement* b);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mA;
|
||||
CVectorElement* mB;
|
||||
};
|
||||
|
||||
class CVEMultiply : public CVectorElement {
|
||||
public:
|
||||
CVEMultiply(CVectorElement* a, CVectorElement* b);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mA;
|
||||
CVectorElement* mB;
|
||||
};
|
||||
|
||||
class CVETimeChain : public CVectorElement {
|
||||
public:
|
||||
CVETimeChain(CVectorElement* a, CVectorElement* b, CIntElement* mSwitchFrame);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mA;
|
||||
CVectorElement* mB;
|
||||
CIntElement* mSwitchFrame;
|
||||
};
|
||||
|
||||
class CVEPulse : public CVectorElement {
|
||||
public:
|
||||
CVEPulse(CIntElement* durationA, CIntElement* durationB, CVectorElement* a, CVectorElement* b);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CIntElement* mDurationA;
|
||||
CIntElement* mDurationB;
|
||||
CVectorElement* mA;
|
||||
CVectorElement* mB;
|
||||
};
|
||||
class CVERealToVector : public CVectorElement {
|
||||
public:
|
||||
CVERealToVector(CRealElement* value);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CRealElement* mValue;
|
||||
};
|
||||
|
||||
class CVESubtract : public CVectorElement {
|
||||
public:
|
||||
CVESubtract(CVectorElement* a, CVectorElement* b);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CVectorElement* mA;
|
||||
CVectorElement* mB;
|
||||
};
|
||||
|
||||
class CVEColorToVector : public CVectorElement {
|
||||
public:
|
||||
CVEColorToVector(CColorElement* value);
|
||||
|
||||
bool GetValue(int frame, CVector3f& valOut) const override;
|
||||
|
||||
private:
|
||||
CColorElement* mValue;
|
||||
};
|
||||
#endif // _CVECTORELEMENT
|
||||
|
||||
Reference in New Issue
Block a user