Changeset 251


Ignore:
Timestamp:
08/18/09 01:11:29 (10 years ago)
Author:
bretzel_parpg
Message:

Started on putting options in the dialog map

Location:
trunk/tools/writing_editor/scripts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/writing_editor/scripts/dialogMap.py

    r250 r251  
    4141        self.resize(int(self.settings.res_width), int(self.settings.res_height)) 
    4242        self.parser = Parser(main_edit, self.handleResult) 
    43         self.itemCount = 0 
     43 
     44        self.parentItem = None 
     45        self.inOption = False 
    4446 
    4547        self.setColumnCount(1) 
     
    5759        """ 
    5860        text = result.split(' ') 
     61 
    5962        if (type_ == "SCRIPTNAME"): 
    6063            self.setHeaderLabel(text[1]) 
     
    6265        elif (type_ == "SAY"): 
    6366            sayText = text[0] + " says " + text[2] 
    64             print "text: " + sayText 
    6567            self.sayItem = QtGui.QTreeWidgetItem() 
    6668            self.sayItem.setText(0, sayText) 
     
    7375            self.insertItem(self.attackItem) 
    7476 
     77        elif (type_ == "OPTION"): 
     78            optionText = "Option " + text[1] 
     79            self.optionItem = QtGui.QTreeWidgetItem() 
     80            self.optionItem.setText(0, optionText) 
     81            self.insertItem(self.optionItem) 
     82            self.parentItem = self.optionItem 
     83            self.inOption = True 
     84 
     85        elif (self.inOption and type_ == "."): 
     86            option_text = result.split('.') 
     87            itemText = option_text[0] + ': ' + option_text[1] 
     88            self.optionItem = QtGui.QTreeWidgetItem() 
     89            self.optionItem.setText(0, itemText) 
     90            self.parentItem.addChild(self.optionItem) 
     91 
     92        elif (type_ == "ENDOPTION"): 
     93            self.inOption = False 
     94 
    7595    def insertItem(self, item): 
    7696        """ 
     
    80100        @return: None 
    81101        """ 
    82         self.insertTopLevelItem(0, item) 
     102        if (self.parentItem == None): 
     103            self.insertTopLevelItem(self.topLevelItemCount(), item) 
     104        else: 
     105            self.parentItem.addChild(item) 
    83106 
    84107    def clear(self): 
     
    87110        """ 
    88111        self.setHeaderLabel("") 
    89         for i in xrange(self.topLevelItemCount()): 
    90             item = self.itemAt(0, i) 
    91             self.removeItemWidget(item, 0) 
     112        self.invisibleRootItem().takeChildren() 
  • trunk/tools/writing_editor/scripts/parser.py

    r250 r251  
    3636        self.resultFunction = result_function 
    3737        self.makeFunctions() 
    38         self.funcs = ["SCRIPTNAME", "NPC", "PC", "CALLSECTION", "ENDSECTION", "SECTION",  
     38        self.funcs = ["SCRIPTNAME", "NPC", "CALLSECTION", "ENDSECTION", "SECTION",  
    3939                      "SCRIPTNAME", "ENDOPTION", "OPTION", "PLAYSOUND",  
    40                       "SAY", "ATTACK", "RETURN", "ELIF", "IF", "ELSE"] 
     40                      "SAY", "ATTACK", "RETURN", "ELIF", "IF", "ELSE", "PC", "."] 
    4141 
    4242        self.func_by_name = {"NPC":self.npc, "PC":self.pc, "CALLSECTION":self.callsection, 
     
    4545                             "OPTION":self.option, "PLAYSOUND":self.playsound, 
    4646                             "SAY":self.say, "ATTACK":self.attack, "RETURN":self.return_, 
    47                              "ELIF":self.elif_, "IF":self.if_, "ELSE":self.else_} 
     47                             "ELIF":self.elif_, "IF":self.if_, "ELSE":self.else_, 
     48                             ".":self.option_item} 
    4849 
    4950 
     
    5354        @return: None 
    5455        """ 
    55         self.text = Word(alphas) 
     56        self.text = Word(alphanums) 
     57        self.nums = Word(nums) 
     58        self.period = Literal(".") 
    5659        self.space = Literal(" ") 
    5760        self.colon = Literal(":") 
     
    6568        self.scriptname = Combine(Word("SCRIPTNAME") + self.space + self.text) 
    6669        self.option = Combine(Word("OPTION") + self.space + self.text) 
     70        self.option_item = Combine(self.nums + Optional(self.space) + self.period + Optional(self.space) + self.text) 
    6771        self.endoption = Combine(Word("ENDOPTION") + self.space + self.text) 
    6872        self.playsound = Combine(Word("PLAYSOUND") + self.space + self.quote + self.text + self.quote) 
     
    102106 
    103107        for line in doc.split('\n'): 
    104             print line 
    105108            if (line == ""): 
    106109                continue 
  • trunk/tools/writing_editor/scripts/writingEditor.py

    r250 r251  
    194194        # it's the main editor 
    195195        if (index == 0): 
    196 #            self.dialogMap.clear() 
     196            self.dialogMap.clear() 
    197197            self.ui.actionCopy.setEnabled(True) 
    198198            self.ui.actionCut.setEnabled(True) 
Note: See TracChangeset for help on using the changeset viewer.