Mercurial > rinkhals
diff gamelib/mainmenu.py @ 560:8cd13b82585e
Allow ESC to exit high score menu and then still exit game if pressed a second time.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 28 Nov 2009 18:27:59 +0000 |
parents | 296c73dcd286 |
children | a8dde729000a |
line wrap: on
line diff
--- a/gamelib/mainmenu.py Sat Nov 28 18:27:02 2009 +0000 +++ b/gamelib/mainmenu.py Sat Nov 28 18:27:59 2009 +0000 @@ -1,6 +1,7 @@ """Main menu.""" from pgu import gui +from pygame.locals import QUIT, KEYDOWN, K_ESCAPE import pygame import constants import engine @@ -29,6 +30,22 @@ def get_mode(self): return self.widgets[0].mode + def event(self, e): + if gui.Container.event(self, e): + return True + if e.type is KEYDOWN: + if e.key == K_ESCAPE: + pygame.event.post(pygame.event.Event(QUIT)) + return True + elif e.key == K_s: + pygame.event.post(engine.START_DAY) + return True + elif e.key == K_i: + pygame.event.post(engine.GO_HELP_SCREEN) + return True + return False + + class MainMenu(gui.Table): def __init__(self, level, **params): gui.Table.__init__(self, **params) @@ -55,9 +72,7 @@ savegame.RestoreDialog(gameboard.GameBoard.restore_game).open() def scores_pressed(): - scoreboard = gameover.Scoreboard(self.level) - title = gui.Label("High Scores for Level %s" % self.level.level_name) - gui.Dialog(title, scoreboard).open() + gameover.ScoreDialog(self.level).open() def help_pressed(): pygame.event.post(engine.GO_HELP_SCREEN) @@ -105,6 +120,5 @@ # self.tr() # self.td(fullscreen_toggle, **td_kwargs) - def redraw(self): self.start_button.value = self.level.level_name