X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fscript%2Fcpp_api%2Fs_base.h;h=19d71df6517f27660f0ef2ec225ab3fd94709271;hb=0727bb3ddd9c550ff962af4546bac8cc058bce73;hp=ead385a439f3f60d2854494d6ced8959a76778f8;hpb=e50c784e2ca55735fc360ae51534288c2ea59ca5;p=dragonfireclient.git diff --git a/src/script/cpp_api/s_base.h b/src/script/cpp_api/s_base.h index ead385a43..19d71df65 100644 --- a/src/script/cpp_api/s_base.h +++ b/src/script/cpp_api/s_base.h @@ -55,6 +55,10 @@ extern "C" { setOriginFromTableRaw(index, __FUNCTION__) class Server; +#ifndef SERVER +class Client; +#endif +class IGameDef; class Environment; class GUIEngine; class ServerActiveObject; @@ -75,7 +79,11 @@ class ScriptApiBase { void addObjectReference(ServerActiveObject *cobj); void removeObjectReference(ServerActiveObject *cobj); - Server* getServer() { return m_server; } + IGameDef *getGameDef() { return m_gamedef; } + Server* getServer(); +#ifndef SERVER + Client* getClient(); +#endif std::string getOrigin() { return m_last_run_mod; } void setOriginDirect(const char *origin); @@ -83,6 +91,7 @@ class ScriptApiBase { protected: friend class LuaABM; + friend class LuaLBM; friend class InvRef; friend class ObjectRef; friend class NodeMetaRef; @@ -97,7 +106,7 @@ class ScriptApiBase { void scriptError(int result, const char *fxn); void stackDump(std::ostream &o); - void setServer(Server* server) { m_server = server; } + void setGameDef(IGameDef* gamedef) { m_gamedef = gamedef; } Environment* getEnv() { return m_environment; } void setEnv(Environment* env) { m_environment = env; } @@ -117,9 +126,11 @@ class ScriptApiBase { #endif private: + static int luaPanic(lua_State *L); + lua_State* m_luastack; - Server* m_server; + IGameDef* m_gamedef; Environment* m_environment; GUIEngine* m_guiengine; };