diff --git a/builtin/common/settings/dlg_settings.lua b/builtin/common/settings/dlg_settings.lua index 77fc8be3f..1418b2cef 100644 --- a/builtin/common/settings/dlg_settings.lua +++ b/builtin/common/settings/dlg_settings.lua @@ -130,6 +130,8 @@ local function load() { heading = fgettext_ne("Movement") }, "arm_inertia", "view_bobbing_amount", + { heading = fgettext_ne("Damage") }, + "hurt_flash_enabled" }, }) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 37cd7d5e2..9bcf730bb 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -491,6 +491,11 @@ arm_inertia (Arm inertia) bool true # For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double. view_bobbing_amount (View bobbing factor) float 1.0 0.0 7.9 +[**Damage] + +# Flashing of the screen when taking damage. +hurt_flash_enabled (Damage flash) bool true + [**Camera] # Field of view in degrees. diff --git a/src/client/game.cpp b/src/client/game.cpp index f9a52c43f..5111c0d07 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2689,8 +2689,10 @@ void Game::handleClientEvent_PlayerDamage(ClientEvent *event, CameraOrientation player->getCAO()->getProperties().hp_max : PLAYER_MAX_HP_DEFAULT; f32 damage_ratio = event->player_damage.amount / hp_max; - runData.damage_flash += 95.0f + 64.f * damage_ratio; - runData.damage_flash = MYMIN(runData.damage_flash, 127.0f); + if (g_settings->getBool("hurt_flash_enabled")) { + runData.damage_flash += 95.0f + 64.f * damage_ratio; + runData.damage_flash = MYMIN(runData.damage_flash, 127.0f); + } player->hurt_tilt_timer = 1.5f; player->hurt_tilt_strength = diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 916ce9e51..08617343f 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -306,6 +306,7 @@ void set_default_settings() settings->setDefault("show_entity_selectionbox", "false"); settings->setDefault("ambient_occlusion_gamma", "1.8"); settings->setDefault("arm_inertia", "true"); + settings->setDefault("hurt_flash_enabled", "true"); settings->setDefault("show_nametag_backgrounds", "true"); settings->setDefault("show_block_bounds_radius_near", "4"); settings->setDefault("transparency_sorting_group_by_buffers", "true");