DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
cl_ents5.c File Reference
#include "quakedef.h"
#include "protocol.h"
+ Include dependency graph for cl_ents5.c:

Go to the source code of this file.

Functions

void EntityFrame5_CL_ReadFrame (void)
 
static void EntityState5_ReadUpdate (entity_state_t *s, int number)
 

Function Documentation

◆ EntityFrame5_CL_ReadFrame()

void EntityFrame5_CL_ReadFrame ( void )

Definition at line 289 of file cl_ents5.c.

290{
291 int n, enumber, framenum;
292 entity_t *ent;
294 // read the number of this frame to echo back in next input packet
295 framenum = MSG_ReadLong(&cl_message);
296 CL_NewFrameReceived(framenum);
299 // read entity numbers until we find a 0x8000
300 // (which would be remove world entity, but is actually a terminator)
301 while ((n = (unsigned short)MSG_ReadShort(&cl_message)) != 0x8000 && !cl_message.badread)
302 {
303 // get the entity number
304 enumber = n & 0x7FFF;
305 // we may need to expand the array
306 if (cl.num_entities <= enumber)
307 {
308 cl.num_entities = enumber + 1;
309 if (enumber >= cl.max_entities)
310 CL_ExpandEntities(enumber);
311 }
312 // look up the entity
313 ent = cl.entities + enumber;
314 // slide the current into the previous slot
315 ent->state_previous = ent->state_current;
316 // read the update
317 s = &ent->state_current;
318 if (n & 0x8000)
319 {
320 // remove entity
321 *s = defaultstate;
322 }
323 else
324 {
325 // update entity
326 EntityState5_ReadUpdate(s, enumber);
327 }
328 // set the cl.entities_active flag
329 cl.entities_active[enumber] = (s->active == ACTIVE_NETWORK);
330 // set the update time
331 s->time = cl.mtime[0];
332 // fix the number (it gets wiped occasionally by copying from defaultstate)
333 s->number = enumber;
334 // check if we need to update the lerp stuff
335 if (s->active == ACTIVE_NETWORK)
337 // print extra messages if desired
339 {
341 Con_Printf("entity #%i has become active\n", enumber);
342 else if (cl.entities[enumber].state_previous.active)
343 Con_Printf("entity #%i has become inactive\n", enumber);
344 }
345 }
346}
static void EntityState5_ReadUpdate(entity_state_t *s, int number)
Definition cl_ents5.c:4
void CL_NewFrameReceived(int num)
Definition cl_input.c:1737
client_state_t cl
Definition cl_main.c:117
client_static_t cls
Definition cl_main.c:116
void CL_ExpandEntities(int num)
Definition cl_main.c:300
void CL_MoveLerpEntityStates(entity_t *ent)
Definition cl_parse.c:1991
cvar_t developer_networkentities
Definition cl_parse.c:173
#define MSG_ReadShort
Definition common.h:191
@ PROTOCOL_DARKPLACES2
various changes
Definition common.h:140
@ PROTOCOL_DARKPLACES4
various changes
Definition common.h:138
@ PROTOCOL_DARKPLACES3
uses EntityFrame4 entity snapshot encoder/decoder which is broken, this attempted to do partial snaps...
Definition common.h:139
@ PROTOCOL_DARKPLACES5
uses EntityFrame5 entity snapshot encoder/decoder which is based on a Tribes networking article at ht...
Definition common.h:137
@ PROTOCOL_QUAKEDP
darkplaces extended quake protocol (used by TomazQuake and others), backwards compatible as long as n...
Definition common.h:142
@ PROTOCOL_DARKPLACES6
various changes
Definition common.h:136
@ PROTOCOL_QUAKE
quake (aka netquake/normalquake/nq) protocol
Definition common.h:144
@ PROTOCOL_NEHAHRAMOVIE
Nehahra movie protocol, a big nasty hack dating back to early days of the Quake Standards Group (but ...
Definition common.h:143
@ PROTOCOL_DARKPLACES1
uses EntityFrame entity snapshot encoder/decoder which is a QuakeWorld-like entity snapshot delta com...
Definition common.h:141
#define MSG_ReadLong
Definition common.h:192
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
Definition console.c:1514
#define n(x, y)
sizebuf_t cl_message
Definition netconn.c:71
entity_state_t defaultstate
Definition protocol.c:4
@ ACTIVE_NETWORK
Definition protocol.h:433
unsigned char * entities_active
Definition client.h:993
entity_t * entities
Definition client.h:991
int max_entities
Definition client.h:980
double mtime[2]
Definition client.h:861
unsigned int servermovesequence
Definition client.h:637
protocolversion_t protocol
Definition client.h:617
int integer
Definition cvar.h:73
unsigned char active
Definition protocol.h:459
unsigned short number
Definition protocol.h:448
entity_state_t state_current
Definition client.h:471
entity_state_t state_previous
Definition client.h:469
qbool badread
Definition common.h:56

References entity_state_t::active, ACTIVE_NETWORK, sizebuf_t::badread, cl, CL_ExpandEntities(), cl_message, CL_MoveLerpEntityStates(), CL_NewFrameReceived(), cls, Con_Printf(), defaultstate, developer_networkentities, client_state_t::entities, client_state_t::entities_active, EntityState5_ReadUpdate(), cvar_t::integer, client_state_t::max_entities, MSG_ReadLong, MSG_ReadShort, client_state_t::mtime, n, client_state_t::num_entities, entity_state_t::number, client_static_t::protocol, PROTOCOL_DARKPLACES1, PROTOCOL_DARKPLACES2, PROTOCOL_DARKPLACES3, PROTOCOL_DARKPLACES4, PROTOCOL_DARKPLACES5, PROTOCOL_DARKPLACES6, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, client_static_t::servermovesequence, entity_t::state_current, entity_t::state_previous, and entity_state_t::time.

Referenced by CL_ParseServerMessage().

◆ EntityState5_ReadUpdate()

static void EntityState5_ReadUpdate ( entity_state_t * s,
int number )
static

Definition at line 4 of file cl_ents5.c.

5{
6 int bits;
7 int startoffset = cl_message.readcount;
8 int bytes = 0;
10 if (bits & E5_EXTEND1)
11 {
12 bits |= MSG_ReadByte(&cl_message) << 8;
13 if (bits & E5_EXTEND2)
14 {
15 bits |= MSG_ReadByte(&cl_message) << 16;
16 if (bits & E5_EXTEND3)
17 bits |= MSG_ReadByte(&cl_message) << 24;
18 }
19 }
20 if (bits & E5_FULLUPDATE)
21 {
22 *s = defaultstate;
24 }
25 if (bits & E5_FLAGS)
27 if (bits & E5_ORIGIN)
28 {
29 if (bits & E5_ORIGIN32)
30 {
34 }
35 else
36 {
40 }
41 }
42 if (bits & E5_ANGLES)
43 {
44 if (bits & E5_ANGLES16)
45 {
49 }
50 else
51 {
55 }
56 }
57 if (bits & E5_MODEL)
58 {
59 if (bits & E5_MODEL16)
60 s->modelindex = (unsigned short) MSG_ReadShort(&cl_message);
61 else
63 }
64 if (bits & E5_FRAME)
65 {
66 if (bits & E5_FRAME16)
67 s->frame = (unsigned short) MSG_ReadShort(&cl_message);
68 else
70 }
71 if (bits & E5_SKIN)
73 if (bits & E5_EFFECTS)
74 {
75 if (bits & E5_EFFECTS32)
76 s->effects = (unsigned int) MSG_ReadLong(&cl_message);
77 else if (bits & E5_EFFECTS16)
78 s->effects = (unsigned short) MSG_ReadShort(&cl_message);
79 else
81 }
82 if (bits & E5_ALPHA)
84 if (bits & E5_SCALE)
86 if (bits & E5_COLORMAP)
88 if (bits & E5_ATTACHMENT)
89 {
90 s->tagentity = (unsigned short) MSG_ReadShort(&cl_message);
92 }
93 if (bits & E5_LIGHT)
94 {
95 s->light[0] = (unsigned short) MSG_ReadShort(&cl_message);
96 s->light[1] = (unsigned short) MSG_ReadShort(&cl_message);
97 s->light[2] = (unsigned short) MSG_ReadShort(&cl_message);
98 s->light[3] = (unsigned short) MSG_ReadShort(&cl_message);
101 }
102 if (bits & E5_GLOW)
103 {
106 }
107 if (bits & E5_COLORMOD)
108 {
112 }
113 if (bits & E5_GLOWMOD)
114 {
118 }
119 if (bits & E5_COMPLEXANIMATION)
120 {
121 skeleton_t *skeleton;
122 const model_t *model;
123 int modelindex;
124 int type;
125 int bonenum;
126 int numbones;
127 short pose7s[7];
129 switch(type)
130 {
131 case 0:
133 s->framegroupblend[1].frame = 0;
134 s->framegroupblend[2].frame = 0;
135 s->framegroupblend[3].frame = 0;
136 s->framegroupblend[0].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
137 s->framegroupblend[1].start = 0;
138 s->framegroupblend[2].start = 0;
139 s->framegroupblend[3].start = 0;
140 s->framegroupblend[0].lerp = 1;
141 s->framegroupblend[1].lerp = 0;
142 s->framegroupblend[2].lerp = 0;
143 s->framegroupblend[3].lerp = 0;
144 break;
145 case 1:
148 s->framegroupblend[2].frame = 0;
149 s->framegroupblend[3].frame = 0;
150 s->framegroupblend[0].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
151 s->framegroupblend[1].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
152 s->framegroupblend[2].start = 0;
153 s->framegroupblend[3].start = 0;
154 s->framegroupblend[0].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
155 s->framegroupblend[1].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
156 s->framegroupblend[2].lerp = 0;
157 s->framegroupblend[3].lerp = 0;
158 break;
159 case 2:
163 s->framegroupblend[3].frame = 0;
164 s->framegroupblend[0].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
165 s->framegroupblend[1].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
166 s->framegroupblend[2].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
167 s->framegroupblend[3].start = 0;
168 s->framegroupblend[0].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
169 s->framegroupblend[1].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
170 s->framegroupblend[2].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
171 s->framegroupblend[3].lerp = 0;
172 break;
173 case 3:
178 s->framegroupblend[0].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
179 s->framegroupblend[1].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
180 s->framegroupblend[2].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
181 s->framegroupblend[3].start = cl.time - (unsigned short)MSG_ReadShort(&cl_message) * (1.0f / 1000.0f);
182 s->framegroupblend[0].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
183 s->framegroupblend[1].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
184 s->framegroupblend[2].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
185 s->framegroupblend[3].lerp = MSG_ReadByte(&cl_message) * (1.0f / 255.0f);
186 break;
187 case 4:
190 skeleton = &cl.engineskeletonobjects[number];
193 numbones = MSG_ReadByte(&cl_message);
194 if (model && numbones != model->num_bones)
195 Host_Error("E5_COMPLEXANIMATION: model has different number of bones than network packet describes\n");
196 if (!skeleton->relativetransforms || skeleton->model != model)
197 {
198 skeleton->model = model;
199 skeleton->relativetransforms = (matrix4x4_t *) Mem_Realloc(cls.levelmempool, skeleton->relativetransforms, sizeof(*skeleton->relativetransforms) * numbones);
200 for (bonenum = 0;bonenum < numbones;bonenum++)
201 skeleton->relativetransforms[bonenum] = identitymatrix;
202 }
203 for (bonenum = 0;bonenum < numbones;bonenum++)
204 {
205 pose7s[0] = (short)MSG_ReadShort(&cl_message);
206 pose7s[1] = (short)MSG_ReadShort(&cl_message);
207 pose7s[2] = (short)MSG_ReadShort(&cl_message);
208 pose7s[3] = (short)MSG_ReadShort(&cl_message);
209 pose7s[4] = (short)MSG_ReadShort(&cl_message);
210 pose7s[5] = (short)MSG_ReadShort(&cl_message);
211 pose7s[6] = (short)MSG_ReadShort(&cl_message);
212 Matrix4x4_FromBonePose7s(skeleton->relativetransforms + bonenum, 1.0f / 64.0f, pose7s);
213 }
214 s->skeletonobject = *skeleton;
215 break;
216 default:
217 Host_Error("E5_COMPLEXANIMATION: Parse error - unknown type %i\n", type);
218 break;
219 }
220 }
221 if (bits & E5_TRAILEFFECTNUM)
222 s->traileffectnum = (unsigned short) MSG_ReadShort(&cl_message);
223
224
225 bytes = cl_message.readcount - startoffset;
227 {
228 Con_Printf("ReadFields e%i (%i bytes)", number, bytes);
229
230 if (bits & E5_ORIGIN)
231 Con_Printf(" E5_ORIGIN %f %f %f", s->origin[0], s->origin[1], s->origin[2]);
232 if (bits & E5_ANGLES)
233 Con_Printf(" E5_ANGLES %f %f %f", s->angles[0], s->angles[1], s->angles[2]);
234 if (bits & E5_MODEL)
235 Con_Printf(" E5_MODEL %i", s->modelindex);
236 if (bits & E5_FRAME)
237 Con_Printf(" E5_FRAME %i", s->frame);
238 if (bits & E5_SKIN)
239 Con_Printf(" E5_SKIN %i", s->skin);
240 if (bits & E5_EFFECTS)
241 Con_Printf(" E5_EFFECTS %i", s->effects);
242 if (bits & E5_FLAGS)
243 {
244 Con_Printf(" E5_FLAGS %i (", s->flags);
245 if (s->flags & RENDER_STEP)
246 Con_Print(" STEP");
247 if (s->flags & RENDER_GLOWTRAIL)
248 Con_Print(" GLOWTRAIL");
249 if (s->flags & RENDER_VIEWMODEL)
250 Con_Print(" VIEWMODEL");
252 Con_Print(" EXTERIORMODEL");
253 if (s->flags & RENDER_LOWPRECISION)
254 Con_Print(" LOWPRECISION");
255 if (s->flags & RENDER_COLORMAPPED)
256 Con_Print(" COLORMAPPED");
257 if (s->flags & RENDER_SHADOW)
258 Con_Print(" SHADOW");
259 if (s->flags & RENDER_LIGHT)
260 Con_Print(" LIGHT");
261 if (s->flags & RENDER_NOSELFSHADOW)
262 Con_Print(" NOSELFSHADOW");
263 Con_Print(")");
264 }
265 if (bits & E5_ALPHA)
266 Con_Printf(" E5_ALPHA %f", s->alpha / 255.0f);
267 if (bits & E5_SCALE)
268 Con_Printf(" E5_SCALE %f", s->scale / 16.0f);
269 if (bits & E5_COLORMAP)
270 Con_Printf(" E5_COLORMAP %i", s->colormap);
271 if (bits & E5_ATTACHMENT)
272 Con_Printf(" E5_ATTACHMENT e%i:%i", s->tagentity, s->tagindex);
273 if (bits & E5_LIGHT)
274 Con_Printf(" E5_LIGHT %i:%i:%i:%i %i:%i", s->light[0], s->light[1], s->light[2], s->light[3], s->lightstyle, s->lightpflags);
275 if (bits & E5_GLOW)
276 Con_Printf(" E5_GLOW %i:%i", s->glowsize * 4, s->glowcolor);
277 if (bits & E5_COLORMOD)
278 Con_Printf(" E5_COLORMOD %f:%f:%f", s->colormod[0] / 32.0f, s->colormod[1] / 32.0f, s->colormod[2] / 32.0f);
279 if (bits & E5_GLOWMOD)
280 Con_Printf(" E5_GLOWMOD %f:%f:%f", s->glowmod[0] / 32.0f, s->glowmod[1] / 32.0f, s->glowmod[2] / 32.0f);
281 if (bits & E5_COMPLEXANIMATION)
282 Con_Printf(" E5_COMPLEXANIMATION");
283 if (bits & E5_TRAILEFFECTNUM)
284 Con_Printf(" E5_TRAILEFFECTNUM %i", s->traileffectnum);
285 Con_Print("\n");
286 }
287}
model_t * CL_GetModelByIndex(int modelindex)
float MSG_ReadCoord32f(sizebuf_t *sb)
Definition com_msg.c:384
float MSG_ReadCoord13i(sizebuf_t *sb)
Definition com_msg.c:374
float MSG_ReadAngle8i(sizebuf_t *sb)
Definition com_msg.c:409
float MSG_ReadAngle16i(sizebuf_t *sb)
Definition com_msg.c:414
#define MSG_ReadByte(sb)
Definition common.h:188
void Con_Print(const char *msg)
Prints to all appropriate console targets, and adds timestamps.
Definition console.c:1504
float modelindex
string model
static int(ZEXPORT *qz_inflate)(z_stream *strm
GLenum type
Definition glquake.h:656
void Host_Error(const char *error,...)
Definition host.c:85
void Matrix4x4_FromBonePose7s(matrix4x4_t *m, float originscale, const short *pose7s)
Definition matrixlib.c:1599
const matrix4x4_t identitymatrix
Definition matrixlib.c:9
#define E5_EXTEND1
bits >= (1<<8)
Definition protocol.h:763
#define E5_EFFECTS16
short = s->effects
Definition protocol.h:793
#define E5_ATTACHMENT
short = s->tagentity byte = s->tagindex
Definition protocol.h:784
#define E5_FLAGS
byte = s->renderflags
Definition protocol.h:766
#define RENDER_EXTERIORMODEL
Definition protocol.h:359
#define E5_MODEL
E5_MODEL16=0: byte = s->modelindex E5_MODEL16=1: short = s->modelindex.
Definition protocol.h:751
#define E5_EFFECTS
E5_EFFECTS16=0 && E5_EFFECTS32=0: byte = s->effects E5_EFFECTS16=1 && E5_EFFECTS32=0: short = s->effe...
Definition protocol.h:761
#define E5_MODEL16
flag
Definition protocol.h:776
#define E5_ORIGIN
E5_ORIGIN32=0: short[3] = s->origin[0] * 8, s->origin[1] * 8, s->origin[2] * 8 E5_ORIGIN32=1: float[3...
Definition protocol.h:745
#define E5_COLORMOD
byte[3] = s->colormod[0], s->colormod[1], s->colormod[2]
Definition protocol.h:799
#define E5_COLORMAP
byte = s->colormap
Definition protocol.h:778
#define E5_EFFECTS32
int = s->effects
Definition protocol.h:795
#define E5_FRAME16
flag
Definition protocol.h:797
#define E5_ORIGIN32
flag
Definition protocol.h:772
#define RENDER_SHADOW
Definition protocol.h:365
#define RENDER_VIEWMODEL
Definition protocol.h:358
#define E5_ANGLES
E5_ANGLES16=0: byte[3] = s->angle[0] * 256 / 360, s->angle[1] * 256 / 360, s->angle[2] * 256 / 360 E5...
Definition protocol.h:748
#define RENDER_GLOWTRAIL
Definition protocol.h:357
#define RENDER_COLORMAPPED
Definition protocol.h:361
#define E5_ANGLES16
flag
Definition protocol.h:774
#define E5_SCALE
byte = bound(0, s->scale * 16, 255)
Definition protocol.h:770
#define RENDER_NOSELFSHADOW
Definition protocol.h:367
#define RENDER_LIGHT
Definition protocol.h:366
#define E5_FRAME
E5_FRAME16=0: byte = s->frame E5_FRAME16=1: short = s->frame.
Definition protocol.h:754
#define E5_ALPHA
byte = bound(0, s->alpha * 255, 255)
Definition protocol.h:768
#define E5_LIGHT
short[4] = s->light[0], s->light[1], s->light[2], s->light[3] byte = s->lightstyle byte = s->lightpfl...
Definition protocol.h:788
#define E5_TRAILEFFECTNUM
ushort traileffectnum
Definition protocol.h:813
#define E5_GLOWMOD
byte[3] = s->glowmod[0], s->glowmod[1], s->glowmod[2]
Definition protocol.h:804
#define RENDER_LOWPRECISION
Definition protocol.h:360
#define E5_SKIN
byte = s->skin
Definition protocol.h:756
#define E5_EXTEND2
bits >= (1<<16)
Definition protocol.h:780
#define E5_EXTEND3
bits >= (1<<24)
Definition protocol.h:801
#define RENDER_STEP
Definition protocol.h:356
#define E5_COMPLEXANIMATION
byte type=0 short frames[1] short times[1] byte type=1 short frames[2] short times[2] byte lerps[2] b...
Definition protocol.h:811
#define E5_FULLUPDATE
reset all entity fields (typically used if status changed)
Definition protocol.h:742
#define E5_GLOW
byte = s->glowsize byte = s->glowcolor
Definition protocol.h:791
#define MAX_EDICTS
max number of objects in game world at once (32768 protocol limit)
Definition qdefs.h:105
skeleton_t * engineskeletonobjects
Definition client.h:1136
double time
Definition client.h:868
mempool_t * levelmempool
Definition client.h:571
unsigned char glowmod[3]
Definition protocol.h:472
framegroupblend_t framegroupblend[4]
Definition protocol.h:474
unsigned char flags
Definition protocol.h:468
unsigned char skin
Definition protocol.h:463
unsigned char glowcolor
Definition protocol.h:467
unsigned char glowsize
Definition protocol.h:466
float origin[3]
Definition protocol.h:444
unsigned short tagentity
Definition protocol.h:451
unsigned char lightstyle
Definition protocol.h:460
unsigned char colormap
Definition protocol.h:462
unsigned short modelindex
Definition protocol.h:449
unsigned char colormod[3]
Definition protocol.h:471
unsigned short traileffectnum
Definition protocol.h:457
skeleton_t skeletonobject
Definition protocol.h:475
unsigned char alpha
Definition protocol.h:464
unsigned short light[4]
Definition protocol.h:458
unsigned char tagindex
Definition protocol.h:470
float angles[3]
Definition protocol.h:445
unsigned short frame
Definition protocol.h:450
unsigned char scale
Definition protocol.h:465
unsigned char lightpflags
Definition protocol.h:461
int readcount
Definition common.h:55
const struct model_s * model
Definition protocol.h:425
struct matrix4x4_s * relativetransforms
Definition protocol.h:426
#define Mem_Alloc(pool, size)
Definition zone.h:92
#define Mem_Realloc(pool, data, size)
Definition zone.h:94

References entity_state_t::active, ACTIVE_NETWORK, entity_state_t::alpha, entity_state_t::angles, cl, CL_GetModelByIndex(), cl_message, cls, entity_state_t::colormap, entity_state_t::colormod, Con_Print(), Con_Printf(), defaultstate, developer_networkentities, E5_ALPHA, E5_ANGLES, E5_ANGLES16, E5_ATTACHMENT, E5_COLORMAP, E5_COLORMOD, E5_COMPLEXANIMATION, E5_EFFECTS, E5_EFFECTS16, E5_EFFECTS32, E5_EXTEND1, E5_EXTEND2, E5_EXTEND3, E5_FLAGS, E5_FRAME, E5_FRAME16, E5_FULLUPDATE, E5_GLOW, E5_GLOWMOD, E5_LIGHT, E5_MODEL, E5_MODEL16, E5_ORIGIN, E5_ORIGIN32, E5_SCALE, E5_SKIN, E5_TRAILEFFECTNUM, entity_state_t::effects, client_state_t::engineskeletonobjects, entity_state_t::flags, entity_state_t::frame, framegroupblend_t::frame, entity_state_t::framegroupblend, entity_state_t::glowcolor, entity_state_t::glowmod, entity_state_t::glowsize, Host_Error(), identitymatrix, int(), cvar_t::integer, framegroupblend_t::lerp, client_static_t::levelmempool, entity_state_t::light, entity_state_t::lightpflags, entity_state_t::lightstyle, Matrix4x4_FromBonePose7s(), MAX_EDICTS, Mem_Alloc, Mem_Realloc, model, skeleton_t::model, entity_state_t::modelindex, modelindex, MSG_ReadAngle16i(), MSG_ReadAngle8i(), MSG_ReadByte, MSG_ReadCoord13i(), MSG_ReadCoord32f(), MSG_ReadLong, MSG_ReadShort, entity_state_t::origin, sizebuf_t::readcount, skeleton_t::relativetransforms, RENDER_COLORMAPPED, RENDER_EXTERIORMODEL, RENDER_GLOWTRAIL, RENDER_LIGHT, RENDER_LOWPRECISION, RENDER_NOSELFSHADOW, RENDER_SHADOW, RENDER_STEP, RENDER_VIEWMODEL, entity_state_t::scale, entity_state_t::skeletonobject, entity_state_t::skin, framegroupblend_t::start, entity_state_t::tagentity, entity_state_t::tagindex, client_state_t::time, entity_state_t::traileffectnum, and type.

Referenced by EntityFrame5_CL_ReadFrame().