X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fscript%2Fcpp_api%2Fs_async.cpp;h=5cca5fc03778f2b27bc050cb43d8cd51375946d8;hb=3caad3f3c9e319ca67d63231e8c64b2ace855fff;hp=080ae887c3089fd87dfcf5fe79a0aa550fca76e6;hpb=a7e131f53e211ffbe38d34d23b33e13cc401f013;p=dragonfireclient.git diff --git a/src/script/cpp_api/s_async.cpp b/src/script/cpp_api/s_async.cpp index 080ae887c..5cca5fc03 100644 --- a/src/script/cpp_api/s_async.cpp +++ b/src/script/cpp_api/s_async.cpp @@ -33,13 +33,6 @@ extern "C" { #include "porting.h" #include "common/c_internal.h" -/******************************************************************************/ -AsyncEngine::AsyncEngine() : - initDone(false), - jobIdCounter(0) -{ -} - /******************************************************************************/ AsyncEngine::~AsyncEngine() { @@ -76,14 +69,9 @@ AsyncEngine::~AsyncEngine() } /******************************************************************************/ -bool AsyncEngine::registerFunction(const char* name, lua_CFunction func) +void AsyncEngine::registerStateInitializer(StateInitializer func) { - if (initDone) { - return false; - } - - functionList[name] = func; - return true; + stateInitializers.push_back(func); } /******************************************************************************/ @@ -204,11 +192,9 @@ void AsyncEngine::pushFinishedJobs(lua_State* L) { /******************************************************************************/ void AsyncEngine::prepareEnvironment(lua_State* L, int top) { - for (UNORDERED_MAP::iterator it = functionList.begin(); - it != functionList.end(); ++it) { - lua_pushstring(L, it->first.c_str()); - lua_pushcfunction(L, it->second); - lua_settable(L, top); + for (std::vector::iterator it = stateInitializers.begin(); + it != stateInitializers.end(); it++) { + (*it)(L, top); } }