/** * Start level under pressed button. * Start pedometer when level is solved already. */ void WorldMap::runSelected() { Level *level = createSelected(); if (level) { m_levelStatus->prepareRun(m_selected->getCodename(), m_selected->getPoster(), m_selected->getBestMoves(), m_selected->getBestAuthor()); level->fillStatus(m_levelStatus); if (m_selected->getState() == LevelNode::STATE_SOLVED) { Pedometer *pedometer = new Pedometer(m_levelStatus, level); pushState(pedometer); } else { pushState(level); } } else { if (m_activeMask == m_maskIntro) { runIntro(); } else if (m_activeMask == m_maskExit) { quitState(); } else if (m_activeMask == m_maskCredits) { runCredits(); } else if (m_activeMask == m_maskOptions) { runOptions(); } } }
//----------------------------------------------------------------- void MovieState::own_updateState() { if(m_movie->GetStatus() != SMPEG_PLAYING) { quitState(); } }
void _ExitGame(void) { if (quitState != NULL | currentState != STATE_UNKNOW) { quitState(); } printf("Programme Exit\n"); exit(0); }
/** * Handle incoming message. * Messages: * - quit ... quit state */ void GameState::receiveSimple(const SimpleMsg *msg) { if (msg->equalsName("quit")) { quitState(); } else { LOG_WARNING(ExInfo("unknown msg") .addInfo("msg", msg->toString())); } }
void _StateChange(enum EN_STATE newState) { if (quitState != NULL | currentState != STATE_UNKNOW) quitState(); switch (newState) { case STATE_MAINMENU: // MenuPrincipal currentState = STATE_MAINMENU; initState = S_MainMenu_Init; quitState = S_MainMenu_Quit; eventState = S_MainMenu_Event; computeState = S_MainMenu_Compute; drawState = S_MainMenu_Draw; if (initState() == -1) { printf("[ERROR]\tError while initializing state Menu\n"); exit(1); } break; // OPENGL case STATE_OPENGL: currentState = STATE_OPENGL; initState = S_DemoOpengl_Init; quitState = S_DemoOpengl_Quit; eventState = S_DemoOpengl_Event; computeState = S_DemoOpengl_Compute; drawState = S_DemoOpengl_Draw; if (initState() == -1) { printf("[ERROR]\tError while initializing state OPENGL\n"); exit(1); } break; case STATE_UNKNOW: default: printf("[WARN]\tnewState is invalid\n"); currentState = STATE_UNKNOW; eventState = computeState = drawState = initState = quitState = NULL; } }
//----------------------------------------------------------------- void ConsoleInput::specKey(int keyIndex) { //TODO: simulate key repeat in console switch (keyIndex) { case KEY_HISTORY: getConsole()->setInput(m_history); break; case KEY_BACKSPACE: { std::string input = getConsole()->getInput(); if (!input.empty()) { input.erase(input.end() - 1); getConsole()->setInput(input); } } break; case KEY_CLEAR: getConsole()->setInput(""); break; case KEY_ENTER: { std::string input = getConsole()->getInput(); if (!input.empty()) { if (getConsole()->sendCommand()) { m_history = input; getConsole()->setInput(""); } } else { quitState(); } } break; default: StateInput::specKey(keyIndex); break; } }
/** * Toggle console. */ void ConsoleInput::enableConsole() { quitState(); }
//----------------------------------------------------------------- void DemoInput::mouseEvent(const MouseStroke &/*buttons*/) { quitState(); }