Beispiel #1
0
        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);
            }
        }
Beispiel #2
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());
            }
        }