Split hierarchy building to a method and time it

This commit is contained in:
Jarrod Doyle 2024-08-26 15:10:05 +01:00
parent 261d5fe399
commit d3e58af75c
Signed by: Jayrude
GPG Key ID: 38B57B16E7C0ADF7
1 changed files with 11 additions and 6 deletions

View File

@ -104,7 +104,16 @@ public partial class Mission : Node3D
Timing.TimeStage("Load FAM", () => UseChunk<TxList>("TXLIST", LoadTextures));
Timing.TimeStage("Build WR", () => UseChunk<WorldRep>("WREXT", BuildWrMeshes));
// TODO: Sort this out so I can time it lol
if (_file.Chunks.TryGetValue("BRLIST", out var brList))
{
var objHierarchy = Timing.TimeStage("Hierarchy", () => BuildHierarchy(_file));
Timing.TimeStage("Object Placement", () => PlaceObjects((BrList)brList, objHierarchy));
}
}
// TODO: Make this less of a mess
private ObjectHierarchy BuildHierarchy(DbFile db)
{
ObjectHierarchy objHierarchy;
if (_file.Chunks.TryGetValue("GAM_FILE", out var gamFileChunk))
{
@ -125,11 +134,7 @@ public partial class Mission : Node3D
{
objHierarchy = new ObjectHierarchy(_file);
}
if (_file.Chunks.TryGetValue("BRLIST", out var brList))
{
Timing.TimeStage("Object Placement", () => PlaceObjects((BrList)brList, objHierarchy));
}
return objHierarchy;
}
private void UseChunk<T>(string name, Action<T> action)