anchor.diff:      destructor Destroy(); override;
       procedure Save(SaveStream: TKMemoryStream);
       procedure Load(LoadStream: TKMemoryStream);
  +    procedure SyncLoad();
   
       procedure AfterMissionInit();
       procedure OwnerUpdate(aPlayer: TKMHandIndex);
  
positive.code:   for HT := HOUSE_MIN to HOUSE_MAX do
    begin
      SaveStream.Write(fPlannedHouses[HT].Count);
      Len := Length(fPlannedHouses[HT].Plans);
      SaveStream.Write( Len );
      for I := 0 to fPlannedHouses[HT].Count - 1 do
        SaveStream.Write(fPlannedHouses[HT].Plans[I], SizeOf(THousePlan));
    end;
  
    SaveStream.Write(fPerfIdx);
  
negative.code:   for HT := HOUSE_MIN to HOUSE_MAX do
    begin
      LoadStream.Read(fPlannedHouses[HT].Count);
      LoadStream.Read(fPlannedHouses[HT].Calculated);
      LoadStream.Read(Len);
      SetLength(fPlannedHouses[HT].Plans, Len);
      for I := 0 to fPlannedHouses[HT].Count - 1 do
        with fPlannedHouses[HT].Plans[I] do
        begin
          LoadStream.Read(Placed);
          LoadStream.Read(ShortcutsCompleted);
          LoadStream.Read(RemoveTreeInPlanProcedure);
          LoadStream.Read(HouseReservation);
          LoadStream.Read(ChopOnly);
          LoadStream.Read(House, 4); // Load ID
          LoadStream.Read(Loc, SizeOf(Loc));
          LoadStream.Read(SpecPoint, SizeOf(SpecPoint));
        end;
    end;
  
    LoadStream.Read(fPerfIdx);
  