From 0c76303186d968db89d699d9e512aea9904378bc Mon Sep 17 00:00:00 2001 From: paramat Date: Wed, 5 Oct 2016 01:25:02 +0100 Subject: [PATCH] Damage flash: Reduce maximum alpha. Avoid fade overload Flash alpha maximum is reduced from 180 to 127 to avoid player blindness in combat. Flash alpha minimum is unchanged. The 'damage_flash' value is now limited to max alpha, to avoid multiple hits creating a huge value that causes flash to stay at maximum alpha for a long period. Now alpha always starts to fade immediately after taking damage. Both problems can be seen in Minetest let's play videos. Simplify and optimise some code. --- src/game.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index 3ba600ed5..1e4464cc4 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -3374,12 +3374,12 @@ void Game::processClientEvents(CameraOrientation *cam, float *damage_flash) //u16 damage = event.player_damage.amount; //infostream<<"Player damage: "<hurt_tilt_timer = 1.5; - player->hurt_tilt_strength = event.player_damage.amount / 4; - player->hurt_tilt_strength = rangelim(player->hurt_tilt_strength, 1.0, 4.0); + player->hurt_tilt_strength = + rangelim(event.player_damage.amount / 4, 1.0, 4.0); MtEvent *e = new SimpleTriggerEvent("PlayerDamage"); gamedef->event()->put(e); @@ -4285,10 +4285,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, Damage flash */ if (runData->damage_flash > 0.0) { - video::SColor color(std::min(runData->damage_flash, 180.0f), - 180, - 0, - 0); + video::SColor color(runData->damage_flash, 180, 0, 0); driver->draw2DRectangle(color, core::rect(0, 0, screensize.X, screensize.Y), NULL);