| 1408 | } |
| 1409 | |
| 1410 | void 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 | |
| 1462 | void TriggerFlashSmoke(int x, int y, int z, short roomNumber) |
| 1463 | { |
no test coverage detected