Ejemplo n.º 1
0
            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();
            }
Ejemplo n.º 2
0
            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();
            }
Ejemplo n.º 3
0
            public override void Read(CGameCtnMacroBlockInfo n, GameBoxReader r)
            {
                var version = r.ReadInt32();
                var nodrefs = r.ReadArray(r1 => r1.ReadNodeRef());

                r.ReadArray <int>(2);
            }
Ejemplo n.º 4
0
            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);
            }
Ejemplo n.º 5
0
 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());
 }
Ejemplo n.º 6
0
 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();
 }
Ejemplo n.º 7
0
 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();
 }
Ejemplo n.º 8
0
        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();
        }
Ejemplo n.º 9
0
            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();
            }
Ejemplo n.º 11
0
            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 }
                    });
                });
            }
Ejemplo n.º 12
0
 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()
     });
 }
Ejemplo n.º 13
0
 public override void Read(CGameCtnCollection n, GameBoxReader r, GameBoxWriter unknownW)
 {
     _ = r.ReadByte();
     _ = r.ReadString();
     _ = r.ReadInt32();
     _ = r.ReadString();
     _ = r.ReadArray <int>(3);
 }
Ejemplo n.º 14
0
            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()
                    });
                });
            }
Ejemplo n.º 15
0
 public override void Read(CGamePlayerProfile n, GameBoxReader r)
 {
     var skins = r.ReadArray(r1 => new Skin
     {
         PlayerModel = r1.ReadIdent(),
         SkinFile    = r1.ReadString(),
         Checksum    = r1.ReadUInt32()
     });
 }
Ejemplo n.º 16
0
            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();
            }
Ejemplo n.º 18
0
 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();
 }
Ejemplo n.º 19
0
            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();
            }
Ejemplo n.º 20
0
            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();
                }
            }
Ejemplo n.º 21
0
 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()
         });
     });
 }
Ejemplo n.º 22
0
 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(),
         });
     });
 }
Ejemplo n.º 24
0
            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()
                    });
                });
            }
Ejemplo n.º 25
0
            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];
Ejemplo n.º 26
0
        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));
            });
        }
Ejemplo n.º 27
0
            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
                    });
                });
            }
Ejemplo n.º 28
0
        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>());
            }
        }
Ejemplo n.º 29
0
            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;
                        }
                    }
                }
            }
Ejemplo n.º 30
0
        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
                    },
                };
            }
        }