Ticket #1209: ticket-1209-1.patch

File ticket-1209-1.patch, 2.2 KB (added by O.Davoodi, 12 years ago)

Patch for ticket 1209

  • gui/session/unit_commands.js

     
    394394}
    395395
    396396// Sets up "unit trading panel" - special case for setupUnitPanel
    397 function setupUnitTradingPanel(unitEntState)
     397function setupUnitTradingPanel(unitEntState, selection)
    398398{
    399399    for (var i = 0; i < TRADING_RESOURCES.length; i++)
    400400    {
    401401        var resource = TRADING_RESOURCES[i];
    402402        var button = getGUIObjectByName("unitTradingButton["+i+"]");
    403403        button.size = (i * 46) + " 0 " + ((i + 1) * 46) + " 46";
    404         var selectTradingPreferredGoodsData = { "trader": unitEntState.id, "preferredGoods": resource };
     404        var selectionUnitIDs = new Array(0);
     405        for (var j = 0; j < selection.length; ++j)
     406        {
     407            selectionUnitIDs.push (GetEntityState(selection[j]).id);
     408        }
     409        var selectTradingPreferredGoodsData = { "trader": selectionUnitIDs, "preferredGoods": resource };
    405410        button.onpress = (function(e){ return function() { selectTradingPreferredGoods(e); } })(selectTradingPreferredGoodsData);
    406411        button.enabled = true;
    407412        button.tooltip = "Set " + resource + " as trading goods";
     
    554559        if (entState.trader)
    555560        {
    556561            usedPanels["Trading"] = 1;
    557             setupUnitTradingPanel(entState);
     562            setupUnitTradingPanel(entState, selection);
    558563        }
    559564
    560565//      supplementalDetailsPanel.hidden = false;
  • simulation/helpers/Commands.js

     
    414414        break;
    415415
    416416    case "select-trading-goods":
    417         var cmpTrader = Engine.QueryInterface(cmd.trader, IID_Trader);
    418         if (cmpTrader)
    419             cmpTrader.SetPreferredGoods(cmd.preferredGoods);
     417        for each (var ent in cmd.trader)
     418        {
     419            var cmpTrader = Engine.QueryInterface(ent, IID_Trader);
     420            if (cmpTrader)
     421                cmpTrader.SetPreferredGoods(cmd.preferredGoods);
     422        }
    420423        break;
    421 
     424       
    422425    case "barter":
    423426        var cmpBarter = Engine.QueryInterface(SYSTEM_ENTITY, IID_Barter);
    424427        cmpBarter.ExchangeResources(playerEnt, cmd.sell, cmd.buy, cmd.amount);