Skip to content

Commit 3a9db33

Browse files
committed
Fixes
1 parent ce4865b commit 3a9db33

File tree

3 files changed

+10
-38
lines changed

3 files changed

+10
-38
lines changed

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## 1.9.4
22
- Fix a bug with sprite frames not being able to be set
3+
- Fix some load delay
34

45
## 1.9.3
56
**NOTICE! Modifying nodes by ID will soon be depreciated. Once the next GD update comes out, I will be removing that feature in favor of modiifying nodes by their class name. This is the name BEFORE the one in quotes in DevTools. For example `ui/cvolton.betterinfo$ExtendedLevelInfo.json` will become `ui/ExtendedLevelInfo.json` and anything in the nodes folder will no longer work and should be placed in the UI folder.**

src/NodeModding.h

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ class NodeModding {
4545
void handleCurrentNode(CCNode* node) {
4646
std::string className = Utils::getNodeName(node);
4747
if (m_nodesToModify.contains(className)) {
48+
std::pair<std::function<void(CCNode*)>, bool> nodeToModify = m_nodesToModify[className];
4849
if (!node->getUserObject("node_modified"_spr)) {
49-
if (!m_nodesToModify[className].second) {
50-
m_nodesToModify[className].first(node);
50+
if (!nodeToModify.second) {
51+
nodeToModify.first(node);
5152
}
5253
node->setUserObject("node_modified"_spr, CCBool::create(true));
5354
}
@@ -56,19 +57,6 @@ class NodeModding {
5657
UIModding::get()->doUICheckForType(className, node);
5758
}
5859
}
59-
60-
void handleArray(CCArray* array) {
61-
auto scene = CCDirector::sharedDirector()->getRunningScene();
62-
63-
if (scene && UIModding::get()->doModify && !Callbacks::get()->m_ignoreUICheck) {
64-
65-
for (auto object : CCArrayExt<CCObject*>(array)) {
66-
if (auto node = typeinfo_cast<CCNode*>(object)) {
67-
handleCurrentNode(node);
68-
}
69-
}
70-
}
71-
}
7260
};
7361

7462
#include <Geode/modify/CCObject.hpp>
@@ -87,25 +75,8 @@ class $modify(CCObject) {
8775
node->setUserObject("node_modified"_spr, CCBool::create(true));
8876
}
8977
}
78+
NodeModding::get()->handleCurrentNode(node);
9079
}
9180
return CCObject::autorelease();
9281
}
9382
};
94-
95-
#include <Geode/modify/CCPoolManager.hpp>
96-
97-
class $modify(CCPoolManager) {
98-
void pop() {
99-
auto poolManager = reinterpret_cast<CCPoolManagerHack*>(this);
100-
101-
if (poolManager && poolManager->m_pCurReleasePool) {
102-
auto pool = reinterpret_cast<CCAutoreleasePoolHack*>(poolManager->m_pCurReleasePool);
103-
104-
if (pool->m_pManagedObjectArray) {
105-
NodeModding::get()->handleArray(pool->m_pManagedObjectArray);
106-
}
107-
}
108-
109-
return CCPoolManager::pop();
110-
}
111-
};

src/UIModding.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,7 @@ std::vector<std::string> generateValidSprites(std::string path, matjson::Value s
944944
void UIModding::setSprite(CCNode* node, matjson::Value attributes) {
945945
if (attributes.contains("sprite")) {
946946
matjson::Value sprite = attributes["sprite"];
947-
CCSprite* spr;
947+
CCSprite* spr = nullptr;
948948
std::string spriteName;
949949
if (sprite.isObject()) {
950950
matjson::Value randomObject = sprite["random"];
@@ -964,14 +964,14 @@ void UIModding::setSprite(CCNode* node, matjson::Value attributes) {
964964
}
965965
spriteName = randomSprites[id];
966966
}
967-
spr = Utils::getValidSprite(spriteName.c_str());
968-
if (!spr) spr = Utils::getValidSpriteFrame(spriteName.c_str());
967+
spr = Utils::getValidSpriteFrame(spriteName.c_str());
968+
if (!spr) spr = Utils::getValidSprite(spriteName.c_str());
969969
if (!spr) return;
970970
}
971971
if (sprite.isString()) {
972972
spriteName = sprite.asString().unwrapOr("");
973-
spr = Utils::getValidSprite(spriteName.c_str());
974-
if (!spr) spr = Utils::getValidSpriteFrame(spriteName.c_str());
973+
spr = Utils::getValidSpriteFrame(spriteName.c_str());
974+
if (!spr) spr = Utils::getValidSprite(spriteName.c_str());
975975
if (!spr) return;
976976
}
977977

0 commit comments

Comments
 (0)