Exemplo n.º 1
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.Serialize(s);

            using (s.EnterCursorBookmark("Powerups"))
            {
                GameOptionsPowerup             pu;
                Predicate <GameOptionsPowerup> pu_is_not_default = obj => !obj.IsUnchanged;

                pu = Powerups[0];
                using (var bm = s.EnterCursorBookmarkOpt("DamageBoost", pu, pu_is_not_default)) if (bm.IsNotNull)
                    {
                        s.StreamObject(pu);
                    }
                pu = Powerups[1];
                using (var bm = s.EnterCursorBookmarkOpt("SpeedBoost", pu, pu_is_not_default)) if (bm.IsNotNull)
                    {
                        s.StreamObject(pu);
                    }
                pu = Powerups[2];
                using (var bm = s.EnterCursorBookmarkOpt("Overshield", pu, pu_is_not_default)) if (bm.IsNotNull)
                    {
                        s.StreamObject(pu);
                    }
                pu = Powerups[3];
                using (var bm = s.EnterCursorBookmarkOpt("Custom", pu, pu_is_not_default)) if (bm.IsNotNull)
                    {
                        s.StreamObject(pu);
                    }
            }
        }
Exemplo n.º 2
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.Serialize(s);

            using (s.EnterCursorBookmark("Powerups"))
            {
                Predicate <PlayerTraits> traits_are_changed = obj => !obj.IsUnchanged;

                using (var bm = s.EnterCursorBookmarkOpt("Red", Red, traits_are_changed)) if (bm.IsNotNull)
                    {
                        s.StreamAttribute("duration", ref RedDuration);
                        s.StreamObject(Red);
                    }
                using (var bm = s.EnterCursorBookmarkOpt("Blue", Blue, traits_are_changed)) if (bm.IsNotNull)
                    {
                        s.StreamAttribute("duration", ref BlueDuration);
                        s.StreamObject(Blue);
                    }
                using (var bm = s.EnterCursorBookmarkOpt("Yellow", Yellow, traits_are_changed)) if (bm.IsNotNull)
                    {
                        s.StreamAttribute("duration", ref YellowDuration);
                        s.StreamObject(Yellow);
                    }
            }
        }
Exemplo n.º 3
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            using (s.EnterOwnerBookmark(this))
            {
                using (s.EnterCursorBookmark("Base"))
                    s.StreamObject(BaseVariant);

                using (s.EnterCursorBookmark("Megalo"))
                    SerializeImpl(s);

                if (s.IsWriting && s.IgnoreWritePredicates)                 // #HACK_BLAM: IgnoreWritePredicates hack!
                {
                    Debug.Trace.Megalo.TraceInformation("Always write 'default' data HACK: Skipping MegaloScript element (output will be incomplete) in {0}, '{1}'",
                                                        s.StreamName,
                                                        BaseVariant.Header.Title);

                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine();
                    Console.WriteLine("Always write 'default' data HACK: Skipping MegaloScript element (output will be incomplete)");
                    Console.ResetColor();
                    return;
                }

                using (s.EnterCursorBookmark("MegaloScript"))
                    s.StreamObject(EngineDefinition);
            }
        }
