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

Function TriggerBlood

TombEngine/Game/effects/tomb4fx.cpp:723–759  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

721}
722
723void TriggerBlood(int x, int y, int z, int unk, int num)
724{
725 for (int i = 0; i < num; i++)
726 {
727 BLOOD_STRUCT* blood = &Blood[GetFreeBlood()];
728 blood->on = 1;
729 blood->sShade = 0;
730 blood->colFadeSpeed = 4;
731 blood->fadeToBlack = 8;
732 blood->dShade = (GetRandomControl() & 0x3F) + 48;
733 blood->life = blood->sLife = (GetRandomControl() & 7) + 24;
734 blood->x = (GetRandomControl() & 0x1F) + x - 16;
735 blood->y = (GetRandomControl() & 0x1F) + y - 16;
736 blood->z = (GetRandomControl() & 0x1F) + z - 16;
737 int a = (unk == -1 ? GetRandomControl() : (GetRandomControl() & 0x1F) + unk - 16) & 0xFFF;
738 int b = GetRandomControl() & 0xF;
739 blood->zVel = b * phd_cos(a << 4) * 32;
740 blood->xVel = -b * phd_sin(a << 4) * 32;
741 blood->friction = 4;
742 blood->yVel = -((GetRandomControl() & 0xFF) + 128);
743 blood->rotAng = GetRandomControl() & 0xFFF;
744 blood->rotAdd = (GetRandomControl() & 0x3F) + 64;
745 if (GetRandomControl() & 1)
746 blood->rotAdd = -blood->rotAdd;
747 blood->gravity = (GetRandomControl() & 0x1F) + 31;
748 int size = (GetRandomControl() & 7) + 8;
749 blood->sSize = blood->size = size;
750 blood->dSize = size >> 2;
751
752 blood->PrevPosition.x = blood->x;
753 blood->PrevPosition.y = blood->y;
754 blood->PrevPosition.z = blood->z;
755 blood->PrevRotAng = blood->rotAng;
756 blood->PrevSize = blood->size;
757 blood->PrevShade = blood->shade;
758 }
759}
760
761void UpdateBlood()
762{

Callers 8

CollideWreckingBallFunction · 0.85
UpdateSpidersFunction · 0.85
UpdateBatsFunction · 0.85
ControlTeethSpikesFunction · 0.85
UpdateLocustsFunction · 0.85
ControlMissileFunction · 0.85
DoBloodSplatFunction · 0.85
EmitBloodFunction · 0.85

Calls 4

GetFreeBloodFunction · 0.85
GetRandomControlFunction · 0.85
phd_cosFunction · 0.85
phd_sinFunction · 0.85

Tested by

no test coverage detected