Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
cl_minigames_hud.qh File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

float HUD_Minigame_InputEvent (float bInputType, float nPrimary, float nSecondary)
void HUD_Minigame_Mouse ()
void HUD_MinigameMenu_Close (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_CustomEntry (entity parent, string message, string event_arg)
float HUD_MinigameMenu_IsOpened ()

Function Documentation

◆ HUD_Minigame_InputEvent()

float HUD_Minigame_InputEvent ( float bInputType,
float nPrimary,
float nSecondary )

Definition at line 614 of file cl_minigames_hud.qc.

615{
616
618 return false;
619
620 if(bInputType == 3)
621 {
622 mousepos_x = nPrimary;
623 mousepos_y = nSecondary;
624 if ( active_minigame && HUD_mouse_over(HUD_PANEL(MINIGAMEBOARD)) )
625 active_minigame.minigame_event(active_minigame,"mouse_moved",mousepos);
626 return true;
627 }
628
629 if(bInputType == 2)
630 {
631 if ( active_minigame && HUD_mouse_over(HUD_PANEL(MINIGAMEBOARD)) )
632 active_minigame.minigame_event(active_minigame,"mouse_moved",mousepos);
633 return false;
634 }
635
636 // at this point bInputType can only be 0 or 1 (key pressed or released)
637 bool key_pressed = (bInputType == 0);
638
639 if(key_pressed) {
640 if(nPrimary == K_ALT) hudShiftState |= S_ALT;
641 if(nPrimary == K_CTRL) hudShiftState |= S_CTRL;
642 if(nPrimary == K_SHIFT) hudShiftState |= S_SHIFT;
643 if(nPrimary == K_MOUSE1) mouseClicked |= S_MOUSE1;
644 if(nPrimary == K_MOUSE2) mouseClicked |= S_MOUSE2;
645 }
646 else {
647 if(nPrimary == K_ALT) hudShiftState &= ~S_ALT;
648 if(nPrimary == K_CTRL) hudShiftState &= ~S_CTRL;
649 if(nPrimary == K_SHIFT) hudShiftState &= ~S_SHIFT;
650 if(nPrimary == K_MOUSE1) mouseClicked &= ~S_MOUSE1;
651 if(nPrimary == K_MOUSE2) mouseClicked &= ~S_MOUSE2;
652 }
653
654 // allow some binds
655 string con_keys = findkeysforcommand("toggleconsole", 0);
656 int keys = tokenize(con_keys); // findkeysforcommand returns data for this
657 int i;
658 for (i = 0; i < keys; ++i)
659 {
660 if(nPrimary == stof(argv(i)))
661 return false;
662 }
663
664 if ( active_minigame )
665 {
666 string device = "";
667 string action = key_pressed ? "pressed" : "released";
668 if ( nPrimary >= K_MOUSE1 && nPrimary <= K_MOUSE16 )
669 {
670 if ( HUD_mouse_over(HUD_PANEL(MINIGAMEBOARD)) )
671 device = "mouse";
672 }
673 else
674 device = "key";
675
676 if ( device && active_minigame.minigame_event(
677 active_minigame,strcat(device,"_",action),nPrimary) )
678 return true;
679 }
680
681 if ( nPrimary == K_MOUSE2 )
682 {
683 return true;
684 }
685 if ( nPrimary == K_MOUSE1 )
686 {
687 if (!key_pressed)
688 return true;
691 return true;
692 }
693 if ( nPrimary == K_UPARROW || nPrimary == K_KP_UPARROW )
694 {
695 if (!key_pressed)
696 return true;
699 else
701 return true;
702 }
703 else if ( nPrimary == K_DOWNARROW || nPrimary == K_KP_DOWNARROW )
704 {
705 if (!key_pressed)
706 return true;
709 else
711 return true;
712 }
713 else if ( nPrimary == K_HOME || nPrimary == K_KP_HOME )
714 {
715 if (!key_pressed)
716 return true;
718 return true;
719 }
720 else if ( nPrimary == K_END || nPrimary == K_KP_END )
721 {
722 if (!key_pressed)
723 return true;
725 return true;
726 }
727 else if ( nPrimary == K_KP_ENTER || nPrimary == K_ENTER || nPrimary == K_SPACE )
728 {
729 if (!key_pressed)
730 return true;
732 return true;
733 }
734 else if ( nPrimary == K_ESCAPE )
735 {
736 if (!key_pressed)
737 return true;
739 return true;
740 }
741
742 return false;
743}
entity active_minigame
entity HUD_MinigameMenu_entries
entity HUD_MinigameMenu_last_entry
void HUD_MinigameMenu_Click(entity menuitem)
entity HUD_MinigameMenu_activeitem
bool HUD_mouse_over(entity somepanel)
void HUD_MinigameMenu_Close(entity this, entity actor, entity trigger)
bool HUD_MinigameMenu_IsOpened()
#define HUD_PANEL(NAME)
Definition hud.qh:52
const int S_SHIFT
Definition hud.qh:129
int hudShiftState
Definition hud.qh:128
const int S_ALT
Definition hud.qh:131
vector mousepos
Definition hud.qh:103
const int S_CTRL
Definition hud.qh:130
const int S_MOUSE1
Definition hud_config.qh:10
bool autocvar__hud_configure
Definition hud_config.qh:3
int mouseClicked
Definition hud_config.qh:13
const int S_MOUSE2
Definition hud_config.qh:11
float K_SHIFT
Definition keycodes.qc:22
float K_MOUSE16
Definition keycodes.qc:146
float K_UPARROW
Definition keycodes.qc:15
float K_DOWNARROW
Definition keycodes.qc:16
float K_MOUSE1
Definition keycodes.qc:129
float K_CTRL
Definition keycodes.qc:21
float K_KP_UPARROW
Definition keycodes.qc:64
float K_SPACE
Definition keycodes.qc:10
float K_ALT
Definition keycodes.qc:20
float K_ENTER
Definition keycodes.qc:8
float K_KP_HOME
Definition keycodes.qc:62
float K_KP_DOWNARROW
Definition keycodes.qc:53
float K_MOUSE2
Definition keycodes.qc:130
float K_HOME
Definition keycodes.qc:41
float K_KP_ENTER
Definition keycodes.qc:74
float K_END
Definition keycodes.qc:42
float K_KP_END
Definition keycodes.qc:51
float K_ESCAPE
Definition keycodes.qc:9
float stof(string val,...)
float tokenize(string s)
string argv(float n)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
#define NULL
Definition post.qh:14

References active_minigame, argv(), autocvar__hud_configure, HUD_MinigameMenu_activeitem, HUD_MinigameMenu_Click(), HUD_MinigameMenu_Close(), HUD_MinigameMenu_entries, HUD_MinigameMenu_IsOpened(), HUD_MinigameMenu_last_entry, HUD_mouse_over(), HUD_PANEL, hudShiftState, K_ALT, K_CTRL, K_DOWNARROW, K_END, K_ENTER, K_ESCAPE, K_HOME, K_KP_DOWNARROW, K_KP_END, K_KP_ENTER, K_KP_HOME, K_KP_UPARROW, K_MOUSE1, K_MOUSE16, K_MOUSE2, K_SHIFT, K_SPACE, K_UPARROW, mouseClicked, mousepos, NULL, S_ALT, S_CTRL, S_MOUSE1, S_MOUSE2, S_SHIFT, stof(), strcat(), and tokenize().

Referenced by CSQC_InputEvent().

◆ HUD_Minigame_Mouse()

void HUD_Minigame_Mouse ( )

Definition at line 745 of file cl_minigames_hud.qc.

746{
748 return;
749
750 if ( HUD_MinigameMenu_IsOpened() && HUD_mouse_over(HUD_PANEL(MINIGAMEMENU)) )
752}
void HUD_MinigameMenu_MouseInput()
bool mv_active
Definition mapvoting.qh:17

References autocvar__hud_configure, HUD_MinigameMenu_IsOpened(), HUD_MinigameMenu_MouseInput(), HUD_mouse_over(), HUD_PANEL, and mv_active.

Referenced by HUD_Mouse().

◆ HUD_MinigameMenu_Close()

void HUD_MinigameMenu_Close ( entity this,
entity actor,
entity trigger )

Definition at line 382 of file cl_minigames_hud.qc.

383{
385 {
386 entity e, p;
387 for ( e = HUD_MinigameMenu_entries; e != NULL; e = p )
388 {
389 p = e.list_next;
390 delete(e);
391 }
395 }
396}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback

References entity(), HUD_MinigameMenu_activeitem, HUD_MinigameMenu_entries, HUD_MinigameMenu_IsOpened(), HUD_MinigameMenu_last_entry, and NULL.

Referenced by deactivate_minigame(), HUD_Minigame_InputEvent(), HUD_MinigameMenu(), HUD_MinigameMenu_CurrentButton(), MUTATOR_HOOKFUNCTION(), and Shutdown().

◆ HUD_MinigameMenu_CustomEntry()

void HUD_MinigameMenu_CustomEntry ( entity parent,
string message,
string event_arg )

Definition at line 352 of file cl_minigames_hud.qc.

353{
356 e.netname = event_arg;
358 //dprint("CustomEntry ",ftos(num_for_edict(parent))," ",menumessage," ",event_arg,"\n");
359}
entity parent
Definition animhost.qc:7
void HUD_MinigameMenu_ClickCustomEntry(entity this, entity actor, entity trigger)
void HUD_MinigameMenu_InsertEntry(entity newentry, entity prev)
entity HUD_MinigameMenu_SpawnSubEntry(string s, void(entity, entity, entity) click, entity parent)

References entity(), HUD_MinigameMenu_ClickCustomEntry(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_SpawnSubEntry(), and parent.

◆ HUD_MinigameMenu_IsOpened()