diff gamelib/state.py @ 403:df3216b369b1

Hook up navigation tab, Add won condition
author Neil Muller <neil@dip.sun.ac.za>
date Sat, 28 Aug 2010 21:31:30 +0200
parents b1dc0caec668
children 19aff54b2e73
line wrap: on
line diff
--- a/gamelib/state.py	Sat Aug 28 21:29:49 2010 +0200
+++ b/gamelib/state.py	Sat Aug 28 21:31:30 2010 +0200
@@ -18,13 +18,14 @@
 class Result(object):
     """Result of interacting with a thing"""
 
-    def __init__(self, message=None, soundfile=None, detail_view=None, style=None):
+    def __init__(self, message=None, soundfile=None, detail_view=None, style=None, close_detail=False):
         self.message = message
         self.sound = None
         if soundfile:
             self.sound = get_sound(soundfile)
         self.detail_view = detail_view
         self.style = style
+        self.close_detail = close_detail
 
     def process(self, scene_widget):
         """Helper function to do the right thing with a result object"""
@@ -34,6 +35,8 @@
             scene_widget.show_message(self.message, self.style)
         if self.detail_view:
             scene_widget.show_detail(self.detail_view)
+        if self.close_detail and hasattr(scene_widget, 'parent') and hasattr(scene_widget.parent, 'clear_detail'):
+            scene_widget.parent.clear_detail()
 
 
 def handle_result(result, scene_widget):
@@ -59,6 +62,7 @@
     state.load_scenes("crew_quarters")
     state.load_scenes("map")
     state.load_scenes("manual")
+    state.load_scenes("won")
     initial_scene = "cryo" if DEBUG_SCENE is None else DEBUG_SCENE
     state.set_current_scene(initial_scene)
     state.set_do_enter_leave()