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

Go to the source code of this file.

Macros

#define FOREACH_MINIGAME_ENTITY(entityvar)
#define minigame_cmd(...)
#define minigame_hud_fitsqare(pos, mySize)
#define minigame_hud_panelarea(pos, mySize, panelID)
#define REGISTER_MINIGAME(name, nicename)

Functions

void deactivate_minigame ()
void minigame_cmd_workaround (float dummy, string...cmdargc)
void minigame_drawcolorcodedstring_trunc (float maxwidth, vector pos, string text, vector fontsize, float theAlpha, int drawflags)
vector minigame_drawcolorcodedstring_wrapped (float maxwidth, vector pos, string text, vector fontsize, float theAlpha, int drawflags, float align)
void minigame_drawpic_centered (vector pos, string texture, vector sz, vector color, float thealpha, int drawflags)
void minigame_drawstring_trunc (float maxwidth, vector pos, string text, vector fontsize, vector color, float theAlpha, int drawflags)
vector minigame_drawstring_wrapped (float maxwidth, vector pos, string text, vector fontsize, vector color, float theAlpha, int drawflags, float align)
vector minigame_hud_denormalize (vector v, vector pos, vector mySize)
vector minigame_hud_denormalize_size (vector v, vector pos, vector mySize)
bool minigame_hud_mouse_in (vector pos, vector sz)
vector minigame_hud_normalize (vector v, vector pos, vector mySize)
void minigame_hud_simpleboard (vector pos, vector mySize, string board_texture)
void minigame_prompt ()
void minigame_show_allspecs (vector boardpos, vector boardsize)
string minigame_texture (string name)
 void (vector pos, vector size) minigame_hud_board

Variables

entity active_minigame
float minigame_playerslot
entity minigame_self

Macro Definition Documentation

◆ FOREACH_MINIGAME_ENTITY

#define FOREACH_MINIGAME_ENTITY ( entityvar)
Value:
entityvar=NULL; \
while( (entityvar = findentity(entityvar,owner,active_minigame)) )
entity active_minigame
entity owner
Definition main.qh:87
entity findentity(entity start,.entity field, entity match)
#define NULL
Definition post.qh:14

Definition at line 101 of file cl_minigames.qh.

101#define FOREACH_MINIGAME_ENTITY(entityvar) \
102 entityvar=NULL; \
103 while( (entityvar = findentity(entityvar,owner,active_minigame)) )

Referenced by minigame_show_allspecs().

◆ minigame_cmd

#define minigame_cmd ( ...)
Value:
void minigame_cmd_workaround(float dummy, string...cmdargc)

Definition at line 93 of file cl_minigames.qh.

Referenced by HUD_MinigameMenu_ClickCreate_Entry(), HUD_MinigameMenu_ClickInvite_Entry(), HUD_MinigameMenu_ClickJoin_Entry(), and HUD_MinigameMenu_ClickQuit().

◆ minigame_hud_fitsqare

#define minigame_hud_fitsqare ( pos,
mySize )
Value:
if ( mySize##_x > mySize##_y ) \
{ \
pos##_x += (mySize##_x-mySize##_y)/2; \
mySize##_x = mySize##_y; \
} \
else \
{ \
pos##_y += (mySize##_y-mySize##_x)/2; \
mySize##_x = mySize##_x; \
} \
{ \
pos += '1 1 0' * panel_bg_padding; \
mySize -= '2 2 0' * panel_bg_padding; \
}
float panel_bg_padding
Definition hud.qh:174

Definition at line 7 of file cl_minigames.qh.

7#define minigame_hud_fitsqare(pos, mySize) \
8 if ( mySize##_x > mySize##_y ) \
9 { \
10 pos##_x += (mySize##_x-mySize##_y)/2; \
11 mySize##_x = mySize##_y; \
12 } \
13 else \
14 { \
15 pos##_y += (mySize##_y-mySize##_x)/2; \
16 mySize##_x = mySize##_x; \
17 } \
18 if(panel_bg_padding) \
19 { \
20 pos += '1 1 0' * panel_bg_padding; \
21 mySize -= '2 2 0' * panel_bg_padding; \
22 }

◆ minigame_hud_panelarea

#define minigame_hud_panelarea ( pos,
mySize,
panelID )
Value:
pos = stov(cvar_string(strcat("hud_panel_", HUD_PANEL(panelID).panel_name, "_pos"))); \
mySize = stov(cvar_string(strcat("hud_panel_", HUD_PANEL(panelID).panel_name, "_size"))); \
pos##_x *= vid_conwidth; pos##_y *= vid_conheight; \
mySize##_x *= vid_conwidth; mySize##_y *= vid_conheight;
#define HUD_PANEL(NAME)
Definition hud.qh:52
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)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))

