@@ -56,7 +56,7 @@ class ExpertMapLayer : public CCLayer, LevelDownloadDelegate {
5656 void addMap ();
5757 void ondownloadfinished (std::string const &);
5858 void expertReset ();
59- void showCongrats (CCObject* );
59+ void showCongrats ();
6060 void showGameOver ();
6161
6262 int dl_count;
@@ -66,6 +66,7 @@ class ExpertMapLayer : public CCLayer, LevelDownloadDelegate {
6666 CCMenu* end_run_btn_menu;
6767 CCMenu* settings_menu;
6868 CCMenu* devs_menu;
69+ CCMenu* showLevelMenu;
6970 CCMenuItemSpriteExtra* startBtn;
7071 CCMenuItemSpriteExtra* devBtn;
7172 LoadingCircle* loading_circle;
@@ -138,18 +139,21 @@ bool ExpertMapLayer::init() { //beware, this code is dog shit holy fuck
138139 dl_txt->setVisible (false );
139140 dl_txt->setScale (0.6 );
140141
142+ loading_circle = LoadingCircle::create ();
143+ addChild (loading_circle);
144+ loading_circle->setVisible (false );
145+
146+ // menus & assets below
147+
141148 CCMenu* back_btn_menu = CCMenu::create ();
142149 CCMenu* start_btn_menu = CCMenu::create ();
143150 CCMenu* discord_btn_menu = CCMenu::create ();
144151
152+ showLevelMenu = CCMenu::create ();
145153 end_run_btn_menu = CCMenu::create ();
146154 settings_menu = CCMenu::create ();
147155 devs_menu = CCMenu::create ();
148156
149- loading_circle = LoadingCircle::create ();
150- addChild (loading_circle);
151- loading_circle->setVisible (false );
152-
153157 CCSprite* settingsGear = CCSprite::createWithSpriteFrameName (" GJ_optionsBtn_001.png" );
154158 settingsGear->setScale (0.5 );
155159
@@ -159,19 +163,34 @@ bool ExpertMapLayer::init() { //beware, this code is dog shit holy fuck
159163 CCSprite* devsSprite = CCSprite::create (" devs.png" _spr);
160164 devsSprite->setScale (0.6 );
161165
166+ CCSprite* showLevels = CCSprite::create (" levels.png" _spr);
167+ showLevels->setScale (0.55 );
168+
162169 auto backBtn = CCMenuItemSpriteExtra::create (CCSprite::createWithSpriteFrameName (" GJ_arrow_03_001.png" ), this , menu_selector (ExpertMapLayer::onGoBack));
163170 auto settingsBtn = CCMenuItemSpriteExtra::create (settingsGear, this , menu_selector (ExpertMapLayer::openSettings));
164171 auto discordBtn = CCMenuItemSpriteExtra::create (discordSprite, this , menu_selector (ExpertMapLayer::openDiscord));
172+ auto showLevelBtn = CCMenuItemSpriteExtra::create (showLevels, this , menu_selector (ExpertMapLayer::showAllLevels));
165173 startBtn = CCMenuItemSpriteExtra::create (CCSprite::createWithSpriteFrameName (" GJ_longBtn03_001.png" ), this , menu_selector (ExpertMapLayer::start_expert_run));
166- devBtn = CCMenuItemSpriteExtra::create (devsSprite, this , menu_selector (ExpertMapLayer::showCongrats));
174+ devBtn = CCMenuItemSpriteExtra::create (devsSprite, this , menu_selector (ExpertMapLayer::openDevs));
175+
176+ addChild (discord_btn_menu);
177+ discord_btn_menu->addChild (discordBtn);
178+ discord_btn_menu->setPosition ({527 .5f ,245 });
179+
180+ addChild (showLevelMenu);
181+ showLevelMenu->addChild (showLevelBtn);
182+ showLevelMenu->setPosition (discord_btn_menu->getPositionX (), discord_btn_menu->getPositionY () - 33 );
183+ showLevelMenu->setVisible (false );
167184
168185 addChild (devs_menu);
169186 devs_menu->addChild (devBtn);
170187 devs_menu->setPosition ({93 , 290 });
171188
172- addChild (discord_btn_menu);
173- discord_btn_menu->addChild (discordBtn);
174- discord_btn_menu->setPosition ({527 .5f ,245 });
189+ addChild (settings_menu);
190+ settings_menu->addChild (settingsBtn);
191+ settingsBtn->setPosition ({243 , 117 });
192+
193+ // end of menus
175194
176195 auto bottomLeft = CCSprite::createWithSpriteFrameName (" GJ_sideArt_001.png" );
177196 auto topRight = CCSprite::createWithSpriteFrameName (" GJ_sideArt_001.png" );
@@ -246,9 +265,6 @@ bool ExpertMapLayer::init() { //beware, this code is dog shit holy fuck
246265 addChild (end_run_btn_menu);
247266 addChild (super_expert_lbl);
248267
249- addChild (settings_menu);
250- settings_menu->addChild (settingsBtn);
251- settingsBtn->setPosition ({243 , 117 });
252268
253269 back_btn_menu->addChild (backBtn);
254270 addChild (dl_txt);
@@ -263,8 +279,8 @@ bool ExpertMapLayer::init() { //beware, this code is dog shit holy fuck
263279 else {
264280 (downloading) ? downloadLevels () : addMap ();
265281 if (current_level == 15 ) {
266- // auto showCongrats = CCCallFunc::create(this, callfunc_selector(ExpertMapLayer::showCongrats));
267- // runAction(CCSequence::createWithTwoActions(CCDelayTime::create(0.3f), showCongrats));
282+ auto showCongrats = CCCallFunc::create (this , callfunc_selector (ExpertMapLayer::showCongrats));
283+ runAction (CCSequence::createWithTwoActions (CCDelayTime::create (0 .3f ), showCongrats));
268284 current_level++;
269285 }
270286 }
@@ -274,35 +290,18 @@ bool ExpertMapLayer::init() { //beware, this code is dog shit holy fuck
274290 return true ;
275291}
276292
277- void ExpertMapLayer::showCongrats (CCObject*) {
278- FLAlertLayer* congrats = FLAlertLayer::create (" Congratulations" , " You have successfully completed\n <cp>Super Expert</c>!" , " OK" );
279- congrats->show ();
280-
281- auto main_layer = static_cast <CCNode*>(congrats->getChildren ()->objectAtIndex (0 )); // thanks for NOTHING getChildbyID! asshole
282-
283- CCSprite* showLevels = CCSprite::createWithSpriteFrameName (" GJ_infoIcon_001.png" );
284- CCMenu* showLevelMenu = CCMenu::create ();
285- CCMenuItemSpriteExtra* showLevelBtn = CCMenuItemSpriteExtra::create (showLevels, this , menu_selector (ExpertMapLayer::showAllLevels));
286-
287- showLevels->setPosition ({155 , 75.5 });
288- showLevels->setScale (1.025 );
289-
290- main_layer->addChild (showLevelMenu, 1 );
291-
292- showLevelMenu->setID (" levels" );
293- showLevelMenu->addChild (showLevelBtn);
294- handleTouchPriority (this , true );
293+ void ExpertMapLayer::showCongrats () {
294+ FLAlertLayer::create (" Congratulations" , " You have successfully completed\n <cp>Super Expert</c>!" , " OK" )->show ();
295+ }
295296
297+ void ExpertMapLayer::showGameOver () {
298+ FLAlertLayer::create (" Out of Lives!" , " It looks like you've <cr>ran out of lives</c>!" , " OK" )->show ();
296299}
297300
298301void ExpertMapLayer::showAllLevels (CCObject*) {
299302 FLAlertLayer::create (" Level List" , sharelevels, " OK" )->show ();
300303}
301304
302- void ExpertMapLayer::showGameOver () {
303- FLAlertLayer::create (" Out of Lives!" , " It looks like you've <cr>ran out of lives</c>!" , " OK" )->show ();
304- }
305-
306305void ExpertMapLayer::addMap () {
307306
308307 CCSprite* stage_sprite;
@@ -374,6 +373,7 @@ void ExpertMapLayer::addMap() {
374373
375374 addChild (dotsmenu);
376375 skips_left->setVisible (true );
376+ showLevelMenu->setVisible (true );
377377}
378378
379379void ExpertMapLayer::start_expert_run (CCObject*) {
@@ -385,6 +385,7 @@ void ExpertMapLayer::start_expert_run(CCObject*) {
385385 startBtn->setVisible (false );
386386 loading_circle->show ();
387387 current_level = 0 ;
388+ sharelevels.clear ();
388389 downloadLevels ();
389390}
390391
0 commit comments