public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { var flags = ColumnFlags.None; flags |= column.Flags & ColumnFlags.FIXED_ARRAY; flags |= column.Flags & ColumnFlags.EARRAY; flags |= column.Flags & ColumnFlags.INDIRECT; if (flags == ColumnFlags.INDIRECT) { var hasValue = input.ReadValueU32(); if (hasValue == 0) { return; } } var index = input.ReadValueS32(); var target = column.Subtable.Columns[index]; output.WriteStartElement("polymorph"); output.WriteAttributeString("name", target.Name); BlobFile.DeserializeColumn(target, input, output); output.WriteEndElement(); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { throw new NotSupportedException(); /* * output.WriteStartElement("x"); * output.WriteValue(input.ReadValueF32()); * output.WriteEndElement(); * * output.WriteStartElement("y"); * output.WriteValue(input.ReadValueF32()); * output.WriteEndElement(); * * output.WriteStartElement("z"); * output.WriteValue(input.ReadValueF32()); * output.WriteEndElement(); */ }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { var flags = ColumnFlags.None; flags |= column.Flags & ColumnFlags.FIXED_ARRAY; flags |= column.Flags & ColumnFlags.EARRAY; flags |= column.Flags & ColumnFlags.INDIRECT; if (flags == ColumnFlags.INDIRECT) { var hasValue = input.ReadValueU32(); if (hasValue == 0) { return; } } BlobFile.DeserializeTable(column.Subtable, input, output); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { output.WriteValue(input.ReadValueS32()); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { throw new NotImplementedException(); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { var value = input.ReadStringPascalUncapped(); output.WriteValue(value); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { throw new NotSupportedException(); //output.WriteValue(input.ReadValueF32()); }
public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output) { var name = input.ReadString(4, true, Encoding.ASCII); if (_NamesToOpcodes.ContainsKey(name) == false) { throw new FormatException("invalid opcode in multival"); } var op = _NamesToOpcodes[name]; output.WriteStartElement("opcode"); output.WriteAttributeString("type", name); object arg; switch (op) { case MultiValueOpcode.NON: case MultiValueOpcode.O_P: case MultiValueOpcode.C_P: case MultiValueOpcode.STM: case MultiValueOpcode.LES: case MultiValueOpcode.ADD: case MultiValueOpcode.SUB: case MultiValueOpcode.MUL: case MultiValueOpcode.EQU: case MultiValueOpcode.NOT: case MultiValueOpcode.RET: case MultiValueOpcode.AND: case MultiValueOpcode.NEG: case MultiValueOpcode.ORR: case MultiValueOpcode.BAN: case MultiValueOpcode.RZ_: case MultiValueOpcode.NLE: case MultiValueOpcode.GRE: case MultiValueOpcode.DIV: case MultiValueOpcode.BOR: case MultiValueOpcode.NGR: case MultiValueOpcode.BNT: { arg = null; break; } case MultiValueOpcode.S_V: { arg = input.ReadValueU32(); break; } case MultiValueOpcode.INT: case MultiValueOpcode.JZ_: case MultiValueOpcode.J__: { arg = input.ReadValueS64(); break; } case MultiValueOpcode.FLT: { arg = input.ReadValueF64(); break; } case MultiValueOpcode.STR: case MultiValueOpcode.FUN: case MultiValueOpcode.OBJ: case MultiValueOpcode.IDS: case MultiValueOpcode.RP_: { arg = input.ReadStringPascalUncapped(); break; } default: throw new NotSupportedException("unhandled opcode in multival"); } if (arg != null) { output.WriteValue(arg.ToString()); } output.WriteEndElement(); //output.Flush(); }
public abstract void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output);