Fix loading of old saves.
[naja.git] / naja / scenes / menu.py
index 327bb0b371f6222883d9370d68f4e469170fec4a..adc42df5b366d32a972244afcf1f7043462907e5 100644 (file)
@@ -4,11 +4,13 @@ Main menu scene.
 
 import pygame.locals as pgl
 
-from naja.constants import KEYS, PALETTE
+from naja.constants import KEYS, PALETTE, KONAMI_CODE
 from naja.events import SceneChangeEvent, QuitGameEvent
+from naja.options import options
 from naja.scenes.scene import Scene
 from naja.scenes.credits import CreditsScene
 from naja.scenes.game import GameScene
+from naja.scenes.howto import HowtoScene
 from naja.scenes.load_save import LoadGameScene, SaveGameScene
 from naja.scenes.new_game import NewGameScene
 from naja.widgets.selector import SelectorWidget
@@ -48,6 +50,12 @@ class MenuScene(Scene):
         save.set_selectable_callback(lambda: state is not None)
         selector.add(save)
 
+        y_offset += 50
+        howto = TextWidget(
+            (100, y_offset), 'How To Play', colour=PALETTE.WHITE)
+        howto.add_callback('click', self.scene_callback(HowtoScene))
+        selector.add(howto)
+
         y_offset += 50
         credits = TextWidget((100, y_offset), 'Credits', colour=PALETTE.WHITE)
         credits.add_callback('click', self.scene_callback(CreditsScene))
@@ -58,9 +66,24 @@ class MenuScene(Scene):
         quit.add_callback('click', lambda event: QuitGameEvent.post())
         selector.add(quit)
 
+        self.konami = []
+
     def scene_callback(self, scene_class):
         return lambda event: SceneChangeEvent.post(scene_class)
 
+    def handle_event(self, ev):
+        if ev.type == pgl.KEYDOWN and self.konami is not None:
+            if ev.key in KEYS.KONAMI:
+                self.konami.append(ev.key)
+                if self.konami == KONAMI_CODE:
+                    options['cheat_enabled'] = True
+                    print "Cheats enabled."
+                    print "  Try hitting some number keys."
+                    self.konami = None
+                elif self.konami != KONAMI_CODE[:len(self.konami)]:
+                    self.konami = None
+        return super(MenuScene, self).handle_event(ev)
+
     def handle_scene_event(self, ev):
         if ev.type == pgl.KEYDOWN:
             if ev.key in KEYS.QUIT: