From 4a15ac406b16507e0dcd8398bc017dd7caab2121 Mon Sep 17 00:00:00 2001 From: Yves Date: Mon, 30 Dec 2013 14:28:30 +0000 Subject: [PATCH] Move debug function and debug flag to API3 and use them from Aegis. Remove copyPrototype from Aegis because that function is currently not used and is already in API3. Refs #2322 This was SVN commit r14446. --- .../mods/public/simulation/ai/aegis/aegis.js | 29 +++++++------------ .../simulation/ai/aegis/base-manager.js | 4 +-- .../simulation/ai/aegis/headquarters.js | 6 ++-- .../simulation/ai/aegis/queue-manager.js | 2 +- .../mods/public/simulation/ai/aegis/worker.js | 2 +- .../simulation/ai/common-api-v3/baseAI.js | 2 ++ .../simulation/ai/common-api-v3/utils.js | 10 +++++++ 7 files changed, 30 insertions(+), 25 deletions(-) diff --git a/binaries/data/mods/public/simulation/ai/aegis/aegis.js b/binaries/data/mods/public/simulation/ai/aegis/aegis.js index d02b714cd2..c262178463 100644 --- a/binaries/data/mods/public/simulation/ai/aegis/aegis.js +++ b/binaries/data/mods/public/simulation/ai/aegis/aegis.js @@ -5,7 +5,6 @@ var m = {}; // "local" global variables for stuffs that will need a unique ID // Note that since order of loading is alphabetic, this means this file must go before any other file using them. m.playerGlobals = []; -m.DebugEnabled = false; m.AegisBot = function AegisBot(settings) { API3.BaseAI.call(this, settings); @@ -248,24 +247,18 @@ AegisBot.prototype.Serialize = function() return {}; };*/ -m.debug = function(output){ - if (m.DebugEnabled){ - if (typeof output === "string"){ - warn(output); - }else{ - warn(uneval(output)); - } - } -}; +// For the moment we just use the debugging flag and the debugging function from the API. +// Maybe it will make sense in the future to separate them. +m.DebugEnabled = function() +{ + return API3.DebugEnabled; +} + +m.debug = function(output) +{ + API3.debug(output); +} -m.copyPrototype = function(descendant, parent) { - var sConstructor = parent.toString(); - var aMatch = sConstructor.match( /\s*function (.*)\(/ ); - if ( aMatch != null ) { descendant.prototype[aMatch[1]] = parent; } - for (var m in parent.prototype) { - descendant.prototype[m] = parent.prototype[m]; - } -}; return m; }()); diff --git a/binaries/data/mods/public/simulation/ai/aegis/base-manager.js b/binaries/data/mods/public/simulation/ai/aegis/base-manager.js index 46d7e394b5..e718c0b129 100644 --- a/binaries/data/mods/public/simulation/ai/aegis/base-manager.js +++ b/binaries/data/mods/public/simulation/ai/aegis/base-manager.js @@ -321,7 +321,7 @@ m.BaseManager.prototype.initializeDropsite = function (gameState, ent, type) { // TODO: get workers on those resources and do something with them. } - if (m.DebugEnabled) + if (m.DebugEnabled()) { // Make resources glow wildly if (type == "food") { @@ -455,7 +455,7 @@ m.BaseManager.prototype.findBestDropsiteLocation = function(gameState, resource) } } - if (m.DebugEnabled) + if (m.DebugEnabled()) friendlyTiles.dumpIm("DP_" + resource + "_" + gameState.getTimeElapsed() + ".png"); var best = friendlyTiles.findBestTile(2, obstructions); // try to find a spot to place a DP. diff --git a/binaries/data/mods/public/simulation/ai/aegis/headquarters.js b/binaries/data/mods/public/simulation/ai/aegis/headquarters.js index b948ed6ca2..884e3fd73b 100644 --- a/binaries/data/mods/public/simulation/ai/aegis/headquarters.js +++ b/binaries/data/mods/public/simulation/ai/aegis/headquarters.js @@ -89,7 +89,7 @@ m.HQ.prototype.init = function(gameState, events, queues){ this.baseManagers[1].initTerritory(this, gameState); this.baseManagers[1].initGatheringFunctions(this, gameState); - if (m.DebugEnabled) + if (m.DebugEnabled()) this.basesMap.dumpIm("basesMap.png"); var self = this; @@ -116,7 +116,7 @@ m.HQ.prototype.init = function(gameState, events, queues){ } var map = new API3.Map(gameState.sharedScript, gameState.sharedScript.CCResourceMaps["wood"].map); - if (m.DebugEnabled) + if (m.DebugEnabled()) map.dumpIm("map_CC_Wood.png"); //this.reassignIdleWorkers(gameState); @@ -650,7 +650,7 @@ m.HQ.prototype.findBestEcoCCLocation = function(gameState, resource){ var best = friendlyTiles.findBestTile(6, obstructions); var bestIdx = best[0]; - if (m.DebugEnabled) + if (m.DebugEnabled()) { friendlyTiles.map[bestIdx] = 270; friendlyTiles.dumpIm("cc_placement_base_" + gameState.getTimeElapsed() + "_" + resource + "_" + best[1] + ".png",301); diff --git a/binaries/data/mods/public/simulation/ai/aegis/queue-manager.js b/binaries/data/mods/public/simulation/ai/aegis/queue-manager.js index b831cef1aa..7282bd8ec2 100644 --- a/binaries/data/mods/public/simulation/ai/aegis/queue-manager.js +++ b/binaries/data/mods/public/simulation/ai/aegis/queue-manager.js @@ -288,7 +288,7 @@ m.QueueManager.prototype.printQueues = function(gameState){ // nice readable HTML version. m.QueueManager.prototype.HTMLprintQueues = function(gameState){ - if (!m.DebugEnabled) + if (!m.DebugEnabled()) return; log(" Aegis Queue Manager "); for (var i in this.queues){ diff --git a/binaries/data/mods/public/simulation/ai/aegis/worker.js b/binaries/data/mods/public/simulation/ai/aegis/worker.js index 87787e8bea..b1d94ab8ea 100644 --- a/binaries/data/mods/public/simulation/ai/aegis/worker.js +++ b/binaries/data/mods/public/simulation/ai/aegis/worker.js @@ -67,7 +67,7 @@ m.Worker.prototype.update = function(baseManager, gameState) { } Engine.ProfileStop(); } - // m.debug: show the resource we're gathering from + // debug: show the resource we're gathering from //Engine.PostCommand({"type": "set-shading-color", "entities": [this.ent.id()], "rgb": [10,0,0]}); } else if (this.ent.unitAIState().split(".")[1] === "GATHER") { diff --git a/binaries/data/mods/public/simulation/ai/common-api-v3/baseAI.js b/binaries/data/mods/public/simulation/ai/common-api-v3/baseAI.js index d5998fe287..b1ee2d6594 100644 --- a/binaries/data/mods/public/simulation/ai/common-api-v3/baseAI.js +++ b/binaries/data/mods/public/simulation/ai/common-api-v3/baseAI.js @@ -4,6 +4,8 @@ var API3 = (function() { var m = {}; +m.DebugEnabled = false; + m.BaseAI = function(settings) { if (!settings) diff --git a/binaries/data/mods/public/simulation/ai/common-api-v3/utils.js b/binaries/data/mods/public/simulation/ai/common-api-v3/utils.js index 3e9e76ccf7..1a8d26473c 100644 --- a/binaries/data/mods/public/simulation/ai/common-api-v3/utils.js +++ b/binaries/data/mods/public/simulation/ai/common-api-v3/utils.js @@ -1,6 +1,16 @@ var API3 = function(m) { +m.debug = function(output){ + if (m.DebugEnabled){ + if (typeof output === "string"){ + warn(output); + }else{ + warn(uneval(output)); + } + } +}; + m.VectorDistance = function(a, b) { var dx = a[0] - b[0];
Aegis Build Order