diff options
author | Paweł Redman <pawel.redman@gmail.com> | 2015-04-04 16:20:17 +0200 |
---|---|---|
committer | Paweł Redman <pawel.redman@gmail.com> | 2015-04-04 16:20:17 +0200 |
commit | 8c6ad4c73c816dbe412e6fac0ad1c0d2837492cc (patch) | |
tree | 007c383de5770f9b9649571142e34a7c95b9675b | |
parent | 752d1bbed1f59eb45b3c89cbddc1430d817b1102 (diff) |
Let spectators see damage blobs of the spectated player.
-rw-r--r-- | src/game/g_active.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/game/g_active.c b/src/game/g_active.c index 2eede6b..7148af0 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -2213,6 +2213,39 @@ void ClientThink_real( gentity_t *ent ) /* ================== +G_SendPublicServerCommand + +Send a server command to a player and everyone following them. +================== +*/ +void G_SendPublicServerCommand( int clientNum, const char *cmd ) +{ + int i; + gclient_t *client; + + for( i = 0; i < level.maxclients ; i++ ) + { + client = level.clients + i; + + if( client->pers.connected != CON_CONNECTED ) + continue; + + if( client->ps.clientNum == clientNum ) + goto send; + + if( client->sess.spectatorState == SPECTATOR_NOT ) + continue; + + if( client->sess.spectatorClient != clientNum ) + continue; + + send: + trap_SendServerCommand( client->ps.clientNum, cmd ); + } +} + +/* +================== ClientThink A new command has arrived from the client @@ -2261,7 +2294,7 @@ void G_RunClient( gentity_t *ent ) if( p - buffer + len + 1 > sizeof( buffer ) ) { - trap_SendServerCommand( ent - g_entities, buffer ); + G_SendPublicServerCommand( ent - g_entities, buffer ); strcpy( buffer, "dblob" ); p = buffer + 5; } @@ -2271,7 +2304,7 @@ void G_RunClient( gentity_t *ent ) } if( p > buffer + 6 ) - trap_SendServerCommand( ent - g_entities, buffer ); + G_SendPublicServerCommand( ent - g_entities, buffer ); ent->client->bufferedBlobCount = 0; } |