Skip to content

Commit d50fb98

Browse files
committed
More fixes
1 parent f7b6cd5 commit d50fb98

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

include/Fields.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ namespace alpha::utils {
4747

4848
void* getField(size_t index);
4949
void* setField(size_t index, size_t size, std::function<void(void*)> destructor);
50-
static ObjectFieldContainer* from(ModifyCCObject<cocos2d::CCObject>* object, char const* forClass);
50+
static ObjectFieldContainer* from(cocos2d::CCObject* object, char const* forClass);
5151
};
5252

5353
size_t getFieldIndexForClass(char const* name);
@@ -61,7 +61,7 @@ namespace alpha::utils {
6161

6262
virtual ~ObjectMetadata();
6363

64-
static ObjectMetadata* set(ModifyCCObject<cocos2d::CCObject>* target);
64+
static ObjectMetadata* set(cocos2d::CCObject* target);
6565

6666
ObjectFieldContainer* getFieldContainer(char const* forClass);
6767
};
@@ -84,7 +84,7 @@ namespace alpha::utils {
8484
}
8585

8686
auto self() {
87-
auto object = reinterpret_cast<ModifyCCObject<cocos2d::CCObject>*>(reinterpret_cast<std::byte*>(this) - sizeof(Base));
87+
auto object = reinterpret_cast<cocos2d::CCObject*>(reinterpret_cast<std::byte*>(this) - sizeof(Base));
8888
auto container = ObjectFieldContainer::from(object, typeid(Base).name());
8989

9090
static size_t index = geode::modifier::getFieldIndexForClass(typeid(Base).name());

include/ModifyCCObject.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace alpha::utils {
1717
struct ModifyCCObject : public Base {
1818

1919
void setUserObject(geode::ZStringView id, cocos2d::CCObject* value) {
20-
auto meta = ObjectMetadata::set(this);
20+
auto meta = ObjectMetadata::set(reinterpret_cast<ModifyCCObject<cocos2d::CCObject>*>(this));
2121
if (value) {
2222
meta->m_userObjects[id] = value;
2323
}
@@ -27,7 +27,7 @@ namespace alpha::utils {
2727
}
2828

2929
cocos2d::CCObject* getUserObject(geode::ZStringView id) {
30-
auto meta = ObjectMetadata::set(this);
30+
auto meta = ObjectMetadata::set(reinterpret_cast<ModifyCCObject<cocos2d::CCObject>*>(this));
3131
if (meta->m_userObjects.count(id)) {
3232
return meta->m_userObjects.at(id);
3333
}

src/Fields.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ void* ObjectFieldContainer::setField(size_t index, size_t size, std::function<vo
2828
return m_containedFields.at(index);
2929
}
3030

31-
ObjectFieldContainer* ObjectFieldContainer::from(ModifyCCObject<CCObject>* object, char const* forClass) {
32-
return object->getFieldContainer(forClass);
31+
ObjectFieldContainer* ObjectFieldContainer::from(cocos2d::CCObject* object, char const* forClass) {
32+
return reinterpret_cast<ModifyCCObject<cocos2d::CCObject>*>(object)->getFieldContainer(forClass);
3333
}
3434

3535
ObjectMetadata::ObjectMetadata() {}
@@ -40,18 +40,20 @@ ObjectMetadata::~ObjectMetadata() {
4040
}
4141
}
4242

43-
ObjectMetadata* ObjectMetadata::set(ModifyCCObject<CCObject>* target) {
43+
ObjectMetadata* ObjectMetadata::set(cocos2d::CCObject* target) {
4444
if (!target) return nullptr;
4545

46-
auto old = target->getUserObject();
46+
auto obj = reinterpret_cast<ModifyCCObject<cocos2d::CCObject>*>(target);
47+
48+
auto old = obj->getUserObject();
4749
if (old && old->getTag() == METADATA_TAG) {
4850
return static_cast<ObjectMetadata*>(old);
4951
}
5052
auto meta = new ObjectMetadata();
5153
meta->autorelease();
5254
meta->setTag(METADATA_TAG);
5355

54-
target->setUserObject(meta);
56+
obj->setUserObject(meta);
5557
meta->retain();
5658

5759
if (old) {

0 commit comments

Comments
 (0)