From a24fd03feb6db3c3a6a63e80ffcf4a16a98d1ca8 Mon Sep 17 00:00:00 2001 From: terencehill Date: Thu, 31 Jan 2019 14:50:35 +0100 Subject: [PATCH] entcs: fix networking of wrong entcs fields (nevertheless miraculously it was working well enough). It should save a bit more bandwidth --- qcsrc/common/ent_cs.qc | 25 +++++++++++++++++++++++-- qcsrc/common/ent_cs.qh | 7 +++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/qcsrc/common/ent_cs.qc b/qcsrc/common/ent_cs.qc index a641905c4..a15ebc296 100644 --- a/qcsrc/common/ent_cs.qc +++ b/qcsrc/common/ent_cs.qc @@ -12,6 +12,27 @@ REGISTRY_SORT(EntCSProps) REGISTRY_CHECK(EntCSProps) STATIC_INIT(RegisterEntCSProps_renumber) { FOREACH(EntCSProps, true, it.m_id = i); } +// these entcs_props ids need to be referenced directly +int ENTCS_PROP_ENTNUM_id = 0; +int ENTCS_PROP_ORIGIN_id = 0; +STATIC_INIT(RegisterEntCSProps_setglobalids) +{ + FOREACH(EntCSProps, true, { + if (it.registered_id == "ENTCS_PROP_ENTNUM") + ENTCS_PROP_ENTNUM_id = it.m_id; + if (it.registered_id == "ENTCS_PROP_ORIGIN") + ENTCS_PROP_ORIGIN_id = it.m_id; + }); +} + +#ifdef SVQC +// Force an origin update, for player sounds +void entcs_force_origin(entity player) +{ + CS(player).entcs.m_forceupdate = BIT(ENTCS_PROP_ORIGIN_id); +} +#endif + .bool m_public; .bool(entity ent, entity player) m_check; .void(entity ent, entity player) m_set; @@ -139,7 +160,7 @@ ENTCS_PROP(FRAGS, true, frags, ENTCS_SET_NORMAL, bool _entcs_send(entity this, entity to, int sf, int chan) { entity player = this.owner; - sf |= BIT(0); // assume private + sf |= BIT(ENTCS_PROP_ENTNUM_id); // assume private do { if (IS_PLAYER(player)) { @@ -257,7 +278,7 @@ ENTCS_PROP(FRAGS, true, frags, ENTCS_SET_NORMAL, e.sv_entnum = n; int sf = ReadShort(); e.has_sv_origin = false; - e.m_entcs_private = boolean(sf & BIT(0)); + e.m_entcs_private = boolean(sf & BIT(ENTCS_PROP_ENTNUM_id)); FOREACH(EntCSProps, sf & BIT(it.m_id), { it.m_receive(e); diff --git a/qcsrc/common/ent_cs.qh b/qcsrc/common/ent_cs.qh index 3a9f084bc..c46d31b12 100644 --- a/qcsrc/common/ent_cs.qh +++ b/qcsrc/common/ent_cs.qh @@ -36,14 +36,13 @@ REGISTER_NET_TEMP(CLIENT_ENTCS) void entcs_think(entity this); - void entcs_attach(entity e); + void entcs_attach(entity player); - void entcs_detach(entity e); + void entcs_detach(entity player); .int m_forceupdate; -/** Force an origin update, for player sounds */ - #define entcs_force_origin(e) (CS(e).entcs.m_forceupdate = BIT(2)) + void entcs_force_origin(entity player); #endif -- 2.39.2