public void Parse() { od = new AutoAdvanceDataReader(ds); bool cont; do { od.ReadUInt(); string sn = GetSectionName(); DetailParser dp; if ("MODEL_PARAM_ST".Equals(sn)) { dp = ParseModelParam; } else if ("EVENT_PARAM_ST".Equals(sn)) { dp = ParseEventParam; } else if ("POINT_PARAM_ST".Equals(sn)) { dp = ParsePointParam; } else if ("PARTS_PARAM_ST".Equals(sn)) { dp = ParsePartParam; } else { Console.WriteLine("unknown section: {0}", sn); return; } cont = ParseTable(dp); } while (cont); }
public HKXParser(DataStream d) { this.d = d; this.od = new AutoAdvanceDataReader(d); }
public void Parse() { AutoAdvanceDataReader od = new AutoAdvanceDataReader(ds); od.ReadUInt(); od.ReadUInt(); uint count = od.ReadUInt(); for (uint i = 0; i < count; ++i) { Texture2D t = new Texture2D(); od.Offset = i * 0x1C + 0x10; t.DataOffset = od.ReadUInt(); t.DataLen = od.ReadUInt(); t.Type = od.ReadUShort(); t.Subtype = od.ReadUShort(); t.Width = od.ReadUShort(); t.Height = od.ReadUShort(); od.ReadUInt(); uint nofs = od.ReadUInt(); t.Name = ds.ReadStr(nofs); if (LoadTex == (int)i || LoadTex == -1) { t.Data = ds.ReadBytes(t.DataOffset, t.DataLen); } Tex.Add(t); } }