def openFile(self): self.filelist.delete(0, Tkinter.END) options = { "initialdir": "input/", "initialfile": "", "defaultextension": ".w3x", "filetypes": [("Warcraft III Frozen Throne map", ".w3x")], "title": "Open a Frozen Throne map" } file = askopenfile(mode="rb", **options) self.filenameText.set(file.name) self.map = WC3Map(file, forceV1=True) with open("lib/wc3Files_compact.txt", "r") as f: self.map.createListfile(template=f) triggers = None try: triggers = read_WTS( io.BytesIO(self.map.mpq.read_file("war3map.wts"))) except: triggers = None for file in self.map.listfile: file_extention = file.rpartition(".")[2] try: if file == "war3map.w3e": #We have terrain self.tabHandle.tab(1, state="normal") self.terrainTab.openFile( io.BytesIO(self.map.mpq.read_file("war3map.w3e"))) if file_extention in ("w3t", "w3u", "w3a"): #We have items, units or abilities fileInfo = read_object( io.BytesIO(self.map.mpq.read_file(file)), file_extention, triggerDB=triggers) #ObjectReader(filename) if file_extention == "w3u": self.tabHandle.tab(2, state="normal") print("SETTING INFO") self.unitTab.setInfo( translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) if file_extention == "w3t": self.tabHandle.tab(3, state="normal") self.itemTab.setInfo( translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) if file_extention == "w3a": self.tabHandle.tab(4, state="normal") self.abilTab.setInfo( translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) except: print(traceback.format_exc()) self.filelist.insert(Tkinter.END, file)
def openFile(self): options = { "initialdir" : "input/", "defaultextension" : ".w3t", "filetypes" : [ ("Warcraft III Items", ".w3t"), ("Warcraft III Units", ".w3u"), ("Warcraft III Destructables", ".w3b"), ("Warcraft III Doodats", ".w3d"), ("Warcraft III Abilities", ".w3a"), ("Warcraft III Buffs", ".w3h"), ("Warcraft III Upgrades", ".w3q") ], "title" : "This is also a title!" } filename = askopenfilename(**options) self.filenameText.set(filename) if filename: file_extension = filename.rpartition(".")[2] #this is where we do stuff with open(filename, "rb") as f: fileInfo = read_object(f, file_extension)#ObjectReader(filename) self.fileInfo = fileInfo #for json output self.originalTab.setInfo(fileInfo["originalInfo"], "original", filename) self.customTab.setInfo(fileInfo["customInfo"], "custom", filename) translated = translate_info(fileInfo, file_extension) self.transTab.setInfo(translated, "translated", filename)
def openFile(self): options = { "initialdir": "input/", "defaultextension": ".w3t", "filetypes": [("Warcraft III Items", ".w3t"), ("Warcraft III Units", ".w3u"), ("Warcraft III Destructables", ".w3b"), ("Warcraft III Doodats", ".w3d"), ("Warcraft III Abilities", ".w3a"), ("Warcraft III Buffs", ".w3h"), ("Warcraft III Upgrades", ".w3q")], "title": "This is also a title!" } filename = askopenfilename(**options) self.filenameText.set(filename) if filename: file_extension = filename.rpartition(".")[2] #this is where we do stuff with open(filename, "rb") as f: fileInfo = read_object(f, file_extension) #ObjectReader(filename) self.fileInfo = fileInfo #for json output self.originalTab.setInfo(fileInfo["originalInfo"], "original", filename) self.customTab.setInfo(fileInfo["customInfo"], "custom", filename) translated = translate_info(fileInfo, file_extension) self.transTab.setInfo(translated, "translated", filename)
def openFile(self): self.filelist.delete(0, Tkinter.END) options = { "initialdir" : "input/", "initialfile" : "", "defaultextension" : ".w3x", "filetypes" : [("Warcraft III Frozen Throne map", ".w3x")], "title" : "Open a Frozen Throne map" } file = askopenfile(mode="rb", **options) self.filenameText.set(file.name) self.map = WC3Map(file, forceV1=True) with open("lib/wc3Files_compact.txt", "r") as f: self.map.createListfile(template=f) triggers = None try: triggers = read_WTS(io.BytesIO(self.map.mpq.read_file("war3map.wts"))) except: triggers = None for file in self.map.listfile: file_extention = file.rpartition(".")[2] try: if file == "war3map.w3e": #We have terrain self.tabHandle.tab(1, state="normal") self.terrainTab.openFile(io.BytesIO(self.map.mpq.read_file("war3map.w3e"))) if file_extention in ("w3t", "w3u", "w3a"): #We have items, units or abilities fileInfo = read_object(io.BytesIO(self.map.mpq.read_file(file)), file_extention, triggerDB=triggers)#ObjectReader(filename) if file_extention == "w3u": self.tabHandle.tab(2, state="normal") print("SETTING INFO") self.unitTab.setInfo(translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) if file_extention == "w3t": self.tabHandle.tab(3, state="normal") self.itemTab.setInfo(translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) if file_extention == "w3a": self.tabHandle.tab(4, state="normal") self.abilTab.setInfo(translate_info(fileInfo, file_extention), file_extention, self.filenameText.get()) except: print(traceback.format_exc()) self.filelist.insert(Tkinter.END, file)
mpqHandle.close() if trigger_file != None: # We can resolve TRIGSTR strings according to # what is written in the wts file. triggerDB = read_WTS(trigger_file) else: # No TRIGSTR resolving. :( triggerDB = None if item_file != None: itemData = read_W3T(item_file, triggerDB) translated_itemData = {"fileVersion" : itemData["fileVersion"], "originalInfo" : translate_info(itemData["originalInfo"], "w3t"), "customInfo" : translate_info(itemData["customInfo"], "w3t")} path = OUTPUTPATH+"war3map.w3t_itemData.json" with open(path, "w") as f: simplejson.dump(translated_itemData, fp = f, indent = " "*4) print "Wrote item data to '{0}'".format(path) else: print "Did not dump any item data." if ability_file != None: abilityData = read_W3A(ability_file, triggerDB) translated_abilityData = {"fileVersion" : abilityData["fileVersion"], "originalInfo" : translate_info(abilityData["originalInfo"], "w3a"),
if options.output_filename == None: filenameTuple = os.path.split(input_file) inputPath, inputFilename = filenameTuple # outFilename = inputFilename+".json" else: outFilename = options.output_filename outputDir = options.output_directory outputPath = os.path.join(outputDir, outFilename) if options.translate_data == True: if fileType not in TRANSLATE_SUPPORTED: raise RuntimeError("No translation supported for file type {0}".format(fileType)) customData = translate_info(data["customInfo"], fileType) origData = translate_info(data["originalInfo"], fileType) data = {"fileVersion" : data["fileVersion"], "originalData" : origData, "customData" : customData} with open(outputPath, "w") as f: simplejson.dump(data, f, indent=4 * ' ') print "Json data saved in {0}".format(outputPath) except IOError as error: traceback.print_exc() except Exception as error: print "==================" traceback.print_exc()
mpqHandle.close() if trigger_file != None: # We can resolve TRIGSTR strings according to # what is written in the wts file. triggerDB = read_WTS(trigger_file) else: # No TRIGSTR resolving. :( triggerDB = None if item_file != None: itemData = read_W3T(item_file, triggerDB) translated_itemData = { "fileVersion": itemData["fileVersion"], "originalInfo": translate_info(itemData["originalInfo"], "w3t"), "customInfo": translate_info(itemData["customInfo"], "w3t") } path = OUTPUTPATH + "war3map.w3t_itemData.json" with open(path, "w") as f: simplejson.dump(translated_itemData, fp=f, indent=" " * 4) print "Wrote item data to '{0}'".format(path) else: print "Did not dump any item data." if ability_file != None: abilityData = read_W3A(ability_file, triggerDB) translated_abilityData = { "fileVersion": abilityData["fileVersion"],