From: terencehill Date: Wed, 30 Jan 2019 14:41:18 +0000 (+0100) Subject: Fix wrong (outdated) health/armor values displayed above players when game (re)starts... X-Git-Tag: xonotic-v0.8.5~1628 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=5e4b14b3bcee54f32291df77f5cd82ffd4a1f7c3;ds=inline Fix wrong (outdated) health/armor values displayed above players when game (re)starts after a countdown Fixed by assigning values to entcs_sender entity fields when there are really sent, not when they are scheduled to be sent since there is a filter in between that can forbid sending them (private updates) leading to mismatching field values between entcs_sender and entcs_receiver entities --- diff --git a/qcsrc/common/ent_cs.qc b/qcsrc/common/ent_cs.qc index 36b8b587ed..ef028c9a20 100644 --- a/qcsrc/common/ent_cs.qc +++ b/qcsrc/common/ent_cs.qc @@ -160,6 +160,7 @@ ENTCS_PROP(FRAGS, true, frags, ENTCS_SET_NORMAL, WriteShort(chan, sf); FOREACH(EntCSProps, sf & BIT(it.m_id), { + it.m_set(this, player); it.m_send(chan, this); }); return true; @@ -176,10 +177,9 @@ ENTCS_PROP(FRAGS, true, frags, ENTCS_SET_NORMAL, entity o = this.owner; FOREACH(EntCSProps, it.m_check(this, o), { - it.m_set(this, o); this.SendFlags |= BIT(it.m_id); }); - setorigin(this, this.origin); // relink + setorigin(this, this.origin); // relink } void entcs_attach(entity player) @@ -189,11 +189,6 @@ ENTCS_PROP(FRAGS, true, frags, ENTCS_SET_NORMAL, setthink(e, entcs_think); e.nextthink = time; Net_LinkEntity(e, false, 0, entcs_send); - if (!IS_REAL_CLIENT(player)) return; - FOREACH_CLIENT(true, { - assert(CS(it).entcs); - _entcs_send(CS(it).entcs, msg_entity = player, BITS(23), MSG_ONE); - }); } void entcs_detach(entity player)