public void Read(OsiReader reader) { Index = reader.ReadUInt32(); Name = reader.ReadString(); SubGoalCombination = reader.ReadByte(); ParentGoals = new List <uint>(); var numItems = reader.ReadUInt32(); while (numItems-- > 0) { ParentGoals.Add(reader.ReadUInt32()); } SubGoals = new List <uint>(); numItems = reader.ReadUInt32(); while (numItems-- > 0) { SubGoals.Add(reader.ReadUInt32()); } Unknown = reader.ReadByte(); if (reader.MajorVersion > 1 || (reader.MajorVersion == 1 && reader.MinorVersion >= 1)) { InitCalls = reader.ReadList <Call>(); ExitCalls = reader.ReadList <Call>(); } else { InitCalls = new List <Call>(); ExitCalls = new List <Call>(); } }
public void Read(OsiReader reader) { Name = reader.ReadString(); if (Name.Length > 0) { var hasParams = reader.ReadByte(); if (hasParams > 0) { Parameters = new List <TypedValue>(); var numParams = reader.ReadByte(); while (numParams-- > 0) { TypedValue param; var type = reader.ReadByte(); if (type == 1) { param = new Variable(); } else { param = new TypedValue(); } param.Read(reader); Parameters.Add(param); } } Negate = reader.ReadBoolean(); } GoalIdOrDebugHook = reader.ReadInt32(); }
public void Read(OsiReader reader) { Name = reader.ReadString(); Index = reader.ReadByte(); IsBuiltin = false; if (reader.Ver >= OsiVersion.VerTypeAliases) { Alias = reader.ReadByte(); } else { // D:OS 1 only supported string aliases Alias = (int)Value.Type_OS1.String; } }
public void Read(OsiReader reader) { Physical.Clear(); Logical.Clear(); var count = reader.ReadByte(); while (count-- > 0) { var index = reader.ReadByte(); var value = new Value(); value.Read(reader); Physical.Add(value); Logical.Add(index, value); } }
private Dictionary <uint, Node> ReadNodes(OsiReader reader) { var nodes = new Dictionary <uint, Node>(); var count = reader.ReadUInt32(); while (count-- > 0) { Node node = null; var type = reader.ReadByte(); var nodeId = reader.ReadUInt32(); switch ((Node.Type)type) { case Node.Type.Database: node = new DatabaseNode(); break; case Node.Type.Proc: node = new ProcNode(); break; case Node.Type.DivQuery: node = new DivQueryNode(); break; case Node.Type.InternalQuery: node = new InternalQueryNode(); break; case Node.Type.And: node = new AndNode(); break; case Node.Type.NotAnd: node = new NotAndNode(); break; case Node.Type.RelOp: node = new RelOpNode(); break; case Node.Type.Rule: node = new RuleNode(); break; case Node.Type.UserQuery: node = new UserQueryNode(); break; default: throw new NotImplementedException("No serializer found for this node type"); } node.Read(reader); nodes.Add(nodeId, node); } return(nodes); }
public void Read(OsiReader reader) { Name = reader.ReadString(); Type = reader.ReadByte(); Key1 = reader.ReadUInt32(); Key2 = reader.ReadUInt32(); Key3 = reader.ReadUInt32(); Key4 = reader.ReadUInt32(); }
public virtual void Read(OsiReader reader) { DatabaseRef = reader.ReadDatabaseRef(); Name = reader.ReadString(); if (Name.Length > 0) { NameIndex = reader.ReadByte(); } }
public override void Read(OsiReader reader) { base.Read(reader); LeftParentRef = reader.ReadNodeRef(); RightParentRef = reader.ReadNodeRef(); Adapter1Ref = reader.ReadAdapterRef(); Adapter2Ref = reader.ReadAdapterRef(); Database1Ref = reader.ReadDatabaseRef(); Database1 = new NodeEntryItem(); Database1.Read(reader); Database1Flag = reader.ReadByte(); Database2Ref = reader.ReadDatabaseRef(); Database2 = new NodeEntryItem(); Database2.Read(reader); Database2Flag = reader.ReadByte(); }
public override void Read(OsiReader reader) { base.Read(reader); LeftParentRef = reader.ReadNodeRef(); RightParentRef = reader.ReadNodeRef(); LeftAdapterRef = reader.ReadAdapterRef(); RightAdapterRef = reader.ReadAdapterRef(); LeftDatabaseNodeRef = reader.ReadNodeRef(); LeftDatabaseJoin = new NodeEntryItem(); LeftDatabaseJoin.Read(reader); LeftDatabaseIndirection = reader.ReadByte(); RightDatabaseNodeRef = reader.ReadNodeRef(); RightDatabaseJoin = new NodeEntryItem(); RightDatabaseJoin.Read(reader); RightDatabaseIndirection = reader.ReadByte(); }
public override void Read(OsiReader reader) { base.Read(reader); LeftParentRef = reader.ReadNodeRef(); RightParentRef = reader.ReadNodeRef(); LeftAdapterRef = reader.ReadAdapterRef(); RightAdapterRef = reader.ReadAdapterRef(); LeftDatabaseRef = reader.ReadDatabaseRef(); LeftDatabase = new NodeEntryItem(); LeftDatabase.Read(reader); LeftDatabaseFlag = reader.ReadByte(); RightDatabaseRef = reader.ReadDatabaseRef(); RightDatabase = new NodeEntryItem(); RightDatabase.Read(reader); RightDatabaseFlag = reader.ReadByte(); }
public void Read(OsiReader reader) { Types = new List <UInt32>(); var count = reader.ReadByte(); while (count-- > 0) { Types.Add(reader.ReadUInt32()); } }
public virtual void Read(OsiReader reader) { var wtf = reader.ReadByte(); if (wtf == 49) { TypeId = reader.ReadUInt32(); IntValue = reader.ReadInt32(); } else if (wtf == 48) { TypeId = reader.ReadUInt32(); switch ((Type)TypeId) { case Type.Unknown: break; case Type.Integer: IntValue = reader.ReadInt32(); break; case Type.Float: FloatValue = reader.ReadSingle(); break; case Type.String: if (reader.ReadByte() > 0) { StringValue = reader.ReadString(); } break; default: StringValue = reader.ReadString(); break; } } else { throw new InvalidDataException("Unrecognized value type"); } }
public void Read(OsiReader reader) { Line = reader.ReadUInt32(); Unknown1 = reader.ReadUInt32(); Unknown2 = reader.ReadUInt32(); NodeRef = reader.ReadNodeRef(); Type = (FunctionType)reader.ReadByte(); GUID = reader.ReadGuid(); Name = new FunctionSignature(); Name.Read(reader); }
public void Read(OsiReader reader) { Columns = new List <Value>(); var count = reader.ReadByte(); while (count-- > 0) { var value = new Value(); value.Read(reader); Columns.Add(value); } }
public void Read(OsiReader reader) { Constants = new Tuple(); Constants.Read(reader); LogicalIndices = new List <sbyte>(); var count = reader.ReadByte(); while (count-- > 0) { LogicalIndices.Add(reader.ReadSByte()); } LogicalToPhysicalMap = new Dictionary <byte, byte>(); count = reader.ReadByte(); while (count-- > 0) { var key = reader.ReadByte(); var value = reader.ReadByte(); LogicalToPhysicalMap.Add(key, value); } }
public void Read(OsiReader reader) { Index = reader.ReadUInt32(); Name = reader.ReadString(); SubGoalCombination = reader.ReadByte(); ParentGoals = reader.ReadRefList <GoalReference, Goal>(); SubGoals = reader.ReadRefList <GoalReference, Goal>(); Flags = reader.ReadByte(); if (reader.Ver >= OsiVersion.VerAddInitExitCalls) { InitCalls = reader.ReadList <Call>(); ExitCalls = reader.ReadList <Call>(); } else { InitCalls = new List <Call>(); ExitCalls = new List <Call>(); } }
public void Read(OsiReader reader) { reader.ReadByte(); Version = reader.ReadString(); MajorVersion = reader.ReadByte(); MinorVersion = reader.ReadByte(); BigEndian = reader.ReadBoolean(); Unused = reader.ReadByte(); if (Ver >= OsiVersion.VerAddVersionString) { reader.ReadBytes(0x80); // Version string buffer } if (Ver >= OsiVersion.VerAddDebugFlags) { DebugFlags = reader.ReadUInt32(); } else { DebugFlags = 0; } }
public void Read(OsiReader reader) { reader.ReadByte(); Version = reader.ReadString(); MajorVersion = reader.ReadByte(); MinorVersion = reader.ReadByte(); BigEndian = reader.ReadBoolean(); Unused = reader.ReadByte(); if (MajorVersion > 1 || (MajorVersion == 1 && MinorVersion >= 2)) { reader.ReadBytes(0x80); // Version string buffer } if (MajorVersion > 1 || (MajorVersion == 1 && MinorVersion >= 3)) { DebugFlags = reader.ReadUInt32(); } else { DebugFlags = 0; } }
public void Read(OsiReader reader) { Line = reader.ReadUInt32(); ConditionReferences = reader.ReadUInt32(); ActionReferences = reader.ReadUInt32(); NodeRef = reader.ReadNodeRef(); Type = (FunctionType)reader.ReadByte(); Meta1 = reader.ReadUInt32(); Meta2 = reader.ReadUInt32(); Meta3 = reader.ReadUInt32(); Meta4 = reader.ReadUInt32(); Name = new FunctionSignature(); Name.Read(reader); }
public void Read(OsiReader reader) { Name = reader.ReadString(); OutParamMask = new List <byte>(); var outParamBytes = reader.ReadUInt32(); while (outParamBytes-- > 0) { OutParamMask.Add(reader.ReadByte()); } Parameters = new ParameterList(); Parameters.Read(reader); }
public override void Read(OsiReader reader) { base.Read(reader); Calls = reader.ReadList <Call>(); Variables = new List <Variable>(); var variables = reader.ReadByte(); while (variables-- > 0) { var type = reader.ReadByte(); if (type != 1) { throw new InvalidDataException("Illegal value type in rule variable list"); } var variable = new Variable(); variable.Read(reader); if (variable.Adapted) { variable.VariableName = String.Format("_Var{0}", Variables.Count + 1); } Variables.Add(variable); } Line = reader.ReadUInt32(); if (reader.Ver >= OsiVersion.VerAddQuery) { IsQuery = reader.ReadBoolean(); } else { IsQuery = false; } }
public virtual void Read(OsiReader reader) { // possibly isReference? var wtf = reader.ReadByte(); if (wtf == '1') { TypeId = reader.ReadUInt32(); IntValue = reader.ReadInt32(); } else if (wtf == '0') { TypeId = reader.ReadUInt32(); uint writtenTypeId = TypeId; uint alias; bool dos1alias = false; if (reader.TypeAliases.TryGetValue(writtenTypeId, out alias)) { writtenTypeId = alias; if (reader.Ver < OsiVersion.VerEnhancedTypes) { dos1alias = true; } } if (reader.Ver < OsiVersion.VerEnhancedTypes) { // Convert D:OS 1 type ID to D:OS 2 type ID writtenTypeId = ConvertOS1ToOS2Type(writtenTypeId); } switch ((Type)writtenTypeId) { case Type.Unknown: break; case Type.Integer: IntValue = reader.ReadInt32(); break; case Type.Integer64: Int64Value = reader.ReadInt64(); break; case Type.Float: FloatValue = reader.ReadSingle(); break; case Type.GuidString: case Type.String: // D:OS 1 aliased strings didn't have a flag byte if (dos1alias) { StringValue = reader.ReadString(); } else if (reader.ReadByte() > 0) { StringValue = reader.ReadString(); } break; default: StringValue = reader.ReadString(); break; } } else { throw new InvalidDataException("Unrecognized value type"); } }
public void Read(OsiReader reader) { Name = reader.ReadString(); Index = reader.ReadByte(); }