feat: add ghost mode visual overlay when player is dead

Apply a cold blue-grey fullscreen overlay when the player is in ghost
form, creating a desaturated, muted appearance that clearly signals the
death state. Uses the existing overlay pipeline infrastructure. Applied
in both parallel and non-parallel rendering paths, after underwater tint
but before brightness adjustment so UI elements remain unaffected.
This commit is contained in:
Kelsi 2026-03-17 10:58:07 -07:00
parent 2d53ff0c07
commit 01685cc0bb

View file

@ -5287,6 +5287,10 @@ void Renderer::renderWorld(game::World* world, game::GameHandler* gameHandler) {
renderOverlay(tint, cmd); renderOverlay(tint, cmd);
} }
} }
// Ghost mode desaturation: cold blue-grey overlay when dead/ghost
if (ghostMode_) {
renderOverlay(glm::vec4(0.30f, 0.35f, 0.42f, 0.45f), cmd);
}
// Brightness overlay (applied before minimap so it doesn't affect UI) // Brightness overlay (applied before minimap so it doesn't affect UI)
if (brightness_ < 0.99f) { if (brightness_ < 0.99f) {
renderOverlay(glm::vec4(0.0f, 0.0f, 0.0f, 1.0f - brightness_), cmd); renderOverlay(glm::vec4(0.0f, 0.0f, 0.0f, 1.0f - brightness_), cmd);
@ -5428,6 +5432,10 @@ void Renderer::renderWorld(game::World* world, game::GameHandler* gameHandler) {
renderOverlay(tint); renderOverlay(tint);
} }
} }
// Ghost mode desaturation: cold blue-grey overlay when dead/ghost
if (ghostMode_) {
renderOverlay(glm::vec4(0.30f, 0.35f, 0.42f, 0.45f));
}
// Brightness overlay (applied before minimap so it doesn't affect UI) // Brightness overlay (applied before minimap so it doesn't affect UI)
if (brightness_ < 0.99f) { if (brightness_ < 0.99f) {
renderOverlay(glm::vec4(0.0f, 0.0f, 0.0f, 1.0f - brightness_)); renderOverlay(glm::vec4(0.0f, 0.0f, 0.0f, 1.0f - brightness_));