// // HalloweenParentScene.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 16.05.2017. // // #ifndef HalloweenParentScene_h #define HalloweenParentScene_h #include "cocos2d.h" #include "HSceneWithUtils.h" #include "ui/CocosGUI.h" #include "TouchHandlerTypes.h" #include "HLayoutParser.h" class HalloweenParentScene : public HSceneWithUtils, public HLayoutViewInterface { public: // create static HalloweenParentScene* create(std::string layoutFilePath = ""); virtual bool initWithConfigurationFiles(std::string layoutFilePath = ""); // overrides virtual void onEnter() override; virtual void onExit() override; // HLayoutViewInterface virtual void addLayer(cocos2d::Layer* layer) override; virtual void addObject(std::string objectName, cocos2d::Node* object) override; virtual bool touchHandlerForWidget(std::string objectName, cocos2d::ui::Widget::TouchEventType touchEventType) override; // other virtual void disableButton(std::string buttonName); virtual void enableButton(std::string buttonName); // virtual void disableFastForwardButton(); // virtual void enableFastForwardButton(); virtual long long getLastScreenTouchTime(); // virtual void presentEndscene(); virtual void addTouchHandler(std::string key, TouchHandlerFunction touchHandler, TouchHandlerType touchType); virtual void removeTouchHandler(std::string touchHandlerKey, TouchHandlerType touchHandlerType); virtual void setLoadFromAssets(bool loadFromAssets); protected: // configuration file paths std::string _layoutFilePath; bool _loadFromAssets; // layout objects std::vector _layers; std::map _objects; // state vars bool _layoutLoaded; // touch handling std::map _touchBeganHandlers; std::map _touchMovedHandlers; std::map _touchEndedHandlers; std::map _touchHandlersToRemove; bool _isHandlingTouches; long long _lastUserTouchEndedTime; long long _lastUserTouchMovedTime; // methods // virtual void adjustBgMusicButton(bool bgMusicPlaying); virtual void reloadLayoutClean(); virtual void loadLayout(bool forceLoad); // virtual void configureTransitionListeners(); // virtual void onGameHide(cocos2d::EventCustom* event); // virtual void onGameShow(cocos2d::EventCustom* event); virtual void resetLastUserTouchTimes(); virtual void configureTouchHandlers(); virtual void filterTouchHandlers(); virtual void clearTouchHandlers(); virtual std::map* pickTouchHandlersContainer(TouchHandlerType touchHandlerType); virtual void addNewNodeToObjectLayer(cocos2d::Node* newNode); }; #endif /* HalloweenParentScene_h */