anchor.diff:    S.SaveToFile(aPath);
     S.Free;
   end;
  +
  +
   end.
  
positive.code:   11, 21, 8, 22, 25, 4, 9, 7, 6, 28,
    5, 2, 16, 23, 15, 1, 14, 24, 13, 12,
    17, 26, 19, 18, 3, 20, 29, 10);
  
  
    //Does house output needs to be ordered by Player or it keeps on producing by itself
    //Keeping 0/1 instead of booleans is neater
    HouseDoesOrders:array[THouseType] of byte = (
      0, 0,
      1,1,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,1,0,0,
      0,0,0,0,1,1,0,0);
  
    GUIBuildIcons_:array[0..HouseDatCount]of word = (
      0, //ht_None
      301, 302, 303, 304, 305,
      306, 307, 308, 309, 310,
      311, 312, 313, 314, 315,
      316, 317, 318, 319, 320,
      321, 322, 323, 324, 325,
      326, 327, 328, 329{, 338});
  
    TabletBuildIcons_:array[0..HouseDatCount]of word = (
      0, //ht_None
      251, 252, 253, 254, 255,
      256, 257, 258, 259, 260,
      261, 262, 263, 264, 265,
      266, 267, 268, 269, 270,
      271, 272, 273, 274, 275,
      276, 277, 278, 279{, 288});
  
  
    //What does house produces
    HouseOutput_:array[0..HouseDatCount] of THouseRes = (
  
negative.code:   Result := not (ResInput[1] in [rt_None,rt_All,rt_Warfare]); //Exclude aggregate types
  end;
  
  
  function TKMHouseDatClass.GetArea: THouseArea;
  begin
    Result := HouseInfo[fHouseType].PlanYX;
  end;
  
  
  function TKMHouseDatClass.GetDoesOrders: boolean;
  begin
    Result := HouseInfo[fHouseType].DoesOrders<>0;
  end;
  
  
  function TKMHouseDatClass.GetGUIIcon: word;
  begin
    Result := HouseInfo[fHouseType].BuildIcon;
  end;
  
  
  