AniPickLevelScene.cpp 2.59 KB
//
//  AniPickLevelScene.cpp
//  SteveMaggieCpp
//
//  Created by Katarzyna Kalinowska-Górska on 16.05.2017.
//
//

#include "AniPickLevelScene.h"
#include "AniPlainLabel.h"
#include "AniSoundsRepo.h"


AniPickLevelScene* AniPickLevelScene::create(std::string layoutFilePath)
{
    AniPickLevelScene* scene = new (std::nothrow) AniPickLevelScene();
    if(scene && scene->init(layoutFilePath))
    {
        scene->autorelease();
        return scene;
    }
    CC_SAFE_DELETE(scene);
    return nullptr;
}

bool AniPickLevelScene::init(std::string layoutFilePath){
    if(!AniParentScene::initWithConfigurationFiles(layoutFilePath)){
        return false;
    }
    return true;
}

void AniPickLevelScene::onEnter(){
    AniParentScene::onEnter();
    showTOSAcceptPopup([&](){
                isShowingLevelPicker = true;
                showAniLevelPickerLayer([&]{
                    stopAllActions();
                    AniSoundsRepo::preloadAllTutorialGameSounds();
                    AniSoundsRepo::preloadAllLoadedSoundEffects();
                    gameStaticCreator.preloadGameResources([&](std::vector<std::string>){
                        cocos2d::Director::getInstance()->replaceScene(gameStaticCreator.createGameScene());
                    });
                }, [&](int level){
                    //TODO handle level change if necessary
                });
                auto pickLevelSoundInfo = AniSoundsRepo::pickLevelSound();
                runAction(cocos2d::Sequence::create(cocos2d::CallFunc::create(std::bind([&](std::string pickLevelSoundPath){
                    AniSoundsRepo::playSound(pickLevelSoundPath);
                    repeatPickLevelPrompt();
                },pickLevelSoundInfo.filePath)),
                nullptr));
            });
}

//bool AniPickLevelScene::touchHandlerForWidget(std::string objectName, cocos2d::ui::Widget::TouchEventType touchEventType)
//{
//    /*if(objectName == "settingsButton" && touchEventType == cocos2d::ui::Widget::TouchEventType::ENDED){
//        if(!gameState->settingsMenuShown){
//            showSettingsMenu();
//        } else {
//            if(settingsMenu->isShowingParentalGate()){
//                settingsMenu->hideParentalGate();
//            } else {
//                settingsMenu->hideParentalGate(); // in case showing parental gate is in progress...
//                hideSettingsMenu();
//                replayGame();
//            }
//        }
//    } else*/ if(objectName == "replayButton" && touchEventType == cocos2d::ui::Widget::TouchEventType::ENDED){
//        replayGame();
//        return true;
//    }
//
//    return false;
//}