diff --git a/Resources/Icons/FileTextureSet.ico b/Resources/Icons/FileTextureSet.ico
new file mode 100644
index 00000000..0ecf7cee
Binary files /dev/null and b/Resources/Icons/FileTextureSet.ico differ
diff --git a/Resources/Icons/FolderTextureSet.ico b/Resources/Icons/FolderTextureSet.ico
new file mode 100644
index 00000000..1e844ae8
Binary files /dev/null and b/Resources/Icons/FolderTextureSet.ico differ
diff --git a/Resources/Icons/PK3TextureSet.ico b/Resources/Icons/PK3TextureSet.ico
new file mode 100644
index 00000000..7d3955fd
Binary files /dev/null and b/Resources/Icons/PK3TextureSet.ico differ
diff --git a/Source/Builder.csproj b/Source/Builder.csproj
index 9c3d3f4e..8dd1477a 100644
--- a/Source/Builder.csproj
+++ b/Source/Builder.csproj
@@ -67,7 +67,7 @@
-
+
diff --git a/Source/Config/OthersTextureSet.cs b/Source/Config/ResourceTextureSet.cs
similarity index 82%
rename from Source/Config/OthersTextureSet.cs
rename to Source/Config/ResourceTextureSet.cs
index 13e963f4..cbd80d18 100644
--- a/Source/Config/OthersTextureSet.cs
+++ b/Source/Config/ResourceTextureSet.cs
@@ -33,12 +33,10 @@ using System.Collections.Specialized;
namespace CodeImp.DoomBuilder.Config
{
- internal sealed class OthersTextureSet : TextureSet, IFilledTextureSet
+ internal sealed class ResourceTextureSet : TextureSet, IFilledTextureSet
{
#region ================== Constants
- public const string NAME = "Others";
-
#endregion
#region ================== Variables
@@ -46,6 +44,7 @@ namespace CodeImp.DoomBuilder.Config
// Matching textures and flats
private List textures;
private List flats;
+ private int locationtype;
#endregion
@@ -53,15 +52,17 @@ namespace CodeImp.DoomBuilder.Config
public ICollection Textures { get { return textures; } }
public ICollection Flats { get { return flats; } }
+ public int LocationType { get { return locationtype; } }
#endregion
#region ================== Constructor / Destructor
// New texture set constructor
- public OthersTextureSet()
+ public ResourceTextureSet(string name, int locationtype)
{
- this.name = NAME;
+ this.name = name;
+ this.locationtype = locationtype;
this.textures = new List();
this.flats = new List();
}
diff --git a/Source/Data/DataManager.cs b/Source/Data/DataManager.cs
index 7b9c8bc1..d2013494 100644
--- a/Source/Data/DataManager.cs
+++ b/Source/Data/DataManager.cs
@@ -61,7 +61,7 @@ namespace CodeImp.DoomBuilder.Data
private List flatnames;
private Dictionary sprites;
private List texturesets;
- private OthersTextureSet othertextures;
+ private List resourcetextures;
private AllTextureSet alltextures;
// Background loading
@@ -112,7 +112,7 @@ namespace CodeImp.DoomBuilder.Data
public List ThingCategories { get { return thingcategories; } }
public ICollection ThingTypes { get { return thingtypes.Values; } }
internal ICollection TextureSets { get { return texturesets; } }
- internal OthersTextureSet OthersTextureSet { get { return othertextures; } }
+ internal ICollection ResourceTextureSets { get { return resourcetextures; } }
internal AllTextureSet AllTextureSet { get { return alltextures; } }
public bool IsLoading
@@ -229,8 +229,8 @@ namespace CodeImp.DoomBuilder.Data
texturesets.Sort();
// Special textures sets
- othertextures = new OthersTextureSet();
alltextures = new AllTextureSet();
+ resourcetextures = new List();
// Go for all locations
foreach(DataLocation dl in locations)
@@ -275,7 +275,11 @@ namespace CodeImp.DoomBuilder.Data
*/
// Add container
- if(c != null) containers.Add(c);
+ if(c != null)
+ {
+ containers.Add(c);
+ resourcetextures.Add(c.TextureSet);
+ }
}
// Load stuff
@@ -303,9 +307,6 @@ namespace CodeImp.DoomBuilder.Data
bool matchfound = false;
foreach(MatchingTextureSet ms in texturesets)
matchfound |= ms.AddTexture(img.Value);
-
- // If not matched in any set, add it to the others
- if(!matchfound) othertextures.AddTexture(img.Value);
// Add to all
alltextures.AddTexture(img.Value);
@@ -319,9 +320,6 @@ namespace CodeImp.DoomBuilder.Data
foreach(MatchingTextureSet ms in texturesets)
matchfound |= ms.AddFlat(img.Value);
- // If not matched in any set, add it to the others
- if(!matchfound) othertextures.AddFlat(img.Value);
-
// Add to all
alltextures.AddFlat(img.Value);
}
diff --git a/Source/Data/DataReader.cs b/Source/Data/DataReader.cs
index 5bcad366..e32837f9 100644
--- a/Source/Data/DataReader.cs
+++ b/Source/Data/DataReader.cs
@@ -24,6 +24,7 @@ using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
+using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.IO;
using CodeImp.DoomBuilder.Rendering;
@@ -38,6 +39,7 @@ namespace CodeImp.DoomBuilder.Data
protected DataLocation location;
protected bool issuspended = false;
protected bool isdisposed = false;
+ protected ResourceTextureSet textureset;
#endregion
@@ -46,6 +48,7 @@ namespace CodeImp.DoomBuilder.Data
public DataLocation Location { get { return location; } }
public bool IsDisposed { get { return isdisposed; } }
public bool IsSuspended { get { return issuspended; } }
+ public ResourceTextureSet TextureSet { get { return textureset; } }
#endregion
@@ -56,6 +59,7 @@ namespace CodeImp.DoomBuilder.Data
{
// Keep information
location = dl;
+ textureset = new ResourceTextureSet(GetTitle(), dl.type);
}
// Disposer
@@ -65,6 +69,7 @@ namespace CodeImp.DoomBuilder.Data
if(!isdisposed)
{
// Done
+ textureset = null;
isdisposed = true;
}
}
@@ -73,6 +78,9 @@ namespace CodeImp.DoomBuilder.Data
#region ================== Management
+ // This returns a short name
+ public abstract string GetTitle();
+
// This suspends use of this resource
public virtual void Suspend()
{
diff --git a/Source/Data/DirectoryReader.cs b/Source/Data/DirectoryReader.cs
index 78581ebd..b26e982b 100644
--- a/Source/Data/DirectoryReader.cs
+++ b/Source/Data/DirectoryReader.cs
@@ -207,7 +207,13 @@ namespace CodeImp.DoomBuilder.Data
#endregion
#region ================== Methods
-
+
+ // Return a short name for this data location
+ public override string GetTitle()
+ {
+ return Path.GetFileName(location.location);
+ }
+
// This creates an image
protected override ImageData CreateImage(string name, string filename, bool flat)
{
diff --git a/Source/Data/PK3Reader.cs b/Source/Data/PK3Reader.cs
index c218082e..6b35a7c4 100644
--- a/Source/Data/PK3Reader.cs
+++ b/Source/Data/PK3Reader.cs
@@ -212,6 +212,12 @@ namespace CodeImp.DoomBuilder.Data
#region ================== Methods
+ // Return a short name for this data location
+ public override string GetTitle()
+ {
+ return Path.GetFileName(location.location);
+ }
+
// This creates an image
protected override ImageData CreateImage(string name, string filename, bool flat)
{
diff --git a/Source/Data/PK3StructuredReader.cs b/Source/Data/PK3StructuredReader.cs
index a1f77f8f..1e48fdd6 100644
--- a/Source/Data/PK3StructuredReader.cs
+++ b/Source/Data/PK3StructuredReader.cs
@@ -179,8 +179,6 @@ namespace CodeImp.DoomBuilder.Data
AddImagesToList(images, collection);
}
- // TODO: Add support for hires texture here
-
// Add images from texture directory
collection = LoadDirectoryImages(TEXTURES_DIR, false, true);
AddImagesToList(images, collection);
@@ -220,6 +218,10 @@ namespace CodeImp.DoomBuilder.Data
// Add images from TEXTURES lump file
AddImagesToList(images, imgset);
+ // Add images to the container-specific texture set
+ foreach(ImageData img in images.Values)
+ textureset.AddTexture(img);
+
return new List(images.Values);
}
@@ -285,6 +287,10 @@ namespace CodeImp.DoomBuilder.Data
collection = LoadDirectoryImages(FLATS_DIR, true, true);
AddImagesToList(images, collection);
+ // Add images to the container-specific texture set
+ foreach(ImageData img in images.Values)
+ textureset.AddFlat(img);
+
return new List(images.Values);
}
diff --git a/Source/Data/WADReader.cs b/Source/Data/WADReader.cs
index 883b18ff..c8c7c6ff 100644
--- a/Source/Data/WADReader.cs
+++ b/Source/Data/WADReader.cs
@@ -115,6 +115,12 @@ namespace CodeImp.DoomBuilder.Data
#region ================== Management
+ // Return a short name for this data location
+ public override string GetTitle()
+ {
+ return Path.GetFileName(location.location);
+ }
+
// This suspends use of this resource
public override void Suspend()
{
@@ -223,6 +229,10 @@ namespace CodeImp.DoomBuilder.Data
filedata.Dispose();
}
+ // Add images to the container-specific texture set
+ foreach(ImageData img in images)
+ textureset.AddTexture(img);
+
// Return result
return images;
}
@@ -447,6 +457,10 @@ namespace CodeImp.DoomBuilder.Data
}
}
+ // Add images to the container-specific texture set
+ foreach(ImageData img in images)
+ textureset.AddFlat(img);
+
// Return result
return images;
}
diff --git a/Source/Windows/ConfigForm.Designer.cs b/Source/Windows/ConfigForm.Designer.cs
index 5be23df6..d89ea414 100644
--- a/Source/Windows/ConfigForm.Designer.cs
+++ b/Source/Windows/ConfigForm.Designer.cs
@@ -181,9 +181,11 @@ namespace CodeImp.DoomBuilder.Windows
label4.AutoEllipsis = true;
label4.Location = new System.Drawing.Point(12, 15);
label4.Name = "label4";
- label4.Size = new System.Drawing.Size(445, 75);
+ label4.Size = new System.Drawing.Size(458, 46);
label4.TabIndex = 24;
- label4.Text = resources.GetString("label4.Text");
+ label4.Text = "Texture Sets are a way to group textures and flats into categories, so that you c" +
+ "an easily find a texture for the specific style or purpose you need by selecting" +
+ " one of the categories.";
//
// label10
//
@@ -472,10 +474,10 @@ namespace CodeImp.DoomBuilder.Windows
| System.Windows.Forms.AnchorStyles.Right)));
this.listtextures.FullRowSelect = true;
this.listtextures.HideSelection = false;
- this.listtextures.Location = new System.Drawing.Point(15, 84);
+ this.listtextures.Location = new System.Drawing.Point(15, 64);
this.listtextures.Name = "listtextures";
this.listtextures.ShowGroups = false;
- this.listtextures.Size = new System.Drawing.Size(442, 142);
+ this.listtextures.Size = new System.Drawing.Size(442, 175);
this.listtextures.SmallImageList = this.smallimages;
this.listtextures.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.listtextures.TabIndex = 32;
@@ -493,7 +495,7 @@ namespace CodeImp.DoomBuilder.Windows
// restoretexturesets
//
this.restoretexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.restoretexturesets.Location = new System.Drawing.Point(15, 270);
+ this.restoretexturesets.Location = new System.Drawing.Point(15, 283);
this.restoretexturesets.Name = "restoretexturesets";
this.restoretexturesets.Size = new System.Drawing.Size(140, 24);
this.restoretexturesets.TabIndex = 31;
@@ -505,7 +507,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.edittextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edittextureset.Enabled = false;
- this.edittextureset.Location = new System.Drawing.Point(88, 232);
+ this.edittextureset.Location = new System.Drawing.Point(88, 245);
this.edittextureset.Name = "edittextureset";
this.edittextureset.Size = new System.Drawing.Size(67, 24);
this.edittextureset.TabIndex = 30;
@@ -517,7 +519,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.pastetexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.pastetexturesets.Enabled = false;
- this.pastetexturesets.Location = new System.Drawing.Point(399, 232);
+ this.pastetexturesets.Location = new System.Drawing.Point(399, 245);
this.pastetexturesets.Name = "pastetexturesets";
this.pastetexturesets.Size = new System.Drawing.Size(58, 24);
this.pastetexturesets.TabIndex = 29;
@@ -529,7 +531,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.copytexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.copytexturesets.Enabled = false;
- this.copytexturesets.Location = new System.Drawing.Point(335, 232);
+ this.copytexturesets.Location = new System.Drawing.Point(335, 245);
this.copytexturesets.Name = "copytexturesets";
this.copytexturesets.Size = new System.Drawing.Size(58, 24);
this.copytexturesets.TabIndex = 28;
@@ -541,7 +543,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.removetextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.removetextureset.Enabled = false;
- this.removetextureset.Location = new System.Drawing.Point(161, 232);
+ this.removetextureset.Location = new System.Drawing.Point(161, 245);
this.removetextureset.Name = "removetextureset";
this.removetextureset.Size = new System.Drawing.Size(68, 24);
this.removetextureset.TabIndex = 27;
@@ -552,7 +554,7 @@ namespace CodeImp.DoomBuilder.Windows
// addtextureset
//
this.addtextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.addtextureset.Location = new System.Drawing.Point(15, 232);
+ this.addtextureset.Location = new System.Drawing.Point(15, 245);
this.addtextureset.Name = "addtextureset";
this.addtextureset.Size = new System.Drawing.Size(67, 24);
this.addtextureset.TabIndex = 26;
diff --git a/Source/Windows/ConfigForm.resx b/Source/Windows/ConfigForm.resx
index f240d8a7..fd4bb7e6 100644
--- a/Source/Windows/ConfigForm.resx
+++ b/Source/Windows/ConfigForm.resx
@@ -117,45 +117,135 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ True
+
False
+
+ True
+
False
+
+ True
+
False
The nodebuilder is a compiler which builds geometry structures for your map. You need these structures to be able to play the map in the game. For each purpose you can choose the desired nodebuilder configuration here.
+
+ True
+
False
+
+ True
+
False
+
+ True
+
False
+
+ True
+
False
+
+ True
+
False
+
+ True
+
False
-
- Texture Sets are a way to group textures and flats into categories, so that you can easily find a texture for the specific style or purpose you need by selecting one of the categories. Textures that are not in any category are automatically shown in the "Others" category.
-
+
+ True
+
False
Here you can select the editing modes that you wish to use in this configuration. This is useful in case there are plugins with additional editing modes that can be used as a replacement for the original editing modes.
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
159, 17
@@ -202,7 +292,37 @@
CQAC/wHgCQAL
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
17, 17
+
+ True
+
\ No newline at end of file
diff --git a/Source/Windows/FlatBrowserForm.Designer.cs b/Source/Windows/FlatBrowserForm.Designer.cs
index 5adfc15e..658b539c 100644
--- a/Source/Windows/FlatBrowserForm.Designer.cs
+++ b/Source/Windows/FlatBrowserForm.Designer.cs
@@ -30,30 +30,14 @@ namespace CodeImp.DoomBuilder.Windows
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlatBrowserForm));
- this.browser = new CodeImp.DoomBuilder.Controls.ImageBrowserControl();
this.cancel = new System.Windows.Forms.Button();
this.apply = new System.Windows.Forms.Button();
this.texturesets = new System.Windows.Forms.ListView();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.smallimages = new System.Windows.Forms.ImageList(this.components);
+ this.browser = new CodeImp.DoomBuilder.Controls.ImageBrowserControl();
this.SuspendLayout();
//
- // browser
- //
- this.browser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.browser.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.browser.HideInputBox = false;
- this.browser.LabelText = "Select or enter a flat name:";
- this.browser.Location = new System.Drawing.Point(197, 9);
- this.browser.Name = "browser";
- this.browser.PreventSelection = false;
- this.browser.Size = new System.Drawing.Size(684, 610);
- this.browser.TabIndex = 0;
- this.browser.SelectedItemDoubleClicked += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemDoubleClickDelegate(this.browser_SelectedItemDoubleClicked);
- this.browser.SelectedItemChanged += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemChangedDelegate(this.browser_SelectedItemChanged);
- //
// cancel
//
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@@ -107,8 +91,26 @@ namespace CodeImp.DoomBuilder.Windows
this.smallimages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("smallimages.ImageStream")));
this.smallimages.TransparentColor = System.Drawing.Color.Transparent;
this.smallimages.Images.SetKeyName(0, "KnownTextureSet2.ico");
- this.smallimages.Images.SetKeyName(1, "OthersTextureSet2.ico");
- this.smallimages.Images.SetKeyName(2, "AllTextureSet2.ico");
+ this.smallimages.Images.SetKeyName(1, "AllTextureSet2.ico");
+ this.smallimages.Images.SetKeyName(2, "FileTextureSet.ico");
+ this.smallimages.Images.SetKeyName(3, "FolderTextureSet.ico");
+ this.smallimages.Images.SetKeyName(4, "PK3TextureSet.ico");
+ //
+ // browser
+ //
+ this.browser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.browser.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.browser.HideInputBox = false;
+ this.browser.LabelText = "Select or enter a flat name:";
+ this.browser.Location = new System.Drawing.Point(197, 9);
+ this.browser.Name = "browser";
+ this.browser.PreventSelection = false;
+ this.browser.Size = new System.Drawing.Size(684, 610);
+ this.browser.TabIndex = 0;
+ this.browser.SelectedItemDoubleClicked += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemDoubleClickDelegate(this.browser_SelectedItemDoubleClicked);
+ this.browser.SelectedItemChanged += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemChangedDelegate(this.browser_SelectedItemChanged);
//
// FlatBrowserForm
//
diff --git a/Source/Windows/FlatBrowserForm.cs b/Source/Windows/FlatBrowserForm.cs
index 3290f17c..356b2009 100644
--- a/Source/Windows/FlatBrowserForm.cs
+++ b/Source/Windows/FlatBrowserForm.cs
@@ -70,12 +70,17 @@ namespace CodeImp.DoomBuilder.Windows
}
// Add special textures sets
- item = texturesets.Items.Add(General.Map.Data.OthersTextureSet.Name);
- item.Tag = General.Map.Data.OthersTextureSet;
- item.ImageIndex = 1;
item = texturesets.Items.Add(General.Map.Data.AllTextureSet.Name);
item.Tag = General.Map.Data.AllTextureSet;
- item.ImageIndex = 2;
+ item.ImageIndex = 1;
+
+ // Add container-specific texture sets
+ foreach(ResourceTextureSet ts in General.Map.Data.ResourceTextureSets)
+ {
+ item = texturesets.Items.Add(ts.Name);
+ item.Tag = ts;
+ item.ImageIndex = 2 + ts.LocationType;
+ }
// Select the last one that was selected
string selectname = General.Settings.ReadSetting("browserwindow.textureset", "");
diff --git a/Source/Windows/FlatBrowserForm.resx b/Source/Windows/FlatBrowserForm.resx
index 93a91bc8..bb52cd13 100644
--- a/Source/Windows/FlatBrowserForm.resx
+++ b/Source/Windows/FlatBrowserForm.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- True
-
True
@@ -136,53 +133,66 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAu
- CgAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
- AwABQAMAARYDAAEBAQABCAUAAYABBRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
- AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
- AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
- AwABZgMAAZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIA
- AWYBmQIAAWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIA
- AcwBZgIAAcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFm
- AQABMwEAAZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEA
- ATMBZgIAATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEz
- AZkBZgEAATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEz
- AswBAAEzAcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEz
- AQABZgEAAWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZ
- AQABZgEzAcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFm
- AZkBZgEAAWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHM
- Af8BAAFmAf8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZ
- AQABmQEAAZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZ
- AWYBMwEAAZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEA
- ApkB/wEAAZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/
- ATMBAAGZAcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZ
- AQABzAEAAcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIA
- AcwBZgEzAQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEA
- AcwCmQEAAcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIA
- AcwB/wEzAQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZ
- AQABzAEzAgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEA
- AcwCZgEAAf8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/
- AZkBzAEAAf8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/
- ATMBAAHMAf8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/
- AWYBAAEhAQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEA
- AfAB+wH/AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/4QAB9wKuAW0BbAHq
- AmwEZjQAAfcF/wL0AxkBZhQAAfcCrgFtAWwB6gJsBGYEAAH3Aq4BbQFsAeoCbARmBAABtQL/ApMBmQEH
- AbsBtAIZA2YSAAH3Bf8C9AMZAWYEAAH3BP8BCQHPAvMCGQFmBAABtQL/AZMBmgF6AZ8BngG7AfQB8wFm
- ARkBZhIAAbUC/wKTAZkBBwG7AbQCGQNmAgABtQT/AfQB3QH/AvMBGQNmAgABtQL/AbsBCAKfAX4BeQL0
- AWwBGQNmEAABtQL/AZMBmgF6AZ8BngG7AfQB8wFmARkBZgIAAbUE/wH0Aa0B/wHzAfQB8wFmARkBZgIA
- AbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZhAAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgG1Bf8BCQHP
- A/QBbAEZA2YBBwr/AWwB9AFsARkBZhAAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZgG1A/8BCQEZ
- Af8BtAEZAf8B9AFsAfMBZgEZAWYCBwS1AfcBtQLtApEB9AFsAfMBZhAAAQcK/wFsAfQBbAEZAWYBBwP/
- Ad0CtAHdA/8BbAH0AWwBGQFmAbUB/wEHCv8BbAH0AWwQAAIHBLUB9wG1Au0CkQH0AWwB8wFmAgcEtQH3
- AbUC7QKRAfQBbAHzAWYBtQH/AgcEtQH3AbUC7QKRAfQBbBIAAQcK/wFsAfQBbAIAAQcK/wFsAfQBbAEH
- A/8BBwr/AWwSAAIHBLUB9wG1Au0CkQH0AWwCAAIHBLUB9wG1Au0CkQH0AWwCBwK1AgcEtQH3AbUC7QKR
- FAABBwr/AWwEAAEHCv8BbAIAAQcK/wFsAfQBbBQAAgcEtQH3AbUC7QKRBAACBwS1AfcBtQLtApECAAIH
- BLUB9wG1Au0CkQH0AWw0AAEHCv8BbDQAAgcEtQH3AbUC7QKR0AABQgFNAT4HAAE+AwABKAMAAUADAAEW
- AwABAQEAAQEFAAGwFwAD/wEABv8CAAb/AgAG/wIABP8BAAEPAgAE/wEAAQ8DAAEPAQABDwEAAQMDAAEP
- AQABDwEAAQMDAAEDAQABAwUAAQMBAAEDJAABwAEAAcAFAAHAAQABwAUAAfABAAHwAQABwAMAAfABAAHw
- AQABwAMABP8B8AMABP8B8AMABv8CAAb/AgAG/wIACw==
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB+
+ DAAAAk1TRnQBSQFMAgEBBQEAAQkBAAEEAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAASwDAAEBAQABCAYAAQsYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8ABQAHDgEQAW0BbAIO
+ MwABDgENAWwBkAG7AgkB9wJsAWYCDjsAAQ4B6gFsAQ8BDjQAAW0HAAFDAW0BDjQAAW0B8QFtAQcBvAHw
+ AfECAAERAQcB7DQAA20BBwK8AfACAAJtAQ40AAFtAfADBwK8AgABEQEHAew0AAFtAfAB7wMHAbwCAAJt
+ AQ40AAFtAfAC7wMHAgABEQEHAew0AAFtAfAD7wIHAgACbQEONAABbQG8BO8BBwIAAREBBwHsNAAIbQEA
+ AQ8B+AEPNAAJDgHrAZEBDTQAAQ4BZQGQAbsFCQH3AWwCDj4AAQ7/AMMAAfcCrgFtAWwB6gJsBGY0AAH3
+ Bf8C9AMZAWYJAAgOEwAB9wKuAW0BbAHqAmwEZgQAAbUC/wKTAZkBBwG7AbQCGQNmBgABDgEABe8B9wEO
+ AwACcwHrAW4BbQFKARMBFQFDAREBDwEOAQ8DAAH3Bf8C9AMZAWYEAAG1Av8BkwGaAXoBnwGeAbsB9AHz
+ AWYBGQFmBQABDgHvAQAB8ALxAvIBvAEOAwABcwIcBzECSwFEAe0CAAG1Av8CkwGZAQcBuwG0AhkDZgIA
+ AbUC/wG7AQgCnwF+AXkC9AFsARkDZgIAAQ4B7wEHAQAB8ALxAvIB8AEOAwAB7AF6ARwBmgN6AlkBUwFS
+ ATEBSwHqAgABtQL/AZMBmgF6AZ8BngG7AfQB8wFmARkBZgIAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFm
+ ARkBZgIAAQ4CAAHvAbwB8ALxAfIB8AEOAwAB7QF6ARwBmQV6AlkBUwExAUQB7QEAAbUC/wG7AQgCnwF+
+ AXkC9AFsARkDZgEHCv8BbAH0AWwBGQFmAgABDgHwAgcCvALwAfEBvAEOAwAB7QGaAXoBHAGaBXoDWQFL
+ AW0BAAG1Av8C2wEJAQgBfgF5Af8B9AFsAfMBZgEZAWYCBwS1AfcBtQLtApEB9AFsAfMBZgIAAQ4B8AMH
+ ArwC8AG8AQ4DAAEcAZoBegEcAZkHegFZAVIBSgHtAQcK/wFsAfQBbAEZAWYBtQH/AQcK/wFsAfQBbAIA
+ AQ4B8AQHArwB8AG8AQ4DAAEcAZoBoAF6ARwHmgJ6AXQBbQIHBLUB9wG1Au0CkQH0AWwB8wFmAbUB/wIH
+ BLUB9wG1Au0CkQH0AWwCAAEOAfAC7wQHAbwBBwEOAwABHAOgCBwC7QHsAXMCAAEHCv8BbAH0AWwBBwP/
+ AQcK/wFsAgABDgHwA+8FBwEOAwABHASgAZoGegFzBQACBwS1AfcBtQLtApEB9AFsAgcCtQIHBLUB9wG1
+ Au0CkQIAAQ4BvATvBAcBDgMAARwBoAHDA6ABegMcAu0BcwcAAQcK/wFsAgABBwr/AWwB9AFsAgABDgG8
+ Be8DBwEOAwABHAGZAsMCoAEcAe0MAAIHBLUB9wG1Au0CkQIAAgcEtQH3AbUC7QKRAfQBbAIAAQ4B9APw
+ A7wCBwEOBAAFHAHtHQABBwr/AWwCAAsOJwACBwS1AfcBtQLtApHgAAFCAU0BPgcAAT4DAAEoAwABQAMA
+ ASwDAAEBAQABAQUAAWABARYAA/8BAAL/BgAC/wYAAv8GAAH/AcMGAAHgAQEGAAHAAQEGAAGAAQEGAAHg
+ ASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAGAAQEGAAHA
+ AQEGAAHgAQMGAAL/BgAC/wYAAv8GABr/AQABDwb/AQABDwH4AQcC/wEAAQ8BAAEDAfABBwEAAQcBAAEP
+ AQABAwHgAQcBAAEDAQABAwIAAcABBwEAAQMBAAEDAgABwAEHAQABAQQAAcABBwEAAQEEAAHAAQcGAAHA
+ AQcGAAHAAQcCAAHAAwABwAEHAQABBwHAAwABwAEHAQABBwHwAQABwAEAAcABBwEAAf8B8AEAAcABAAHA
+ AQcBgQP/AfABAAHAAQcE/wHwAQAc/ws=
+
+ True
+
True
diff --git a/Source/Windows/TextureBrowserForm.Designer.cs b/Source/Windows/TextureBrowserForm.Designer.cs
index a04b353d..b8c13279 100644
--- a/Source/Windows/TextureBrowserForm.Designer.cs
+++ b/Source/Windows/TextureBrowserForm.Designer.cs
@@ -30,30 +30,14 @@ namespace CodeImp.DoomBuilder.Windows
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TextureBrowserForm));
- this.browser = new CodeImp.DoomBuilder.Controls.ImageBrowserControl();
this.cancel = new System.Windows.Forms.Button();
this.apply = new System.Windows.Forms.Button();
this.texturesets = new System.Windows.Forms.ListView();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.smallimages = new System.Windows.Forms.ImageList(this.components);
+ this.browser = new CodeImp.DoomBuilder.Controls.ImageBrowserControl();
this.SuspendLayout();
//
- // browser
- //
- this.browser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.browser.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.browser.HideInputBox = false;
- this.browser.LabelText = "Select or enter a texture name:";
- this.browser.Location = new System.Drawing.Point(197, 9);
- this.browser.Name = "browser";
- this.browser.PreventSelection = false;
- this.browser.Size = new System.Drawing.Size(684, 610);
- this.browser.TabIndex = 0;
- this.browser.SelectedItemDoubleClicked += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemDoubleClickDelegate(this.browser_SelectedItemDoubleClicked);
- this.browser.SelectedItemChanged += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemChangedDelegate(this.browser_SelectedItemChanged);
- //
// cancel
//
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@@ -107,8 +91,26 @@ namespace CodeImp.DoomBuilder.Windows
this.smallimages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("smallimages.ImageStream")));
this.smallimages.TransparentColor = System.Drawing.Color.Transparent;
this.smallimages.Images.SetKeyName(0, "KnownTextureSet2.ico");
- this.smallimages.Images.SetKeyName(1, "OthersTextureSet2.ico");
- this.smallimages.Images.SetKeyName(2, "AllTextureSet2.ico");
+ this.smallimages.Images.SetKeyName(1, "AllTextureSet2.ico");
+ this.smallimages.Images.SetKeyName(2, "FileTextureSet.ico");
+ this.smallimages.Images.SetKeyName(3, "FolderTextureSet.ico");
+ this.smallimages.Images.SetKeyName(4, "PK3TextureSet.ico");
+ //
+ // browser
+ //
+ this.browser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.browser.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.browser.HideInputBox = false;
+ this.browser.LabelText = "Select or enter a texture name:";
+ this.browser.Location = new System.Drawing.Point(197, 9);
+ this.browser.Name = "browser";
+ this.browser.PreventSelection = false;
+ this.browser.Size = new System.Drawing.Size(684, 610);
+ this.browser.TabIndex = 0;
+ this.browser.SelectedItemDoubleClicked += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemDoubleClickDelegate(this.browser_SelectedItemDoubleClicked);
+ this.browser.SelectedItemChanged += new CodeImp.DoomBuilder.Controls.ImageBrowserControl.SelectedItemChangedDelegate(this.browser_SelectedItemChanged);
//
// TextureBrowserForm
//
diff --git a/Source/Windows/TextureBrowserForm.cs b/Source/Windows/TextureBrowserForm.cs
index 320c301f..f407e046 100644
--- a/Source/Windows/TextureBrowserForm.cs
+++ b/Source/Windows/TextureBrowserForm.cs
@@ -70,12 +70,17 @@ namespace CodeImp.DoomBuilder.Windows
}
// Add special textures sets
- item = texturesets.Items.Add(General.Map.Data.OthersTextureSet.Name);
- item.Tag = General.Map.Data.OthersTextureSet;
- item.ImageIndex = 1;
item = texturesets.Items.Add(General.Map.Data.AllTextureSet.Name);
item.Tag = General.Map.Data.AllTextureSet;
- item.ImageIndex = 2;
+ item.ImageIndex = 1;
+
+ // Add container-specific texture sets
+ foreach(ResourceTextureSet ts in General.Map.Data.ResourceTextureSets)
+ {
+ item = texturesets.Items.Add(ts.Name);
+ item.Tag = ts;
+ item.ImageIndex = 2 + ts.LocationType;
+ }
// Select the last one that was selected
string selectname = General.Settings.ReadSetting("browserwindow.textureset", "");
diff --git a/Source/Windows/TextureBrowserForm.resx b/Source/Windows/TextureBrowserForm.resx
index 0342cef9..e002c096 100644
--- a/Source/Windows/TextureBrowserForm.resx
+++ b/Source/Windows/TextureBrowserForm.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- True
-
True
@@ -136,51 +133,64 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAu
- CgAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
- AwABQAMAARYDAAEBAQABCAUAAYABBRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
- AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
- AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
- AwABZgMAAZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIA
- AWYBmQIAAWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIA
- AcwBZgIAAcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFm
- AQABMwEAAZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEA
- ATMBZgIAATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEz
- AZkBZgEAATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEz
- AswBAAEzAcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEz
- AQABZgEAAWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZ
- AQABZgEzAcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFm
- AZkBZgEAAWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHM
- Af8BAAFmAf8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZ
- AQABmQEAAZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZ
- AWYBMwEAAZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEA
- ApkB/wEAAZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/
- ATMBAAGZAcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZ
- AQABzAEAAcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIA
- AcwBZgEzAQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEA
- AcwCmQEAAcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIA
- AcwB/wEzAQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZ
- AQABzAEzAgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEA
- AcwCZgEAAf8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/
- AZkBzAEAAf8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/
- ATMBAAHMAf8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/
- AWYBAAEhAQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEA
- AfAB+wH/AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/4QAB9wKuAW0BbAHq
- AmwEZjQAAfcF/wL0AxkBZhQAAfcCrgFtAWwB6gJsBGYEAAH3Aq4BbQFsAeoCbARmBAABtQL/ApMBmQEH
- AbsBtAIZA2YSAAH3Bf8C9AMZAWYEAAH3BP8BCQHPAvMCGQFmBAABtQL/AZMBmgF6AZ8BngG7AfQB8wFm
- ARkBZhIAAbUC/wKTAZkBBwG7AbQCGQNmAgABtQT/AfQB3QH/AvMBGQNmAgABtQL/AbsBCAKfAX4BeQL0
- AWwBGQNmEAABtQL/AZMBmgF6AZ8BngG7AfQB8wFmARkBZgIAAbUE/wH0Aa0B/wHzAfQB8wFmARkBZgIA
- AbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZhAAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgG1Bf8BCQHP
- A/QBbAEZA2YBBwr/AWwB9AFsARkBZhAAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZgG1A/8BCQEZ
- Af8BtAEZAf8B9AFsAfMBZgEZAWYCBwS1AfcBtQLtApEB9AFsAfMBZhAAAQcK/wFsAfQBbAEZAWYBBwP/
- Ad0CtAHdA/8BbAH0AWwBGQFmAbUB/wEHCv8BbAH0AWwQAAIHBLUB9wG1Au0CkQH0AWwB8wFmAgcEtQH3
- AbUC7QKRAfQBbAHzAWYBtQH/AgcEtQH3AbUC7QKRAfQBbBIAAQcK/wFsAfQBbAIAAQcK/wFsAfQBbAEH
- A/8BBwr/AWwSAAIHBLUB9wG1Au0CkQH0AWwCAAIHBLUB9wG1Au0CkQH0AWwCBwK1AgcEtQH3AbUC7QKR
- FAABBwr/AWwEAAEHCv8BbAIAAQcK/wFsAfQBbBQAAgcEtQH3AbUC7QKRBAACBwS1AfcBtQLtApECAAIH
- BLUB9wG1Au0CkQH0AWw0AAEHCv8BbDQAAgcEtQH3AbUC7QKR0AABQgFNAT4HAAE+AwABKAMAAUADAAEW
- AwABAQEAAQEFAAGwFwAD/wEABv8CAAb/AgAG/wIABP8BAAEPAgAE/wEAAQ8DAAEPAQABDwEAAQMDAAEP
- AQABDwEAAQMDAAEDAQABAwUAAQMBAAEDJAABwAEAAcAFAAHAAQABwAUAAfABAAHwAQABwAMAAfABAAHw
- AQABwAMABP8B8AMABP8B8AMABv8CAAb/AgAG/wIACw==
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB+
+ DAAAAk1TRnQBSQFMAgEBBQEAAQkBAAEEAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAASwDAAEBAQABCAYAAQsYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8ABQAHDgEQAW0BbAIO
+ MwABDgENAWwBkAG7AgkB9wJsAWYCDjsAAQ4B6gFsAQ8BDjQAAW0HAAFDAW0BDjQAAW0B8QFtAQcBvAHw
+ AfECAAERAQcB7DQAA20BBwK8AfACAAJtAQ40AAFtAfADBwK8AgABEQEHAew0AAFtAfAB7wMHAbwCAAJt
+ AQ40AAFtAfAC7wMHAgABEQEHAew0AAFtAfAD7wIHAgACbQEONAABbQG8BO8BBwIAAREBBwHsNAAIbQEA
+ AQ8B+AEPNAAJDgHrAZEBDTQAAQ4BZQGQAbsFCQH3AWwCDj4AAQ7/AMMAAfcCrgFtAWwB6gJsBGY0AAH3
+ Bf8C9AMZAWYJAAgOEwAB9wKuAW0BbAHqAmwEZgQAAbUC/wKTAZkBBwG7AbQCGQNmBgABDgEABe8B9wEO
+ AwACcwHrAW4BbQFKARMBFQFDAREBDwEOAQ8DAAH3Bf8C9AMZAWYEAAG1Av8BkwGaAXoBnwGeAbsB9AHz
+ AWYBGQFmBQABDgHvAQAB8ALxAvIBvAEOAwABcwIcBzECSwFEAe0CAAG1Av8CkwGZAQcBuwG0AhkDZgIA
+ AbUC/wG7AQgCnwF+AXkC9AFsARkDZgIAAQ4B7wEHAQAB8ALxAvIB8AEOAwAB7AF6ARwBmgN6AlkBUwFS
+ ATEBSwHqAgABtQL/AZMBmgF6AZ8BngG7AfQB8wFmARkBZgIAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFm
+ ARkBZgIAAQ4CAAHvAbwB8ALxAfIB8AEOAwAB7QF6ARwBmQV6AlkBUwExAUQB7QEAAbUC/wG7AQgCnwF+
+ AXkC9AFsARkDZgEHCv8BbAH0AWwBGQFmAgABDgHwAgcCvALwAfEBvAEOAwAB7QGaAXoBHAGaBXoDWQFL
+ AW0BAAG1Av8C2wEJAQgBfgF5Af8B9AFsAfMBZgEZAWYCBwS1AfcBtQLtApEB9AFsAfMBZgIAAQ4B8AMH
+ ArwC8AG8AQ4DAAEcAZoBegEcAZkHegFZAVIBSgHtAQcK/wFsAfQBbAEZAWYBtQH/AQcK/wFsAfQBbAIA
+ AQ4B8AQHArwB8AG8AQ4DAAEcAZoBoAF6ARwHmgJ6AXQBbQIHBLUB9wG1Au0CkQH0AWwB8wFmAbUB/wIH
+ BLUB9wG1Au0CkQH0AWwCAAEOAfAC7wQHAbwBBwEOAwABHAOgCBwC7QHsAXMCAAEHCv8BbAH0AWwBBwP/
+ AQcK/wFsAgABDgHwA+8FBwEOAwABHASgAZoGegFzBQACBwS1AfcBtQLtApEB9AFsAgcCtQIHBLUB9wG1
+ Au0CkQIAAQ4BvATvBAcBDgMAARwBoAHDA6ABegMcAu0BcwcAAQcK/wFsAgABBwr/AWwB9AFsAgABDgG8
+ Be8DBwEOAwABHAGZAsMCoAEcAe0MAAIHBLUB9wG1Au0CkQIAAgcEtQH3AbUC7QKRAfQBbAIAAQ4B9APw
+ A7wCBwEOBAAFHAHtHQABBwr/AWwCAAsOJwACBwS1AfcBtQLtApHgAAFCAU0BPgcAAT4DAAEoAwABQAMA
+ ASwDAAEBAQABAQUAAWABARYAA/8BAAL/BgAC/wYAAv8GAAH/AcMGAAHgAQEGAAHAAQEGAAGAAQEGAAHg
+ ASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAHAASMGAAGAAQEGAAHA
+ AQEGAAHgAQMGAAL/BgAC/wYAAv8GABr/AQABDwb/AQABDwH4AQcC/wEAAQ8BAAEDAfABBwEAAQcBAAEP
+ AQABAwHgAQcBAAEDAQABAwIAAcABBwEAAQMBAAEDAgABwAEHAQABAQQAAcABBwEAAQEEAAHAAQcGAAHA
+ AQcGAAHAAQcCAAHAAwABwAEHAQABBwHAAwABwAEHAQABBwHwAQABwAEAAcABBwEAAf8B8AEAAcABAAHA
+ AQcBgQP/AfABAAHAAQcE/wHwAQAc/ws=
+
+ True
+
\ No newline at end of file