mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2026-05-14 13:14:50 +08:00
Fix for scenario YMT entity overrides (stutters), Create new scenario chains in clusters
This commit is contained in:
@@ -11,7 +11,7 @@ namespace CodeWalker.GameFiles
|
||||
|
||||
List<MetaBuilderBlock> Blocks = new List<MetaBuilderBlock>();
|
||||
|
||||
int MaxBlockLength = 0x2000; //TODO: figure what this should be!
|
||||
int MaxBlockLength = 0x4000; //TODO: figure what this should be!
|
||||
|
||||
|
||||
public MetaBuilderBlock EnsureBlock(MetaName type)
|
||||
|
||||
@@ -3753,9 +3753,27 @@ namespace CodeWalker.GameFiles
|
||||
|
||||
if ((EntityOverrides != null) && (EntityOverrides.Length > 0))
|
||||
{
|
||||
//mb.AddStructureInfo(MetaName.CScenarioEntityOverride); //will get added by MCScenarioEntityOverride
|
||||
//mb.AddStructureInfo(MetaName.CExtensionDefSpawnPoint);
|
||||
_Data.EntityOverrides = mb.AddWrapperArray(EntityOverrides);
|
||||
//_Data.EntityOverrides = mb.AddWrapperArray(EntityOverrides);
|
||||
|
||||
|
||||
mb.AddStructureInfo(MetaName.CScenarioEntityOverride);
|
||||
var cents = new CScenarioEntityOverride[EntityOverrides.Length];
|
||||
for (int i = 0; i < EntityOverrides.Length; i++)
|
||||
{
|
||||
var mcent = EntityOverrides[i];
|
||||
var cent = mcent.Data;
|
||||
var scps = mcent.GetCScenarioPoints();
|
||||
if (scps != null)
|
||||
{
|
||||
mb.AddStructureInfo(MetaName.CExtensionDefSpawnPoint);
|
||||
mb.AddEnumInfo((MetaName)3573596290);
|
||||
mb.AddEnumInfo((MetaName)700327466);
|
||||
cent.ScenarioPoints = mb.AddItemArrayPtr(MetaName.CExtensionDefSpawnPoint, scps);
|
||||
}
|
||||
cents[i] = cent;
|
||||
}
|
||||
_Data.EntityOverrides = mb.AddItemArrayPtr(MetaName.CScenarioEntityOverride, cents);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4429,6 +4447,18 @@ namespace CodeWalker.GameFiles
|
||||
}
|
||||
|
||||
|
||||
public CExtensionDefSpawnPoint[] GetCScenarioPoints()
|
||||
{
|
||||
if ((ScenarioPoints == null) || (ScenarioPoints.Length == 0)) return null;
|
||||
CExtensionDefSpawnPoint[] r = new CExtensionDefSpawnPoint[ScenarioPoints.Length];
|
||||
for (int i = 0; i < ScenarioPoints.Length; i++)
|
||||
{
|
||||
r[i] = ScenarioPoints[i].Data;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override string Name
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user