summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/g_client.c12
-rw-r--r--src/game/g_cmds.c26
-rw-r--r--src/game/g_local.h5
-rw-r--r--src/game/g_main.c10
4 files changed, 47 insertions, 6 deletions
diff --git a/src/game/g_client.c b/src/game/g_client.c
index 1dad4acd..d8858de9 100644
--- a/src/game/g_client.c
+++ b/src/game/g_client.c
@@ -1070,8 +1070,10 @@ void ClientUserinfoChanged( int clientNum )
{
trap_SendServerCommand( -1, va( "print \"%s" S_COLOR_WHITE
" renamed to %s" S_COLOR_WHITE "\n\"", oldname, client->pers.netname ) );
- G_LogPrintf( "ClientRename: %i [%s] (%s) \"%s^7\" -> \"%s^7\"\n", clientNum,
- client->pers.ip, client->pers.guid, oldname, client->pers.netname );
+ G_LogPrintf( "ClientRename: %i [%s] (%s) \"%s^7\" -> \"%s^7\" \"%c%s%c^7\"\n",
+ clientNum, client->pers.ip, client->pers.guid,
+ oldname, client->pers.netname,
+ DECOLOR_OFF, client->pers.netname, DECOLOR_ON );
G_admin_namelog_update( client, qfalse );
}
}
@@ -1276,8 +1278,10 @@ char *ClientConnect( int clientNum, qboolean firstTime )
// get and distribute relevent paramters
ClientUserinfoChanged( clientNum );
- G_LogPrintf( "ClientConnect: %i [%s] (%s) \"%s^7\"\n", clientNum,
- client->pers.ip, client->pers.guid, client->pers.netname );
+ G_LogPrintf( "ClientConnect: %i [%s] (%s) \"%s^7\" \"%c%s%c^7\"\n",
+ clientNum, client->pers.ip, client->pers.guid,
+ client->pers.netname,
+ DECOLOR_OFF, client->pers.netname, DECOLOR_ON );
// don't do the "xxx connected" messages if they were caried over from previous level
if( firstTime )
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index 1816b8f5..d2bf150e 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -3151,10 +3151,18 @@ void G_ListCommands( gentity_t *ent )
void G_DecolorString( char *in, char *out, int len )
{
+ qboolean decolor = qtrue;
+
len--;
while( *in && len > 0 ) {
- if( Q_IsColorString( in ) ) {
+ if( *in == DECOLOR_OFF || *in == DECOLOR_ON )
+ {
+ decolor = ( *in == DECOLOR_ON );
+ in++;
+ continue;
+ }
+ if( Q_IsColorString( in ) && decolor ) {
in += 2;
continue;
}
@@ -3164,6 +3172,22 @@ void G_DecolorString( char *in, char *out, int len )
*out = '\0';
}
+void G_UnEscapeString( char *in, char *out, int len )
+{
+ len--;
+
+ while( *in && len > 0 )
+ {
+ if( *in >= ' ' || *in == '\n' )
+ {
+ *out++ = *in;
+ len--;
+ }
+ in++;
+ }
+ *out = '\0';
+}
+
void Cmd_PrivateMessage_f( gentity_t *ent )
{
int pids[ MAX_CLIENTS ];
diff --git a/src/game/g_local.h b/src/game/g_local.h
index d2b482ff..b317bba9 100644
--- a/src/game/g_local.h
+++ b/src/game/g_local.h
@@ -666,6 +666,10 @@ char *G_NewString( const char *string );
//
// g_cmds.c
//
+
+#define DECOLOR_OFF '\16'
+#define DECOLOR_ON '\17'
+
void G_StopFollowing( gentity_t *ent );
void G_StopFromFollowing( gentity_t *ent );
void G_FollowLockView( gentity_t *ent );
@@ -677,6 +681,7 @@ int G_ClientNumbersFromString( char *s, int *plist, int max );
char *ConcatArgs( int start );
void G_Say( gentity_t *ent, saymode_t mode, const char *chatText );
void G_DecolorString( char *in, char *out, int len );
+void G_UnEscapeString( char *in, char *out, int len );
void G_SanitiseString( char *in, char *out, int len );
void Cmd_PrivateMessage_f( gentity_t *ent );
void Cmd_ListMaps_f( gentity_t *ent );
diff --git a/src/game/g_main.c b/src/game/g_main.c
index c956b9a5..16c11ec7 100644
--- a/src/game/g_main.c
+++ b/src/game/g_main.c
@@ -1673,7 +1673,10 @@ void QDECL G_LogPrintf( const char *fmt, ... )
va_end( argptr );
if( g_dedicated.integer )
- G_Printf( "%s", string + 7 );
+ {
+ G_UnEscapeString( string, decolored, sizeof( decolored ) );
+ G_Printf( "%s", decolored + 7 );
+ }
if( !level.logFile )
return;
@@ -2122,6 +2125,11 @@ void G_CheckVote( team_t team )
if( pass )
level.voteExecuteTime[ team ] = level.time + 3000;
+ G_LogPrintf( "EndVote: %s %s %d %d %d\n",
+ team == TEAM_NONE ? "global" : BG_TeamName( team ),
+ pass ? "pass" : "fail",
+ level.voteYes[ team ], level.voteNo[ team ], level.numVotingClients[ team ] );
+
msg = va( "print \"%sote %sed (%d - %d)\n\"",
team == TEAM_NONE ? "V" : "Team v", pass ? "pass" : "fail",
level.voteYes[ team ], level.voteNo[ team ] );