Exemplo n.º 1
0
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttributeEnumOpt("LeftRumbleType", ref mLeftRumbleType, e => e != BRumbleType.None);
     s.StreamAttributeEnumOpt("RightRumbleType", ref mRightRumbleType, e => e != BRumbleType.None);
     s.StreamAttributeOpt("Duration", ref mDuration, Predicates.IsNotZero);
     s.StreamAttributeOpt("LeftStrength", ref mLeftStrength, Predicates.IsNotZero);
     s.StreamAttributeOpt("RightStrength", ref mRightStrength, Predicates.IsNotZero);
 }
Exemplo n.º 2
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var teamChanging = s.IsReading ? TeamChangingType.Enabled : (TeamChangingType)TeamChanging;

            //s.StreamAttributeOpt("observersAllowed", ref ObserversAllowed, Predicates.IsTrue);
            s.StreamAttributeEnumOpt("teamChanging", ref teamChanging, v => v != TeamChangingType.Enabled);
            s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != kDefaultFlags, true);

            if (s.IsReading)
            {
                TeamChanging = (byte)teamChanging;
            }
        }
Exemplo n.º 3
0
        protected virtual void SerializeImpl <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            using (s.EnterCursorBookmark("Sandbox"))
            {
                s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != GameEngineSandboxVariantFlags.OpenChannelVoiceEnabled, true);
                s.StreamAttributeEnumOpt("editMode", ref EditMode, e => e != SandboxEditingMode.AllPlayers);
                s.StreamAttributeEnumOpt("respawnTime", ref RespawnTime, v => v != TypeExtensionsBlam.kUsualDefaultRespawnTimeInSeconds);

                using (var bm = s.EnterCursorBookmarkOpt("EditorTraits", EditorTraits, obj => !obj.IsUnchanged)) if (bm.IsNotNull)
                    {
                        EditorTraits.Serialize(s);
                    }
            }
        }
Exemplo n.º 4
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var model = (Model.MegaloScriptModel)s.Owner;

            model.MegaloVariant.SerializeStringTableIndexOpt(s, "labelIndex", ref mLabelStringIndex);
            SerializeCodeName(s);
            s.StreamAttributeEnumOpt("params", ref mValidParameters, f => f != 0, true);
            s.StreamAttributeOpt("min", ref mMinimum, Predicates.IsNotZero);
            if (HasObjectTypeIndex)
            {
                Model.MegaloScriptIndexValue.SerializeValue(model, s, model.Database.ObjectTypeIndexValueType,
                                                            ref mObjectTypeIndex, IO.TagElementNodeType.Element, "ObjectType");
            }
            if (HasTeam)
            {
                Model.MegaloScriptEnumValue.SerializeValue(model, s, model.Database.TeamDesignatorValueType,
                                                           ref mTeam, IO.TagElementNodeType.Element, "Team");
            }
            if (HasNumeric)
            {
                s.StreamElement("Numeric", ref mNumeric);
            }
        }
Exemplo n.º 5
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.º 6
0
 public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttributeOpt("designatorSwitchType", ref DesignatorSwitchType, v => v != 2);
     s.StreamAttributeEnumOpt("model", ref ModelOverride, e => e != GameOptionsTeamOptionsModelOverride.Default);
     SerializeTeams(s);
 }
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamCursorEnum(ref mType);
     s.StreamAttributeEnumOpt("target", ref mTarget, e => e != BCollectibleSkullTarget.None);
     s.StreamAttributeOpt("value", ref mValue, PhxPredicates.IsNotInvalid);
 }
