anchor.diff:  
     //Do not initiate exchanges if we are in DestBlocked mode, as we are zero priority and other units will
     if not fDestBlocked
  -  and (((HighestInteractionCount >= EXCHANGE_TIMEOUT) and (fInteractionStatus <> kisPushed)) or //When pushed this timeout/counter is different
  +  and (((aHighestInteractionCount >= EXCHANGE_TIMEOUT) and (fInteractionStatus <> kisPushed)) or //When pushed this timeout/counter is different
        (fInteractionStatus = kisPushed)) then //If we get pushed then always try exchanging (if we are here then there is no free tile)
     begin //Try to exchange with the other unit if they are willing
   
       //We must alert the opponent to our presence because it looks bad when you exchange places
       //with the enemy instead of fighting them.
       //CheckAlliance is for optimisation since pushing allies doesn't matter
  -    if (fOpponent is TKMUnitWarrior)
  -    and (gHands.CheckAlliance(fOpponent.Owner, fUnit.Owner) = atEnemy)
  -    and TKMUnitWarrior(fOpponent).CheckForEnemy then
  +    if (aOpponent is TKMUnitWarrior)
  +    and (gHands.CheckAlliance(aOpponent.Owner, fUnit.Owner) = atEnemy)
  +    and TKMUnitWarrior(aOpponent).CheckForEnemy then
         Exit;
   
       //If Unit on the way is walking somewhere and not exchanging with someone else
  -    if (fOpponent.Action is TKMUnitActionWalkTo)
  -    and (not TKMUnitActionWalkTo(fOpponent.Action).fDoExchange)
  +    if (aOpponent.Action is TKMUnitActionWalkTo)
  +    and (not TKMUnitActionWalkTo(aOpponent.Action).fDoExchange)
       //Unit not yet arrived on tile, wait till it does, otherwise there might be 2 units on one tile
  -    and (not TKMUnitActionWalkTo(fOpponent.Action).fDoesWalking)
  +    and (not TKMUnitActionWalkTo(aOpponent.Action).fDoesWalking)
       //Diagonal vertex must not be in use
       and ((not KMStepIsDiag(fUnit.Position,NodeList[NodePos+1])) or (not gTerrain.HasVertexUnit(KMGetDiagVertex(fUnit.Position,NodeList[NodePos+1])))) then
         //Check that our tile is walkable for the opponent! (we could be a worker on a building site)
  -      if (TKMUnitActionWalkTo(fOpponent.Action).GetEffectivePassability in gTerrain.Land[fUnit.Position.Y,fUnit.Position.X].Passability) then
  +      if (TKMUnitActionWalkTo(aOpponent.Action).GetEffectivePassability in gTerrain.Land[fUnit.Position.Y,fUnit.Position.X].Passability) then
         begin
           //Check unit's future position is where we are now and exchange (use NodeList rather than direction as it's not always right)
  -        if TKMUnitActionWalkTo(fOpponent.Action).GetNextNextPosition(opponentNextNextPos) then
  +        if TKMUnitActionWalkTo(aOpponent.Action).GetNextNextPosition(opponentNextNextPos) then
           begin
             if KMSamePoint(opponentNextNextPos, fUnit.Position) then
             begin
               //Graphically both units are walking side-by-side, but logically they simply walk through each-other.
  -            TKMUnitActionWalkTo(fOpponent.Action).PerformExchange(KMPOINT_ZERO); //Request unforced exchange
  +            TKMUnitActionWalkTo(aOpponent.Action).PerformExchange(KMPOINT_ZERO); //Request unforced exchange
   
               Explanation := 'Unit in the way is walking in the opposite direction. Performing an exchange';
               ExplanationLogAdd;
  
positive.code:   begin
      Explanation := 'Diagonal vertex is being used, we must wait';
      ExplanationLogAdd;
      Result := False;
      Exit;
    end;
  
    //If there's no unit we can keep on walking, interaction does not need to be solved
  
negative.code:     Exit;
  
    //Make sure they are still moving out of the way
    if (aOpponent.Action is TKMUnitActionWalkTo)
    and (TKMUnitActionWalkTo(aOpponent.Action).fInteractionStatus = kisPushed) then
    begin
      Explanation := 'Unit is blocking the way and has been asked to move';
      ExplanationLogAdd;
  