Example #1
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.normal = filereader.read_vec_f(3)
        self.UV = filereader.read_vec_f(2)
        self.unknown10 = filereader.read_float()  # no idea?
        self.color = filereader.read_rgb_color_24bpp_uint()
Example #2
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.vertexIndices: List[int] = filereader.read_vec_uint32(3)
        self.paramIndices: List[int] = filereader.read_vec_uint32(3)
        self.faceNormal: List[float] = filereader.read_vec_f(4)
        self.materialIndex: int = filereader.read_uint32()
Example #3
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.geometryListSize: int = filereader.read_uint32()
        self.id: int = filereader.read_uint32()
        self.geometry_list_string: SizedCString = SizedCString(filereader)
        self.count: int = filereader.read_uint32()
 def read_bit_mask(self, filereader: BinaryFileReader):
     """Reads the bitmask for each color channel. May be stored outside of the header in Version 0 files"""
     #bit depth information
     self.bitDepthRed = filereader.read_uint32()
     self.bitDepthGreen = filereader.read_uint32()
     self.bitDepthBlue = filereader.read_uint32()
     self.bitDepthAlpha = filereader.read_uint32()
Example #5
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        #3x3 matrix = 9 elements
        self.transformMatrix: List[float] = filereader.read_vec_f(9)
        self.position: List[float] = filereader.read_vec_f(3)
        self.unknown2: List[float] = filereader.read_vec_f(6)  #size?
Example #6
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.FileID: int = filereader.read_uint32()
        self.AmbientLightColor: List[float] = filereader.read_vec_f(4)
        self.unknown5: int = filereader.read_uint32()
        self.lightCount: int = filereader.read_uint32()
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.id: int = filereader.read_uint32()
        self.version_string: SizedCString = SizedCString(filereader)
        self.versionNumber: int = filereader.read_uint32()

        self.name_string: SizedCString = SizedCString(filereader)

        self.unknown1: int = filereader.read_bytes(1)[0]
        self.unknown2: int = filereader.read_bytes(1)[0]
        if self.unknown1 == 0:
            self.unknown3: int = filereader.read_bytes(1)[0]

        self.shermanLevelCount: int = filereader.read_uint32()
        self.shermanLevels: List[R6MAPShermanLevelDefinition] = []
        for _ in range(self.shermanLevelCount):
            newObject = R6MAPShermanLevelDefinition()
            newObject.read(filereader)
            self.shermanLevels.append(newObject)

        self.transitionCount: int = filereader.read_uint32()
        self.transitions: List[R6MAPShermanLevelTransitionDefinition] = []
        for _ in range(self.transitionCount):
            tempTransition = R6MAPShermanLevelTransitionDefinition()
            tempTransition.read(filereader)
            self.transitions.append(tempTransition)

        self.levelHeightsCount: int = filereader.read_uint32()
        self.levelHeights: List[float] = filereader.read_vec_f(
            self.levelHeightsCount * 2)

        self.unknown5Count: int = filereader.read_uint32()
        self.unknown5: List[float] = filereader.read_vec_f(self.unknown5Count)
Example #8
0
    def read_header_info(self, filereader: BinaryFileReader):
        """Reads top level information for this data structure"""
        self.size = filereader.read_uint32()
        self.id = filereader.read_uint32()

        self.version_string = SizedCString(filereader)
        self.versionNumber = filereader.read_uint32()

        self.name_string = SizedCString(filereader)
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.levelNumber: float = filereader.read_float()  #A
        self.floorHeight: float = filereader.read_float()  #B
        self.roomCount: int = filereader.read_uint32()
        self.roomNames: List[SizedCString] = []
        for _ in range(self.roomCount):
            string = SizedCString(filereader)
            self.roomNames.append(string)
Example #10
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.vertexIndices: List[int] = filereader.read_vec_uint16(3)

        self.unknown1: int = filereader.read_uint16()

        self.normalIndices: List[int] = filereader.read_vec_uint16(3)

        self.unknown2: int = filereader.read_uint16()
Example #11
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.name_string: SizedCString = SizedCString(filereader)

        self.geometryFlags: int = filereader.read_uint32()  #??
        self.geometryFlagsEvaluated: Dict[
            str, bool] = RSEGeometryFlags.EvaluateFlags(self.geometryFlags)

        self.faceCount: int = filereader.read_uint32()
        self.faceIndices: List[int] = filereader.read_vec_uint16(
            self.faceCount)
