1
0
forked from 0ad/0ad

Always call SetPassabilityCircular -- Fix OOS after rejoin on square maps

Differential Revision: https://code.wildfiregames.com/D1555
Reviewed by: elexis
Fixes: #5186

This was SVN commit r21835.
This commit is contained in:
temple 2018-06-03 16:40:44 +00:00
parent 1608202d4f
commit 48e794e97d

View File

@ -9,13 +9,11 @@ function LoadMapSettings(settings)
settings = {};
if (settings.DefaultStance)
{
for (let ent of Engine.GetEntitiesWithInterface(IID_UnitAI))
{
let cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
cmpUnitAI.SwitchToStance(settings.DefaultStance);
}
}
if (settings.RevealMap)
{
@ -32,18 +30,15 @@ function LoadMapSettings(settings)
Engine.DestroyEntity(ent);
}
if (settings.CircularMap)
{
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
if (cmpRangeManager)
cmpRangeManager.SetLosCircular(true);
cmpRangeManager.SetLosCircular(!!settings.CircularMap);
let cmpObstructionManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ObstructionManager);
if (cmpObstructionManager)
cmpObstructionManager.SetPassabilityCircular(true);
}
cmpObstructionManager.SetPassabilityCircular(!!settings.CircularMap);
if (settings.TriggerDifficulty != undefined)
if (settings.TriggerDifficulty !== undefined)
Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger).SetDifficulty(settings.TriggerDifficulty);
else if (settings.SupportedTriggerDifficulties) // used by Atlas and autostart games
{