/// <summary> /// Grabs the values of a Float Array Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public float[] getFloatArrayParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((FloatArray)param).Values); }
/// <summary> /// Grabs the values of a Nested Array Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public SERIParameter[] getNestArrayParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((NestedArray)param).Values); }
/// <summary> /// Grabs the values of a Integer Array Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public int[] getIntegerArrayParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((IntegerArray)param).Values); }
/// <summary> /// Grabs the values of a Boolean Array Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public bool[] getBooleanArrayParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((BooleanArray)param).Values); }
/// <summary> /// Grabs the value of a Float Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public float getFloatParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(0); } return(((Float)param).Value); }
/// <summary> /// Grabs the values of a String Array Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public string[] getStringArrayParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((StringArray)param).Values); }
/// <summary> /// Grabs the value of a Boolean Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public bool getBooleanParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(false); } return(((Boolean)param).Value); }
/// <summary> /// Grabs the value of a Integer Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public int getIntegerParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(0); } return(((Integer)param).Value); }
/// <summary> /// Grabs the value of a String Parameter with the given name. /// </summary> /// <param name="data">The SERI data</param> /// <param name="name">The name of the parameter</param> /// <returns></returns> public string getStringParameter(string name) { SERIParameter param = getParameter(name); if (param == null) { return(null); } return(((String)param).Value); }
public SERIParameter ParseSERIArray(Stream fileData, Stream names, byte[] pointers, int valuesOffset, string name) { using (var br = new BinaryReaderX(fileData, true)) { var arrayDataType = br.ReadString(1); br.BaseStream.Position += 1; var arrayLength = br.ReadInt16(); short[] pointersA = br.ReadMultiple <short>(arrayLength).ToArray(); switch (arrayDataType) { case "s": //Of String string[] StringArray = new string[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { using (var namesB = new BinaryReaderX(names, true)) { namesB.BaseStream.Position = pointersA[i]; string ItemName = namesB.ReadCStringA(); StringArray[i] = ItemName; } } return(new StringArray(name, StringArray)); case "i": //Of Integer switch (name) { case "texi": case "model": case "cloth": case "list": string[] NameArray = new string[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { using (var namesB = new BinaryReaderX(names, true)) using (var pointersB = new BinaryReaderX(new MemoryStream(pointers))) { br.BaseStream.Position = valuesOffset + pointersA[i]; pointersB.BaseStream.Position = (br.ReadInt32() - 1) * 4; namesB.BaseStream.Position = pointersB.ReadInt32(); string ItemName = namesB.ReadCStringA(); NameArray[i] = ItemName; } } return(new StringArray(name, NameArray)); default: int[] IntArray = new int[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { br.BaseStream.Position = valuesOffset + pointersA[i]; IntArray[i] = br.ReadInt32(); } return(new IntegerArray(name, IntArray)); } case "b": //Of Boolean bool[] BooleanArray = new bool[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { br.BaseStream.Position = valuesOffset + pointersA[i]; BooleanArray[i] = br.ReadByte() == 1; } return(new BooleanArray(name, BooleanArray)); case "f": //Of Float float[] FloatArray = new float[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { br.BaseStream.Position = valuesOffset + pointersA[i]; FloatArray[i] = br.ReadSingle(); } return(new FloatArray(name, FloatArray)); case "h": //Of Array SERIParameter[] NestedArray = new SERIParameter[arrayLength]; for (int i = 0; i < pointersA.Length; i++) { br.BaseStream.Position = valuesOffset + pointersA[i]; ushort Count = br.ReadUInt16(); long TypesTableOffset = valuesOffset + pointersA[i] + 2 + Count * 4; SERIParameter[] Arrays = new SERIParameter[Count]; for (int Index = 0; Index < Count; Index++) { using (var namesB = new BinaryReaderX(names, true)) { br.BaseStream.Position = valuesOffset + pointersA[i] + 2 + Index * 4; ushort NameOffset = br.ReadUInt16(); ushort ValueOffset = br.ReadUInt16(); namesB.BaseStream.Position = NameOffset; string ArrayName = namesB.ReadCStringA(); br.BaseStream.Seek(TypesTableOffset + Index, SeekOrigin.Begin); string ValueType = br.ReadString(1); Arrays[Index] = ParseSERIParameter( br.BaseStream, names, pointers, ValueType, name, ValueOffset, valuesOffset); } } NestedArray[i] = new NestedArray(null, Arrays); } return(new NestedArray(name, NestedArray)); default: throw new Exception($"Type {arrayDataType} is unknown!"); } } }
public void Add(SERIParameter Parameter) { Parameters.Add(Parameter); }