Example #12
0
 def read_header_info(self, filereader: BinaryFileReader):
     """Reads top level information for this data structure"""
     self.size = filereader.read_uint32()
     self.ID = filereader.read_uint32()
     self.name_string = SizedCString(filereader)
     #If the version string was actually set to version, then a version number is stored, along with object name
     if self.name_string.string == 'Version':
         self.version_string = self.name_string
         self.versionNumber = filereader.read_uint32()
         self.name_string = SizedCString(filereader)
         self.unknown4 = filereader.read_uint32()
         self.unknown5 = filereader.read_uint32()
Example #13
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.size = filereader.read_uint32()
        self.id = filereader.read_uint32()

        self.version_string = SizedCString(filereader)
        self.versionNumber = filereader.read_uint32()

        self.name_string = SizedCString(filereader)

        self.geometryData = RSMAPGeometryData()
        self.geometryData.read(filereader)
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.name_string: SizedCString = SizedCString(filereader)
        self.AABB: List[float] = filereader.read_vec_f(6)

        self.unknown2Count: int = filereader.read_uint32()
        self.unknown2: List[float] = filereader.read_vec_f(self.unknown2Count)

        self.hasShermanLevelPlanArea: int = filereader.read_bytes(1)[0]
        if self.hasShermanLevelPlanArea == 1:
            self.shermanLevelPlanArea: R6MAPShermanLevelPlanAreaDefinition = R6MAPShermanLevelPlanAreaDefinition(
            )
            self.shermanLevelPlanArea.read(filereader)
    def read(self, filereader: BinaryFileReader):
        """Reads the data from an RSB header. Overrides parent function"""
        super().read(filereader)

        self.version = filereader.read_uint32()
        self.width = filereader.read_uint32()
        self.height = filereader.read_uint32()

        if self.version == 0:
            self.containsPaletteRaw = filereader.read_uint32()
            if self.containsPaletteRaw == 1:
                self.containsPalette = True
            else:
                self.containsPalette = False

        #num_bytes_processed += 1
        if self.version > 7:
            #process 3 more variables
            self.unknown2 = filereader.read_uint32()
            self.unknown3 = filereader.read_uint32()
            self.unknown4 = filereader.read_bytes(1)

        if self.version > 0:
            #bit depth information
            self.read_bit_mask(filereader)

        if self.version >= 9:
            self.unknown5 = filereader.read_uint32()

            self.dxtType = filereader.read_uint32()
            if self.dxtType >= 0 and self.dxtType < 5:
                self.isDXT = True
Example #16
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.name_string: SizedCString = SizedCString(filereader)
        self.transformCount: int = filereader.read_uint32()  # ACount
        self.transforms: List[RSMAPShermanLevelTransformInformation] = []
        for _ in range(self.transformCount):
            transformObj = RSMAPShermanLevelTransformInformation()
            transformObj.read(filereader)
            self.transforms.append(transformObj)

        self.unknown3Count: int = filereader.read_uint32()
        self.unknown3: List[float] = filereader.read_vec_f(self.unknown3Count)

        self.unknown4: int = filereader.read_bytes(1)[0]
Example #17
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.name_string: SizedCString = SizedCString(filereader)
        log.debug(self.name_string.string)

        self.coords: List[float] = filereader.read_vec_f(6)
Example #18
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.vertexParamCount: int = filereader.read_uint32()

        self.normals: List[List[float]] = []
        for _ in range(self.vertexParamCount):
            self.normals.append(filereader.read_vec_f(3))

        self.UVs: List[List[float]] = []
        for _ in range(self.vertexParamCount):
            self.UVs.append(filereader.read_vec_f(2))

        self.colors: List[List[float]] = []
        for _ in range(self.vertexParamCount):
            self.colors.append(filereader.read_vec_f(4))
Example #19
0
 def read_planning_levels(self, filereader: BinaryFileReader):
     """Reads the planning level objects into a list"""
     self.planningLevelCount: int = filereader.read_uint32()
     self.planningLevels: List[R6MAPPlanningLevelDefinition] = []
     for _ in range(self.planningLevelCount):
         planLevel = R6MAPPlanningLevelDefinition()
         planLevel.read(filereader)
         self.planningLevels.append(planLevel)
Example #20
0
 def read_transition_objects(self, filereader: BinaryFileReader):
     """Reads the transition objects into a list"""
     self.transitionCount: int = filereader.read_uint32()
     self.transitions: List[RSMAPShermanLevelTransitionDefinition] = []
     for _ in range(self.transitionCount):
         transition = RSMAPShermanLevelTransitionDefinition()
         transition.read(filereader)
         self.transitions.append(transition)
