MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / BodyPartExplode

Function BodyPartExplode

TombEngine/Objects/TR5/Object/tr5_bodypart.cpp:28–41  ·  view source on GitHub ↗

TODO: Remove LaraItem global - TokyoSU: 12/6/2023

Source from the content-addressed store, hash-verified

26
27// TODO: Remove LaraItem global - TokyoSU: 12/6/2023
28static void BodyPartExplode(FX_INFO& fx)
29{
30 TriggerExplosionSparks(fx.pos.Position.x, fx.pos.Position.y, fx.pos.Position.z, 3, -2, 0, fx.roomNumber);
31 TriggerExplosionSparks(fx.pos.Position.x, fx.pos.Position.y, fx.pos.Position.z, 3, -1, 0, fx.roomNumber);
32
33 // Lift explosion effect a little to make shockwave visible on flat floors.
34 auto pose = fx.pos;
35 pose.Position.y -= CLICK(0.5f);
36
37 TriggerShockwave(&pose, 48, 304, (GetRandomControl() & 0x1F) + 112, 128, 32, 32, 32, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
38
39 if (ItemNearLara(fx.pos.Position, BODY_PART_EXPLODE_DAMAGE_RANGE))
40 DoDamage(LaraItem, BODY_PART_EXPLODE_DAMAGE);
41}
42
43void ControlBodyPart(short fxNumber)
44{

Callers 1

ControlBodyPartFunction · 0.85

Calls 5

TriggerExplosionSparksFunction · 0.85
TriggerShockwaveFunction · 0.85
GetRandomControlFunction · 0.85
ItemNearLaraFunction · 0.85
DoDamageFunction · 0.85

Tested by

no test coverage detected