anchor.diff:    if (Key = ord('P')) and not fMultiplayer then SetPause(True); //Display pause overlay
   
     //Menu shortcuts
  -  if Key in [ord('1')..ord('4')] then Button_Main[Key-48].Click;
  +  if InRange(Key-49, 0, 3) then Button_Main[TKMTabButtons(Key-49)].Click;
  +
     if (Key = VK_ESCAPE) and (   Button_Army_Join_Cancel.Click
                               or Button_MessageClose.Click
                               or Image_ChatClose.Click
                               or Image_AlliesClose.Click
  -                            or Button_Main[5].Click) then Exit;
  +                            or Button_Back.Click) then Exit;
     //Messages
     if Key = VK_SPACE  then Button_MessageGoTo.Click; //In KaM spacebar centers you on the message
     if Key = VK_DELETE then Button_MessageDelete.Click;
  
positive.code: const MAX_VISIBLE_MSGS = 32;
  
  type
    //todo: TTabButtons = (tbBuild, tbRatio, tbStats, tbMenu, tbBack);
  
    TKMGamePlayInterface = class (TKMUserInterface)
    private
  
negative.code: 
  procedure TKMGamePlayInterface.House_Demolish(Sender:TObject);
  begin
    if (fPlayers.Selected = nil) or not (fPlayers.Selected is TKMHouse) then Exit;
  
    if Sender = Button_House_DemolishYes then
    begin
      fGame.GameInputProcess.CmdBuild(gic_BuildRemoveHouse, TKMHouse(fPlayers.Selected).GetPosition);
      ShowHouseInfo(nil, False); //Simpliest way to reset page and ShownHouse
    end else
      fAskDemolish := False;
  
    SwitchPage(Button_Main[tbBuild]); //Return to build menu
  end;
  
  
  procedure TKMGamePlayInterface.House_RepairToggle(Sender: TObject);
  begin
    if (fPlayers.Selected = nil) or not (fPlayers.Selected is TKMHouse) then Exit;
  
    fGame.GameInputProcess.CmdHouse(gic_HouseRepairToggle, TKMHouse(fPlayers.Selected));
    Button_House_Repair.TexID := IfThen(TKMHouse(fPlayers.Selected).BuildingRepair, 39, 40);
  end;
  
  
  procedure TKMGamePlayInterface.House_WareDeliveryToggle(Sender: TObject);
  begin
    if (fPlayers.Selected = nil) or not (fPlayers.Selected is TKMHouse) then Exit;
  
    fGame.GameInputProcess.CmdHouse(gic_HouseDeliveryToggle, TKMHouse(fPlayers.Selected));
    Button_House_Goods.TexID := IfThen(TKMHouse(fPlayers.Selected).WareDelivery, 37, 38);
  end;
  
  
  procedure TKMGamePlayInterface.House_OrderClick(Sender: TObject; AButton: TMouseButton);
  var I: Integer; Amt:byte;
  begin
    if (fPlayers.Selected = nil) or not (fPlayers.Selected is TKMHouse) then Exit;
  
    Amt := 0;
    if AButton = mbLeft then Amt := 1;
  