Example #1
0
 object BinaryRead.IReaderProvider.ReadAndAdvance
     (BinaryRead reader, Type type, MemberInfo member)
 => new Version
 (
     reader.GetNext <short>(),
     reader.GetNext <short>(),
     reader.GetNext <short>(),
     reader.GetNext <short>()
 );
Example #2
0
        internal ModDescription CreateModReferenceBefore014(int i, BinaryRead reader)
        {
            var name = reader.GetNextString <int>();

            var version = new Version
                              (reader.GetNext <short>(), reader.GetNext <short>(), reader.GetNext <short>());

            return(ModDictionary[name][version]);
        }
Example #3
0
        public ModDescription CreateModReference(int i, BinaryRead reader, bool isBefore01414)
        {
            if (isBefore01414)
            {
                return(CreateModReferenceBefore014(i, reader));
            }

            var name = reader.GetNextString <byte>();
            // ReSharper disable once UnusedVariable
            var lookAhead = reader.LookAhead();
            var version   = new Version
                                (reader.GetNext <byte>(), reader.GetNext <byte>(), reader.GetNext <byte>());

            return(ModDictionary[name][version]);
        }
Example #4
0
            object BinaryRead.IReaderProvider.ReadAndAdvance(BinaryRead reader, Type type, MemberInfo member)
            {
                // ReSharper disable InconsistentNaming
                var isBefore0_13     = ((UserContext)reader.UserContext).IsBefore013;
                var isBefore0_14_9_1 = ((UserContext)reader.UserContext).IsBefore01491;

                // ReSharper enable InconsistentNaming

                if (!isBefore0_13)
                {
                    reader.GetNextString <int>();
                }
                if (!isBefore0_14_9_1)
                {
                    reader.GetNextString <int>();
                }

                return(TimeSpan.FromSeconds(reader.GetNext <int>() / TicksPerSecond));
            }
Example #5
0
    void BinaryRead.IContext.Got
        (BinaryRead reader, MemberInfo member, object captureIdentifier, object result)
    {
        if (captureIdentifier as string == "Version")
        {
            Version = (Version)result;
            return;
        }

        if (captureIdentifier as string == "Lookahead")
        {
            // ReSharper disable once UnusedVariable
            var value = reader.LookAhead();
            Tracer.TraceBreak();
            return;
        }

        NotImplementedMethod(member.Name, captureIdentifier, result.ToString());
    }
Example #6
0
            object BinaryRead.IReaderProvider.ReadAndAdvance
                (BinaryRead reader, Type type, MemberInfo member)
            {
                var isBefore01414 = ((UserContext)reader.UserContext).IsBefore01414;

                return(isBefore01414
                    ? new Version
                       (
                           reader.GetNext <short>(),
                           reader.GetNext <short>(),
                           reader.GetNext <short>(),
                           reader.GetNext <short>()
                       )
                    : new Version
                       (
                           reader.GetNext <byte>(),
                           reader.GetNext <byte>(),
                           reader.GetNext <byte>(),
                           reader.GetNext <short>()
                       ));
            }
Example #7
0
        object BinaryRead.IReaderProvider.ReadAndAdvance
            (BinaryRead reader, Type type, MemberInfo member)
        {
            // ReSharper disable once UnusedVariable
            var x             = reader.LookAhead();
            var isBefore01414 = ((UserContext)reader.UserContext).IsBefore01414;

            var result = isBefore01414
                ? new
            {
                name = reader.GetNextString <int>(), version = new Version
                                                               (
                    reader.GetNext <short>(),
                    reader.GetNext <short>(),
                    reader.GetNext <short>()
                                                               )
            }
                : new
            {
                name = reader.GetNextString <byte>(), version = new Version
                                                                (
                    reader.GetNext <byte>(),
                    reader.GetNext <byte>(),
                    reader.GetNext <byte>()
                                                                )
            };

            if (result.name == "")
            {
                throw new("Mod not recognized in stream");
            }

            var mod = MmasfContext.Instance.ModDictionary[result.name];

            return(mod[result.version]);
        }
Example #8
0
 object BinaryRead.IReaderProvider.ReadAndAdvance(BinaryRead reader, Type type, MemberInfo member)
 => ((UserContext)reader.UserContext).IsBefore013
         ? reader.GetNext(type, member)
         : null;
Example #9
0
 internal void Execute(BinaryRead reader, MemberInfo member)
 {
     reader.Position += Count;
     reader.SignalToUserContext(CaptureIdentifier, member, null);
 }