Skip to content

Commit 76a7eec

Browse files
author
newby
committed
Migrate to autocvar and update default fo_grentimer
Both because cvar string interaction is suspect in a crash and because autocvars are just better, migrate all* of our cvars to use autocvar. Also update fo_grentimer default to 2, it had not been updated to reflect the work on ping correction (either new or old). *: Some of the menu code uses dynamically constructed names which are incompatible with autocvar so we exclude those.
1 parent 26b9311 commit 76a7eec

File tree

7 files changed

+53
-47
lines changed

7 files changed

+53
-47
lines changed

csqc/csprogs.src

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ csextradefs.qc
1111
../share/commondefs.qc
1212
../share/common_helpers.qc
1313
../share/common_vote.qc
14+
settings.qc
1415
sui_sys.qc
1516
vote.qc
1617
status.qc
@@ -19,6 +20,5 @@ main.qc
1920
events.qc
2021
hud_helpers.qc
2122
hud.qc
22-
settings.qc
2323
input.qc
2424
#endlist

csqc/events.qc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ DEFCVAR_FLOAT(fo_grentimer_debug, 0);
308308

309309
string cached_timer;
310310
string GetGrenTimerSound() {
311-
string wav = cvar_string(FOCMD_GRENTIMERSOUND);
311+
string wav = CVARS(FOCMD_GRENTIMERSOUND);
312+
312313
if (cached_timer != wav) {
313314
precache_sound(wav);
314315
cached_timer = wav;
@@ -336,8 +337,8 @@ void OldPlayGren(float offset) {
336337
}
337338

338339
local string wav = GetGrenTimerSound();
339-
localsound(wav, channel, cvar(FOCMD_GRENTIMERVOLUME)); // required because soundupdate doesn't reset getsoundtime
340-
soundupdate(self, channel, wav, cvar(FOCMD_GRENTIMERVOLUME), 0, 0, 0, offset);
340+
localsound(wav, channel, CVARF(FOCMD_GRENTIMERVOLUME)); // required because soundupdate doesn't reset getsoundtime
341+
soundupdate(self, channel, wav, CVARF(FOCMD_GRENTIMERVOLUME), 0, 0, 0, offset);
341342
}
342343

343344
void CsGrenTimer::Set(float primed_at, float expires_at, float _grentype,
@@ -357,7 +358,7 @@ void CsGrenTimer::Set(float primed_at, float expires_at, float _grentype,
357358
return;
358359

359360
string wav = GetGrenTimerSound();
360-
float volume = cvar(FOCMD_GRENTIMERVOLUME);
361+
float volume = CVARF(FOCMD_GRENTIMERVOLUME);
361362

362363
// Note there's a bug where soundupdate returns false for a new sample, even
363364
// though it's started.
@@ -391,7 +392,7 @@ void ParseGrenPrimed(float grentype, float primed_at, float explodes_at) {
391392
return;
392393

393394
local float timer_flags = 0;
394-
switch (cvar(FOCMD_GRENTIMER)) {
395+
switch (CVARF(FOCMD_GRENTIMER)) {
395396
case 0: break;
396397
case 1: timer_flags = FL_GT_SOUND; break;
397398
// 2 [and something sane for anything we don't recognize.]

csqc/hud.qc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ void Hud_DrawFlagStatusBar(string panelid)
660660
{
661661
if (FlagInfoLines[i].id)
662662
{
663-
alpha = FlagInfoLines[i].state == FLAGINFO_HOME ? cvar("fo_hud_idle_alpha") : 1;
663+
alpha = FlagInfoLines[i].state == FLAGINFO_HOME ? CVARF(fo_hud_idle_alpha) : 1;
664664
string icon = FlagInfoLines[i].icon.filename;
665665
vector iconcolour = FlagInfoLines[i].icon.colour;
666666
float bigfont = 8 * (Hud_Panels[HUD_PANEL_FLAGINFO].TextScale ? Hud_Panels[HUD_PANEL_FLAGINFO].TextScale : Hud_Panels[HUD_PANEL_FLAGINFO].Scale);

csqc/hud_helpers.qc

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -230,20 +230,6 @@ void Hud_DrawStringLMPThreshold(vector pos, string value, float size, float thre
230230
}
231231
}
232232

233-
string FormatCfgString(string line, string field, string value)
234-
{
235-
line = strcat(line, "\n", field, ":", value);
236-
237-
return line;
238-
}
239-
240-
string FormatCfgVector(string line, string field, vector value)
241-
{
242-
line = strcat(line, "\n", field, ":", strcat(ftos(value_x), ",", ftos(value_y)));
243-
244-
return line;
245-
}
246-
247233
string GetPanelString(string line, string name)
248234
{
249235
line = FormatCfgVector(line, strcat(name, ".position"), DrawPanel.Position);

csqc/main.qc

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
3636
registercommand("fo_hud_save");
3737
registercommand("fo_hud_load");
3838

39-
registercvar(FOCMD_GRENTIMER, "1");
40-
registercvar(FOCMD_GRENTIMERSOUND, "grentimer.wav");
41-
registercvar(FOCMD_GRENTIMERVOLUME, "1");
42-
registercvar(FOCMD_JUMPVOLUME, "1");
43-
4439
registercommand("fo_menu_game");
4540
registercommand("fo_main_menu");
4641
registercommand("fo_menu_team");
@@ -52,7 +47,6 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
5247
registercommand("fo_menu_build");
5348
registercommand("fo_menu_dropammo");
5449
registercommand("fo_menu_cancel");
55-
registercvar(FOCMD_ADMIN_MENU_UPDATE_TIME, "2");
5650

5751
registercommand("+aux_jump");
5852
registercommand("-aux_jump");
@@ -82,7 +76,6 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
8276

8377
registercommand("vote_addmap");
8478
registercommand("vote_removemap");
85-
registercvar("fo_hud_idle_alpha", "0.3");
8679
for(float i = 0; i < MENU_OPTION.length - 1; i++) {
8780
registercvar(strcat("fo_menu_option_",MENU_OPTION[i]), MENU_OPTION[i]);
8881
}
@@ -143,7 +136,7 @@ noref void(float width, float height, float menushown) CSQC_UpdateView = {
143136
if ((input_buttons & BUTTON2) && (pmove_vel_z < 180 /* not sliding */)) {
144137
if (jumpsound_cooldown < time) {
145138
jumpsound_cooldown = time + 0.01;
146-
localsound("player/plyrjmp8.wav", CHAN_BODY, cvar(FOCMD_JUMPVOLUME));
139+
localsound("player/plyrjmp8.wav", CHAN_BODY, CVARF(FOCMD_JUMPVOLUME));
147140
}
148141
}
149142

@@ -242,7 +235,7 @@ noref float(string cmd) CSQC_ConsoleCommand = {
242235
Menu_Cancel();
243236
break;
244237
case "+fo_showscores":
245-
if (cvar(FOCMD_OLDSCOREBOARD) == 1)
238+
if (CVARF(FOCMD_OLDSCOREBOARD) == 1)
246239
{
247240
tokenize(findkeysforcommand(argv(0)));
248241

@@ -271,7 +264,7 @@ noref float(string cmd) CSQC_ConsoleCommand = {
271264
case "+showscores":
272265
case "+showteamscores":
273266
showingscores = TRUE;
274-
if (cvar(FOCMD_OLDSCOREBOARD) != 1)
267+
if (CVARF(FOCMD_OLDSCOREBOARD) != 1)
275268
{
276269
tokenize(findkeysforcommand(argv(0)));
277270

csqc/menu.qc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ var fo_menu FO_MENU_DISPENSER_USE = {
371371
void updateAdminMenuInfo() = {
372372
if(admin_menu_next_update < time) {
373373
localcmd("cmd adminrefresh\n");
374-
admin_menu_next_update = time + cvar(FOCMD_ADMIN_MENU_UPDATE_TIME);
374+
admin_menu_next_update = time + CVARF(FOCMD_ADMIN_MENU_UPDATE_TIME);
375375
}
376376
}
377377

csqc/settings.qc

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,50 @@
1+
// Saved/Loaded/Restored by Settings funcs
2+
DEFCVAR_FLOAT(FOCMD_GRENTIMER, 2); // Sound + Ping adjust
3+
DEFCVAR_STRING(FOCMD_GRENTIMERSOUND, "grentimer.wav");
4+
DEFCVAR_FLOAT(FOCMD_GRENTIMERVOLUME, 1);
5+
DEFCVAR_FLOAT(FOCMD_JUMPVOLUME, 1);
6+
DEFCVAR_FLOAT(FOCMD_OLDSCOREBOARD, 0);
7+
8+
// CVARS that just pass via regular config state.
9+
DEFCVAR_FLOAT(fo_hud_idle_alpha, 0.3);
10+
DEFCVAR_FLOAT(FOCMD_ADMIN_MENU_UPDATE_TIME, 2);
11+
12+
string FormatCfgString(string line, string field, string value)
13+
{
14+
line = strcat(line, "\n", field, ":", value);
15+
16+
return line;
17+
}
18+
19+
string FormatCfgVector(string line, string field, vector value)
20+
{
21+
line = strcat(line, "\n", field, ":", strcat(ftos(value_x), ",", ftos(value_y)));
22+
23+
return line;
24+
}
25+
26+
127
void FO_WriteSettings()
228
{
329
// this overwrites
430
float filehandle;
531
filehandle = fopen(FO_CONFIG_PATH, FILE_WRITE);
6-
string line = FormatCfgString("", FOCMD_GRENTIMER, ftos(cvar(FOCMD_GRENTIMER)));
7-
line = FormatCfgString(line, FOCMD_GRENTIMERSOUND, cvar_string(FOCMD_GRENTIMERSOUND));
8-
line = FormatCfgString(line, FOCMD_GRENTIMERVOLUME, cvar_string(FOCMD_GRENTIMERVOLUME));
9-
line = FormatCfgString(line, FOCMD_JUMPVOLUME, cvar_string(FOCMD_JUMPVOLUME));
10-
line = FormatCfgString(line, FOCMD_OLDSCOREBOARD, ftos(cvar(FOCMD_OLDSCOREBOARD)));
32+
string line = FormatCfgString("", FOCMD_GRENTIMER, ftos(CVARF(FOCMD_GRENTIMER)));
33+
line = FormatCfgString(line, FOCMD_GRENTIMERSOUND, CVARS(FOCMD_GRENTIMERSOUND));
34+
line = FormatCfgString(line, FOCMD_GRENTIMERVOLUME, ftos(CVARF(FOCMD_GRENTIMERVOLUME)));
35+
line = FormatCfgString(line, FOCMD_JUMPVOLUME, ftos(CVARF(FOCMD_JUMPVOLUME)));
36+
line = FormatCfgString(line, FOCMD_OLDSCOREBOARD, ftos(CVARF(FOCMD_OLDSCOREBOARD)));
1137
fputs(filehandle, line);
1238
fclose(filehandle);
1339
}
1440

1541
void FO_LoadDefaultSettings()
1642
{
17-
cvar_set(FOCMD_GRENTIMER, "1");
18-
cvar_set(FOCMD_GRENTIMERSOUND, "grentimer.wav");
19-
cvar_set(FOCMD_GRENTIMERVOLUME, "1");
20-
cvar_set(FOCMD_JUMPVOLUME, "1");
21-
cvar_set(FOCMD_OLDSCOREBOARD, "0");
43+
CVARF(FOCMD_GRENTIMER) = 2;
44+
CVARS(FOCMD_GRENTIMERSOUND) = "grentimer.wav";
45+
CVARF(FOCMD_GRENTIMERVOLUME) = 1;
46+
CVARF(FOCMD_JUMPVOLUME) = 1;
47+
CVARF(FOCMD_OLDSCOREBOARD) = 0;
2248
}
2349

2450
void FO_LoadSettings()
@@ -48,19 +74,19 @@ void FO_LoadSettings()
4874
switch(field)
4975
{
5076
case FOCMD_GRENTIMER:
51-
cvar_set(FOCMD_GRENTIMER, val);
77+
CVARF(FOCMD_GRENTIMER) = stof(val);
5278
break;
5379
case FOCMD_GRENTIMERSOUND:
54-
cvar_set(FOCMD_GRENTIMERSOUND, val);
80+
CVARS(FOCMD_GRENTIMERSOUND) = val;
5581
break;
5682
case FOCMD_GRENTIMERVOLUME:
57-
cvar_set(FOCMD_GRENTIMERVOLUME, val);
83+
CVARF(FOCMD_GRENTIMERVOLUME) = stof(val);
5884
break;
5985
case FOCMD_JUMPVOLUME:
60-
cvar_set(FOCMD_JUMPVOLUME, val);
86+
CVARF(FOCMD_JUMPVOLUME) = stof(val);
6187
break;
6288
case FOCMD_OLDSCOREBOARD:
63-
cvar_set(FOCMD_OLDSCOREBOARD, val);
89+
CVARF(FOCMD_OLDSCOREBOARD) = stof(val);
6490
break;
6591
}
6692
}

0 commit comments

Comments
 (0)