diff --git a/data/sounds/low_energy_F.ogg b/data/sounds/low_energy_F.ogg new file mode 100644 index 0000000..e862cd7 Binary files /dev/null and b/data/sounds/low_energy_F.ogg differ diff --git a/data/sounds/low_energy_M.ogg b/data/sounds/low_energy_M.ogg new file mode 100644 index 0000000..14719ec Binary files /dev/null and b/data/sounds/low_energy_M.ogg differ diff --git a/src/player.cpp b/src/player.cpp index 3a8f5e7..8fd7a5b 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -744,7 +744,8 @@ LocalPlayer::LocalPlayer(): cold_effectf(0.0), m_sneak_node(32767,32767,32767), m_sneak_node_exists(false), - m_can_use_energy(true) + m_can_use_energy(true), + m_low_energy_effect(0) { m_energy = 10.0; m_character = g_settings->get("character_definition"); @@ -1107,8 +1108,22 @@ void LocalPlayer::applyControl(float dtime) }else if (m_energy < -0.1) { m_can_use_energy = false; m_energy = -0.1; + if (g_sound) { + if (m_character == "") + m_character = std::string(PLAYER_DEFAULT_CHARDEF); + Strfnd f(m_character); + std::string gender = f.next(":"); + std::string snd("low-energy-"); + snd += gender; + + m_low_energy_effect = g_sound->playSound(snd,true); + } }else if (m_energy > 1.8) { m_can_use_energy = true; + if (g_sound && m_low_energy_effect) { + g_sound->stopSound(m_low_energy_effect); + m_low_energy_effect = 0; + } } if (energy_effectf > 0.0) diff --git a/src/player.h b/src/player.h index cf9e191..6f971a5 100644 --- a/src/player.h +++ b/src/player.h @@ -540,6 +540,7 @@ private: content_t m_old_node_below_type; float m_energy; bool m_can_use_energy; + int m_low_energy_effect; }; #endif // !SERVER diff --git a/src/sound.cpp b/src/sound.cpp index ea4e3ab..cd77fb1 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -120,6 +120,8 @@ void init_sounds(ISoundManager *sound) // special sound->loadSound("wield","wield_item.ogg"); + sound->loadSound("low-energy-F","low_energy_F.ogg"); + sound->loadSound("low-energy-M","low_energy_M.ogg"); // menu backgrounds sound->loadSound("bg-mainmenu","bg_mainmenu.ogg");