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

Method ThrowClientHead

game/src/main/java/jake2/game/GameMisc.java:589–629  ·  view source on GitHub ↗
(SubgameEntity self, int damage, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

587 }
588
589 static void ThrowClientHead(SubgameEntity self, int damage, GameExportsImpl gameExports) {
590 float vd[] = { 0, 0, 0 };
591 String gibname;
592
593 if ((Lib.rand() & 1) != 0) {
594 gibname = "models/objects/gibs/head2/tris.md2";
595 self.s.skinnum = 1; // second skin is player
596 } else {
597 gibname = "models/objects/gibs/skull/tris.md2";
598 self.s.skinnum = 0;
599 }
600
601 self.s.origin[2] += 32;
602 self.s.frame = 0;
603 gameExports.gameImports.setmodel(self, gibname);
604 Math3D.VectorSet(self.mins, -16, -16, 0);
605 Math3D.VectorSet(self.maxs, 16, 16, 16);
606
607 self.takedamage = Defines.DAMAGE_NO;
608 self.solid = Defines.SOLID_NOT;
609 self.s.effects = Defines.EF_GIB;
610 self.s.sound = 0;
611 self.flags |= GameDefines.FL_NO_KNOCKBACK;
612
613 self.movetype = GameDefines.MOVETYPE_BOUNCE;
614 VelocityForDamage(damage, vd);
615 Math3D.VectorAdd(self.velocity, vd, self.velocity);
616
617 gclient_t client = self.getClient();
618 if (client != null)
619 // bodies in the queue don't have a client anymore
620 {
621 client.anim_priority = Defines.ANIM_DEATH;
622 client.anim_end = self.s.frame;
623 } else {
624 self.think.action = null;
625 self.think.nextTime = 0;
626 }
627
628 gameExports.gameImports.linkentity(self);
629 }
630
631 public static void ThrowDebris(SubgameEntity self, String modelname, float speed,
632 float[] origin, GameExportsImpl gameExports) {

Callers 1

dieMethod · 0.95

Calls 7

randMethod · 0.95
VectorSetMethod · 0.95
VelocityForDamageMethod · 0.95
VectorAddMethod · 0.95
setmodelMethod · 0.65
linkentityMethod · 0.65
getClientMethod · 0.45

Tested by

no test coverage detected