#pragma once #include "utils/globals.hpp" #include "text/token.hpp" namespace Nimbin { class GlRenderer; class ParticleSystem; struct Camera; struct Light; class CelebrationSystem { Text::TokenPtr _banner; double _t = 0, _duration = 3.5, _next_burst = 0; bool _active = false; public: void start (const Camera& cam, double& glyph_yaw); void tick (double dt, ParticleSystem& particle_sys); void finish (ParticleSystem& particle_sys); void draw (GlRenderer&, const Camera&, const Light&) const; bool is_Active () const; double get_Progress() const; }; } // namespace Nimbin