26 void update(
float dt,
Registry& registry, glm::vec3 camPos, glm::vec3 camForward);
32 void driveGroundFire(entt::entity fieldEntity, glm::vec3 pos,
float radius,
float remaining,
float duration);
85 void spawnRocket(glm::vec3 pos, glm::vec3 normal,
float radius);
86 void spawnFrag(glm::vec3 pos, glm::vec3 normal,
float radius);
87 void spawnSticky(glm::vec3 pos, glm::vec3 normal,
float radius);
ExplosionVfxKind explosionVfxKindForWeapon(WeaponType type)
Definition ExplosionVfxEffect.cpp:64
Persistent area-of-effect that damages players inside it (Molotov).
Fixed-capacity particle pool with O(1) swap-remove.
GPU-uploadable particle structs for all effect categories.
ExplosionVfxKind
Distinct explosion VFX profiles authored by weapon family.
Definition ParticleTypes.hpp:12
Projectile component and weapon/surface type enumerations.
Shared ECS registry type alias for the game engine.
entt::registry Registry
Shared ECS registry type alias.
Definition Registry.hpp:11
WeaponType
Weapon type — determines tracer style, damage, sound, and impact effects.
Definition WeaponState.hpp:12
Owns the new explosion VFX path for rockets, frags, stickies, and molotovs.
Definition ExplosionVfxEffect.hpp:23
ParticlePool< VfxSpriteParticle, 2048 > spritePool_
Definition ExplosionVfxEffect.hpp:55
uint32_t nextSeed()
Definition ExplosionVfxEffect.hpp:91
void spawnMolotovBurst(glm::vec3 pos, glm::vec3 normal, float radius)
Definition ExplosionVfxEffect.cpp:263
uint32_t spriteCount() const
Definition ExplosionVfxEffect.hpp:35
void spawnSticky(glm::vec3 pos, glm::vec3 normal, float radius)
Definition ExplosionVfxEffect.cpp:226
const VfxSpriteParticle * spriteData() const
Definition ExplosionVfxEffect.hpp:34
void update(float dt, Registry ®istry, glm::vec3 camPos, glm::vec3 camForward)
Advance all active explosion VFX and persistent ground fire anchors.
Definition ExplosionVfxEffect.cpp:386
ParticlePool< VfxDebrisParticle, 1024 > debrisPool_
Definition ExplosionVfxEffect.hpp:56
void spawnDebris(glm::vec3 pos, glm::vec3 vel, float size, glm::vec4 color, float lifetime, float gravity, float drag, float stretch)
Definition ExplosionVfxEffect.cpp:108
void spawn(glm::vec3 pos, glm::vec3 normal, float radius, ExplosionVfxKind kind)
Spawn a one-shot explosion burst.
Definition ExplosionVfxEffect.cpp:128
std::vector< VfxSpriteParticle > sortedSprites_
Definition ExplosionVfxEffect.hpp:57
const VfxDebrisParticle * debrisData() const
Definition ExplosionVfxEffect.hpp:37
void spawnRocket(glm::vec3 pos, glm::vec3 normal, float radius)
Definition ExplosionVfxEffect.cpp:152
void tickGroundFire(GroundFireAnchor &anchor, float dt)
Definition ExplosionVfxEffect.cpp:318
uint32_t debrisCount() const
Definition ExplosionVfxEffect.hpp:38
void driveGroundFire(entt::entity fieldEntity, glm::vec3 pos, float radius, float remaining, float duration)
Drive persistent molotov ground-fire visuals from a replicated FireField.
Definition ExplosionVfxEffect.cpp:297
uint32_t sequence_
Definition ExplosionVfxEffect.hpp:60
void spawnFrag(glm::vec3 pos, glm::vec3 normal, float radius)
Definition ExplosionVfxEffect.cpp:189
void spawnSprite(glm::vec3 pos, glm::vec3 vel, float size, glm::vec4 color, float lifetime, float growthRate, float spinRate, float rotation, int frameStart, int frameCount, float fps, int material, float stretch, float softness, float priority)
Definition ExplosionVfxEffect.cpp:79
std::vector< GroundFireAnchor > groundFire_
Definition ExplosionVfxEffect.hpp:59
Definition ExplosionVfxEffect.hpp:42
float duration
Definition ExplosionVfxEffect.hpp:47
float radius
Definition ExplosionVfxEffect.hpp:45
float remaining
Definition ExplosionVfxEffect.hpp:46
glm::vec3 pos
Definition ExplosionVfxEffect.hpp:44
float flameAccumulator
Definition ExplosionVfxEffect.hpp:48
bool spawnedBurst
Definition ExplosionVfxEffect.hpp:51
float emberAccumulator
Definition ExplosionVfxEffect.hpp:50
uint32_t seed
Definition ExplosionVfxEffect.hpp:52
entt::entity entity
Definition ExplosionVfxEffect.hpp:43
float smokeAccumulator
Definition ExplosionVfxEffect.hpp:49
Fixed-capacity particle pool with O(1) swap-remove.
Definition ParticlePool.hpp:22
Tiny shard/spark particle used by explosion debris and embers.
Definition ParticleTypes.hpp:107
Animated textured sprite used by the fresh explosion VFX path.
Definition ParticleTypes.hpp:91