public override void Read(CGameCtnMediaClipGroup n, GameBoxReader r) { n.ClipsVersion = r.ReadInt32(); var clips = r.ReadArray(r1 => r1.ReadNodeRef <CGameCtnMediaClip>()); var triggers = r.ReadArray(r1 => { var u01 = r1.ReadInt32(); var u02 = r1.ReadInt32(); var u03 = r1.ReadInt32(); var u04 = r1.ReadInt32(); var condition = (ECondition)r1.ReadInt32(); var conditionValue = r1.ReadSingle(); var coords = r1.ReadArray(r2 => r2.ReadInt3()); return(new Trigger() { Coords = coords, U01 = u01, U02 = u02, U03 = u03, U04 = u04, Condition = condition, ConditionValue = conditionValue }); }); n.Clips = clips.Select((clip, index) => Tuple.Create(clip, triggers[index]) ).ToList(); }
public override void Read(CGameCtnMediaClipGroup n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); var clips = r.ReadArray(i => r.ReadNodeRef<CGameCtnMediaClip>()); var triggers = r.ReadArray(i => { var coords = r.ReadArray(j => r.ReadInt3()); var u01 = r.ReadInt32(); var u02 = r.ReadInt32(); var u03 = r.ReadInt32(); var u04 = r.ReadInt32(); return new Trigger() { Coords = coords, U01 = u01, U02 = u02, U03 = u03, U04 = u04 }; }); n.Clips = clips.Select((clip, index) => Tuple.Create(clip, triggers[index]) ).ToList(); }
public override void Read(CGameCtnMacroBlockInfo n, GameBoxReader r) { var version = r.ReadInt32(); var nodrefs = r.ReadArray(r1 => r1.ReadNodeRef()); r.ReadArray <int>(2); }
public override void Read(CGameCtnMacroBlockInfo n, GameBoxReader r, GameBoxWriter unknownW) { var version = r.ReadInt32(); var nodrefs = r.ReadArray(i => r.ReadNodeRef()); r.ReadArray <int>(2); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { Version = r.ReadInt32(); n.ghosts = r.ReadArray(r1 => r1.ReadNodeRef <CGameCtnGhost>()); U01 = r.ReadInt32(); n.extras = r.ReadArray(r1 => r1.ReadInt64()); }
public override void Read(CGameCtnCollection n, GameBoxReader r) { _ = r.ReadId(); _ = r.ReadInt32(); _ = r.ReadArray(r1 => r1.ReadInt32()); _ = r.ReadInt32(); _ = r.ReadArray <float>(3); n.Vehicle = r.ReadIdent(); }
public override void Read(CGameCtnCollection n, GameBoxReader r, GameBoxWriter unknownW) { _ = r.ReadId(); _ = r.ReadInt32(); _ = r.ReadArray(x => r.ReadInt32()); _ = r.ReadInt32(); _ = r.ReadArray <float>(3); n.Vehicle = r.ReadIdent(); }
public override void Read(CGameCtnMediaClipGroup n, GameBoxReader r) { n.ClipsVersion = r.ReadInt32(); var clips = r.ReadArray(r => r.ReadNodeRef <CGameCtnMediaClip>() !); var triggers = r.ReadArray(r => new Trigger() { Coords = r.ReadArray(r => r.ReadInt3()) }); n.Clips = clips.Select((clip, index) => new ClipTrigger(clip, triggers[index]) ).ToList(); }
public override void Read(CGameCtnMacroBlockInfo n, GameBoxReader r, GameBoxWriter unknownW) { var unknown = r.ReadArray(i => { return(new object[] { r.ReadInt32(), r.ReadArray(j => r.ReadIdent()), r.ReadInt32(), r.ReadInt32(), r.ReadInt32() }); }); }
public override void Read(CGameCtnMediaBlockCameraCustom n, GameBoxReader r, GameBoxWriter unknownW) { n.Keys = r.ReadArray(i => { var time = r.ReadSingle(); var u01 = r.ReadInt32(); // 1 var u02 = r.ReadInt32(); // 0 var u03 = r.ReadInt32(); // 0 var position = r.ReadVec3(); var pitchYawRoll = r.ReadVec3(); // in radians var fov = r.ReadSingle(); var u04 = r.ReadInt32(); // 0 var u05 = r.ReadInt32(); // -1 var u06 = r.ReadInt32(); // 1 var u07 = r.ReadInt32(); // -1 var u08 = r.ReadSingle(); var u09 = r.ReadSingle(); var u10 = r.ReadSingle(); var u11 = r.ReadSingle(); var u12 = r.ReadSingle(); return(new Key() { Time = time, Position = position, PitchYawRoll = pitchYawRoll, FOV = fov, Unknown = new object[] { u01, u02, u03, u04, u05, u06, u07, u08, u09, u10, u11, u12 } }); }).ToList(); }
public override void Read(CGameCtnMediaBlockCameraPath n, GameBoxReader r, GameBoxWriter unknownW) { n.Keys = r.ReadArray(i => { var time = r.ReadSingle(); var position = r.ReadVec3(); var pitchYawRoll = r.ReadVec3(); // in radians var fov = r.ReadSingle(); var anchorRot = r.ReadBoolean(); var anchor = r.ReadInt32(); var anchorVis = r.ReadBoolean(); var target = r.ReadInt32(); var targetPosition = r.ReadVec3(); var a = r.ReadSingle(); // 1 var b = r.ReadSingle(); // -0.48 var c = r.ReadSingle(); // 0 var d = r.ReadSingle(); // 0 var e = r.ReadSingle(); return(new Key() { Time = time, Position = position, PitchYawRoll = pitchYawRoll, FOV = fov, AnchorRot = anchorRot, Anchor = anchor, AnchorVis = anchorVis, Target = target, TargetPosition = targetPosition, Unknown = new object[] { a, b, c, d, e } }); }); }
public override void Read(CGameCtnMediaBlockFxColors n, GameBoxReader r, GameBoxWriter unknownW) { n.Keys = r.ReadArray(i => new Key() { Time = r.ReadSingle(), Intensity = r.ReadSingle(), BlendZ = r.ReadSingle(), Distance = r.ReadSingle(), FarDistance = r.ReadSingle(), Inverse = r.ReadSingle(), Hue = r.ReadSingle(), Saturation = r.ReadSingle(), // from center Brightness = r.ReadSingle(), // from center Contrast = r.ReadSingle(), // from center RGB = r.ReadVec3(), U01 = r.ReadSingle(), U02 = r.ReadSingle(), U03 = r.ReadSingle(), U04 = r.ReadSingle(), FarInverse = r.ReadSingle(), FarHue = r.ReadSingle(), FarSaturation = r.ReadSingle(), // from center FarBrightness = r.ReadSingle(), // from center FarContrast = r.ReadSingle(), // from center FarRGB = r.ReadVec3(), FarU01 = r.ReadSingle(), FarU02 = r.ReadSingle(), FarU03 = r.ReadSingle(), FarU04 = r.ReadSingle() }); }
public override void Read(CGameCtnCollection n, GameBoxReader r, GameBoxWriter unknownW) { _ = r.ReadByte(); _ = r.ReadString(); _ = r.ReadInt32(); _ = r.ReadString(); _ = r.ReadArray <int>(3); }
public override void Read(CGameCtnMediaBlockCameraPath n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); n.Keys = r.ReadArray(i => { var time = r.ReadSingle(); var position = r.ReadVec3(); var pitchYawRoll = r.ReadVec3(); // in radians var fov = r.ReadSingle(); float?nearZ = null; if (Version >= 3) { nearZ = r.ReadSingle(); } var anchorRot = r.ReadBoolean(); var anchor = r.ReadInt32(); var anchorVis = r.ReadBoolean(); var target = r.ReadInt32(); var targetPosition = r.ReadVec3(); var unknown = r.ReadArray <float>(5).Cast <object>().ToList(); if (Version >= 4) { unknown.AddRange(r.ReadArray <int>(2).Cast <object>()); } return(new Key() { Time = time, Position = position, PitchYawRoll = pitchYawRoll, FOV = fov, NearZ = nearZ, AnchorRot = anchorRot, Anchor = anchor, AnchorVis = anchorVis, Target = target, TargetPosition = targetPosition, Unknown = unknown.Cast <object>().ToArray() }); }); }
public override void Read(CGamePlayerProfile n, GameBoxReader r) { var skins = r.ReadArray(r1 => new Skin { PlayerModel = r1.ReadIdent(), SkinFile = r1.ReadString(), Checksum = r1.ReadUInt32() }); }
public override void Read(CGameCtnMediaClipGroup n, GameBoxReader r) { n.ClipsVersion = r.ReadInt32(); var clips = r.ReadArray(r1 => r1.ReadNodeRef <CGameCtnMediaClip>()); var triggers = r.ReadArray(r1 => new Trigger() { Coords = r1.ReadArray(r2 => r2.ReadInt3()), U01 = r1.ReadInt32(), U02 = r1.ReadInt32(), U03 = r1.ReadInt32(), U04 = r1.ReadInt32() }); n.Clips = clips.Select((clip, index) => Tuple.Create(clip, triggers[index]) ).ToList(); }
public override void Read(CGameCtnMediaBlockCameraCustom n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); n.Keys = r.ReadArray(i => { var time = r.ReadSingle(); var a = r.ReadInt32(); // 1 var anchorRot = r.ReadBoolean(); // 0 var anchor = r.ReadInt32(); // -1 if not set, 0 for local player var anchorVis = r.ReadBoolean(); // 1 var target = r.ReadInt32(); // -1 var position = r.ReadVec3(); var pitchYawRoll = r.ReadVec3(); // in radians var fov = r.ReadSingle(); var f = r.ReadInt32(); // 0 var g = r.ReadInt32(); // 0 var h = r.ReadInt32(); // 0 var zIndex = r.ReadSingle(); var leftTangent = r.ReadVec3(); var ii = r.ReadArray <float>(8); var rightTangent = r.ReadVec3(); var j = r.ReadArray <float>(8); return(new Key() { Time = time, AnchorRot = anchorRot, Anchor = anchor, AnchorVis = anchorVis, Target = target, Position = position, PitchYawRoll = pitchYawRoll, FOV = fov, ZIndex = zIndex, LeftTangent = leftTangent, RightTangent = rightTangent, Unknown = new object[] { a, f, g, h, ii, j } }); }).ToList(); }
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(CGameCtnReplayRecord n, GameBoxReader r) { Version = r.ReadInt32(); var u02 = r.ReadInt32(); n.ghosts = r.ReadArray(r1 => r1.ReadNodeRef <CGameCtnGhost>()); var u03 = r.ReadInt32(); // millisecond length of something (usually record time + 0.5s) var u04 = r.ReadInt32(); }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.eventsDuration = r.ReadInt32(); if (n.eventsDuration != 0) { U01 = r.ReadInt32(); // All control names available in the game var controlNames = r.ReadArray(r1 => { // Maybe bindings r1.ReadInt32(); r1.ReadInt32(); return(r1.ReadString()); // Input name }); var numEntries = r.ReadInt32() - 1; n.controlEntries = new ControlEntry[numEntries]; for (var i = 0; i < numEntries; i++) { var time = TimeSpan.FromMilliseconds(r.ReadInt32() - 10000); var controlNameIndex = r.ReadInt32(); var data = r.ReadUInt32(); var name = controlNames[controlNameIndex]; switch (name) { case "Steer (analog)": // Data is bugged n.controlEntries[i] = new ControlEntryAnalog(true) { Name = name, Time = time, Data = data }; break; default: n.controlEntries[i] = new ControlEntry() { Name = name, Time = time, Data = data }; break; } } Array.Reverse(n.controlEntries); // Inputs are originally reversed U02 = r.ReadInt32(); } }
public override void Read(CGameCtnMediaBlockFxBloom n, GameBoxReader r, GameBoxWriter unknownW) { n.Keys = r.ReadArray(i => { return(new Key() { Time = r.ReadSingle(), Intensity = r.ReadSingle(), Sensitivity = r.ReadSingle() }); }); }
public override void Read(CGameCtnBlockInfo n, GameBoxReader r) // WIP { n.BlockName = r.ReadId(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadArray(r => r.ReadNodeRef <CGameCtnBlockUnitInfo>()); r.ReadArray(r => r.ReadNodeRef <CGameCtnBlockUnitInfo>()); r.ReadInt32(); r.ReadInt32(); r.ReadNodeRef <CSceneMobil>(); r.ReadInt32(); r.ReadInt32(); r.ReadNodeRef <CSceneMobil>(); r.ReadByte(); r.ReadInt32(); r.ReadInt32(); }
public override void Read(CGameCtnMediaBlockFxBlurDepth n, GameBoxReader r, GameBoxWriter unknownW) { n.Keys = r.ReadArray(i => { return(new Key() { Time = r.ReadSingle(), LensSize = r.ReadSingle(), ForceFocus = r.ReadBoolean(), FocusZ = r.ReadSingle(), }); }); }
public override void Read(CGameCtnMacroBlockInfo n, GameBoxReader r) { var unknown = r.ReadArray(r1 => { return(new object[] { r1.ReadInt32(), r1.ReadArray(r2 => r2.ReadIdent()), r1.ReadInt32(), r1.ReadInt32(), r1.ReadInt32() }); }); }
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(CGameCtnBlockInfoMobil n, GameBoxReader r) { U01 = r.ReadInt32(); U02 = r.ReadInt32(); n.DynaLinks = r.ReadArray(r => { var u01 = r.ReadInt32(); var u02 = r.ReadInt32(); var u03 = r.ReadInt32(); var socketID = r.ReadId(); var model = r.ReadNodeRef <CGameObjectModel>(); return(new CGameCtnBlockInfoMobilLink(socketID, model)); }); }
public override void Read(CGameCtnMediaBlockDirtyLens n, GameBoxReader r, GameBoxWriter unknownW) { Version = r.ReadInt32(); n.Keys = r.ReadArray(i => { var time = r.ReadSingle(); var intensity = r.ReadSingle(); return(new Key() { Time = time, Intensity = intensity }); }); }
public override void Read(CGameCtnBlockInfoMobil n, GameBoxReader r) { Version = r.ReadInt32(); r.ReadByte(); var num = r.ReadInt32(); if (num == 16777216) // TODO: figure out why { r.ReadSingle(); r.ReadSingle(); r.ReadSingle(); r.ReadSingle(); r.ReadSingle(); r.ReadSingle(); } if (Version >= 20) { r.ReadInt32(); r.ReadInt32(); } r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); if (Version >= 20) { r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); // 3 r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadInt32(); r.ReadByte(); r.ReadVec3(); n.RoadChunks = r.ReadArray(r => r.ReadNodeRef <CPlugRoadChunk>()); } }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.eventsDuration = r.ReadInt32(); if (n.eventsDuration != 0) { U01 = r.ReadInt32(); var controlNames = r.ReadArray(r1 => r1.ReadId()); var numEntries = r.ReadInt32(); U02 = r.ReadInt32(); n.controlEntries = new ControlEntry[numEntries]; for (var i = 0; i < numEntries; i++) { var time = TimeSpan.FromMilliseconds(r.ReadInt32() - 100000); var controlNameIndex = r.ReadByte(); var data = r.ReadUInt32(); var name = controlNames[controlNameIndex]; switch (name) { case "Steer": case "Gas": case "AccelerateReal": case "BrakeReal": n.controlEntries[i] = new ControlEntryAnalog() { Name = name, Time = time, Data = data }; break; default: n.controlEntries[i] = new ControlEntry() { Name = name, Time = time, Data = data }; break; } } } }
public override void Read(CGameCtnReplayRecord n, GameBoxReader r) { n.eventsDuration = r.ReadInt32(); if (n.eventsDuration == 0) { return; } U01 = r.ReadInt32(); var controlNames = r.ReadArray(r1 => r1.ReadId()); var numEntries = r.ReadInt32(); U02 = r.ReadInt32(); n.controlEntries = new ControlEntry[numEntries]; for (var i = 0; i < numEntries; i++) { var time = TimeSpan.FromMilliseconds(r.ReadInt32() - 100000); var controlNameIndex = r.ReadByte(); var data = r.ReadUInt32(); var name = controlNames[controlNameIndex]; n.controlEntries[i] = (string)name switch { "Steer" or "Gas" or "AccelerateReal" or "BrakeReal" => new ControlEntryAnalog(name) { Time = time, Data = data }, _ => new ControlEntry(name) { Time = time, Data = data }, }; } }