| 250 | } |
| 251 | |
| 252 | static void TriggerFireBall(ItemInfo* item, TonyFlameType type, Vector3i* laraPos, short roomNumber, short angle, int zdVelocity) |
| 253 | { |
| 254 | auto flame = TonyFlame(); |
| 255 | |
| 256 | flame.Type = type; |
| 257 | switch (flame.Type) |
| 258 | { |
| 259 | case TonyFlameType::CeilingLeftHand: |
| 260 | flame.on = true; |
| 261 | flame.Position = GetJointPosition(item, 10); |
| 262 | flame.VerticalVelocity = -16; |
| 263 | flame.speed = 0; |
| 264 | flame.yRot = item->Pose.Orientation.y; |
| 265 | flame.RoomNumber = roomNumber; |
| 266 | break; |
| 267 | |
| 268 | case TonyFlameType::CeilingRightHand: |
| 269 | flame.on = true; |
| 270 | flame.Position = GetJointPosition(item, 13); |
| 271 | flame.VerticalVelocity = -16; |
| 272 | flame.speed = 0; |
| 273 | flame.yRot = item->Pose.Orientation.y; |
| 274 | flame.RoomNumber = roomNumber; |
| 275 | break; |
| 276 | |
| 277 | case TonyFlameType::InFront: |
| 278 | flame.on = true; |
| 279 | flame.Position = GetJointPosition(item, 13); |
| 280 | flame.VerticalVelocity = 24; |
| 281 | flame.speed = 160; |
| 282 | flame.yRot = item->Pose.Orientation.y; |
| 283 | flame.RoomNumber = roomNumber; |
| 284 | break; |
| 285 | |
| 286 | case TonyFlameType::ShowerFromCeiling: |
| 287 | flame.on = true; |
| 288 | flame.Position.x = laraPos->x; |
| 289 | flame.Position.y = laraPos->y + 64; |
| 290 | flame.Position.z = laraPos->z; |
| 291 | flame.VerticalVelocity = Random::GenerateInt(4, 8); |
| 292 | flame.speed = 0; |
| 293 | flame.yRot = angle; |
| 294 | flame.RoomNumber = roomNumber; |
| 295 | break; |
| 296 | |
| 297 | case TonyFlameType::CeilingDebris: |
| 298 | flame.on = true; |
| 299 | flame.Position.x = laraPos->x; |
| 300 | flame.Position.y = laraPos->y; |
| 301 | flame.Position.z = laraPos->z; |
| 302 | flame.VerticalVelocity = Random::GenerateInt(-2, 2); |
| 303 | flame.speed = zdVelocity + Random::GenerateInt(0, 4); |
| 304 | flame.yRot = Random::GenerateAngle(); |
| 305 | flame.RoomNumber = roomNumber; |
| 306 | break; |
| 307 | |
| 308 | case TonyFlameType::InFrontDebris: |
| 309 | flame.on = true; |
no test coverage detected