anchor.diff:      procedure UpdateHitPoints;
       procedure DoKill(aShowAnimation: Boolean);
       procedure DoDismiss;
  +
  +    property CurrPosition: TKMPoint read fCurrPosition write SetCurrPosition;
     public
       AnimStep: Integer;
       IsExchanging: Boolean; //Current walk is an exchange, used for sliding
  
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:   if fCurrentAction = nil then
      raise ELocError.Create(gRes.Units[UnitType].GUIName+' has no action in TKMUnit.UpdateState',fCurrPosition);
  
    CurrPosition := KMPointRound(fPosition); //will update FOW
  
    case fCurrentAction.Execute of
      ar_ActContinues: begin CurrPosition := KMPointRound(fPosition); Exit; end; //will update FOW
      ar_ActAborted:   begin FreeAndNil(fCurrentAction); FreeAndNil(fUnitTask); end;
      ar_ActDone:      FreeAndNil(fCurrentAction);
    end;
    CurrPosition := KMPointRound(fPosition); //will update FOW
  
    if fUnitTask <> nil then
    case fUnitTask.Execute of
  