Exemplo n.º 8
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            var xs = s.GetSerializerInterface();

            using (s.EnterCursorBookmark("Attributes"))
            {
                base.Serialize(s);

                using (var bm = s.EnterCursorBookmarkOpt("Cost", Cost, x => x.HasNonZeroItems)) if (bm.IsNotNull)
                    {
                        XML.XmlUtil.SerializeCostHack(s, Cost);
                    }
                XML.XmlUtil.Serialize(s, DynamicCosts, BPowerDynamicCost.kBListXmlParams);
                XML.XmlUtil.Serialize(s, TargetEffectiveness, BPowerTargetEffectiveness.kBListXmlParams);
                XML.XmlUtil.Serialize(s, Populations, BPopulation.kBListXmlParamsSingle_LowerCase);
                s.StreamElementOpt("UIRadius", ref mUIRadius, Predicates.IsNotZero);
                s.StreamElementEnumOpt("PowerType", ref mPowerType, e => e != BPowerType.Invalid);
                s.StreamElementOpt("AutoRecharge", ref mAutoRecharge, Predicates.IsNotZero);
                s.StreamElementOpt("UseLimit", ref mUseLimit, Predicates.IsNotZero);
                XML.XmlUtil.Serialize(s, Flags, XML.BBitSetXmlParams.kFlagsAreElementNamesThatMeanTrue);
                XML.XmlUtil.Serialize(s, Flags2, XML.BBitSetXmlParams.kFlagsAreElementNamesThatMeanTrue);
                s.StreamElementOpt("Icon", ref mIconTextureName, Predicates.IsNotNullOrEmpty);
                s.StreamElements("IconLocation", IconLocations, xs, StreamIconLocation);
                s.StreamElements("TechPrereq", TechPrereqs, xs, XML.BDatabaseXmlSerializerBase.StreamTechID);
                s.StreamElementEnumOpt("Action", ref mActionType, BProtoAction.kNotInvalidActionType);
                s.StreamElementEnumOpt("Minigame", ref mMinigameType, e => e != BMinigameType.None);
                s.StreamElementOpt("CameraZoomMin", ref mCameraZoomMin, Predicates.IsNotZero);
                s.StreamElementOpt("CameraZoomMax", ref mCameraZoomMax, Predicates.IsNotZero);
                s.StreamElementOpt("CameraPitchMin", ref mCameraPitchMin, Predicates.IsNotZero);
                s.StreamElementOpt("CameraPitchMax", ref mCameraPitchMax, Predicates.IsNotZero);
                s.StreamElementOpt("CameraEffectIn", ref mCameraEffectIn, Predicates.IsNotNullOrEmpty);
                s.StreamElementOpt("CameraEffectOut", ref mCameraEffectOut, Predicates.IsNotNullOrEmpty);
                s.StreamElementOpt("MinDistanceToSquad", ref mMinDistanceToSquad, PhxPredicates.IsNotInvalid);
                s.StreamElementOpt("MaxDistanceToSquad", ref mMaxDistanceToSquad, PhxPredicates.IsNotInvalid);
                using (var bm = s.EnterCursorBookmarkOpt("ShowTargetHighlight", this, x => x.HasShowTargetHighlightData)) if (bm.IsNotNull)
                    {
                        xs.StreamDBID(s, "ObjectType", ref mShowTargetHighlightObjectType, DatabaseObjectKind.ObjectType, xmlSource: XML.XmlUtil.kSourceAttr);
                        s.StreamAttributeEnumOpt("Relation", ref mShowTargetHighlightRelation, e => e != BRelationType.Any);
                    }
                using (var bm = s.EnterCursorBookmarkOpt("ChildObjects", ChildObjectIDs, Predicates.HasItems)) if (bm.IsNotNull)
                    {
                        s.StreamElements("Object", ChildObjectIDs, xs, XML.BDatabaseXmlSerializerBase.StreamObjectID);
                    }
                using (var bm = s.EnterCursorBookmarkOpt("BaseDataLevel", this, x => x.BaseDataLevel != null)) if (bm.IsNotNull)
                    {
                        if (s.IsReading)
                        {
                            mBaseDataLevel = new BProtoPowerDataLevel();
                        }

                        BaseDataLevel.Serialize(s);
                    }
                XML.XmlUtil.Serialize(s, LevelData, BProtoPowerDataLevel.kBListExplicitIndexXmlParams);
            }
            s.StreamElementOpt("TriggerScript", ref mTriggerScript, Predicates.IsNotNullOrEmpty);
            s.StreamElementOpt("CommandTriggerScript", ref mCommandTriggerScript, Predicates.IsNotNullOrEmpty);
        }
