public void ImportData() { BrakeParts.Import(); BrakeControllerParts.Import(); SteerParts.Import(); ChassisParts.Import(); LightweightParts.Import(); RacingModifyParts.Import(); EngineParts.Import(); PortPolishParts.Import(); EngineBalanceParts.Import(); DisplacementParts.Import(); ComputerParts.Import(); NATuneParts.Import(); TurbineKitParts.Import(); DrivetrainParts.Import(); FlywheelParts.Import(); ClutchParts.Import(); PropellerShaftParts.Import(); GearParts.Import(); SuspensionParts.Import(); IntercoolerParts.Import(); MufflerParts.Import(); LSDParts.Import(); TiresFrontParts.Import(); TiresRearParts.Import(); Unknown1.Import(); Unknown2.Import(); Unknown3.Import(); Unknown4.Import(); Unknown5.Import(); Unknown6.Import(); Unknown7.Import(); Cars.Import(); }
public void ImportData() { BrakeParts.Import(); BrakeControllerParts.Import(); SteerParts.Import(); ChassisParts.Import(); LightweightParts.Import(); RacingModifyParts.Import(); EngineParts.Import(); PortPolishParts.Import(); EngineBalanceParts.Import(); DisplacementParts.Import(); ComputerParts.Import(); NATuneParts.Import(); TurbineKitParts.Import(); DrivetrainParts.Import(); FlywheelParts.Import(); ClutchParts.Import(); PropellerShaftParts.Import(); GearParts.Import(); SuspensionParts.Import(); IntercoolerParts.Import(); MufflerParts.Import(); LSDParts.Import(); TireSizes.Import(); TireCompounds.Import(); TireForceVols.Import(); TiresFrontParts.Import(); TiresRearParts.Import(); ActiveStabilityControlParts.Import(); TractionControlSystemParts.Import(); Unknown.Import(); Cars.Import(); }
public void ReadData(string filename) { using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { var blocks = new List <DataBlock>(); for (int i = 1; i <= 34; i++) { file.Position = 8 * i; uint blockStart = file.ReadUInt(); uint blockSize = file.ReadUInt(); blocks.Add(new DataBlock { BlockStart = blockStart, BlockSize = blockSize }); } BrakeParts.Read(file, blocks[0].BlockStart, blocks[0].BlockSize); BrakeControllerParts.Read(file, blocks[1].BlockStart, blocks[1].BlockSize); SteerParts.Read(file, blocks[2].BlockStart, blocks[2].BlockSize); ChassisParts.Read(file, blocks[3].BlockStart, blocks[3].BlockSize); LightweightParts.Read(file, blocks[4].BlockStart, blocks[4].BlockSize); RacingModifyParts.Read(file, blocks[5].BlockStart, blocks[5].BlockSize); EngineParts.Read(file, blocks[6].BlockStart, blocks[6].BlockSize); PortPolishParts.Read(file, blocks[7].BlockStart, blocks[7].BlockSize); EngineBalanceParts.Read(file, blocks[8].BlockStart, blocks[8].BlockSize); DisplacementParts.Read(file, blocks[9].BlockStart, blocks[9].BlockSize); ComputerParts.Read(file, blocks[10].BlockStart, blocks[10].BlockSize); NATuneParts.Read(file, blocks[11].BlockStart, blocks[11].BlockSize); TurbineKitParts.Read(file, blocks[12].BlockStart, blocks[12].BlockSize); DrivetrainParts.Read(file, blocks[13].BlockStart, blocks[13].BlockSize); FlywheelParts.Read(file, blocks[14].BlockStart, blocks[14].BlockSize); ClutchParts.Read(file, blocks[15].BlockStart, blocks[15].BlockSize); PropellerShaftParts.Read(file, blocks[16].BlockStart, blocks[16].BlockSize); GearParts.Read(file, blocks[17].BlockStart, blocks[17].BlockSize); SuspensionParts.Read(file, blocks[18].BlockStart, blocks[18].BlockSize); IntercoolerParts.Read(file, blocks[19].BlockStart, blocks[19].BlockSize); MufflerParts.Read(file, blocks[20].BlockStart, blocks[20].BlockSize); LSDParts.Read(file, blocks[21].BlockStart, blocks[21].BlockSize); TiresFrontParts.Read(file, blocks[22].BlockStart, blocks[22].BlockSize); TiresRearParts.Read(file, blocks[23].BlockStart, blocks[23].BlockSize); Unknown1.Read(file, blocks[24].BlockStart, blocks[24].BlockSize); Unknown2.Read(file, blocks[25].BlockStart, blocks[25].BlockSize); Unknown3.Read(file, blocks[26].BlockStart, blocks[26].BlockSize); Unknown4.Read(file, blocks[27].BlockStart, blocks[27].BlockSize); Unknown5.Read(file, blocks[28].BlockStart, blocks[28].BlockSize); Unknown6.Read(file, blocks[29].BlockStart, blocks[29].BlockSize); Events.Read(file, blocks[30].BlockStart, blocks[30].BlockSize); EnemyCars.Read(file, blocks[31].BlockStart, blocks[31].BlockSize); Cars.Read(file, blocks[32].BlockStart, blocks[32].BlockSize); CarsSports.Read(file, blocks[33].BlockStart, blocks[33].BlockSize); uint stringTableStart = blocks[33].BlockStart + blocks[33].BlockSize; RaceStringTable.Read(file, stringTableStart, (uint)file.Length - stringTableStart); } }
public void WriteData() { using (FileStream file = new FileStream("paramdb_gtc_eu.db", FileMode.Create, FileAccess.ReadWrite)) { const uint DataTableCount = 0x24; file.WriteCharacters("GTAR"); file.WriteUInt(DataTableCount); uint dataStart = ((DataTableCount + 2) * 4) + 16; file.WriteUInt(dataStart); file.WriteUInt(0x07); file.Position = dataStart; ushort tableNumber = 0; BrakeParts.Write(file, dataStart, tableNumber++); BrakeBalanceControllerParts.Write(file, dataStart, tableNumber++); SteeringParts.Write(file, dataStart, tableNumber++); ChassisParts.Write(file, dataStart, tableNumber++); WeightReductionParts.Write(file, dataStart, tableNumber++); BodyParts.Write(file, dataStart, tableNumber++); EngineParts.Write(file, dataStart, tableNumber++); PortPolishingParts.Write(file, dataStart, tableNumber++); EngineBalancingParts.Write(file, dataStart, tableNumber++); DisplacementIncreaseParts.Write(file, dataStart, tableNumber++); ComputerParts.Write(file, dataStart, tableNumber++); NATuneParts.Write(file, dataStart, tableNumber++); TurboKitParts.Write(file, dataStart, tableNumber++); DrivetrainParts.Write(file, dataStart, tableNumber++); FlywheelParts.Write(file, dataStart, tableNumber++); ClutchParts.Write(file, dataStart, tableNumber++); PropellerShaftParts.Write(file, dataStart, tableNumber++); GearboxParts.Write(file, dataStart, tableNumber++); SuspensionParts.Write(file, dataStart, tableNumber++); IntercoolerParts.Write(file, dataStart, tableNumber++); MufflerParts.Write(file, dataStart, tableNumber++); LSDParts.Write(file, dataStart, tableNumber++); TCSCParts.Write(file, dataStart, tableNumber++); ASCCParts.Write(file, dataStart, tableNumber++); WheelsParts.Write(file, dataStart, tableNumber++); TyreSizeParts.Write(file, dataStart, tableNumber++); TyreForceVolParts.Write(file, dataStart, tableNumber++); TyreCompounds.Write(file, dataStart, tableNumber++); TyresFrontParts.Write(file, dataStart, tableNumber++); TyresRearParts.Write(file, dataStart, tableNumber++); Opponents.Write(file, dataStart, tableNumber++); Events.Write(file, dataStart, tableNumber++); Regulations.Write(file, dataStart, tableNumber++); Courses.Write(file, dataStart, tableNumber++); ArcadeCars.Write(file, dataStart, tableNumber++); Cars.Write(file, dataStart, tableNumber++); file.Position = dataStart - 8; file.WriteUInt((uint)file.Length - dataStart); } }
public void WriteData(string filename) { using (FileStream file = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite)) { file.Write(new byte[] { 0x47, 0x54, 0x44, 0x54, 0x6C, 0x00, 0x3E, 0x00 }, 0, 8); // The 0x3E is the number of indices file.Position = (0x3E * 8) + 7; file.WriteByte(0x00); // Data starts at 0x1F8 so position EOF uint i = 1; BrakeParts.Write(file, 8 * i++); BrakeControllerParts.Write(file, 8 * i++); SteerParts.Write(file, 8 * i++); ChassisParts.Write(file, 8 * i++); LightweightParts.Write(file, 8 * i++); RacingModifyParts.Write(file, 8 * i++); EngineParts.Write(file, 8 * i++); PortPolishParts.Write(file, 8 * i++); EngineBalanceParts.Write(file, 8 * i++); DisplacementParts.Write(file, 8 * i++); ComputerParts.Write(file, 8 * i++); NATuneParts.Write(file, 8 * i++); TurbineKitParts.Write(file, 8 * i++); DrivetrainParts.Write(file, 8 * i++); FlywheelParts.Write(file, 8 * i++); ClutchParts.Write(file, 8 * i++); PropellerShaftParts.Write(file, 8 * i++); GearParts.Write(file, 8 * i++); SuspensionParts.Write(file, 8 * i++); IntercoolerParts.Write(file, 8 * i++); MufflerParts.Write(file, 8 * i++); LSDParts.Write(file, 8 * i++); TiresFrontParts.Write(file, 8 * i++); TiresRearParts.Write(file, 8 * i++); Unknown1.Write(file, 8 * i++); Unknown2.Write(file, 8 * i++); Unknown3.Write(file, 8 * i++); Unknown4.Write(file, 8 * i++); Unknown5.Write(file, 8 * i++); Unknown6.Write(file, 8 * i++); Unknown7.Write(file, 8 * i++); Cars.Write(file, 8 * i++); file.Position = 0; using (FileStream zipFile = new FileStream(filename + ".gz", FileMode.Create, FileAccess.Write)) { using (GZipStream zip = new GZipStream(zipFile, CompressionMode.Compress)) { file.CopyTo(zip); } } } }
public void ReadData(string filename) { using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { var blocks = new List <DataBlock>(); for (int i = 1; i <= 31; i++) { file.Position = 8 * i; uint blockStart = file.ReadUInt(); uint blockSize = file.ReadUInt(); blocks.Add(new DataBlock { BlockStart = blockStart, BlockSize = blockSize }); } BrakeParts.Read(file, blocks[0].BlockStart, blocks[0].BlockSize); BrakeControllerParts.Read(file, blocks[1].BlockStart, blocks[1].BlockSize); SteerParts.Read(file, blocks[2].BlockStart, blocks[2].BlockSize); ChassisParts.Read(file, blocks[3].BlockStart, blocks[3].BlockSize); LightweightParts.Read(file, blocks[4].BlockStart, blocks[4].BlockSize); RacingModifyParts.Read(file, blocks[5].BlockStart, blocks[5].BlockSize); EngineParts.Read(file, blocks[6].BlockStart, blocks[6].BlockSize); PortPolishParts.Read(file, blocks[7].BlockStart, blocks[7].BlockSize); EngineBalanceParts.Read(file, blocks[8].BlockStart, blocks[8].BlockSize); DisplacementParts.Read(file, blocks[9].BlockStart, blocks[9].BlockSize); ComputerParts.Read(file, blocks[10].BlockStart, blocks[10].BlockSize); NATuneParts.Read(file, blocks[11].BlockStart, blocks[11].BlockSize); TurbineKitParts.Read(file, blocks[12].BlockStart, blocks[12].BlockSize); DrivetrainParts.Read(file, blocks[13].BlockStart, blocks[13].BlockSize); FlywheelParts.Read(file, blocks[14].BlockStart, blocks[14].BlockSize); ClutchParts.Read(file, blocks[15].BlockStart, blocks[15].BlockSize); PropellerShaftParts.Read(file, blocks[16].BlockStart, blocks[16].BlockSize); GearParts.Read(file, blocks[17].BlockStart, blocks[17].BlockSize); SuspensionParts.Read(file, blocks[18].BlockStart, blocks[18].BlockSize); IntercoolerParts.Read(file, blocks[19].BlockStart, blocks[19].BlockSize); MufflerParts.Read(file, blocks[20].BlockStart, blocks[20].BlockSize); LSDParts.Read(file, blocks[21].BlockStart, blocks[21].BlockSize); TiresFrontParts.Read(file, blocks[22].BlockStart, blocks[22].BlockSize); TiresRearParts.Read(file, blocks[23].BlockStart, blocks[23].BlockSize); TireSizes.Read(file, blocks[24].BlockStart, blocks[24].BlockSize); TireCompounds.Read(file, blocks[25].BlockStart, blocks[25].BlockSize); TireForceVols.Read(file, blocks[26].BlockStart, blocks[26].BlockSize); ActiveStabilityControlParts.Read(file, blocks[27].BlockStart, blocks[27].BlockSize); TractionControlSystemParts.Read(file, blocks[28].BlockStart, blocks[28].BlockSize); Unknown.Read(file, blocks[29].BlockStart, blocks[29].BlockSize); Cars.Read(file, blocks[30].BlockStart, blocks[30].BlockSize); } }
public void ImportData() { BrakeParts.Import(); BrakeBalanceControllerParts.Import(); SteeringParts.Import(); ChassisParts.Import(); WeightReductionParts.Import(); BodyParts.Import(); EngineParts.Import(); PortPolishingParts.Import(); EngineBalancingParts.Import(); DisplacementIncreaseParts.Import(); ComputerParts.Import(); NATuneParts.Import(); TurboKitParts.Import(); DrivetrainParts.Import(); FlywheelParts.Import(); ClutchParts.Import(); PropellerShaftParts.Import(); GearboxParts.Import(); SuspensionParts.Import(); IntercoolerParts.Import(); MufflerParts.Import(); LSDParts.Import(); TCSCParts.Import(); ASCCParts.Import(); WheelsParts.Import(); TyreSizeParts.Import(); TyreForceVolParts.Import(); TyreCompounds.Import(); TyresFrontParts.Import(); TyresRearParts.Import(); Opponents.Import(); Events.Import(); Regulations.Import(); Courses.Import(); ArcadeCars.Import(); Cars.Import(); }
public void ReadData(string filename) { using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { byte[] magic = new byte[4]; file.Read(magic); if (Encoding.ASCII.GetString(magic) != "GTAR") { Console.WriteLine("Not a GTAR archive."); return; } uint tableCount = file.ReadUInt(); uint dataStart = file.ReadUInt(); uint unknown = file.ReadUInt(); var dataTableStreams = new MemoryStream[tableCount]; for (int i = 0; i < tableCount; i++) { file.Position = (i * 4) + 0x10; uint start = file.ReadUInt(); uint end = file.ReadUInt(); uint length = end - start; file.Position = start + dataStart; byte[] buffer = new byte[length]; file.Read(buffer); dataTableStreams[i] = new MemoryStream(buffer); } BrakeParts.Read(dataTableStreams[0]); BrakeBalanceControllerParts.Read(dataTableStreams[1]); SteeringParts.Read(dataTableStreams[2]); ChassisParts.Read(dataTableStreams[3]); WeightReductionParts.Read(dataTableStreams[4]); BodyParts.Read(dataTableStreams[5]); EngineParts.Read(dataTableStreams[6]); PortPolishingParts.Read(dataTableStreams[7]); EngineBalancingParts.Read(dataTableStreams[8]); DisplacementIncreaseParts.Read(dataTableStreams[9]); ComputerParts.Read(dataTableStreams[10]); NATuneParts.Read(dataTableStreams[11]); TurboKitParts.Read(dataTableStreams[12]); DrivetrainParts.Read(dataTableStreams[13]); FlywheelParts.Read(dataTableStreams[14]); ClutchParts.Read(dataTableStreams[15]); PropellerShaftParts.Read(dataTableStreams[16]); GearboxParts.Read(dataTableStreams[17]); SuspensionParts.Read(dataTableStreams[18]); IntercoolerParts.Read(dataTableStreams[19]); MufflerParts.Read(dataTableStreams[20]); LSDParts.Read(dataTableStreams[21]); TCSCParts.Read(dataTableStreams[22]); ASCCParts.Read(dataTableStreams[23]); WheelsParts.Read(dataTableStreams[24]); TyreSizeParts.Read(dataTableStreams[25]); TyreForceVolParts.Read(dataTableStreams[26]); TyreCompounds.Read(dataTableStreams[27]); TyresFrontParts.Read(dataTableStreams[28]); TyresRearParts.Read(dataTableStreams[29]); Opponents.Read(dataTableStreams[30]); Events.Read(dataTableStreams[31]); Regulations.Read(dataTableStreams[32]); Courses.Read(dataTableStreams[33]); ArcadeCars.Read(dataTableStreams[34]); Cars.Read(dataTableStreams[35]); foreach (var stream in dataTableStreams) { stream.Dispose(); } } }