diff --git a/src/gui/game/GameModel.cpp b/src/gui/game/GameModel.cpp index 8e193ae90..acaf5e359 100644 --- a/src/gui/game/GameModel.cpp +++ b/src/gui/game/GameModel.cpp @@ -353,21 +353,20 @@ void GameModel::BuildMenus() decoToolset[2] = GetToolFromIdentifier("DEFAULT_UI_SAMPLE"); decoToolset[3] = GetToolFromIdentifier("DEFAULT_PT_NONE"); + regularToolset[0] = GetToolFromIdentifier(activeToolIdentifiers[0]); + regularToolset[1] = GetToolFromIdentifier(activeToolIdentifiers[1]); + regularToolset[2] = GetToolFromIdentifier(activeToolIdentifiers[2]); + regularToolset[3] = GetToolFromIdentifier(activeToolIdentifiers[3]); + //Set default tools - regularToolset[0] = GetToolFromIdentifier("DEFAULT_PT_DUST"); - regularToolset[1] = GetToolFromIdentifier("DEFAULT_PT_NONE"); - regularToolset[2] = GetToolFromIdentifier("DEFAULT_UI_SAMPLE"); - regularToolset[3] = GetToolFromIdentifier("DEFAULT_PT_NONE"); - - - if(activeToolIdentifiers[0].length()) - regularToolset[0] = GetToolFromIdentifier(activeToolIdentifiers[0]); - if(activeToolIdentifiers[1].length()) - regularToolset[1] = GetToolFromIdentifier(activeToolIdentifiers[1]); - if(activeToolIdentifiers[2].length()) - regularToolset[2] = GetToolFromIdentifier(activeToolIdentifiers[2]); - if(activeToolIdentifiers[3].length()) - regularToolset[3] = GetToolFromIdentifier(activeToolIdentifiers[3]); + if (!regularToolset[0]) + regularToolset[0] = GetToolFromIdentifier("DEFAULT_PT_DUST"); + if (!regularToolset[1]) + regularToolset[1] = GetToolFromIdentifier("DEFAULT_PT_NONE"); + if (!regularToolset[2]) + regularToolset[2] = GetToolFromIdentifier("DEFAULT_UI_SAMPLE"); + if (!regularToolset[3]) + regularToolset[3] = GetToolFromIdentifier("DEFAULT_PT_NONE"); lastTool = activeTools[0]; @@ -412,24 +411,26 @@ void GameModel::BuildFavoritesMenu() notifyLastToolChanged(); } -Tool * GameModel::GetToolFromIdentifier(ByteString identifier) +Tool *GameModel::GetToolFromIdentifier(ByteString const &identifier) { - for (std::vector::iterator iter = menuList.begin(), end = menuList.end(); iter != end; ++iter) + for (auto *menu : menuList) { - std::vector menuTools = (*iter)->GetToolList(); - for (std::vector::iterator titer = menuTools.begin(), tend = menuTools.end(); titer != tend; ++titer) + for (auto *tool : menu->GetToolList()) { - if (identifier == (*titer)->GetIdentifier()) - return *titer; + if (identifier == tool->GetIdentifier()) + { + return tool; + } } } - for (std::vector::iterator iter = extraElementTools.begin(), end = extraElementTools.end(); iter != end; ++iter) + for (auto *extra : extraElementTools) { - if (identifier == (*iter)->GetIdentifier()) - return *iter; + if (identifier == extra->GetIdentifier()) + { + return extra; + } } - - return NULL; + return nullptr; } void GameModel::SetEdgeMode(int edgeMode) diff --git a/src/gui/game/GameModel.h b/src/gui/game/GameModel.h index 8983ed6d3..e40b971d0 100644 --- a/src/gui/game/GameModel.h +++ b/src/gui/game/GameModel.h @@ -147,7 +147,7 @@ public: float GetToolStrength(); Tool * GetLastTool(); void SetLastTool(Tool * newTool); - Tool * GetToolFromIdentifier(ByteString identifier); + Tool *GetToolFromIdentifier(ByteString const &identifier); Tool * GetElementTool(int elementID); std::vector GetToolList(); std::vector GetUnlistedTools(); diff --git a/src/lua/LuaScriptInterface.cpp b/src/lua/LuaScriptInterface.cpp index 664970047..daf0527d8 100644 --- a/src/lua/LuaScriptInterface.cpp +++ b/src/lua/LuaScriptInterface.cpp @@ -2876,6 +2876,7 @@ int LuaScriptInterface::elements_free(lua_State * l) } luacon_sim->elements[id].Enabled = false; + luacon_model->BuildMenus(); lua_getglobal(l, "elements"); lua_pushnil(l);