diff --git a/src/logic/EngineController.cpp b/src/logic/EngineController.cpp index 615e26eb..5f676b39 100644 --- a/src/logic/EngineController.cpp +++ b/src/logic/EngineController.cpp @@ -34,9 +34,10 @@ EngineController::EngineController(Engine& engine) : engine(engine) { void EngineController::deleteWorld(const std::string& name) { fs::path folder = engine.getPaths().getWorldFolderByName(name); - auto deletion = [&]() { + auto deletion = [this, folder]() { logger.info() << "deleting " << folder; fs::remove_all(folder); + engine.getGUI()->getMenu()->back(); }; if (engine.isHeadless()) { diff --git a/src/logic/scripting/lua/libs/libcore.cpp b/src/logic/scripting/lua/libs/libcore.cpp index d291a77f..80a924c5 100644 --- a/src/logic/scripting/lua/libs/libcore.cpp +++ b/src/logic/scripting/lua/libs/libcore.cpp @@ -36,6 +36,9 @@ static int l_load_content(lua::State* L) { } static int l_reset_content(lua::State* L) { + if (level != nullptr) { + throw std::runtime_error("world must be closed before"); + } engine->resetContent(); return 0; }