anchor.diff:    if gMySpectator.Hand.InCinematic then
     begin
       gMySpectator.Selected := nil;
  +    UpdateSelectedObject;
       // Close panels unless it is an allowed menu
       if not Panel_Menu.Visible and not Panel_Load.Visible and not Panel_Save.Visible
       and not fGuiMenuSettings.Visible and not Panel_Quit.Visible and not fGuiGameStats.Visible then
  
positive.code:       fViewport.Position := KMPointF(gHands[gMySpectator.HandIndex].CenterScreen); //By default set viewport position to hand CenterScreen
  
    gMySpectator.Selected := LastSelectedObj;  // Change selected object to last one for this hand or Reset it to nil
  end;
  
  
  
negative.code:       if Panel_Unit.Visible then
          SwitchPage(nil);
    end;
  end;
  
  
  { Should update any items changed by game (resource counts, hp, etc..) }
  { If it ever gets a bottleneck then some static Controls may be excluded from update }
  procedure TKMGamePlayInterface.UpdateState(aTickCount: Cardinal);
  var
    I: Integer;
    Rect: TKMRect;
  begin
    // Update minimap every 1000ms
    if aTickCount mod 10 = 0 then
      fMinimap.Update(False);
  
    UpdateSelectedObject;
  
    fAlerts.UpdateState(aTickCount);
  
    // Update peacetime counter
    if gGame.GameOptions.Peacetime <> 0 then
  