group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
BulletHoleDecal.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
8
9#include <array>
10#include <cstdint>
11#include <glm/glm.hpp>
12
18{
19public:
24 void spawn(glm::vec3 pos, glm::vec3 normal, WeaponType wt);
25
28 void update(float dt);
29
30 [[nodiscard]] const DecalInstance* data() const { return slots_.data(); }
31 [[nodiscard]] uint32_t count() const { return std::min(head_, k_max); }
32
33private:
34 static constexpr uint32_t k_max = 512;
35 std::array<DecalInstance, k_max> slots_{};
36 uint32_t head_ = 0;
37};
GPU-uploadable particle structs for all effect categories.
Projectile component and weapon/surface type enumerations.
WeaponType
Weapon type — determines tracer style, damage, sound, and impact effects.
Definition WeaponState.hpp:10
Ring-buffer pool of 512 world-space decal quads (bullet holes, scorch marks).
Definition BulletHoleDecal.hpp:18
uint32_t count() const
Definition BulletHoleDecal.hpp:31
void update(float dt)
Fade all active decals over time.
Definition BulletHoleDecal.cpp:29
const DecalInstance * data() const
Definition BulletHoleDecal.hpp:30
void spawn(glm::vec3 pos, glm::vec3 normal, WeaponType wt)
Place a new decal at pos oriented by normal.
Definition BulletHoleDecal.cpp:8
World-space decal instance (bullet hole, scorch mark).
Definition ParticleTypes.hpp:80