public void Read(BinaryReader reader, int length) { CamTrigger.Header1 = reader.ReadUInt32(); CamTrigger.Enabled = reader.ReadUInt32(); CamTrigger.HeaderT = reader.ReadSingle(); CamTrigger.Rotation.Read(reader, Constants.SIZE_VECTOR4); CamTrigger.Position.Read(reader, Constants.SIZE_VECTOR4); CamTrigger.Scale.Read(reader, Constants.SIZE_VECTOR4); reader.ReadUInt32(); UInt32 instances_cnt = reader.ReadUInt32(); CamTrigger.HeaderH = reader.ReadUInt32(); CamTrigger.Instances.Clear(); for (int i = 0; i < instances_cnt; ++i) { CamTrigger.Instances.Add(reader.ReadUInt16()); } // Camera CameraHeader = reader.ReadUInt32(); UnkShort = reader.ReadUInt16(); UnkFloat1 = reader.ReadSingle(); UnkVector1.Read(reader, Constants.SIZE_VECTOR4); UnkVector2.Read(reader, Constants.SIZE_VECTOR4); UnkFloat2 = reader.ReadSingle(); UnkFloat3 = reader.ReadSingle(); UnkInt1 = reader.ReadUInt32(); UnkInt2 = reader.ReadUInt32(); UnkInt3 = reader.ReadUInt32(); UnkInt4 = reader.ReadUInt32(); UnkInt5 = reader.ReadUInt32(); UnkInt6 = reader.ReadUInt32(); UnkFloat4 = reader.ReadSingle(); UnkFloat5 = reader.ReadSingle(); UnkFloat6 = reader.ReadSingle(); UnkFloat7 = reader.ReadSingle(); UnkInt7 = reader.ReadUInt32(); UnkInt8 = reader.ReadUInt32(); UnkInt9 = reader.ReadUInt32(); UnkFloat8 = reader.ReadSingle(); TypeIndex1 = reader.ReadUInt32(); TypeIndex2 = reader.ReadUInt32(); UnkByte = reader.ReadByte(); if (TypeIndex1 != 3 && subCamIdToCamera.ContainsKey(TypeIndex1)) { MainCamera1 = (CameraSubBase)Activator.CreateInstance(subCamIdToCamera[TypeIndex1]); MainCamera1.Read(reader, MainCamera1.GetLength()); } if (TypeIndex2 != 3 && subCamIdToCamera.ContainsKey(TypeIndex2)) { MainCamera2 = (CameraSubBase)Activator.CreateInstance(subCamIdToCamera[TypeIndex2]); MainCamera2.Read(reader, MainCamera2.GetLength()); } }
public void Write(BinaryWriter writer) { writer.Write(CamTrigger.Header1); writer.Write(CamTrigger.Enabled); writer.Write(CamTrigger.HeaderT); CamTrigger.Rotation.Write(writer); CamTrigger.Position.Write(writer); CamTrigger.Scale.Write(writer); writer.Write(CamTrigger.Instances.Count); writer.Write(CamTrigger.Instances.Count); writer.Write(CamTrigger.HeaderH); for (int i = 0; i < CamTrigger.Instances.Count; ++i) { writer.Write(CamTrigger.Instances[i]); } // writer.Write(CameraHeader); writer.Write(UnkShort); writer.Write(UnkFloat1); UnkVector1.Write(writer); UnkVector2.Write(writer); writer.Write(UnkFloat2); writer.Write(UnkFloat3); writer.Write(UnkInt1); writer.Write(UnkInt2); writer.Write(UnkInt3); writer.Write(UnkInt4); writer.Write(UnkInt5); writer.Write(UnkInt6); writer.Write(UnkFloat4); writer.Write(UnkFloat5); writer.Write(UnkFloat6); writer.Write(UnkFloat7); writer.Write(UnkInt7); writer.Write(UnkInt8); writer.Write(UnkInt9); writer.Write(UnkFloat8); writer.Write(TypeIndex1); writer.Write(TypeIndex2); writer.Write(UnkByte); if (MainCamera1 != null) { MainCamera1.Write(writer); } if (MainCamera2 != null) { MainCamera2.Write(writer); } }
public void Write(BinaryWriter writer) { writer.Write(ShaderType); switch (ShaderType) { case 23: writer.Write(IntParam); writer.Write(FloatParam[0]); writer.Write(FloatParam[1]); break; case 26: writer.Write(IntParam); writer.Write(FloatParam[0]); writer.Write(FloatParam[1]); writer.Write(FloatParam[2]); writer.Write(FloatParam[3]); break; case 16: case 17: writer.Write(FloatParam[0]); break; default: break; } if (Blob != null) { bitfieldData[29] = 1; } else { bitfieldData[29] = 0; } writer.Write(bitfieldData); writer.Write(UnkShort1); writer.Write(UnkShort2); UnkVector1.Write(writer); UnkVector2.Write(writer); UnkVector3.Write(writer); writer.Write(TextureId); writer.Write(UnkInt2); if (Blob != null) { Blob.Write(writer); } }
public void Read(BinaryReader reader, int length) { ShaderType = reader.ReadUInt32(); switch (ShaderType) { case 23: IntParam = reader.ReadUInt32(); FloatParam[0] = reader.ReadSingle(); FloatParam[1] = reader.ReadSingle(); break; case 26: IntParam = reader.ReadUInt32(); FloatParam[0] = reader.ReadSingle(); FloatParam[1] = reader.ReadSingle(); FloatParam[2] = reader.ReadSingle(); FloatParam[3] = reader.ReadSingle(); break; case 16: case 17: FloatParam[0] = reader.ReadSingle(); break; default: break; } reader.Read(bitfieldData, 0, bitfieldData.Length); //bitfield = reader.ReadUInt64(); UnkShort1 = reader.ReadUInt16(); UnkShort2 = reader.ReadUInt16(); UnkVector1.Read(reader, Constants.SIZE_VECTOR4); UnkVector2.Read(reader, Constants.SIZE_VECTOR4); UnkVector3.Read(reader, Constants.SIZE_VECTOR4); TextureId = reader.ReadUInt32(); UnkInt2 = reader.ReadUInt32(); if (bitfieldData[29] != 0) { Blob = new TwinBlob(); Blob.Read(reader, 0); } }
public void Read(BinaryReader reader, int length, bool Demo = false) { ShaderType = reader.ReadUInt32(); switch (ShaderType) { case 23: IntParam = reader.ReadUInt32(); FloatParam[0] = reader.ReadSingle(); FloatParam[1] = reader.ReadSingle(); break; case 26: IntParam = reader.ReadUInt32(); FloatParam[0] = reader.ReadSingle(); FloatParam[1] = reader.ReadSingle(); FloatParam[2] = reader.ReadSingle(); FloatParam[3] = reader.ReadSingle(); break; case 16: case 17: FloatParam[0] = reader.ReadSingle(); break; default: break; } ABlending = (AlphaBlending)reader.ReadByte(); AlphaRegSettingsIndex = reader.ReadByte(); ATest = (AlphaTest)reader.ReadByte(); ATestMethod = (AlphaTestMethod)reader.ReadByte(); AlphaValueToBeComparedTo = reader.ReadByte(); ProcessMethodWhenAlphaTestFailed = (ProcessAfterAlphaTestFailed)reader.ReadByte(); DAlphaTest = (DestinationAlphaTest)reader.ReadByte(); DAlphaTestMode = (DestinationAlphaTestMode)reader.ReadByte(); DepthTest = (DepthTestMethod)reader.ReadByte(); UnkVal1 = reader.ReadByte(); ShdMethod = (ShadingMethod)reader.ReadByte(); TxtMapping = (TextureMapping)reader.ReadByte(); MethodOfSpecifyingTextureCoordinates = (TextureCoordinatesSpecification)reader.ReadByte(); Fog = (Fogging)reader.ReadByte(); ContextNum = (Context)reader.ReadByte(); UnkVal2 = reader.ReadByte(); UnkVal3 = reader.ReadByte(); UsePresetAlphaRegSettings = reader.ReadBoolean(); SpecOfColA = (ColorSpecMethod)reader.ReadByte(); SpecOfColB = (ColorSpecMethod)reader.ReadByte(); SpecOfAlphaC = (AlphaSpecMethod)reader.ReadByte(); SpecOfColD = (ColorSpecMethod)reader.ReadByte(); FixedAlphaValue = reader.ReadByte(); TextureFilterWhenTextureIsExpanded = (TextureFilter)reader.ReadByte(); AlphaCorrectionValue = reader.ReadBoolean(); UnkFlag1 = reader.ReadBoolean(); UnkFlag2 = reader.ReadBoolean(); ZValueDrawingMask = (ZValueDrawMask)reader.ReadByte(); if (!Demo) { UnkFlag3 = reader.ReadBoolean(); BlobFlag = reader.ReadBoolean(); isDemo = false; } else { UnkFlag3 = false; BlobFlag = false; isDemo = true; } LodParamK = reader.ReadUInt16(); LodParamL = reader.ReadUInt16(); UnkVector1.Load(reader, 16); UnkVector2.Load(reader, 16); UnkVector3.Load(reader, 16); TextureId = reader.ReadUInt32(); reader.ReadUInt32(); // Shader type }
public void Write(BinaryWriter writer) { writer.Write(ShaderType); switch (ShaderType) { case 23: writer.Write(IntParam); writer.Write(FloatParam[0]); writer.Write(FloatParam[1]); break; case 26: writer.Write(IntParam); writer.Write(FloatParam[0]); writer.Write(FloatParam[1]); writer.Write(FloatParam[2]); writer.Write(FloatParam[3]); break; case 16: case 17: writer.Write(FloatParam[0]); break; default: break; } writer.Write((byte)ABlending); writer.Write(AlphaRegSettingsIndex); writer.Write((byte)ATest); writer.Write((byte)ATestMethod); writer.Write(AlphaValueToBeComparedTo); writer.Write((byte)ProcessMethodWhenAlphaTestFailed); writer.Write((byte)DAlphaTest); writer.Write((byte)DAlphaTestMode); writer.Write((byte)DepthTest); writer.Write(UnkVal1); writer.Write((byte)ShdMethod); writer.Write((byte)TxtMapping); writer.Write((byte)MethodOfSpecifyingTextureCoordinates); writer.Write((byte)Fog); writer.Write((byte)ContextNum); writer.Write(UnkVal2); writer.Write(UnkVal3); writer.Write(UsePresetAlphaRegSettings); writer.Write((byte)SpecOfColA); writer.Write((byte)SpecOfColB); writer.Write((byte)SpecOfAlphaC); writer.Write((byte)SpecOfColD); writer.Write(FixedAlphaValue); writer.Write((byte)TextureFilterWhenTextureIsExpanded); writer.Write(AlphaCorrectionValue); writer.Write(UnkFlag1); writer.Write(UnkFlag2); writer.Write((byte)ZValueDrawingMask); if (!isDemo) { writer.Write(UnkFlag3); writer.Write(BlobFlag); } writer.Write(LodParamK); writer.Write(LodParamL); UnkVector1.Save(writer); UnkVector2.Save(writer); UnkVector3.Save(writer); writer.Write(TextureId); writer.Write(ShaderType); }