Exemplo n.º 4
0
        protected virtual void SerializeLocaleStrings <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            using (var bm = s.EnterCursorBookmarkOpt("StringTable", this, _obj => _obj.StringTableIsNotDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(StringTable);

                    SerializeStringTableIndexOpt(s, "baseNameIndex", ref BaseNameStringIndex);
                }
                else
                {
                    StringTableRevertToDefault();
                }

            using (var bm = s.EnterCursorBookmarkOpt("NameString", NameString, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamObject(NameString);
                }
            using (var bm = s.EnterCursorBookmarkOpt("DescString", DescriptionString, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamObject(DescriptionString);
                }
            using (var bm = s.EnterCursorBookmarkOpt("CategoryString", CategoryString, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamObject(CategoryString);
                }
        }
Exemplo n.º 5
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.Serialize(s);

            s.StreamAttributeOptUnchangedZero("camo", ref ActiveCamo);
            s.StreamAttributeOptUnchangedZero("waypoint", ref Waypoint);
            s.StreamAttributeOptUnchangedZero("gamertag", ref GamertagVisible);
            s.StreamAttributeOptUnchangedZero("aura", ref Aura);

            s.StreamAttributeOptUnchangedZero("shieldHud", ref ShieldHud);

            using (var bm = s.EnterCursorBookmarkOpt("Effects", this, obj => obj.EffectsAreNotDefault)) if (bm.IsNotNull)
                {
                    s.StreamAttributeOptDefaultOption("death", ref DeathEffect);
                    s.StreamAttributeOptDefaultOption("looping", ref LoopingEffect);
                }
            using (var bm = s.EnterCursorBookmarkOpt("PrimaryColor", PrimaryColor, obj => !obj.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(PrimaryColor);
                }
            using (var bm = s.EnterCursorBookmarkOpt("SecondaryColor", SecondaryColor, obj => !obj.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(SecondaryColor);
                }
            using (var bm = s.EnterCursorBookmarkOpt("Model", ModelVariant, obj => !obj.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(ModelVariant);
                }
        }
Exemplo n.º 6
0
        public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            using (var bm = s.EnterCursorBookmarkOpt("Damage", Damage, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Damage);
                }

            using (var bm = s.EnterCursorBookmarkOpt("Weapons", Weapons, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Weapons);
                }

            using (var bm = s.EnterCursorBookmarkOpt("Movement", Movement, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Movement);
                }

            using (var bm = s.EnterCursorBookmarkOpt("Appearance", Appearance, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Appearance);
                }

            using (var bm = s.EnterCursorBookmarkOpt("Sensors", Sensors, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Sensors);
                }
        }
Exemplo n.º 7
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != 0, true);

            if (!s.StreamAttributeOpt("infinityMissionId", ref InfinityMissionId, Predicates.IsNotNone))
            {
                InfinityMissionId = TypeExtensions.kNone;
            }

            SerializeContentHeader(s);
            SerializeMiscOptions(s);
            using (var bm = s.EnterCursorBookmarkOpt("Prototype", OptionsPrototype, obj => !obj.IsEmpty)) if (bm.IsNotNull)
                {
                    s.StreamObject(OptionsPrototype);
                }
            SerializRespawnOptions(s);

            SerializeSocialOptions(s);
            SerializMapOverrides(s);
            using (var bm = s.EnterCursorBookmarkOpt("Requisitions", OptionsRequisitions, obj => !obj.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(OptionsRequisitions);
                }
            SerializeTeams(s);

            SerializeLoadoutOptions(s);
            using (var bm = s.EnterCursorBookmarkOpt("Ordnance", OrdnanceOptions, obj => !obj.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(OrdnanceOptions);
                }
                else if (s.IsReading)
                {
                    OrdnanceOptions.RevertToDefault();
                }
        }
Exemplo n.º 8
0
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (var bm = s.EnterCursorBookmarkOpt("Base", BaseTraits, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
         {
             s.StreamObject(BaseTraits);
         }
     using (var bm = s.EnterCursorBookmarkOpt("Runtime", RuntimeTraits, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
         {
             s.StreamObject(RuntimeTraits);
         }
 }
Exemplo n.º 9
0
        protected virtual void SerializeImpl <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            using (s.EnterCursorBookmark("SerializeFlags"))
                s.StreamCursorEnum(ref TagElementStreamSerializeFlags, true);

            s.StreamAttribute("encoding", ref mEncodingVersion, NumeralBase.Hex);
            s.StreamAttribute("version", ref EngineVersion);
            // Must come first. Most of the other variant data contains string references
            SerializeLocaleStrings(s);

            using (var bm = s.EnterCursorBookmarkOpt("PlayerTraits", PlayerTraits, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamableElements("entry", PlayerTraits, this, _this => _this.NewMegaloPlayerTraits());
                }
            using (var bm = s.EnterCursorBookmarkOpt("UserDefinedOptions", UserDefinedOptions, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamableElements("entry", UserDefinedOptions);
                }

            if (!s.StreamAttributeOpt("engineIcon", ref EngineIconIndex, Predicates.IsNotNone))
            {
                EngineIconIndex = TypeExtensions.kNone;
            }
            if (!s.StreamAttributeOpt("engineCategory", ref EngineCategory, Predicates.IsNotNone))
            {
                EngineCategory = TypeExtensions.kNone;
            }

            using (var bm = s.EnterCursorBookmarkOpt("MapPermissions", MapPermissions, mp => !mp.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(MapPermissions);
                }

            using (var bm = s.EnterCursorBookmarkOpt("PlayerRatingParams", PlayerRatingParameters, prp => !prp.IsDefault)) if (bm.IsNotNull)
                {
                    s.StreamObject(PlayerRatingParameters);
                }
                else
                {
                    PlayerRatingParameters.RevertToDefault();
                }

            s.StreamAttributeOpt("scoreToWinRound", ref ScoreToWinRound, Predicates.IsNotZero);

            SerializeOptionToggles(s);
        }
Exemplo n.º 10
0
 protected void SerializeMiscOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (s.EnterCursorBookmark("Misc"))
         s.StreamObject(OptionsMisc);
 }
Exemplo n.º 11
0
 protected virtual void SerializeImpl <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (s.EnterCursorBookmark("Base"))
         s.StreamObject(BaseVariant);
 }
Exemplo n.º 12
0
 protected void SerializRespawnOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (s.EnterCursorBookmark("Respawning"))
         s.StreamObject(OptionsRespawning);
 }
Exemplo n.º 13
0
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttribute("duration", ref Duration);
     s.StreamObject(Traits);
 }
Exemplo n.º 14
0
 protected void SerializeContentHeader <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (s.EnterCursorBookmark("Header"))
         s.StreamObject(Header);
 }
Exemplo n.º 15
0
 protected void SerializMapOverrides <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (s.EnterCursorBookmark("MapOverrides"))
         s.StreamObject(OptionsMapOverrides);
 }
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttribute("size_", ref Size);
     s.StreamObject(Loadout);
 }
        protected override void SerializeLocaleStrings <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.SerializeLocaleStrings(s);

            using (var bm = s.EnterCursorBookmarkOpt("IntroString", IntroDescriptionString, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamObject(IntroDescriptionString);
                }
        }
Exemplo n.º 18
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            SanityCheckInvalidIsFalse(s.StreamName);
            base.Serialize(s);

            using (s.EnterCursorBookmark("GameVariant"))
            {
                s.StreamObject(Data);
            }
        }
Exemplo n.º 19
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.Serialize(s);

            using (s.EnterCursorBookmark("ContentHeader"))
            {
                s.StreamAttribute("buildMajor", ref mBuildMajor);
                s.StreamAttribute("buildMinor", ref mBuildMinor);
                s.StreamObject(Data);
            }
        }
