|
From: Tapio V. <aa...@us...> - 2009-12-11 12:44:23
|
Module: performous
Branch: dance
Commit: 21581d5011cc85b7000d7d47f5091b87a4ccb7d2
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Dec 2 03:34:17 2009 +0200
Use menuOptions size for selection wrapping
---
game/screen_intro.cc | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index 5fdadd0..2c5c6d5 100755
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -31,16 +31,14 @@ void ScreenIntro::manageEvent(SDL_Event event) {
if (m_dialog) { m_dialog.reset(); return; }
int key = event.key.keysym.sym;
if (key == SDLK_ESCAPE || key == SDLK_q) sm->finished();
- else if (key == SDLK_DOWN) {
- if (selected < 3) selected++;
- else selected = 0;
- } else if (key == SDLK_UP) {
- if (selected > 0) selected--;
- else selected = 3;
- } else if (key == SDLK_RETURN) {
+ else if (key == SDLK_DOWN) ++selected;
+ else if (key == SDLK_UP) --selected;
+ else if (key == SDLK_RETURN) {
if (selected != 3) sm->activateScreen(m_menuOptions[selected].screen);
else sm->finished();
} else if (key == SDLK_SPACE || key == SDLK_PAUSE) m_audio.togglePause();
+ // Normalize selected to [0, size)
+ selected = (m_menuOptions.size() + selected) % m_menuOptions.size();
} else if (event.type == SDL_JOYBUTTONDOWN) {
int button = event.jbutton.button;
if (button == 9) sm->activateScreen("Songs");
|