#pragma once #include #include #include #include #include struct Archive; struct EntityManager; #pragma pack(push, 1) struct WorldFileHeader { uint32 Magic = 0x444C574A; // 'JWLD' in little-endian }; #pragma pack(pop) constexpr uint32 kWorldMagic = 0x444C574A; // 'JWLD' constexpr uint32 kWorldVersion = 1; struct World { Arena* WorldArena = nullptr; EntityManager* EntityManager = nullptr; }; void InitWorld(NonNullPtr world, NonNullPtr arena); void ShutdownWorld(NonNullPtr world); void AddToWorld(NonNullPtr world, NonNullPtr entity); void RemoveWorldEntity(World& world, size_t index); void Serialize(Archive& data, World& world, String filename); #if JULIET_EDITOR void RenderWorldEditorUI(World& world); #endif