Exemplo n.º 20
0
		public void Serialize<TDoc, TCursor>(IO.TagElementStream<TDoc, TCursor, string> s)
			where TDoc : class
			where TCursor : class
		{
			s.StreamAttributeEnum("type", ref Type);
			SerializeActivity(s, "activity", ref Activity);
			s.StreamAttributeEnum("mode", ref Mode);
			s.StreamAttributeEnum("engine", ref EngineType);

			s.StreamAttributeOpt("fileLength", ref FileLength, Predicates.IsNotZero);

			using (s.EnterCursorBookmark("Unknown"))
			{
				s.StreamAttributeOpt("id0", ref unk08, Predicates.IsNotZero, NumeralBase.Hex);
				s.StreamAttributeOpt("id1", ref unk10, Predicates.IsNotZero, NumeralBase.Hex);
				s.StreamAttributeOpt("id2", ref unk18, Predicates.IsNotZero, NumeralBase.Hex);
				s.StreamAttributeOpt("unk20", ref unk20, Predicates.IsNotZero, NumeralBase.Hex);

				s.StreamAttributeOpt("unk2C", ref unk2C, Predicates.IsNotNone);
			}

			using (s.EnterCursorBookmark("Creator"))
				s.StreamObject(Creator);
			using (s.EnterCursorBookmark("Modifier"))
				s.StreamObject(Modifier);

			s.StreamElement("Title", ref Title);
			s.StreamElementOpt("Description", ref Description, Predicates.IsNotNullOrEmpty);

			if (Type == ContentType.Film || Type == ContentType.FilmClip)
				s.StreamElement("FilmLength_", ref unk280);
			else if (Type == ContentType.GameVariant)
				if (!s.StreamElementOpt("EngineIconIndex", ref unk280, Predicates.IsNotNone))
					EngineIconIndex = TypeExtensions.kNone;
			s.StreamAttributeOpt("EngineCategoryIndex", ref EngineCategoryIndex, Predicates.IsNotNone);

			if (Activity == 2)
				s.StreamElement("HopperID", ref HopperId);

			SerializeGameSpecificData(s);
		}
