protected override void SanitizeOnSave() { base.SanitizeOnSave(); /* Start check regarding OM Flag */ // Check if OM Texture is valid bool bIsOMTextureValid = (omTextureHash.Hash != 0); // Cache-Off flag bool bHasOMFlag = flags.HasFlag(SingleMeshFlags.OM_Flag); // If we have the flag but we it isn't valid if (bHasOMFlag && !bIsOMTextureValid) { // Remove flag flags &= ~SingleMeshFlags.OM_Flag; } // If we have a valid hash but don't have the flag. if (bIsOMTextureValid && !bHasOMFlag) { // Add flag flags |= SingleMeshFlags.OM_Flag; } /* End check regarding OM Flag */ }
public override void ReadFromFile(BinaryReader reader) { base.ReadFromFile(reader); flags = (SingleMeshFlags)reader.ReadInt32(); bounds = new BoundingBox(reader); unk_14_byte = reader.ReadByte(); meshIndex = reader.ReadInt32(); materialIndex = reader.ReadInt32(); unk_17_textureHash = new Hash(reader); unk_18_byte1 = reader.ReadByte(); unk_18_byte2 = reader.ReadByte(); unk_18_byte3 = reader.ReadByte(); }
/// <summary> /// Build basic singleMesh data. /// </summary> public FrameObjectSingleMesh() : base() { flags = SingleMeshFlags.Unk14_Flag | SingleMeshFlags.flag_32 | SingleMeshFlags.flag_67108864; bounds = new BoundingBox(); unk_14_byte = 255; meshIndex = 0; materialIndex = 0; transformMatrix = new TransformMatrix(); unk_17_textureHash = new Hash(); unk_18_byte1 = 0; unk_18_byte2 = 0; unk_18_byte3 = 0; }
public FrameObjectSingleMesh() : base() { flags = SingleMeshFlags.Unk14_Flag | SingleMeshFlags.flag_32 | SingleMeshFlags.flag_67108864; bounds = new BoundingBox(); unk14 = 255; meshIndex = 0; materialIndex = 0; localTransform = new Matrix(); omTextureHash = new HashName(); unk18_1 = 0; unk18_2 = 0; unk18_3 = 0; }
public override void ReadFromFile(MemoryStream reader, bool isBigEndian) { base.ReadFromFile(reader, isBigEndian); flags = (SingleMeshFlags)reader.ReadInt32(isBigEndian); bounds = BoundingBoxExtenders.ReadFromFile(reader, isBigEndian); unk14 = reader.ReadByte8(); meshIndex = reader.ReadInt32(isBigEndian); materialIndex = reader.ReadInt32(isBigEndian); omTextureHash = new HashName(reader, isBigEndian); unk18_1 = reader.ReadByte8(); unk18_2 = reader.ReadByte8(); unk18_3 = reader.ReadByte8(); }
public FrameObjectSingleMesh(FrameObjectSingleMesh other) : base(other) { flags = other.flags; bounds = other.bounds; unk14 = other.unk14; meshIndex = other.meshIndex; materialIndex = other.materialIndex; omTextureHash = new HashName(other.omTextureHash.String); unk18_1 = other.unk18_1; unk18_2 = other.unk18_2; unk18_3 = other.unk18_3; material = other.material; geometry = other.geometry; }