#pragma once #include #include #include #include #include #include struct archive; struct EntityManager; #pragma pack(push, 1) struct WorldFileHeader { uint32 Magic = 0x444C574A; // 'JWLD' in little-endian uint32 Version = 1; }; #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