Mercurial > pyntnclick
diff pyntnclick/main.py @ 614:974cc69d3762 pyntnclick
Special cases aren't special enough to be named special.
author | Simon Cross <hodgestar+bzr@gmail.com> |
---|---|
date | Sat, 11 Feb 2012 21:22:24 +0200 |
parents | 44d4e3020874 |
children | b2c2b6f56291 |
line wrap: on
line diff
--- a/pyntnclick/main.py Sat Feb 11 21:18:41 2012 +0200 +++ b/pyntnclick/main.py Sat Feb 11 21:22:24 2012 +0200 @@ -16,7 +16,7 @@ from pygame.locals import SWSURFACE from pyntnclick.engine import Engine -from pyntnclick.gamescreen import DefMenuScreen, DefEndScreen +from pyntnclick.gamescreen import DefMenuScreen, DefEndScreen, GameScreen from pyntnclick.constants import GameConstants, DEBUG_ENVVAR from pyntnclick.resources import Resources from pyntnclick.sound import Sound @@ -39,10 +39,10 @@ SCENE_LIST = None # starting menu - SPECIAL_SCREENS = { - 'menu': DefMenuScreen, - 'end': DefEndScreen, - } + SCREENS = { + 'menu': DefMenuScreen, + 'end': DefEndScreen, + } START_SCREEN = 'menu' @@ -55,10 +55,15 @@ if not self.SCENE_LIST: raise GameDescriptionError("A game must have a non-empty list" " of scenes.") + if 'game' in self.SCREENS: + raise GameDescriptionError("The 'game' screen is reserved for the" + " game itself.") self._initial_scene = self.INITIAL_SCENE self._scene_list = self.SCENE_LIST self._resource_module = self.RESOURCE_MODULE self._debug_rects = False + self._screens = self.SCREENS.copy() + self._screens['game'] = GameScreen self.resource = Resources(self._resource_module) self.sound = Sound(self.resource) self.constants = self.game_constants() @@ -152,7 +157,7 @@ self.engine = Engine(self) # Initialize the special screens in the engine - for name, cls in self.SPECIAL_SCREENS.iteritems(): + for name, cls in self._screens.iteritems(): screen = cls(self) self.engine.add_screen(name, screen) # Should we allow the menu not to be the opening screen?