Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
dialog_welcome.qc File Reference
#include "dialog_welcome.qh"
#include "image.qh"
#include "textlabel.qh"
#include "textbox.qh"
#include "radiobutton.qh"
#include "commandbutton.qh"
#include "slider.qh"
#include <common/campaign_common.qh>
Include dependency graph for dialog_welcome.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void welcomeDialog_resetStrings (entity me)
void XonoticWelcomeDialog_destroy (entity me)
void XonoticWelcomeDialog_draw (entity me)
void XonoticWelcomeDialog_fill (entity me)
float XonoticWelcomeDialog_keyDown (entity me, float key, float ascii, float shift)
bool XonoticWelcomeDialog_mouseRelease (entity me, vector pos)
void XonoticWelcomeDialog_readInputArgs (entity me, int argsbuf)

Function Documentation

◆ welcomeDialog_resetStrings()

void welcomeDialog_resetStrings ( entity me)

Definition at line 11 of file dialog_welcome.qc.

12{
13 strcpy(me.serverinfo_name, _("Welcome"));
14 strcpy(me.serverinfo_MOTD, "");
15}
#define strcpy(this, s)
Definition string.qh:52

References entity(), and strcpy.

Referenced by XonoticWelcomeDialog_readInputArgs().

◆ XonoticWelcomeDialog_destroy()

void XonoticWelcomeDialog_destroy ( entity me)

Definition at line 43 of file dialog_welcome.qc.

44{
45 cvar_set("_menu_welcome_dialog_available", "0");
46}
void cvar_set(string name, string value)

References cvar_set(), and entity().

◆ XonoticWelcomeDialog_draw()

void XonoticWelcomeDialog_draw ( entity me)

Definition at line 89 of file dialog_welcome.qc.

90{
92
94 me.close(me);
95
96 if(me.serverinfo_MOTD == "" && (gamestatus & (GAME_CONNECTED | GAME_ISSERVER)))
97 {
98 // if serverinfo_MOTD is empty while connected it means we are connected to an old server
99 // in this case show the csqc welcome message and instantly close the dialog
100 localcmd("\n+show_info0; defer 2 -show_info0\n");
101 me.close(me);
102 }
103
104 if (isdemo())
105 {
106 me.joinButton_ent.disabled = true;
107 me.spectateButton_ent.disabled = true;
108 }
109 else
110 {
111 me.joinButton_ent.disabled = false;
112 me.spectateButton_ent.disabled = false;
113 }
114}
const int GAME_ISSERVER
Definition menu.qh:11
const int GAME_CONNECTED
Definition menu.qh:12
int gamestatus
Definition menu.qh:16
void localcmd(string command,...)
float isdemo()
#define SUPER(cname)
Definition oo.qh:231

References entity(), GAME_CONNECTED, GAME_ISSERVER, gamestatus, isdemo(), localcmd(), and SUPER.

◆ XonoticWelcomeDialog_fill()

void XonoticWelcomeDialog_fill ( entity me)

Definition at line 116 of file dialog_welcome.qc.

117{
118 registercvar("_menu_welcome_dialog_available", "0", 0);
119 cvar_set("_menu_welcome_dialog_available", "1");
120
121 me.frame.allowColors = true; // allow color codes in the title
122
123 entity e;
124
125 me.TR(me);
126 me.TD(me, me.rows - 1, me.columns, me.serverinfo_MOTD_ent = makeXonoticTextBox());
127 me.serverinfo_MOTD_ent.align = 0.5;
128 me.serverinfo_MOTD_ent.allowColors = true;
129 me.serverinfo_MOTD_ent.escapedNewLines = true;
130 me.gotoRC(me, me.rows - 1, 0);
131 me.TD(me, 1, me.columns / 2, me.joinButton_ent = makeXonoticCommandButton(_("Join"), '0 1 0', "cmd join", COMMANDBUTTON_CLOSE));
132 me.joinButton_ent.preferredFocusPriority = 1;
133 me.TD(me, 1, me.columns / 2, me.spectateButton_ent = makeXonoticCommandButton(_("Spectate"), '0 0 0', "cmd spectate", COMMANDBUTTON_CLOSE));
134}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
entity makeXonoticCommandButton(string theText, vector theColor, string theCommand, int theFlags)
#define COMMANDBUTTON_CLOSE
float registercvar(string name, string value, float flags)
entity makeXonoticTextBox()
Definition textbox.qc:4

References COMMANDBUTTON_CLOSE, cvar_set(), entity(), makeXonoticCommandButton(), makeXonoticTextBox(), and registercvar().

◆ XonoticWelcomeDialog_keyDown()

float XonoticWelcomeDialog_keyDown ( entity me,
float key,
float ascii,
float shift )

Definition at line 17 of file dialog_welcome.qc.

18{
19 switch(key)
20 {
21 case K_KP_ENTER:
22 case K_ENTER:
23 case K_SPACE:
24 XonoticCommandButton_Click(me.joinButton_ent, me);
25 return true;
26 default:
27 return SUPER(XonoticWelcomeDialog).keyDown(me, key, ascii, shift);
28 }
29}
void XonoticCommandButton_Click(entity me, entity other)
float K_SPACE
Definition keycodes.qc:10
float K_ENTER
Definition keycodes.qc:8
float K_KP_ENTER
Definition keycodes.qc:74

References entity(), K_ENTER, K_KP_ENTER, K_SPACE, SUPER, and XonoticCommandButton_Click().

◆ XonoticWelcomeDialog_mouseRelease()

bool XonoticWelcomeDialog_mouseRelease ( entity me,
vector pos )

Definition at line 33 of file dialog_welcome.qc.

34{
35 if (pos.x >= 0 && pos.y >= 0 && pos.x < 1 && pos.y < 1)
36 {
37 return SUPER(XonoticWelcomeDialog).mouseRelease(me, pos);
38 }
39 me.close(me);
40 return true;
41}

References entity(), SUPER, and vector.

◆ XonoticWelcomeDialog_readInputArgs()

void XonoticWelcomeDialog_readInputArgs ( entity me,
int argsbuf )

Definition at line 48 of file dialog_welcome.qc.

49{
50 int i = 0;
51 string s;
53 if(argsbuf >= 0)
54 while((s = bufstr_get(argsbuf, i)) != "")
55 {
56 if(s == "HOSTNAME")
57 strcpy(me.serverinfo_name, bufstr_get(argsbuf, ++i));
58 else if(s == "WELCOME")
59 strcpy(me.serverinfo_MOTD, bufstr_get(argsbuf, ++i));
60 else if(s == "CAMPAIGN")
61 {
62 strcpy(me.serverinfo_name, campaign_title);
63
64 int level = stoi(bufstr_get(argsbuf, ++i)) - 1;
65 string campaign_msg;
66 if (level < 0 || level >= campaign_entries)
67 campaign_msg = strcat("^1Error: invalid level number ", itos(level + 1));
68 else
69 {
70 string desc = strcat(campaign_shortdesc[level], "\n\n", campaign_longdesc[level]);
71 desc = strreplace("\n", "\\n", desc);
72 campaign_msg = strreplace("_LEVEL_DESC", desc, bufstr_get(argsbuf, ++i));
73 }
74 strcpy(me.serverinfo_MOTD, campaign_msg);
75 break;
76 }
77 else if(s == "RESET")
78 {
80 break;
81 }
82 ++i;
83 }
84 //me.serverinfo_name_ent.setText(me.serverinfo_name_ent, me.serverinfo_name);
85 me.serverinfo_MOTD_ent.setText(me.serverinfo_MOTD_ent, me.serverinfo_MOTD);
86 me.frame.setText(me.frame, me.serverinfo_name);
87}
string campaign_title
int campaign_entries
void welcomeDialog_resetStrings(entity me)
#define stoi(s)
Definition int.qh:4
#define itos(i)
Definition int.qh:6
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))

References campaign_entries, campaign_title, entity(), itos, stoi, strcat(), strcpy, and welcomeDialog_resetStrings().