prime/include/Kyoto/Particles/CParticleData.hpp

52 lines
1.1 KiB
C++

#ifndef _CPARTICLEDATA
#define _CPARTICLEDATA
#include "types.h"
#include "Kyoto/IObjectStore.hpp"
#include "Kyoto/Math/CVector3f.hpp"
#include "rstl/string.hpp"
class CInputStream;
class CParticleData {
public:
enum EParentedMode {
kPM_Initial,
kPM_ContinuousEmitter,
kPM_ContinuousSystem,
};
CParticleData(int duration, const SObjectTag& tag, const rstl::string& boneName, float scale,
EParentedMode mode)
: x0_duration(duration)
, x4_particle(tag)
, xc_boneName(boneName)
, x1c_scale(scale)
, x20_parentMode(mode) {}
CParticleData(CInputStream& in);
int GetDuration() const { return x0_duration; }
const rstl::string& GetLocatorName() const { return xc_boneName; }
float GetScale() const { return x1c_scale; }
EParentedMode GetParentedMode() const { return x20_parentMode; }
private:
int x0_duration;
SObjectTag x4_particle;
rstl::string xc_boneName;
float x1c_scale;
EParentedMode x20_parentMode;
};
class CAuxiliaryParticleData {
private:
uint x0_duration;
SObjectTag x4_particle;
CVector3f xc_translation;
float x18_scale;
};
#endif // _CPARTICLEDATA