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