public static TSR_SentenceArg Load(TSR_Reader tsrReader, ref int enc_pos) { TSR_SentenceArg arg = new TSR_SentenceArg(); arg.valueType = (ValueType)tsrReader.ReadUInt16(); switch (arg.valueType) { case ValueType.Int: arg.Value = tsrReader.ReadInt32().ToString(); break; case ValueType.Float: arg.Value = tsrReader.ReadFloat().ToString(); break; case ValueType.Tag: case ValueType.Variable: case ValueType.String: case ValueType.Expression: arg.Value = tsrReader.DecodeString(ref enc_pos); break; default: throw new InvalidDataException(String.Format("Unknown ValueType: {0}\nParse failed.", arg.valueType)); } return(arg); }
public static TSR_Sentence Load(TSR_Reader tsrReader, ref int enc_pos) { TSR_Sentence sentence = new TSR_Sentence() { Arguments = new List <TSR_SentenceArg>() }; sentence.Value = tsrReader.DecodeString(ref enc_pos); sentence.Unk = tsrReader.ReadUInt16(); //Arguments int argCount = tsrReader.ReadUInt16(); for (int i = 0; i < argCount; i++) { sentence.Arguments.Add(TSR_SentenceArg.Load(tsrReader, ref enc_pos)); } return(sentence); }