Ticket #130: dialogue.py.diff

File dialogue.py.diff, 1.6 KB (added by octavio <unix.logic@…>, 10 years ago)
  • scripts/dialogue.py

     
    1616#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
    1717 
    1818import logging 
    19 import sys 
    2019import itertools 
    2120 
    2221class EndException(Exception): 
     
    5352 
    5453        self.callbacks = callbacks 
    5554        self.state = state 
     55        self.section_stack = [] 
    5656 
    5757    def run(self): 
    5858        """Start running the dialogue engine. 
    5959        @returns: list of lists (if requesting a response) 
    6060        @returns: None (if at the end of the script)""" 
    6161        start_section = self.tree['START'] 
    62         self.section_stack = [] 
    6362 
    6463        npc_avatar_cb = self.callbacks.get('npc_avatar') 
    6564        if npc_avatar_cb: 
     
    113112                if e.args: 
    114113                    stack = self.section_stack[:] 
    115114                    stack.reverse() 
    116                     for i,s in enumerate(stack): 
    117                        if s == e.args[0]: 
    118                            # remove the end of the section stack up to desired 
    119                            # section 
    120                            del self.section_stack[-i:] 
    121                            break 
     115                    for i, s in enumerate(stack): 
     116                        if s == e.args[0]: 
     117                            # remove the end of the section stack up to desired 
     118                            # section 
     119                            del self.section_stack[-i:] 
     120                            break 
    122121                else: 
    123122                    self.section_stack.pop(-1) 
    124123                response = None