From 4684cb529548b718bd5ab9c5f6d0034e26fe1aad Mon Sep 17 00:00:00 2001 From: SpaghettDev <37266659+SpaghettDev@users.noreply.github.com> Date: Thu, 8 Aug 2024 07:13:42 -0400 Subject: [PATCH 01/16] Particles stuff (#692) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * particle members in gjbgl * idk * i still dont know * yea * did you know? i still dont know * jajajajaja * what is even going on * hmmmmm * dont even ask * yuh * yuh 2 * sorry 👁OS * wha tthe indent!!? * clean u p * Update GeometryDash.bro --------- Co-authored-by: alk <45172705+altalk23@users.noreply.github.com> --- bindings/2.206/GeometryDash.bro | 11 +++++++++-- test/members/Android32.cpp | 5 +++++ test/members/Android64.cpp | 5 +++++ test/members/MacOSArm.cpp | 6 ++++++ test/members/MacOSIntel.cpp | 5 +++++ test/members/Windows.cpp | 5 +++++ 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 133d86a57..ca442fbbb 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -6008,7 +6008,7 @@ class GameObject : CCSpritePlus { TodoReturn commonInteractiveSetup(); void commonSetup() = win 0x183d30, imac 0x5aa930, m1 0x4ed04c; void copyGroups(GameObject*) = win 0x192980, imac 0x5c70a0, m1 0x4f6300; - TodoReturn createAndAddParticle(int, char const*, int, cocos2d::tCCPositionType); + cocos2d::CCParticleSystemQuad* createAndAddParticle(int p0, char const* plistName, int p2, cocos2d::tCCPositionType positionType) = win 0x18eb60, imac 0x5bdd50, m1 0x4f1e1c; TodoReturn createColorGroupContainer(int); TodoReturn createGlow(gd::string); void createGroupContainer(int size) = win inline { @@ -7824,7 +7824,14 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { int m_topSectionIndex; PAD = win 0x2, android32 0x2, android64 0x2, mac 0x2, ios 0x2; bool m_isPlatformer; - PAD = win 0xc5, android32 0x61, android64 0xb5, mac 0x99, ios 0x99; + PAD = win 0x20, android32 0x14, android64 0x20, mac 0x20, ios 0x20; + cocos2d::CCDictionary* m_portalParticlesDict; + cocos2d::CCDictionary* m_customParticles; + cocos2d::CCArray* m_unclaimedParticles; + PAD = win 0x3c, android32 0x1c, android64 0x34, mac 0x24, ios 0x24; + cocos2d::CCDictionary* m_customParticlesDictArray; + cocos2d::CCArray* m_temporaryParticles; + PAD = win 0x3c, android32 0x1c, android64 0x34, mac 0x24, ios 0x24; cocos2d::CCDictionary* m_unk2a50; void* m_unk2a54; ShaderLayer* m_shaderLayer; diff --git a/test/members/Android32.cpp b/test/members/Android32.cpp index 7c39a7372..f6396ab8f 100644 --- a/test/members/Android32.cpp +++ b/test/members/Android32.cpp @@ -54,6 +54,11 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_player2, 0x898); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groupDict, 0x95c); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unknownE38, 0x98c); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_massiveFloatArray, 0xa48); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_portalParticlesDict, 0x2a04); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticles, 0x2a08); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unclaimedParticles, 0x2a0c); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticlesDictArray, 0x2a2c); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x2a30); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_attempts, 0x29d4); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk2a50, 0x2a50); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_startPosObject, 0x2a60); diff --git a/test/members/Android64.cpp b/test/members/Android64.cpp index 011be4532..c85f48496 100644 --- a/test/members/Android64.cpp +++ b/test/members/Android64.cpp @@ -30,6 +30,11 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_objectLayer, 0xff0); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groundLayer, 0x1018); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groundLayer2, 0x1020); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_massiveFloatArray, 0x10e4); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_portalParticlesDict, 0x30f0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticles, 0x30f8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unclaimedParticles, 0x3100); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticlesDictArray, 0x3140); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x3148); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_attempts, 0x30b4); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_shaderLayer, 0x3198); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_startPosObject, 0x31a8); diff --git a/test/members/MacOSArm.cpp b/test/members/MacOSArm.cpp index 4aeeb510c..042b87e1c 100644 --- a/test/members/MacOSArm.cpp +++ b/test/members/MacOSArm.cpp @@ -20,6 +20,12 @@ GEODE_SIZE_CHECK(GJBaseGameLayer, 0x34c0); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groupDict, 0xde0); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_massiveFloatArray, 0xf6c); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_attempts, 0x2f14); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPlatformer, 0x2f2e); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_portalParticlesDict, 0x2f50); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticles, 0x2f58); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unclaimedParticles, 0x2f60); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticlesDictArray, 0x2f90); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x2f98); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_shaderLayer, 0x2fd8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_startPosObject, 0x2fe8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x3050); diff --git a/test/members/MacOSIntel.cpp b/test/members/MacOSIntel.cpp index ca2713f93..9e0fa4cff 100644 --- a/test/members/MacOSIntel.cpp +++ b/test/members/MacOSIntel.cpp @@ -114,6 +114,11 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groupDict, 0xde0); // GEODE_MEMBER_CHECK(GJBaseGameLayer, m_linkedGroupDict, 0xe80); // GEODE_MEMBER_CHECK(GJBaseGameLayer, m_objectLayer, 0xea8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_massiveFloatArray, 0xf6c); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_portalParticlesDict, 0x2f50); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticles, 0x2f58); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unclaimedParticles, 0x2f60); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticlesDictArray, 0x2f90); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x2f98); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_shaderLayer, 0x2fd8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_startPosObject, 0x2fe8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x3050); diff --git a/test/members/Windows.cpp b/test/members/Windows.cpp index 9051cfd2d..b6893536b 100644 --- a/test/members/Windows.cpp +++ b/test/members/Windows.cpp @@ -17,6 +17,11 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x31e8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_endPortal, 0x3220); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_uiLayer, 0x3468); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_queuedButtons, 0x32f8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_portalParticlesDict, 0x30b8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticles, 0x30c0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unclaimedParticles, 0x30c8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_customParticlesDictArray, 0x3110); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x3118); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_timePlayed, 0x3488); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x34b8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sectionSizes, 0x3560); From f80c2d2a19436fd68bfc2b8ebcd8b608589d3b6e Mon Sep 17 00:00:00 2001 From: Pololak <108807351+Pololak@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:16:28 +0300 Subject: [PATCH 02/16] some addresses for Windows GD 1.920 (#686) * Added adresses for Windows GD 1.920 cuz why not * Rename GeometryDash.bro (with adresses) to GeometryDash.bro --------- Co-authored-by: alk <45172705+altalk23@users.noreply.github.com> From ed2b7095cc92ab9946624b61ddc7ae9a0d66cb7e Mon Sep 17 00:00:00 2001 From: sleepyut <176715524+sleepyut@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:51:25 +0300 Subject: [PATCH 03/16] Game Object members Co-Authored-By: alk <45172705+altalk23@users.noreply.github.com> --- bindings/2.206/GeometryDash.bro | 583 ++++++++++++++++++-------------- test/members/Windows.cpp | 4 +- 2 files changed, 329 insertions(+), 258 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index ca442fbbb..88a2878eb 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -1947,7 +1947,7 @@ class CheckpointGameObject : EffectGameObject { virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x18a010, imac 0x1d0730; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x18971c, imac 0x1cfc50; virtual void triggerActivated(float) = m1 0x188a34, imac 0x1cee90, win 0x48d650; - virtual TodoReturn restoreObject() = m1 0x18a194, imac 0x1d08e0; + virtual void restoreObject() = m1 0x18a194, imac 0x1d08e0; virtual void updateSyncedAnimation(float, int) = m1 0x189380, imac 0x1cf840; } @@ -3992,12 +3992,12 @@ class EffectGameObject : EnhancedGameObject { virtual void setRScaleX(float) = m1 0x172504, imac 0x1b4370; virtual void setRScaleY(float) = m1 0x172514, imac 0x1b4390; virtual void triggerActivated(float) = m1 0x173be8, imac 0x1b6410; - virtual TodoReturn restoreObject() = m1 0x173998, imac 0x1b61d0; - virtual TodoReturn spawnXPosition() = m1 0x173ba8, imac 0x1b63d0; - virtual TodoReturn canReverse() = m1 0x173df0, imac 0x1b6570; + virtual void restoreObject() = m1 0x173998, imac 0x1b61d0; + virtual float spawnXPosition() = m1 0x173ba8, imac 0x1b63d0; + virtual bool canReverse() = m1 0x173df0, imac 0x1b6570; virtual bool isSpecialSpawnObject() = m1 0x173e7c, imac 0x1b65e0; - virtual TodoReturn canBeOrdered() = m1 0x173e84, imac 0x1b65f0; - virtual TodoReturn getObjectLabel() = m1 0x1a1550, imac 0x1ed550; + virtual bool canBeOrdered() = m1 0x173e84, imac 0x1b65f0; + virtual cocos2d::CCLabelBMFont* getObjectLabel() = m1 0x1a1550, imac 0x1ed550; virtual void setObjectLabel(cocos2d::CCLabelBMFont*) = m1 0x1a1558, imac 0x1ed560; virtual TodoReturn stateSensitiveOff(GJBaseGameLayer*) = m1 0x173908, imac 0x1b6130; @@ -4329,18 +4329,18 @@ class EnhancedGameObject : GameObject { virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x501ed8, imac 0x5d4d40; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x50345c, imac 0x5d8140; virtual void triggerActivated(float) = m1 0x501d50, imac 0x5d4bd0; - virtual TodoReturn restoreObject() = m1 0x501ca0, imac 0x5d4b00; - virtual TodoReturn animationTriggered() = m1 0x501e50, imac 0x5d4ca0; - virtual TodoReturn activatedByPlayer(PlayerObject*) = m1 0x501d5c, imac 0x5d4be0; - virtual TodoReturn hasBeenActivatedByPlayer(PlayerObject*) = m1 0x501dbc, imac 0x5d4c30; + virtual void restoreObject() = m1 0x501ca0, imac 0x5d4b00; + virtual void animationTriggered() = m1 0x501e50, imac 0x5d4ca0; + virtual void activatedByPlayer(PlayerObject*) = m1 0x501d5c, imac 0x5d4be0; + virtual bool hasBeenActivatedByPlayer(PlayerObject*) = m1 0x501dbc, imac 0x5d4c30; TodoReturn resumeAudio(); TodoReturn resumeAudioDelayed(); - virtual TodoReturn hasBeenActivated() = m1 0x501e30, imac 0x5d4c80; - virtual TodoReturn saveActiveColors() = m1 0x501e60, imac 0x5d4cc0; - virtual TodoReturn canAllowMultiActivate() = m1 0x501b2c, imac 0x5d4760; - virtual TodoReturn getHasSyncedAnimation() = m1 0x1a1528, imac 0x1ed500; - virtual TodoReturn getHasRotateAction() = m1 0x1a1530, imac 0x1ed510; - virtual TodoReturn canMultiActivate(bool) = m1 0x501d2c, imac 0x5d4bb0; + virtual bool hasBeenActivated() = m1 0x501e30, imac 0x5d4c80; + virtual void saveActiveColors() = m1 0x501e60, imac 0x5d4cc0; + virtual bool canAllowMultiActivate() = m1 0x501b2c, imac 0x5d4760; + virtual bool getHasSyncedAnimation() = m1 0x1a1528, imac 0x1ed500; + virtual bool getHasRotateAction() = m1 0x1a1530, imac 0x1ed510; + virtual bool canMultiActivate(bool) = m1 0x501d2c, imac 0x5d4bb0; virtual TodoReturn powerOnObject(int) = m1 0x501cd8, imac 0x5d4b40; virtual TodoReturn powerOffObject() = m1 0x501cec, imac 0x5d4b60; virtual TodoReturn stateSensitiveOff(GJBaseGameLayer*) = m1 0x173994, imac 0x1b61c0; @@ -5976,41 +5976,41 @@ class GameObject : CCSpritePlus { GameObject() = win 0x133690; void addColorSprite(gd::string) = win 0x1847f0, imac 0x5ad230, m1 0x4edac4; - TodoReturn addColorSpriteToParent(bool); - TodoReturn addColorSpriteToSelf(); - TodoReturn addCustomBlackChild(gd::string, float, bool); - TodoReturn addCustomChild(gd::string, cocos2d::CCPoint, int); - TodoReturn addCustomColorChild(gd::string); - TodoReturn addEmptyGlow(); - TodoReturn addGlow(gd::string); - TodoReturn addInternalChild(cocos2d::CCSprite*, gd::string, cocos2d::CCPoint, int); - TodoReturn addInternalCustomColorChild(gd::string, cocos2d::CCPoint, int); - TodoReturn addInternalGlowChild(gd::string, cocos2d::CCPoint); - TodoReturn addNewSlope01(bool); - TodoReturn addNewSlope01Glow(bool); - TodoReturn addNewSlope02(bool); - TodoReturn addNewSlope02Glow(bool); - TodoReturn addRotation(float, float); - TodoReturn addRotation(float); - TodoReturn addToColorGroup(int); + void addColorSpriteToParent(bool); + void addColorSpriteToSelf(); + cocos2d::CCSprite* addCustomBlackChild(gd::string, float, bool); + cocos2d::CCSprite* addCustomChild(gd::string, cocos2d::CCPoint, int); + cocos2d::CCSprite* addCustomColorChild(gd::string); + void addEmptyGlow(); + void addGlow(gd::string); + cocos2d::CCSprite* addInternalChild(cocos2d::CCSprite*, gd::string, cocos2d::CCPoint, int); + cocos2d::CCSprite* addInternalCustomColorChild(gd::string, cocos2d::CCPoint, int); + cocos2d::CCSprite* addInternalGlowChild(gd::string, cocos2d::CCPoint); + void addNewSlope01(bool); + void addNewSlope01Glow(bool); + void addNewSlope02(bool); + void addNewSlope02Glow(bool); + void addRotation(float, float); + void addRotation(float); + void addToColorGroup(int); void addToCustomScaleX(float) = imac 0x5c4cb0, m1 0x4f4054; void addToCustomScaleY(float) = imac 0x5c4cf0, m1 0x4f407c; - TodoReturn addToOpacityGroup(int); - TodoReturn addToTempOffset(double, double); - TodoReturn assignUniqueID(); - TodoReturn belongsToGroup(int); - TodoReturn calculateOrientedBox(); - TodoReturn canChangeCustomColor(); - TodoReturn canChangeMainColor(); - TodoReturn canChangeSecondaryColor(); - TodoReturn canRotateFree(); - TodoReturn colorForMode(int, bool); - TodoReturn commonInteractiveSetup(); + void addToOpacityGroup(int); + void addToTempOffset(double, double); + void assignUniqueID(); + bool belongsToGroup(int); + void calculateOrientedBox(); + bool canChangeCustomColor(); + bool canChangeMainColor(); + bool canChangeSecondaryColor(); + bool canRotateFree(); + cocos2d::ccColor3B colorForMode(int, bool); // could be a ptr + void commonInteractiveSetup(); void commonSetup() = win 0x183d30, imac 0x5aa930, m1 0x4ed04c; void copyGroups(GameObject*) = win 0x192980, imac 0x5c70a0, m1 0x4f6300; cocos2d::CCParticleSystemQuad* createAndAddParticle(int p0, char const* plistName, int p2, cocos2d::tCCPositionType positionType) = win 0x18eb60, imac 0x5bdd50, m1 0x4f1e1c; - TodoReturn createColorGroupContainer(int); - TodoReturn createGlow(gd::string); + void createColorGroupContainer(int); + void createGlow(gd::string); void createGroupContainer(int size) = win inline { if (!m_groups) { auto groups = new short[size]; @@ -6018,65 +6018,65 @@ class GameObject : CCSpritePlus { m_groups = reinterpret_cast(groups); } } - TodoReturn createOpacityGroupContainer(int); + void createOpacityGroupContainer(int); void createSpriteColor(int) = m1 0x4ed1f8, imac 0x5aaaf0; static GameObject* createWithFrame(char const* name) = win 0x183c60, imac 0x5aa890, m1 0x4ecf80; static GameObject* createWithKey(int) = win 0x181810, imac 0x5a5d30, m1 0x4ecab8; void deselectObject(); // = win 0x141b70; actually updateObjectEditorColor, source: LevelEditorLayer::updateVisibility inline void destroyObject() { - m_unk34a = true; - m_unk306 = true; + m_isDisabled = true; + m_isDisabled2 = true; setOpacity(0); } void determineSlopeDirection() = win 0x192300, imac 0x5c6ad0, m1 0x4f5cf0; - TodoReturn didScaleXChange(); - TodoReturn didScaleYChange(); - TodoReturn dirtifyObjectPos(); - TodoReturn dirtifyObjectRect(); - TodoReturn disableObject(); - TodoReturn dontCountTowardsLimit(); - TodoReturn duplicateAttributes(GameObject*); - TodoReturn duplicateColorMode(GameObject*); + bool didScaleXChange(); + bool didScaleYChange(); + void dirtifyObjectPos(); + void dirtifyObjectRect(); + void disableObject(); + bool dontCountTowardsLimit(); + void duplicateAttributes(GameObject*); + void duplicateColorMode(GameObject*); void duplicateValues(GameObject*) = win 0x197e00; - TodoReturn editorColorForCustomMode(int); - TodoReturn editorColorForMode(int) = win 0x197060; - TodoReturn fastRotateObject(float); - TodoReturn getActiveColorForMode(int, bool); - TodoReturn getBallFrame(int); //inlined on windows - TodoReturn getBoundingRect(); - TodoReturn getBoxOffset(); - TodoReturn getColorFrame(gd::string); - TodoReturn getColorIndex(); + cocos2d::ccColor3B editorColorForCustomMode(int); + cocos2d::ccColor3B editorColorForMode(int) = win 0x197060; + void fastRotateObject(float); + cocos2d::ccColor3B getActiveColorForMode(int, bool); + char* getBallFrame(int); //inlined on windows + cocos2d::CCRect getBoundingRect(); + cocos2d::CCPoint getBoxOffset(); + gd::string getColorFrame(gd::string); + int getColorIndex(); gd::string getColorKey(bool, bool); - TodoReturn getCustomZLayer(); - TodoReturn getGlowFrame(gd::string); - TodoReturn getGroupDisabled() = m1 0x4f660c, imac 0x5c73e0; + ZLayer getCustomZLayer(); + gd::string getGlowFrame(gd::string); + bool getGroupDisabled() = m1 0x4f660c, imac 0x5c73e0; int getGroupID(int) = imac 0x5c7080, m1 0x4f62e0; - TodoReturn getGroupString(); + gd::string getGroupString(); cocos2d::CCPoint getLastPosition() = imac 0x5d3a00, m1 0x501170; - TodoReturn getMainColor(); - TodoReturn getMainColorMode(); - TodoReturn getObjectDirection(); - TodoReturn getObjectRadius(); - TodoReturn getObjectRectPointer(); - TodoReturn getObjectZLayer(); - TodoReturn getObjectZOrder(); - TodoReturn getOuterObjectRect(); - TodoReturn getParentMode(); - TodoReturn getRelativeSpriteColor(int); - TodoReturn getScalePosDelta(); - TodoReturn getSecondaryColor(); - TodoReturn getSecondaryColorMode(); - TodoReturn getSlopeAngle(); - TodoReturn getUnmodifiedPosition(); - TodoReturn groupColor(cocos2d::ccColor3B const&, bool); + GJSpriteColor* getMainColor(); + int getMainColorMode(); + int getObjectDirection(); // probably a enum + float getObjectRadius(); + cocos2d::CCRect* getObjectRectPointer(); + ZLayer getObjectZLayer(); + int getObjectZOrder(); + cocos2d::CCRect getOuterObjectRect(); + int getParentMode(); + GJSpriteColor* getRelativeSpriteColor(int); + cocos2d::CCPoint getScalePosDelta(); + GJSpriteColor* getSecondaryColor(); + int getSecondaryColorMode(); + float getSlopeAngle(); + cocos2d::CCPoint getUnmodifiedPosition(); + cocos2d::ccColor3B groupColor(cocos2d::ccColor3B const&, bool); float groupOpacityMod() = imac 0x5c7ab0, win 0x192cf0, m1 0x4f6c58; - TodoReturn groupWasDisabled(); - TodoReturn groupWasEnabled(); - TodoReturn hasSecondaryColor(); + void groupWasDisabled(); + void groupWasEnabled(); + bool hasSecondaryColor(); bool ignoreEditorDuration(); - TodoReturn ignoreEnter(); - TodoReturn ignoreFade(); + bool ignoreEnter(); + bool ignoreFade(); bool init(char const*) = imac 0x5aa900, m1 0x4ed010; bool isBasicEnterEffect(int); bool isBasicTrigger(); @@ -6095,27 +6095,27 @@ class GameObject : CCSpritePlus { void loadGroupsFromString(gd::string); TodoReturn makeInvisible() = imac 0x5c59f0, m1 0x4f4c30; static GameObject* objectFromVector(gd::vector&, gd::vector&, GJBaseGameLayer*, bool) = win 0x193220, m1 0x4f775c, imac 0x5c8800; - TodoReturn opacityModForMode(int, bool); - TodoReturn parentForZLayer(int, bool, int); - TodoReturn perspectiveColorFrame(char const*, int); - TodoReturn perspectiveFrame(char const*, int); + float opacityModForMode(int, bool); + cocos2d::CCSpriteBatchNode* parentForZLayer(int, bool, int); + gd::string perspectiveColorFrame(char const*, int); + gd::string perspectiveFrame(char const*, int); void playDestroyObjectAnim(GJBaseGameLayer*) = win 0x1a04e0; void playPickupAnimation(cocos2d::CCSprite*, float, float, float, float, float, float, float, float, bool, float, float) = win 0x1a0000; void playPickupAnimation(cocos2d::CCSprite*, float, float, float, float) = win 0x19ff10; void playShineEffect() = win 0x18f3f0, imac 0x5c5a90, m1 0x4f4cac; - TodoReturn quickUpdatePosition(); - TodoReturn quickUpdatePosition2(); - TodoReturn removeColorSprite(); - TodoReturn removeGlow(); - TodoReturn reorderColorSprite(); - TodoReturn resetColorGroups(); - TodoReturn resetGroupDisabled(); - TodoReturn resetGroups(); - TodoReturn resetMainColorMode(); - TodoReturn resetMID(); - TodoReturn resetMoveOffset(); - TodoReturn resetRScaleForced(); - TodoReturn resetSecondaryColorMode(); + void quickUpdatePosition(); + void quickUpdatePosition2(); + void removeColorSprite(); + void removeGlow(); + void reorderColorSprite(); + void resetColorGroups(); + void resetGroupDisabled(); + void resetGroups(); + void resetMainColorMode(); + void resetMID(); + void resetMoveOffset(); + void resetRScaleForced(); + void resetSecondaryColorMode(); void setAreaOpacity(float, float, int); void setCustomZLayer(int); void setDefaultMainColorMode(int); @@ -6124,42 +6124,42 @@ class GameObject : CCSpritePlus { void setLastPosition(cocos2d::CCPoint const&) = imac 0x5d3a10, m1 0x501178; void setMainColorMode(int); void setSecondaryColorMode(int); - TodoReturn setupColorSprite(int, bool); - TodoReturn setupPixelScale(); - TodoReturn setupSpriteSize(); + void setupColorSprite(int, bool); + void setupPixelScale(); + void setupSpriteSize(); bool shouldBlendColor(GJSpriteColor*, bool); - TodoReturn shouldLockX(); - TodoReturn shouldNotHideAnimFreeze(); - TodoReturn shouldShowPickupEffects(); - TodoReturn slopeFloorTop(); - TodoReturn slopeWallLeft(); - TodoReturn slopeYPos(cocos2d::CCRect); + bool shouldLockX(); + bool shouldNotHideAnimFreeze(); + bool shouldShowPickupEffects(); + bool slopeFloorTop(); + bool slopeWallLeft(); + double slopeYPos(cocos2d::CCRect); double slopeYPos(float) = win 0x1973f0; - TodoReturn slopeYPos(GameObject*); - TodoReturn spawnDefaultPickupParticle(GJBaseGameLayer*); - TodoReturn updateBlendMode(); - TodoReturn updateCustomColorType(short); + double slopeYPos(GameObject*); + void spawnDefaultPickupParticle(GJBaseGameLayer*); + void updateBlendMode(); + void updateCustomColorType(short); void updateCustomScaleX(float) = win 0x18e690, imac 0x5b24b0, m1 0x4ee91c; void updateCustomScaleY(float) = win 0x18e720, imac 0x5b2530, m1 0x4ee97c; - TodoReturn updateHSVState(); + void updateHSVState(); void updateIsOriented() = win 0x197770, imac 0x5d2660, m1 0x4fff78; - TodoReturn updateMainColorOnly(); - TodoReturn updateMainOpacity(); + void updateMainColorOnly(); + void updateMainOpacity(); void updateObjectEditorColor() = win 0x197330; - TodoReturn updateSecondaryColorOnly(); - TodoReturn updateSecondaryOpacity(); - TodoReturn updateStartPos(); - TodoReturn updateUnmodifiedPositions(); - TodoReturn usesFreezeAnimation(); - TodoReturn usesSpecialAnimation(); + void updateSecondaryColorOnly(); + void updateSecondaryOpacity(); + void updateStartPos(); + void updateUnmodifiedPositions(); + void usesFreezeAnimation(); + void usesSpecialAnimation(); // MSVC changed virtual table ordering somewhere between what Rob uses // and now, and now virtual functions that have non virtual overloads // are added to the first of the vtable regardless of the order // defined in the header. This is why we simply can not use these // two functions since defining them would break the vtable layout. - // TodoReturn updateMainColor(); - // TodoReturn updateSecondaryColor(); + // void updateMainColor(); + // void updateSecondaryColor(); virtual void update(float) = m1 0x4ef094, imac 0x5b2ca0; virtual void setScaleX(float) = win 0x18e290, m1 0x4f3d18, imac 0x5c4970, ios 0x26b0a4; @@ -6178,77 +6178,75 @@ class GameObject : CCSpritePlus { virtual void firstSetup() = m1 0x173c88, imac 0x1b64a0; virtual void customSetup() = m1 0x4ef098, win 0x186e60, imac 0x5b2cb0; virtual void setupCustomSprites(gd::string) = m1 0x3bef18, win 0x1a4f40, imac 0x44d950; - virtual TodoReturn addMainSpriteToParent(bool) = m1 0x4f5a14, win 0x191d90, imac 0x5c67e0; + virtual void addMainSpriteToParent(bool) = m1 0x4f5a14, win 0x191d90, imac 0x5c67e0; virtual void resetObject() = m1 0x4ee694, win 0x186710, imac 0x5b2160; virtual void triggerObject(GJBaseGameLayer*, int, gd::vector const*) = m1 0x173904, imac 0x1b6120; virtual void activateObject() = m1 0x4eeb4c, win 0x186b20, imac 0x5b2780; virtual void deactivateObject(bool) = m1 0x4eeed0, win 0x186bd0, imac 0x5b2af0; - virtual TodoReturn transferObjectRect(cocos2d::CCRect&) = m1 0x4f3114, win 0x18d690, imac 0x5c3ce0; + virtual void transferObjectRect(cocos2d::CCRect&) = m1 0x4f3114, win 0x18d690, imac 0x5c3ce0; virtual cocos2d::CCRect const& getObjectRect() = win 0x18d6e0, m1 0x4f31ec, imac 0x5c3d50; virtual cocos2d::CCRect getObjectRect(float, float) = win 0x18d700, m1 0x4f31a0, imac 0x5c3d80; - virtual TodoReturn getObjectRect2(float, float) = m1 0x4f3384, win 0x18d890, imac 0x5c3fc0; - virtual TodoReturn getObjectTextureRect() = m1 0x4f3448, win 0x18d930, imac 0x5c4090; + virtual cocos2d::CCRect getObjectRect2(float, float) = m1 0x4f3384, win 0x18d890, imac 0x5c3fc0; + virtual cocos2d::CCRect getObjectTextureRect() = m1 0x4f3448, win 0x18d930, imac 0x5c4090; virtual cocos2d::CCPoint getRealPosition() = m1 0x4f36a0, win 0x18db60, imac 0x5c4330; virtual void setStartPos(cocos2d::CCPoint) = m1 0x4ee578, win 0x186590, imac 0x5b2050; virtual void updateStartValues() = m1 0x4ee9dc, win 0x186960, imac 0x5b25b0; virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x326d1c, imac 0x39fd10; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x4f96a0, win 0x194d10, imac 0x5ca7c0; - virtual TodoReturn claimParticle() = m1 0x4f45f0, win 0x18edb0, imac 0x5c5310; - virtual TodoReturn unclaimParticle() = m1 0x4f4b90, win 0x18f2e0, imac 0x5c5910; - virtual TodoReturn particleWasActivated() = m1 0x4f4bf8, imac 0x5c5980; + virtual void claimParticle() = m1 0x4f45f0, win 0x18edb0, imac 0x5c5310; + virtual void unclaimParticle() = m1 0x4f4b90, win 0x18f2e0, imac 0x5c5910; + virtual void particleWasActivated() = m1 0x4f4bf8, imac 0x5c5980; virtual bool isFlipX() = m1 0x4f3c60, win 0x18e1e0, imac 0x5c48b0; virtual bool isFlipY() = m1 0x4f3c68, win 0x18e1f0, imac 0x5c48c0; virtual void setRScaleX(float) = m1 0x4f3ef8, win 0x18e550, imac 0x5c4b50; virtual void setRScaleY(float) = m1 0x4f3f2c, win 0x18e590, imac 0x5c4b90; virtual void setRScale(float) = m1 0x4f3f60, win 0x18e5d0, imac 0x5c4bd0; - virtual TodoReturn getRScaleX() = m1 0x4f3fe4, win 0x18e610, imac 0x5c4c50; - virtual TodoReturn getRScaleY() = m1 0x4f401c, win 0x18e650, imac 0x5c4c80; + virtual float getRScaleX() = m1 0x4f3fe4, win 0x18e610, imac 0x5c4c50; + virtual float getRScaleY() = m1 0x4f401c, win 0x18e650, imac 0x5c4c80; virtual void setRRotation(float) = m1 0x4f3948, win 0x18ddb0, imac 0x5c45e0; virtual void triggerActivated(float) = m1 0x1a135c, imac 0x1ed230; virtual void setObjectColor(cocos2d::ccColor3B const&) = m1 0x4fef58, win 0x196ac0, imac 0x5d16e0; virtual void setGlowColor(cocos2d::ccColor3B const&) = m1 0x4ff218, win 0x196db0, imac 0x5d1970; - virtual TodoReturn restoreObject() = m1 0x4f4c18, win 0x18f3d0, imac 0x5c59c0; - virtual TodoReturn animationTriggered() = m1 0x1a1360, imac 0x1ed240; + virtual void restoreObject() = m1 0x4f4c18, win 0x18f3d0, imac 0x5c59c0; + virtual void animationTriggered() = m1 0x1a1360, imac 0x1ed240; virtual void selectObject(cocos2d::ccColor3B) = m1 0x4ff2fc, win 0x196e80, imac 0x5d1a30; - virtual TodoReturn activatedByPlayer(PlayerObject*) = m1 0x1a1364, imac 0x1ed250; - virtual TodoReturn hasBeenActivatedByPlayer(PlayerObject*) = m1 0x1a1368, imac 0x1ed260; - virtual TodoReturn hasBeenActivated() = m1 0x1a1370, imac 0x1ed270; + virtual void activatedByPlayer(PlayerObject*) = m1 0x1a1364, imac 0x1ed250; + virtual bool hasBeenActivatedByPlayer(PlayerObject*) = m1 0x1a1368, imac 0x1ed260; + virtual bool hasBeenActivated() = m1 0x1a1370, imac 0x1ed270; virtual OBB2D* getOrientedBox() = m1 0x4ffd60, win 0x197550, imac 0x5d2440; virtual void updateOrientedBox() = m1 0x4ffdf4, win 0x1975b0, imac 0x5d24c0; - virtual TodoReturn getObjectRotation() = m1 0x5058b0, win 0x197530, imac 0x5dac70; - virtual TodoReturn updateMainColor(cocos2d::ccColor3B const&) = m1 0x500864, win 0x197fb0, imac 0x5d30c0; - virtual TodoReturn updateSecondaryColor(cocos2d::ccColor3B const&) = m1 0x500d6c, win 0x197fc0, imac 0x5d35d0; + virtual float getObjectRotation() = m1 0x5058b0, win 0x197530, imac 0x5dac70; + virtual void updateMainColor(cocos2d::ccColor3B const&) = m1 0x500864, win 0x197fb0, imac 0x5d30c0; + virtual void updateSecondaryColor(cocos2d::ccColor3B const&) = m1 0x500d6c, win 0x197fc0, imac 0x5d35d0; virtual void addToGroup(int) = m1 0x4f6170, win 0x1927d0, imac 0x5c6f40; virtual void removeFromGroup(int) = m1 0x4f624c, win 0x1928f0, imac 0x5c6ff0; - virtual TodoReturn saveActiveColors() = m1 0x4feda0, win 0x196910, imac 0x5d1520; - virtual TodoReturn spawnXPosition() = m1 0x1a1378, win 0x133ad0, imac 0x1ed280; - virtual TodoReturn canAllowMultiActivate() = m1 0x1a1398, imac 0x1ed2a0; - virtual TodoReturn blendModeChanged() = m1 0x1a13a0, imac 0x1ed2b0; - virtual TodoReturn updateParticleColor(cocos2d::ccColor3B const&) = m1 0x4ff150, win 0x196ca0, imac 0x5d18b0; - virtual TodoReturn updateParticleOpacity(unsigned char) = m1 0x4f4420, win 0x18eae0, imac 0x5c5130; - virtual TodoReturn updateMainParticleOpacity(unsigned char) = m1 0x1a13a4, imac 0x1ed2c0; - virtual TodoReturn updateSecondaryParticleOpacity(unsigned char) = m1 0x1a13a8, imac 0x1ed2d0; - virtual TodoReturn canReverse() = m1 0x1a13ac, imac 0x1ed2e0; + virtual void saveActiveColors() = m1 0x4feda0, win 0x196910, imac 0x5d1520; + virtual float spawnXPosition() = m1 0x1a1378, win 0x133ad0, imac 0x1ed280; + virtual bool canAllowMultiActivate() = m1 0x1a1398, imac 0x1ed2a0; + virtual void blendModeChanged() = m1 0x1a13a0, imac 0x1ed2b0; + virtual void updateParticleColor(cocos2d::ccColor3B const&) = m1 0x4ff150, win 0x196ca0, imac 0x5d18b0; + virtual void updateParticleOpacity(unsigned char) = m1 0x4f4420, win 0x18eae0, imac 0x5c5130; + virtual void updateMainParticleOpacity(unsigned char) = m1 0x1a13a4, imac 0x1ed2c0; + virtual void updateSecondaryParticleOpacity(unsigned char) = m1 0x1a13a8, imac 0x1ed2d0; + virtual bool canReverse() = m1 0x1a13ac, imac 0x1ed2e0; virtual bool isSpecialSpawnObject() = m1 0x1a13b4, imac 0x1ed2f0; - virtual TodoReturn canBeOrdered() = m1 0x1a13bc, imac 0x1ed300; - virtual TodoReturn getObjectLabel() = m1 0x1a13c4, imac 0x1ed310; + virtual bool canBeOrdered() = m1 0x1a13bc, imac 0x1ed300; + virtual cocos2d::CCLabelBMFont* getObjectLabel() = m1 0x1a13c4, imac 0x1ed310; virtual void setObjectLabel(cocos2d::CCLabelBMFont*) = m1 0x1a13cc, imac 0x1ed320; - virtual TodoReturn shouldDrawEditorHitbox() = m1 0x501ae4, imac 0x5d4710; - virtual TodoReturn getHasSyncedAnimation() = m1 0x1a13d0, imac 0x1ed330; - virtual TodoReturn getHasRotateAction() = m1 0x1a13d8, imac 0x1ed340; - virtual TodoReturn canMultiActivate(bool) = m1 0x1a13e0, imac 0x1ed350; - virtual TodoReturn updateTextKerning(int) = m1 0x1a13e8, imac 0x1ed360; - virtual TodoReturn getTextKerning() = m1 0x1a13ec, imac 0x1ed370; - virtual TodoReturn getObjectRectDirty() = m1 0x1a13f4, win 0x133af0, imac 0x1ed380; + virtual bool shouldDrawEditorHitbox() = m1 0x501ae4, imac 0x5d4710; + virtual bool getHasSyncedAnimation() = m1 0x1a13d0, imac 0x1ed330; + virtual bool getHasRotateAction() = m1 0x1a13d8, imac 0x1ed340; + virtual bool canMultiActivate(bool) = m1 0x1a13e0, imac 0x1ed350; + virtual void updateTextKerning(int) = m1 0x1a13e8, imac 0x1ed360; + virtual int getTextKerning() = m1 0x1a13ec, imac 0x1ed370; + virtual bool getObjectRectDirty() = m1 0x1a13f4, win 0x133af0, imac 0x1ed380; virtual void setObjectRectDirty(bool) = m1 0x1a13fc, win 0x133b00, imac 0x1ed390; - virtual TodoReturn getOrientedRectDirty() = m1 0x1a1404, win 0x133b10, imac 0x1ed3a0; + virtual bool getOrientedRectDirty() = m1 0x1a1404, win 0x133b10, imac 0x1ed3a0; virtual void setOrientedRectDirty(bool) = m1 0x1a140c, win 0x133b20, imac 0x1ed3b0; virtual GameObjectType getType() = m1 0x1a1414, imac 0x1ed3c0; virtual void setType(GameObjectType) = m1 0x1a141c, win 0x133b40, imac 0x1ed3d0; virtual cocos2d::CCPoint getStartPos() = m1 0x1a1424, win 0x133b50, imac 0x1ed3e0; - // windows members may be wrong! yay! - int m_someOtherIndex; int m_innerSectionIndex; int m_outerSectionIndex; @@ -6256,96 +6254,122 @@ class GameObject : CCSpritePlus { // property 511 bool m_hasExtendedCollision; - PAD = android32 0x13, win 0x13, android64 0x13, mac 0x13, ios 0x13; + cocos2d::ccColor3B m_maybeGroupColor; + bool m_unk280; + bool m_unk281; + float m_blackChildRelated; + bool m_unk288; + bool m_editorEnabled; + bool m_isGroupDisabled; + bool m_unk28B; + bool m_unk28c; // somehow related to property 155 and 156 if anyone wants to reverse engineer int m_activeMainColorID; int m_activeDetailColorID; - - PAD = android32 0x4, win 0x4, android64 0x4, mac 0x4, ios 0x4; - + bool m_baseUsesHSV; + bool m_detailUsesHSV; float m_positionXOffset; float m_positionYOffset; float m_rotationXOffset; - - PAD = android32 0x4, win 0x4, android64 0x4, mac 0x4, ios 0x4; - + float m_unk2A8; float m_rotationYOffset; - - PAD = android32 0x4, win 0x4, android64 0x4, mac 0x4, ios 0x4; - + float m_unk2B0; float m_scaleXOffset; float m_scaleYOffset; - - PAD = android32 0x28, win 0x30, android64 0x30, mac 0x30, ios 0x30; - + float m_unk2BC; + float m_unk2C0; + bool m_tempOffsetXRelated; + bool m_isFlipX; + bool m_isFlipY; + cocos2d::CCPoint m_customBoxOffset; + bool m_boxOffsetCalculated; + cocos2d::CCPoint m_boxOffset; + OBB2D* m_orientedBox; + bool m_shouldUseOuterOb; cocos2d::CCSprite* m_glowSprite; - - PAD = android32 0x8, win 0x4, android64 0x4, mac 0x4, ios 0x4; - - PAD = android32 0x6, win 0x6, android64 0x6, mac 0x6, ios 0x6; - - bool m_unk306; - - cocos2d::CCSprite* m_someSprite; + int m_unk2F8; + float m_width; + float m_height; + bool m_hasSpecialChild; + bool m_isActivated; + bool m_isDisabled2; + cocos2d::CCParticleSystemQuad* m_particle; gd::string m_particleString; - - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; + bool m_hasParticles; // property 146 bool m_particleUseObjectColor; - PAD = android32 0x3e, win 0x3e, android64 0x3e, mac 0x3e, ios 0x3e; + bool m_hasColorSprite; + cocos2d::CCPoint m_unk31c; + bool m_isSomeSpriteScalable; + cocos2d::CCRect m_textureRect; + bool m_isDirty; + bool m_isObjectPosDirty; + bool m_isUnmodifiedPosDirty; + float m_unk33C; + cocos2d::CCRect m_objectRect; + bool m_isObjectRectDirty; + bool m_isOrientedBoxDirty; + bool m_colorSpriteLocked; + bool m_unk353; + bool m_canRotateFree; + bool m_isMirroredByScale; // property 108 int m_linkedGroup; - - PAD = android32 0xc, win 0xc, android64 0xc, mac 0xc, ios 0xc; - + int m_unk35C; + short m_colorType; + short m_childColorType; + bool m_shouldBlendBase; + bool m_shouldBlendDetail; + bool m_hasCustomChild; + bool m_unk367; cocos2d::CCSprite* m_colorSprite; - - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; - + bool m_unk370; float m_objectRadius; - - PAD = android32 0xA, win 0xA, android64 0xA, mac 0xA, ios 0xA; - + bool m_isRotationAligned; + float m_spriteWidthScale; + float m_spriteHeightScale; int m_uniqueID; GameObjectType m_objectType; // used in PlayerObject::gameEventTriggered - int m_unk326; - - PAD = android32 0xa, win 0xa, android64 0xa, mac 0xa, ios 0xa; + GameObjectType m_savedObjectType; + int m_unk390; + float m_unmodifiedPositionX; + float m_unmodifiedPositionY; double m_positionX; double m_positionY; cocos2d::CCPoint m_startPosition; - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; + bool m_unk3b8; // property 372 bool m_hasNoAudioScale; - bool m_unk34a; - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; - + bool m_isDisabled; float m_startRotationX; float m_startRotationY; float m_startScaleX; float m_startScaleY; - - PAD = android32 0x8, win 0x8, android64 0x8, mac 0x8, ios 0x8; - + float m_customScaleX; + float m_customScaleY; bool m_startFlipX; bool m_startFlipY; bool m_unk3ee; - bool m_unk3ef; - - PAD = android32 0xc, win 0xc, android64 0xc, mac 0xc, ios 0xc; + bool m_isInvisible; + int m_unk3D8; + short m_unk3DC; + bool m_unk3DE; + short m_unk3E0; + short m_unk3E2; // property 343 short m_enterChannel; // property 446 short m_objectMaterial; - PAD = android32 0x4, win 0x4, android64 0x4, mac 0x4, ios 0x4; + bool m_unk3E8; + short m_parentMode; // property 96 bool m_hasNoGlow; @@ -6355,7 +6379,13 @@ class GameObject : CCSpritePlus { // property 1 int m_objectID; - PAD = android32 0x8, win 0x8, android64 0x8, mac 0x8, ios 0x8; + bool m_unk3F8; + bool m_isSolid; + bool m_ignoreEnter; + bool m_ignoreFade; + bool m_unk3FC; + bool m_unk3FD; + bool m_customSpriteColor; // property 497 short m_customColorType; @@ -6367,30 +6397,44 @@ class GameObject : CCSpritePlus { bool m_hasNoEffects; // property 507 bool m_hasNoParticles; - PAD = android32 0x16, win 0x16, android64 0x16, mac 0x16, ios 0x16; + int m_defaultZOrder; + bool m_unk40C; + bool m_colorZLayerRelated; + bool m_unk40E; + float m_unk410; + float m_unk414; + bool m_particleLocked; // property 53 int m_property53; - PAD = android32 0x18, win 0x18, android64 0x18, mac 0x18, ios 0x18; + bool m_gmUnkBool4Related; + bool m_unk421; + bool m_unk422; + bool m_cantColorGlow; + float m_opacityMod; + bool m_slopeBugged; + int m_slopeDirection; + bool m_maybeShouldFixSlopes; + float m_opacityMod2; // property 21, also used with 41 and 43 GJSpriteColor* m_baseColor; // property 22, also used with 42 and 44 GJSpriteColor* m_detailColor; - PAD = android32 0xc, win 0xa, android64 0xc, mac 0xc, ios 0xc; // i will not question the windows pad + bool m_unk448; + ZLayer m_defaultZLayer; + bool m_zFixedZLayer; // property 24 ZLayer m_zLayer; // property 25 int m_zOrder; - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; - + bool m_unk45c; bool m_isSelected; - - PAD = android32 0xe, win 0xe, android64 0xe, mac 0xe, ios 0xe; - - bool m_shouldUpdateColorSprite; // m_shouldUpdateColorSprite - PAD = android32 0x1, win 0x1, android64 0x1, mac 0x1, ios 0x1; + float m_unk460; + cocos2d::CCPoint m_unk464; + bool m_shouldUpdateColorSprite; + bool m_unk46d; // property 34 bool m_hasGroupParent; @@ -6417,19 +6461,37 @@ class GameObject : CCSpritePlus { short m_editorLayer; // property 61 short m_editorLayer2; - PAD = android32 0x8, win 0x8, android64 0x8, mac 0x8, ios 0x8; + int m_enabledGroupsCounter; + bool m_unk4ac; + bool m_unk4ad; // property 121 bool m_isNoTouch; - PAD = android32 0x9, win 0x9, android64 0x9, mac 0x9, ios 0x9; - + cocos2d::CCSize m_unk4b0; cocos2d::CCPoint m_lastPosition; - - PAD = android32 0x1b, win 0x1b, android64 0x1b, mac 0x1b, ios 0x1b; + int m_unk4C0; + int m_unk4C4; + int m_unk4C8; + int m_unk4CC; + int m_unk4D0; + bool m_unk4D4; + bool m_unk4D5; + bool m_unk4D6; + bool m_unk4D7; + bool m_unk4D8; + bool m_unk4D9; + bool m_unk4DA; // property 103 bool m_isHighDetail; - PAD = android32 0x11, win 0x21, android64 0x21, mac 0x21, ios 0x21; + ColorActionSprite* m_unk4E0; + ColorActionSprite* m_unk4E8; + GJEffectManager* m_goEffectManager; + bool m_unk4F8; + bool m_isDecoration; + bool m_isDecoration2; + bool m_unk4fb; + bool m_maybeNotColorable; // property 134 bool m_isPassable; @@ -6451,14 +6513,23 @@ class GameObject : CCSpritePlus { bool m_isDontBoostY; // property 509 bool m_isDontBoostX; - PAD = android32 0x11, win 0x11, android64 0x11, mac 0x11, ios 0x11; + bool m_unk507; + bool m_unk508; + float m_unk50C; + float m_pixelScaleX; + float m_pixelScaleY; // property 155 int m_property155; // property 156 int m_property156; - - PAD = android32 0x12, win 0x12, android64 0x12, mac 0x12, ios 0x12; // TODO: yeah someone pls fix windows pads + GLubyte m_areaOpacityRelated; + float m_areaOpacityRelated2; + int m_areaOpacityRelated3; + int m_unk52C; + bool m_unk530; + bool m_unk531; + bool m_unk532; } [[link(android)]] @@ -10816,13 +10887,13 @@ class LabelGameObject : EffectGameObject { virtual bool init() = m1 0x1786d4, imac 0x1bbd40; virtual void setOpacity(unsigned char) = win 0x487310, m1 0x178b30, imac 0x1bc1b0; virtual void setupCustomSprites(gd::string) = m1 0x178704, imac 0x1bbd70; - virtual TodoReturn addMainSpriteToParent(bool) = m1 0x1793fc, imac 0x1bcb50; + virtual void addMainSpriteToParent(bool) = m1 0x1793fc, imac 0x1bcb50; virtual void resetObject() = m1 0x17a074, imac 0x1bdab0; virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x1791b8, imac 0x1bc8e0; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x179454, imac 0x1bcbb0; virtual void setObjectColor(cocos2d::ccColor3B const&) = m1 0x1793b4, imac 0x1bcb00; - virtual TodoReturn updateTextKerning(int) = m1 0x178bb4, imac 0x1bc230; - virtual TodoReturn getTextKerning() = m1 0x1a1638, imac 0x1ed720; + virtual void updateTextKerning(int) = m1 0x178bb4, imac 0x1bc230; + virtual int getTextKerning() = m1 0x1a1638, imac 0x1ed720; PAD = android32 0x11; @@ -13189,20 +13260,20 @@ class ParticleGameObject : EnhancedGameObject { virtual void setRotationY(float) = m1 0x16c65c, imac 0x1ad950; virtual void setChildColor(cocos2d::ccColor3B const&) = m1 0x16c8ec, imac 0x1adbd0; virtual void customSetup() = m1 0x16b874, imac 0x1acbc0; - virtual TodoReturn addMainSpriteToParent(bool) = m1 0x16b920, imac 0x1acc90; + virtual void addMainSpriteToParent(bool) = m1 0x16b920, imac 0x1acc90; virtual void resetObject() = m1 0x16cab8, imac 0x1addc0; virtual void deactivateObject(bool) = m1 0x16ca74, imac 0x1add80; virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x16b608, imac 0x1ac8e0; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x16ccac, imac 0x1adfc0; - virtual TodoReturn claimParticle() = m1 0x16ba00, imac 0x1acd70; - virtual TodoReturn unclaimParticle() = m1 0x16bfc8, imac 0x1ad310; - virtual TodoReturn particleWasActivated() = m1 0x16c054, imac 0x1ad390; + virtual void claimParticle() = m1 0x16ba00, imac 0x1acd70; + virtual void unclaimParticle() = m1 0x16bfc8, imac 0x1ad310; + virtual void particleWasActivated() = m1 0x16c054, imac 0x1ad390; virtual void setObjectColor(cocos2d::ccColor3B const&) = m1 0x16c7f8, imac 0x1adae0; - virtual TodoReturn blendModeChanged() = m1 0x16b8f0, imac 0x1acc50; - virtual TodoReturn updateParticleColor(cocos2d::ccColor3B const&) = m1 0x1a1520, imac 0x1ed4e0; - virtual TodoReturn updateParticleOpacity(unsigned char) = m1 0x1a1524, imac 0x1ed4f0; - virtual TodoReturn updateMainParticleOpacity(unsigned char) = m1 0x16c9e0, imac 0x1adcc0; - virtual TodoReturn updateSecondaryParticleOpacity(unsigned char) = m1 0x16ca2c, imac 0x1add20; + virtual void blendModeChanged() = m1 0x16b8f0, imac 0x1acc50; + virtual void updateParticleColor(cocos2d::ccColor3B const&) = m1 0x1a1520, imac 0x1ed4e0; + virtual void updateParticleOpacity(unsigned char) = m1 0x1a1524, imac 0x1ed4f0; + virtual void updateMainParticleOpacity(unsigned char) = m1 0x16c9e0, imac 0x1adcc0; + virtual void updateSecondaryParticleOpacity(unsigned char) = m1 0x16ca2c, imac 0x1add20; virtual void updateSyncedAnimation(float, int) = m1 0x16cb20, imac 0x1ade20; virtual TodoReturn updateAnimateOnTrigger(bool) = m1 0x16cc5c, imac 0x1adf70; @@ -13694,7 +13765,7 @@ class PlayerObject : GameObject, AnimatedSpriteDelegate { virtual void resetObject() = m1 0x390ae4, imac 0x41b180; virtual cocos2d::CCPoint getRealPosition() = m1 0x398604, imac 0x423a20; virtual OBB2D* getOrientedBox() = m1 0x3997ac, imac 0x424d80; - virtual TodoReturn getObjectRotation() = m1 0x3997d8, imac 0x424da0; + virtual float getObjectRotation() = m1 0x3997d8, imac 0x424da0; virtual void animationFinished(char const*) = win 0x3808b0, m1 0x39a5d0, imac 0x425df0; cocos2d::CCNode* m_mainLayer; @@ -14627,7 +14698,7 @@ class RingObject : EffectGameObject { virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x16e080, imac 0x1af710; virtual void setRScale(float) = m1 0x16df30, imac 0x1af560; virtual void triggerActivated(float) = m1 0x16dd88, imac 0x1af3b0; - virtual TodoReturn shouldDrawEditorHitbox() = m1 0x16df64, imac 0x1af5a0; + virtual bool shouldDrawEditorHitbox() = m1 0x16df64, imac 0x1af5a0; virtual TodoReturn powerOnObject(int) = m1 0x16dd94, imac 0x1af3c0; bool m_claimTouch; @@ -17387,7 +17458,7 @@ class SmartGameObject : GameObject { virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x16af34, imac 0x1ac0c0; bool m_property157; - PAD = android32 0x9; + PAD = android32 0x5; } [[link(android)]] @@ -17612,8 +17683,8 @@ class SpecialAnimGameObject : EnhancedGameObject { virtual void resetObject() = m1 0x16d79c, imac 0x1aecf0; virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x16d7a8, imac 0x1aed10; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x16d808, imac 0x1aed70; - virtual TodoReturn updateMainColor(cocos2d::ccColor3B const&) = m1 0x16d77c, imac 0x1aecb0; - virtual TodoReturn updateSecondaryColor(cocos2d::ccColor3B const&) = m1 0x16d78c, imac 0x1aecd0; + virtual void updateMainColor(cocos2d::ccColor3B const&) = m1 0x16d77c, imac 0x1aecb0; + virtual void updateSecondaryColor(cocos2d::ccColor3B const&) = m1 0x16d78c, imac 0x1aecd0; virtual void updateSyncedAnimation(float, int) = m1 0x2012e8, imac 0x259570; } @@ -18033,8 +18104,8 @@ class TextGameObject : GameObject { virtual void customObjectSetup(gd::vector&, gd::vector&) = m1 0x504f98, imac 0x5da200; virtual gd::string getSaveString(GJBaseGameLayer*) = m1 0x50514c, imac 0x5da380; - virtual TodoReturn updateTextKerning(int) = m1 0x504ce4, imac 0x5d9f80; - virtual TodoReturn getTextKerning() = m1 0x505998, imac 0x5dad80; + virtual void updateTextKerning(int) = m1 0x504ce4, imac 0x5d9f80; + virtual int getTextKerning() = m1 0x505998, imac 0x5dad80; gd::string m_text; // property 488 diff --git a/test/members/Windows.cpp b/test/members/Windows.cpp index b6893536b..f0ccb4c16 100644 --- a/test/members/Windows.cpp +++ b/test/members/Windows.cpp @@ -213,14 +213,14 @@ GEODE_MEMBER_CHECK(GameObject, m_outerSectionIndex, 0x278); GEODE_MEMBER_CHECK(GameObject, m_positionXOffset, 0x2a0); GEODE_MEMBER_CHECK(GameObject, m_scaleXOffset, 0x2b8); GEODE_MEMBER_CHECK(GameObject, m_glowSprite, 0x2f0); -GEODE_MEMBER_CHECK(GameObject, m_someSprite, 0x308); +GEODE_MEMBER_CHECK(GameObject, m_particle, 0x308); GEODE_MEMBER_CHECK(GameObject, m_particleString, 0x310); GEODE_MEMBER_CHECK(GameObject, m_colorSprite, 0x380); GEODE_MEMBER_CHECK(GameObject, m_uniqueID, 0x39c); GEODE_MEMBER_CHECK(GameObject, m_startPosition, 0x3c8); GEODE_MEMBER_CHECK(GameObject, m_startRotationX, 0x3d4); GEODE_MEMBER_CHECK(GameObject, m_startFlipX, 0x3ec); -GEODE_MEMBER_CHECK(GameObject, m_unk3ef, 0x3ef); +GEODE_MEMBER_CHECK(GameObject, m_isInvisible, 0x3ef); GEODE_MEMBER_CHECK(GameObject, m_groups, 0x490); GEODE_MEMBER_CHECK(GameObject, m_lastPosition, 0x4d0); From e88f6afe5f290dcbbbbd6294e4213c367b590be5 Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:33:45 +0200 Subject: [PATCH 04/16] gameEventTriggered fix --- bindings/2.206/GeometryDash.bro | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 88a2878eb..bc12f7234 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -13555,8 +13555,9 @@ class PlayerObject : GameObject, AnimatedSpriteDelegate { void flipGravity(bool, bool) = win 0x3781e0, m1 0x3848b4, imac 0x40c9c0; TodoReturn flipMod(); void gameEventTriggered(int p0, int p1) = win inline, m1 0x384c24, imac 0x40cd80 { - if (this->m_gameLayer) - this->m_gameLayer->gameEventTriggered(static_cast(p0), p1, this->m_unk326); + if (this->m_gameLayer) { + this->m_gameLayer->gameEventTriggered(static_cast(p0), p1, static_cast(this->m_savedObjectType)); + } } bool getActiveMode() = imac 0x41f680, m1 0x394684; TodoReturn getCurrentXVelocity(); From 1cedbb9c83a2b69a7a707de05f619338c95ea185 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:41:27 +0300 Subject: [PATCH 05/16] fix the bs paddings --- bindings/2.206/GeometryDash.bro | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index bc12f7234..274488f5a 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -4855,9 +4855,7 @@ class FMODAudioState { gd::unordered_map m_unkMapIntFMODQueuedMusic1; gd::unordered_map m_unkMapIntFMODQueuedMusic2; gd::unordered_map m_unkMapIntFMODSoundState; - PAD = win 0x0, android32 0x4, android64 0x0, mac 0x0; // welcome to today's episode of "this makes no f****ng sense" - int m_unkInt1; - int m_unkInt2; + int64_t m_unkInt1; } [[link(android)]] @@ -7944,9 +7942,8 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { cocos2d::CCNode* m_unk3480; double m_timePlayed; bool m_levelEndAnimationStarted; - PAD = win 0x7, android32 0x0, android64 0x0, mac 0x0, ios 0x0; - bool m_cantPause; - PAD = win 0x18, android32 0x7, android64 0x7, mac 0x30, ios 0x30; + int m_unknown3494; // used in updateSpecialLabels + gd::string m_pointsString; gd::vector*>*> m_sections; PAD = win 0x90, android32 0x48, android64 0x90, mac 0x90, ios 0x90; gd::vector*> m_sectionSizes; @@ -9096,7 +9093,7 @@ class GJMessagePopup : FLAlertLayer, UploadActionDelegate, UploadPopupDelegate, void blockUser(); bool init(GJUserMessage*); - void loadFromGJMessage(GJUserMessage*) = win 0x0285be0, imac 0x2a2980, m1 0x2445b4, ios 0x2eb808; + void loadFromGJMessage(GJUserMessage*) = win 0x285be0, imac 0x2a2980, m1 0x2445b4, ios 0x2eb808; void onBlock(cocos2d::CCObject* sender); void onClose(cocos2d::CCObject* sender); void onRemove(cocos2d::CCObject* sender); @@ -11608,7 +11605,7 @@ class LevelListCell : TableViewCell { static LevelListCell* create(float, float); void loadFromList(GJLevelList*) = win 0xbc320, imac 0x240be0, m1 0x1eb538, ios 0x105284; - void onClick(cocos2d::CCObject* sender) = win 0x0bd700, imac 0x2550b0, m1 0x1fdf64; + void onClick(cocos2d::CCObject* sender) = win 0xbd700, imac 0x2550b0, m1 0x1fdf64; void onListInfo(cocos2d::CCObject* sender) = imac 0x2551c0, m1 0x1fe064; void onViewProfile(cocos2d::CCObject* sender) = imac 0x255190, m1 0x1fe02c; TodoReturn updateBGColor(int); From 2a0a235957ab78b6d985c4b86487b36795f5871c Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:49:42 +0300 Subject: [PATCH 06/16] attempting to fix macos gjbgl --- bindings/2.206/GeometryDash.bro | 2 +- test/members/MacOSArm.cpp | 3 ++- test/members/MacOSIntel.cpp | 3 ++- test/members/iOS.cpp | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 274488f5a..956e8cffd 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -7947,7 +7947,7 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { gd::vector*>*> m_sections; PAD = win 0x90, android32 0x48, android64 0x90, mac 0x90, ios 0x90; gd::vector*> m_sectionSizes; - PAD = win 0x70, android32 0x38, android64 0x68, mac 0x40, ios 0x40; // mac not verified + PAD = win 0x70, android32 0x38, android64 0x68, mac 0x58, ios 0x58; // mac not verified gd::vector*> m_nonEffectObjectsPerSection; PAD = win 0x10, android32 0xc, android64 0x10, mac 0x10, ios 0x10; FMODLevelVisualizer* m_audioVisualizerBG; diff --git a/test/members/MacOSArm.cpp b/test/members/MacOSArm.cpp index 042b87e1c..68a4bc59d 100644 --- a/test/members/MacOSArm.cpp +++ b/test/members/MacOSArm.cpp @@ -32,7 +32,8 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x3050); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_queuedButtons, 0x3158); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk3458, 0x3288); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_uiLayer, 0x3298); -GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32f8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32e0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sectionSizes, 0x3388); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_audioVisualizerBG, 0x3420); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_loadingLayer, 0x3498); diff --git a/test/members/MacOSIntel.cpp b/test/members/MacOSIntel.cpp index 9e0fa4cff..388d4b43a 100644 --- a/test/members/MacOSIntel.cpp +++ b/test/members/MacOSIntel.cpp @@ -126,7 +126,8 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x3050); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_queuedButtons, 0x3158); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk3458, 0x3288); // GEODE_MEMBER_CHECK(GJBaseGameLayer, m_uiLayer, 0x3290); -GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32f8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32e0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sectionSizes, 0x3388); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_loadingLayer, 0x3498); // GEODE_MEMBER_CHECK(PlayLayer, m_circleWaveArray, 0x35a0); diff --git a/test/members/iOS.cpp b/test/members/iOS.cpp index fd7bb30eb..707b86034 100644 --- a/test/members/iOS.cpp +++ b/test/members/iOS.cpp @@ -26,7 +26,8 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPracticeMode, 0x3050); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_queuedButtons, 0x3158); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk3458, 0x3288); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_uiLayer, 0x3298); -GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32f8); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x32e0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sectionSizes, 0x3388); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_audioVisualizerBG, 0x3420); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_loadingLayer, 0x3498); From 7d9c9643137c8b315784a8bb7356d5f7ccd4073e Mon Sep 17 00:00:00 2001 From: alk <45172705+altalk23@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:53:05 +0300 Subject: [PATCH 07/16] gjbgl (#697) * add gjbgl vectors * fixes to the vectors * more gjbgl members * another test run go * fix canpausegame --- bindings/2.206/GeometryDash.bro | 22 +++++++++++++++++----- test/members/Windows.cpp | 2 ++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 956e8cffd..07de5ee22 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -7945,11 +7945,23 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { int m_unknown3494; // used in updateSpecialLabels gd::string m_pointsString; gd::vector*>*> m_sections; - PAD = win 0x90, android32 0x48, android64 0x90, mac 0x90, ios 0x90; + gd::vector*>*> m_nonEffectObjects; + gd::vector*> m_collisionBlockSections; + gd::vector m_calcNonEffectObjects; + int m_calcNonEffectObjectsSize; + gd::vector m_calcCollisionBlockObjects; + int m_calcCollisionBlockObjectsSize; + gd::vector m_calcCollisionBlockObjects2; + int m_calcCollisionBlockObjects2Size; gd::vector*> m_sectionSizes; - PAD = win 0x70, android32 0x38, android64 0x68, mac 0x58, ios 0x58; // mac not verified - gd::vector*> m_nonEffectObjectsPerSection; - PAD = win 0x10, android32 0xc, android64 0x10, mac 0x10, ios 0x10; + gd::vector*> m_nonEffectObjectsSizes; + gd::vector*> m_collisionBlockSectionSizes; + gd::vector*> m_nonEffectObjectsFlags; + float m_unknown35c0; + float m_unknown35c4; + float m_unknown35c8; + float m_unknown35cc; + gd::unordered_map m_stickyGroups; FMODLevelVisualizer* m_audioVisualizerBG; FMODLevelVisualizer* m_audioVisualizerSFX; bool m_showAudioVisualizer; @@ -14080,7 +14092,7 @@ class PlayLayer : GJBaseGameLayer, CCCircleWaveDelegate, CurrencyRewardDelegate, void applyEnterEffect(GameObject*, int, bool) = win 0x38e270; bool canPauseGame() = win inline, m1 0xaac6c, imac 0xbf610 { - return !m_hasCompletedLevel && !m_cantPause; + return !m_hasCompletedLevel && !m_levelEndAnimationStarted; } TodoReturn checkpointWithID(int); TodoReturn colorObject(int, cocos2d::ccColor3B); diff --git a/test/members/Windows.cpp b/test/members/Windows.cpp index f0ccb4c16..28471bee8 100644 --- a/test/members/Windows.cpp +++ b/test/members/Windows.cpp @@ -25,6 +25,8 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_temporaryParticles, 0x3118); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_timePlayed, 0x3488); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x34b8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sectionSizes, 0x3560); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_stickyGroups, 0x35d0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_audioVisualizerBG, 0x3610); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_loadingLayer, 0x3688); GEODE_SIZE_CHECK(PlayLayer, 0x3998); From 9f549002f0d8f1e3b9df273b47728a142684a4f3 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 8 Aug 2024 17:30:13 +0300 Subject: [PATCH 08/16] add the gjbgl trigger display values --- bindings/2.206/GeometryDash.bro | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 07de5ee22..acb7e7e4b 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -7965,7 +7965,32 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { FMODLevelVisualizer* m_audioVisualizerBG; FMODLevelVisualizer* m_audioVisualizerSFX; bool m_showAudioVisualizer; - PAD = win 0x67, android32 0x67, android64 0x67, mac 0x67, ios 0x67; + + int m_areaMovedCount; + int m_areaScaledCount; + int m_areaRotatedCount; + int m_areaColorCount; + int m_areaMovedCountTotal; + int m_areaScaledCountTotal; + int m_areaRotatedCountTotal; + int m_areaColorCountTotal; + int m_movedCount; + int m_scaledCount; + int m_rotatedCount; + int m_followedCount; + int m_areaMovedCountDisplay; + int m_areaScaledCountDisplay; + int m_areaRotatedCountDisplay; + int m_areaColorCountDisplay; + int m_areaMovedCountTotalDisplay; + int m_areaScaledCountTotalDisplay; + int m_areaRotatedCountTotalDisplay; + int m_areaColorCountTotalDisplay; + int m_movedCountDisplay; + int m_scaledCountDisplay; + int m_rotatedCountDisplay; + int m_followedCountDisplay; + GJGameLoadingLayer* m_loadingLayer; cocos2d::CCDrawNode* m_debugDrawNode; void* m_unk3678; From 78eeb583438bacb089b50ad721a745b02db9f22d Mon Sep 17 00:00:00 2001 From: alk <45172705+altalk23@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:06:41 +0300 Subject: [PATCH 09/16] gjbgl 2 (#698) * almost full gjbgl * test2 * another test * test 3 * test 4 --- bindings/2.206/GeometryDash.bro | 138 ++++++++++++++++++++++++++------ test/members/Android32.cpp | 1 + test/members/Windows.cpp | 1 + 3 files changed, 116 insertions(+), 24 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index acb7e7e4b..75561c8a9 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -7699,7 +7699,21 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { bool m_decimalPercentage; bool m_extraLDM; bool m_0173; - PAD = win 0xc9, android32 0x61, android64 0xC0, mac 0xac, ios 0xac; + bool m_enable22Changes; + bool m_allowStaticRotate; + bool m_fixNegativeScale; + bool m_startingFromBeginning; + gd::vector*> m_field_8B0; + gd::vector m_unkVectorTypeIsWrong; + cocos2d::CCNode* m_field_8E0; + cocos2d::CCNode* m_field_8E8; + cocos2d::CCNode* m_field_8F0; + cocos2d::CCNode* m_field_8F8; + cocos2d::CCNode* m_field_900; + cocos2d::CCNode* m_field_908; + OBB2D* m_obb2; + gd::vector*> m_vecUmapIntInt; + gd::unordered_map m_umapIntCCPoint; GJEffectManager* m_effectManager; cocos2d::CCSpriteBatchNode* m_unk950; cocos2d::CCSpriteBatchNode* m_unk958; @@ -7846,15 +7860,28 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { cocos2d::CCArray* m_unknownCB8; cocos2d::CCDictionary* m_unknownCC0; cocos2d::CCNode* m_unknownCC8; - gd::vector m_unknownCD0; - gd::vector m_unknownCE8; - gd::vector m_unknownD00; - gd::vector m_unknownD18; - gd::vector m_unknownD30; - gd::unordered_map> m_unknownD48; - gd::vector m_unknownD70; - gd::unordered_map> m_unknownD88; - PAD = win 0x10, android32 0x28, android64 0x18, mac 0x28, ios 0x28; + gd::vector m_unkdd8; + gd::vector m_unkdf0; + gd::vector m_unke08; + gd::vector m_unke20; + gd::vector m_unke38; + gd::unordered_map> m_unke50; + gd::vector m_unke90; + int m_unkea8; + int m_unkeac; + gd::vector m_unkeb0; + int m_unkec8; + int m_unkecc; + int m_unked0; + int m_unked4; + int m_unked8; + int m_unkedc; + int m_unkee0; + int m_unkee4; + int m_unkee8; + int m_unkeec; + int m_unkef0; + int m_unkef4; cocos2d::CCDictionary* m_groupDict; cocos2d::CCDictionary* m_staticGroupDict; cocos2d::CCDictionary* m_optimizedGroupDict; @@ -7878,36 +7905,58 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { void* m_unk1010; GJGroundLayer* m_groundLayer; GJGroundLayer* m_groundLayer2; - void* m_unk1028; - cocos2d::CCArray* m_unk1030; + GJMGLayer* m_middleground; + cocos2d::CCArray* m_batchNodes; cocos2d::CCDictionary* m_unk1038; - void* m_unk1040; - PAD = win 0x8c, android32 0x50, android64 0x9c, mac 0x64, ios 0x64; // (for win) between 0x8 bytes, there is a member thats 0x8 size. I think its a CCDictionary* + + gd::unordered_map> m_umapIntVectorLabelGameObjectPtr; + gd::unordered_map> m_umapIntVectorLabelGameObjectPtr2; + gd::map, int> m_mapTupleIntIntIntTupleIntIntInt; + bool m_increasedLayerCapacity; std::array m_massiveFloatArray; - PAD = win 0x78, android32 0x4c, android64 0x90, mac 0x68, ios 0x68; // not sure about the android paddings + + gd::map, int> m_mapPairIntIntPairFloatFloat; + gd::vector field_3058; + gd::unordered_map m_umapIntInt3; + int m_easingRelated; + bool field_30AC; + int m_clicks; + int m_attempts; // found in EndLevelLayer::customSetup bool m_bUnk30b8; int m_leftSectionIndex; // these 4 ints can be found in GJBaseGameLayer::updateDebugDraw or GJBaseGameLayer::updateObjectSection (easier) int m_rightSectionIndex; int m_bottomSectionIndex; int m_topSectionIndex; - PAD = win 0x2, android32 0x2, android64 0x2, mac 0x2, ios 0x2; + bool m_superHighGraphics; + bool m_blending; bool m_isPlatformer; - PAD = win 0x20, android32 0x14, android64 0x20, mac 0x20, ios 0x20; + GameObject* m_player1CollisionBlock; + GameObject* m_player2CollisionBlock; + int m_particleCount; + int m_customParticleCount; + int m_maybeParticleLimit; cocos2d::CCDictionary* m_portalParticlesDict; cocos2d::CCDictionary* m_customParticles; cocos2d::CCArray* m_unclaimedParticles; - PAD = win 0x3c, android32 0x1c, android64 0x34, mac 0x24, ios 0x24; + gd::unordered_map m_umapIntString; cocos2d::CCDictionary* m_customParticlesDictArray; cocos2d::CCArray* m_temporaryParticles; - PAD = win 0x3c, android32 0x1c, android64 0x34, mac 0x24, ios 0x24; + gd::unordered_set m_usetInt; cocos2d::CCDictionary* m_unk2a50; void* m_unk2a54; ShaderLayer* m_shaderLayer; bool m_bUnk31a0; bool m_bUnk31a1; StartPosObject* m_startPosObject; // 3180 win, 2a60 android32, 31a8 android64 - PAD = win 0x60, android32 0x38, android64 0x60, mac 0x60, ios 0x60; + bool m_unk3188; + int m_unk318c; + int m_unk3190; + gd::vector m_unk3198; + int m_unk31b0; + int m_unk31b4; + gd::vector m_unk31b8; + gd::vector m_unk31d0; bool m_isPracticeMode; bool m_practiceMusicSync; float m_loadingProgress; @@ -7928,12 +7977,52 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { int m_unk3230; bool m_unk3234; cocos2d::CCParticleSystemQuad* m_unk3238; - int m_unk323c; - PAD = win 0x6, android32 0x10, android64 0x6, mac 0x6, ios 0x6; // mac not verified + bool m_unk3240; + bool m_unk3241; + bool m_unk3242; + double m_unk3248; bool m_started; - PAD = win 0xA6, android32 0x66, android64 0x8e, mac 0xa0, ios 0xa0; + bool m_unk3251; + float m_unk3254; + float m_unk3258; + float m_unk325c; + float m_unk3260; + AudioEffectsLayer* m_audioEffectsLayer; + OBB2D* m_unk3270; + gd::vector m_unk3278; + int m_unk3290; + int m_unk3294; + cocos2d::ccColor3B m_unk3298; + int m_resumeTimer; + bool m_unk32a0; + int m_unk32a4; + gd::string m_unk32a8; + cocos2d::CCObject* m_unk32c8; + int m_unk32d0; + double m_unk32d8; + int m_coinsCollected; + int m_unk32e4; + int m_replayRandSeed; + int m_unk32ec; + int m_unk32f0; gd::vector m_queuedButtons; - PAD = win 0x148, android32 0xa0, android64 0x138, mac 0x118, ios 0x118; + gd::vector m_queuedButtons2; + gd::vector m_queuedButtons3; + gd::vector m_queuedButtons4; + gd::vector m_queuedButtons5; + int m_someQueuedButtonSize; + bool m_unk3374; + bool m_unk3375; + cocos2d::CCArray* m_unk3378; + float m_unk3380; + gd::vector m_unk3388; + gd::vector m_unk33a0; + bool m_unk33b8; + cocos2d::CCArray* m_unk33c0; + cocos2d::CCArray* m_unk33c8; + gd::unordered_map m_unk33d0; + gd::unordered_map m_unk3410; + bool m_unk3450; cocos2d::CCDictionary* m_unk3458; int m_unk3460; UILayer* m_uiLayer; @@ -7991,6 +8080,7 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { int m_rotatedCountDisplay; int m_followedCountDisplay; + int m_unknown3684; GJGameLoadingLayer* m_loadingLayer; cocos2d::CCDrawNode* m_debugDrawNode; void* m_unk3678; diff --git a/test/members/Android32.cpp b/test/members/Android32.cpp index f6396ab8f..e1e792550 100644 --- a/test/members/Android32.cpp +++ b/test/members/Android32.cpp @@ -63,6 +63,7 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_attempts, 0x29d4); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk2a50, 0x2a50); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_startPosObject, 0x2a60); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk2a84, 0x2aa4); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_audioEffectsLayer, 0x2b04); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_queuedButtons, 0x2b5c); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_uiLayer, 0x2c10); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_sections, 0x2c34); diff --git a/test/members/Windows.cpp b/test/members/Windows.cpp index 28471bee8..fc6c189af 100644 --- a/test/members/Windows.cpp +++ b/test/members/Windows.cpp @@ -9,6 +9,7 @@ GEODE_MEMBER_CHECK(GJBaseGameLayer, m_gameState, 0x1a8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_level, 0x870); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_player1, 0xd98); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_player2, 0xda0); +GEODE_MEMBER_CHECK(GJBaseGameLayer, m_groupDict, 0xef8); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_isPlatformer, 0x3096); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk2a50, 0x3160); GEODE_MEMBER_CHECK(GJBaseGameLayer, m_unk2a84, 0x31f0); From 65f202241d0a21e2bdbf1b86b4b1a84c4526144a Mon Sep 17 00:00:00 2001 From: Justin <52604018+hiimjustin000@users.noreply.github.com> Date: Thu, 8 Aug 2024 12:09:20 -0400 Subject: [PATCH 10/16] saveFetchedLevelLists and saveLevelList (#699) --- bindings/2.206/GeometryDash.bro | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 75561c8a9..e8dc1740d 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -5329,12 +5329,16 @@ class GameLevelManager : cocos2d::CCNode { void resetTimerForKey(char const*) = win 0x144ac0; static cocos2d::CCDictionary* responseToDict(gd::string, bool) = win 0x1628d0, imac 0x538380, m1 0x48aeb8; void restoreItems(); - void saveFetchedLevelLists(cocos2d::CCArray*); + void saveFetchedLevelLists(cocos2d::CCArray* lists) = win inline, m1 0x48bca4, imac 0x539210 { + for (int i = 0; i < lists->count(); i++) { + this->saveLevelList(static_cast(lists->objectAtIndex(i))); + } + } void saveFetchedLevels(cocos2d::CCArray*) = win 0x141e70, imac 0x538600, m1 0x48b144; void saveFetchedMapPacks(cocos2d::CCArray*); void saveGauntlet(GJMapPack*); void saveLevel(GJGameLevel*) = win 0x1438e0; - void saveLevelList(GJLevelList*); + void saveLevelList(GJLevelList*) = win 0x14b7a0, m1 0x48bd08, imac 0x539270; void saveLocalScore(int, int, int); void saveMapPack(GJMapPack*); void setActiveSmartTemplate(GJSmartTemplate*); From 1cf063f6664ccbd14c88870bd555204ed67f86dd Mon Sep 17 00:00:00 2001 From: Oleksandr Nemesh Date: Fri, 9 Aug 2024 18:59:43 +0300 Subject: [PATCH 11/16] CCParticleSystemQuad macos --- bindings/2.206/Cocos2d.bro | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bindings/2.206/Cocos2d.bro b/bindings/2.206/Cocos2d.bro index 5fa9ea6af..040a77a30 100644 --- a/bindings/2.206/Cocos2d.bro +++ b/bindings/2.206/Cocos2d.bro @@ -520,7 +520,7 @@ class cocos2d::CCParticleSystemQuad { static cocos2d::CCParticleSystemQuad* createWithTotalParticles(unsigned int, bool); void initIndices(); - void initTexCoordsWithRect(cocos2d::CCRect const&); + void initTexCoordsWithRect(cocos2d::CCRect const&) = imac 0x60dea0, m1 0x5331b4; unsigned char getOpacity(); @@ -531,19 +531,19 @@ class cocos2d::CCParticleSystemQuad { // CCParticleSystemQuad(cocos2d::CCParticleSystemQuad const&); // CCParticleSystemQuad(); ~CCParticleSystemQuad() = imac 0x60dc00, m1 0x532f54; - bool allocMemory(); + bool allocMemory() = imac 0x60d5a0, m1 0x532bd4; void listenBackToForeground(cocos2d::CCObject*); - void setupVBO(); + void setupVBO() = imac 0x60d990, m1 0x532d28; void updateTexCoords(); - virtual void draw(); - virtual void setBatchNode(cocos2d::CCParticleBatchNode*); - virtual void setTotalParticles(unsigned int); - virtual bool initWithTotalParticles(unsigned int, bool); - virtual void updateQuadWithParticle(cocos2d::sCCParticle*, cocos2d::CCPoint const&); - virtual void postStep(); + virtual void draw() = imac 0x60e640, m1 0x53393c; + virtual void setBatchNode(cocos2d::CCParticleBatchNode*) = imac 0x60ec20, m1 0x533c10; + virtual void setTotalParticles(unsigned int) = imac 0x60e700, m1 0x533a00; + virtual bool initWithTotalParticles(unsigned int, bool) = imac 0x60d260, m1 0x532af0; + virtual void updateQuadWithParticle(cocos2d::sCCParticle*, cocos2d::CCPoint const&) = imac 0x60e2a0, m1 0x533618; + virtual void postStep() = imac 0x60e5f0, m1 0x5338f0; - virtual void setTexture(cocos2d::CCTexture2D*); + virtual void setTexture(cocos2d::CCTexture2D*) = imac 0x60e0f0, m1 0x533430; } [[link(win, android)]] From c4b03968214dc1b962314304228fed74a599b710 Mon Sep 17 00:00:00 2001 From: Oleksandr Nemesh Date: Fri, 9 Aug 2024 19:17:28 +0300 Subject: [PATCH 12/16] apple uses setupVBOandVAO --- bindings/2.206/Cocos2d.bro | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bindings/2.206/Cocos2d.bro b/bindings/2.206/Cocos2d.bro index 040a77a30..d3e119bc4 100644 --- a/bindings/2.206/Cocos2d.bro +++ b/bindings/2.206/Cocos2d.bro @@ -533,7 +533,10 @@ class cocos2d::CCParticleSystemQuad { ~CCParticleSystemQuad() = imac 0x60dc00, m1 0x532f54; bool allocMemory() = imac 0x60d5a0, m1 0x532bd4; void listenBackToForeground(cocos2d::CCObject*); - void setupVBO() = imac 0x60d990, m1 0x532d28; + [[missing(mac, ios)]] + void setupVBO(); + [[missing(win, android)]] + void setupVBOandVAO() = imac 0x60d990, m1 0x532d28; void updateTexCoords(); virtual void draw() = imac 0x60e640, m1 0x53393c; From c2a6343fbdb5bd9d6692100b1de8ac683fc7acef Mon Sep 17 00:00:00 2001 From: Justin <52604018+hiimjustin000@users.noreply.github.com> Date: Sat, 10 Aug 2024 05:08:39 -0400 Subject: [PATCH 13/16] TextAlertPopup (#704) --- bindings/2.206/GeometryDash.bro | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index e8dc1740d..2b061781a 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -18166,11 +18166,25 @@ class TeleportPortalObject : RingObject { class TextAlertPopup : cocos2d::CCNode { // virtual ~TextAlertPopup(); - static TextAlertPopup* create(gd::string, float, float, int, gd::string) = win 0x28b920, imac 0x2ab0c0, m1 0x24c288; + static TextAlertPopup* create(gd::string text, float delay, float scale, int opacity, gd::string font) = win 0x28b920, imac 0x2ab0c0, m1 0x24c288; - bool init(gd::string, float, float, int, gd::string) = win 0x28ba50, imac 0x2ab2e0, m1 0x24c4d0; - void setAlertPosition(cocos2d::CCPoint, cocos2d::CCPoint); - void setLabelColor(cocos2d::ccColor3B) = imac 0x2ab5f0, m1 0x24c7d4; // inlined on Windows + bool init(gd::string text, float delay, float scale, int opacity, gd::string font) = win 0x28ba50, imac 0x2ab2e0, m1 0x24c4d0; + void setAlertPosition(cocos2d::CCPoint windowOffset, cocos2d::CCPoint pointOffset) = win inline, imac 0x2ab630, m1 0x24c810 { + if (!m_label) return; + + auto winSize = cocos2d::CCDirector::sharedDirector()->getWinSize(); + this->setPosition({ + windowOffset.x * winSize.width + m_width / 2 + pointOffset.x, + windowOffset.y * winSize.height + m_height / 2 + pointOffset.y + }); + } + void setLabelColor(cocos2d::ccColor3B color) = win inline, imac 0x2ab5f0, m1 0x24c7d4 { + if (m_label) m_label->setColor(color); + } + + float m_width; + float m_height; + cocos2d::CCLabelBMFont* m_label; } [[link(android)]] From 9422f190353bf9030c4f29a74a91be039497d3a2 Mon Sep 17 00:00:00 2001 From: undefined06855 <98057141+undefined06855@users.noreply.github.com> Date: Sat, 10 Aug 2024 10:09:05 +0100 Subject: [PATCH 14/16] 1 addr and some todoreturns into void (#703) * MenuLayer::onPlay * GJGroundLayer::create * some stuff nobody will use * idk if these are actually void * todoreturn -> void * EnhancedGameObject::init i think * ooops ignore that --- bindings/2.206/GeometryDash.bro | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 2b061781a..4afe352ff 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -3721,7 +3721,7 @@ class EditorUI : cocos2d::CCLayer, FLAlertLayerProtocol, ColorSelectDelegate, GJ void onUpdateDeleteFilter(cocos2d::CCObject* sender); void orderDownCustomItem(cocos2d::CCObject*) = win 0xe0bf0; void orderUpCustomItem(cocos2d::CCObject*) = win 0xe0b60; - TodoReturn pasteObjects(gd::string, bool); + void pasteObjects(gd::string, bool); TodoReturn playCircleAnim(cocos2d::CCPoint, float, float); TodoReturn playerTouchBegan(cocos2d::CCTouch*, cocos2d::CCEvent*); TodoReturn playerTouchEnded(cocos2d::CCTouch*, cocos2d::CCEvent*); @@ -4312,7 +4312,7 @@ class EnhancedGameObject : GameObject { static EnhancedGameObject* create(char const*); TodoReturn createRotateAction(float, int); - bool init(char const*); + bool init(char const*) = win 0x19a7c0; TodoReturn previewAnimateOnTrigger(); TodoReturn refreshRotateAction(); TodoReturn resetSyncedAnimation(); @@ -7599,8 +7599,8 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { TodoReturn updateCameraBGArt(cocos2d::CCPoint, float); TodoReturn updateCameraEdge(int, int); void updateCameraMode(EffectGameObject*, bool); - TodoReturn updateCameraOffsetX(float, float, int, float, int, int) = win 0x225f20, imac 0x144270, m1 0x118618; - TodoReturn updateCameraOffsetY(float, float, int, float, int, int) = win 0x225fc0, imac 0x144370, m1 0x1186ec; + void updateCameraOffsetX(float, float, int, float, int, int) = win 0x225f20, imac 0x144270, m1 0x118618; + void updateCameraOffsetY(float, float, int, float, int, int) = win 0x225fc0, imac 0x144370, m1 0x1186ec; void updateCollisionBlocks() = win 0x209060; void updateCounters(int, int); void updateDualGround(PlayerObject*, int, bool, float) = win 0x203ce0, imac 0x118660, m1 0xf568c; @@ -7673,7 +7673,7 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { virtual float timeForPos(cocos2d::CCPoint, int, int, bool, int) { return 0.f; } virtual float posForTime(float) { return 0.f; } virtual void resetSPTriggered() {} - virtual TodoReturn updateScreenRotation(float, bool, bool, float, int, float, int, int) = win 0x225e30, m1 0x118430, imac 0x144030; + virtual void updateScreenRotation(float, bool, bool, float, int, float, int, int) = win 0x225e30, m1 0x118430, imac 0x144030; virtual TodoReturn reverseDirection(EffectGameObject*) = m1 0xfad8c, win 0x2089f0, imac 0x11ec40; virtual void rotateGameplay(RotateGameplayGameObject*) = m1 0xfadd0, win 0x208a50, imac 0x11ec80; virtual TodoReturn didRotateGameplay() = m1 0xab578, imac 0xc0050; From 7fd39a1586fef051d707dbd9155b38dde2d7a242 Mon Sep 17 00:00:00 2001 From: Erymanthus | RayDeeUx <51521765+RayDeeUx@users.noreply.github.com> Date: Sat, 10 Aug 2024 05:09:15 -0400 Subject: [PATCH 15/16] thx @hiimjustin000 (#702) --- bindings/2.206/GeometryDash.bro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 4afe352ff..653ed082e 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -12992,7 +12992,7 @@ class MusicDownloadManager : cocos2d::CCNode, PlatformDownloadDelegate { TodoReturn getAllSongs(); void getCustomContentURL() = win 0x31ee40, imac 0x5986c0, m1 0x4e11c8; cocos2d::CCObject* getDLObject(char const*) = win 0x38f40; - cocos2d::CCArray* getDownloadedSongs() = win 0x31d5a0; + cocos2d::CCArray* getDownloadedSongs() = win 0x31d5a0, m1 0x4decf8, imac 0x595e00; TodoReturn getDownloadProgress(int); TodoReturn getMusicArtistForID(int); TodoReturn getMusicObject(int); From 2f537538c4d70e6a930086cdc5a7df2a84935920 Mon Sep 17 00:00:00 2001 From: Erymanthus | RayDeeUx <51521765+RayDeeUx@users.noreply.github.com> Date: Sat, 10 Aug 2024 05:10:11 -0400 Subject: [PATCH 16/16] `CCLabelBMFont::createBatched(char const*, char const*, cocos2d::CCArray*, int)` + `GJBaseGameLayer::void createTextLayers()` (#700) * thank you @hiimjustin000 * thanks @hiimjustin000 --- bindings/2.206/Cocos2d.bro | 2 +- bindings/2.206/GeometryDash.bro | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bindings/2.206/Cocos2d.bro b/bindings/2.206/Cocos2d.bro index d3e119bc4..469fcb0d3 100644 --- a/bindings/2.206/Cocos2d.bro +++ b/bindings/2.206/Cocos2d.bro @@ -1696,7 +1696,7 @@ class cocos2d::CCLabelBMFont { CC_SAFE_DELETE(pRet); return nullptr; } - static cocos2d::CCLabelBMFont* createBatched(char const*, char const*, cocos2d::CCArray*, int); + static cocos2d::CCLabelBMFont* createBatched(char const*, char const*, cocos2d::CCArray*, int) = m1 0x50b780, imac 0x5e1320; static void purgeCachedData(); bool initWithString(char const*, char const*, float, cocos2d::CCTextAlignment, cocos2d::CCPoint) = ios 0x30b864, imac 0x5e1050, m1 0x50b4cc; diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 653ed082e..4f9ab5db1 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -7317,7 +7317,7 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { TodoReturn createParticle(int, char const*, int, cocos2d::tCCPositionType); void createPlayer() = win 0x1fc0c0, ios 0x1e73b8; TodoReturn createPlayerCollisionBlock() = win 0x208c00; - void createTextLayers() = win 0x1ffa50; + void createTextLayers() = win 0x1ffa50, m1 0xf09d4, imac 0x113b80; TodoReturn damagingObjectsInRect(cocos2d::CCRect, bool); void destroyObject(GameObject*) = win 0x206b50, imac 0x11cd80, m1 0xf9108; void enterDualMode(GameObject*, bool) = imac 0x11e160, m1 0xfa400;