object BinaryRead.IReaderProvider.ReadAndAdvance (BinaryRead reader, Type type, MemberInfo member) => new Version ( reader.GetNext <short>(), reader.GetNext <short>(), reader.GetNext <short>(), reader.GetNext <short>() );
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]); }
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]); }
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)); }
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()); }
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>() )); }
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]); }
object BinaryRead.IReaderProvider.ReadAndAdvance(BinaryRead reader, Type type, MemberInfo member) => ((UserContext)reader.UserContext).IsBefore013 ? reader.GetNext(type, member) : null;
internal void Execute(BinaryRead reader, MemberInfo member) { reader.Position += Count; reader.SignalToUserContext(CaptureIdentifier, member, null); }