From 59d9c36a97122f9110ff5b599bad38d75f43bfdc Mon Sep 17 00:00:00 2001 From: slipher Date: Wed, 25 Sep 2024 15:44:44 -0500 Subject: [PATCH 1/2] SV_CreateBaseline - start at MAX_CLIENTS instead of 1 Doesn't make sense to have entity 0 be a special case. --- src/engine/server/sv_init.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/engine/server/sv_init.cpp b/src/engine/server/sv_init.cpp index c53d35e27c..b71078504f 100644 --- a/src/engine/server/sv_init.cpp +++ b/src/engine/server/sv_init.cpp @@ -263,12 +263,9 @@ baseline will be transmitted */ void SV_CreateBaseline() { - sharedEntity_t *svent; - int entnum; - - for ( entnum = 1; entnum < sv.num_entities; entnum++ ) + for ( int entnum = MAX_CLIENTS; entnum < sv.num_entities; entnum++ ) { - svent = SV_GentityNum( entnum ); + sharedEntity_t *svent = SV_GentityNum( entnum ); if ( !svent->r.linked ) { From 68765ec87149364b82e8fe5aafe64a677269ec92 Mon Sep 17 00:00:00 2001 From: slipher Date: Wed, 25 Sep 2024 17:29:10 -0500 Subject: [PATCH 2/2] Allow disabling entity baseline with sv_useBaseline This can be used to load large layouts where the entity baseline overflows the max packet size. --- src/engine/server/sv_init.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/engine/server/sv_init.cpp b/src/engine/server/sv_init.cpp index b71078504f..504d1bc5d3 100644 --- a/src/engine/server/sv_init.cpp +++ b/src/engine/server/sv_init.cpp @@ -52,6 +52,8 @@ static Cvar::Cvar cvar_pakname( "pakname", "pak containing current map", Cvar::SERVERINFO | Cvar::ROM, ""); static Cvar::Cvar sv_paks( "sv_paks", "currently loaded paks", Cvar::SYSTEMINFO | Cvar::ROM, ""); +static Cvar::Cvar sv_useBaseline( + "sv_useBaseline", "send entity baseline for non-snapshot delta compression", Cvar::NONE, true); /* =============== @@ -263,6 +265,14 @@ baseline will be transmitted */ void SV_CreateBaseline() { + Cvar::Latch( sv_useBaseline ); + + if ( !sv_useBaseline.Get() ) + { + // make a baseline with no entities + return; + } + for ( int entnum = MAX_CLIENTS; entnum < sv.num_entities; entnum++ ) { sharedEntity_t *svent = SV_GentityNum( entnum );