2010-10-30 06:02:42 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Used to initialize non-player settings relevant to the map, like
|
|
|
|
* default stance and victory conditions. DO NOT load players here
|
|
|
|
*/
|
2010-08-04 23:15:41 +02:00
|
|
|
function LoadMapSettings(settings)
|
|
|
|
{
|
2010-10-30 06:02:42 +02:00
|
|
|
// Default settings
|
2010-08-04 23:15:41 +02:00
|
|
|
if (!settings)
|
|
|
|
settings = {};
|
2010-10-30 06:02:42 +02:00
|
|
|
|
2010-08-04 23:15:41 +02:00
|
|
|
if (settings.DefaultStance)
|
|
|
|
{
|
|
|
|
for each (var ent in Engine.GetEntitiesWithInterface(IID_UnitAI))
|
|
|
|
{
|
|
|
|
var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
|
2011-06-18 00:13:39 +02:00
|
|
|
cmpUnitAI.SwitchToStance(settings.DefaultStance);
|
2010-08-04 23:15:41 +02:00
|
|
|
}
|
|
|
|
}
|
2010-09-23 14:13:13 +02:00
|
|
|
|
|
|
|
if (settings.RevealMap)
|
|
|
|
{
|
|
|
|
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
|
|
|
if (cmpRangeManager)
|
2013-12-31 22:30:48 +01:00
|
|
|
cmpRangeManager.SetLosRevealAll(-1, true);
|
2010-09-23 14:13:13 +02:00
|
|
|
}
|
2010-10-25 23:59:52 +02:00
|
|
|
|
|
|
|
if (settings.CircularMap)
|
|
|
|
{
|
|
|
|
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
|
|
|
if (cmpRangeManager)
|
|
|
|
cmpRangeManager.SetLosCircular(true);
|
2010-10-30 20:25:34 +02:00
|
|
|
|
|
|
|
var cmpObstructionManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ObstructionManager);
|
|
|
|
if (cmpObstructionManager)
|
|
|
|
cmpObstructionManager.SetPassabilityCircular(true);
|
2010-10-25 23:59:52 +02:00
|
|
|
}
|
2010-10-30 06:02:42 +02:00
|
|
|
|
2014-04-14 21:52:49 +02:00
|
|
|
if (settings.ExploreMap)
|
|
|
|
{
|
|
|
|
// this needs to happen after changing the map to a circular one
|
|
|
|
// as by making the map circular, the explored tiles get reset
|
|
|
|
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
|
|
|
if (cmpRangeManager)
|
|
|
|
for (var i = 0; i < settings.PlayerData.length; i++)
|
|
|
|
cmpRangeManager.ExploreAllTiles(i+1);
|
|
|
|
}
|
|
|
|
|
2010-10-01 22:51:21 +02:00
|
|
|
var cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
|
|
|
|
if (settings.GameType)
|
|
|
|
cmpEndGameManager.SetGameType(settings.GameType);
|
2010-08-04 23:15:41 +02:00
|
|
|
}
|
|
|
|
|
2010-10-30 20:25:34 +02:00
|
|
|
Engine.RegisterGlobal("LoadMapSettings", LoadMapSettings);
|