Exemplo n.º 21
0
 protected void SerializeLoadoutOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (var bm = s.EnterCursorBookmarkOpt("Loadouts", LoadoutOptions, opts => !opts.IsDefault)) if (bm.IsNotNull)
         {
             s.StreamObject(LoadoutOptions);
         }
         else if (s.IsReading)
         {
             LoadoutOptions.RevertToDefault();
         }
 }
Exemplo n.º 22
0
 protected void SerializeSocialOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     using (var bm = s.EnterCursorBookmarkOpt("Social", OptionsSocial, opts => !opts.IsDefault)) if (bm.IsNotNull)
         {
             s.StreamObject(OptionsSocial);
         }
         else if (s.IsReading)
         {
             OptionsSocial.RevertToDefault();
         }
 }
Exemplo n.º 23
0
 public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != 0, true);
     using (var bm = s.EnterCursorBookmarkOpt("ObjectSets", this, obj => obj.ObjectSetsAreNotDefault)) if (bm.IsNotNull)
         {
             SerializeObjectSets(s);
         }
     using (var bm = s.EnterCursorBookmarkOpt("BaseTraits", BaseTraits, t => !t.IsUnchanged)) if (bm.IsNotNull)
         {
             s.StreamObject(BaseTraits);
         }
 }
Exemplo n.º 24
0
        protected override void SerializeImpl <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            base.SerializeImpl(s);

            s.StreamAttribute("fireTeamsEnabled", ref FireTeamsEnabled);
            s.StreamAttribute("symmetricGametype", ref SymmetricGametype);

            if (mEncodingVersion >= kEncodingVersionTU1)
            {
                using (var bm = s.EnterCursorBookmarkOpt("TU1", TU1, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                    {
                        s.StreamObject(TU1);
                    }
            }
        }
Exemplo n.º 25
0
        public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var variant = (GameEngineMegaloVariant)s.Owner;

            variant.SerializeStringTableIndex(s, "nameIndex", ref NameStringIndex);
            variant.SerializeStringTableIndex(s, "descIndex", ref DescriptionStringIndex);

            SerializeCodeName(s);

            using (var bm = s.EnterCursorBookmarkOpt("Traits", Traits, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamObject(Traits);
                }
        }
Exemplo n.º 26
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            s.StreamAttribute("designator", ref InitialDesignator);
            if (InitialDesignator.IsNone())
            {
                RevertToDefault();
                return;
            }

            SerializeImpl(s);

            using (var bm = s.EnterCursorBookmarkOpt("Name", NameString, Predicates.HasItems)) if (bm.IsNotNull)
                {
                    s.StreamObject(NameString);
                }
        }
