Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
cl_minigames_hud.qc File Reference
Include dependency graph for cl_minigames_hud.qc:
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_MinigameBoard (bool should_draw)
void HUD_MinigameBoard_Export (int fh)
void HUD_MinigameHelp (bool should_draw)
void HUD_MinigameHelp_Export (int fh)
void HUD_MinigameMenu (bool should_draw)
void HUD_MinigameMenu_Click (entity menuitem)
bool HUD_MinigameMenu_Click_ExpandCollapse (entity this)
void HUD_MinigameMenu_ClickCreate (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickCreate_Entry (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickCurrentGame (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickCustomEntry (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickInvite (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickInvite_Entry (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickJoin (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickJoin_Entry (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickQuit (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_Close (entity this, entity actor, entity trigger)
void HUD_MinigameMenu_CurrentButton ()
void HUD_MinigameMenu_CustomEntry (entity parent, string menumessage, string event_arg)
void HUD_MinigameMenu_DrawColoredEntry (vector pos, string s, vector fontsize)
void HUD_MinigameMenu_DrawEntry (vector pos, string s, vector fontsize, vector color)
void HUD_MinigameMenu_EraseEntry (entity e)
void HUD_MinigameMenu_Export (int fh)
void HUD_MinigameMenu_InsertEntry (entity newentry, entity prev)
bool HUD_MinigameMenu_IsOpened ()
void HUD_MinigameMenu_MouseInput ()
void HUD_MinigameMenu_Open ()
entity HUD_MinigameMenu_SpawnEntry (entity entry, string s, vector offset, vector fontsize, vector color, void(entity, entity, entity) click)
entity HUD_MinigameMenu_SpawnSubEntry (string s, void(entity, entity, entity) click, entity parent)
void HUD_MinigameStatus (bool should_draw)
void HUD_MinigameStatus_Export (int fh)
bool HUD_mouse_over (entity somepanel)

Variables

vector colormod
entity HUD_MinigameMenu_activeitem
entity HUD_MinigameMenu_entries
entity HUD_MinigameMenu_last_entry

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_MinigameBoard()

void HUD_MinigameBoard ( bool should_draw)

Definition at line 46 of file cl_minigames_hud.qc.

47{
48 if (!should_draw)
49 return;
51 return;
52
53 entity hud_minigame = NULL;
54
56 {
57 if (!active_minigame)
58 return;
59 hud_minigame = active_minigame.descriptor;
60 }
61 else
62 hud_minigame = minigame_get_descriptor("nmm");
63
64 if ( !hud_minigame )
65 return;
66
68
69
70 vector pos, mySize;
71 pos = panel_pos;
72 mySize = panel_size;
73
74 hud_minigame.minigame_hud_board(pos,mySize);
75}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
void HUD_Panel_LoadCvars()
Definition hud.qc:215
vector panel_size
Definition hud.qh:163
vector panel_pos
Definition hud.qh:162
entity minigame_get_descriptor(string id)
Definition minigames.qc:5
vector
Definition self.qh:92

References active_minigame, autocvar__hud_configure, entity(), HUD_MinigameMenu_IsOpened(), HUD_Panel_LoadCvars(), minigame_get_descriptor(), NULL, panel_pos, panel_size, and vector.

◆ HUD_MinigameBoard_Export()

void HUD_MinigameBoard_Export ( int fh)

Definition at line 12 of file cl_minigames_hud.qc.

13{
14 // allow saving cvars that aesthetically change the panel into hud skin files
15}

◆ HUD_MinigameHelp()

void HUD_MinigameHelp ( bool should_draw)

Definition at line 573 of file cl_minigames_hud.qc.

574{
575 if (!should_draw)
576 return;
578 return;
579
580 string help_message;
581
583 {
584 if (!active_minigame)
585 return;
586 help_message = active_minigame.message;
587 }
588 else
589 help_message = _("Minigame message");
590
591 if ( !help_message )
592 return;
593
595
596
597 vector pos, mySize;
598 pos = panel_pos;
599 mySize = panel_size;
600
602 {
603 pos += '1 1 0' * panel_bg_padding;
604 mySize -= '2 2 0' * panel_bg_padding;
605 }
606
607 minigame_drawcolorcodedstring_wrapped( mySize_x, pos, help_message,
609}
vector minigame_drawcolorcodedstring_wrapped(float maxwidth, vector pos, string text, vector fontsize, float theAlpha, int drawflags, float align)
vector hud_fontsize
Definition main.qh:77
const float DRAWFLAG_NORMAL
float panel_fg_alpha
Definition hud.qh:169
float panel_bg_padding
Definition hud.qh:174

References active_minigame, autocvar__hud_configure, DRAWFLAG_NORMAL, hud_fontsize, HUD_MinigameMenu_IsOpened(), HUD_Panel_LoadCvars(), minigame_drawcolorcodedstring_wrapped(), panel_bg_padding, panel_fg_alpha, panel_pos, panel_size, and vector.

◆ HUD_MinigameHelp_Export()

void HUD_MinigameHelp_Export ( int fh)

Definition at line 22 of file cl_minigames_hud.qc.

23{
24 // allow saving cvars that aesthetically change the panel into hud skin files
25}

◆ HUD_MinigameMenu()

void HUD_MinigameMenu ( bool should_draw)

Definition at line 502 of file cl_minigames_hud.qc.

503{
504 if (!should_draw)
505 return;
506 if (mv_active)
507 {
510 return;
511 }
512
514 return;
515
517
520
522 {
523 panel_pos += '1 1 0' * panel_bg_padding;
524 panel_size -= '2 2 0' * panel_bg_padding;
525 }
526
527 HUD_MinigameMenu_DrawEntry(panel_pos,_("Minigames"),hud_fontsize*2,'0.25 0.47 0.72');
528 panel_pos_y += hud_fontsize_y*2;
529
531 vector offset;
532 float itemh;
533 vector imgsz = '22 22 0'; // NOTE: if changed, edit where HUD_MinigameMenu_activeitem is selected
534 for ( entity e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next )
535 {
536 color = e.colormod;
537
538 offset = e.origin;
539 itemh = e.size_y;
540
541 if ( e.model )
542 itemh = imgsz_y;
543
544 if ( e.flags & 2 )
545 {
546 drawfill(panel_pos, eX*panel_size_x + eY*itemh, e.colormod, panel_fg_alpha, DRAWFLAG_NORMAL);
547 color = '0 0 0';
548 }
549
550 if ( e.model )
551 {
552 drawpic( panel_pos+offset, e.model, imgsz, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL );
553 offset_x += imgsz_x;
554 offset_y = (imgsz_y-e.size_y) / 2;
555 }
556
557 if ( e.flags & 1 )
558 HUD_MinigameMenu_DrawColoredEntry(panel_pos+offset,e.message,e.size);
559 else
560 HUD_MinigameMenu_DrawEntry(panel_pos+offset,e.message,e.size,color);
561
563 drawfill(panel_pos, eX*panel_size_x + eY*itemh,'1 1 1', 0.25 * panel_fg_alpha, DRAWFLAG_ADDITIVE);
564
565 panel_pos_y += itemh;
566 }
567}
void HUD_MinigameMenu_DrawColoredEntry(vector pos, string s, vector fontsize)
void HUD_MinigameMenu_DrawEntry(vector pos, string s, vector fontsize, vector color)
#define drawpic(position, pic, size, rgb, alpha, flag)
Definition draw.qh:21
#define drawfill(position, size, rgb, alpha, flag)
Definition draw.qh:36
const float DRAWFLAG_ADDITIVE
vector color
Definition dynlight.qc:15
void HUD_Scale_Disable()
Definition hud.qc:84
#define HUD_Panel_DrawBg()
Definition hud.qh:55
const vector eY
Definition vector.qh:45
const vector eX
Definition vector.qh:44

References color, drawfill, DRAWFLAG_ADDITIVE, DRAWFLAG_NORMAL, drawpic, entity(), eX, eY, hud_fontsize, HUD_MinigameMenu_activeitem, HUD_MinigameMenu_Close(), HUD_MinigameMenu_DrawColoredEntry(), HUD_MinigameMenu_DrawEntry(), HUD_MinigameMenu_entries, HUD_MinigameMenu_IsOpened(), HUD_Panel_DrawBg, HUD_Panel_LoadCvars(), HUD_Scale_Disable(), mv_active, NULL, panel_bg_padding, panel_fg_alpha, panel_pos, panel_size, and vector.

◆ HUD_MinigameMenu_Click()

void HUD_MinigameMenu_Click ( entity menuitem)

Definition at line 152 of file cl_minigames_hud.qc.

153{
154 if ( menuitem )
155 {
156 menuitem.use(menuitem, NULL, NULL);
157 }
158}

References entity(), and NULL.

Referenced by HUD_Minigame_InputEvent(), HUD_MinigameMenu_Click_ExpandCollapse(), HUD_MinigameMenu_CurrentButton(), and HUD_MinigameMenu_EraseEntry().

◆ HUD_MinigameMenu_Click_ExpandCollapse()

bool HUD_MinigameMenu_Click_ExpandCollapse ( entity this)

Definition at line 218 of file cl_minigames_hud.qc.

219{
220 entity e;
221 if ( this.flags & 2 )
222 {
224 HUD_MinigameMenu_activeitem.owner == this )
226 this.flags &= ~2;
227 for ( e = this.list_next; e != NULL && e.owner == this; e = this.list_next )
228 {
229 if ( e.flags & 2 )
231 this.list_next = e.list_next;
232 delete(e);
233 }
234 if ( this.list_next )
235 this.list_next.list_prev = this;
236 else
238 }
239 else
240 {
241 for ( e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next )
242 {
243 if ( (e.flags & 2) && e.origin_x == this.origin_x)
245 }
246
247 this.flags |= 2;
248
249 return true;
250 }
251 return false;
252}
float flags
entity list_next
Definition minigames.qh:6

References entity(), flags, HUD_MinigameMenu_activeitem, HUD_MinigameMenu_Click(), HUD_MinigameMenu_entries, HUD_MinigameMenu_last_entry, list_next, and NULL.

Referenced by HUD_MinigameMenu_ClickCreate(), HUD_MinigameMenu_ClickCurrentGame(), HUD_MinigameMenu_ClickInvite(), and HUD_MinigameMenu_ClickJoin().

◆ HUD_MinigameMenu_ClickCreate()

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

Definition at line 255 of file cl_minigames_hud.qc.

256{
258 {
259 entity curr;
260 entity prev = this;
261 FOREACH(Minigames, true, {
263 curr.netname = it.netname;
264 curr.model = strzone(minigame_texture(strcat(it.netname,"/icon")));
266 prev = curr;
267 });
268 }
269}
string minigame_texture(string name)
void HUD_MinigameMenu_ClickCreate_Entry(entity this, entity actor, entity trigger)
bool HUD_MinigameMenu_Click_ExpandCollapse(entity this)
void HUD_MinigameMenu_InsertEntry(entity newentry, entity prev)
entity HUD_MinigameMenu_SpawnSubEntry(string s, void(entity, entity, entity) click, entity parent)
prev
Definition all.qh:73
#define FOREACH(list, cond, body)
Definition iter.qh:19
string strzone(string s)

References entity(), FOREACH, HUD_MinigameMenu_Click_ExpandCollapse(), HUD_MinigameMenu_ClickCreate_Entry(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_SpawnSubEntry(), minigame_texture(), prev, strcat(), and strzone().

Referenced by HUD_MinigameMenu_Open().

◆ HUD_MinigameMenu_ClickCreate_Entry()

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

Definition at line 211 of file cl_minigames_hud.qc.

212{
213 minigame_cmd("create ", this.netname);
214}
#define minigame_cmd(...)
string netname
Definition powerups.qc:20

References entity(), minigame_cmd, and netname.

Referenced by HUD_MinigameMenu_ClickCreate().

◆ HUD_MinigameMenu_ClickCurrentGame()

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

Definition at line 362 of file cl_minigames_hud.qc.

363{
365 {
367 _("Quit"), HUD_MinigameMenu_ClickQuit, this ), this);
368
369 active_minigame.minigame_event(active_minigame,"menu_show",this);
370
372 _("Invite"), HUD_MinigameMenu_ClickInvite, this), this);
373 }
374}
void HUD_MinigameMenu_ClickInvite(entity this, entity actor, entity trigger)
void HUD_MinigameMenu_ClickQuit(entity this, entity actor, entity trigger)

References active_minigame, entity(), HUD_MinigameMenu_Click_ExpandCollapse(), HUD_MinigameMenu_ClickInvite(), HUD_MinigameMenu_ClickQuit(), HUD_MinigameMenu_InsertEntry(), and HUD_MinigameMenu_SpawnSubEntry().

Referenced by HUD_MinigameMenu_CurrentButton().

◆ HUD_MinigameMenu_ClickCustomEntry()

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

Definition at line 345 of file cl_minigames_hud.qc.

346{
347 if ( active_minigame )
348 active_minigame.minigame_event(active_minigame,"menu_click",this.netname);
349}

References active_minigame, entity(), and netname.

Referenced by HUD_MinigameMenu_CustomEntry().

◆ HUD_MinigameMenu_ClickInvite()

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

Definition at line 321 of file cl_minigames_hud.qc.

322{
324 {
325 entity e;
326 entity prev = this;
327 for(int i = 0; i < maxclients; ++i)
328 {
329 if ( player_localnum != i && playerslots[i] && entcs_GetName(i) != "" &&
331 {
334 this );
335 e.flags |= 1;
336 e.netname = strzone(ftos(i+1));
337 e.origin_x *= 2;
339 prev = e;
340 }
341 }
342 }
343}
float minigame_playerslot
void HUD_MinigameMenu_ClickInvite_Entry(entity this, entity actor, entity trigger)
entity playerslots[255]
Definition main.qh:84
float ping
Definition main.qh:169
float maxclients
float player_localnum
string entcs_GetName(int i)
Definition ent_cs.qh:151
string ftos(float f)
entity findfloat(entity start,.float field, float match)

References entcs_GetName(), entity(), findfloat(), ftos(), HUD_MinigameMenu_Click_ExpandCollapse(), HUD_MinigameMenu_ClickInvite_Entry(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_SpawnSubEntry(), maxclients, minigame_playerslot, NULL, ping, player_localnum, playerslots, prev, and strzone().

Referenced by HUD_MinigameMenu_ClickCurrentGame().

◆ HUD_MinigameMenu_ClickInvite_Entry()

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

Definition at line 315 of file cl_minigames_hud.qc.

316{
317 minigame_cmd("invite #",this.netname);
318}

References entity(), minigame_cmd, and netname.

Referenced by HUD_MinigameMenu_ClickInvite().

◆ HUD_MinigameMenu_ClickJoin()

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

Definition at line 279 of file cl_minigames_hud.qc.

280{
282 {
283 entity e = NULL;
284 entity curr;
285 entity prev = this;
286 while( (e = find(e,classname,"minigame")) )
287 {
288 if ( e != active_minigame )
289 {
291 e.netname, HUD_MinigameMenu_ClickJoin_Entry, this );
292 curr.netname = e.netname;
293 curr.model = strzone(minigame_texture(strcat(e.descriptor.netname,"/icon")));
295 prev = curr;
296 }
297 }
298 }
299}
void HUD_MinigameMenu_ClickJoin_Entry(entity this, entity actor, entity trigger)
string classname
entity find(entity start,.string field, string match)

References active_minigame, classname, entity(), find(), HUD_MinigameMenu_Click_ExpandCollapse(), HUD_MinigameMenu_ClickJoin_Entry(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_SpawnSubEntry(), minigame_texture(), NULL, prev, strcat(), and strzone().

Referenced by HUD_MinigameMenu_Open().

◆ HUD_MinigameMenu_ClickJoin_Entry()

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

Definition at line 272 of file cl_minigames_hud.qc.

273{
274 minigame_cmd("join ",this.netname);
276}
void HUD_MinigameMenu_EraseEntry(entity e)

References entity(), HUD_MinigameMenu_EraseEntry(), minigame_cmd, and netname.

Referenced by HUD_MinigameMenu_ClickJoin().

◆ HUD_MinigameMenu_ClickQuit()

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

Definition at line 308 of file cl_minigames_hud.qc.

309{
311 minigame_cmd("end");
312}
void deactivate_minigame()

References deactivate_minigame(), entity(), and minigame_cmd.

Referenced by HUD_MinigameMenu_ClickCurrentGame().

◆ HUD_MinigameMenu_Close()

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

◆ HUD_MinigameMenu_CurrentButton()

void HUD_MinigameMenu_CurrentButton ( )

Definition at line 399 of file cl_minigames_hud.qc.

400{
401 entity e;
402 if ( active_minigame )
403 {
404 for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = e.list_prev )
405 if ( e.classname == "hud_minigamemenu_exit" )
406 {
408 break;
409 }
410 entity currb = HUD_MinigameMenu_SpawnEntry(new(hud_minigamemenu_current),
411 _("Current Game"), '0 0 0', hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_ClickCurrentGame );
412 currb.model = strzone(minigame_texture(strcat(active_minigame.descriptor.netname,"/icon")));
415 }
416 else
417 {
418 entity p;
419 for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = p.list_prev )
420 {
421 p = e;
422 if ( e.classname == "hud_minigamemenu_current" )
423 {
424 p = e.list_next;
425 if ( !p )
428 break;
429 }
430 }
431 for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = e.list_prev )
432 if ( e.classname == "hud_minigamemenu_exit" )
433 return;
434 entity exit = HUD_MinigameMenu_SpawnEntry(new(hud_minigamemenu_exit),
435 _("Exit Menu"),'0 0 0',hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_Close);
437 }
438}
entity HUD_MinigameMenu_SpawnEntry(entity entry, string s, vector offset, vector fontsize, vector color, void(entity, entity, entity) click)
void HUD_MinigameMenu_ClickCurrentGame(entity this, entity actor, entity trigger)

References active_minigame, entity(), hud_fontsize, HUD_MinigameMenu_Click(), HUD_MinigameMenu_ClickCurrentGame(), HUD_MinigameMenu_Close(), HUD_MinigameMenu_EraseEntry(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_last_entry, HUD_MinigameMenu_SpawnEntry(), minigame_texture(), NULL, strcat(), and strzone().

Referenced by activate_minigame(), deactivate_minigame(), and HUD_MinigameMenu_Open().

◆ HUD_MinigameMenu_CustomEntry()

void HUD_MinigameMenu_CustomEntry ( entity parent,
string menumessage,
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)

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

◆ HUD_MinigameMenu_DrawColoredEntry()

void HUD_MinigameMenu_DrawColoredEntry ( vector pos,
string s,
vector fontsize )

Definition at line 495 of file cl_minigames_hud.qc.

496{
497 minigame_drawcolorcodedstring_trunc(panel_size_x-pos_x+panel_pos_x, pos, s,
499}
void minigame_drawcolorcodedstring_trunc(float maxwidth, vector pos, string text, vector fontsize, float theAlpha, int drawflags)

References DRAWFLAG_NORMAL, minigame_drawcolorcodedstring_trunc(), panel_fg_alpha, and vector.

Referenced by HUD_MinigameMenu().

◆ HUD_MinigameMenu_DrawEntry()

void HUD_MinigameMenu_DrawEntry ( vector pos,
string s,
vector fontsize,
vector color )

Definition at line 489 of file cl_minigames_hud.qc.

490{
491 minigame_drawstring_trunc(panel_size_x-pos_x+panel_pos_x, pos, s,
493}
void minigame_drawstring_trunc(float maxwidth, vector pos, string text, vector fontsize, vector color, float theAlpha, int drawflags)

References color, DRAWFLAG_NORMAL, minigame_drawstring_trunc(), panel_fg_alpha, and vector.

Referenced by HUD_MinigameMenu().

◆ HUD_MinigameMenu_EraseEntry()

void HUD_MinigameMenu_EraseEntry ( entity e)

Definition at line 162 of file cl_minigames_hud.qc.

163{
164 // remove child items (if any)
165 if ( e.flags & 2 )
166 {
168 }
169
170 if ( e.list_prev )
171 e.list_prev.list_next = e.list_next;
172 else
173 HUD_MinigameMenu_entries = e.list_next;
174
175 if ( e.list_next )
176 e.list_next.list_prev = e.list_prev;
177 else
178 HUD_MinigameMenu_last_entry = e.list_prev;
179
182
183 delete(e);
184}

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

Referenced by HUD_MinigameMenu_ClickJoin_Entry(), and HUD_MinigameMenu_CurrentButton().

◆ HUD_MinigameMenu_Export()

void HUD_MinigameMenu_Export ( int fh)

Definition at line 27 of file cl_minigames_hud.qc.

28{
29 // allow saving cvars that aesthetically change the panel into hud skin files
30}

◆ HUD_MinigameMenu_InsertEntry()

void HUD_MinigameMenu_InsertEntry ( entity newentry,
entity prev )

Definition at line 129 of file cl_minigames_hud.qc.

130{
132 {
133 HUD_MinigameMenu_entries = newentry;
135 return;
136 }
137
138 newentry.list_prev = prev;
139 newentry.list_next = prev.list_next;
140 if ( prev.list_next )
141 prev.list_next.list_prev = newentry;
142 else
144 prev.list_next = newentry;
145}

References entity(), HUD_MinigameMenu_entries, HUD_MinigameMenu_last_entry, and prev.

Referenced by HUD_MinigameMenu_ClickCreate(), HUD_MinigameMenu_ClickCurrentGame(), HUD_MinigameMenu_ClickInvite(), HUD_MinigameMenu_ClickJoin(), HUD_MinigameMenu_CurrentButton(), HUD_MinigameMenu_CustomEntry(), and HUD_MinigameMenu_Open().

◆ HUD_MinigameMenu_IsOpened()

◆ HUD_MinigameMenu_MouseInput()

void HUD_MinigameMenu_MouseInput ( )

Definition at line 457 of file cl_minigames_hud.qc.

458{
459 panel = HUD_PANEL(MINIGAMEMENU);
460
462
464 {
465 panel_pos += '1 1 0' * panel_bg_padding;
466 panel_size -= '2 2 0' * panel_bg_padding;
467 }
468
469 entity e;
470
471 panel_pos_y += hud_fontsize_y*2;
472
474 vector sz;
475 for ( e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next )
476 {
477 sz = eX*panel_size_x + eY*e.size_y;
478 if ( e.model )
479 sz_y = 22;
480 if ( !HUD_MinigameMenu_activeitem && mousepos_y >= panel_pos_y && mousepos_y <= panel_pos_y + sz_y )
481 {
483 }
484 panel_pos_y += sz_y;
485 }
486}
entity panel
Definition hud.qh:147

References entity(), eX, eY, HUD_MinigameMenu_activeitem, HUD_MinigameMenu_entries, HUD_PANEL, HUD_Panel_LoadCvars(), NULL, panel, panel_bg_padding, panel_pos, panel_size, and vector.

Referenced by HUD_Minigame_Mouse().

◆ HUD_MinigameMenu_Open()

void HUD_MinigameMenu_Open ( )

Definition at line 441 of file cl_minigames_hud.qc.

442{
444 {
446 _("Create"), '0 0 0', hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_ClickCreate),
448 HUD_MinigameMenu_InsertEntry ( HUD_MinigameMenu_SpawnEntry(new(hud_minigamemenu_entry),
449 _("Join"),'0 0 0',hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_ClickJoin),
453 }
454}
void HUD_MinigameMenu_ClickJoin(entity this, entity actor, entity trigger)
void HUD_MinigameMenu_CurrentButton()
void HUD_MinigameMenu_ClickCreate(entity this, entity actor, entity trigger)

References hud_fontsize, HUD_MinigameMenu_activeitem, HUD_MinigameMenu_ClickCreate(), HUD_MinigameMenu_ClickJoin(), HUD_MinigameMenu_CurrentButton(), HUD_MinigameMenu_InsertEntry(), HUD_MinigameMenu_IsOpened(), HUD_MinigameMenu_last_entry, HUD_MinigameMenu_SpawnEntry(), mv_active, and NULL.

Referenced by activate_minigame(), and MUTATOR_HOOKFUNCTION().

◆ HUD_MinigameMenu_SpawnEntry()

entity HUD_MinigameMenu_SpawnEntry ( entity entry,
string s,
vector offset,
vector fontsize,
vector color,
void(entity, entity, entity) click )

Definition at line 187 of file cl_minigames_hud.qc.

188{
189 entry.message = s;
190 entry.origin = offset;
191 entry.size = fontsize;
192 entry.colormod = color;
193 entry.flags = 0;
194 entry.use = click;
195 panel_pos_y += fontsize_y;
196 return entry;
197}

References color, entity(), and vector.

Referenced by HUD_MinigameMenu_CurrentButton(), HUD_MinigameMenu_Open(), and HUD_MinigameMenu_SpawnSubEntry().

◆ HUD_MinigameMenu_SpawnSubEntry()

entity HUD_MinigameMenu_SpawnSubEntry ( string s,
void(entity, entity, entity) click,
entity parent )

Definition at line 200 of file cl_minigames_hud.qc.

201{
202 vector item_fontsize = hud_fontsize*1.25;
203 vector item_offset = '1 0 0' * item_fontsize_x;
204 entity item = HUD_MinigameMenu_SpawnEntry(new(hud_minigamemenu_subentry),
205 s,item_offset,item_fontsize,'0.8 0.8 0.8', click );
206 item.owner = parent;
207 return item;
208}

References entity(), hud_fontsize, HUD_MinigameMenu_SpawnEntry(), parent, and vector.

Referenced by HUD_MinigameMenu_ClickCreate(), HUD_MinigameMenu_ClickCurrentGame(), HUD_MinigameMenu_ClickInvite(), HUD_MinigameMenu_ClickJoin(), and HUD_MinigameMenu_CustomEntry().

◆ HUD_MinigameStatus()

void HUD_MinigameStatus ( bool should_draw)

Definition at line 81 of file cl_minigames_hud.qc.

82{
83 if (!should_draw)
84 return;
86 return;
87
88 entity hud_minigame = NULL;
89
91 {
92 if (!active_minigame)
93 return;
94 hud_minigame = active_minigame.descriptor;
95 }
96 else
97 hud_minigame = minigame_get_descriptor("nmm");
98
99 if ( !hud_minigame )
100 return;
101
103
104
105 vector pos, mySize;
106 pos = panel_pos;
107 mySize = panel_size;
108
110 {
111 pos += '1 1 0' * panel_bg_padding;
112 mySize -= '2 2 0' * panel_bg_padding;
113 }
114
116 hud_minigame.minigame_hud_status(pos,mySize);
117}

References active_minigame, autocvar__hud_configure, entity(), HUD_MinigameMenu_IsOpened(), HUD_Panel_LoadCvars(), HUD_Scale_Disable(), minigame_get_descriptor(), NULL, panel_bg_padding, panel_pos, panel_size, and vector.

◆ HUD_MinigameStatus_Export()

void HUD_MinigameStatus_Export ( int fh)

Definition at line 17 of file cl_minigames_hud.qc.

18{
19 // allow saving cvars that aesthetically change the panel into hud skin files
20}

◆ HUD_mouse_over()

bool HUD_mouse_over ( entity somepanel)

Definition at line 33 of file cl_minigames_hud.qc.

34{
35 vector pos = stov(cvar_string(strcat("hud_panel_", somepanel.panel_name, "_pos")));
36 vector sz = stov(cvar_string(strcat("hud_panel_", somepanel.panel_name, "_size")));
37 return mousepos_x >= pos_x*vid_conwidth && mousepos_x <= (pos_x+sz_x)*vid_conwidth &&
38 mousepos_y >= pos_y*vid_conheight && mousepos_y <= (pos_y+sz_y)*vid_conheight ;
39}
noref float vid_conwidth
Definition draw.qh:8
noref float vid_conheight
Definition draw.qh:9
vector stov(string s)
const string cvar_string(string name)

References cvar_string(), entity(), stov(), strcat(), vector, vid_conheight, and vid_conwidth.

Referenced by HUD_Minigame_InputEvent(), and HUD_Minigame_Mouse().

Variable Documentation

◆ colormod

vector colormod

Definition at line 10 of file cl_minigames_hud.qc.

◆ HUD_MinigameMenu_activeitem

◆ HUD_MinigameMenu_entries

◆ HUD_MinigameMenu_last_entry