From 17801ac17058ccc839748430190a9368e7fa6a88 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Mon, 11 Apr 2011 00:07:32 +0300 Subject: [PATCH] Send the dead body / gibbed status as a separate WriteByte. I really see no other way of doing it. It's just one extra byte after all, and the entity is sent less intensively now that we added some checks to prevent extra networking. --- qcsrc/client/gibs.qc | 3 ++- qcsrc/server/g_violence.qc | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/qcsrc/client/gibs.qc b/qcsrc/client/gibs.qc index 7239fffe2..2f552c20e 100644 --- a/qcsrc/client/gibs.qc +++ b/qcsrc/client/gibs.qc @@ -140,7 +140,7 @@ void TossGib (string mdlname, vector org, vector vconst, vector vrand, float spe void Ent_GibSplash(float isNew) { - float amount, type, specnum, entnumber; + float amount, type, specnum, entnumber, body; vector org, vel; string specstr; float issilent; @@ -151,6 +151,7 @@ void Ent_GibSplash(float isNew) type = ReadByte(); // gibbage type amount = ReadByte() / 16.0; // gibbage amount entnumber = ReadByte(); // player num + body = ReadByte(); // is dead body / gibbed org_x = ReadShort() * 4 + 2; org_y = ReadShort() * 4 + 2; org_z = ReadShort() * 4 + 2; diff --git a/qcsrc/server/g_violence.qc b/qcsrc/server/g_violence.qc index 0cc997bb0..1c3c8d04e 100644 --- a/qcsrc/server/g_violence.qc +++ b/qcsrc/server/g_violence.qc @@ -64,6 +64,7 @@ float Violence_DamageEffect_SendEntity(entity to, float sf) WriteByte(MSG_ENTITY, self.cnt); // damage weapon WriteByte(MSG_ENTITY, self.state); // player species WriteByte(MSG_ENTITY, self.team); // player entnum + WriteByte(MSG_ENTITY, self.deadflag); // is dead body / gibbed WriteCoord(MSG_ENTITY, floor(self.origin_x)); WriteCoord(MSG_ENTITY, floor(self.origin_y)); WriteCoord(MSG_ENTITY, floor(self.origin_z)); @@ -85,6 +86,12 @@ void Violence_DamageEffect(entity pl, float type) else e.team = num_for_edict(pl); + // is this a whole dead body, or a gibbed body / player? + if(!pl.modelindex) // gibbed + e.deadflag = 2; + else if(pl.classname == "body") + e.deadflag = 1; + // if the player is dead, show the effect lower, else it appears floating above the body if(pl.health <= 0) setorigin(e, pl.origin - '0 0 25'); -- 2.39.2