#ifndef __PSHAG_CSPAWNSYSTEMKEYFRAMEDATA_HPP__ #define __PSHAG_CSPAWNSYSTEMKEYFRAMEDATA_HPP__ #include "IOStreams.hpp" #include "CToken.hpp" namespace urde { class CSimplePool; class CGenDescription; class CSpawnSystemKeyframeData { public: class CSpawnSystemKeyframeInfo { friend class CSpawnSystemKeyframeData; u32 x0_id; u32 x4; u32 x8; u32 xc; TLockedToken x10_token; bool x18_found = false; void LoadToken(CSimplePool* pool); public: CSpawnSystemKeyframeInfo(CInputStream& in); TLockedToken& GetToken() {return x10_token;} }; private: u32 x0; u32 x4; u32 x8_endFrame; u32 xc; std::vector>> x10_spawns; public: CSpawnSystemKeyframeData(CInputStream& in); void LoadAllSpawnedSystemTokens(CSimplePool* pool); std::vector& GetSpawnedSystemsAtFrame(u32 frame); }; } #endif // __PSHAG_CSPAWNSYSTEMKEYFRAMEDATA_HPP__