Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }