anchor.diff:    SlideX := U.GetSlide(axX);
     SlideY := U.GetSlide(axY);
     AnimStep := U.AnimStep;
  +  AnimFraction := 0.0;
   
     if U.Action <> nil then
       Action := U.Action.ActionType
     else
       Action := uaUnknown;
  -end;
  -
  -
  -class function TKMUnitVisualState.Lerp(const A, B: TKMUnitVisualState; Mix: Single): TKMUnitVisualState;
  -begin
  -  Result.PosF := KMLerp(A.PosF, B.PosF, Mix);
  -  Result.SlideX := KromUtils.Lerp(A.SlideX, B.SlideX, Mix);
  -  Result.SlideY := KromUtils.Lerp(A.SlideY, B.SlideY, Mix);
  -  if Mix < 0.5 then
  -  begin
  -    Result.Dir := A.Dir;
  -    Result.AnimStep := A.AnimStep;
  -    Result.Action := A.Action;
  -  end
  -  else
  -  begin
  -    Result.Dir := B.Dir;
  -    Result.AnimStep := B.AnimStep;
  -    Result.Action := B.Action;
  -  end;
   end;
   
   
  
positive.code: 
  function TKMUnitVisual.GetLerp(aLag: Single): TKMUnitVisualState;
  begin
    Result := TKMUnitVisualState.Lerp(fCurr, fPrev, aLag);
  end;
  
  
  
negative.code:     SlideX, SlideY: Single;
      Action: TKMUnitActionType;
      AnimStep: Integer;
      AnimFraction: Single;
  
      procedure SetFromUnit(aUnit: TObject);
    end;
  
    // Purely visual thing. Split from TKMUnit to aviod mixup of game-logic and render Positions
  