| 1200 | } |
| 1201 | |
| 1202 | void 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 | |
| 1231 | void ExplodingDeath(short itemNumber, short flags) |
| 1232 | { |