anchor.diff:  var I: Integer;
   begin
     SaveStream.Write('Houses');
  -  //Multiplayer saves must be identical, thus we force that no house is selected
  -  if (fSelectedHouse <> nil) and not fGame.IsMultiplayer then
  -    SaveStream.Write(fSelectedHouse.ID) //Store ID, then substitute it with reference on SyncLoad
  -  else
  -    SaveStream.Write(Integer(0));
   
     SaveStream.Write(Count);
     for I := 0 to Count - 1 do
  
positive.code:     function FindEmptyHouse(aUnitType:TUnitType; Loc:TKMPoint): TKMHouse;
      function FindHouse(aType:THouseType; X,Y:word; const aIndex:byte=1; aOnlyCompleted:boolean=true): TKMHouse;
      function GetTotalPointers: Cardinal;
      property SelectedHouse: TKMHouse read fSelectedHouse write fSelectedHouse;
      procedure Save(SaveStream: TKMemoryStream);
      procedure Load(LoadStream: TKMemoryStream);
      procedure SyncLoad;
  
negative.code: 
  
  procedure TKMHousesCollection.SyncLoad;
  var I:integer;
  begin
    for I := 0 to Count - 1 do
    begin
      Houses[I].SyncLoad;
      if Houses[I].fCurrentAction<>nil then
        Houses[I].fCurrentAction.fHouse := fPlayers.GetHouseByID(cardinal(Houses[I].fCurrentAction.fHouse));
    end;
  end;
  
  