@@ -788,8 +788,13 @@ class AudioLineGuideGameObject : EffectGameObject {
788788
789789[[link(android)]]
790790class BitmapFontCache : cocos2d::CCObject {
791- // virtual ~BitmapFontCache();
792- BitmapFontCache() {}
791+ BitmapFontCache() {
792+ m_cache = nullptr;
793+ }
794+ ~BitmapFontCache() {
795+ CC_SAFE_RELEASE(m_cache);
796+ }
797+
793798 static void purgeSharedFontCache() = win inline {
794799 auto** instancePtr = reinterpret_cast<BitmapFontCache**>(geode::base::get() + 0x6a4e08);
795800 if (*instancePtr) {
@@ -842,7 +847,16 @@ class BoomListLayer : cocos2d::CCLayerColor {
842847
843848[[link(android)]]
844849class BoomListView : cocos2d::CCLayer, TableViewDelegate, TableViewDataSource {
845- BoomListView() {}
850+ BoomListView() {
851+ m_tableView = nullptr;
852+ m_entries = nullptr;
853+ m_type = BoomListType::Default;
854+ m_height = 0.f;
855+ m_width = 0.f;
856+ m_itemSeparation = 0.f;
857+ m_currentPage = 0;
858+ m_locked = false;
859+ }
846860 ~BoomListView() {
847861 CC_SAFE_RELEASE(m_entries);
848862 }
@@ -1390,8 +1404,7 @@ class CCCircleWaveDelegate {
13901404
13911405[[link(android)]]
13921406class CCContentLayer : cocos2d::CCLayerColor {
1393- inline CCContentLayer() {}
1394- ~CCContentLayer();
1407+ CCContentLayer() {}
13951408
13961409 static CCContentLayer* create(cocos2d::ccColor4B const&, float, float);
13971410
@@ -1478,10 +1491,18 @@ class CCExtenderNode : cocos2d::CCNode {
14781491
14791492[[link(android)]]
14801493class CCIndexPath : cocos2d::CCObject {
1481- CCIndexPath() {}
1494+ CCIndexPath() {
1495+ m_row = 0;
1496+ m_section = 0;
1497+ }
14821498 // virtual ~CCIndexPath();
14831499
1484- TodoReturn CCIndexPathWithSectionRow(int, int);
1500+ static CCIndexPath* CCIndexPathWithSectionRow(int section, int row) {
1501+ auto ret = new CCIndexPath();
1502+ ret->m_row = row;
1503+ ret->m_section = section;
1504+ return ret;
1505+ }
14851506
14861507 int m_row;
14871508 int m_section;
@@ -1659,7 +1680,12 @@ class CCMenuItemSpriteExtra : cocos2d::CCMenuItemSprite {
16591680
16601681[[link(android)]]
16611682class CCMenuItemToggler : cocos2d::CCMenuItem {
1662- CCMenuItemToggler() {}
1683+ CCMenuItemToggler() {
1684+ m_offButton = nullptr;
1685+ m_onButton = nullptr;
1686+ m_toggled = false;
1687+ m_notClickable = false;
1688+ }
16631689 // virtual ~CCMenuItemToggler();
16641690
16651691 static CCMenuItemToggler* create(cocos2d::CCNode*, cocos2d::CCNode*, cocos2d::CCObject*, cocos2d::SEL_MenuHandler) = ios 0x19452c, win 0x451e0, imac 0x59c70, m1 0x4f880;
@@ -2391,8 +2417,14 @@ class CCURLObject : cocos2d::CCObject {
23912417
23922418[[link(android), depends(ChallengesPage), depends(GJChallengeItem)]]
23932419class ChallengeNode : cocos2d::CCNode {
2394- // virtual ~ChallengeNode();
2395- inline ChallengeNode() {}
2420+ ChallengeNode() {
2421+ m_challengeItem = nullptr;
2422+ m_countdownLabel = nullptr;
2423+ m_unloaded = false;
2424+ }
2425+ ~ChallengeNode() {
2426+ CC_SAFE_RELEASE(m_challengeItem);
2427+ }
23962428
23972429 static ChallengeNode* create(GJChallengeItem* challengeItem, ChallengesPage* challengesPage, bool isNew) = ios 0x36c94, win inline, imac 0x38b290, m1 0x31a788 {
23982430 auto ret = new ChallengeNode();
@@ -2417,7 +2449,6 @@ class ChallengeNode : cocos2d::CCNode {
24172449
24182450[[link(android)]]
24192451class ChallengesPage : FLAlertLayer, FLAlertLayerProtocol, GJChallengeDelegate, CurrencyRewardDelegate {
2420- // virtual ~ChallengesPage();
24212452 ChallengesPage() {
24222453 m_dots = nullptr;
24232454 m_countdownLabel = nullptr;
@@ -2427,6 +2458,13 @@ class ChallengesPage : FLAlertLayer, FLAlertLayerProtocol, GJChallengeDelegate,
24272458 m_currencyRewardLayer = nullptr;
24282459 m_challengeNodes = nullptr;
24292460 }
2461+ ~ChallengesPage() {
2462+ auto glm = GameLevelManager::sharedState();
2463+ if (glm->m_GJChallengeDelegate == this) glm->m_GJChallengeDelegate = nullptr;
2464+ if (m_currencyRewardLayer) m_currencyRewardLayer->m_delegate = nullptr;
2465+ CC_SAFE_RELEASE(m_challengeNodes);
2466+ CC_SAFE_RELEASE(m_dots);
2467+ }
24302468
24312469 static ChallengesPage* create() = ios 0x35d18, win inline, imac 0x389da0, m1 0x3193ec {
24322470 auto ret = new ChallengesPage();
@@ -3719,8 +3757,9 @@ class CustomizeObjectSettingsPopup : SetupTriggerPopup {
37193757
37203758[[link(android)]]
37213759class CustomListView : BoomListView {
3722- inline CustomListView() {}
3723- ~CustomListView() {}
3760+ CustomListView() {
3761+ m_cellMode = 0;
3762+ }
37243763
37253764 static CustomListView* create(cocos2d::CCArray*, TableViewCellDelegate*, float, float, int, BoomListType, float) = ios 0x10364c, win 0xaa010, imac 0x22eb50, m1 0x1df724;
37263765
@@ -3735,7 +3774,7 @@ class CustomListView : BoomListView {
37353774 float getCellHeight(BoomListType) = ios 0x103e9c, imac 0x22fd60;
37363775 void reloadAll() = ios 0x10e7b0, win 0xabc90, imac 0x23bfe0, m1 0x1ebe10;
37373776
3738- int m_unknown ;
3777+ int m_cellMode ;
37393778}
37403779
37413780[[link(android)]]
@@ -4164,8 +4203,15 @@ class DemonFilterDelegate {
41644203
41654204[[link(android)]]
41664205class DemonFilterSelectLayer : FLAlertLayer {
4167- // virtual ~DemonFilterSelectLayer();
4168- DemonFilterSelectLayer() {}
4206+ DemonFilterSelectLayer() {
4207+ m_demons = nullptr;
4208+ m_unkPtr = nullptr;
4209+ m_currentDemon = 0;
4210+ m_delegate = nullptr;
4211+ }
4212+ ~DemonFilterSelectLayer() {
4213+ CC_SAFE_RELEASE(m_demons);
4214+ }
41694215
41704216 static DemonFilterSelectLayer* create() = win inline {
41714217 auto ret = new DemonFilterSelectLayer();
@@ -5864,7 +5910,9 @@ class ExplodeItemSprite : cocos2d::CCSprite {
58645910[[link(android)]]
58655911class ExtendedLayer : cocos2d::CCLayer {
58665912 // virtual ~ExtendedLayer();
5867- ExtendedLayer() {}
5913+ ExtendedLayer() {
5914+ m_delegate = nullptr;
5915+ }
58685916
58695917 static ExtendedLayer* create() = win inline {
58705918 auto ret = new ExtendedLayer();
@@ -8503,7 +8551,7 @@ class GameToolbox {
85038551 static float fast_rand_0_1() = imac 0x4dea80, m1 0x441870, ios 0x49540;
85048552 static TodoReturn fast_rand_minus1_1();
85058553 static void fast_srand(uint64_t) = ios 0x49534, m1 0x441830, imac 0x4dea30;
8506- static TodoReturn gen_random(int) = m1 0x464058, imac 0x504920;
8554+ static gd::string gen_random(int) = m1 0x464058, imac 0x504920;
85078555 static TodoReturn getDropActionWDelay(float, float, float, cocos2d::CCNode*, cocos2d::SEL_CallFunc);
85088556 static TodoReturn getDropActionWEnd(float, float, float, cocos2d::CCAction*, float);
85098557 static cocos2d::CCActionEase* getEasedAction(cocos2d::CCActionInterval*, int, float) = imac 0x4de7b0, m1 0x4415e8;
@@ -8515,7 +8563,7 @@ class GameToolbox {
85158563 static TodoReturn getRelativeOffset(GameObject*, cocos2d::CCPoint) = win 0x64970;
85168564 static gd::string getResponse(cocos2d::extension::CCHttpResponse*) = win 0x64310, imac 0x4dba00, m1 0x43eb40;
85178565 static gd::string getTimeString(int, bool) = win 0x65e20, imac 0x4de620, m1 0x44145c, ios 0x49338;
8518- static TodoReturn hsvFromString(gd::string const&, char const*) = imac 0x4dd030;
8566+ static cocos2d::ccHSVValue hsvFromString(gd::string const&, char const*) = win 0x654e0, imac 0x4dd030;
85198567 static gd::string intToShortString(int) = win 0x69120, imac 0x4e4250, m1 0x4465bc, ios 0x4bd08;
85208568 static gd::string intToString(int) = win 0x69060, imac 0x4e3f30, m1 0x446284;
85218569 static bool isIOS();
@@ -8541,7 +8589,7 @@ class GameToolbox {
85418589 static TodoReturn saveStringToFile(gd::string const&, gd::string const&);
85428590 static gd::string stringFromHSV(cocos2d::ccHSVValue, char const*) = win 0x656f0;
85438591 static cocos2d::CCDictionary* stringSetupToDict(gd::string const&, char const*) = win 0x65c30, m1 0x440d54;
8544- static gd::map<gd::string,gd::string> stringSetupToMap(gd::string const&, char const*, gd::map<gd::string, gd::string>&) = win 0x65890;
8592+ static void stringSetupToMap(gd::string const&, char const*, gd::map<gd::string, gd::string>&) = win 0x65890;
85458593 static TodoReturn strongColor(cocos2d::ccColor3B);
85468594 static TodoReturn timestampToHumanReadable(long) = m1 0x4469a4, imac 0x4e4690;
85478595 static cocos2d::ccColor3B transformColor(cocos2d::ccColor3B const&, cocos2d::ccHSVValue) = ios 0x4854c, win 0x65290, m1 0x43fbfc, imac 0x4dcb20;
@@ -8550,8 +8598,20 @@ class GameToolbox {
85508598
85518599[[link(android)]]
85528600class GauntletLayer : cocos2d::CCLayer, LevelManagerDelegate {
8553- // virtual ~GauntletLayer();
8554- GauntletLayer() {}
8601+ GauntletLayer() {
8602+ m_levels = nullptr;
8603+ m_loadingCircle = nullptr;
8604+ m_backgroundSprite = nullptr;
8605+ m_unkPtr = nullptr;
8606+ m_activeItemButton = nullptr;
8607+ m_activeObjects = nullptr;
8608+ m_tryAgainText = nullptr;
8609+ }
8610+ ~GauntletLayer() {
8611+ auto glm = GameLevelManager::sharedState();
8612+ if (glm->m_levelManagerDelegate == this) glm->m_levelManagerDelegate = nullptr;
8613+ CC_SAFE_RELEASE(m_activeObjects);
8614+ }
85558615
85568616 static GauntletLayer* create(GauntletType gauntletType) = win inline, imac 0x37f700, m1 0x30fc28 {
85578617 auto ret = new GauntletLayer();
@@ -8587,7 +8647,10 @@ class GauntletLayer : cocos2d::CCLayer, LevelManagerDelegate {
85878647[[link(android)]]
85888648class GauntletNode : cocos2d::CCNode {
85898649 // virtual ~GauntletNode();
8590- GauntletNode() {}
8650+ GauntletNode() {
8651+ m_gauntletInfoNode = nullptr;
8652+ m_rewardNode = nullptr;
8653+ }
85918654
85928655 static GauntletNode* create(GJMapPack* gauntlet) = win inline, m1 0x4b2728, imac 0x55c250 {
85938656 auto ret = new GauntletNode();
@@ -8610,8 +8673,22 @@ class GauntletNode : cocos2d::CCNode {
86108673
86118674[[link(android)]]
86128675class GauntletSelectLayer : cocos2d::CCLayer, BoomScrollLayerDelegate, LevelManagerDelegate {
8613- // virtual ~GauntletSelectLayer();
8614- GauntletSelectLayer() {}
8676+ GauntletSelectLayer() {
8677+ m_backgroundSprite = nullptr;
8678+ m_scrollLayer = nullptr;
8679+ m_refreshButton = nullptr;
8680+ m_exiting = false;
8681+ m_playing = false;
8682+ m_tryAgainText = nullptr;
8683+ m_loadingCircle = nullptr;
8684+ m_gauntlets = nullptr;
8685+ m_playBlocked = false;
8686+ }
8687+ ~GauntletSelectLayer() {
8688+ auto glm = GameLevelManager::sharedState();
8689+ if (glm->m_levelManagerDelegate == this) glm->m_levelManagerDelegate = nullptr;
8690+ CC_SAFE_RELEASE(m_gauntlets);
8691+ }
86158692
86168693 static GauntletSelectLayer* create(int p0) = win inline, imac 0x55abc0, m1 0x4b1248, ios 0x1c0448 {
86178694 auto ret = new GauntletSelectLayer();
@@ -13034,7 +13111,11 @@ class GJWriteMessagePopup : FLAlertLayer, TextInputDelegate, UploadMessageDelega
1303413111
1303513112[[link(android)]]
1303613113class GManager : cocos2d::CCNode {
13037- inline GManager() {}
13114+ GManager() {
13115+ m_setup = false;
13116+ m_saved = false;
13117+ m_quickSave = false;
13118+ }
1303813119 // virtual ~GManager();
1303913120
1304013121 virtual bool init() = win 0x6a7c0, imac 0x498f00, m1 0x404d70, ios 0x249774;
@@ -13069,7 +13150,7 @@ class GooglePlayDelegate {
1306913150class GooglePlayManager : cocos2d::CCNode {
1307013151 // virtual ~GooglePlayManager();
1307113152
13072- static GooglePlayManager* sharedState() = ios 0x458d8, win 0x6ac50 ;
13153+ static GooglePlayManager* sharedState() = win 0x6ac50, m1 0x3d5188, imac 0x4651e0, ios 0x458d8 ;
1307313154
1307413155 virtual bool init() = m1 0x3d51f8, imac 0x465240, ios 0x45938 { return true; }
1307513156
@@ -15262,7 +15343,11 @@ class ListUploadDelegate {
1526215343[[link(android)]]
1526315344class LoadingCircle : cocos2d::CCLayerColor {
1526415345 // virtual ~LoadingCircle();
15265- LoadingCircle() {}
15346+ LoadingCircle() {
15347+ m_sprite = nullptr;
15348+ m_parentLayer = nullptr;
15349+ m_fade = false;
15350+ }
1526615351
1526715352 static LoadingCircle* create() = ios 0x392c28, win 0x6b840, m1 0x414ec0, imac 0x4abd70;
1526815353
@@ -15626,8 +15711,20 @@ class MessagesProfilePage : FLAlertLayer, FLAlertLayerProtocol, UploadActionDele
1562615711
1562715712[[link(android)]]
1562815713class MoreOptionsLayer : FLAlertLayer, TextInputDelegate, GooglePlayDelegate, GJDropDownLayerDelegate {
15629- // virtual ~MoreOptionsLayer();
15630- MoreOptionsLayer() {}
15714+ MoreOptionsLayer() {
15715+ m_page = -1;
15716+ m_toggleCount = 0;
15717+ m_pageCount = 0;
15718+ m_gpSignInBtn = nullptr;
15719+ m_gpSignOutBtn = nullptr;
15720+ m_categoryLabel = nullptr;
15721+ }
15722+ ~MoreOptionsLayer() {
15723+ CC_SAFE_RELEASE(m_objects);
15724+ CC_SAFE_RELEASE(m_variables);
15725+ auto gpm = GooglePlayManager::sharedState();
15726+ if (gpm->m_delegate2 == this) gpm->m_delegate2 = nullptr;
15727+ }
1563115728
1563215729 static MoreOptionsLayer* create() = ios 0xf0558, win inline, imac 0x785240, m1 0x6993f0 {
1563315730 auto ret = new MoreOptionsLayer();
@@ -15686,8 +15783,12 @@ class MoreOptionsLayer : FLAlertLayer, TextInputDelegate, GooglePlayDelegate, GJ
1568615783
1568715784[[link(android)]]
1568815785class MoreSearchLayer : FLAlertLayer, TextInputDelegate {
15689- // virtual ~MoreSearchLayer();
15690- inline MoreSearchLayer() {}
15786+ MoreSearchLayer() {}
15787+ ~MoreSearchLayer() {
15788+ CC_SAFE_RELEASE(m_commonSongNodes);
15789+ CC_SAFE_RELEASE(m_normalSongNodes);
15790+ CC_SAFE_RELEASE(m_customSongNodes);
15791+ }
1569115792
1569215793 static MoreSearchLayer* create() = ios 0x57e9c, win inline, m1 0x541374, imac 0x615070 {
1569315794 auto ret = new MoreSearchLayer();
@@ -18918,8 +19019,14 @@ class SelectListIconDelegate {
1891819019
1891919020[[link(android)]]
1892019021class SelectListIconLayer : FLAlertLayer {
18921- // virtual ~SelectListIconLayer();
18922- SelectListIconLayer() {}
19022+ SelectListIconLayer() {
19023+ m_difficulties = nullptr;
19024+ m_currentDifficulty = 0;
19025+ m_delegate = nullptr;
19026+ }
19027+ ~SelectListIconLayer() {
19028+ CC_SAFE_RELEASE(m_difficulties);
19029+ }
1892319030
1892419031 static SelectListIconLayer* create(int difficulty) = win inline, imac 0x34cd20 {
1892519032 auto ret = new SelectListIconLayer();
@@ -22940,7 +23047,7 @@ class StatsCell : TableViewCell {
2294023047[[link(android)]]
2294123048class StatsLayer : GJDropDownLayer {
2294223049 // virtual ~StatsLayer();
22943- inline StatsLayer() {}
23050+ StatsLayer() {}
2294423051
2294523052 static StatsLayer* create() = win inline, m1 0x8e198, imac 0x9b220 {
2294623053 auto ret = new StatsLayer();
@@ -23466,7 +23573,7 @@ class TopArtistsLayer : FLAlertLayer, OnlineListDelegate {
2346623573[[link(android)]]
2346723574class TOSPopup : FLAlertLayer {
2346823575 // virtual ~TOSPopup();
23469- inline TOSPopup() {}
23576+ TOSPopup() {}
2347023577
2347123578 static TOSPopup* create() = win inline {
2347223579 auto ret = new TOSPopup();
0 commit comments