diff skaapsteker/levelscene.py @ 302:78220c989e6a

Add supporting for flicking between speaking NPCs.
author Simon Cross <hodgestar@gmail.com>
date Fri, 08 Apr 2011 23:27:43 +0200
parents c68f2f3efc7f
children 7db1b7c5c961
line wrap: on
line diff
--- a/skaapsteker/levelscene.py	Fri Apr 08 23:16:11 2011 +0200
+++ b/skaapsteker/levelscene.py	Fri Apr 08 23:27:43 2011 +0200
@@ -37,7 +37,9 @@
 
         for sprite in self._level.sprites:
             self._world.add(sprite)
-        for sprite in self.game_state.create_sprites(self._level.name):
+        npcs_and_items = game_state.create_sprites(self._level.name)
+        self._npcs = dict((s.name, s) for s in npcs_and_items if hasattr(s, 'dsm'))
+        for sprite in npcs_and_items:
             self._world.add(sprite)
         self._world.add(self._player)
 
@@ -112,6 +114,8 @@
             self._paused = True
 
     def _open_dialogue(self, npc):
+        if isinstance(npc, basestring):
+            npc = self._npcs[npc]
         if npc.dsm.has_text():
             if self._dialogue is not None:
                 self._dialogue.close()