Example #1
0
            public static BodyTemplate ParseBod2(ushort version, IMutagenReadStream frame, SubrecordHeader subrecordHeader)
            {
                var len = subrecordHeader.ContentLength;

                if (version <= 22 && len <= 8)
                {
                    throw SubrecordException.Create("BOD2 can not be parsed on Form Versions <= 22 with length <= 8", RecordTypes.BOD2);
                }

                var item = new BodyTemplate();

                item.ActsLike44       = true;
                item.FirstPersonFlags = EnumBinaryTranslation <BipedObjectFlag, IMutagenReadStream, MutagenWriter> .Instance.Parse(
                    reader : frame,
                    length : 4);

                if (len == 8)
                {
                    item.ArmorType = EnumBinaryTranslation <ArmorType, IMutagenReadStream, MutagenWriter> .Instance.Parse(
                        reader : frame,
                        length : 4);
                }
                else
                {
                    item.Flags = EnumBinaryTranslation <BodyTemplate.Flag, IMutagenReadStream, MutagenWriter> .Instance.Parse(
                        reader : frame,
                        length : 4);

                    item.ArmorType = EnumBinaryTranslation <ArmorType, IMutagenReadStream, MutagenWriter> .Instance.Parse(
                        reader : frame,
                        length : 4);
                }
                return(item);
            }