X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fent_cs.qc;h=5a5c6acbebfefced8df45a82313944e36e49d496;hb=9f3c9851a330279ee0ea7943970c3af484447bf2;hp=a89e84a03725d7f8ff16525ef81faa52e9d81d49;hpb=8c965aa90470cfa8cbfaff88db71b6b5899a90ce;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/ent_cs.qc b/qcsrc/common/ent_cs.qc index a89e84a03..5a5c6acbe 100644 --- a/qcsrc/common/ent_cs.qc +++ b/qcsrc/common/ent_cs.qc @@ -13,9 +13,9 @@ MACRO_END // #define PROP(public, fld, set, sv, cl) #define ENTCS_NETPROPS(ent, PROP) PROP(false, sv_entnum, ENTCS_SET_NORMAL, {}, {}) /* sentinel */ \ PROP(false, origin, ENTCS_SET_NORMAL, \ - { WriteShort(chan, ent.origin.x); WriteShort(chan, ent.origin.y); \ - WriteShort(chan, ent.origin.z); }, \ - { ent.has_sv_origin = true; vector v; v.x = ReadShort(); v.y = ReadShort(); v.z = ReadShort(); setorigin(ent, v); }) \ + { WriteCoord(chan, ent.origin.x); WriteCoord(chan, ent.origin.y); \ + WriteCoord(chan, ent.origin.z); }, \ + { ent.has_sv_origin = true; vector v; v.x = ReadCoord(); v.y = ReadCoord(); v.z = ReadCoord(); setorigin(ent, v); }) \ \ PROP(false, angles_y, ENTCS_SET_NORMAL, \ { WriteByte(chan, ent.angles.y / 360 * 256); }, \ @@ -73,6 +73,11 @@ MACRO_END entity player = this.owner; sf |= BIT(0); // assume private do { + if (!(IS_PLAYER(player))) + { + sf &= ENTCS_PUBLICMASK; // no private updates + break; + } if (radar_showennemies) break; if (SAME_TEAM(to, player)) break; if (!(IS_PLAYER(to) || to.caplayer) && time > game_starttime) break; @@ -175,33 +180,26 @@ MACRO_END { int n = ReadByte(); entity e = entcs_receiver(n); - #define X(e) { \ - setthink(e, entcs_think); \ - entcs_receiver(n, e); \ - } if (e == NULL) { if (!this) - { // initial = temp e = new_pure(entcs_receiver); - X(e); - } else - { // initial = linked e = this; - X(e); - } + setthink(e, entcs_think); + entcs_receiver(n, e); } else if (e != this && this) { // upgrade to linked delete(e); e = this; - X(e); + setthink(e, entcs_think); + entcs_receiver(n, e); } - #undef X + InterpolateOrigin_Undo(e); e.sv_entnum = n; int sf = ReadShort();