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

Method P_WorldEffects

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

General effect handling for a player. @param gameExports

(GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

578 * @param gameExports
579 */
580 private void P_WorldEffects(GameExportsImpl gameExports) {
581 boolean breather;
582 boolean envirosuit;
583 int waterlevel, old_waterlevel;
584
585 if (current_player.movetype == GameDefines.MOVETYPE_NOCLIP) {
586 current_player.air_finished = gameExports.level.time + 12; // don't
587 // need air
588 return;
589 }
590
591 waterlevel = current_player.waterlevel;
592 old_waterlevel = current_client.old_waterlevel;
593 current_client.old_waterlevel = waterlevel;
594
595 breather = current_client.breather_framenum > gameExports.level.framenum;
596 envirosuit = current_client.enviro_framenum > gameExports.level.framenum;
597
598 //
599 // if just entered a water volume, play a sound
600 //
601 if (old_waterlevel == 0 && waterlevel != 0) {
602 PlayerWeapon.PlayerNoise(current_player, current_player.s.origin,
603 GameDefines.PNOISE_SELF, gameExports);
604 if ((current_player.watertype & Defines.CONTENTS_LAVA) != 0)
605 gameExports.gameImports.sound(current_player, Defines.CHAN_BODY,
606 gameExports.gameImports.soundindex("player/lava_in.wav"), 1,
607 Defines.ATTN_NORM, 0);
608 else if ((current_player.watertype & Defines.CONTENTS_SLIME) != 0)
609 gameExports.gameImports.sound(current_player, Defines.CHAN_BODY,
610 gameExports.gameImports.soundindex("player/watr_in.wav"), 1,
611 Defines.ATTN_NORM, 0);
612 else if ((current_player.watertype & Defines.CONTENTS_WATER) != 0)
613 gameExports.gameImports.sound(current_player, Defines.CHAN_BODY,
614 gameExports.gameImports.soundindex("player/watr_in.wav"), 1,
615 Defines.ATTN_NORM, 0);
616 current_player.flags |= GameDefines.FL_INWATER;
617
618 // clear damage_debounce, so the pain sound will play immediately
619 current_player.damage_debounce_time = gameExports.level.time - 1;
620 }
621
622 //
623 // if just completely exited a water volume, play a sound
624 //
625 if (old_waterlevel != 0 && waterlevel == 0) {
626 PlayerWeapon.PlayerNoise(current_player, current_player.s.origin,
627 GameDefines.PNOISE_SELF, gameExports);
628 gameExports.gameImports
629 .sound(current_player, Defines.CHAN_BODY, gameExports.gameImports
630 .soundindex("player/watr_out.wav"), 1,
631 Defines.ATTN_NORM, 0);
632 current_player.flags &= ~GameDefines.FL_INWATER;
633 }
634
635 //
636 // check for head just going under water
637 //

Callers 1

ClientEndServerFrameMethod · 0.95

Calls 6

PlayerNoiseMethod · 0.95
randMethod · 0.95
T_DamageMethod · 0.95
soundMethod · 0.65
soundindexMethod · 0.65
getClientMethod · 0.45

Tested by

no test coverage detected