Exemplo n.º 9
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);
     s.StreamAttributeOptNoneOption("nameIndex", ref NameIndex);
     SerializeWeaponsAndEquipment(s);
     s.StreamAttributeOpt("grenadeCount", ref InitialGrenadeCount, Predicates.IsNotZero);
 }
        // #NOTE the attributes here should match the ones used in EcfChunk's code

        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var ecf_expander = s.Owner as EcfFileExpander;

            if (s.IsReading)
            {
                Parent = (EcfFileDefinition)s.UserData;
            }

            s.StreamAttribute("id", this, obj => Id, NumeralBase.Hex);
            s.StreamAttributeOpt("align", this, obj => AlignmentBit, b => b != EcfChunk.kDefaultAlignmentBit, NumeralBase.Hex);

            if (s.StreamAttributeEnumOpt("Compression", this, obj => CompressionType, e => e != EcfCompressionType.Stored))
            {
                // #NOTE DeflateRaw requires the decompressed size to be known somewhere, and generic ECF files do not store such info
                // Only available in ERAs
                if (CompressionType == EcfCompressionType.DeflateRaw)
                {
                    s.ThrowReadException(new InvalidDataException(CompressionType + " is not supported in this context"));
                }
            }

            if (s.IsReading)
            {
                ReadResourceFlags(s);
            }
            else if (s.IsWriting)
            {
                WriteResourceFlags(s);
            }

            s.StreamAttributeOpt("Path", this, obj => FilePath, Predicates.IsNotNullOrEmpty);

            // Don't try to write the file bytes
            bool try_to_serialize_file_bytes = s.IsReading || FilePath.IsNullOrEmpty();

            if (ecf_expander != null)
            {
                if (!ecf_expander.ExpanderOptions.Test(EcfFileExpanderOptions.DontSaveChunksToFiles))
                {
                    try_to_serialize_file_bytes = true;
                }
            }

            if (try_to_serialize_file_bytes)
            {
                if (!s.StreamCursorBytesOpt(this, obj => FileBytes))
                {
                    if (FilePath.IsNullOrEmpty())
                    {
                        s.ThrowReadException(new InvalidDataException("Expect Path attribute or file hex bytes"));
                    }
                }
            }
        }
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            s.StreamAttributeEnumOpt("status", ref mTechStatus, BProtoTechStatusIsNotInvalid);
            xs.StreamDBID(s, XML.XmlUtil.kNoXmlName, ref mTechID, DatabaseObjectKind.Tech, false, XML.XmlUtil.kSourceCursor);
        }
Exemplo n.º 12
0
        protected virtual void SerializeOverrides <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            s.StreamAttributeOpt("primaryColor", ref PrimaryColorOverride, v => v != uint.MaxValue, NumeralBase.Hex);
            s.StreamAttributeOpt("secondaryColor", ref SecondaryColorOverride, v => v != uint.MaxValue, NumeralBase.Hex);
            s.StreamAttributeOpt("textColor", ref TextColorOverride, v => v != uint.MaxValue, NumeralBase.Hex);

            s.StreamAttributeEnumOpt("model", ref ModelOverride, e => e != GameOptionsSingleTeamModelOverride.Spartan);
        }
Exemplo n.º 13
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            s.StreamAttribute("count", ref mCount);
            s.StreamAttributeEnumOpt("role", ref mUnitRole, e => e != BUnitRole.Normal);
            xs.StreamDBID(s, XML.XmlUtil.kNoXmlName, ref mUnitID, DatabaseObjectKind.Object, false, XML.XmlUtil.kSourceCursor);
        }
Exemplo n.º 14
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            xs.StreamDBID(s, "unit", ref mUnitID, DatabaseObjectKind.Object, false, XML.XmlUtil.kSourceAttr);
            s.StreamAttributeEnumOpt("operator", ref mOperator, e => e != BProtoTechTypeCountOperator.e);
            s.StreamAttributeOpt("count", ref mCount, Predicates.IsNotZero);
        }
 public void StreamCommand <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s, XML.BXmlSerializerInterface xs)
     where TDoc : class
     where TCursor : class
 {
     // #NOTE engine parses this as "CommandType", but its parser ignores case
     if (s.StreamAttributeEnumOpt("commandType", ref CommandType, e => e != BProtoObjectCommandType.Invalid))
     {
         StreamCommandData(s, xs);
     }
 }
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            xs.StreamDBID(s, XML.XmlUtil.kNoXmlName, ref mDamageType, DatabaseObjectKind.DamageType, isOptional: false, xmlSource: XML.XmlUtil.kSourceCursor);
            s.StreamAttributeEnum("direction", ref mDirection);
            s.StreamAttributeEnumOpt("mode", ref mMode, e => e != BSquadMode.Normal);
        }
Exemplo n.º 17
0
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttributeOpt("sizeX", ref mSize.X, f => f != 2.0f);
     s.StreamAttributeOpt("sizeZ", ref mSize.Z, f => f != 2.0f);
     s.StreamAttributeOpt("timeFullyOpaque", ref mTimeFullyOpaque, f => f != 5.0f);
     s.StreamAttributeOpt("fadeOutTime", ref mFadeOutTime, f => f != 10.0f);
     s.StreamAttributeEnumOpt("orientation", ref mOrientation, e => e != OrientationType.Random);
     s.StreamCursor(ref mTextureName);
 }
Exemplo n.º 18
0
        protected virtual void SerializeImpl <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != 0, true);
            s.StreamAttributeOpt("fireteamCount", ref FireteamCount, v => v != 1);

            using (var bm = s.EnterCursorBookmarkOpt("Overrides", this, obj => !obj.OverridesAreDefault)) if (bm.IsNotNull)
                {
                    SerializeOverrides(s);
                }
        }
