anchor.diff:      SingleMap_Top:integer; //Top map in list
       SingleMap_Selected:integer; //Selected map
       SingleMap_Count:integer; //Number of maps in list
  +    SingleMapsInfo:TKMMapsInfo;
  +    SingleMap_Difficulty:byte;
     protected
       KMPanel_Main1:TKMPanel;
         L:array[1..20]of TKMLabel;
  
positive.code: 
  
  procedure TKMMainMenuInterface.SingleMap_RefreshList();
  var i:integer; MapInfo:TKMMapInfo;
  begin
    MapInfo:=TKMMapInfo.Create;
    MapInfo.ScanSingleMapsFolder('');
  
    for i:=SingleMap_Top to SingleMap_Top + min(MapInfo.GetMapCount,SingleMap_Count) - 1 do begin //Fill with existing maps
      KMButton_SingleMode[i].TexID:=28+byte(not MapInfo.IsFight(i))*14;
      KMButton_SinglePlayers[i].Caption:=inttostr(MapInfo.GetPlayerCount(i));
      KMLabel_SingleTitle1[i].Caption:=MapInfo.GetTitle(i);
      KMLabel_SingleTitle2[i].Caption:=MapInfo.GetSmallDesc(i);
      KMButton_SingleSize[i].Caption:=MapInfo.GetMapSize(i);
    end;
    for i:=SingleMap_Top + min(MapInfo.GetMapCount,SingleMap_Count) to SingleMap_Top + SingleMap_Count - 1 do begin //Fill the rest if there's place left
      KMButton_SingleMode[i].TexID:=0;
      KMButton_SinglePlayers[i].Caption:='';
      KMLabel_SingleTitle1[i].Caption:='';
  
negative.code: unit KM_GamePlayInterface;
  interface
  uses SysUtils, KromUtils, KromOGLUtils, Math, Classes, Controls, StrUtils, OpenGL,
    KM_Controls, KM_Houses, KM_Units, KM_Defaults, KM_LoadDAT;
  
  type TKMMainMenuInterface = class
    private
  