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

Function TriggerExplosionSmoke

TombEngine/Game/effects/effects.cpp:1041–1084  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1039}
1040
1041void 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
1086void TriggerSuperJetFlame(ItemInfo* item, int yvel, int deadly)
1087{

Callers 1

TriggerExplosionSparksFunction · 0.85

Calls 2

GetFreeParticleFunction · 0.85
GetRandomControlFunction · 0.85

Tested by

no test coverage detected