Skip to content

Commit

Permalink
the real AchievementNotifier::willSwitchToScene (geode-sdk#683)
Browse files Browse the repository at this point in the history
* the real AchievementNotifier::willSwitchToScene

* fix indents

* fix the uhhh yeah

* yeah uh

* GJBGL::hasUniqueCoin
  • Loading branch information
SpaghettDev authored Aug 1, 2024
1 parent 290ef69 commit d981d63
Showing 1 changed file with 28 additions and 17 deletions.
45 changes: 28 additions & 17 deletions bindings/2.206/GeometryDash.bro
Original file line number Diff line number Diff line change
Expand Up @@ -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)]]
Expand Down Expand Up @@ -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;
Expand All @@ -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<cocos2d::CCScene*>(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<cocos2d::CCNode*>(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)]]
Expand Down Expand Up @@ -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)]]
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)]]
Expand Down

0 comments on commit d981d63

Please sign in to comment.