diff --git a/Source/Data/DataLocationList.cs b/Source/Data/DataLocationList.cs index 2e99571f..1e9691d2 100644 --- a/Source/Data/DataLocationList.cs +++ b/Source/Data/DataLocationList.cs @@ -57,8 +57,8 @@ namespace CodeImp.DoomBuilder.Data // Copy information from Configuration to ResourceLocation if(rlinfo.Contains("type") && (rlinfo["type"] is int)) res.type = (int)rlinfo["type"]; if(rlinfo.Contains("location") && (rlinfo["location"] is string)) res.location = (string)rlinfo["location"]; - if(rlinfo.Contains("textures") && (rlinfo["textures"] is int)) res.option1 = General.Int2Bool((int)rlinfo["textures"]); - if(rlinfo.Contains("flats") && (rlinfo["flats"] is int)) res.option2 = General.Int2Bool((int)rlinfo["flats"]); + if(rlinfo.Contains("option1") && (rlinfo["option1"] is int)) res.option1 = General.Int2Bool((int)rlinfo["option1"]); + if(rlinfo.Contains("option2") && (rlinfo["option2"] is int)) res.option2 = General.Int2Bool((int)rlinfo["option2"]); // Add resource Add(res); @@ -92,8 +92,8 @@ namespace CodeImp.DoomBuilder.Data rlinfo = new ListDictionary(); rlinfo.Add("type", this[i].type); rlinfo.Add("location", this[i].location); - rlinfo.Add("textures", General.Bool2Int(this[i].option1)); - rlinfo.Add("flats", General.Bool2Int(this[i].option2)); + rlinfo.Add("option1", General.Bool2Int(this[i].option1)); + rlinfo.Add("option2", General.Bool2Int(this[i].option2)); // Add structure resinfo.Add("resource" + i.ToString(CultureInfo.InvariantCulture), rlinfo); diff --git a/Source/General/General.cs b/Source/General/General.cs index bbb21913..a6a2cdf7 100644 --- a/Source/General/General.cs +++ b/Source/General/General.cs @@ -89,6 +89,7 @@ namespace CodeImp.DoomBuilder // SendMessage API internal const int WM_USER = 0x400; internal const int CB_SETITEMHEIGHT = 0x153; + internal const int CB_SHOWDROPDOWN = 0x14F; internal const int EM_GETSCROLLPOS = WM_USER + 221; internal const int EM_SETSCROLLPOS = WM_USER + 222; @@ -1313,7 +1314,7 @@ namespace CodeImp.DoomBuilder // Convert bool to integer internal static int Bool2Int(bool v) { - if(v) return 1; else return 0; + return v ? 1 : 0; } // Convert integer to bool @@ -1410,7 +1411,7 @@ namespace CodeImp.DoomBuilder internal static string MakeTempDirname() { string dirname; - string chars = "abcdefghijklmnopqrstuvwxyz1234567890"; + const string chars = "abcdefghijklmnopqrstuvwxyz1234567890"; Random rnd = new Random(); int i; @@ -1539,6 +1540,7 @@ namespace CodeImp.DoomBuilder #endregion + /* [BeginAction("testaction")] internal static void TestAction() { @@ -1546,6 +1548,7 @@ namespace CodeImp.DoomBuilder t.ShowDialog(mainwindow); t.Dispose(); } + */ } } diff --git a/Source/General/MapManager.cs b/Source/General/MapManager.cs index f77ae105..5d3e363f 100644 --- a/Source/General/MapManager.cs +++ b/Source/General/MapManager.cs @@ -352,7 +352,7 @@ namespace CodeImp.DoomBuilder // Load data manager General.WriteLogLine("Loading data resources..."); data = new DataManager(); - maplocation = new DataLocation(DataLocation.RESOURCE_WAD, filepathname, false, false); + maplocation = new DataLocation(DataLocation.RESOURCE_WAD, filepathname, options.StrictPatches, false); data.Load(configinfo.Resources, options.Resources, maplocation); // Update structures diff --git a/Source/Map/MapOptions.cs b/Source/Map/MapOptions.cs index 6fefac56..4bd5f77d 100644 --- a/Source/Map/MapOptions.cs +++ b/Source/Map/MapOptions.cs @@ -48,6 +48,9 @@ namespace CodeImp.DoomBuilder.Map private string currentname; private string previousname; // When zero length string, map has not renamed + // Strict pathes loading? + private bool strictpatches; + // Additional resources private DataLocationList resources; @@ -60,6 +63,7 @@ namespace CodeImp.DoomBuilder.Map public string ConfigFile { get { return configfile; } set { configfile = value; } } public DataLocationList Resources { get { return resources; } } + public bool StrictPatches { get { return strictpatches; } set { strictpatches = value; } } public List<string> ScriptFiles { get { return scriptfiles; } set { scriptfiles = value; } } public string PreviousName { get { return previousname; } set { previousname = value; } } public string CurrentName @@ -88,6 +92,7 @@ namespace CodeImp.DoomBuilder.Map this.previousname = ""; this.currentname = ""; this.configfile = ""; + this.strictpatches = false; this.resources = new DataLocationList(); this.mapconfig = new Configuration(true); this.scriptfiles = new List<string>(); @@ -102,6 +107,7 @@ namespace CodeImp.DoomBuilder.Map // Initialize this.previousname = ""; this.currentname = mapname; + this.strictpatches = General.Int2Bool(cfg.ReadSetting("strictpatches", 0)); this.configfile = cfg.ReadSetting("gameconfig", ""); this.resources = new DataLocationList(); this.mapconfig = new Configuration(true); @@ -171,6 +177,7 @@ namespace CodeImp.DoomBuilder.Map // Write configuration type information wadcfg.WriteSetting("type", "Doom Builder Map Settings Configuration"); wadcfg.WriteSetting("gameconfig", configfile); + wadcfg.WriteSetting("strictpatches", General.Bool2Int(strictpatches)); // Update the settings file with this map configuration wadcfg.WriteSetting("maps." + currentname, mapconfig.Root); diff --git a/Source/Resources/Actions.cfg b/Source/Resources/Actions.cfg index 48508a71..76866d1b 100644 --- a/Source/Resources/Actions.cfg +++ b/Source/Resources/Actions.cfg @@ -34,6 +34,7 @@ categories // allowkeys and allowmouse are true by default, the others are false by default. // +/* testaction { title = "Developer Test"; @@ -43,6 +44,7 @@ testaction allowmouse = true; allowscroll = true; } +*/ newmap { diff --git a/Source/Windows/MapOptionsForm.Designer.cs b/Source/Windows/MapOptionsForm.Designer.cs index 85ac5cd9..70adb374 100644 --- a/Source/Windows/MapOptionsForm.Designer.cs +++ b/Source/Windows/MapOptionsForm.Designer.cs @@ -39,6 +39,7 @@ namespace CodeImp.DoomBuilder.Windows this.cancel = new System.Windows.Forms.Button(); this.panelres = new System.Windows.Forms.GroupBox(); this.datalocations = new CodeImp.DoomBuilder.Controls.ResourceListEditor(); + this.strictpatches = new System.Windows.Forms.CheckBox(); label3 = new System.Windows.Forms.Label(); label2 = new System.Windows.Forms.Label(); label1 = new System.Windows.Forms.Label(); @@ -86,7 +87,7 @@ namespace CodeImp.DoomBuilder.Windows panelsettings.Controls.Add(label1); panelsettings.Location = new System.Drawing.Point(12, 12); panelsettings.Name = "panelsettings"; - panelsettings.Size = new System.Drawing.Size(367, 118); + panelsettings.Size = new System.Drawing.Size(397, 118); panelsettings.TabIndex = 10; panelsettings.TabStop = false; panelsettings.Text = " Settings "; @@ -102,8 +103,10 @@ namespace CodeImp.DoomBuilder.Windows // // config // + this.config.DropDownHeight = 206; this.config.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.config.FormattingEnabled = true; + this.config.IntegralHeight = false; this.config.Location = new System.Drawing.Point(129, 31); this.config.Name = "config"; this.config.Size = new System.Drawing.Size(213, 22); @@ -112,9 +115,9 @@ namespace CodeImp.DoomBuilder.Windows // // label4 // - label4.Location = new System.Drawing.Point(15, 161); + label4.Location = new System.Drawing.Point(15, 190); label4.Name = "label4"; - label4.Size = new System.Drawing.Size(336, 34); + label4.Size = new System.Drawing.Size(349, 34); label4.TabIndex = 17; label4.Text = "Drag items to change order (lower items override higher items). Grayed items are " + "loaded according to the game configuration."; @@ -122,7 +125,7 @@ namespace CodeImp.DoomBuilder.Windows // apply // this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.apply.Location = new System.Drawing.Point(149, 355); + this.apply.Location = new System.Drawing.Point(179, 392); this.apply.Name = "apply"; this.apply.Size = new System.Drawing.Size(112, 25); this.apply.TabIndex = 12; @@ -134,7 +137,7 @@ namespace CodeImp.DoomBuilder.Windows // this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancel.Location = new System.Drawing.Point(267, 355); + this.cancel.Location = new System.Drawing.Point(297, 392); this.cancel.Name = "cancel"; this.cancel.Size = new System.Drawing.Size(112, 25); this.cancel.TabIndex = 13; @@ -146,30 +149,41 @@ namespace CodeImp.DoomBuilder.Windows // this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.panelres.Controls.Add(this.strictpatches); this.panelres.Controls.Add(this.datalocations); this.panelres.Controls.Add(label4); this.panelres.Location = new System.Drawing.Point(12, 141); this.panelres.Name = "panelres"; - this.panelres.Size = new System.Drawing.Size(367, 198); + this.panelres.Size = new System.Drawing.Size(397, 230); this.panelres.TabIndex = 14; this.panelres.TabStop = false; - this.panelres.Text = " Custom Resources "; + this.panelres.Text = " Resources "; // // datalocations // this.datalocations.DialogOffset = new System.Drawing.Point(40, 20); this.datalocations.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.datalocations.Location = new System.Drawing.Point(15, 28); + this.datalocations.Location = new System.Drawing.Point(15, 57); this.datalocations.Name = "datalocations"; - this.datalocations.Size = new System.Drawing.Size(336, 130); + this.datalocations.Size = new System.Drawing.Size(368, 130); this.datalocations.TabIndex = 18; // + // strictpatches + // + this.strictpatches.AutoSize = true; + this.strictpatches.Location = new System.Drawing.Point(15, 27); + this.strictpatches.Name = "strictpatches"; + this.strictpatches.Size = new System.Drawing.Size(352, 18); + this.strictpatches.TabIndex = 20; + this.strictpatches.Text = "Strictly load patches between P_START and P_END only for this file"; + this.strictpatches.UseVisualStyleBackColor = true; + // // MapOptionsForm // this.AcceptButton = this.apply; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.CancelButton = this.cancel; - this.ClientSize = new System.Drawing.Size(391, 392); + this.ClientSize = new System.Drawing.Size(421, 429); this.Controls.Add(this.panelres); this.Controls.Add(this.cancel); this.Controls.Add(this.apply); @@ -187,6 +201,7 @@ namespace CodeImp.DoomBuilder.Windows panelsettings.ResumeLayout(false); panelsettings.PerformLayout(); this.panelres.ResumeLayout(false); + this.panelres.PerformLayout(); this.ResumeLayout(false); } @@ -199,6 +214,7 @@ namespace CodeImp.DoomBuilder.Windows private System.Windows.Forms.Button cancel; private System.Windows.Forms.GroupBox panelres; private CodeImp.DoomBuilder.Controls.ResourceListEditor datalocations; + private System.Windows.Forms.CheckBox strictpatches; } diff --git a/Source/Windows/MapOptionsForm.cs b/Source/Windows/MapOptionsForm.cs index 48f9aa2d..7c4174bb 100644 --- a/Source/Windows/MapOptionsForm.cs +++ b/Source/Windows/MapOptionsForm.cs @@ -71,6 +71,9 @@ namespace CodeImp.DoomBuilder.Windows // Set the level name levelname.Text = options.CurrentName; + // Set strict patches loading + strictpatches.Checked = options.StrictPatches; + // Fill the resources list datalocations.EditResourceLocationList(options.Resources); } @@ -162,6 +165,7 @@ namespace CodeImp.DoomBuilder.Windows options.ClearResources(); options.ConfigFile = General.Configs[config.SelectedIndex].Filename; options.CurrentName = levelname.Text.Trim().ToUpper(); + options.StrictPatches = strictpatches.Checked; options.CopyResources(datalocations.GetResources()); // Hide window diff --git a/Source/Windows/MapOptionsForm.resx b/Source/Windows/MapOptionsForm.resx index 6e9b13af..eb8d14ac 100644 --- a/Source/Windows/MapOptionsForm.resx +++ b/Source/Windows/MapOptionsForm.resx @@ -135,12 +135,12 @@ <metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>False</value> </metadata> - <metadata name="panelsettings.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </metadata> <metadata name="panelsettings.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="panelsettings.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </metadata> <metadata name="levelname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> @@ -162,9 +162,18 @@ <metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> diff --git a/Source/Windows/OpenMapOptionsForm.Designer.cs b/Source/Windows/OpenMapOptionsForm.Designer.cs index e0565a8f..afe11e1e 100644 --- a/Source/Windows/OpenMapOptionsForm.Designer.cs +++ b/Source/Windows/OpenMapOptionsForm.Designer.cs @@ -38,6 +38,7 @@ namespace CodeImp.DoomBuilder.Windows this.cancel = new System.Windows.Forms.Button(); this.config = new System.Windows.Forms.ComboBox(); this.mapslist = new System.Windows.Forms.ListView(); + this.strictpatches = new System.Windows.Forms.CheckBox(); columnHeader1 = new System.Windows.Forms.ColumnHeader(); label1 = new System.Windows.Forms.Label(); label2 = new System.Windows.Forms.Label(); @@ -62,16 +63,16 @@ namespace CodeImp.DoomBuilder.Windows // label2.Location = new System.Drawing.Point(12, 57); label2.Name = "label2"; - label2.Size = new System.Drawing.Size(365, 30); + label2.Size = new System.Drawing.Size(396, 30); label2.TabIndex = 16; label2.Text = "With the above selected configuration, the maps shown below were found in the cho" + "sen WAD file. Please select the map to load for editing."; // // label3 // - label3.Location = new System.Drawing.Point(14, 161); + label3.Location = new System.Drawing.Point(14, 193); label3.Name = "label3"; - label3.Size = new System.Drawing.Size(336, 34); + label3.Size = new System.Drawing.Size(347, 34); label3.TabIndex = 17; label3.Text = "Drag items to change order (lower items override higher items). Grayed items are " + "loaded according to the game configuration."; @@ -80,27 +81,29 @@ namespace CodeImp.DoomBuilder.Windows // this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.panelres.Controls.Add(this.strictpatches); this.panelres.Controls.Add(this.datalocations); this.panelres.Controls.Add(label3); - this.panelres.Location = new System.Drawing.Point(12, 214); + this.panelres.Location = new System.Drawing.Point(12, 215); this.panelres.Name = "panelres"; - this.panelres.Size = new System.Drawing.Size(365, 198); + this.panelres.Size = new System.Drawing.Size(396, 231); this.panelres.TabIndex = 11; this.panelres.TabStop = false; - this.panelres.Text = " Custom Resources "; + this.panelres.Text = " Resources "; // // datalocations // this.datalocations.DialogOffset = new System.Drawing.Point(40, 20); - this.datalocations.Location = new System.Drawing.Point(14, 26); + this.datalocations.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.datalocations.Location = new System.Drawing.Point(14, 58); this.datalocations.Name = "datalocations"; - this.datalocations.Size = new System.Drawing.Size(336, 127); + this.datalocations.Size = new System.Drawing.Size(368, 127); this.datalocations.TabIndex = 18; // // apply // this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.apply.Location = new System.Drawing.Point(147, 428); + this.apply.Location = new System.Drawing.Point(178, 462); this.apply.Name = "apply"; this.apply.Size = new System.Drawing.Size(112, 25); this.apply.TabIndex = 12; @@ -112,7 +115,7 @@ namespace CodeImp.DoomBuilder.Windows // this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancel.Location = new System.Drawing.Point(265, 428); + this.cancel.Location = new System.Drawing.Point(296, 462); this.cancel.Name = "cancel"; this.cancel.Size = new System.Drawing.Size(112, 25); this.cancel.TabIndex = 13; @@ -122,11 +125,13 @@ namespace CodeImp.DoomBuilder.Windows // // config // + this.config.DropDownHeight = 206; this.config.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.config.FormattingEnabled = true; + this.config.IntegralHeight = false; this.config.Location = new System.Drawing.Point(141, 21); this.config.Name = "config"; - this.config.Size = new System.Drawing.Size(213, 22); + this.config.Size = new System.Drawing.Size(242, 22); this.config.TabIndex = 15; this.config.SelectedIndexChanged += new System.EventHandler(this.config_SelectedIndexChanged); // @@ -144,7 +149,7 @@ namespace CodeImp.DoomBuilder.Windows this.mapslist.MultiSelect = false; this.mapslist.Name = "mapslist"; this.mapslist.ShowGroups = false; - this.mapslist.Size = new System.Drawing.Size(365, 110); + this.mapslist.Size = new System.Drawing.Size(396, 110); this.mapslist.Sorting = System.Windows.Forms.SortOrder.Ascending; this.mapslist.TabIndex = 18; this.mapslist.UseCompatibleStateImageBehavior = false; @@ -152,12 +157,22 @@ namespace CodeImp.DoomBuilder.Windows this.mapslist.DoubleClick += new System.EventHandler(this.mapslist_DoubleClick); this.mapslist.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.mapslist_ItemSelectionChanged); // + // strictpatches + // + this.strictpatches.AutoSize = true; + this.strictpatches.Location = new System.Drawing.Point(14, 27); + this.strictpatches.Name = "strictpatches"; + this.strictpatches.Size = new System.Drawing.Size(352, 18); + this.strictpatches.TabIndex = 19; + this.strictpatches.Text = "Strictly load patches between P_START and P_END only for this file"; + this.strictpatches.UseVisualStyleBackColor = true; + // // OpenMapOptionsForm // this.AcceptButton = this.apply; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.CancelButton = this.cancel; - this.ClientSize = new System.Drawing.Size(389, 465); + this.ClientSize = new System.Drawing.Size(420, 499); this.Controls.Add(this.mapslist); this.Controls.Add(label2); this.Controls.Add(this.config); @@ -177,6 +192,7 @@ namespace CodeImp.DoomBuilder.Windows this.Text = "Open Map Options"; this.Shown += new System.EventHandler(this.OpenMapOptionsForm_Shown); this.panelres.ResumeLayout(false); + this.panelres.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -190,6 +206,7 @@ namespace CodeImp.DoomBuilder.Windows private System.Windows.Forms.GroupBox panelres; private System.Windows.Forms.ListView mapslist; private CodeImp.DoomBuilder.Controls.ResourceListEditor datalocations; + private System.Windows.Forms.CheckBox strictpatches; } diff --git a/Source/Windows/OpenMapOptionsForm.cs b/Source/Windows/OpenMapOptionsForm.cs index 03996ca7..3771cf19 100644 --- a/Source/Windows/OpenMapOptionsForm.cs +++ b/Source/Windows/OpenMapOptionsForm.cs @@ -101,6 +101,9 @@ namespace CodeImp.DoomBuilder.Windows else mapsettings = new Configuration(true); + // Check strict patches box + strictpatches.Checked = mapsettings.ReadSetting("strictpatches", false); + // Check what game configuration is preferred gameconfig = mapsettings.ReadSetting("gameconfig", ""); @@ -333,6 +336,7 @@ namespace CodeImp.DoomBuilder.Windows options.ClearResources(); options.ConfigFile = configinfo.Filename; options.CurrentName = mapslist.SelectedItems[0].Text; + options.StrictPatches = strictpatches.Checked; options.CopyResources(locations); // Hide window diff --git a/Source/Windows/OpenMapOptionsForm.resx b/Source/Windows/OpenMapOptionsForm.resx index de19c807..ab21d2a8 100644 --- a/Source/Windows/OpenMapOptionsForm.resx +++ b/Source/Windows/OpenMapOptionsForm.resx @@ -141,6 +141,12 @@ <metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> @@ -156,6 +162,9 @@ <metadata name="mapslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata>