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

Function TriggerFireBall

TombEngine/Objects/TR3/Entity/tr3_tony.cpp:252–334  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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;

Callers 2

ControlTonyFireBallFunction · 0.85
TonyControlFunction · 0.85

Calls 6

TonyFlameClass · 0.85
GetJointPositionFunction · 0.85
GenerateIntFunction · 0.85
GenerateAngleFunction · 0.85
GetRandomControlFunction · 0.85
TriggerTonyEffectFunction · 0.85

Tested by

no test coverage detected