1
0
forked from 0ad/0ad

Set goods for every selected trader. Based on patch by Spahbod, fixes #1209.

This was SVN commit r11442.
This commit is contained in:
leper 2012-04-06 15:07:04 +00:00
parent 305723f9a7
commit 32d6b09c3c
3 changed files with 10 additions and 7 deletions

View File

@ -1154,7 +1154,7 @@ function startBuildingPlacement(buildEntType)
// Called by GUI when user changes preferred trading goods
function selectTradingPreferredGoods(data)
{
Engine.PostNetworkCommand({"type": "select-trading-goods", "trader": data.trader, "preferredGoods": data.preferredGoods});
Engine.PostNetworkCommand({"type": "select-trading-goods", "entities": data.entities, "preferredGoods": data.preferredGoods});
}
// Called by GUI when user clicks exchange resources button

View File

@ -414,14 +414,14 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, items, callback)
}
// Sets up "unit trading panel" - special case for setupUnitPanel
function setupUnitTradingPanel(unitEntState)
function setupUnitTradingPanel(unitEntState, selection)
{
for (var i = 0; i < TRADING_RESOURCES.length; i++)
{
var resource = TRADING_RESOURCES[i];
var button = getGUIObjectByName("unitTradingButton["+i+"]");
button.size = (i * 46) + " 0 " + ((i + 1) * 46) + " 46";
var selectTradingPreferredGoodsData = { "trader": unitEntState.id, "preferredGoods": resource };
var selectTradingPreferredGoodsData = { "entities": selection, "preferredGoods": resource };
button.onpress = (function(e){ return function() { selectTradingPreferredGoods(e); } })(selectTradingPreferredGoodsData);
button.enabled = true;
button.tooltip = "Set " + resource + " as trading goods";
@ -574,7 +574,7 @@ function updateUnitCommands(entState, supplementalDetailsPanel, commandsPanel, s
if (entState.trader)
{
usedPanels["Trading"] = 1;
setupUnitTradingPanel(entState);
setupUnitTradingPanel(entState, selection);
}
// supplementalDetailsPanel.hidden = false;

View File

@ -422,9 +422,12 @@ function ProcessCommand(player, cmd)
break;
case "select-trading-goods":
var cmpTrader = Engine.QueryInterface(cmd.trader, IID_Trader);
if (cmpTrader)
cmpTrader.SetPreferredGoods(cmd.preferredGoods);
for each (var ent in cmd.entities)
{
var cmpTrader = Engine.QueryInterface(ent, IID_Trader);
if (cmpTrader)
cmpTrader.SetPreferredGoods(cmd.preferredGoods);
}
break;
case "barter":