feat: add screen-space weather particle overlay (rain/snow/storm)

Weather type and intensity are already tracked from SMSG_WEATHER, but
only an icon was shown next to the zone name.  This adds a fullscreen
ImDrawList overlay that renders:
- Rain (type 1): diagonal rain streaks proportional to intensity
- Snow (type 2): gently swaying snowflakes with two-tone highlight
- Storm (type 3): heavy rain + dark fog-vignette on screen edges

Particles wrap at screen boundaries and are re-seeded on type or
resolution change.  Delta time is capped at 50 ms to prevent teleporting
after focus loss.  No heap allocations at runtime (static local arrays).
This commit is contained in:
Kelsi 2026-03-17 16:34:39 -07:00
parent 1f1925797f
commit 973db16658
2 changed files with 125 additions and 0 deletions

View file

@ -635,6 +635,7 @@ private:
std::string zoneTextName_;
std::string lastKnownZoneName_;
void renderZoneText();
void renderWeatherOverlay(game::GameHandler& gameHandler);
// Cooldown tracker
bool showCooldownTracker_ = false;