anchor.diff:      NextUnit := gHands.GetNextUnitWSameType(TKMUnit(gMySpectator.Selected));
       if NextUnit <> nil then
       begin
  -      gMySpectator.Selected := NextUnit;
  -      if (fUIMode in [umSP, umMP]) and not HasLostMPGame then
  -        gSoundPlayer.PlayCitizen(NextUnit.UnitType, sp_Select); // play unit selection sound
  +      SelectUnit(NextUnit);
         fViewport.Position := NextUnit.PositionF; //center viewport on that unit
       end;
   
  
positive.code:     NextUnitGroup := gHands.GetNextGroupWSameType(TKMUnitGroup(gMySpectator.Selected));
      if NextUnitGroup <> nil then
      begin
        gMySpectator.Selected := NextUnitGroup;
        NextUnitGroup.SelectFlagBearer;
        if (fUIMode in [umSP, umMP]) and not HasLostMPGame then
          gSoundPlayer.PlayWarrior(NextUnitGroup.SelectedUnit.UnitType, sp_Select); // play unit group selection sound
        fViewport.Position := NextUnitGroup.SelectedUnit.PositionF; //center viewport on that unit
      end;
  
  
negative.code:     procedure Selection_Assign(aId: Word; aObject: TObject);
      procedure Selection_Link(aId: Word; aObject: TObject);
      procedure Selection_Select(aId: Word);
      procedure SelectUnit(aUnit: TKMUnit);
      procedure SelectUnitGroup(aGroup: TKMUnitGroup);
      procedure SelectNextGameObjWSameType;
      procedure SwitchPage(Sender: TObject);
      procedure DisplayHint(Sender: TObject);
  