Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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