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

Function SpawnRipple

TombEngine/Game/effects/Ripple.cpp:19–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17 std::vector<Ripple> Ripples = {};
18
19 void SpawnRipple(const Vector3& pos, int roomNumber, float size, int flags, const Vector3& normal)
20 {
21 constexpr auto LIFE_WATER_SURFACE_MAX = 1.0f;
22 constexpr auto LIFE_WATER_SURFACE_MIN = LIFE_WATER_SURFACE_MAX / 2;
23 constexpr auto LIFE_GROUND_MAX = 0.4f;
24 constexpr auto LIFE_GROUND_MIN = LIFE_GROUND_MAX / 2;
25 constexpr auto FADE_FAST_COEFF = 1 / 3.0f;
26 constexpr auto FADE_SLOW_COEFF = 0.5f;
27 constexpr auto COLOR_WHITE = Vector4(1.0f, 1.0f, 1.0f, RIPPLE_OPACITY_MAX);
28
29 auto& ripple = GetNewEffect(Ripples, RIPPLE_COUNT_MAX);
30
31 float lifeInSec = (flags & (int)RippleFlags::OnGround) ?
32 Random::GenerateFloat(LIFE_GROUND_MIN, LIFE_GROUND_MAX) :
33 Random::GenerateFloat(LIFE_WATER_SURFACE_MIN, LIFE_WATER_SURFACE_MAX);
34 float fadeDurationInSec = lifeInSec * ((ripple.Flags & ((int)RippleFlags::SlowFade)) ? FADE_SLOW_COEFF : FADE_FAST_COEFF);
35
36 ripple.SpriteIndex = Objects[ID_DEFAULT_SPRITES].meshIndex + SPR_RIPPLES;
37 ripple.Position = pos;
38 ripple.RoomNumber = roomNumber;
39 ripple.Normal = normal;
40 ripple.Color = COLOR_WHITE;
41 ripple.Life =
42 ripple.LifeMax = round(lifeInSec * FPS);
43 ripple.Size = size;
44 ripple.FadeDuration = round(fadeDurationInSec * FPS);
45 ripple.Flags = flags;
46 }
47
48 void UpdateRipples()
49 {

Callers 11

ScubaControlFunction · 0.85
BigRatControlFunction · 0.85
UpdateRatsFunction · 0.85
ElectricityWiresControlFunction · 0.85
TestProjectileNewRoomFunction · 0.85
UpdateWeatherMethod · 0.85
UpdateDripsFunction · 0.85
UpdateGunShellsFunction · 0.85
UpdateBubblesFunction · 0.85

Calls 2

GenerateFloatFunction · 0.85
Vector4Function · 0.50

Tested by 1

TestProjectileNewRoomFunction · 0.68