def __read_generic_object__(filehandle, filetype, triggerDB = None): read = DataReader(filehandle) if triggerDB != None: read.load_triggerDB(triggerDB) #variableTypes = [ # read.int, # read.float, # read.float, # read.string #] fileVersion = read.int() originalInfo = __readTable__(read, filetype) customInfo = __readTable__(read, filetype) data = {"fileVersion" : fileVersion, "originalInfo" : originalInfo, "customInfo" : customInfo} return data
def __read_generic_object__(filehandle, filetype, triggerDB=None): read = DataReader(filehandle) if triggerDB != None: read.load_triggerDB(triggerDB) #variableTypes = [ # read.int, # read.float, # read.float, # read.string #] fileVersion = read.int() originalInfo = __readTable__(read, filetype) customInfo = __readTable__(read, filetype) data = { "fileVersion": fileVersion, "originalInfo": originalInfo, "customInfo": customInfo } return data
def read_W3I(filehandle, triggerStrings = None): # def ReadFile(self): # self.info = {} # self.ReadInfo() read = DataReader(filehandle) if triggerStrings != None: read.load_triggerDB(triggerStrings) info = {} info["version"] = read.int() #print info["version"] info["saveCount"] = read.int() info["editVersion"] = read.int() info["name"] = read.string() info["author"] = read.string() info["description"] = read.string() info["recommendedPlayers"] = read.string() info["cameraBounds"] = [ read.float(), #1 read.float(), #2 read.float(), #3 read.float(), #4 read.float(), #5 read.float(), #6 read.float(), #7 read.float() #8 ] info["cameraComplements"] = [ read.int(), read.int(), read.int(), read.int() ] info["playWidth"] = read.int() info["playHeight"] = read.int() info["flags"] = read.flags() info["groundType"] = read.char() info["backgroundImageID"] = read.int() #-1 == none or custom, info["customLoadingScreen"] = read.string() #empty if none or not custom, info["loadingText"] = read.string() info["loadingTitle"] = read.string() info["loadingSubtitle"] = read.string() info["gameDataSet"] = read.int() #index in the preset list, 0=standard, info["prologuePath"] = read.string() info["prologueText"] = read.string() info["prologueTitle"] = read.string() info["prologueSubtitle"] = read.string() info["useTerrainFog"] = read.int() #0 == not used, >0 = index of terrain fog style dropdown info["fogInfo"] = { "startZ" : read.float(), "endZ" : read.float(), "density" : read.float(), "red" : read.byte(), "green" : read.byte(), "blue" : read.byte(), "alpha" : read.byte() } info["weatherID"] = read.int() #0=none; else = the id is in TerrainArt\Weather.slk info["soundEnvironment"] = read.string() info["tilesetLightID"] = read.char() info["waterInfo"] = { "red" : read.byte(), "green" : read.byte(), "blue" : read.byte(), "alpha" : read.byte() } info["playerData"] = __ReadArray__(read, __readPlayerData__ ) try: info["forceData"] = __ReadArray__(read, __readForceData__ ) except struct.error: info["forceData"] = None try: info["upgradeData"] = __ReadArray__(read, __readUpgradeData__ ) except struct.error: info["upgradeData"] = None try: info["techData"] = __ReadArray__(read, __readTechData__ ) except struct.error: info["techData"] = None try: info["unitData"] = __ReadArray__(read, __readUnitData__ ) except struct.error: info["unitData"] = None #print info["playerData"] #print info["forceData"] #print info["upgradeData"] #print info["techData"] #print info["unitData"] try: info["itemData"] = __ReadArray__(read, __readItemData__ ) except struct.error: info["itemData"] = None return info
def read_W3I(filehandle, triggerStrings=None): # def ReadFile(self): # self.info = {} # self.ReadInfo() read = DataReader(filehandle) if triggerStrings != None: read.load_triggerDB(triggerStrings) info = {} info["version"] = read.int() #print info["version"] info["saveCount"] = read.int() info["editVersion"] = read.int() info["name"] = read.string() info["author"] = read.string() info["description"] = read.string() info["recommendedPlayers"] = read.string() info["cameraBounds"] = [ read.float(), #1 read.float(), #2 read.float(), #3 read.float(), #4 read.float(), #5 read.float(), #6 read.float(), #7 read.float() #8 ] info["cameraComplements"] = [ read.int(), read.int(), read.int(), read.int() ] info["playWidth"] = read.int() info["playHeight"] = read.int() info["flags"] = read.flags() info["groundType"] = read.char() info["backgroundImageID"] = read.int() #-1 == none or custom, info["customLoadingScreen"] = read.string() #empty if none or not custom, info["loadingText"] = read.string() info["loadingTitle"] = read.string() info["loadingSubtitle"] = read.string() info["gameDataSet"] = read.int() #index in the preset list, 0=standard, info["prologuePath"] = read.string() info["prologueText"] = read.string() info["prologueTitle"] = read.string() info["prologueSubtitle"] = read.string() info["useTerrainFog"] = read.int( ) #0 == not used, >0 = index of terrain fog style dropdown info["fogInfo"] = { "startZ": read.float(), "endZ": read.float(), "density": read.float(), "red": read.byte(), "green": read.byte(), "blue": read.byte(), "alpha": read.byte() } info["weatherID"] = read.int( ) #0=none; else = the id is in TerrainArt\Weather.slk info["soundEnvironment"] = read.string() info["tilesetLightID"] = read.char() info["waterInfo"] = { "red": read.byte(), "green": read.byte(), "blue": read.byte(), "alpha": read.byte() } info["playerData"] = __ReadArray__(read, __readPlayerData__) try: info["forceData"] = __ReadArray__(read, __readForceData__) except struct.error: info["forceData"] = None try: info["upgradeData"] = __ReadArray__(read, __readUpgradeData__) except struct.error: info["upgradeData"] = None try: info["techData"] = __ReadArray__(read, __readTechData__) except struct.error: info["techData"] = None try: info["unitData"] = __ReadArray__(read, __readUnitData__) except struct.error: info["unitData"] = None #print info["playerData"] #print info["forceData"] #print info["upgradeData"] #print info["techData"] #print info["unitData"] try: info["itemData"] = __ReadArray__(read, __readItemData__) except struct.error: info["itemData"] = None return info