private static double ReadVal(HSDReader d, GXAnimDataFormat Format, float Scale) { d.BigEndian = false; switch (Format) { case GXAnimDataFormat.Float: return(d.ReadSingle()); case GXAnimDataFormat.Short: return(d.ReadInt16() / (double)Scale); case GXAnimDataFormat.UShort: return(d.ReadUInt16() / (double)Scale); case GXAnimDataFormat.SByte: return(d.ReadSByte() / (double)Scale); case GXAnimDataFormat.Byte: return(d.ReadByte() / (double)Scale); default: return(0); } }
public override void Open(HSDReader Reader) { Reader.PrintPosition(); base.Open(Reader); ViewRegion = new HSD_Array <KAR_GrViewRegion>(SizeUnk1_1); Reader.Seek(OffsetUnk1_1); ViewRegion.Open(Reader); GroupsUnk1_2 = new HSD_Array <KAR_GrModel_ModelUnk1_2>(SizeUnk1_2); Reader.Seek(OffsetUnk1_2); GroupsUnk1_2.Open(Reader); GroupsUnk1_3 = new HSD_Array <KAR_GrBoundingBox>(SizeUnk1_3); Reader.Seek(OffsetUnk1_3); GroupsUnk1_3.Open(Reader); DOBJIndices.Clear(); Reader.Seek(OffsetUnk1_4); for (int i = 0; i < SizeUnk1_4; i++) { DOBJIndices.Add(Reader.ReadUInt16()); } }