示例#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)
示例#2
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)
    print
    unit_file = None

try:
    trigger_file = WarMap.read_file("war3map.wts")
except Exception as error:
    print "Couldn't extract trigger string file:" +str(error)
    print "TRIGSTR resolving will not be available."
    trigger_file = None

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:
示例#4
0
    print
    unit_file = None

try:
    trigger_file = WarMap.read_file("war3map.wts")
except Exception as error:
    print "Couldn't extract trigger string file:" + str(error)
    print "TRIGSTR resolving will not be available."
    trigger_file = None

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: