diff --git a/bindings/2.206/GeometryDash.bro b/bindings/2.206/GeometryDash.bro index 9a4f88a03..b38f7920a 100644 --- a/bindings/2.206/GeometryDash.bro +++ b/bindings/2.206/GeometryDash.bro @@ -164,7 +164,15 @@ class AchievementBar : cocos2d::CCNodeRGBA { virtual void setOpacity(unsigned char) = win 0x80870, m1 0x5474bc, imac 0x6258a0; - PAD = win 0x48; + cocos2d::CCLayerColor* m_layerColor; + int m_unkUnused; + cocos2d::CCScene* m_nextScene; + cocos2d::extension::CCScale9Sprite* m_bg; + cocos2d::extension::CCScale9Sprite* m_bg2; + cocos2d::CCSprite* m_achievementGlowSprite; + cocos2d::CCSprite* m_achievementSprite; + cocos2d::CCLabelBMFont* m_titleLabel; + TextArea* m_achievementDescription; } [[link(android)]] @@ -216,10 +224,9 @@ class AchievementManager : cocos2d::CCNode { cocos2d::CCArray* m_allAchievements; cocos2d::CCDictionary* m_platformAchievements; cocos2d::CCDictionary* m_achievementUnlocks; - PAD = win 0x4; + void* m_unkPtrUnused; cocos2d::CCDictionary* m_reportedAchievements; bool m_dontNotify; - PAD = win 0x3; cocos2d::CCArray* m_allAchievementsSorted; int m_order; cocos2d::CCDictionary* m_unAchieved; @@ -235,19 +242,23 @@ class AchievementNotifier : cocos2d::CCNode { void notifyAchievement(char const* title, char const* desc, char const* icon, bool quest) = win 0x39db0; void showNextAchievement() = win 0x39e90; void willSwitchToScene(cocos2d::CCScene* scene) = win inline, m1 0x6d4754, imac 0x7cfa80, ios 0x226dec { - // cocos2d::CCScene* previousScene = reinterpret_cast(this->m_unknown2); - cocos2d::CCScene* previousScene = nullptr; + this->m_nextScene = scene; - if (previousScene && previousScene != scene) + if (this->m_activeAchievementBar && this->m_activeAchievementBar->getParent() != this->m_nextScene) { - previousScene->retain(); - scene->addChild(static_cast(previousScene->getChildren()->lastObject()), 105); - previousScene->release(); - previousScene->resumeSchedulerAndActions(); + this->m_activeAchievementBar->retain(); + this->m_activeAchievementBar->removeFromParentAndCleanup(false); + this->m_nextScene->addChild(this->m_activeAchievementBar, 105); + this->m_activeAchievementBar->release(); + this->m_activeAchievementBar->resumeSchedulerAndActions(); } } virtual bool init() = m1 0x6d4578, imac 0x7cf8a0; + + cocos2d::CCScene* m_nextScene; + cocos2d::CCArray* m_achievementBarArray; + AchievementBar* m_activeAchievementBar; } [[link(android)]] @@ -1937,7 +1948,7 @@ class CheckpointGameObject : EffectGameObject { 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 TodoReturn updateSyncedAnimation(float, int) = m1 0x189380, imac 0x1cf840; + virtual void updateSyncedAnimation(float, int) = m1 0x189380, imac 0x1cf840; } [[link(android), depends(GJGameState), depends(GJShaderState), depends(FMODAudioState), depends(EffectManagerState)]] @@ -4331,7 +4342,7 @@ class EnhancedGameObject : GameObject { virtual TodoReturn powerOnObject(int) = m1 0x501cd8, imac 0x5d4b40; virtual TodoReturn powerOffObject() = m1 0x501cec, imac 0x5d4b60; virtual TodoReturn stateSensitiveOff(GJBaseGameLayer*) = m1 0x173994, imac 0x1b61c0; - virtual TodoReturn updateSyncedAnimation(float, int) = m1 0x2000b0, imac 0x2577a0; + virtual void updateSyncedAnimation(float, int) = win 0x19ddf0, imac 0x2577a0, m1 0x2000b0; virtual TodoReturn updateAnimateOnTrigger(bool) = m1 0x201478, imac 0x2596c0; PAD = android32 0x25, win 0x2a, android64 0x22; @@ -6055,8 +6066,8 @@ class GameObject : CCSpritePlus { TodoReturn perspectiveColorFrame(char const*, int); TodoReturn perspectiveFrame(char const*, int); void playDestroyObjectAnim(GJBaseGameLayer*) = win 0x1a04e0; - TodoReturn playPickupAnimation(cocos2d::CCSprite*, float, float, float, float, float, float, float, float, bool, float, float); - TodoReturn playPickupAnimation(cocos2d::CCSprite*, float, float, float, float); + 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(); @@ -7246,7 +7257,7 @@ class GJBaseGameLayer : cocos2d::CCLayer, TriggerEffectDelegate { void groupStickyObjects(cocos2d::CCArray*); void handleButton(bool down, int button, bool isPlayer1) = win 0x2238a0, imac 0x13fc40, m1 0x114ea0; TodoReturn hasItem(int); - bool hasUniqueCoin(EffectGameObject*) = win 0x207020; + bool hasUniqueCoin(EffectGameObject*) = win 0x207020, imac 0x11ce50, m1 0xf91ec; void increaseBatchNodeCapacity() = win 0x1fd9d0; bool isFlipping(); bool isPlayer2Button(int); @@ -13134,7 +13145,7 @@ class ParticleGameObject : EnhancedGameObject { 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 TodoReturn updateSyncedAnimation(float, int) = m1 0x16cb20, imac 0x1ade20; + virtual void updateSyncedAnimation(float, int) = m1 0x16cb20, imac 0x1ade20; virtual TodoReturn updateAnimateOnTrigger(bool) = m1 0x16cc5c, imac 0x1adf70; gd::string m_particleData; @@ -17545,7 +17556,7 @@ class SpecialAnimGameObject : EnhancedGameObject { 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 TodoReturn updateSyncedAnimation(float, int) = m1 0x2012e8, imac 0x259570; + virtual void updateSyncedAnimation(float, int) = m1 0x2012e8, imac 0x259570; } [[link(android)]]