Having a bit of difficulty with AITestMode and AIExecMode. I have a bit of code which builds a station plus a depot and a few tracks. Running it in AITestMode all building returns true. As soon as anything is built in AIExecMode it returns false but STILL BUILDS IT.
I can't seem to work it out. It doesn't matter what is actually being built either, station, depot and track all return false. Here is the code in question and a screenshot of the Debug window and built station.
Code: Select all
function buildStationTracks(tile, direction)
{
local success = true;
local test_mode = true;
AILog.Info(" success " + success);
AITestMode();
while(true)
{
switch(direction)
{
case Direction.NE:
{
AILog.Info("1 success " + success);
success = success && AIRail.BuildRailDepot(tile + AIMap.GetTileIndex(3,0), tile + AIMap.GetTileIndex(3,1));
success = success && AIRail.BuildRailStation(tile + AIMap.GetTileIndex(4,1), AIRail.RAILTRACK_NE_SW, 2, 3, AIStation.STATION_NEW);
AILog.Info("3 success " + success);
success = success && AIRail.BuildRail(tile + AIMap.GetTileIndex(1,1), tile + AIMap.GetTileIndex(2,1), tile + AIMap.GetTileIndex(4,1));
success = success && AIRail.BuildRail(tile + AIMap.GetTileIndex(2,2), tile + AIMap.GetTileIndex(3,2), tile + AIMap.GetTileIndex(4,2));
AILog.Info("4 success " + success);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,1), AIRail.RAILTRACK_NE_SE);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,1), AIRail.RAILTRACK_NW_NE);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,1), AIRail.RAILTRACK_NW_SW);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,1), AIRail.RAILTRACK_SW_SE);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,1), AIRail.RAILTRACK_NW_SE);
AILog.Info("5 success " + success);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,2), AIRail.RAILTRACK_NW_SW);
success = success && AIRail.BuildRailTrack(tile + AIMap.GetTileIndex(3,2), AIRail.RAILTRACK_NW_NE);
AILog.Info("6 success " + success);
break;
}
...
}
if(!success)
{
AILog.Info("buildStationTracks(tile, direction):");
AILog.Info(" !success " + success);
return false;
}
if(success && test_mode)
{
AILog.Info("buildStationTracks(tile, direction):");
AILog.Info(" success && test_mode");
AIExecMode();
test_mode = false;
}
else if(success && !test_mode)
{
AILog.Info("buildStationTracks(tile, direction):");
AILog.Info(" success && !test_mode");
return true;
}
else
{
AILog.Info("buildStationTracks(tile, direction):");
AILog.Info(" else");
return false;
}
}
}
Thanks for your help