void Drawer::processLoadingScreen(irr::f32 p,const wchar_t* msg,bool update){ if(msg) this->msg = msg; process += p; if(process > 100){ process = 100; } if(update) drawLoadingScreen(); }
//Pelin päälooppi, koko peli pyörii tässä. void StateHandler::loopGame() { Event currentEvent; if (window.pollEvent(currentEvent)) { if (currentEvent.type == Event::Closed) state = exit; } Controls::get()->update(window); switch (state) { case menu: { MainMenuState menuMode; menuMode.runMainMenuState(); MainMenuState::gameState result = menuMode.state; if (result != MainMenuState::exit){ drawLoadingScreen(); merge = new Merge(); } switch (result) { case MainMenuState::play: state = play; break; case MainMenuState::edit: state = edit; break; case MainMenuState::mergeState: state = mergeState; break; case MainMenuState::exit: state = exit; break; } break; } case play: { PlayState playMode; if (playMode.runPlayState()) state = menu; else state = exit; break; } case edit: { editState->loop(); if (Controls::get()->kIsPressed(sf::Keyboard().Escape)) { state = menu; } break; } case mergeState: merge->loop(dt); handleTime(); if (Controls::get()->kIsPressed(sf::Keyboard().Escape)) { state = menu; } break; } }