anchor.diff:    if Assigned(fPlayers) and Assigned(fPlayers.Player[byte(fOwner)]) then
       fPlayers.Player[byte(fOwner)].DestroyedUnit(fUnitType);
   
  -  fThought:=th_None; //Reset thought
  +  fThought := th_None; //Reset thought
     SetAction(nil,0); //Dispose of current action
     FreeAndNil(fUnitTask); //Should be overriden to dispose of Task-specific items
     fUnitTask:=TTaskDie.Create(Self);
  
positive.code: procedure TKMUnit.AbandonWalk;
  begin
    if GetUnitAction is TUnitActionWalkTo then
      SetActionAbandonWalk(Self, TUnitActionWalkTo(GetUnitAction).GetNextPosition, ua_Walk)
    else SetActionStay(0, ua_Walk); //Error
  end;
  
  
  function TKMUnit.GetDesiredPassability():TPassability;
  begin
    case fUnitType of //Select desired passability depending on unit type
      ut_Serf..ut_Fisher,ut_StoneCutter..ut_Recruit: Result:=canWalkRoad; //Citizens except Worker
      ut_Wolf..ut_Duck: Result:=AnimalTerrain[byte(fUnitType)] //Animals
      else Result := canWalk; //Worker, Warriors
    end;
  
    if not DO_SERFS_WALK_ROADS then Result := canWalk; //Reset everyone to canWalk for debug
  
negative.code: 
  function TKMUnit.GetPosition():TKMPoint;
  begin
    Result := KMPointRound(fPosition);
  end;
  
  function TKMUnit.GetUnitActionType():TUnitActionType;
  