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(); }
private Dictionary <uint, OsirisType> ReadTypes(OsiReader reader, Story story) { if (reader.Ver < OsiVersion.VerAddTypeMap) { return(new Dictionary <uint, OsirisType>()); } var types = ReadTypes(reader); // Find outermost types foreach (var type in types) { if (type.Value.Alias != 0) { var aliasId = type.Value.Alias; while (aliasId != 0 && types.ContainsKey(aliasId) && types[aliasId].Alias != 0) { aliasId = types[aliasId].Alias; } reader.TypeAliases.Add(type.Key, aliasId); } } return(types); }
public override void Read(OsiReader reader) { base.Read(reader); Index = reader.ReadSByte(); Unused = reader.ReadBoolean(); Adapted = reader.ReadBoolean(); }
public override void Read(OsiReader reader) { base.Read(reader); IsValid = reader.ReadBoolean(); OutParam = reader.ReadBoolean(); IsAType = reader.ReadBoolean(); }
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>(); } }
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) { Parameters = new ParameterList(); Parameters.Read(reader); FactsPosition = reader.BaseStream.Position; Facts = new FactCollection(this); reader.ReadList <Fact>(Facts); }
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 void Read(OsiReader reader) { Types = new List <UInt32>(); var count = reader.ReadByte(); while (count-- > 0) { Types.Add(reader.ReadUInt32()); } }
public override void Read(OsiReader reader) { base.Read(reader); ParentRef = reader.ReadNodeRef(); AdapterRef = reader.ReadAdapterRef(); RelDatabaseNodeRef = reader.ReadNodeRef(); RelJoin = new NodeEntryItem(); RelJoin.Read(reader); RelDatabaseIndirection = reader.ReadByte(); }
public override void Read(OsiReader reader) { base.Read(reader); ParentRef = reader.ReadNodeRef(); AdapterRef = reader.ReadAdapterRef(); RelDatabaseRef = reader.ReadDatabaseRef(); RelDatabase = new NodeEntryItem(); RelDatabase.Read(reader); RelDatabaseFlag = reader.ReadByte(); }
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); }
private List <string> ReadStrings(OsiReader reader) { var stringTable = new List <string>(); var count = reader.ReadUInt32(); while (count-- > 0) { stringTable.Add(reader.ReadString()); } return(stringTable); }
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); } }
private Dictionary <uint, Database> ReadDatabases(OsiReader reader) { var databases = new Dictionary <uint, Database>(); var count = reader.ReadUInt32(); while (count-- > 0) { var database = new Database(); database.Read(reader); databases.Add(database.Index, database); } return(databases); }
private Dictionary <uint, Goal> ReadGoals(OsiReader reader, Story story) { var goals = new Dictionary <uint, Goal>(); var count = reader.ReadUInt32(); while (count-- > 0) { var goal = new Goal(story); goal.Read(reader); goals.Add(goal.Index, goal); } return(goals); }
public override void Read(OsiReader reader) { base.Read(reader); Value1Index = reader.ReadSByte(); Value2Index = reader.ReadSByte(); Value1 = new Value(); Value1.Read(reader); Value2 = new Value(); Value2.Read(reader); RelOp = (RelOpType)reader.ReadInt32(); }
private Dictionary <uint, Adapter> ReadAdapters(OsiReader reader) { var adapters = new Dictionary <uint, Adapter>(); var count = reader.ReadUInt32(); while (count-- > 0) { var adapter = new Adapter(); adapter.Read(reader); adapters.Add(adapter.Index, adapter); } return(adapters); }
private Dictionary <uint, OsirisType> ReadTypes(OsiReader reader) { var types = new Dictionary <uint, OsirisType>(); var count = reader.ReadUInt32(); while (count-- > 0) { var type = new OsirisType(); type.Read(reader); types.Add(type.Index, type); } return(types); }
public override void Read(OsiReader reader) { base.Read(reader); LeftValueIndex = reader.ReadSByte(); RightValueIndex = reader.ReadSByte(); LeftValue = new Value(); LeftValue.Read(reader); RightValue = new Value(); RightValue.Read(reader); RelOp = (RelOpType)reader.ReadInt32(); }
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 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(); 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); } }
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 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) { 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) { 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) { 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>(); } }