Пример #1
0
        public string Parse(
            MutagenFrame reader,
            bool parseWhole = true,
            StringBinaryType stringBinaryType = StringBinaryType.NullTerminate)
        {
            switch (stringBinaryType)
            {
            case StringBinaryType.Plain:
            case StringBinaryType.NullTerminate:
                if (parseWhole)
                {
                    return(BinaryStringUtility.ProcessWholeToZString(reader.ReadMemory(checked ((int)reader.Remaining))));
                }
                else
                {
                    return(BinaryStringUtility.ParseUnknownLengthString(reader.Reader));
                }

            case StringBinaryType.PrependLength:
            {
                var len = reader.ReadInt32();
                return(BinaryStringUtility.ToZString(reader.ReadMemory(len)));
            }

            case StringBinaryType.PrependLengthUShort:
            {
                var len = reader.ReadInt16();
                return(BinaryStringUtility.ToZString(reader.ReadMemory(len)));
            }

            default:
                throw new NotImplementedException();
            }
        }
Пример #2
0
            static partial void FillBinaryCoverTrianglesLogicCustom(MutagenFrame frame, IANavigationMeshData item)
            {
                var count = frame.ReadInt32();

                for (int i = 0; i < count; i++)
                {
                    var index = frame.ReadInt16();
                    item.Triangles[index].IsCover = true;
                }
            }
            public static void FillObject(MutagenFrame frame, IScriptObjectProperty obj, ushort objectFormat)
            {
                switch (objectFormat)
                {
                case 2:
                    obj.Unused         = frame.ReadUInt16();
                    obj.Alias          = frame.ReadInt16();
                    obj.Object.FormKey = FormLinkBinaryTranslation.Instance.Parse(
                        reader: frame,
                        defaultVal: FormKey.Null);
                    break;

                case 1:
                    obj.Object.FormKey = FormLinkBinaryTranslation.Instance.Parse(
                        reader: frame,
                        defaultVal: FormKey.Null);
                    obj.Alias  = frame.ReadInt16();
                    obj.Unused = frame.ReadUInt16();
                    break;

                default:
                    throw new NotImplementedException();
                }
            }