Example #1
0
        static void SaveEntry(File file, WRLEntry entry)
        {
            file.Store32(OBMG_MAGIC);
            var type = entry.Type;

            file.StoreFixedString(type, 24);
            file.Store32(entry.U);
            var length = entry.Length;

            file.Store32(length);

            var endPosition = file.GetPosition() + length;

            file.Store32(entry.Layer);
            file.StoreFixedString(entry.Name, 24);

            var binding = "";

            if (entry.Binding != null)
            {
                binding = entry.Binding.Name;
            }
            file.StoreFixedString(binding, 24);

            entry.Save(file);

            if (file.GetPosition() != endPosition)
            {
                GD.PrintErr("The WRLEntry for type \"", type, "\" didn't write the correct amount; correcting...");
                file.Seek(endPosition);
            }

            foreach (var e in entry.children)
            {
                SaveEntry(file, e);
            }
        }
Example #2
0
 void HandleEntryAdded(WRLEntry entry)
 {
     EntryAdded(entry);
     entry.children.ForEach(HandleEntryAdded);
 }