diff options
author | Andrey Nazarov <skuller@skuller.net> | 2013-02-24 19:23:33 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2013-02-24 19:40:33 +0400 |
commit | 10e058882fc623f853a30ef69a4abc52608dee44 (patch) | |
tree | 8d44dd7bcee8457481761feea98856689038283f /src/server/user.c | |
parent | 4cefffac584334afbda5f47e2171dcec4c85f420 (diff) |
Add ‘sv_idlekick’ variable.
Diffstat (limited to 'src/server/user.c')
-rw-r--r-- | src/server/user.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/user.c b/src/server/user.c index 66f2ac7..8292795 100644 --- a/src/server/user.c +++ b/src/server/user.c @@ -993,6 +993,11 @@ static void SV_ExecuteUserCommand(const char *s) } } + if (!strcmp(c, "say") || !strcmp(c, "say_team")) { + // don't timeout. only chat commands count as activity. + sv_client->lastactivity = svs.realtime; + } + ge->ClientCommand(sv_player); } @@ -1015,6 +1020,8 @@ SV_ClientThink */ static inline void SV_ClientThink(usercmd_t *cmd) { + usercmd_t *old = &sv_client->lastcmd; + sv_client->command_msec -= cmd->msec; sv_client->num_moves++; @@ -1024,6 +1031,14 @@ static inline void SV_ClientThink(usercmd_t *cmd) return; } + if (cmd->buttons != old->buttons + || cmd->forwardmove != old->forwardmove + || cmd->sidemove != old->sidemove + || cmd->upmove != old->upmove) { + // don't timeout + sv_client->lastactivity = svs.realtime; + } + ge->ClientThink(sv_player, cmd); } |