Exemplo n.º 19
0
        // #NOTE_BLAM: up to concrete implementations to serialize References
        public override void Serialize <TDoc, TCursor>(MegaloScriptModel model, IO.TagElementStream <TDoc, TCursor, string> s)
        {
            SerializeIdOpt(model, s);
            s.StreamAttributeEnumOpt("trigType", ref mTriggerType, e => e != MegaloScriptTriggerType.Normal);
            s.StreamAttributeEnumOpt("execMode", ref mExecutionMode, e => e != MegaloScriptTriggerExecutionMode.General);
            SerializeNameOpt(s);

            if (ExecutionMode == MegaloScriptTriggerExecutionMode.OnObjectFilter)
            {
                s.StreamAttributeIdAsString("objectFilter", ref mObjectFilterIndex, model,
                                            (_model, name) => model.FromIndexName(Proto.MegaloScriptValueIndexTarget.ObjectFilter, name),
                                            (_model, id) => model.ToIndexName(Proto.MegaloScriptValueIndexTarget.ObjectFilter, id));
            }
            else
            {
                ObjectFilterIndex = -1;
            }

            if (ExecutionMode == MegaloScriptTriggerExecutionMode.OnCandySpawnerFilter)
            {
                using (s.EnterCursorBookmark("GameObject"))
                {
                    s.StreamAttributeEnum("type", ref mGameObjectType);

                    s.StreamAttributeIdAsString("filter", ref mGameObjectFilterIndex, model,
                                                (_model, name) => model.FromIndexName(Proto.MegaloScriptValueIndexTarget.GameObjectFilter, name),
                                                (_model, id) => model.ToIndexName(Proto.MegaloScriptValueIndexTarget.GameObjectFilter, id));
                }
            }
            else
            {
                GameObjectFilterIndex = -1;
            }

            if (TriggerType == MegaloScriptTriggerType.Normal)
            {
                s.StreamAttributeOpt("commentOut", ref mCommentOut, Predicates.IsTrue);
            }
        }
Exemplo n.º 20
0
        public virtual void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var model = (MegaloScriptModel)s.Owner;

            model.MegaloVariant.SerializeStringTableIndexOpt(s, "nameIndex", ref mNameStringIndex);
            s.StreamAttributeEnum("format", ref mFormat);
            s.StreamAttributeEnumOpt("sortOrder", ref mSortOrder, e => e != MegaloScriptGameStatisticSortOrder.Ascending);
            s.StreamAttributeEnumOpt("grouping", ref mGrouping, e => e != 0);

            SerializeCodeName(s);

            if (SupportsUnk5)
            {
                s.StreamAttributeOpt("unk5", ref mUnk5, Predicates.IsTrue);
            }
            if (SupportsIsScoreToWin)
            {
                s.StreamAttributeOpt("isScoreToWin", ref mIsScoreToWin, Predicates.IsTrue);
            }
        }
Exemplo n.º 21
0
        protected override void SerializeValue <TDoc, TCursor>(MegaloScriptModel model, IO.TagElementStream <TDoc, TCursor, string> s)
        {
            if (!s.StreamAttributeEnumOpt("iconType", ref mIconType, e => e != MegaloScriptNavpointIconType.None))
            {
                mIconType = MegaloScriptNavpointIconType.None;
            }

            if (mIconType == MegaloScriptNavpointIconType.Territory)
            {
                using (s.EnterCursorBookmark("TerritoryDesignator"))
                    mNumeric.SerializeCustom(model, s);
            }
        }
Exemplo n.º 22
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 (s.EnterCursorBookmark("Round"))
     {
         s.StreamAttribute("timeLimit", ref RoundTimeLimit);
         s.StreamAttribute("limit", ref RoundLimit);
         s.StreamAttribute("earlyVictoryWinCount", ref EarlyVictoryWinCount);
         s.StreamAttribute("suddenDeathTimeLimit", ref SuddenDeathTimeLimit);
     }
 }
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
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            s.StreamCursor(ref mSound);

            if (s.StreamAttributeEnumOpt("Type", ref mType, e => e != BObjectSoundType.None))
            {
                xs.StreamDBID(s, "Squad", ref mSquadID, DatabaseObjectKind.Squad, xmlSource: XML.XmlUtil.kSourceAttr);
                s.StreamAttributeOpt("Action", ref mAction, Predicates.IsNotNullOrEmpty);
            }
        }
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var xs = s.GetSerializerInterface();

            s.StreamAttributeEnumOpt("Type", ref mType, e => e != ChildObjectType.Object);

            xs.StreamDBID(s, XML.XmlUtil.kNoXmlName, ref mID, TypeObjectKind, isOptional: false, xmlSource: XML.XmlUtil.kSourceCursor);
            s.StreamAttributeOpt("AttachBone", ref mAttachBone, Predicates.IsNotNullOrEmpty);
            s.StreamBVector("Offset", ref mOffset, xmlSource: XML.XmlUtil.kSourceAttr);
            s.StreamAttributeOpt("Rotation", ref mRotation, Predicates.IsNotZero);
            xs.StreamDBID(s, "UserCiv", ref mUserCivID, DatabaseObjectKind.Civ, xmlSource: XML.XmlUtil.kSourceAttr);
        }
