MovingPiecesState::MovingPiecesState(const ColumnsGameFSM &fsm, ColumnsGameController &controller, EventQueue & eventQueue): BaseColumnsGameState(fsm, controller) ,mEventQueueRef(eventQueue) ,mOnTouchEventDlg(EventListenerDelegate(std::bind(&MovingPiecesState::OnTouchEvent, this, std::placeholders::_1))) { mSubFSM.RegisterState(MovingPiecesState::MovementSubStateIds::Waiting, std::make_shared<WaitingInputState>(mSubFSM, mEventQueueRef)); mSubFSM.RegisterState(MovingPiecesState::MovementSubStateIds::Received_Input, std::make_shared<ReceivedInputState>(mSubFSM, mEventQueueRef, controller)); mSubFSM.RegisterState(MovingPiecesState::MovementSubStateIds::Moving_Block, std::make_shared<MovingBlockPieceInputState>(mSubFSM, mEventQueueRef, controller)); mSubFSM.RegisterState(MovingPiecesState::MovementSubStateIds::Droping_Block, std::make_shared<DroppingBlockPieceInputState>(mSubFSM, mEventQueueRef, controller)); mSubFSM.ChangeTo(MovingPiecesState::MovementSubStateIds::Waiting); }
bool PostGameScene::init(unsigned int p_SceneID, IGraphics *p_Graphics, ResourceManager *p_ResourceManager, Input *p_InputQueue, GameLogic *p_GameLogic, EventManager *p_EventManager) { m_SceneID = p_SceneID; m_Graphics = p_Graphics; m_EventManager = p_EventManager; m_ResourceManager = p_ResourceManager; m_EventManager->addListener(EventListenerDelegate(this, &PostGameScene::onGoalListUpdate), FinishRaceEventData::sk_EventType); preLoadModels(); return true; }