From 5759a6f80f01e2342ff6c4fe7ef22d169ecf4ddf Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Wed, 17 Feb 2021 01:20:59 +0100 Subject: [PATCH] attempt #2 --- src/TLuaEngine.cpp | 4 ++++ src/TLuaFile.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index 2c9c5e7..d0929c9 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -6,10 +6,14 @@ namespace fs = std::filesystem; +// necessary as lua relies on global state +TLuaEngine* TheEngine; + TLuaEngine::TLuaEngine(TServer& Server, TTCPServer& TCPServer, TUDPServer& UDPServer) : mTCPServer(TCPServer) , mUDPServer(UDPServer) , mServer(Server) { + TheEngine = this; if (!fs::exists(Application::Settings.Resource)) { fs::create_directory(Application::Settings.Resource); } diff --git a/src/TLuaFile.cpp b/src/TLuaFile.cpp index 8b6ef32..4cba073 100644 --- a/src/TLuaFile.cpp +++ b/src/TLuaFile.cpp @@ -16,7 +16,7 @@ void SendError(TLuaEngine& Engine, lua_State* L, const std::string& msg); std::any CallFunction(TLuaFile* lua, const std::string& FuncName, std::shared_ptr Arg); std::any TriggerLuaEvent(TLuaEngine& Engine, const std::string& Event, bool local, TLuaFile* Caller, std::shared_ptr arg, bool Wait); -static TLuaEngine* TheEngine { nullptr }; +extern TLuaEngine* TheEngine; static TLuaEngine& Engine() { Assert(TheEngine);