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); } } }
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); } } }
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); } }
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); } }
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); } }
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); } }
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(); } }
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); } }
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); }
protected void SerializeMiscOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { using (s.EnterCursorBookmark("Misc")) s.StreamObject(OptionsMisc); }
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); }
protected void SerializRespawnOptions <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { using (s.EnterCursorBookmark("Respawning")) s.StreamObject(OptionsRespawning); }
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); }
protected void SerializeContentHeader <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { using (s.EnterCursorBookmark("Header")) s.StreamObject(Header); }
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); } }
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); } }
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); } }
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); }
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(); } }
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(); } }
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); } }
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); } } }
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); } }
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); } }
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); } }
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 }