Exemplo n.º 27
0
        public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            s.StreamAttributeEnumOpt("flags", ref Flags, f => f != 0, true);
            using (var bm = s.EnterCursorBookmarkOpt("Lives", this, obj => !obj.LivesAreDefault)) if (bm.IsNotNull)
                {
                    s.StreamAttribute("perRound", ref LivesPerRound);
                    s.StreamAttribute("perRoundTeam", ref TeamLivesPerRound);
                }
            using (s.EnterCursorBookmark("Times"))
                SerializeTimes(s);

            using (var bm = s.EnterCursorBookmarkOpt("Traits", Traits, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamAttributeOpt("duration", ref TraitsDuration, Predicates.IsNotZero);
                    s.StreamObject(Traits);
                }
        }
Exemplo n.º 28
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != 0, true);

            s.StreamAttributeOptDefaultOption("unk6", ref unk6);
            s.StreamAttributeOptDefaultOption("unk12", ref unk12);

            s.StreamAttributeOptDefaultOption("unk36", ref unk36);
            s.StreamAttributeOptDefaultOption("initialDropDelay", ref InitialDropDelay);

            s.StreamAttributeOpt("customizePersonalOrdnance", ref CustomizePersonalOrdnance, Predicates.IsTrue);

            using (var bm = s.EnterCursorBookmarkOpt("DropSets", this, obj => !obj.DropSetNames_AreDefault)) if (bm.IsNotNull)
                {
                    if (!s.StreamAttributeOpt("initial", ref InitialDropSet, IsNotDefaultString))
                    {
                        InitialDropSet = kDefaultString;
                    }
                    if (!s.StreamAttributeOpt("random", ref RandomDropSet, IsNotDefaultString))
                    {
                        RandomDropSet = kDefaultString;
                    }
                    if (!s.StreamAttributeOpt("personal", ref PersonalDropSet, IsNotDefaultString))
                    {
                        PersonalDropSet = kDefaultString;
                    }
                    if (!s.StreamAttributeOpt("ordnanceSubstitutions", ref OrdnanceSubstitutions, Predicates.IsNotNullOrEmpty))
                    {
                        OrdnanceSubstitutions = "";
                    }
                }
            using (var bm = s.EnterCursorBookmarkOpt("InfinityResupplyTime", this, obj => !obj.InfinityResupplyTime_IsUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamAttributeOptDefaultOption("min", ref ResupplyTimeMin);
                    s.StreamAttributeOptDefaultOption("max", ref ResupplyTimeMax);
                }
            using (var bm = s.EnterCursorBookmarkOpt("Points", this, obj => !obj.Points_AreUnchanged)) if (bm.IsNotNull)
                {
                    s.StreamAttribute("requirement", ref PointRequirement);
                    s.StreamAttribute("increaseMultiplier", ref PointIncreaseMultiplier);
                }

            #region PersonalOrdnance
            GameOptionsOrdnancePersonalOrdnancePossibilities             possibilities;
            Predicate <GameOptionsOrdnancePersonalOrdnancePossibilities> possibilities_are_changed = p => !p.IsDefault;

            possibilities = PersonalOrdnance[0];
            using (var bm = s.EnterCursorBookmarkOpt("Right", possibilities, possibilities_are_changed)) if (bm.IsNotNull)
                {
                    s.StreamObject(possibilities);
                }
            possibilities = PersonalOrdnance[1];
            using (var bm = s.EnterCursorBookmarkOpt("Left", possibilities, possibilities_are_changed)) if (bm.IsNotNull)
                {
                    s.StreamObject(possibilities);
                }
            possibilities = PersonalOrdnance[2];
            using (var bm = s.EnterCursorBookmarkOpt("Down", possibilities, possibilities_are_changed)) if (bm.IsNotNull)
                {
                    s.StreamObject(possibilities);
                }
            possibilities = PersonalOrdnance[3];
            using (var bm = s.EnterCursorBookmarkOpt("Unused", possibilities, possibilities_are_changed)) if (bm.IsNotNull)
                {
                    s.StreamObject(possibilities);
                }
            #endregion
        }