2022-10-09 01:13:17 -04:00
|
|
|
#ifndef _CPARTICLEDATA
|
|
|
|
|
#define _CPARTICLEDATA
|
2022-08-14 14:38:41 -04:00
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
|
|
#include "Kyoto/IObjectStore.hpp"
|
|
|
|
|
#include "Kyoto/Math/CVector3f.hpp"
|
|
|
|
|
|
|
|
|
|
#include "rstl/string.hpp"
|
|
|
|
|
|
2023-01-07 18:11:54 -08:00
|
|
|
class CInputStream;
|
2022-08-14 14:38:41 -04:00
|
|
|
class CParticleData {
|
|
|
|
|
public:
|
|
|
|
|
enum EParentedMode {
|
|
|
|
|
kPM_Initial,
|
|
|
|
|
kPM_ContinuousEmitter,
|
|
|
|
|
kPM_ContinuousSystem,
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-07 18:11:54 -08:00
|
|
|
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);
|
|
|
|
|
|
2023-09-25 16:30:56 -07:00
|
|
|
int GetDuration() const { return x0_duration; }
|
|
|
|
|
const rstl::string& GetLocatorName() const { return xc_boneName; }
|
|
|
|
|
float GetScale() const { return x1c_scale; }
|
2026-01-20 21:21:18 -08:00
|
|
|
EParentedMode GetParentedMode() const { return static_cast<EParentedMode>(x20_parentMode); }
|
2023-09-25 16:30:56 -07:00
|
|
|
|
2022-08-14 14:38:41 -04:00
|
|
|
private:
|
2023-01-07 18:11:54 -08:00
|
|
|
int x0_duration;
|
2022-08-14 14:38:41 -04:00
|
|
|
SObjectTag x4_particle;
|
|
|
|
|
rstl::string xc_boneName;
|
2022-10-09 01:37:23 -04:00
|
|
|
float x1c_scale;
|
2026-01-20 21:21:18 -08:00
|
|
|
int x20_parentMode;
|
2022-08-14 14:38:41 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CAuxiliaryParticleData {
|
|
|
|
|
private:
|
2022-09-05 00:01:13 -04:00
|
|
|
uint x0_duration;
|
2022-08-14 14:38:41 -04:00
|
|
|
SObjectTag x4_particle;
|
|
|
|
|
CVector3f xc_translation;
|
2022-10-09 01:37:23 -04:00
|
|
|
float x18_scale;
|
2022-08-14 14:38:41 -04:00
|
|
|
};
|
|
|
|
|
|
2022-10-09 01:13:17 -04:00
|
|
|
#endif // _CPARTICLEDATA
|