#pragma once #include "Asset/IAssetCreator.h" #include "Game/T6/BSP/BSP.h" #include "SearchPath/ISearchPath.h" #include "Utils/MemoryManager.h" namespace BSP { class GfxWorldLinker { public: GfxWorldLinker(MemoryManager& memory, ISearchPath& searchPath, AssetCreationContext& context); T6::GfxWorld* linkGfxWorld(BSPData* bsp); private: MemoryManager& m_memory; ISearchPath& m_search_path; AssetCreationContext& m_context; void loadDrawData(BSPData* projInfo, T6::GfxWorld* gfxWorld); bool loadMapSurfaces(BSPData* projInfo, T6::GfxWorld* gfxWorld); void loadXModels(BSPData* projInfo, T6::GfxWorld* gfxWorld); void cleanGfxWorld(T6::GfxWorld* gfxWorld); void loadGfxLights(T6::GfxWorld* gfxWorld); void loadLightGrid(T6::GfxWorld* gfxWorld); void loadGfxCells(T6::GfxWorld* gfxWorld); void loadModels(T6::GfxWorld* gfxWorld); bool loadReflectionProbeData(T6::GfxWorld* gfxWorld); bool loadLightmapData(T6::GfxWorld* gfxWorld); void loadSkyBox(BSPData* projInfo, T6::GfxWorld* gfxWorld); void loadDynEntData(T6::GfxWorld* gfxWorld); bool loadOutdoors(T6::GfxWorld* gfxWorld); void loadSunData(T6::GfxWorld* gfxWorld); void loadWorldBounds(T6::GfxWorld* gfxWorld); }; } // namespace BSP