aboutsummaryrefslogtreecommitdiff
path: root/src/script/cpp_api/s_base.h
diff options
context:
space:
mode:
authorred-001 <red-001@outlook.ie>2017-06-30 19:14:39 +0100
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-06-30 20:14:39 +0200
commitf3ad75691aea30d2d68aab19fbfa9031409c39d7 (patch)
treeb73109f1d3d14af91b3593dc80645a1bb70274a8 /src/script/cpp_api/s_base.h
parent2e53801fc0d9ba13afec6c1ddb5e3999f68b96bd (diff)
downloadminetest-f3ad75691aea30d2d68aab19fbfa9031409c39d7.tar.xz
Create a filesystem abstraction layer for CSM and only allow accessing files that are scanned into it. (#5965)
* Load client-side mods into memory before executing them. This removes the remaining filesystem access that client-sided mods had and it will hopefully make then more secure. * Lua Virtual filesystem: don't load the files into memory just scan the filenames into memory. * Fix the issues with backtrace * fix most of the issues * fix code style. * add a comment
Diffstat (limited to 'src/script/cpp_api/s_base.h')
-rw-r--r--src/script/cpp_api/s_base.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/script/cpp_api/s_base.h b/src/script/cpp_api/s_base.h
index 38ee9901b..28fefdd37 100644
--- a/src/script/cpp_api/s_base.h
+++ b/src/script/cpp_api/s_base.h
@@ -54,6 +54,12 @@ extern "C" {
#define setOriginFromTable(index) \
setOriginFromTableRaw(index, __FUNCTION__)
+enum class ScriptingType: u8 {
+ Client,
+ Server,
+ MainMenu
+};
+
class Server;
#ifndef SERVER
class Client;
@@ -73,6 +79,10 @@ public:
void loadMod(const std::string &script_path, const std::string &mod_name);
void loadScript(const std::string &script_path);
+#ifndef SERVER
+ void loadModFromMemory(const std::string &mod_name);
+#endif
+
void runCallbacksRaw(int nargs,
RunCallbacksMode mode, const char *fxn);
@@ -82,6 +92,8 @@ public:
IGameDef *getGameDef() { return m_gamedef; }
Server* getServer();
+ void setType(ScriptingType type) { m_type = type; }
+ ScriptingType getType() { return m_type; }
#ifndef SERVER
Client* getClient();
#endif
@@ -133,6 +145,7 @@ private:
IGameDef *m_gamedef = nullptr;
Environment *m_environment = nullptr;
GUIEngine *m_guiengine = nullptr;
+ ScriptingType m_type;
};
#endif /* S_BASE_H_ */