fix: fix LegacyScriptEventManager
This commit is contained in:
+9
-6
@@ -12,7 +12,7 @@ public:
|
|||||||
|
|
||||||
std::string getNextEventId() {
|
std::string getNextEventId() {
|
||||||
mNextEventId++;
|
mNextEventId++;
|
||||||
return std::to_string(mNextEventId);
|
return "GMLIB_EVENT_" + std::to_string(mNextEventId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void emplaceListener(std::string const& scriptEventId, ll::event::ListenerPtr listenerPtr) {
|
void emplaceListener(std::string const& scriptEventId, ll::event::ListenerPtr listenerPtr) {
|
||||||
@@ -24,18 +24,21 @@ public:
|
|||||||
mEventListeners.erase(scriptEventId);
|
mEventListeners.erase(scriptEventId);
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::unique_ptr<LegacyScriptEventManager>& getInstance() {
|
static LegacyScriptEventManager& getInstance() {
|
||||||
static std::unique_ptr<LegacyScriptEventManager> instance;
|
static std::unique_ptr<LegacyScriptEventManager> instance;
|
||||||
return instance;
|
if (!instance) {
|
||||||
|
instance = std::make_unique<LegacyScriptEventManager>();
|
||||||
|
}
|
||||||
|
return *instance;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define REGISTER_EVENT_LISTEN(eventType, callFunction, eventParams, cancelFunction, otherFunction) \
|
#define REGISTER_EVENT_LISTEN(eventType, callFunction, eventParams, cancelFunction, otherFunction) \
|
||||||
eventManager->emplaceListener( \
|
eventManager.emplaceListener( \
|
||||||
eventId, \
|
eventId, \
|
||||||
eventBus.emplaceListener<eventType>([eventName, eventId, &eventBus, &eventManager](eventType& ev) -> void { \
|
eventBus.emplaceListener<eventType>([eventName, eventId, &eventBus, &eventManager](eventType& ev) -> void { \
|
||||||
if (!RemoteCall::hasFunc(eventName, eventId)) { \
|
if (!RemoteCall::hasFunc(eventName, eventId)) { \
|
||||||
eventManager->removeListener(eventId); \
|
eventManager.removeListener(eventId); \
|
||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
bool result = true; \
|
bool result = true; \
|
||||||
@@ -50,7 +53,7 @@ public:
|
|||||||
|
|
||||||
void Export_Event_API() {
|
void Export_Event_API() {
|
||||||
RemoteCall::exportAs("GMLIB_Event_API", "getNextScriptEventId", []() -> std::string {
|
RemoteCall::exportAs("GMLIB_Event_API", "getNextScriptEventId", []() -> std::string {
|
||||||
return LegacyScriptEventManager::getInstance()->getNextEventId();
|
return LegacyScriptEventManager::getInstance().getNextEventId();
|
||||||
});
|
});
|
||||||
auto& eventBus = ll::event::EventBus::getInstance();
|
auto& eventBus = ll::event::EventBus::getInstance();
|
||||||
auto& eventManager = LegacyScriptEventManager::getInstance();
|
auto& eventManager = LegacyScriptEventManager::getInstance();
|
||||||
|
|||||||
Reference in New Issue
Block a user