diff --git a/README.md b/README.md
index 1d2d3cc4..24be85be 100644
--- a/README.md
+++ b/README.md
@@ -42,6 +42,7 @@ Archive's bin directory contains 2 subdirectories, 'bugfixed' and 'pure'
| mp_forcerespawn | 0 | 0 | - | Players will automatically respawn when killed.
`0` disabled
`>0.00001` time delay to respawn |
| mp_hostage_hurtable | 1 | 0 | 1 | The hostages can take damage.
`0` disabled
`1` from any team
`2` only from `CT`
`3` only from `T` |
| mp_show_radioicon | 1 | 0 | 1 | Show radio icon.
`0` disabled
`1` enabled |
+| mp_old_bomb_defused_sound | 0 | 0 | 1 | Play "Bomb has been defused" sound instead of "Counter-Terrorists win" when bomb was defused
`0` disabled
`1` enabled |
| showtriggers | 0 | 0 | 1 | Debug cvar shows triggers. |
| sv_alltalk | 0 | 0 | 4 | When players can hear each other ([further explanation](../../wiki/sv_alltalk)).
`0` dead don't hear alive
`1` no restrictions
`2` teammates hear each other
`3` Same as 2, but spectators hear everybody
`4` alive hear alive, dead hear dead and alive.
| bot_deathmatch | 0 | 0 | 1 | Set's the mode for the zBot.
`0` disabled
`1` enable mode Deathmatch and not allow to do the scenario |
diff --git a/dist/game.cfg b/dist/game.cfg
index d43e0223..42c3c966 100644
--- a/dist/game.cfg
+++ b/dist/game.cfg
@@ -136,6 +136,11 @@ mp_hostage_hurtable 1
// 1 - enabled (default behavior)
mp_show_radioicon 1
+// Play "Bomb has been defused" sound instead of "Counter-Terrorists win" when bomb was defused
+// 0 - disabled
+// 1 - enabled (default hehavior)
+mp_old_bomb_defused_sound 1
+
// Set's the mode for the zBot
// 0 - disabled
// 1 - enable mode Deathmatch and not allow to do the scenario
diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp
index 30563f23..66697a40 100644
--- a/regamedll/dlls/game.cpp
+++ b/regamedll/dlls/game.cpp
@@ -110,11 +110,12 @@ cvar_t round_restart_delay = { "mp_round_restart_delay", "5", FCVAR_SERVER, 0.
cvar_t showtriggers = { "showtriggers", "0", 0, 0.0f, nullptr }; // debug cvar shows triggers
// TODO: Maybe it's better to register in the engine?
-cvar_t hostagehurtable = { "mp_hostage_hurtable", "1", FCVAR_SERVER, 0.0f, nullptr };
-cvar_t roundover = { "mp_roundover", "0", FCVAR_SERVER, 0.0f, nullptr };
-cvar_t forcerespawn = { "mp_forcerespawn", "0", FCVAR_SERVER, 0.0f, nullptr };
-cvar_t show_radioicon = { "mp_show_radioicon", "1", FCVAR_SERVER, 1.0f, nullptr };
-cvar_t item_staytime = { "mp_item_staytime", "300", FCVAR_SERVER, 300.0f, nullptr };
+cvar_t hostagehurtable = { "mp_hostage_hurtable", "1", FCVAR_SERVER, 0.0f, nullptr };
+cvar_t roundover = { "mp_roundover", "0", FCVAR_SERVER, 0.0f, nullptr };
+cvar_t forcerespawn = { "mp_forcerespawn", "0", FCVAR_SERVER, 0.0f, nullptr };
+cvar_t show_radioicon = { "mp_show_radioicon", "1", FCVAR_SERVER, 1.0f, nullptr };
+cvar_t old_bomb_defused_sound = { "mp_old_bomb_defused_sound", "1", FCVAR_SERVER, 1.0f, nullptr };
+cvar_t item_staytime = { "mp_item_staytime", "300", FCVAR_SERVER, 300.0f, nullptr };
void GameDLL_Version_f()
{
@@ -266,6 +267,7 @@ void EXT_FUNC GameDLLInit()
CVAR_REGISTER(&roundover);
CVAR_REGISTER(&forcerespawn);
CVAR_REGISTER(&show_radioicon);
+ CVAR_REGISTER(&old_bomb_defused_sound);
CVAR_REGISTER(&item_staytime);
// print version
diff --git a/regamedll/dlls/game.h b/regamedll/dlls/game.h
index e67daf87..69492207 100644
--- a/regamedll/dlls/game.h
+++ b/regamedll/dlls/game.h
@@ -150,6 +150,7 @@ extern cvar_t hostagehurtable;
extern cvar_t roundover;
extern cvar_t forcerespawn;
extern cvar_t show_radioicon;
+extern cvar_t old_bomb_defused_sound;
extern cvar_t item_staytime;
#endif
diff --git a/regamedll/dlls/ggrenade.cpp b/regamedll/dlls/ggrenade.cpp
index 8db72c04..5177cf54 100644
--- a/regamedll/dlls/ggrenade.cpp
+++ b/regamedll/dlls/ggrenade.cpp
@@ -1304,9 +1304,12 @@ void CGrenade::C4Think()
// if the defuse process has ended, kill the c4
else if (m_pBombDefuser->pev->deadflag == DEAD_NO)
{
-#ifndef REGAMEDLL_FIXES
- Broadcast("BOMBDEF");
+#ifdef REGAMEDLL_ADD
+ if (!old_bomb_defused_sound.value)
#endif
+ {
+ Broadcast("BOMBDEF");
+ }
if (TheBots)
{
diff --git a/regamedll/dlls/multiplay_gamerules.cpp b/regamedll/dlls/multiplay_gamerules.cpp
index b1e2ec76..c4e23f53 100644
--- a/regamedll/dlls/multiplay_gamerules.cpp
+++ b/regamedll/dlls/multiplay_gamerules.cpp
@@ -1213,8 +1213,11 @@ bool CHalfLifeMultiplay::Target_Defused(float tmDelay)
{
Broadcast("ctwin");
-#ifdef REGAMEDLL_FIXES
- Broadcast("BOMBDEF");
+#ifdef REGAMEDLL_ADD
+ if (old_bomb_defused_sound.value)
+ {
+ Broadcast("BOMBDEF");
+ }
#endif
m_iAccountCT += m_rgRewardAccountRules[RR_BOMB_DEFUSED];