1
0
Fork 0
forked from fte/fteqw

Commit 6276 was bad (reproted by qqshka).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6286 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2022-07-28 02:16:37 +00:00
parent 3f85c9793c
commit 217a49c08d

View file

@ -5495,6 +5495,7 @@ void Cmd_Join_f (void)
int numclients; int numclients;
extern cvar_t maxclients; extern cvar_t maxclients;
int seats; int seats;
qboolean wasspawned;
if (host_client->controller) if (host_client->controller)
{ {
@ -5569,13 +5570,15 @@ void Cmd_Join_f (void)
if (!host_client->spectator) if (!host_client->spectator)
continue; continue;
wasspawned = host_client->spawned;
SV_DespawnClient(host_client);
// turn the spectator into a player // turn the spectator into a player
host_client->spectator = false; host_client->spectator = false;
InfoBuf_RemoveKey (&host_client->userinfo, "*spectator"); InfoBuf_RemoveKey (&host_client->userinfo, "*spectator");
if (!host_client->spawned) if (!wasspawned)
continue; continue;
//need to respawn them now. //need to respawn them now.
SV_DespawnClient(host_client);
SV_SetUpClientEdict (host_client, host_client->edict); SV_SetUpClientEdict (host_client, host_client->edict);
// FIXME, bump the client's userid? // FIXME, bump the client's userid?
@ -5633,6 +5636,7 @@ void Cmd_Observe_f (void)
int numspectators; int numspectators;
extern cvar_t maxspectators, spectator_password; extern cvar_t maxspectators, spectator_password;
int seats; int seats;
qboolean wasspawned;
if (host_client->controller) if (host_client->controller)
{ {
@ -5695,13 +5699,15 @@ void Cmd_Observe_f (void)
if (host_client->spectator) if (host_client->spectator)
continue; continue;
wasspawned = host_client->spawned;
SV_DespawnClient(host_client);
// turn the player into a spectator // turn the player into a spectator
host_client->spectator = true; host_client->spectator = true;
InfoBuf_SetValueForStarKey (&host_client->userinfo, "*spectator", "1"); InfoBuf_SetValueForStarKey (&host_client->userinfo, "*spectator", "1");
if (!host_client->spawned) if (!wasspawned)
continue; continue;
//need to respawn them now. //need to respawn them now.
SV_DespawnClient(host_client);
SV_SetUpClientEdict (host_client, host_client->edict); SV_SetUpClientEdict (host_client, host_client->edict);
// FIXME, bump the client's userid? // FIXME, bump the client's userid?
@ -7985,6 +7991,15 @@ static double SVFTE_ExecuteClientMove(client_t *controller)
unsigned int seat, frame, a; unsigned int seat, frame, a;
qboolean ran; qboolean ran;
#define VRM_UNSUPPORTED (~(VRM_LOSS|VRM_DELAY|VRM_SEATS|VRM_FRAMES|VRM_ACKS))
if (flags & VRM_UNSUPPORTED)
{
if (!msg_badread)
Con_Printf("SVFTE_ExecuteClientMove: unknown input flags %#x\n", flags & VRM_UNSUPPORTED);
msg_badread = true;
return 0;
}
for (a = 0; a < numacks; a++) for (a = 0; a < numacks; a++)
{ {
controller->delta_sequence = MSG_ReadLong(); controller->delta_sequence = MSG_ReadLong();