Patcher.Data.Plugins.FormLoader.LoadSingleForm C# (CSharp) Method

LoadSingleForm() private static method

private static LoadSingleForm ( Form form, RecordReader reader, SharedData sharedData ) : void
form Form
reader RecordReader
sharedData SharedData
return void
        private static void LoadSingleForm(Form form, RecordReader reader, SharedData sharedData)
        {
            // Skip if record has been already loaded
            // unless it has been loaded lazily and current loading scheme is lazy again
            if (form.Record != null && (!form.IsLazyLoaded || sharedData.LazyLoading))
            {
                Interlocked.Increment(ref sharedData.Skipped);
            }
            else
            {
                if (sharedData.LazyLoading)
                {
                    form.Flags |= FormFlags.LazyLoaded;
                }
                else
                {
                    form.Flags &= ~FormFlags.LazyLoaded;
                }

                form.Record = sharedData.Plugin.Context.CreateGenericFormRecord(form.FormKind);

                reader.ReadRecordAt(form.FilePosition, form.Record, sharedData.LazyLoading);

                sharedData.LastFormLoaded = form;

                if (form.IsDummyRecord)
                    Interlocked.Increment(ref sharedData.Unsupported);

                Interlocked.Increment(ref sharedData.Loaded);
            }
        }