From e64bc2ca8ec572327323004fad96f5f6b6518f82 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 8 Sep 2019 12:59:17 +0200 Subject: [PATCH] Networking: Make sure level transitions don't miss player entity setup packets --- src/server/scihunt/client.c | 23 ++--------------------- src/server/valve/client.c | 5 ++++- src/shared/defs.h | 2 ++ 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/server/scihunt/client.c b/src/server/scihunt/client.c index 14b3f143..badc5f0f 100644 --- a/src/server/scihunt/client.c +++ b/src/server/scihunt/client.c @@ -58,7 +58,7 @@ void Game_PlayerPostThink(void) player pl = (player)self; Animation_PlayerUpdate(); - pl.SendFlags = PLAYER_KEEPALIVE; + pl.SendFlags |= PLAYER_KEEPALIVE; if (pl.old_modelindex != pl.modelindex) pl.SendFlags |= PLAYER_MODELINDEX; @@ -191,26 +191,7 @@ void Game_PutClientInServer(void) pl.velocity = [0,0,0]; pl.frame = 1; pl.SendEntity = Player_SendEntity; - pl.SendFlags = PLAYER_MODELINDEX | - PLAYER_ORIGIN | - PLAYER_ORIGIN_Z | - PLAYER_ANGLES_X | - PLAYER_ANGLES_Y | - PLAYER_ANGLES_Z | - PLAYER_VELOCITY | - PLAYER_VELOCITY_Z | - PLAYER_FLAGS | - PLAYER_WEAPON | - PLAYER_ITEMS | - PLAYER_HEALTH | - PLAYER_ARMOR | - PLAYER_MOVETYPE | - PLAYER_VIEWOFS | - PLAYER_BASEFRAME | - PLAYER_FRAME | - PLAYER_AMMO1 | - PLAYER_AMMO2 | - PLAYER_AMMO3; + pl.SendFlags = UPDATE_ALL; pl.customphysics = Empty; pl.vPain = Player_Pain; diff --git a/src/server/valve/client.c b/src/server/valve/client.c index 02b68b8e..81d1932b 100644 --- a/src/server/valve/client.c +++ b/src/server/valve/client.c @@ -68,7 +68,7 @@ Game_PlayerPostThink(void) player pl = (player)self; Animation_PlayerUpdate(); - pl.SendFlags = PLAYER_KEEPALIVE; + pl.SendFlags |= PLAYER_KEEPALIVE; if (pl.old_modelindex != pl.modelindex) { pl.SendFlags |= PLAYER_MODELINDEX; @@ -177,6 +177,7 @@ Game_DecodeChangeParms(void) pl.g_items = parm10; pl.activeweapon = parm11; } + void Game_SetChangeParms(void) { @@ -228,6 +229,8 @@ Game_PutClientInServer(void) pl.velocity = [0,0,0]; pl.frame = 1; pl.SendEntity = Player_SendEntity; + pl.SendFlags = UPDATE_ALL; + pl.customphysics = Empty; pl.vPain = Player_Pain; pl.vDeath = Player_Death; diff --git a/src/shared/defs.h b/src/shared/defs.h index 1757aff9..fbef69f0 100644 --- a/src/shared/defs.h +++ b/src/shared/defs.h @@ -66,6 +66,8 @@ const vector VEC_PLAYER_CVIEWPOS = [0,0,12]; #define FL_FROZEN (1<<21) #define FL_ONLADDER (1<<13) +#define UPDATE_ALL 16777215 + /* global hitmesh definitions */ enum { BODY_DEFAULT,