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

Function TriggerRocketFire

TombEngine/Game/effects/effects.cpp:1410–1460  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1408}
1409
1410void TriggerRocketFire(int x, int y, int z)
1411{
1412 auto* sptr = GetFreeParticle();
1413
1414 sptr->on = true;
1415
1416 sptr->sR = sptr->sG = (GetRandomControl() & 0x1F) + 48;
1417 sptr->sB = (GetRandomControl() & 0x3F) - 64;
1418 sptr->dR = (GetRandomControl() & 0x3F) - 64;
1419 sptr->dG = (GetRandomControl() & 0x3F) - 128;
1420 sptr->dB = 32;
1421
1422 sptr->colFadeSpeed = 4 + (GetRandomControl() & 3);
1423 sptr->fadeToBlack = 12;
1424 sptr->sLife = sptr->life = (GetRandomControl() & 3) + 20;
1425 sptr->blendMode = BlendMode::Additive;
1426 sptr->extras = 0;
1427 sptr->dynamic = -1;
1428
1429 sptr->x = x + ((GetRandomControl() & 15) - 8);
1430 sptr->y = y + ((GetRandomControl() & 15) - 8);
1431 sptr->z = z + ((GetRandomControl() & 15) - 8);
1432 sptr->xVel = ((GetRandomControl() & 255) - 128);
1433 sptr->yVel = -(GetRandomControl() & 3) - 4;
1434 sptr->zVel = ((GetRandomControl() & 255) - 128);
1435 sptr->friction = 4;
1436
1437 if (GetRandomControl() & 1)
1438 {
1439 sptr->flags = SP_SCALE | SP_DEF | SP_ROTATE | SP_EXPDEF;
1440 sptr->rotAng = GetRandomControl() & 4095;
1441
1442 if (GetRandomControl() & 1)
1443 sptr->rotAdd = -(GetRandomControl() & 15) - 16;
1444 else
1445 sptr->rotAdd = (GetRandomControl() & 15) + 16;
1446 }
1447 else
1448 sptr->flags = SP_SCALE | SP_DEF | SP_EXPDEF;
1449
1450 // TODO: right sprite
1451 sptr->SpriteSeqID = ID_DEFAULT_SPRITES;
1452 sptr->SpriteID = 0;
1453 sptr->scalar = 1;
1454 sptr->gravity = -(GetRandomControl() & 3) - 4;
1455 sptr->maxYvel = -(GetRandomControl() & 3) - 4;
1456
1457 int size = (GetRandomControl() & 7) + 128;
1458 sptr->size = sptr->sSize = size >> 2;
1459 sptr->dSize = size;
1460}
1461
1462void TriggerFlashSmoke(int x, int y, int z, short roomNumber)
1463{

Callers 2

GrenadeControlFunction · 0.85
RocketControlFunction · 0.85

Calls 2

GetFreeParticleFunction · 0.85
GetRandomControlFunction · 0.85

Tested by

no test coverage detected