Exemplo n.º 26
0
        public override void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
        {
            s.StreamAttributeEnumOpt("flags", ref Flags, flags => flags != 0, true);

            SerializeContentHeader(s);
            SerializeMiscOptions(s);
            SerializRespawnOptions(s);

            SerializeSocialOptions(s);
            SerializMapOverrides(s);

            SerializeTeams(s);

            SerializeLoadoutOptions(s);
        }
Exemplo n.º 27
0
 public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
     where TDoc : class
     where TCursor : class
 {
     s.StreamAttribute("_locID", ref mID);
     s.StreamAttributeEnumOpt("category", ref mCategory, e => e != LocStringCategory.None);
     s.StreamAttributeOpt("scenario", ref mScenario, Predicates.IsNotNullOrEmpty);
     s.StreamAttributeOpt("subtitle", ref mIsSubtitle, Predicates.IsTrue);
     s.StreamAttributeOpt("Update", ref mIsUpdate, Predicates.IsTrue);
     s.StreamAttributeOpt("_mouseKeyboard", ref mMouseKeyboardID, Predicates.IsNotNone);
     s.StreamAttributeOpt("originally", ref mOriginalID, Predicates.IsNotNullOrEmpty);
     if (s.IsReading || mText.IsNotNullOrEmpty())
     {
         s.StreamCursor(ref mText);
     }
 }
Exemplo n.º 28
0
        protected virtual void Serialize <TDoc, TCursor>(MegaloScriptModel model, IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            if (HasNetworkState)
            {
                s.StreamAttributeEnumOpt("networkState", ref mNetworkState, e => e != MegaloScriptVariableNetworkState.Local);
            }

            SerializeCodeName(s);

            if (SupportsUnknown)
            {
                s.StreamAttributeOpt("unknown", ref mUnknown, Predicates.IsTrue);
            }
        }
Exemplo n.º 29
0
        public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s)
            where TDoc : class
            where TCursor : class
        {
            var  db      = s.Owner as MegaloScriptDatabase;
            bool reading = s.IsReading;

            //string type_name = reading ? null : db.ValueTypeNames[Type.NameIndex];

            s.StreamAttributeOpt(kSigIdAttributeName, ref SigId, Predicates.IsNotZero);
            db.SerializeValueTypeReference(s, kTypeAttributeName, ref Type);
            if (!s.StreamAttributeOpt(kNameAttirbuteName, ref Name, Predicates.IsNotNullOrEmpty) &&
                reading)
            {
                Name = string.Format("Param{0}", SigId.ToString());
            }
            s.StreamAttributeEnumOpt(kKindAttributeName, ref Kind);
            s.StreamAttributeOpt("optional", ref Optional, Predicates.IsTrue);
        }
Exemplo n.º 30
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.StreamAttributeOpt("PrecisionWeaponReticuleBloom", ref PrecisionWeaponBloom, f => f != 1.0f);

            if (s.StreamElementOpt("ArmorLockDamageToEnergyTransfer", ref ArmorLockDamageToEnergyTransfer, f => f != 0.0f))
            {
                s.WriteComment("Damage received while in Armor Lock is transferred to remaining Armor Ability energy");
            }
            s.StreamElementOpt("ArmorLockDamageToEnergyCap", ref ArmorLockDamageToEnergyCap, f => f != 0.0f);

            s.StreamElementOpt("ActiveCamoOverrideEnergyCurveMin", ref ActiveCamoOverrideEnergyCurveMin, f => f != 0.02f);
            s.StreamElementOpt("ActiveCamoOverrideEnergyCurveMax", ref ActiveCamoOverrideEnergyCurveMax, f => f != 0.07f);

            s.StreamAttributeOpt("MagnumDamageMultiplier", ref MagnumDamageMultiplier, f => f != 1.0f);
            s.StreamAttributeOpt("MagnumFireRecoveryTimeMultiplier", ref MagnumFireRecoveryTimeMultiplier, f => f != 1.0f);
        }