55#include " ../../include/Fields.h"
66#include < Geode/modify/CCObject.hpp>
77#include < queue>
8- #include < Geode/modify/CCScriptEngineManager.hpp>
98
109using namespace geode ::prelude;
1110using namespace AlphaUtils ;
@@ -35,30 +34,6 @@ void DummyScriptEngineProtocol::removeScriptObjectByCCObject(CCObject* pObj) {
3534 releaseObjectData (pObj->m_nLuaID );
3635}
3736
38- class $modify(MyCCScriptEngineManager, CCScriptEngineManager) {
39-
40- static Hook* sharedEngineHook;
41-
42- static void onModify (auto & self) {
43- Result<Hook*> hookRes = self.getHook (" cocos2d::CCScriptEngineManager::sharedManager" );
44- if (hookRes.isOk ()) sharedEngineHook = hookRes.unwrap ();
45- std::atexit ([] {
46- if (sharedEngineHook) (void ) sharedEngineHook->disable ();
47- });
48- }
49-
50- static cocos2d::CCScriptEngineManager* sharedManager () {
51- auto ret = CCScriptEngineManager::sharedManager ();
52- if (!ret->m_pScriptEngine ) {
53- ret->setScriptEngine (new DummyScriptEngineProtocol ());
54- }
55-
56- return ret;
57- }
58- };
59-
60- Hook* MyCCScriptEngineManager::sharedEngineHook = nullptr ;
61-
6237class $modify(CCObject) {
6338 CCObject* autorelease () {
6439 FieldCCObject* obj = reinterpret_cast <FieldCCObject*>(this );
@@ -116,4 +91,8 @@ CCObject* FieldCCObject::getUserObject(std::string const& id) {
11691 return meta->m_userObjects .at (id);
11792 }
11893 return nullptr ;
94+ }
95+
96+ $execute {
97+ CCScriptEngineManager::sharedManager ()->setScriptEngine (new DummyScriptEngineProtocol ());
11998}
0 commit comments