61 |
|
|
62 |
void change_levelpack (LevelPack *lp); |
void change_levelpack (LevelPack *lp); |
63 |
|
|
64 |
|
void set_current(int newsel) { set_selected(ifirst, newsel); } |
65 |
|
|
66 |
void page_up() { |
void page_up() { |
67 |
set_selected (ifirst - width*height, iselected - width*height); |
set_selected (ifirst - width*height, iselected - width*height); |
68 |
} |
} |
70 |
set_selected (ifirst + width*height, iselected + width*height); |
set_selected (ifirst + width*height, iselected + width*height); |
71 |
} |
} |
72 |
void start() {set_selected (0,0);} |
void start() {set_selected (0,0);} |
73 |
void end() { |
void end() { set_current(level_pack->size()-1); } |
|
set_selected (ifirst, level_pack->size()-1); |
|
|
} |
|
74 |
|
|
75 |
void next_unsolved(); |
void next_unsolved(); |
76 |
|
|
228 |
} |
} |
229 |
|
|
230 |
if (found) { |
if (found) { |
231 |
set_selected(ifirst, next); |
set_current(next); |
232 |
} |
} |
233 |
else { |
else { |
234 |
printf("No unsolved level found.\n"); |
printf("No unsolved level found.\n"); |
406 |
break; |
break; |
407 |
case SDLK_o: // Show/hide "todo" levels |
case SDLK_o: // Show/hide "todo" levels |
408 |
break; |
break; |
409 |
case SDLK_LEFT: set_selected (ifirst, iselected-1); break; |
case SDLK_LEFT: set_current (iselected-1); break; |
410 |
case SDLK_RIGHT: set_selected (ifirst, iselected+1); break; |
case SDLK_RIGHT: set_current (iselected+1); break; |
411 |
case SDLK_DOWN: set_selected (ifirst, iselected+width); break; |
case SDLK_DOWN: set_current (iselected+width); break; |
412 |
case SDLK_UP: set_selected (ifirst, iselected-width); break; |
case SDLK_UP: set_current (iselected-width); break; |
413 |
case SDLK_PAGEDOWN: page_down(); break; |
case SDLK_PAGEDOWN: page_down(); break; |
414 |
case SDLK_PAGEUP: page_up(); break; |
case SDLK_PAGEUP: page_up(); break; |
415 |
case SDLK_HOME: start(); break; |
case SDLK_HOME: start(); break; |
752 |
LevelMenu::on_action(Widget *w) |
LevelMenu::on_action(Widget *w) |
753 |
{ |
{ |
754 |
if (w == newgame || w==levelwidget) { |
if (w == newgame || w==levelwidget) { |
755 |
int ilevel=levelwidget->selected_level(); |
int ilevel = levelwidget->selected_level(); |
756 |
StartGame(enigma::LevelPacks[m_ilevelpack], ilevel); |
ilevel = StartGame(enigma::LevelPacks[m_ilevelpack], ilevel); |
757 |
invalidate_all(); |
invalidate_all(); |
758 |
|
levelwidget->set_current(ilevel); |
759 |
} else if (w == back) { |
} else if (w == back) { |
760 |
Menu::quit(); |
Menu::quit(); |
761 |
} else if (w == pgup) { |
} else if (w == pgup) { |