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

Function TriggerExplosionSmokeEnd

TombEngine/Game/effects/effects.cpp:965–1039  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

963}
964
965void TriggerExplosionSmokeEnd(int x, int y, int z, int uw)
966{
967 auto* spark = GetFreeParticle();
968
969 spark->on = true;
970
971 if (uw)
972 {
973 spark->sR = 0;
974 spark->sG = 0;
975 spark->sB = 0;
976 spark->dR = 192;
977 spark->dG = 192;
978 spark->dB = 208;
979 }
980 else
981 {
982 spark->dR = 64;
983 spark->sR = 144;
984 spark->sG = 144;
985 spark->sB = 144;
986 spark->dG = 64;
987 spark->dB = 64;
988 }
989
990 spark->colFadeSpeed = 8;
991 spark->fadeToBlack = 64;
992 spark->life = spark->sLife= (GetRandomControl() & 0x1F) + 96;
993
994 if (uw)
995 spark->blendMode = BlendMode::Additive;
996 else
997 spark->blendMode = BlendMode::Subtractive;
998
999 spark->x = (GetRandomControl() & 0x1F) + x - 16;
1000 spark->y = (GetRandomControl() & 0x1F) + y - 16;
1001 spark->z = (GetRandomControl() & 0x1F) + z - 16;
1002 spark->xVel = ((GetRandomControl() & 0xFFF) - 2048) >> 2;
1003 spark->yVel = GetRandomControl() - 128;
1004 spark->zVel = ((GetRandomControl() & 0xFFF) - 2048) >> 2;
1005
1006 if (uw)
1007 {
1008 spark->friction = 20;
1009 spark->yVel >>= 4;
1010 spark->y += 32;
1011 }
1012 else
1013 spark->friction = 6;
1014
1015 spark->flags = SP_SCALE | SP_DEF | SP_ROTATE | SP_EXPDEF;
1016 spark->rotAng = GetRandomControl() & 0xFFF;
1017
1018 if (GetRandomControl() & 1)
1019 spark->rotAdd = -16 - (GetRandomControl() & 0xF);
1020 else
1021 spark->rotAdd = (GetRandomControl() & 0xF) + 16;
1022

Callers 1

TriggerExplosionSparksFunction · 0.85

Calls 2

GetFreeParticleFunction · 0.85
GetRandomControlFunction · 0.85

Tested by

no test coverage detected