Вынес рендер в отдельный модуль. Сделал систему вызовов для модулй к ядру. Исправил баг в SaveMap. Убрал поддержку linux, так как трудно поддерживать обе платформы. Убрал тесты для linux.

This commit is contained in:
Jiga228
2025-09-15 19:13:39 +07:00
parent 9bf9d678f7
commit f15c8b09cd
18 changed files with 193 additions and 227 deletions
+5 -13
View File
@@ -17,39 +17,31 @@
extern "C" {\
EXPORT void* protect_init() {return reinterpret_cast<void*>(&InitModule);} \
EXPORT void* protect_start() {return reinterpret_cast<void*>(&StartModule);} \
EXPORT void* protect_stop() {return reinterpret_cast<void*>(&StopModule);} \
EXPORT void* protect_quit() {return reinterpret_cast<void*>(&QuitModule);} \
}\
ModuleInstance* Factory(CoreInstance& core) { return static_cast<ModuleInstance*>(new Class(core)); }
ModuleInstance* Factory() { return static_cast<ModuleInstance*>(new Class()); }
class CoreInstance;
struct CoreCallBacks;
class ModuleInstance {
CoreInstance& core_;
public:
Delegate<void> onStop;
ModuleInstance(CoreInstance& core);
virtual ~ModuleInstance() = default;
CoreInstance& getCore() const { return core_; }
virtual void start();
void stop();
void QuitGame();
};
extern "C" {
// Create module instance
EXPORT void InitModule(CoreInstance& core);
EXPORT void InitModule(CoreCallBacks* callbacks);
// Start module instance
EXPORT void StartModule();
// Destroy module instance when core unloads there
EXPORT void StopModule();
// Stop module when core calls this
EXPORT void QuitModule();
}