| 1039 | } |
| 1040 | |
| 1041 | void TriggerExplosionSmoke(int x, int y, int z, int uw) |
| 1042 | { |
| 1043 | int dx = LaraItem->Pose.Position.x - x; |
| 1044 | int dz = LaraItem->Pose.Position.z - z; |
| 1045 | |
| 1046 | if (dx >= -BLOCK(16) && dx <= BLOCK(16) && |
| 1047 | dz >= -BLOCK(16) && dz <= BLOCK(16)) |
| 1048 | { |
| 1049 | auto* spark = GetFreeParticle(); |
| 1050 | |
| 1051 | spark->sR = 144; |
| 1052 | spark->sG = 144; |
| 1053 | spark->sB = 144; |
| 1054 | spark->on = 1; |
| 1055 | spark->dR = 64; |
| 1056 | spark->dG = 64; |
| 1057 | spark->dB = 64; |
| 1058 | spark->colFadeSpeed = 2; |
| 1059 | spark->fadeToBlack = 8; |
| 1060 | spark->blendMode = BlendMode::Subtractive; |
| 1061 | spark->life = spark->sLife = (GetRandomControl() & 3) + 10; |
| 1062 | spark->x = (GetRandomControl() & 0x1FF) + x - 256; |
| 1063 | spark->y = (GetRandomControl() & 0x1FF) + y - 256; |
| 1064 | spark->z = (GetRandomControl() & 0x1FF) + z - 256; |
| 1065 | spark->xVel = ((GetRandomControl() & 0xFFF) - 2048) >> 2; |
| 1066 | spark->yVel = GetRandomControl() - 128; |
| 1067 | spark->zVel = ((GetRandomControl() & 0xFFF) - 2048) >> 2; |
| 1068 | |
| 1069 | if (uw) |
| 1070 | spark->friction = 2; |
| 1071 | else |
| 1072 | spark->friction = 6; |
| 1073 | |
| 1074 | spark->flags = SP_SCALE | SP_DEF | SP_ROTATE | SP_EXPDEF; |
| 1075 | spark->rotAng = GetRandomControl() & 0xFFF; |
| 1076 | spark->scalar = 1; |
| 1077 | spark->rotAdd = (GetRandomControl() & 0xF) + 16; |
| 1078 | spark->gravity = -3 - (GetRandomControl() & 3); |
| 1079 | spark->maxYvel = -4 - (GetRandomControl() & 3); |
| 1080 | spark->dSize = (GetRandomControl() & 0x1F) + 128; |
| 1081 | spark->sSize = spark->dSize / 4; |
| 1082 | spark->size = spark->dSize / 4; |
| 1083 | } |
| 1084 | } |
| 1085 | |
| 1086 | void TriggerSuperJetFlame(ItemInfo* item, int yvel, int deadly) |
| 1087 | { |
no test coverage detected