Example #1
0
	virtual void OnKeyPressed(Key key)
	{
		if(key == Key::ArrowDown)
		{
			m_selectionWheel->AdvanceSelection(1);
		}
		else if(key == Key::ArrowUp)
		{
			m_selectionWheel->AdvanceSelection(-1);
		}
		else if(key == Key::PageDown)
		{
			m_selectionWheel->AdvanceSelection(5);
		}
		else if(key == Key::PageUp)
		{
			m_selectionWheel->AdvanceSelection(-5);
		}
		else if(key == Key::ArrowLeft)
		{
			m_selectionWheel->AdvanceDifficultySelection(-1);
		}
		else if(key == Key::ArrowRight)
		{
			m_selectionWheel->AdvanceDifficultySelection(1);
		}
		else if(key == Key::Return)
		{
			bool autoplay = (g_gameWindow->GetModifierKeys() & ModifierKeys::Ctrl) == ModifierKeys::Ctrl;
			MapIndex* map = m_selectionWheel->GetSelection();
			if(map)
			{
				DifficultyIndex* diff = m_selectionWheel->GetSelectedDifficulty();

				Game* game = Game::Create(diff->path);
				if(!game)
				{
					Logf("Failed to start game", Logger::Error);
					return;
				}
				game->GetScoring().autoplay = autoplay;

				// Transition to game
				TransitionScreen* transistion = TransitionScreen::Create(game);
				g_application->AddTickable(transistion);
			}
		}
		else if(key == Key::F5)
		{
			m_mapDatabase.StartSearching();
		}
		else if(key == Key::F2)
		{
			m_selectionWheel->SelectRandom();
		}
	}