inventory.clear();
inventory.addList("main", PLAYER_INVENTORY_SIZE);
- inventory.addList("hand", 1);
InventoryList *craft = inventory.addList("craft", 9);
craft->setWidth(3);
inventory.addList("craftpreview", 1);
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",
+ // Register player setting callbacks
+ for (const std::string &name : m_player_settings.setting_names)
+ g_settings->registerChangedCallback(name,
&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()
{
+ // m_player_settings becomes invalid, remove callbacks
+ for (const std::string &name : m_player_settings.setting_names)
+ g_settings->deregisterChangedCallback(name,
+ &Player::settingsChangedCallback, &m_player_settings);
clearHud();
}
void PlayerSettings::readGlobalSettings()
{
free_move = g_settings->getBool("free_move");
+ pitch_move = g_settings->getBool("pitch_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");
+ autojump = g_settings->getBool("autojump");
}
void Player::settingsChangedCallback(const std::string &name, void *data)