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