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

Function ExplodeVehicle

TombEngine/Game/effects/tomb4fx.cpp:1202–1229  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1200}
1201
1202void ExplodeVehicle(ItemInfo* laraItem, ItemInfo* vehicle)
1203{
1204 if (g_Level.Rooms[vehicle->RoomNumber].flags & ENV_FLAG_WATER)
1205 {
1206 TriggerUnderwaterExplosion(vehicle, false);
1207 }
1208 else
1209 {
1210 TriggerExplosionSparks(vehicle->Pose.Position.x, vehicle->Pose.Position.y, vehicle->Pose.Position.z, 3, -2, 0, vehicle->RoomNumber);
1211 for (int i = 0; i < 3; i++)
1212 {
1213 TriggerExplosionSparks(vehicle->Pose.Position.x, vehicle->Pose.Position.y, vehicle->Pose.Position.z, 3, -1, 0, vehicle->RoomNumber);
1214 }
1215 }
1216
1217 auto* lara = GetLaraInfo(laraItem);
1218
1219 ExplodingDeath(lara->Context.Vehicle, BODY_DO_EXPLOSION | BODY_STONE_SOUND);
1220 KillItem(lara->Context.Vehicle);
1221 vehicle->Status = ITEM_DEACTIVATED;
1222 SoundEffect(SFX_TR4_EXPLOSION1, &laraItem->Pose);
1223 SoundEffect(SFX_TR4_EXPLOSION2, &laraItem->Pose);
1224
1225 SetLaraVehicle(laraItem, nullptr);
1226 SetAnimation(laraItem, LA_FALL_START);
1227 laraItem->Animation.IsAirborne = true;
1228 DoDamage(laraItem, INT_MAX);
1229}
1230
1231void ExplodingDeath(short itemNumber, short flags)
1232{

Callers 6

TestSkidooDismountFunction · 0.85
SkidooControlFunction · 0.85
DoVehicleWaterMovementFunction · 0.85
QuadBikeControlFunction · 0.85
MotorbikeControlFunction · 0.85
JeepControlFunction · 0.85

Calls 8

TriggerExplosionSparksFunction · 0.85
ExplodingDeathFunction · 0.85
KillItemFunction · 0.85
SoundEffectFunction · 0.85
SetLaraVehicleFunction · 0.85
SetAnimationFunction · 0.85
DoDamageFunction · 0.85

Tested by 1

TestSkidooDismountFunction · 0.68