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

Method SV_CalcBlend

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

Calculates the blending color according to the players environment.

(SubgameEntity ent, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

424 * Calculates the blending color according to the players environment.
425 */
426 private static void SV_CalcBlend(SubgameEntity ent, GameExportsImpl gameExports) {
427 int contents;
428 float[] vieworg = { 0, 0, 0 };
429 int remaining;
430
431 gclient_t client = ent.getClient();
432 client.getPlayerState().blend[0] = client.getPlayerState().blend[1] = client.getPlayerState().blend[2] = client.getPlayerState().blend[3] = 0;
433
434 // add for contents
435 Math3D.VectorAdd(ent.s.origin, client.getPlayerState().viewoffset, vieworg);
436 contents = gameExports.gameImports.getPointContents(vieworg);
437 if ((contents & (Defines.CONTENTS_LAVA | Defines.CONTENTS_SLIME | Defines.CONTENTS_WATER)) != 0)
438 client.getPlayerState().rdflags |= Defines.RDF_UNDERWATER;
439 else
440 client.getPlayerState().rdflags &= ~Defines.RDF_UNDERWATER;
441
442 if ((contents & (Defines.CONTENTS_SOLID | Defines.CONTENTS_LAVA)) != 0)
443 SV_AddBlend(1.0f, 0.3f, 0.0f, 0.6f, client.getPlayerState().blend);
444 else if ((contents & Defines.CONTENTS_SLIME) != 0)
445 SV_AddBlend(0.0f, 0.1f, 0.05f, 0.6f, client.getPlayerState().blend);
446 else if ((contents & Defines.CONTENTS_WATER) != 0)
447 SV_AddBlend(0.5f, 0.3f, 0.2f, 0.4f, client.getPlayerState().blend);
448
449 // add for powerups
450 if (client.quad_framenum > gameExports.level.framenum) {
451 remaining = (int) (client.quad_framenum - gameExports.level.framenum);
452 if (remaining == 30) // beginning to fade
453 gameExports.gameImports.sound(ent, Defines.CHAN_ITEM,
454 gameExports.gameImports.soundindex("items/damage2.wav"), 1, Defines.ATTN_NORM, 0);
455 if (remaining > 30 || (remaining & 4) != 0)
456 SV_AddBlend(0, 0, 1, 0.08f, client.getPlayerState().blend);
457 } else if (client.invincible_framenum > gameExports.level.framenum) {
458 remaining = (int) client.invincible_framenum - gameExports.level.framenum;
459 if (remaining == 30) // beginning to fade
460 gameExports.gameImports.sound(ent, Defines.CHAN_ITEM,
461 gameExports.gameImports.soundindex("items/protect2.wav"), 1, Defines.ATTN_NORM, 0);
462 if (remaining > 30 || (remaining & 4) != 0)
463 SV_AddBlend(1, 1, 0, 0.08f, client.getPlayerState().blend);
464 } else if (client.enviro_framenum > gameExports.level.framenum) {
465 remaining = (int) client.enviro_framenum
466 - gameExports.level.framenum;
467 if (remaining == 30) // beginning to fade
468 gameExports.gameImports.sound(ent, Defines.CHAN_ITEM,
469 gameExports.gameImports.soundindex("items/airout.wav"), 1, Defines.ATTN_NORM, 0);
470 if (remaining > 30 || (remaining & 4) != 0)
471 SV_AddBlend(0, 1, 0, 0.08f, client.getPlayerState().blend);
472 } else if (client.breather_framenum > gameExports.level.framenum) {
473 remaining = (int) client.breather_framenum
474 - gameExports.level.framenum;
475 if (remaining == 30) // beginning to fade
476 gameExports.gameImports.sound(ent, Defines.CHAN_ITEM, gameExports.gameImports
477 .soundindex("items/airout.wav"), 1, Defines.ATTN_NORM,
478 0);
479 if (remaining > 30 || (remaining & 4) != 0)
480 SV_AddBlend(0.4f, 1, 0.4f, 0.04f, client.getPlayerState().blend);
481 }
482
483 // add for damage

Callers 1

ClientEndServerFrameMethod · 0.95

Calls 7

getPlayerStateMethod · 0.95
VectorAddMethod · 0.95
SV_AddBlendMethod · 0.95
getPointContentsMethod · 0.65
soundMethod · 0.65
soundindexMethod · 0.65
getClientMethod · 0.45

Tested by

no test coverage detected