public override void Read(CGameCtnCollection n, GameBoxReader r, GameBoxWriter unknownW) { _ = r.ReadString(); _ = r.ReadInt32(); _ = r.ReadString(); _ = r.ReadString(); }
public override void Read(CGameCtnCollection n, GameBoxReader r) { _ = r.ReadString(); _ = r.ReadInt32(); _ = r.ReadString(); _ = r.ReadString(); }
public override void Read(CGameCtnCollection n, GameBoxReader r) { _ = r.ReadByte(); _ = r.ReadString(); _ = r.ReadInt32(); _ = r.ReadString(); _ = r.ReadArray <int>(3); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.game = r.ReadString(); U01 = r.ReadInt32(); U02 = r.ReadInt32(); U03 = r.ReadInt32(); U04 = r.ReadString(); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.titleID = r.ReadId(); n.authorVersion = r.ReadInt32(); n.authorLogin = r.ReadString(); n.authorNickname = r.ReadString(); n.authorZone = r.ReadString(); n.authorExtraInfo = r.ReadString(); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); n.AuthorVersion = r.ReadInt32(); n.AuthorLogin = r.ReadString(); n.AuthorNickname = r.ReadString(); n.AuthorZone = r.ReadString(); n.AuthorExtraInfo = r.ReadString(); }
private NadeoPakFolder[] ReadFolders(GameBoxReader r) { var numFolders = r.ReadInt32(); var folders = new NadeoPakFolder[numFolders]; for (var i = 0; i < numFolders; i++) { var parentFolderIndex = r.ReadInt32(); // index into folders; -1 if this is a root folder var name = r.ReadString(); var folder = new NadeoPakFolder(name, parentFolderIndex == -1 ? null : folders[parentFolderIndex]); if (parentFolderIndex == -1) { Folders.Add(folder); } else { folders[parentFolderIndex].Folders.Add(folder); } folders[i] = folder; } if (folders.Length > 2 && folders[2].Name.Length > 4) { byte[] nameBytes = Encoding.Unicode.GetBytes(folders[2].Name); blowfish.Initialize(nameBytes, 4, 4); } return(folders); }
public override void Read(CGameCtnCollection n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadByte(); n.CollectionID = r.ReadByte(); _ = r.ReadBytes(6); n.CollectionPackMask = r.ReadByte(); n.DisplayName = r.ReadString(); _ = r.ReadInt32(); n.CollectionIcon = r.ReadString(); _ = r.ReadArray <int>(2); n.BlockInfoFlat = r.ReadId(this); n.Vehicle = r.ReadIdent(this); _ = r.ReadInt32(); _ = r.ReadArray <float>(4); n.LoadingScreen = r.ReadString(); _ = r.ReadArray <int>(7); _ = r.ReadString(); _ = r.ReadInt32(); }
public override void Read(CGameNetOnlineMessage n, GameBoxReader r) { n.ReceiverLogin = r.ReadString(); n.SenderLogin = r.ReadString(); n.Subject = r.ReadString(); n.Message = r.ReadString(); n.Donation = r.ReadInt32(); U01 = r.ReadInt32(); var date = r.ReadInt64(); var year = (int)(date & 0xFFFF); var month = (int)((date >> 16) & 0xF); var day = (int)((date >> 23) & 0xF); var hour = (int)((date >> 32) & 0x1F); var minute = (int)((date >> 37) & 0x3F); var second = (int)((date >> 43) & 0x3F); n.Date = new DateTime(year, month, day, hour, minute, second); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); if (Version >= 2) { n.MapInfo = r.ReadIdent(); n.Time = r.ReadTimeSpan(); n.Nickname = r.ReadString(); if (Version >= 6) { n.DriverLogin = r.ReadString(); if (Version >= 8) { U01 = r.ReadByte(); n.TitleID = r.ReadId(); } } } }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { Version = r.ReadInt32(); if (Version >= 2) { n.mapInfo = r.ReadIdent(); n.time = r.ReadInt32_msn(); n.playerNickname = r.ReadString(); if (Version >= 6) { n.playerLogin = r.ReadString(); if (Version >= 8) { U01 = r.ReadByte(); n.titleID = r.ReadId(); } } } }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r, GameBoxWriter unknownW) { var v = r.ReadInt32(); if (v != 0) { r.ReadInt32(); var controlNames = r.ReadArray(i => { r.ReadInt32(); r.ReadInt32(); return(r.ReadString()); }); var numControlEntries = r.ReadInt32() - 1; var controlEntries = new (int, int, int)[numControlEntries];
public override void Read(CInputBindingsConfig n, GameBoxReader r) { var race = r.ReadString(); n.Bindings = r.ReadList <Binding>((i, r1) => { //if (i == 0) r1.ReadInt32(); return(new Binding { KeyCode = r1.ReadInt32(), DeviceGuid = r1.ReadId(), U01 = r1.ReadInt32(), U02 = r1.ReadInt32(), Action = r1.ReadString() }); }); }
public void Read(GameBoxReader r) { var classId = r.ReadUInt32(); Version = r.ReadInt32(); if (Version < 3) { return; } var typeCount = r.ReadByte(); var types = new ScriptVariable[typeCount]; for (var i = 0; i < typeCount; i++) { var varType = r.ReadByte(); types[i] = (ScriptType)varType switch { ScriptType.Array => ReadScriptArray(r), ScriptType.Struct => ReadScriptStruct(out int _, r), _ => new ScriptVariable((ScriptType)varType), }; } var varCount = r.ReadByte(); var metadata = new ScriptVariable[varCount]; for (var i = 0; i < varCount; i++) { var metadataVarName = r.ReadString(StringLengthPrefix.Byte); var typeIndex = r.ReadByte(); var type = types[typeIndex]; metadata[i] = ReadType(type.Clone(), r); metadata[i].Name = metadataVarName; } Metadata = metadata.ToList(); var facade = r.ReadUInt32(); }
private void ReadFiles(GameBoxReader r, NadeoPakFolder[] folders) { var numFiles = r.ReadInt32(); var files = new NadeoPakFile[numFiles]; for (var i = 0; i < numFiles; i++) { var folderIndex = r.ReadInt32(); // index into folders var name = r.ReadString(); var unknown = r.ReadInt32(); var uncompressedSize = r.ReadInt32(); var compressedSize = r.ReadInt32(); var offset = r.ReadInt32(); var classID = CMwNod.Remap(r.ReadUInt32()); // indicates the type of the file var flags = r.ReadUInt64(); var folder = folders.ElementAtOrDefault(folderIndex); var file = new NadeoPakFile(this, folder, name, uncompressedSize, compressedSize, offset, classID, flags) { U01 = unknown }; files[i] = file; if (folder == null) { Files.Add(file); } else { folder.Files.Add(file); } } this.files = files; }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { Version = r.ReadInt32(); r.ReadString(); // CampaignSolo }
public void Read(GameBoxReader r) { var classId = r.ReadUInt32(); Version = r.ReadInt32(); var typeCount = r.ReadByte(); var types = new ScriptVariable[typeCount]; for (var i = 0; i < typeCount; i++) { var varType = r.ReadByte(); switch ((ScriptType)varType) { case ScriptType.Array: types[i] = ReadScriptArray(); break; case ScriptType.Struct: types[i] = ReadScriptStruct(out int defaultLength); break; default: types[i] = new ScriptVariable((ScriptType)varType); break; } } var varCount = r.ReadByte(); var metadata = new ScriptVariable[varCount]; for (var i = 0; i < varCount; i++) { var metadataVarName = r.ReadString(StringLengthPrefix.Byte); var typeIndex = r.ReadByte(); var type = types[typeIndex]; metadata[i] = ReadType(type.Clone()); metadata[i].Name = metadataVarName; } Metadata = metadata.ToList(); var facade = r.ReadUInt32(); ScriptArray ReadScriptArray() { ScriptVariable indexVar; var indexType = r.ReadByte(); // index if ((ScriptType)indexType == ScriptType.Struct) { indexVar = ReadScriptStruct(out int defaultLength); } else { indexVar = new ScriptVariable((ScriptType)indexType); } ScriptVariable valueVar; var arrayType = r.ReadByte(); // value if ((ScriptType)arrayType == ScriptType.Array) { valueVar = ReadScriptArray(); } else if ((ScriptType)arrayType == ScriptType.Struct) { valueVar = ReadScriptStruct(out int defaultLength); } else { valueVar = new ScriptVariable((ScriptType)arrayType); } ScriptArray array = new ScriptArray(new KeyValuePair <ScriptVariable, ScriptVariable>(indexVar, valueVar)); int counterArray = 0; while (r.ReadByte() == 0) { counterArray++; } r.BaseStream.Position -= 1; array.Unknown = counterArray; return(array); } ScriptStruct ReadScriptStruct(out int defaultLength) { var strc = new ScriptStruct(); var numMembers = r.ReadByte(); var structName = r.ReadString(); strc.StructName = structName; strc.Members = new ScriptVariable[numMembers]; defaultLength = 0; for (var i = 0; i < numMembers; i++) { ScriptVariable member; var memberName = r.ReadString(); var memberType = r.ReadByte(); switch ((ScriptType)memberType) { case ScriptType.Array: member = ReadScriptArray(); break; case ScriptType.Struct: member = ReadScriptStruct(out int defLength); defaultLength += defLength; break; default: member = new ScriptVariable((ScriptType)memberType); break; } switch (member.Type) { case ScriptType.Integer: r.ReadInt32(); defaultLength += 4; break; case ScriptType.Real: r.ReadSingle(); defaultLength += 4; break; case ScriptType.Vec2: r.ReadVec2(); defaultLength += 8; break; case ScriptType.Vec3: r.ReadVec3(); defaultLength += 12; break; case ScriptType.Int3: r.ReadInt3(); defaultLength += 12; break; case ScriptType.Int2: r.ReadInt2(); defaultLength += 8; break; case ScriptType.Array: break; case ScriptType.Struct: break; default: r.ReadByte(); defaultLength += 1; break; } member.Name = memberName; strc.Members[i] = member; } int counter = 0; while (r.ReadByte() == 0) { counter++; } r.BaseStream.Position -= 1; //int counter = 0; //while (r.ReadByte() == 0) counter++; // probably size of the struct in byte count? //r.BaseStream.Position -= 1; strc.Size = defaultLength + counter; // strc.Unknown = counter; //Progress += defaultLength; return(strc); } ScriptVariable ReadType(ScriptVariable type) { switch (type.Type) { case ScriptType.Boolean: type.Value = Convert.ToBoolean(r.ReadBoolean(true)); break; case ScriptType.Integer: type.Value = r.ReadInt32(); break; case ScriptType.Real: type.Value = r.ReadSingle(); break; case ScriptType.Text: type.Value = r.ReadString(StringLengthPrefix.Byte); break; case ScriptType.Vec2: type.Value = r.ReadVec2(); break; case ScriptType.Vec3: type.Value = r.ReadVec3(); break; case ScriptType.Int3: type.Value = r.ReadInt3(); break; case ScriptType.Int2: type.Value = r.ReadInt2(); break; case ScriptType.Array: var array = type as ScriptArray; var numElements = r.ReadByte(); if (numElements > 0) { ScriptVariable key; if (array.Reference.Key.Type == ScriptType.Void) { for (var i = 0; i < numElements; i++) { array.Elements[new ScriptVariable(ScriptType.Void) { Value = i }] = ReadType(array.Reference.Value.Clone()); } } else { key = ReadType(array.Reference.Key.Clone()); for (var i = 0; i < numElements; i++) { array.Elements[key] = ReadType(array.Reference.Value.Clone()); } } } break; case ScriptType.Struct: var strc = type as ScriptStruct; for (var i = 0; i < strc.Members.Length; i++) { strc.Members[i] = ReadType(strc.Members[i]); } break; default: throw new Exception(type.Type.ToString()); } return(type); } }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.xml = r.ReadString(); }
private static ScriptVariable ReadType(ScriptVariable type, GameBoxReader r) { switch (type.Type) { case ScriptType.Boolean: type.Value = r.ReadBoolean(true); break; case ScriptType.Integer: type.Value = r.ReadInt32(); break; case ScriptType.Real: type.Value = r.ReadSingle(); break; case ScriptType.Text: type.Value = r.ReadString(StringLengthPrefix.Byte); break; case ScriptType.Vec2: type.Value = r.ReadVec2(); break; case ScriptType.Vec3: type.Value = r.ReadVec3(); break; case ScriptType.Int3: type.Value = r.ReadInt3(); break; case ScriptType.Int2: type.Value = r.ReadInt2(); break; case ScriptType.Array: var array = (ScriptArray)type; var numElements = r.ReadByte(); if (numElements > 0) { ScriptVariable key; if (array.Reference.Key.Type == ScriptType.Void) { for (var i = 0; i < numElements; i++) { array.Elements[new ScriptVariable(ScriptType.Void) { Value = i }] = ReadType(array.Reference.Value.Clone(), r); } } else { key = ReadType(array.Reference.Key.Clone(), r); for (var i = 0; i < numElements; i++) { array.Elements[key] = ReadType(array.Reference.Value.Clone(), r); } } } break; case ScriptType.Struct: var strc = (ScriptStruct)type; for (var i = 0; i < strc.Members.Length; i++) { strc.Members[i] = ReadType(strc.Members[i], r); } break; default: throw new Exception(type.Type.ToString()); } return(type); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r, GameBoxWriter unknownW) { n.XML = r.ReadString(); }
private static ScriptStruct ReadScriptStruct(out int defaultLength, GameBoxReader r) { var strc = new ScriptStruct(); var numMembers = r.ReadByte(); var structName = r.ReadString(); strc.StructName = structName; strc.Members = new ScriptVariable[numMembers]; defaultLength = 0; for (var i = 0; i < numMembers; i++) { ScriptVariable member; var memberName = r.ReadString(); var memberType = r.ReadByte(); switch ((ScriptType)memberType) { case ScriptType.Array: member = ReadScriptArray(r); break; case ScriptType.Struct: member = ReadScriptStruct(out int defLength, r); defaultLength += defLength; break; default: member = new ScriptVariable((ScriptType)memberType); break; } switch (member.Type) { case ScriptType.Integer: r.ReadInt32(); defaultLength += 4; break; case ScriptType.Real: r.ReadSingle(); defaultLength += 4; break; case ScriptType.Vec2: r.ReadVec2(); defaultLength += 8; break; case ScriptType.Vec3: r.ReadVec3(); defaultLength += 12; break; case ScriptType.Int3: r.ReadInt3(); defaultLength += 12; break; case ScriptType.Int2: r.ReadInt2(); defaultLength += 8; break; case ScriptType.Array: break; case ScriptType.Struct: break; default: r.ReadByte(); defaultLength += 1; break; } member.Name = memberName; strc.Members[i] = member; } int counter = 0; while (r.ReadByte() == 0) { counter++; } r.BaseStream.Position -= 1; //int counter = 0; //while (r.ReadByte() == 0) counter++; // probably size of the struct in byte count? //r.BaseStream.Position -= 1; strc.Size = defaultLength + counter; // strc.Unknown = counter; //Progress += defaultLength; return(strc); }
internal void Read(GameBoxReader reader) { var numFiles = reader.ReadInt32(); // With this, number of files value can be optimized if (numFiles <= 0) { Log.Write("No external nodes found, reference table completed.", ConsoleColor.Green); return; } AncestorLevel = reader.ReadInt32(); var numFolders = reader.ReadInt32(); var allFolders = new List <Folder>(); Folders = ReadRefTableFolders(numFolders); Folder[] ReadRefTableFolders(int n) { var folders = new Folder[n]; for (var i = 0; i < n; i++) { var name = reader.ReadString(); var numSubFolders = reader.ReadInt32(); var folder = new Folder(name); allFolders.Add(folder); foreach (var subFolder in ReadRefTableFolders(numSubFolders)) { folder.Folders.Add(subFolder); } folders[i] = folder; } return(folders); } Files = new List <File>(); for (var i = 0; i < numFiles; i++) { string?fileName = null; int? resourceIndex = null; bool? useFile = null; int? folderIndex = null; var flags = reader.ReadInt32(); if ((flags & 4) == 0) { fileName = reader.ReadString(); } else { resourceIndex = reader.ReadInt32(); } var nodeIndex = reader.ReadInt32(); if (Header.Version >= 5) { useFile = reader.ReadBoolean(); } if ((flags & 4) == 0) { folderIndex = reader.ReadInt32(); } var file = new File(flags, fileName, resourceIndex, nodeIndex, useFile, folderIndex); if (folderIndex.HasValue) { if (folderIndex.Value - 1 < 0) { Files.Add(file); } else { allFolders[folderIndex.Value - 1].Files.Add(file); } } } }