diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fixes.c | 28 | 
1 files changed, 21 insertions, 7 deletions
diff --git a/src/fixes.c b/src/fixes.c index 5883eb4..8fb65c2 100644 --- a/src/fixes.c +++ b/src/fixes.c @@ -20,9 +20,13 @@  #include "con_.h"  #include "gametype.h" -static void unhide(const char *name) { +static void chflags(const char *name, int unset, int set) {  	struct con_var *v = con_findvar(name); -	if (v) v->parent->base.flags &= ~(CON_DEVONLY | CON_HIDDEN); +	if (v) v->parent->base.flags = v->parent->base.flags & ~unset | set; +} + +static void unhide(const char *name) { +	chflags(name, CON_HIDDEN | CON_DEVONLY, 0);  }  void fixes_apply(void) { @@ -38,16 +42,26 @@ void fixes_apply(void) {  	unhide("demo_pauseatservertick");  	unhide("demo_quitafterplayback"); -	unhide("director_afk_timeout"); -	unhide("mp_restartgame"); -  	// handy console stuff  	unhide("con_filter_enable");  	unhide("con_filter_text");  	unhide("con_filter_text_out"); -	// also, let people just do this lol. why not -	unhide("developer"); +	// things that could conceivably cause issues with speedrun verification +	// and/or pedantic following of rules; throw on cheat flag. this could be +	// relaxed with the Eventual Fancy Demo Verification Stuff. +	chflags("director_afk_timeout", CON_HIDDEN | CON_DEVONLY, CON_CHEAT); +	chflags("mp_restartgame", CON_HIDDEN | CON_DEVONLY, CON_CHEAT); + +	// also, ensure the initial state of sv_cheats goes into demos so you can't +	// start a demo with cheats already on and then do something subtle +	chflags("sv_cheats", 0, CON_DEMO); + +	// also, let people use developer, it's pretty handy. ensure it goes in the +	// demo though. even though it's obvious looking at a video, maybe some day +	// a game will want to require demos only (probably not till demos are more +	// robust anyway... whatever) +	chflags("developer", CON_HIDDEN | CON_DEVONLY, CON_DEMO);  	// L4D2 doesn't let you set sv_cheats in lobbies, but turns out it skips all  	// the lobby checks if this random command is developer-only, presumably  | 
