changeset 315:7b07ffc37ec0

Suspend background sound for bridge computer detail
author Neil Muller <neil@dip.sun.ac.za>
date Sat, 28 Aug 2010 12:11:42 +0200
parents 63e702d93e0e
children 4a7aa7fcd191
files gamelib/scenes/bridge.py gamelib/sound.py
diffstat 2 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/scenes/bridge.py	Sat Aug 28 12:10:20 2010 +0200
+++ b/gamelib/scenes/bridge.py	Sat Aug 28 12:11:42 2010 +0200
@@ -7,6 +7,7 @@
 
 from gamelib.cursor import CursorSprite
 from gamelib.state import Scene, Item, Thing, Result
+from gamelib.sound import get_current_playlist
 
 from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage,
                                           InteractRectUnion, InteractImage,
@@ -37,6 +38,7 @@
 
     def __init__(self, state):
         super(Bridge, self).__init__(state)
+        self.background_playlist = None
         self.add_item(Superconductor('superconductor'))
         self.add_item(Stethoscope('stethoscope'))
         self.add_thing(ToMap())
@@ -67,8 +69,8 @@
 
     def enter(self):
         pieces = [get_music(x, prefix='sounds') for x in self.MUSIC]
-        background_playlist = PlayList(pieces, random=True, repeat=True)
-        change_playlist(background_playlist)
+        self.background_playlist = PlayList(pieces, random=True, repeat=True)
+        change_playlist(self.background_playlist)
         return Result("The bridge is in a sorry, shabby state.")
 
     def leave(self):
@@ -354,9 +356,17 @@
         self.add_thing(AlertTab())
         self.add_thing(CompUpButton())
         self.add_thing(CompDownButton())
+        self._scene_playlist = None
         self._alert = get_image(self.FOLDER, self.ALERT)
         self._logs = [get_image(self.FOLDER, x) for x in self.LOGS]
 
+    def enter(self):
+        self._scene_playlist = get_current_playlist()
+        change_playlist(None)
+
+    def leave(self):
+        change_playlist(self._scene_playlist)
+
     def draw_background(self, surface):
         if self.get_data('tab') == 'alert':
             self._background = self._alert
--- a/gamelib/sound.py	Sat Aug 28 12:10:20 2010 +0200
+++ b/gamelib/sound.py	Sat Aug 28 12:11:42 2010 +0200
@@ -63,5 +63,9 @@
             albow.music.next_change_delay = albow.music.change_delay
         albow.music.current_music = next_music
 
+def get_current_playlist():
+    if albow.music.music_enabled and albow.music.current_playlist:
+        return albow.music.current_playlist
+
 # Monkey patch
 albow.music.start_next_music = start_next_music