anchor.diff:      Exit;
     end;
   
  -  fDamage := Math.min(fDamage + aAmount, GetMaxHealth);
  +  fDamage := Math.min(fDamage + aAmount, MaxHealth);
     if (fBuildState = hbs_Done) and BuildingRepair then
       fPlayers.Player[fOwner].BuildList.AddHouseRepair(Self);
   
  
positive.code:   if not Houses[i].IsDestroyed then
      Houses[i].UpdateState
    else //Else try to destroy the house object if all pointers are freed
      if FREE_POINTERS and (Houses[i].GetPointerCount = 0) then
      begin
        SetLength(IDsToDelete,ID+1);
        IDsToDelete[ID] := i;
  
negative.code: begin
    if IsComplete then exit;
  
    if (fBuildState=hbs_Wood) and (fBuildReserve = 0) then begin
      dec(fBuildSupplyWood);
      inc(fBuildReserve,50);
    end;
    if (fBuildState=hbs_Stone) and (fBuildReserve = 0) then begin
      dec(fBuildSupplyStone);
      inc(fBuildReserve,50);
    end;
  
    inc(fBuildingProgress, 5); //is how many effort was put into building nevermind applied damage
    dec(fBuildReserve, 5); //This is reserve we build from
  
    if (fBuildState=hbs_Wood) and (fBuildingProgress = fResource.HouseDat[fHouseType].WoodCost*50) then
      fBuildState := hbs_Stone;
  
    if (fBuildState=hbs_Stone) and (fBuildingProgress-fResource.HouseDat[fHouseType].WoodCost*50 = fResource.HouseDat[fHouseType].StoneCost*50) then
    begin
      fBuildState := hbs_Done;
      fPlayers.Player[fOwner].Stats.HouseEnded(fHouseType);
  