public static float[] GetFloatArray(PsoFile pso, Array_float arr) { float[] floats = GetFloatArrayRaw(pso, arr); if (floats == null) { return(null); } for (int i = 0; i < floats.Length; i++) { floats[i] = MetaUtils.SwapBytes(floats[i]); } return(floats); }
public static float[] GetFloatArrayRaw(PsoFile pso, Array_float arr) { byte[] data = pso.DataSection.Data; var entryid = arr.Pointer & 0xFFF; if ((entryid == 0) || (entryid > pso.DataMappingSection.EntriesCount)) { return(null); } var entryoffset = (arr.Pointer & 0xFFFFFF) >> 12; var arrentry = pso.DataMappingSection.Entries[(int)entryid - 1]; int totoffset = arrentry.Offset + (int)entryoffset; float[] readdata = ConvertDataArrayRaw <float>(data, totoffset, arr.Count1); return(readdata); }