anchor.diff:    TKMKeyArea = (kaCommon, kaGame, kaMapEdit);
   
   const
  +  KEYMAP_COUNT = 57;
  +   
     // Load key IDs from this include file
  -  KEYMAP_COUNT = 57;
     {$I KM_KeyIDs.inc}
   
  +  // Default keys
     DEF_KEYS: array [0..KEYMAP_COUNT-1] of Byte = (
       37,  39,  38,  40, 112, 113, 114, 115,  72,  83,
       76,  70,  88, 187, 189, 190, 188, 116, 117, 118,
  
positive.code:   if Key in [121, 122] then
      Result := False
    else
    // Else check it key already has an owner in it's own area (or kaCommon)
    begin
      for I := 0 to KEYMAP_COUNT -1 do
        case Area of
  
negative.code:     procedure SetFuncs(aIndex: Word; aValue: TKMFuncInfo);
    public
      constructor Create;
      function GetKeyName(aKey: Word): string;
      function GetKeyNameById(aId: Word): string;
      function GetFunctionNameById(aId: Integer): string;
      function AllowKeySet(Area: TKMKeyArea; Key: Word): Boolean; 
      property Count: Integer read fCount;
      property Funcs[aIndex: Word]: TKMFuncInfo read GetFuncs write SetFuncs; default;
      procedure LoadKeymapFile;
      procedure ResetKeymap;
      procedure SaveKeymap;
    end;
  
  
  var
    // All Keys accessible from everywhere
    gResKeys: TKMKeyLibrary;
  
  
  