anchor.diff:  
     TUnitActionWalkTo = class(TUnitAction)
     private
  -    fWalkFrom:TKMPoint; //Walking from this spot, used only in Create
  -    fWalkTo:TKMPoint; //Where are we going to
  -    fNewWalkTo:TKMPoint; //If we recieve a new TargetLoc it will be stored here
  -    fDistance:single; //How close we need to get to our aim
  +    fWalkFrom: TKMPoint; //Walking from this spot, used only in Create
  +    fWalkTo: TKMPoint; //Where are we going to
  +    fNewWalkTo: TKMPoint; //If we recieve a new TargetLoc it will be stored here
  +    fDistance: Single; //How close we need to get to our target
       fUseExactTarget: boolean; //If we don't care about exact position
  -    fTargetUnit:TKMUnit; //Folow this unit
  -    fTargetHouse:TKMHouse; //Go to this House
  -    fPass:TPassability; //Desired passability set once on Create
  +    fTargetUnit: TKMUnit; //Folow this unit
  +    fTargetHouse: TKMHouse; //Go to this House
  +    fPass: TPassability; //Desired passability set once on Create
       fDoesWalking, fWaitingOnStep: Boolean;
       fDestBlocked: Boolean; //Our route is blocked by busy units, so we must wait for them to clear. Give way to all other units (who might be carrying stone for the worker blocking us)
       fDoExchange: Boolean; //Command to make exchange maneuver with other unit, should use MakeExchange when vertex use needs to be set
  
positive.code: 
  function TUnitActionWalkTo.DoUnitInteraction: Boolean;
  var
    fOpponent:TKMUnit;
    HighestInteractionCount: integer;
  begin
    Result:=true; //false = interaction yet unsolved, stay and wait.
    if not DO_UNIT_INTERACTION then exit;
  
    //If there's a unit using this vertex to walk diagonally then we must wait, they will be finished after this step
  
negative.code: 
  
  function TUnitActionWalkTo.AssembleTheRoute: Boolean;
  var
    I: Integer;
    NodeList2: TKMPointList;
  begin
    //Build a piece of route to return to nearest road piece connected to destination road network
    if (fPass = CanWalkRoad)
  