Play damage sound on player death (#7679)
authorParamat <paramat@users.noreply.github.com>
Tue, 28 Aug 2018 22:23:04 +0000 (23:23 +0100)
committerGitHub <noreply@github.com>
Tue, 28 Aug 2018 22:23:04 +0000 (23:23 +0100)
Also run CSM 'on_damage_taken' callback.
Improve function logic and remove 'return'.

src/game.cpp

index 005241495f69926bdaa21d2644cbd3ecf6e71263..fbfbdd547a20a4c3b6f988685a2a51843973e3c8 100644 (file)
@@ -2492,22 +2492,23 @@ void Game::handleClientEvent_None(ClientEvent *event, CameraOrientation *cam)
 
 void Game::handleClientEvent_PlayerDamage(ClientEvent *event, CameraOrientation *cam)
 {
-       if (client->getHP() == 0)
-               return;
-
        if (client->moddingEnabled()) {
                client->getScript()->on_damage_taken(event->player_damage.amount);
        }
 
-       runData.damage_flash += 95.0 + 3.2 * event->player_damage.amount;
-       runData.damage_flash = MYMIN(runData.damage_flash, 127.0f);
+       // Damage flash and hurt tilt are not used at death
+       if (client->getHP() > 0) {
+               runData.damage_flash += 95.0f + 3.2f * event->player_damage.amount;
+               runData.damage_flash = MYMIN(runData.damage_flash, 127.0f);
 
-       LocalPlayer *player = client->getEnv().getLocalPlayer();
+               LocalPlayer *player = client->getEnv().getLocalPlayer();
 
-       player->hurt_tilt_timer = 1.5;
-       player->hurt_tilt_strength =
-               rangelim(event->player_damage.amount / 4, 1.0f, 4.0f);
+               player->hurt_tilt_timer = 1.5f;
+               player->hurt_tilt_strength =
+                       rangelim(event->player_damage.amount / 4.0f, 1.0f, 4.0f);
+       }
 
+       // Play damage sound
        client->getEventManager()->put(new SimpleTriggerEvent(MtEvent::PLAYER_DAMAGE));
 }