Patched for QSG Standard 2 (Extend Protocol).

Unfinished, renderer effects are only half implimented at this point.
This commit is contained in:
James Brown 2000-06-25 13:00:19 +00:00
parent f6ec000127
commit 089a0a35d0
16 changed files with 273 additions and 64 deletions

View file

@ -209,6 +209,14 @@ void CL_ParseDelta (entity_state_t *from, entity_state_t *to, int bits)
if (bits&(1<<i))
bitcounts[i]++;
if (bits & U_EXTEND1)
{
bits |= MSG_ReadByte() << 16;
if (bits & U_EXTEND2)
bits |= MSG_ReadByte() << 24;
}
to->flags = bits;
if (bits & U_MODEL)
@ -244,6 +252,15 @@ void CL_ParseDelta (entity_state_t *from, entity_state_t *to, int bits)
if (bits & U_ANGLE3)
to->angles[2] = MSG_ReadAngle();
if (bits & U_GLOWSIZE)
to->glowsize = MSG_ReadByte();
if (bits & U_GLOWCOLOR)
to->glowcolor = MSG_ReadByte();
if (bits & U_GLOWCOLOR)
to->colormod = MSG_ReadByte();
if (bits & U_SOLID)
{
// FIXME
@ -499,7 +516,19 @@ void CL_LinkPacketEntities (void)
ent->scoreboard = NULL;
}
// set skin
// Ender: Extend (Colormod) [QSG - Begin]
// N.B: All messy code below is the sole fault of LordHavoc and
// his futile attempts to save bandwidth. :)
//
ent->glowsize = s1->glowsize < 128 ? s1->glowsize * 8.0 : (s1->glowsize - 256) * 8.0;
ent->glowcolor = s1->glowcolor;
ent->colormod[0] = (float) ((s1->colormod >> 5) & 7) * (1.0 / 7.0);
ent->colormod[1] = (float) ((s1->colormod >> 2) & 7) * (1.0 / 7.0);
ent->colormod[2] = (float) (s1->colormod & 3) * (1.0 / 3.0);
//
// Ender: Extend (Colormod) [QSG - End]
// set skin
ent->skinnum = s1->skinnum;
// set frame