2024-12-24 00:29:59 -08:00
|
|
|
#ifndef _CSPAWNSYSTEMKEYFRAMEDATA
|
|
|
|
|
#define _CSPAWNSYSTEMKEYFRAMEDATA
|
|
|
|
|
|
2026-03-19 20:54:59 -06:00
|
|
|
#include "Kyoto/CToken.hpp"
|
|
|
|
|
|
|
|
|
|
#include <rstl/optional_object.hpp>
|
2025-08-17 22:37:00 -07:00
|
|
|
#include <rstl/pair.hpp>
|
|
|
|
|
#include <rstl/vector.hpp>
|
|
|
|
|
|
|
|
|
|
class CInputStream;
|
2025-11-22 10:13:27 -08:00
|
|
|
class CSimplePool;
|
2024-12-24 00:29:59 -08:00
|
|
|
class CSpawnSystemKeyframeData {
|
2025-05-08 07:59:01 -07:00
|
|
|
public:
|
2025-08-17 22:37:00 -07:00
|
|
|
class CSpawnSystemKeyframeInfo {
|
|
|
|
|
public:
|
|
|
|
|
CSpawnSystemKeyframeInfo(CInputStream& in);
|
2026-03-19 20:54:59 -06:00
|
|
|
void LoadToken(CSimplePool* pool);
|
|
|
|
|
rstl::optional_object< CToken > GetToken() const { return x10_token; }
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
uint x0_id;
|
|
|
|
|
uint x4;
|
|
|
|
|
uint x8;
|
|
|
|
|
uint xc;
|
|
|
|
|
rstl::optional_object< CToken > x10_token;
|
2025-08-17 22:37:00 -07:00
|
|
|
};
|
2026-03-19 20:54:59 -06:00
|
|
|
|
2025-08-17 22:37:00 -07:00
|
|
|
CSpawnSystemKeyframeData(CInputStream& in);
|
2025-08-18 16:03:15 -07:00
|
|
|
~CSpawnSystemKeyframeData() {}
|
2024-12-24 00:29:59 -08:00
|
|
|
|
2025-11-22 10:13:27 -08:00
|
|
|
void LoadAllSpawnedSystemTokens(CSimplePool* pool);
|
2026-03-19 20:54:59 -06:00
|
|
|
rstl::vector< CSpawnSystemKeyframeInfo >& GetSpawnedSystemsAtFrame(uint frame);
|
2025-11-22 10:13:27 -08:00
|
|
|
|
2024-12-24 00:29:59 -08:00
|
|
|
private:
|
2025-08-17 22:37:00 -07:00
|
|
|
int mUnknown1;
|
|
|
|
|
int mUnknown2;
|
|
|
|
|
int mEndFrame;
|
|
|
|
|
int mUnknown3;
|
|
|
|
|
rstl::vector< rstl::pair< uint, rstl::vector< CSpawnSystemKeyframeInfo > > > mFrames;
|
2024-12-24 00:29:59 -08:00
|
|
|
};
|
|
|
|
|
|
2025-08-17 22:37:00 -07:00
|
|
|
#endif // _CSPAWNSYSTEMKEYFRAMEDATA
|