Exemple #1
0
    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)
Exemple #2
0
 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)
Exemple #3
0
    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)
Exemple #4
0
 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()
Exemple #7
0
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"],