diff options
author | /dev/humancontroller <devhc@example.com> | 2014-07-13 19:16:38 +0200 |
---|---|---|
committer | /dev/humancontroller <devhc@example.com> | 2017-03-09 13:51:13 +0100 |
commit | 5547ccc17c80e5ded246cd5ae3a5d88fc819482c (patch) | |
tree | 7f825308765aa68d33664fb67b11acfb5635ee9f | |
parent | f62e00c4ac73d7b3803cad8bd8eaa260531b0381 (diff) |
implement setdevmode: an admin command to switch developer mode on or off
-rw-r--r-- | src/game/g_admin.c | 47 | ||||
-rw-r--r-- | src/game/g_admin.h | 1 |
2 files changed, 48 insertions, 0 deletions
diff --git a/src/game/g_admin.c b/src/game/g_admin.c index 9c8941fb..4d4c15a7 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -175,6 +175,11 @@ g_admin_cmd_t g_admin_cmds[ ] = "[^3id^7]" }, + {"setdevmode", G_admin_setdevmode, qfalse, "setdevmode", + "switch developer mode on or off", + "[^3on|off^7]" + }, + {"setlevel", G_admin_setlevel, qfalse, "setlevel", "sets the admin level of a player", "[^3name|slot#|admin#^7] [^3level^7]" @@ -1537,6 +1542,48 @@ int G_admin_parse_time( const char *time ) return seconds; } +qboolean G_admin_setdevmode( gentity_t *ent ) +{ + char str[ 5 ]; + if( trap_Argc() != 2 ) + { + ADMP( "^3setdevmode: ^7usage: setdevmode [on|off]\n" ); + return qfalse; + } + trap_Argv( 1, str, sizeof( str ) ); + if( !Q_stricmp( str, "on" ) ) + { + if( g_cheats.integer ) + { + ADMP( "^3setdevmode: ^7developer mode is already on\n" ); + return qfalse; + } + trap_Cvar_Set( "sv_cheats", "1" ); + trap_Cvar_Update( &g_cheats ); + AP( va( "print \"^3setdevmode: ^7%s ^7has switched developer mode on\n\"", + ent ? ent->client->pers.netname : "console" ) ); + return qtrue; + } + else if( !Q_stricmp( str, "off" ) ) + { + if( !g_cheats.integer ) + { + ADMP( "^3setdevmode: ^7developer mode is already off\n" ); + return qfalse; + } + trap_Cvar_Set( "sv_cheats", "0" ); + trap_Cvar_Update( &g_cheats ); + AP( va( "print \"^3setdevmode: ^7%s ^7has switched developer mode off\n\"", + ent ? ent->client->pers.netname : "console" ) ); + return qtrue; + } + else + { + ADMP( "^3setdevmode: ^7usage: setdevmode [on|off]\n" ); + return qfalse; + } +} + qboolean G_admin_kick( gentity_t *ent ) { int pid; diff --git a/src/game/g_admin.h b/src/game/g_admin.h index f78752d3..da102c65 100644 --- a/src/game/g_admin.h +++ b/src/game/g_admin.h @@ -182,6 +182,7 @@ qboolean G_admin_pause( gentity_t *ent ); qboolean G_admin_builder( gentity_t *ent ); qboolean G_admin_buildlog( gentity_t *ent ); qboolean G_admin_revert( gentity_t *ent ); +qboolean G_admin_setdevmode( gentity_t *ent ); void G_admin_print( gentity_t *ent, char *m ); void G_admin_buffer_print( gentity_t *ent, char *m ); |