anchor.diff:    end;
   
     //Take attack order
  -  if (fOrder=wo_Attack) and GetUnitAction.StepDone and CheckCanAbandon then
  +  if (fOrder=wo_Attack) and GetUnitAction.StepDone and CanInterruptAction then
     begin
       SetActionWalk(Self, GetOrderTarget.NextPosition, KMPoint(0,0), ua_Walk, true, GetOrderTarget);
       fOrder := wo_None;
  
positive.code:     fState := ws_Walking;
    end;
  
    if (fOrder=wo_Walk) and GetUnitAction.StepDone and CheckCanAbandon then
    begin
      if GetUnitTask <> nil then FreeAndNil(fUnitTask);
      //If we are not the commander then walk to near
  
negative.code: 
  
  function TKMUnitWarrior.CheckForEnemy: boolean;
  var i,k,WCount,OCount:shortint;
      U, BestU: TKMUnit;
      Warriors,Others: array[1..8] of TKMUnit;
  begin
    Result := false; //Did we pick a fight?
    if not ENABLE_FIGHTING then exit;
    if not CanInterruptAction then exit;
  
    //This function should not be run too often, as it will take some time to execute (e.g. with 200 warriors it could take a while)
    WCount := 0;
  