Ticket #1206: #1206-2012-03-21.patch

File #1206-2012-03-21.patch, 4.6 KB (added by leper, 12 years ago)
  • binaries/data/config/default.cfg

     
    184184hotkey.session.queue = Shift                ; Modifier to queue unit orders instead of replacing
    185185hotkey.session.batchtrain = Shift           ; Modifier to train units in batches
    186186hotkey.session.massbarter = Shift           ; Modifier to barter bunch of resources
     187hotkey.session.unloadtype = Shift           ; Modifier to unload all units of type
    187188hotkey.session.deselectgroup = Ctrl         ; Modifier to deselect units when clicking group icon, instead of selecting
    188189hotkey.session.rotate.cw = RightBracket     ; Rotate building placement preview clockwise
    189190hotkey.session.rotate.ccw = LeftBracket     ; Rotate building placement preview anticlockwise
  • binaries/data/mods/public/gui/session/input.js

     
    14031403    resetIdleUnit();
    14041404}
    14051405
    1406 function unload(garrisonHolder, entity)
     1406function unload(garrisonHolder, entities)
    14071407{
    1408     Engine.PostNetworkCommand({"type": "unload", "entity": entity, "garrisonHolder": garrisonHolder});
     1408    if (Engine.HotkeyIsPressed("session.unloadtype"))
     1409        Engine.PostNetworkCommand({"type": "unload", "entities": entities, "garrisonHolder": garrisonHolder});
     1410    else
     1411        Engine.PostNetworkCommand({"type": "unload", "entities": [entities[0]], "garrisonHolder": garrisonHolder});
    14091412}
    14101413
    14111414function unloadAll(garrisonHolder)
  • binaries/data/mods/public/gui/session/unit_commands.js

     
    226226
    227227            case GARRISON:
    228228                var name = getEntityName(template);
    229                 var tooltip = "Unload " + getEntityName(template);
     229                var tooltip = "Unload " + getEntityName(template) + "\nSingle-click to unload 1. Shift-click to unload all of this type.";
    230230                var count = garrisonGroups.getCount(item);
    231231                getGUIObjectByName("unit"+guiName+"Count["+i+"]").caption = (count > 1 ? count : "");
    232232                break;
     
    508508            var groups = new EntityGroups();
    509509            groups.add(entState.garrisonHolder.entities);
    510510            setupUnitPanel("Garrison", usedPanels, entState, groups.getTemplateNames(),
    511                 function (item) { unload(entState.id, groups.getEntsByName(item)[0]); } );
     511                function (item) { unload(entState.id, groups.getEntsByName(item)); } );
    512512        }
    513513
    514514        var formations = getEntityFormationsList(entState);
  • binaries/data/mods/public/simulation/ai/common-api/entity.js

     
    424424        if (!this._template.GarrisonHolder)
    425425            return;
    426426       
    427         Engine.PostCommand({"type": "unload", "garrisonHolder": this.id(), "entity": unit.id()});
     427        Engine.PostCommand({"type": "unload", "garrisonHolder": this.id(), "entities": [unit.id()]});
    428428    },
    429429
    430430    unloadAll: function() {
  • binaries/data/mods/public/simulation/helpers/Commands.js

     
    337337        if (CanControlUnit(cmd.garrisonHolder, player, controlAllUnits))
    338338        {
    339339            var cmpGarrisonHolder = Engine.QueryInterface(cmd.garrisonHolder, IID_GarrisonHolder);
    340             if (!cmpGarrisonHolder || !cmpGarrisonHolder.Unload(cmd.entity))
     340            var notUngarrisoned = 0;
     341            for each (ent in cmd.entities)
     342            {
     343                if (!cmpGarrisonHolder || !cmpGarrisonHolder.Unload(ent))
     344                {
     345                    notUngarrisoned++;
     346                }
     347            }
     348            if (notUngarrisoned != 0)
    341349            {
    342350                var cmpPlayer = QueryPlayerIDInterface(player, IID_Player);
    343                 var notification = {"player": cmpPlayer.GetPlayerID(), "message": "Unable to ungarrison unit"};
     351                var notification = {"player": cmpPlayer.GetPlayerID(), "message": (notUngarrisoned == 1 ? "Unable to ungarrison unit" : "Unable to ungarrison units")};
    344352                var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
    345353                cmpGUIInterface.PushNotification(notification);
    346             }   
     354            }
    347355        }
    348356        else if (g_DebugCommands)
    349357        {