Ticket #1210: Commands.js.patch

File Commands.js.patch, 1.8 KB (added by O.Davoodi, 12 years ago)
  • Commands.js

     
    121121        // Verify that the building can be controlled by the player
    122122        if (CanControlUnit(cmd.entity, player, controlAllUnits))
    123123        {
    124             var queue = Engine.QueryInterface(cmd.entity, IID_TrainingQueue);
    125             if (queue)
    126                 queue.AddBatch(cmd.template, +cmd.count, cmd.metadata);
     124            if (cmd.entities == undefined)
     125            {
     126                var queue = Engine.QueryInterface(cmd.entity, IID_TrainingQueue);
     127                if (queue)
     128                    queue.AddBatch(cmd.template, +cmd.count, cmd.metadata);
     129            }
     130            else
     131            {
     132                for each (var ent in cmd.entities)
     133                {
     134                    var queue = Engine.QueryInterface(ent, IID_TrainingQueue);
     135                    //check if queue exists and also check if building can train the unit. We don't want barracks train ships.
     136                    if ((queue)&&(queue.GetEntitiesList().indexOf(cmd.template) !== -1))
     137                        queue.AddBatch(cmd.template, +cmd.count, cmd.metadata);
     138                }
     139            }
    127140        }
    128141        else if (g_DebugCommands)
    129142        {
     
    409422        {
    410423            var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
    411424            if (cmpUnitAI)
    412                 cmpUnitAI.SetupTradeRoute(cmd.target);
     425                cmpUnitAI.SetupTradeRoute(cmd.target, undefined);
    413426        }
    414427        break;
    415428
    416429    case "select-trading-goods":
    417         var cmpTrader = Engine.QueryInterface(cmd.trader, IID_Trader);
    418         if (cmpTrader)
    419             cmpTrader.SetPreferredGoods(cmd.preferredGoods);
     430        for each (var ent in cmd.entities)
     431        {
     432            var cmpTrader = Engine.QueryInterface(ent, IID_Trader);
     433            if (cmpTrader)
     434                cmpTrader.SetPreferredGoods(cmd.preferredGoods);
     435        }
    420436        break;
    421 
     437       
    422438    case "barter":
    423439        var cmpBarter = Engine.QueryInterface(SYSTEM_ENTITY, IID_Barter);
    424440        cmpBarter.ExchangeResources(playerEnt, cmd.sell, cmd.buy, cmd.amount);