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

Method SV_CalcGunOffset

game/src/main/java/jake2/game/PlayerView.java:362–403  ·  view source on GitHub ↗

Calculates where to draw the gun.

(SubgameEntity ent)

Source from the content-addressed store, hash-verified

360 * Calculates where to draw the gun.
361 */
362 private void SV_CalcGunOffset(SubgameEntity ent) {
363 int i;
364 float delta;
365
366 // gun angles from bobbing
367 gclient_t client = ent.getClient();
368 client.getPlayerState().gunangles[Defines.ROLL] = xyspeed * bobfracsin * 0.005f;
369 client.getPlayerState().gunangles[Defines.YAW] = xyspeed * bobfracsin * 0.01f;
370 if ((bobcycle & 1) != 0) {
371 client.getPlayerState().gunangles[Defines.ROLL] = -client.getPlayerState().gunangles[Defines.ROLL];
372 client.getPlayerState().gunangles[Defines.YAW] = -client.getPlayerState().gunangles[Defines.YAW];
373 }
374
375 client.getPlayerState().gunangles[Defines.PITCH] = xyspeed * bobfracsin * 0.005f;
376
377 // gun angles from delta movement
378 for (i = 0; i < 3; i++) {
379 delta = client.oldviewangles[i] - client.getPlayerState().viewangles[i];
380 if (delta > 180)
381 delta -= 360;
382 if (delta < -180)
383 delta += 360;
384 if (delta > 45)
385 delta = 45;
386 if (delta < -45)
387 delta = -45;
388 if (i == Defines.YAW)
389 client.getPlayerState().gunangles[Defines.ROLL] += 0.1 * delta;
390 client.getPlayerState().gunangles[i] += 0.2 * delta;
391 }
392
393 // gun height
394 Math3D.VectorClear(client.getPlayerState().gunoffset);
395 // ent.ps.gunorigin[2] += bob;
396
397 // gun_x / gun_y / gun_z are development tools
398 for (i = 0; i < 3; i++) {
399 client.getPlayerState().gunoffset[i] += forward[i] * (gun_y.value);
400 client.getPlayerState().gunoffset[i] += right[i] * gun_x.value;
401 client.getPlayerState().gunoffset[i] += up[i] * (-gun_z.value);
402 }
403 }
404
405 /**
406 * Adds a blending effect to the clients view.

Callers 1

ClientEndServerFrameMethod · 0.95

Calls 3

getPlayerStateMethod · 0.95
VectorClearMethod · 0.95
getClientMethod · 0.45

Tested by

no test coverage detected