From 3e1bb72bf1b410460e87cd10a71d5c8aff0a1a37 Mon Sep 17 00:00:00 2001 From: IronClawTrem Date: Tue, 27 Aug 2019 00:26:39 +0100 Subject: add setrotation command --- src/game/g_admin.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/game/g_admin.h | 1 + 2 files changed, 45 insertions(+) (limited to 'src') diff --git a/src/game/g_admin.c b/src/game/g_admin.c index 412f949..422b3c1 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -399,6 +399,11 @@ g_admin_cmd_t g_admin_cmds[ ] = {"give", G_admin_give, "give", "give funds to a player", "[^3name|slot#^7] [^3amount^7]" + }, + + {"setrotation", G_admin_setrotation, "setrotation", + "sets the map rotation", + "[^3rotation^7]" } }; @@ -7745,3 +7750,42 @@ qboolean G_admin_give(gentity_t *ent, int skiparg) return qtrue; } + +extern mapRotations_t mapRotations; + +qboolean G_admin_setrotation(gentity_t *ent, int skiparg) +{ + char new_rotation[MAX_NAME_LENGTH]; + int i; + + if (G_SayArgc() < 2 + skiparg) + { + ADMP("^3!setrotation: ^7usage: !setrotation [rotation]\n"); + ADMP("Available rotations:\n"); + goto rotationlist; + } + + G_SayArgv(1 + skiparg, new_rotation, sizeof(new_rotation)); + + for( i = 0; i < mapRotations.numRotations; i++ ) + { + if( Q_stricmp( mapRotations.rotations[ i ].name, new_rotation ) == 0 ) + { + G_StartMapRotation(new_rotation, qfalse); + trap_SendServerCommand( -1, va("print \"^3!setrotation: ^7rotation ^3%s ^7was started by %s", + new_rotation, ent ? G_admin_adminPrintName(ent) : "console")); + return qtrue; + } + } + ADMP("^3!setrotation: ^7rotation not found. Available rotations:\n"); + goto rotationlist; + rotationlist: + { + for( i = 0; i < mapRotations.numRotations; i++ ) + { + ADMP(va(" %s\n", mapRotations.rotations[ i ].name)); + } + ADMP(va("Number of available rotations: ^3%d\n", mapRotations.numRotations)); + } + return qfalse; +} diff --git a/src/game/g_admin.h b/src/game/g_admin.h index c7d61d7..24a256e 100644 --- a/src/game/g_admin.h +++ b/src/game/g_admin.h @@ -269,6 +269,7 @@ qboolean G_admin_astage( gentity_t *ent, int skiparg ); qboolean G_admin_bubble( gentity_t *ent, int skiparg ); qboolean G_admin_scrim( gentity_t *ent, int skiparg ); qboolean G_admin_give( gentity_t *ent, int skiparg ); +qboolean G_admin_setrotation( gentity_t *ent, int skiparg ); void G_admin_print( gentity_t *ent, char *m ); void G_admin_buffer_print( gentity_t *ent, char *m ); -- cgit