X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fhud.qc;h=87ed2c4394be3d7721e10923b6ccd026e7c9d1f8;hp=2becced8e0cbcda94ad910946fc4480939b21856;hb=83fdfb28c41d23ca925df3708069fde58555a88c;hpb=70bba988cd32922d29e40235db6ad1d8149bdc67 diff --git a/qcsrc/client/hud/hud.qc b/qcsrc/client/hud/hud.qc index 2becced8e0..87ed2c4394 100644 --- a/qcsrc/client/hud/hud.qc +++ b/qcsrc/client/hud/hud.qc @@ -561,6 +561,24 @@ void Hud_Dynamic_Frame() HUD_Scale_Disable(); } +bool HUD_WouldShowCursor() +{ + if(autocvar__hud_configure) + return true; + if(mv_active) + return true; + //entity local_player = ((csqcplayer) ? csqcplayer : CSQCModel_server2csqc(player_localentnum - 1)); // TODO: doesn't use regular cursor handling + //if(local_player.viewloc && (local_player.viewloc.spawnflags & VIEWLOC_FREEAIM)) + //return true; + if(HUD_Radar_Clickable()) + return true; + if(HUD_MinigameMenu_IsOpened()) + return true; + if(QuickMenu_IsOpened()) + return true; + return false; +} + void HUD_Main() { int i; @@ -676,10 +694,20 @@ void HUD_Main() HUD_Panel_Draw(HUD_PANEL(RADAR)); if(autocvar__con_chat_maximized) HUD_Panel_Draw(HUD_PANEL(CHAT)); - if(hud_panel_quickmenu) + if (QuickMenu_IsOpened()) HUD_Panel_Draw(HUD_PANEL(QUICKMENU)); HUD_Panel_Draw(HUD_PANEL(SCOREBOARD)); + int cursor_active_prev = cursor_active; + cursor_active = HUD_WouldShowCursor(); + if (cursor_active_prev != cursor_active && autocvar_hud_cursormode) + { + setcursormode(cursor_active); + // cursor inactive this frame, will be set to 1 the next frame + if (cursor_active) + cursor_active = -1; + } + if (intermission == 2) HUD_Reset();