def generateGoMenu(): locations = wolfpack.getdefinitions(WPDT_LOCATION) gomenu = MakeMenu('GOMENU', None, 'Go Menu') submenus = {} for location in locations: if not location.hasattribute('category'): continue categories = location.getattribute('category').split('\\') description = categories[len(categories) - 1] # Name of the action categories = categories[:len(categories) - 1] # Iterate trough the categories and see if they're all there category = '' if len(categories) > 0 and not submenus.has_key('\\'.join(categories) + '\\'): for subcategory in categories: if not submenus.has_key(category + subcategory + '\\'): # Category is our parent category parent = None if len(category) == 0: parent = gomenu elif category in submenus: parent = submenus[category] category += subcategory + '\\' menu = MakeMenu('GOMENU_' + category, parent, subcategory) submenus[category] = menu else: category += subcategory + '\\' # Parse the position of this makemenu entry if location.text.count(',') != 3: raise RuntimeError, "Wrong position information for location %s." % location.getattribute( 'id') (x, y, z, map) = location.text.split(',') pos = wolfpack.coord(int(x), int(y), int(z), int(map)) if len(categories) == 0: GoAction(gomenu, description, pos) else: GoAction(submenus['\\'.join(categories) + '\\'], description, pos) for menu in submenus.values(): menu.sort() gomenu.sort() return
def generateGoMenu(): locations = wolfpack.getdefinitions(WPDT_LOCATION) gomenu = MakeMenu("GOMENU", None, "Go Menu") submenus = {} for location in locations: if not location.hasattribute("category"): continue categories = location.getattribute("category").split("\\") description = categories[len(categories) - 1] # Name of the action categories = categories[: len(categories) - 1] # Iterate trough the categories and see if they're all there category = "" if len(categories) > 0 and not submenus.has_key("\\".join(categories) + "\\"): for subcategory in categories: if not submenus.has_key(category + subcategory + "\\"): # Category is our parent category parent = None if len(category) == 0: parent = gomenu elif category in submenus: parent = submenus[category] category += subcategory + "\\" menu = MakeMenu("GOMENU_" + category, parent, subcategory) submenus[category] = menu else: category += subcategory + "\\" # Parse the position of this makemenu entry if location.text.count(",") != 3: raise RuntimeError, "Wrong position information for location %s." % location.getattribute("id") (x, y, z, map) = location.text.split(",") pos = wolfpack.coord(int(x), int(y), int(z), int(map)) if len(categories) == 0: GoAction(gomenu, description, pos) else: GoAction(submenus["\\".join(categories) + "\\"], description, pos) for menu in submenus.values(): menu.sort() gomenu.sort() return
def generateGoMenu(): locations = wolfpack.getdefinitions(WPDT_LOCATION) gomenu = MakeMenu('GOMENU', None, 'Go Menu') submenus = {} for location in locations: if not location.hasattribute('category'): continue categories = location.getattribute('category').split('\\') description = categories[len(categories)-1] # Name of the action categories = categories[:len(categories)-1] # Iterate trough the categories and see if they're all there category = '' if len(categories) > 0 and not submenus.has_key('\\'.join(categories) + '\\'): for subcategory in categories: if not submenus.has_key(category + subcategory + '\\'): # Category is our parent category parent = None if len(category) == 0: parent = gomenu elif submenus.has_key(category): parent = submenus[category] category += subcategory + '\\' menu = MakeMenu('GOMENU_' + category, parent, subcategory) submenus[category] = menu else: category += subcategory + '\\' # Parse the position of this makemenu entry if location.text.count(',') != 3: raise RuntimeError, "Wrong position information for location %s." % location.getattribute('id') (x, y, z, map) = location.text.split(',') pos = wolfpack.coord(int(x), int(y), int(z), int(map)) if len(categories) == 0: GoAction(gomenu, description, pos) else: GoAction(submenus['\\'.join(categories) + '\\'], description, pos) for menu in submenus.values(): menu.sort() gomenu.sort()
def generateAddMenu(): items = wolfpack.getdefinitions(WPDT_ITEM) addmenu= MakeMenu('ADDMENU', None, 'Add Menu') submenus = {} for item in items: if not item.hasattribute('id'): continue child = item.findchild('category') if not child: continue categories = ['Items'] + child.text.split('\\') description = categories[len(categories)-1] # Name of the action categories = categories[:len(categories)-1] # Iterate trough the categories and see if they're all there category = '' if len(categories) > 0 and not submenus.has_key('\\'.join(categories) + '\\'): for subcategory in categories: if not submenus.has_key(category + subcategory + '\\'): # Category is our parent category parent = None if len(category) == 0: parent = addmenu elif submenus.has_key(category): parent = submenus[category] category += subcategory + '\\' menu = MakeMenu('ADDMENU_' + category, parent, subcategory) submenus[category] = menu else: category += subcategory + '\\' child = item.findchild('id') if child: try: id = int(child.value) except: id = 0 else: id = 0 definition = item.getattribute('id') # Parse the position of this makemenu entry if len(categories) == 0: additem = AddItemAction(addmenu, description, id, definition) else: additem = AddItemAction(submenus['\\'.join(categories) + '\\'], description, id, definition) additem.description = 'Definition: ' + definition for menu in submenus.values(): menu.sort() npcs = wolfpack.getdefinitions(WPDT_NPC) submenus = {} for npc in npcs: if not npc.hasattribute('id'): continue child = npc.findchild('category') if not child: continue categories = ['NPCs'] + child.text.split('\\') description = categories[len(categories)-1] # Name of the action categories = categories[:len(categories)-1] # Iterate trough the categories and see if they're all there category = '' if len(categories) > 0 and not submenus.has_key('\\'.join(categories) + '\\'): for subcategory in categories: if not submenus.has_key(category + subcategory + '\\'): # Category is our parent category parent = None if len(category) == 0: parent = addmenu elif submenus.has_key(category): parent = submenus[category] category += subcategory + '\\' menu = MakeMenu('ADDMENU_' + category, parent, subcategory) submenus[category] = menu else: category += subcategory + '\\' definition = npc.getattribute('id') # Parse the position of this makemenu entry if len(categories) == 0: addnpc = AddNpcAction(addmenu, description, definition) else: addnpc = AddNpcAction(submenus['\\'.join(categories) + '\\'], description, definition) addnpc.description = 'Definition: ' + definition for menu in submenus.values(): menu.sort() addmenu.sort()