1 #pragma once 2 3 #include <string> 4 #include <string_view> 5 6 struct _object; 7 typedef struct _object PyObject; 8 9 namespace hex { 10 11 namespace prv { class Provider; } 12 13 class LoaderScript { 14 public: 15 LoaderScript() = delete; 16 17 static bool processFile(std::string_view scriptPath); 18 setFilePath(std::string_view filePath)19 static void setFilePath(std::string_view filePath) { LoaderScript::s_filePath = filePath; } setDataProvider(prv::Provider * provider)20 static void setDataProvider(prv::Provider* provider) { LoaderScript::s_dataProvider = provider; } 21 private: 22 static inline std::string s_filePath; 23 static inline prv::Provider* s_dataProvider; 24 25 static PyObject* Py_getFilePath(PyObject *self, PyObject *args); 26 static PyObject* Py_addPatch(PyObject *self, PyObject *args); 27 static PyObject* Py_addBookmark(PyObject *self, PyObject *args); 28 29 static PyObject* Py_addStruct(PyObject *self, PyObject *args); 30 static PyObject* Py_addUnion(PyObject *self, PyObject *args); 31 }; 32 33 }