2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-12-07 19:57:48 +00:00

WIP: Finished updating BSP linker to use seperate files for each asset.

This commit is contained in:
LJW-Dev
2025-10-24 15:34:44 +08:00
parent 948ba5ba8b
commit 173565c7b3
5 changed files with 867 additions and 2005 deletions

View File

@@ -48,6 +48,8 @@ namespace BSP
if (m_context.LoadDependency<AssetRawFile>("animtrees/fxanim_props.atr") == nullptr)
return false;
return true;
}
BSPLinker::BSPLinker(MemoryManager& memory, ISearchPath& searchPath, AssetCreationContext& context)
@@ -69,12 +71,27 @@ namespace BSP
MapEntsLinker mapEntsLinker(m_memory, m_search_path, m_context);
SkinnedVertsLinker skinnedVertsLinker(m_memory, m_search_path, m_context);
comWorldLinker.linkComWorld(bsp);
mapEntsLinker.linkMapEnts(bsp);
if (comWorldLinker.linkComWorld(bsp).HasFailed())
return AssetCreationResult::Failure();
if (mapEntsLinker.linkMapEnts(bsp).HasFailed())
return AssetCreationResult::Failure();
gameWorldMpLinker.linkGameWorldMp(bsp);
skinnedVertsLinker.linkSkinnedVerts(bsp);
gfxWorldLinker.linkGfxWorld(bsp); // requires mapents asset
clipMapLinker.linkClipMap(bsp); // requires gfxworld and mapents asset
if (gameWorldMpLinker.linkGameWorldMp(bsp).HasFailed())
return AssetCreationResult::Failure();
if (skinnedVertsLinker.linkSkinnedVerts(bsp).HasFailed())
return AssetCreationResult::Failure();
auto result = gfxWorldLinker.linkGfxWorld(bsp); // requires mapents asset
if (result.HasFailed())
return AssetCreationResult::Failure();
if (clipMapLinker.linkClipMap(bsp).HasFailed()) // requires gfxworld and mapents asset
return AssetCreationResult::Failure();
return result;
}
}