public override void Parse(MetaFile meta, Unk_2741784237 Unk_2741784237) { this.Meta = meta; this.MetaStructure = Unk_2741784237; this.Bmin = Unk_2741784237.bmin; this.Bmax = Unk_2741784237.bmax; this.DataSize = Unk_2741784237.dataSize; this.Verts = Unk_2741784237.verts; this.Unk_853977995 = Unk_2741784237.Unk_853977995; this.Unk_2337695078 = Unk_2741784237.Unk_2337695078; this.Flags = Unk_2741784237.flags; }
public static string GetString(PsoFile pso, DataBlockPointer ptr) { var blocki = (int)ptr.PointerDataId; // (ptr.Pointer & 0xFFF) - 1; var offset = (int)ptr.PointerDataOffset; // (ptr.Pointer >> 12) & 0xFFFFF; var block = pso.GetBlock(blocki); if (block == null) { return(null); } //var length = ptr.Count1; //var lastbyte = offset + length; //if (lastbyte >= block.Length) //{ return null; } var data = pso.DataSection?.Data; if (data == null) { return(null); } //var doffset = block.Offset + offset; //string s = Encoding.ASCII.GetString(data, doffset, length); StringBuilder sb = new StringBuilder(); var o = block.Offset + offset; char c = (char)data[o]; while (c != 0) { sb.Append(c); o++; c = (char)data[o]; } var s = sb.ToString(); return(s); }