# HG changeset patch # User Simon Cross # Date 1302393298 -7200 # Node ID b83ca72063ea7709cdf41d966bad9b4cf718e3c4 # Parent 51bc11e3b693f542bc3361c8fd50ee471744f0f6 Fix bug where one NPC's dialogue could close anothers. diff -r 51bc11e3b693 -r b83ca72063ea skaapsteker/levelscene.py --- a/skaapsteker/levelscene.py Sun Apr 10 01:49:55 2011 +0200 +++ b/skaapsteker/levelscene.py Sun Apr 10 01:54:58 2011 +0200 @@ -161,8 +161,11 @@ self._world.freeze() self._dialogue = NotificationWidget(text) - def _close_dialogue(self): - if self._dialogue is not None: + def _close_dialogue(self, npc): + if isinstance(npc, basestring): + npc = self._npcs[npc] + # below works for notifications too since they don't have .npc and send None + if self._dialogue is not None and getattr(self._dialogue, 'npc', None) is npc: self._world.thaw() self._dialogue.close() self._dialogue = None @@ -366,6 +369,6 @@ elif engine.OpenNotification.matches(ev): self._open_notification(ev.text) elif engine.CloseDialog.matches(ev): - self._close_dialogue() + self._close_dialogue(ev.npc) elif engine.AddSpriteEvent.matches(ev): self._world.add(ev.item)