summaryrefslogtreecommitdiff
path: root/src/player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.cpp')
-rw-r--r--src/player.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/player.cpp b/src/player.cpp
index 1ff953253..c7036663a 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -74,6 +74,20 @@ Player::Player(const char *name, IItemDefManager *idef):
HUD_FLAG_MINIMAP_RADAR_VISIBLE;
hud_hotbar_itemcount = HUD_HOTBAR_ITEMCOUNT_DEFAULT;
+
+ m_player_settings.readGlobalSettings();
+ g_settings->registerChangedCallback("free_move", &Player::settingsChangedCallback,
+ &m_player_settings);
+ g_settings->registerChangedCallback("fast_move", &Player::settingsChangedCallback,
+ &m_player_settings);
+ g_settings->registerChangedCallback("continuous_forward",
+ &Player::settingsChangedCallback, &m_player_settings);
+ g_settings->registerChangedCallback("always_fly_fast",
+ &Player::settingsChangedCallback, &m_player_settings);
+ g_settings->registerChangedCallback("aux1_descends",
+ &Player::settingsChangedCallback, &m_player_settings);
+ g_settings->registerChangedCallback(
+ "noclip", &Player::settingsChangedCallback, &m_player_settings);
}
Player::~Player()
@@ -126,3 +140,18 @@ void Player::clearHud()
hud.pop_back();
}
}
+
+void PlayerSettings::readGlobalSettings()
+{
+ free_move = g_settings->getBool("free_move");
+ fast_move = g_settings->getBool("fast_move");
+ continuous_forward = g_settings->getBool("continuous_forward");
+ always_fly_fast = g_settings->getBool("always_fly_fast");
+ aux1_descends = g_settings->getBool("aux1_descends");
+ noclip = g_settings->getBool("noclip");
+}
+
+void Player::settingsChangedCallback(const std::string &name, void *data)
+{
+ ((PlayerSettings *)data)->readGlobalSettings();
+}