anchor.diff:  begin
     Result := True; //Required for override compatibility
   
  -  fCurrPosition := KMPointRound(fPosition);
  +  CurrPosition := KMPointRound(fPosition);
   
     if fCurrentAction = nil then
       raise ELocError.Create(gRes.Units[UnitType].GUIName + ' has no action at start of TKMUnitAnimal.UpdateState', fCurrPosition);
  
positive.code:     or (TKMUnitActionGoInOut(GetUnitAction).GetWaitingForPush) then
      begin
        //Position in a spiral nearest to entrance of house, updating IsUnit.
        if not gHands.FindPlaceForUnit(fInHouse.Entrance.X, fInHouse.Entrance.Y, UnitType, fCurrPosition, gTerrain.GetWalkConnectID(fInHouse.Entrance)) then
        begin
          //There is no space for this unit so it must be destroyed
          //todo: re-route to KillUnit and let it sort out that unit is invisible and cant be placed
  
negative.code: begin
    fPrevPosition := NextPosition;
    fNextPosition := aLoc;
  end;
  
  
  procedure TKMUnit.SetCurrPosition(const aLoc: TKMPoint);
  begin
    if not DYNAMIC_FOG_OF_WAR
      and (fOwner <> PLAYER_ANIMAL)
      and (fCurrPosition <> aLoc) then  //Update FOW only for new loc
      gHands.RevealForTeam(fOwner, aLoc, gRes.Units[fUnitType].Sight, FOG_OF_WAR_MAX);
  
    fCurrPosition := aLoc;
  end;
  
  
  