MCPcopy Create free account
hub / github.com/demoth/jake2 / processFrameMessage

Method processFrameMessage

client/src/main/java/jake2/client/CL_ents.java:297–345  ·  view source on GitHub ↗
(FrameHeaderMessage frameMsg)

Source from the content-addressed store, hash-verified

295 }
296
297 public static frame_t processFrameMessage(FrameHeaderMessage frameMsg) {
298 //memset( cl.frame, 0, sizeof(cl.frame));
299 frame_t currentFrame = ClientGlobals.cl.frame;
300 currentFrame.reset();
301
302 currentFrame.serverframe = frameMsg.frameNumber;
303 currentFrame.deltaframe = frameMsg.lastFrame;
304 currentFrame.servertime = currentFrame.serverframe * 100;
305
306 ClientGlobals.cl.surpressCount = frameMsg.suppressCount;
307
308 if (ClientGlobals.cl_shownet.value == 3)
309 Com.Printf(" frame:" + currentFrame.serverframe + " delta:" + currentFrame.deltaframe + "\n");
310
311 // If the frame is delta compressed from data that we
312 // no longer have available, we must suck up the rest of
313 // the frame, but not use it, then ask for a non-compressed
314 // message
315 frame_t old;
316 if (currentFrame.deltaframe <= 0) {
317 currentFrame.valid = true; // uncompressed frame
318 old = null;
319 ClientGlobals.cls.demowaiting = false; // we can start recording now
320 } else {
321 old = ClientGlobals.cl.frames[currentFrame.deltaframe & Defines.UPDATE_MASK];
322 if (!old.valid) { // should never happen
323 Com.Printf("Delta from invalid frame (not supposed to happen!).\n");
324 }
325 if (old.serverframe != currentFrame.deltaframe) {
326 // The frame that the server did the delta from is too old, so we can't reconstruct it properly.
327 Com.Printf("Delta frame too old.\n");
328 } else if (ClientGlobals.cl.parse_entities - old.parse_entities > Defines.MAX_PARSE_ENTITIES - 128) {
329 Com.Printf("Delta parse_entities too old.\n");
330 } else
331 currentFrame.valid = true; // valid delta parse
332 }
333
334 // clamp time
335 if (ClientGlobals.cl.time > currentFrame.servertime)
336 ClientGlobals.cl.time = currentFrame.servertime;
337 else if (ClientGlobals.cl.time < currentFrame.servertime - 100)
338 ClientGlobals.cl.time = currentFrame.servertime - 100;
339
340 // read areabits
341 //ClientGlobals.cl.frame.areabits = frameMsg.areaBits;
342 // fixme: ref to ClientGlobals.cl.frame.areabits is scattered across code, can not change it
343 System.arraycopy(frameMsg.areaBits, 0, currentFrame.areabits, 0, frameMsg.areaBits.length);
344 return old;
345 }
346
347
348 /*

Callers 1

ParseServerMessageMethod · 0.95

Calls 2

resetMethod · 0.95
PrintfMethod · 0.95

Tested by

no test coverage detected