Example #21
0
 def read_portals(self, filereader: BinaryFileReader):
     """reads all portals in list"""
     self.portalCount: int = filereader.read_uint32()
     self.portals: List[RSEMAPPortal] = []
     for _ in range(self.portalCount):
         newPortal = RSEMAPPortal()
         newPortal.read(filereader)
         self.portals.append(newPortal)
    def read(self, filereader: BinaryFileReader):
        """Reads data associated with an RSBPalette"""
        super().read(filereader)

        self.palette_entries = []
        for _ in range(self.num_palette_entries):
            temp = filereader.read_bgra_color_8bpp_byte()
            self.palette_entries.append(temp)
Example #23
0
 def read_faces(self, filereader: BinaryFileReader):
     """ Reads a count of the number of faces, followed by the list of faces """
     self.faceCount = filereader.read_uint32()
     self.faces = []
     for _ in range(self.faceCount):
         newFace = R6FaceDefinition()
         newFace.read(filereader)
         self.faces.append(newFace)
Example #24
0
 def read_meshes(self, filereader: BinaryFileReader):
     """ Reads a count of the number of meshes, followed by the list of meshes """
     self.meshCount = filereader.read_uint32()
     self.meshes = []
     for _ in range(self.meshCount):
         newMesh = R6MeshDefinition()
         newMesh.read(filereader)
         self.meshes.append(newMesh)
Example #25
0
 def read_vertex_params(self, filereader: BinaryFileReader):
     """ Reads a count of the number of vertex parameters, followed by the list of vertex parameters """
     self.vertexParamsCount = filereader.read_uint32()
     self.vertexParams = []
     for _ in range(self.vertexParamsCount):
         newParams = R6VertexParameterCollection()
         newParams.read(filereader)
         self.vertexParams.append(newParams)
Example #26
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.vertexCount = filereader.read_uint32()

        self.vertices = []
        for _ in range(self.vertexCount):
            self.vertices.append(filereader.read_vec_f(3))

        self.normalCount = filereader.read_uint32()

        self.normals = []
        self.faceDistancesFromOrigin = []

        for _ in range(self.normalCount):
            self.normals.append(filereader.read_vec_f(3))
            self.faceDistancesFromOrigin.append(filereader.read_float())

        self.faceCount = filereader.read_uint32()

        self.faces = []
        for _ in range(self.faceCount):
            faceObject = RSMAPCollisionFaceInformation()
            faceObject.read(filereader)
            self.faces.append(faceObject)

        self.collisionMeshDefinitionsCount = filereader.read_uint32()
        self.collisionMeshDefinitions = []
        for _ in range(self.collisionMeshDefinitionsCount):
            dataObject = RSMAPCollisionMesh()
            dataObject.read(filereader)
            self.collisionMeshDefinitions.append(dataObject)
Example #27
0
    def read(self, filereader: BinaryFileReader):
        super().read(filereader)

        self.unknown6 = filereader.read_uint32()

        #read header
        self.name_string = SizedCString(filereader)

        #read vertices
        self.numVertexIndices = filereader.read_uint32()
        self.vertexIndices = filereader.read_vec_uint32(self.numVertexIndices)

        #read faces
        self.numFaceIndices = filereader.read_uint32()
        self.faceIndices = filereader.read_vec_uint32(self.numFaceIndices)

        #read geometryFlags
        self.geometryFlags = filereader.read_uint32()
        self.geometryFlagsEvaluated = RSEGeometryFlags.EvaluateFlags(
            self.geometryFlags)

        #read unknown8
        self.unknown_8_string = SizedCString(filereader)

        #read unknown9
        self.unknown9 = filereader.read_uint32()
Example #28
0
    def read_objects(self, filereader: BinaryFileReader):
        """Reads all objects into a list"""
        self.objectCount: int = filereader.read_uint32()

        self.objects: List[RSEMAPObject] = []
        for _ in range(self.objectCount):
            newObject = RSEMAPObject()
            newObject.read(filereader)
            self.objects.append(newObject)
Example #29
0
    def read_face_groups(self, filereader: BinaryFileReader):
        """Reads the list of RSMAPFaceGroups from the file"""
        self.faceGroupCount = filereader.read_uint32()
        self.faceGroups: List[RSMAPFaceGroup] = []

        for _ in range(self.faceGroupCount):
            newFaceGroup = RSMAPFaceGroup()
            newFaceGroup.read(filereader)
            self.faceGroups.append(newFaceGroup)
    def read_lights(self, filereader: BinaryFileReader):
        """Reads all lights into list"""
        self.lightCount: int = filereader.read_uint32()

        self.lights: List[R6MAPLight] = []
        for _ in range(self.lightCount):
            newLight = R6MAPLight()
            newLight.read(filereader)
            self.lights.append(newLight)