Definition at line 26 of file cl_minigames.qh.

26#define minigame_hud_panelarea(pos, mySize, panelID) \
27 pos = stov(cvar_string(strcat("hud_panel_", HUD_PANEL(panelID).panel_name, "_pos"))); \
28 mySize = stov(cvar_string(strcat("hud_panel_", HUD_PANEL(panelID).panel_name, "_size"))); \
29 pos##_x *= vid_conwidth; pos##_y *= vid_conheight; \
30 mySize##_x *= vid_conwidth; mySize##_y *= vid_conheight;

◆ REGISTER_MINIGAME

#define REGISTER_MINIGAME ( name,
nicename )
Value:
REGISTER(Minigames, MINIGAME_##name, m_id, new_pure(minigame_descriptor)); \
void name##_hud_board(vector, vector); \
void name##_hud_status(vector, vector); \
int name##_client_event(entity, string, ...); \
REGISTER_INIT(MINIGAME_##name) { \
this.message = nicename; \
this.minigame_hud_board = name##_hud_board; \
this.minigame_hud_status = name##_hud_status; \
this.minigame_event = name##_client_event; \
} \
REGISTER_INIT(MINIGAME_##name)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
string netname
Definition powerups.qc:20
string message
Definition powerups.qc:19
string strtolower(string s)
int m_id
Definition effect.qh:19
string name
Definition menu.qh:30
string strzone(string s)
#define new_pure(class)
purely logical entities (not linked to the area grid)
Definition oo.qh:67
#define REGISTER(...)
Register a new entity with a registry.
Definition registry.qh:87
vector
Definition self.qh:92

Definition at line 111 of file cl_minigames.qh.

111#define REGISTER_MINIGAME(name,nicename) \
112 REGISTER(Minigames, MINIGAME_##name, m_id, new_pure(minigame_descriptor)); \
113 void name##_hud_board(vector, vector); \
114 void name##_hud_status(vector, vector); \
115 int name##_client_event(entity, string, ...); \
116 REGISTER_INIT(MINIGAME_##name) { \
117 this.netname = strzone(strtolower(#name)); \
118 this.message = nicename; \
119 this.minigame_hud_board = name##_hud_board; \
120 this.minigame_hud_status = name##_hud_status; \
121 this.minigame_event = name##_client_event; \
122 } \
123 REGISTER_INIT(MINIGAME_##name)

Function Documentation

◆ deactivate_minigame()

void deactivate_minigame ( )

Definition at line 83 of file cl_minigames.qc.

84{
85 if ( !active_minigame )
86 return;
87
88 active_minigame.minigame_event(active_minigame,"deactivate");
89 entity e = NULL;
90 while( (e = findentity(e, owner, active_minigame)) )
91 if ( e.minigame_autoclean )
92 {
94 }
95
98
100 {
103 }
104 else
106}
bool auto_close_minigamemenu
MINIGAME_SIMPLELINKED_ENTITIES void minigame_autoclean_entity(entity e)
void HUD_MinigameMenu_CurrentButton()
entity minigame_self
void HUD_MinigameMenu_Close(entity this, entity actor, entity trigger)

References active_minigame, auto_close_minigamemenu, entity(), findentity(), HUD_MinigameMenu_Close(), HUD_MinigameMenu_CurrentButton(), minigame_autoclean_entity(), minigame_self, NULL, and owner.

Referenced by activate_minigame(), HUD_MinigameMenu_ClickQuit(), minigame_entremove(), minigame_player_entremove(), and Shutdown().

◆ minigame_cmd_workaround()

void minigame_cmd_workaround ( float dummy,
string... cmdargc )

Definition at line 407 of file cl_minigames.qc.

408{
409 string cmd;
410 cmd = "cmd minigame ";
411 float i;
412 for ( i = 0; i < cmdargc; ++i )
413 cmd = strcat(cmd,...(i,string));
414 localcmd(strcat(cmd,"\n"));
415}
void localcmd(string command,...)
void cmd(string command,...)

References cmd(), localcmd(), and strcat().

◆ minigame_drawcolorcodedstring_trunc()

void minigame_drawcolorcodedstring_trunc ( float maxwidth,
vector pos,
string text,
vector fontsize,
float theAlpha,
int drawflags )

Definition at line 392 of file cl_minigames.qc.

394{
395 string line = textShortenToWidth(text,maxwidth,fontsize,stringwidth_colors);
396 drawcolorcodedstring(pos, line, fontsize, theAlpha, drawflags);
397}
#define drawcolorcodedstring(position, text, scale, alpha, flag)
Definition draw.qh:30
string textShortenToWidth(string theText, float maxWidth, vector theFontSize, textLengthUpToWidth_widthFunction_t tw)
Definition util.qc:1071
float stringwidth_colors(string s, vector theSize)
Definition string.qh:30

References drawcolorcodedstring, stringwidth_colors(), textShortenToWidth(), and vector.

Referenced by HUD_MinigameMenu_DrawColoredEntry().

◆ minigame_drawcolorcodedstring_wrapped()

vector minigame_drawcolorcodedstring_wrapped ( float maxwidth,
vector pos,
string text,
vector fontsize,
float theAlpha,
int drawflags,
float align )

Definition at line 366 of file cl_minigames.qc.

368{
370 vector mypos = pos;
372 {
373 string line = minigame_getWrappedLine(maxwidth,fontsize,stringwidth_colors);
374 if ( line == "" )
375 break;
376 mypos_x = pos_x + (maxwidth - stringwidth_colors(line, fontsize)) * align;
377 drawcolorcodedstring(mypos, line, fontsize, theAlpha, drawflags);
378 mypos_y += fontsize_y;
379 }
380 mypos_x = maxwidth;
381 mypos_y -= pos_y;
382 return mypos;
383}
string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_widthFunction_t tw)
string getWrappedLine_remaining
Definition util.qh:147

References drawcolorcodedstring, getWrappedLine_remaining, minigame_getWrappedLine(), stringwidth_colors(), and vector.

Referenced by HUD_MinigameHelp(), and minigame_show_allspecs().

◆ minigame_drawpic_centered()

void minigame_drawpic_centered ( vector pos,
string texture,
vector sz,
vector color,
float thealpha,
int drawflags )

Definition at line 399 of file cl_minigames.qc.

401{
402 drawpic( pos-sz/2, texture, sz, color, thealpha, drawflags );
403}
#define drawpic(position, pic, size, rgb, alpha, flag)
Definition draw.qh:21
vector color
Definition dynlight.qc:15

References color, drawpic, and vector.

◆ minigame_drawstring_trunc()

void minigame_drawstring_trunc ( float maxwidth,
vector pos,
string text,
vector fontsize,
vector color,
float theAlpha,
int drawflags )

Definition at line 385 of file cl_minigames.qc.

387{
388 string line = textShortenToWidth(text,maxwidth,fontsize,stringwidth_nocolors);
389 drawstring(pos, line, fontsize, color, theAlpha, drawflags);
390}
#define drawstring(position, text, scale, rgb, alpha, flag)
Definition draw.qh:27
float stringwidth_nocolors(string s, vector theSize)
Definition string.qh:35

References color, drawstring, stringwidth_nocolors(), textShortenToWidth(), and vector.

Referenced by HUD_MinigameMenu_DrawEntry().

◆ minigame_drawstring_wrapped()

vector minigame_drawstring_wrapped ( float maxwidth,
vector pos,
string text,
vector fontsize,
vector color,
float theAlpha,
int drawflags,
float align )

Definition at line 347 of file cl_minigames.qc.

349{
351 vector mypos = pos;
353 {
354 string line = minigame_getWrappedLine(maxwidth,fontsize,stringwidth_nocolors);
355 if ( line == "" )
356 break;
357 mypos_x = pos_x + (maxwidth - stringwidth_nocolors(line, fontsize)) * align;
358 drawstring(mypos, line, fontsize, color, theAlpha, drawflags);
359 mypos_y += fontsize_y;
360 }
361 mypos_x = maxwidth;
362 mypos_y -= pos_y;
363 return mypos;
364}

References color, drawstring, getWrappedLine_remaining, minigame_getWrappedLine(), stringwidth_nocolors(), and vector.

Referenced by minigame_show_allspecs().

◆ minigame_hud_denormalize()

vector minigame_hud_denormalize ( vector v,
vector pos,
vector mySize )

Definition at line 16 of file cl_minigames.qc.

17{
18 v_x = pos_x + v_x * mySize_x;
19 v_y = pos_y + v_y * mySize_y;
20 return v;
21}

References vector.

◆ minigame_hud_denormalize_size()

vector minigame_hud_denormalize_size ( vector v,
vector pos,
vector mySize )

Definition at line 23 of file cl_minigames.qc.

24{
25 v_x = v_x * mySize_x;
26 v_y = v_y * mySize_y;
27 return v;
28}

References vector.

◆ minigame_hud_mouse_in()

bool minigame_hud_mouse_in ( vector pos,
vector sz )

Definition at line 39 of file cl_minigames.qc.

40{
41 return mousepos_x >= pos_x && mousepos_x < pos_x + sz_x &&
42 mousepos_y >= pos_y && mousepos_y < pos_y + sz_y ;
43}

References vector.

◆ minigame_hud_normalize()

vector minigame_hud_normalize ( vector v,
vector pos,
vector mySize )

Definition at line 31 of file cl_minigames.qc.

32{
33 v_x = ( v_x - pos_x ) / mySize_x;
34 v_y = ( v_y - pos_y ) / mySize_y;
35 return v;
36}

References vector.

◆ minigame_hud_simpleboard()

void minigame_hud_simpleboard ( vector pos,
vector mySize,
string board_texture )

Definition at line 4 of file cl_minigames.qc.

5{
6 if(panel.current_panel_bg != "0" && panel.current_panel_bg != "")
8 panel.current_panel_bg,
9 mySize + '1 1 0' * 2 * panel_bg_border,
12 drawpic(pos, board_texture, mySize, '1 1 1', panel_bg_alpha, DRAWFLAG_NORMAL);
13}
const float DRAWFLAG_NORMAL
float panel_bg_border
Definition hud.qh:172
const float BORDER_MULTIPLIER
Definition hud.qh:110
float panel_bg_alpha
Definition hud.qh:170
vector panel_bg_color
Definition hud.qh:165
entity panel
Definition hud.qh:147
void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha, vector theBorderSize)
Definition draw.qh:44

References BORDER_MULTIPLIER, draw_BorderPicture(), DRAWFLAG_NORMAL, drawpic, panel, panel_bg_alpha, panel_bg_border, panel_bg_color, and vector.

◆ minigame_prompt()

void minigame_prompt ( )

Definition at line 419 of file cl_minigames.qc.

420{
422 {
423 HUD_Notify_Push(sprintf("minigames/%s/icon_notif",active_minigame.descriptor.netname),
424 _("It's your turn"), "");
425 }
426}
bool HUD_MinigameMenu_IsOpened()
void HUD_Notify_Push(string icon, string attacker, string victim)
Definition notify.qc:19

References active_minigame, HUD_MinigameMenu_IsOpened(), and HUD_Notify_Push().

◆ minigame_show_allspecs()

void minigame_show_allspecs ( vector boardpos,
vector boardsize )

Definition at line 249 of file cl_minigames.qc.

250{
251 string allspecs = "";
252 float allspecs_width = 0;
253 float max_allspecs_width = boardsize.x;
254 float max_current_spec_width = hud_fontsize.x * 5;
255 int allspecs_lines = 2;
256
257 entity e;
259 {
260 if (allspecs_width >= 0 && e.classname == "minigame_player" && e.team == C4_SPECTATOR_TEAM)
261 {
262 string current_spec = ColorTranslateRGB(entcs_GetName(e.minigame_playerslot - 1));
263 current_spec = textShortenToWidth(current_spec, max_current_spec_width, hud_fontsize, stringwidth_colors);
264 if (allspecs != "")
265 current_spec = strcat(", ", current_spec);
266 else
267 current_spec = current_spec;
268
269 allspecs_width = stringwidth(allspecs, true, hud_fontsize);
270
271 float max_width = max_allspecs_width * allspecs_lines - max_current_spec_width;
272 if (allspecs_width + stringwidth(current_spec, true, hud_fontsize) < max_width)
273 allspecs = strcat(allspecs, current_spec);
274 else
275 {
276 // current_spec doesn't fit in the list
277 allspecs = strcat(allspecs, ", ...");
278 allspecs_width = -1; // skip remaining spectators
279 }
280 }
281 }
282
283 if (allspecs != "")
284 {
285 vector pos = boardpos;
286 pos.y -= panel_bg_border + hud_fontsize.y * (1.25 + allspecs_lines + 0.5);
287 minigame_drawstring_wrapped(max_allspecs_width, pos, _("Spectators:"), hud_fontsize * 1.25, '0.85 0.47 0.42', panel_fg_alpha, DRAWFLAG_NORMAL, 0);
288
289 pos.y += hud_fontsize.y * 1.25;
291 }
292}
const int C4_SPECTATOR_TEAM
Definition c4.qc:21
vector minigame_drawstring_wrapped(float maxwidth, vector pos, string text, vector fontsize, vector color, float theAlpha, int drawflags, float align)
vector minigame_drawcolorcodedstring_wrapped(float maxwidth, vector pos, string text, vector fontsize, float theAlpha, int drawflags, float align)
#define FOREACH_MINIGAME_ENTITY(entityvar)
vector hud_fontsize
Definition main.qh:77
#define stringwidth
string entcs_GetName(int i)
Definition ent_cs.qh:151
float panel_fg_alpha
Definition hud.qh:169
ERASEABLE string ColorTranslateRGB(string s)
Definition string.qh:196

References C4_SPECTATOR_TEAM, ColorTranslateRGB(), DRAWFLAG_NORMAL, entcs_GetName(), entity(), FOREACH_MINIGAME_ENTITY, hud_fontsize, minigame_drawcolorcodedstring_wrapped(), minigame_drawstring_wrapped(), panel_bg_border, panel_fg_alpha, strcat(), stringwidth, stringwidth_colors(), textShortenToWidth(), and vector.

◆ minigame_texture()

string minigame_texture ( string name)

Definition at line 49 of file cl_minigames.qc.

50{
52 if ( precache_pic(path) == "" )
53 path = minigame_texture_skin("default", name);
54 return path;
55}
string minigame_texture_skin(string skinname, string name)
string autocvar_menu_skin
Definition mapvoting.qh:7
string precache_pic(string name,...)

References autocvar_menu_skin, minigame_texture_skin(), name, and precache_pic().

Referenced by HUD_MinigameMenu_ClickCreate(), HUD_MinigameMenu_ClickJoin(), and HUD_MinigameMenu_CurrentButton().

◆ void()

void ( vector pos,
vector size )

References size, and vector.

Variable Documentation

◆ active_minigame

◆ minigame_playerslot

float minigame_playerslot

◆ minigame_self

entity minigame_self

Definition at line 90 of file cl_minigames.qh.

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