mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-18 22:41:46 +00:00
Changed long texture names handling. Texture names conversion is no longer required.
Texture browser form: added "Long texture names" check-box. It can be used to toggle between displaying long and short texture names. Texture browser form: added "Show image size" check-box. Texture browser form: image size is now shown differently. Image Selector: added a button to toggle between long and short texture name. Linedef info panel: long texture names are now displayed properly. Sector info panel: long texture names are now displayed properly. Fixed: "Save Screenshot" and "Save Edit Area Screenshot" actions were triggered multiple times when a child window was open. Fixed: used textures should be always updated after using "Change map in current WAD" action. Fixed, "Change map in current WAD": fixed a crash when trying to switch from a map with missing game configuration path. Updated ZDoom_ACS.cfg.
This commit is contained in:
parent
6b765f5a27
commit
99f3ba2844
54 changed files with 1479 additions and 1270 deletions
|
@ -538,9 +538,11 @@ constants
|
||||||
APROP_ChaseGoal;
|
APROP_ChaseGoal;
|
||||||
APROP_Damage;
|
APROP_Damage;
|
||||||
APROP_DamageFactor;
|
APROP_DamageFactor;
|
||||||
|
APROP_DamageMultiplier;
|
||||||
APROP_DeathSound;
|
APROP_DeathSound;
|
||||||
APROP_Dormant;
|
APROP_Dormant;
|
||||||
APROP_Dropped;
|
APROP_Dropped;
|
||||||
|
APROP_Friction;
|
||||||
APROP_Friendly;
|
APROP_Friendly;
|
||||||
APROP_Frightened;
|
APROP_Frightened;
|
||||||
APROP_Gravity;
|
APROP_Gravity;
|
||||||
|
|
|
@ -276,10 +276,8 @@ namespace CodeImp.DoomBuilder.Actions
|
||||||
// This binds a delegate manually
|
// This binds a delegate manually
|
||||||
internal void BindBeginDelegate(Assembly asm, ActionDelegate d, BeginActionAttribute a)
|
internal void BindBeginDelegate(Assembly asm, ActionDelegate d, BeginActionAttribute a)
|
||||||
{
|
{
|
||||||
string actionname;
|
|
||||||
|
|
||||||
// Make proper name
|
// Make proper name
|
||||||
actionname = a.GetFullActionName(asm);
|
string actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
// Bind delegate to action
|
// Bind delegate to action
|
||||||
if(Exists(actionname))
|
if(Exists(actionname))
|
||||||
|
@ -291,10 +289,8 @@ namespace CodeImp.DoomBuilder.Actions
|
||||||
// This binds a delegate manually
|
// This binds a delegate manually
|
||||||
internal void BindEndDelegate(Assembly asm, ActionDelegate d, EndActionAttribute a)
|
internal void BindEndDelegate(Assembly asm, ActionDelegate d, EndActionAttribute a)
|
||||||
{
|
{
|
||||||
string actionname;
|
|
||||||
|
|
||||||
// Make proper name
|
// Make proper name
|
||||||
actionname = a.GetFullActionName(asm);
|
string actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
// Bind delegate to action
|
// Bind delegate to action
|
||||||
if(Exists(actionname))
|
if(Exists(actionname))
|
||||||
|
@ -371,10 +367,8 @@ namespace CodeImp.DoomBuilder.Actions
|
||||||
// This unbinds a delegate manually
|
// This unbinds a delegate manually
|
||||||
internal void UnbindBeginDelegate(Assembly asm, ActionDelegate d, BeginActionAttribute a)
|
internal void UnbindBeginDelegate(Assembly asm, ActionDelegate d, BeginActionAttribute a)
|
||||||
{
|
{
|
||||||
string actionname;
|
|
||||||
|
|
||||||
// Make proper name
|
// Make proper name
|
||||||
actionname = a.GetFullActionName(asm);
|
string actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
// Unbind delegate to action
|
// Unbind delegate to action
|
||||||
actions[actionname].UnbindBegin(d);
|
actions[actionname].UnbindBegin(d);
|
||||||
|
@ -383,10 +377,8 @@ namespace CodeImp.DoomBuilder.Actions
|
||||||
// This unbinds a delegate manually
|
// This unbinds a delegate manually
|
||||||
internal void UnbindEndDelegate(Assembly asm, ActionDelegate d, EndActionAttribute a)
|
internal void UnbindEndDelegate(Assembly asm, ActionDelegate d, EndActionAttribute a)
|
||||||
{
|
{
|
||||||
string actionname;
|
|
||||||
|
|
||||||
// Make proper name
|
// Make proper name
|
||||||
actionname = a.GetFullActionName(asm);
|
string actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
// Unbind delegate to action
|
// Unbind delegate to action
|
||||||
actions[actionname].UnbindEnd(d);
|
actions[actionname].UnbindEnd(d);
|
||||||
|
|
|
@ -1010,6 +1010,7 @@
|
||||||
<None Include="Resources\Cursor.png" />
|
<None Include="Resources\Cursor.png" />
|
||||||
<None Include="Resources\Brightness.png" />
|
<None Include="Resources\Brightness.png" />
|
||||||
<None Include="Resources\Clear.png" />
|
<None Include="Resources\Clear.png" />
|
||||||
|
<None Include="Resources\Collapse.png" />
|
||||||
<Content Include="Resources\DB2.ico" />
|
<Content Include="Resources\DB2.ico" />
|
||||||
<None Include="Resources\GZDB2.ico" />
|
<None Include="Resources\GZDB2.ico" />
|
||||||
<None Include="Resources\fog.png" />
|
<None Include="Resources\fog.png" />
|
||||||
|
@ -1019,6 +1020,7 @@
|
||||||
<None Include="Resources\Keyboard.png" />
|
<None Include="Resources\Keyboard.png" />
|
||||||
<None Include="Resources\ImageStack.png" />
|
<None Include="Resources\ImageStack.png" />
|
||||||
<None Include="Resources\FolderExplore.png" />
|
<None Include="Resources\FolderExplore.png" />
|
||||||
|
<None Include="Resources\Expand.png" />
|
||||||
<Content Include="Resources\Light.png" />
|
<Content Include="Resources\Light.png" />
|
||||||
<None Include="Resources\Lightbulb.png" />
|
<None Include="Resources\Lightbulb.png" />
|
||||||
<None Include="Resources\LightDisabled.png" />
|
<None Include="Resources\LightDisabled.png" />
|
||||||
|
|
|
@ -59,7 +59,6 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
private Configuration config; //mxd
|
private Configuration config; //mxd
|
||||||
private bool enabled; //mxd
|
private bool enabled; //mxd
|
||||||
private bool changed; //mxd
|
private bool changed; //mxd
|
||||||
private bool longtexturenames; //mxd
|
|
||||||
|
|
||||||
private List<EngineInfo> testEngines; //mxd
|
private List<EngineInfo> testEngines; //mxd
|
||||||
private int currentEngineIndex; //mxd
|
private int currentEngineIndex; //mxd
|
||||||
|
@ -85,7 +84,6 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
internal Configuration Configuration { get { return config; } } //mxd
|
internal Configuration Configuration { get { return config; } } //mxd
|
||||||
public bool Enabled { get { return enabled; } internal set { enabled = value; } } //mxd
|
public bool Enabled { get { return enabled; } internal set { enabled = value; } } //mxd
|
||||||
public bool Changed { get { return changed; } internal set { changed = value; } } //mxd
|
public bool Changed { get { return changed; } internal set { changed = value; } } //mxd
|
||||||
public bool SupportsLongTextureNames { get { return longtexturenames; } internal set { longtexturenames = value; } } //mxd
|
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
public string TestProgramName { get { return testEngines[currentEngineIndex].TestProgramName; } internal set { testEngines[currentEngineIndex].TestProgramName = value; } }
|
public string TestProgramName { get { return testEngines[currentEngineIndex].TestProgramName; } internal set { testEngines[currentEngineIndex].TestProgramName = value; } }
|
||||||
|
@ -118,7 +116,6 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
// Load settings from game configuration
|
// Load settings from game configuration
|
||||||
this.name = config.ReadSetting("game", "<unnamed game>");
|
this.name = config.ReadSetting("game", "<unnamed game>");
|
||||||
this.defaultlumpname = config.ReadSetting("defaultlumpname", "");
|
this.defaultlumpname = config.ReadSetting("defaultlumpname", "");
|
||||||
this.longtexturenames = config.ReadSetting("longtexturenames", false); //mxd
|
|
||||||
|
|
||||||
// Load settings from program configuration
|
// Load settings from program configuration
|
||||||
this.nodebuildersave = General.Settings.ReadSetting("configurations." + settingskey + ".nodebuildersave", MISSING_NODEBUILDER);
|
this.nodebuildersave = General.Settings.ReadSetting("configurations." + settingskey + ".nodebuildersave", MISSING_NODEBUILDER);
|
||||||
|
|
|
@ -74,6 +74,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
private readonly string decorategames;
|
private readonly string decorategames;
|
||||||
private readonly string skyflatname;
|
private readonly string skyflatname;
|
||||||
private readonly int maxtexturenamelength;
|
private readonly int maxtexturenamelength;
|
||||||
|
private readonly bool longtexturenames; //mxd
|
||||||
private readonly int leftboundary;
|
private readonly int leftboundary;
|
||||||
private readonly int rightboundary;
|
private readonly int rightboundary;
|
||||||
private readonly int topboundary;
|
private readonly int topboundary;
|
||||||
|
@ -178,6 +179,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
public string DecorateGames { get { return decorategames; } }
|
public string DecorateGames { get { return decorategames; } }
|
||||||
public string SkyFlatName { get { return skyflatname; } }
|
public string SkyFlatName { get { return skyflatname; } }
|
||||||
public int MaxTextureNameLength { get { return maxtexturenamelength; } }
|
public int MaxTextureNameLength { get { return maxtexturenamelength; } }
|
||||||
|
public bool UseLongTextureNames { get { return longtexturenames; } } //mxd
|
||||||
public int LeftBoundary { get { return leftboundary; } }
|
public int LeftBoundary { get { return leftboundary; } }
|
||||||
public int RightBoundary { get { return rightboundary; } }
|
public int RightBoundary { get { return rightboundary; } }
|
||||||
public int TopBoundary { get { return topboundary; } }
|
public int TopBoundary { get { return topboundary; } }
|
||||||
|
@ -321,8 +323,8 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
for(int i = 0; i < Linedef.NUM_ARGS; i++) makedoorargs[i] = cfg.ReadSetting("makedoorarg" + i.ToString(CultureInfo.InvariantCulture), 0);
|
for(int i = 0; i < Linedef.NUM_ARGS; i++) makedoorargs[i] = cfg.ReadSetting("makedoorarg" + i.ToString(CultureInfo.InvariantCulture), 0);
|
||||||
|
|
||||||
//mxd. Texture names length
|
//mxd. Texture names length
|
||||||
bool uselongtexturenames = cfg.ReadSetting("longtexturenames", false);
|
longtexturenames = cfg.ReadSetting("longtexturenames", false);
|
||||||
maxtexturenamelength = (uselongtexturenames ? short.MaxValue : DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
maxtexturenamelength = (longtexturenames ? short.MaxValue : DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
|
||||||
// Flags have special (invariant culture) conversion
|
// Flags have special (invariant culture) conversion
|
||||||
// because they are allowed to be written as integers in the configs
|
// because they are allowed to be written as integers in the configs
|
||||||
|
|
|
@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
if(string.IsNullOrEmpty(imagename))
|
if(string.IsNullOrEmpty(imagename))
|
||||||
{
|
{
|
||||||
DisplayImageSize(0, 0); //mxd
|
DisplayImageSize(0, 0); //mxd
|
||||||
|
UpdateToggleImageNameButton(null); //mxd
|
||||||
|
|
||||||
//mxd. Flat required?
|
//mxd. Flat required?
|
||||||
return multipletextures ? Properties.Resources.ImageStack : Properties.Resources.MissingTexture;
|
return multipletextures ? Properties.Resources.ImageStack : Properties.Resources.MissingTexture;
|
||||||
|
@ -51,6 +52,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
else if(imagename == "-") //mxd
|
else if(imagename == "-") //mxd
|
||||||
{
|
{
|
||||||
DisplayImageSize(0, 0);
|
DisplayImageSize(0, 0);
|
||||||
|
UpdateToggleImageNameButton(null); //mxd
|
||||||
|
|
||||||
// Flat required!
|
// Flat required!
|
||||||
return Properties.Resources.MissingTexture;
|
return Properties.Resources.MissingTexture;
|
||||||
|
@ -58,6 +60,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImageData texture = General.Map.Data.GetFlatImage(imagename); //mxd
|
ImageData texture = General.Map.Data.GetFlatImage(imagename); //mxd
|
||||||
|
UpdateToggleImageNameButton(texture); //mxd
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
|
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
|
||||||
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
|
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
|
||||||
|
|
108
Source/Core/Controls/ImageBrowserControl.Designer.cs
generated
108
Source/Core/Controls/ImageBrowserControl.Designer.cs
generated
|
@ -34,16 +34,15 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.label = new System.Windows.Forms.Label();
|
this.label = new System.Windows.Forms.Label();
|
||||||
this.splitter = new System.Windows.Forms.SplitContainer();
|
this.splitter = new System.Windows.Forms.SplitContainer();
|
||||||
this.list = new CodeImp.DoomBuilder.Controls.OptimizedListView();
|
this.list = new CodeImp.DoomBuilder.Controls.OptimizedListView();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.showtexturesize = new System.Windows.Forms.CheckBox();
|
||||||
|
this.longtexturenames = new System.Windows.Forms.CheckBox();
|
||||||
|
this.filterheightlabel = new System.Windows.Forms.Label();
|
||||||
this.filterHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
this.filterHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.filterwidthlabel = new System.Windows.Forms.Label();
|
||||||
this.filterWidth = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
this.filterWidth = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||||
this.cbMixMode = new System.Windows.Forms.ComboBox();
|
this.cbMixMode = new System.Windows.Forms.ComboBox();
|
||||||
this.texturesize = new System.Windows.Forms.Label();
|
|
||||||
this.texturesizelabel = new System.Windows.Forms.Label();
|
|
||||||
this.objectname = new System.Windows.Forms.TextBox();
|
this.objectname = new System.Windows.Forms.TextBox();
|
||||||
this.refreshtimer = new System.Windows.Forms.Timer(this.components);
|
this.refreshtimer = new System.Windows.Forms.Timer(this.components);
|
||||||
this.texturesizetimer = new System.Windows.Forms.Timer(this.components);
|
|
||||||
this.splitter.Panel1.SuspendLayout();
|
this.splitter.Panel1.SuspendLayout();
|
||||||
this.splitter.Panel2.SuspendLayout();
|
this.splitter.Panel2.SuspendLayout();
|
||||||
this.splitter.SuspendLayout();
|
this.splitter.SuspendLayout();
|
||||||
|
@ -82,17 +81,17 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// splitter.Panel2
|
// splitter.Panel2
|
||||||
//
|
//
|
||||||
this.splitter.Panel2.Controls.Add(this.label2);
|
this.splitter.Panel2.Controls.Add(this.showtexturesize);
|
||||||
|
this.splitter.Panel2.Controls.Add(this.longtexturenames);
|
||||||
|
this.splitter.Panel2.Controls.Add(this.filterheightlabel);
|
||||||
this.splitter.Panel2.Controls.Add(this.filterHeight);
|
this.splitter.Panel2.Controls.Add(this.filterHeight);
|
||||||
this.splitter.Panel2.Controls.Add(this.label1);
|
this.splitter.Panel2.Controls.Add(this.filterwidthlabel);
|
||||||
this.splitter.Panel2.Controls.Add(this.filterWidth);
|
this.splitter.Panel2.Controls.Add(this.filterWidth);
|
||||||
this.splitter.Panel2.Controls.Add(this.cbMixMode);
|
this.splitter.Panel2.Controls.Add(this.cbMixMode);
|
||||||
this.splitter.Panel2.Controls.Add(this.labelMixMode);
|
this.splitter.Panel2.Controls.Add(this.labelMixMode);
|
||||||
this.splitter.Panel2.Controls.Add(this.texturesize);
|
|
||||||
this.splitter.Panel2.Controls.Add(this.texturesizelabel);
|
|
||||||
this.splitter.Panel2.Controls.Add(this.objectname);
|
this.splitter.Panel2.Controls.Add(this.objectname);
|
||||||
this.splitter.Panel2.Controls.Add(this.label);
|
this.splitter.Panel2.Controls.Add(this.label);
|
||||||
this.splitter.Size = new System.Drawing.Size(639, 346);
|
this.splitter.Size = new System.Drawing.Size(840, 346);
|
||||||
this.splitter.SplitterDistance = 312;
|
this.splitter.SplitterDistance = 312;
|
||||||
this.splitter.TabIndex = 0;
|
this.splitter.TabIndex = 0;
|
||||||
this.splitter.TabStop = false;
|
this.splitter.TabStop = false;
|
||||||
|
@ -106,7 +105,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.list.MultiSelect = false;
|
this.list.MultiSelect = false;
|
||||||
this.list.Name = "list";
|
this.list.Name = "list";
|
||||||
this.list.OwnerDraw = true;
|
this.list.OwnerDraw = true;
|
||||||
this.list.Size = new System.Drawing.Size(639, 312);
|
this.list.ShowItemToolTips = true;
|
||||||
|
this.list.Size = new System.Drawing.Size(840, 312);
|
||||||
this.list.TabIndex = 1;
|
this.list.TabIndex = 1;
|
||||||
this.list.TabStop = false;
|
this.list.TabStop = false;
|
||||||
this.list.TileSize = new System.Drawing.Size(90, 90);
|
this.list.TileSize = new System.Drawing.Size(90, 90);
|
||||||
|
@ -117,14 +117,36 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.list.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.list_ItemSelectionChanged);
|
this.list.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.list_ItemSelectionChanged);
|
||||||
this.list.KeyDown += new System.Windows.Forms.KeyEventHandler(this.list_KeyDown);
|
this.list.KeyDown += new System.Windows.Forms.KeyEventHandler(this.list_KeyDown);
|
||||||
//
|
//
|
||||||
// label2
|
// showtexturesize
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
this.showtexturesize.AutoSize = true;
|
||||||
this.label2.Location = new System.Drawing.Point(367, 9);
|
this.showtexturesize.Location = new System.Drawing.Point(470, 9);
|
||||||
this.label2.Name = "label2";
|
this.showtexturesize.Name = "showtexturesize";
|
||||||
this.label2.Size = new System.Drawing.Size(40, 14);
|
this.showtexturesize.Size = new System.Drawing.Size(109, 18);
|
||||||
this.label2.TabIndex = 0;
|
this.showtexturesize.TabIndex = 2;
|
||||||
this.label2.Text = "Height:";
|
this.showtexturesize.Text = "Show image size";
|
||||||
|
this.showtexturesize.UseVisualStyleBackColor = true;
|
||||||
|
this.showtexturesize.CheckedChanged += new System.EventHandler(this.showtexturesize_CheckedChanged);
|
||||||
|
//
|
||||||
|
// longtexturenames
|
||||||
|
//
|
||||||
|
this.longtexturenames.AutoSize = true;
|
||||||
|
this.longtexturenames.Location = new System.Drawing.Point(585, 9);
|
||||||
|
this.longtexturenames.Name = "longtexturenames";
|
||||||
|
this.longtexturenames.Size = new System.Drawing.Size(122, 18);
|
||||||
|
this.longtexturenames.TabIndex = 1;
|
||||||
|
this.longtexturenames.Text = "Long texture names";
|
||||||
|
this.longtexturenames.UseVisualStyleBackColor = true;
|
||||||
|
this.longtexturenames.CheckedChanged += new System.EventHandler(this.longtexturenames_CheckedChanged);
|
||||||
|
//
|
||||||
|
// filterheightlabel
|
||||||
|
//
|
||||||
|
this.filterheightlabel.AutoSize = true;
|
||||||
|
this.filterheightlabel.Location = new System.Drawing.Point(367, 9);
|
||||||
|
this.filterheightlabel.Name = "filterheightlabel";
|
||||||
|
this.filterheightlabel.Size = new System.Drawing.Size(40, 14);
|
||||||
|
this.filterheightlabel.TabIndex = 0;
|
||||||
|
this.filterheightlabel.Text = "Height:";
|
||||||
//
|
//
|
||||||
// filterHeight
|
// filterHeight
|
||||||
//
|
//
|
||||||
|
@ -142,14 +164,14 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.filterHeight.TabStop = false;
|
this.filterHeight.TabStop = false;
|
||||||
this.filterHeight.WhenTextChanged += new System.EventHandler(this.filterSize_WhenTextChanged);
|
this.filterHeight.WhenTextChanged += new System.EventHandler(this.filterSize_WhenTextChanged);
|
||||||
//
|
//
|
||||||
// label1
|
// filterwidthlabel
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.filterwidthlabel.AutoSize = true;
|
||||||
this.label1.Location = new System.Drawing.Point(268, 9);
|
this.filterwidthlabel.Location = new System.Drawing.Point(268, 9);
|
||||||
this.label1.Name = "label1";
|
this.filterwidthlabel.Name = "filterwidthlabel";
|
||||||
this.label1.Size = new System.Drawing.Size(37, 14);
|
this.filterwidthlabel.Size = new System.Drawing.Size(37, 14);
|
||||||
this.label1.TabIndex = 0;
|
this.filterwidthlabel.TabIndex = 0;
|
||||||
this.label1.Text = "Width:";
|
this.filterwidthlabel.Text = "Width:";
|
||||||
//
|
//
|
||||||
// filterWidth
|
// filterWidth
|
||||||
//
|
//
|
||||||
|
@ -184,25 +206,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.cbMixMode.TabStop = false;
|
this.cbMixMode.TabStop = false;
|
||||||
this.cbMixMode.SelectedIndexChanged += new System.EventHandler(this.cbMixMode_SelectedIndexChanged);
|
this.cbMixMode.SelectedIndexChanged += new System.EventHandler(this.cbMixMode_SelectedIndexChanged);
|
||||||
//
|
//
|
||||||
// texturesize
|
|
||||||
//
|
|
||||||
this.texturesize.Location = new System.Drawing.Point(509, 9);
|
|
||||||
this.texturesize.Name = "texturesize";
|
|
||||||
this.texturesize.Size = new System.Drawing.Size(100, 14);
|
|
||||||
this.texturesize.TabIndex = 0;
|
|
||||||
this.texturesize.Text = "1024 x 1024";
|
|
||||||
this.texturesize.Visible = false;
|
|
||||||
//
|
|
||||||
// texturesizelabel
|
|
||||||
//
|
|
||||||
this.texturesizelabel.AutoSize = true;
|
|
||||||
this.texturesizelabel.Location = new System.Drawing.Point(472, 9);
|
|
||||||
this.texturesizelabel.Name = "texturesizelabel";
|
|
||||||
this.texturesizelabel.Size = new System.Drawing.Size(31, 14);
|
|
||||||
this.texturesizelabel.TabIndex = 0;
|
|
||||||
this.texturesizelabel.Text = "Size:";
|
|
||||||
this.texturesizelabel.Visible = false;
|
|
||||||
//
|
|
||||||
// objectname
|
// objectname
|
||||||
//
|
//
|
||||||
this.objectname.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
|
this.objectname.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
|
||||||
|
@ -220,11 +223,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.refreshtimer.Interval = 500;
|
this.refreshtimer.Interval = 500;
|
||||||
this.refreshtimer.Tick += new System.EventHandler(this.refreshtimer_Tick);
|
this.refreshtimer.Tick += new System.EventHandler(this.refreshtimer_Tick);
|
||||||
//
|
//
|
||||||
// texturesizetimer
|
|
||||||
//
|
|
||||||
this.texturesizetimer.Interval = 3;
|
|
||||||
this.texturesizetimer.Tick += new System.EventHandler(this.texturesizetimer_Tick);
|
|
||||||
//
|
|
||||||
// ImageBrowserControl
|
// ImageBrowserControl
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
@ -232,8 +230,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.Controls.Add(this.splitter);
|
this.Controls.Add(this.splitter);
|
||||||
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.Name = "ImageBrowserControl";
|
this.Name = "ImageBrowserControl";
|
||||||
this.Size = new System.Drawing.Size(639, 346);
|
this.Size = new System.Drawing.Size(840, 346);
|
||||||
this.Resize += new System.EventHandler(this.ImageBrowserControl_Resize);
|
|
||||||
this.splitter.Panel1.ResumeLayout(false);
|
this.splitter.Panel1.ResumeLayout(false);
|
||||||
this.splitter.Panel2.ResumeLayout(false);
|
this.splitter.Panel2.ResumeLayout(false);
|
||||||
this.splitter.Panel2.PerformLayout();
|
this.splitter.Panel2.PerformLayout();
|
||||||
|
@ -248,16 +245,15 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
private OptimizedListView list;
|
private OptimizedListView list;
|
||||||
private System.Windows.Forms.Timer refreshtimer;
|
private System.Windows.Forms.Timer refreshtimer;
|
||||||
private System.Windows.Forms.TextBox objectname;
|
private System.Windows.Forms.TextBox objectname;
|
||||||
private System.Windows.Forms.Label texturesize;
|
|
||||||
private System.Windows.Forms.Label texturesizelabel;
|
|
||||||
private System.Windows.Forms.Timer texturesizetimer;
|
|
||||||
private System.Windows.Forms.ComboBox cbMixMode;
|
private System.Windows.Forms.ComboBox cbMixMode;
|
||||||
private System.Windows.Forms.Label label;
|
private System.Windows.Forms.Label label;
|
||||||
private System.Windows.Forms.Label labelMixMode;
|
private System.Windows.Forms.Label labelMixMode;
|
||||||
private ButtonsNumericTextbox filterWidth;
|
private ButtonsNumericTextbox filterWidth;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label filterheightlabel;
|
||||||
private ButtonsNumericTextbox filterHeight;
|
private ButtonsNumericTextbox filterHeight;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label filterwidthlabel;
|
||||||
|
private System.Windows.Forms.CheckBox longtexturenames;
|
||||||
|
private System.Windows.Forms.CheckBox showtexturesize;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
private bool updating;
|
private bool updating;
|
||||||
private int keepselected;
|
private int keepselected;
|
||||||
private bool browseFlats; //mxd
|
private bool browseFlats; //mxd
|
||||||
|
private static bool uselongtexturenames = (General.Map != null && General.Map.Config.UseLongTextureNames); //mxd
|
||||||
|
private static bool showtexturesizes = (General.Settings != null && General.Settings.ShowTextureSizes); //mxd
|
||||||
|
|
||||||
// All items
|
// All items
|
||||||
private readonly List<ImageBrowserItem> items;
|
private readonly List<ImageBrowserItem> items;
|
||||||
|
@ -60,7 +62,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
private static int mixMode;
|
private static int mixMode;
|
||||||
private string longestTextureName = "";
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
public bool PreventSelection { get { return preventselection; } set { preventselection = value; } }
|
public bool PreventSelection { get { return preventselection; } set { preventselection = value; } }
|
||||||
public bool HideInputBox { get { return splitter.Panel2Collapsed; } set { splitter.Panel2Collapsed = value; } }
|
public bool HideInputBox { get { return splitter.Panel2Collapsed; } set { splitter.Panel2Collapsed = value; } }
|
||||||
public bool BrowseFlats { get { return browseFlats; } set { browseFlats = value; } } //mxd
|
public bool BrowseFlats { get { return browseFlats; } set { browseFlats = value; } } //mxd
|
||||||
|
public static bool ShowTextureSizes { get { return showtexturesizes; } } //mxd
|
||||||
public ListViewItem SelectedItem { get { if(list.SelectedItems.Count > 0) return list.SelectedItems[0]; else return null; } }
|
public ListViewItem SelectedItem { get { if(list.SelectedItems.Count > 0) return list.SelectedItems[0]; else return null; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -82,7 +84,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
items = new List<ImageBrowserItem>();
|
items = new List<ImageBrowserItem>();
|
||||||
|
|
||||||
//mxd.
|
//mxd
|
||||||
StepsList sizes = new StepsList { 4, 8, 16, 32, 48, 64, 96, 128, 196, 256, 512, 1024 };
|
StepsList sizes = new StepsList { 4, 8, 16, 32, 48, 64, 96, 128, 196, 256, 512, 1024 };
|
||||||
filterWidth.StepValues = sizes;
|
filterWidth.StepValues = sizes;
|
||||||
filterHeight.StepValues = sizes;
|
filterHeight.StepValues = sizes;
|
||||||
|
@ -103,7 +105,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
int itemwidth = General.Map.Data.Previews.MaxImageWidth + 26;
|
int itemwidth = General.Map.Data.Previews.MaxImageWidth + 26;
|
||||||
int itemheight = General.Map.Data.Previews.MaxImageHeight + 26;
|
int itemheight = General.Map.Data.Previews.MaxImageHeight + 26;
|
||||||
if(General.Settings.ShowTextureSizes) itemheight += 12;
|
|
||||||
list.TileSize = new Size(itemwidth, itemheight);
|
list.TileSize = new Size(itemwidth, itemheight);
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
|
@ -115,17 +116,36 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
labelMixMode.Visible = false;
|
labelMixMode.Visible = false;
|
||||||
cbMixMode.Visible = false;
|
cbMixMode.Visible = false;
|
||||||
label.Left = labelMixMode.Left;
|
|
||||||
objectname.Left = label.Right + label.Margin.Right + objectname.Margin.Left;
|
int offset = label.Left - labelMixMode.Left;
|
||||||
texturesizelabel.Left = objectname.Right + objectname.Margin.Right;
|
label.Left -= offset;
|
||||||
texturesize.Left = texturesizelabel.Right + texturesizelabel.Margin.Right;
|
objectname.Left -= offset;
|
||||||
|
filterWidth.Left -= offset;
|
||||||
|
filterwidthlabel.Left -= offset;
|
||||||
|
filterHeight.Left -= offset;
|
||||||
|
filterheightlabel.Left -= offset;
|
||||||
|
showtexturesize.Left -= offset;
|
||||||
|
longtexturenames.Left -= offset;
|
||||||
|
|
||||||
mixMode = 0;
|
mixMode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd. Use long texture names?
|
||||||
|
longtexturenames.Checked = (uselongtexturenames && General.Map.Config.UseLongTextureNames);
|
||||||
|
longtexturenames.Visible = General.Map.Config.UseLongTextureNames;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
longtexturenames.Visible = false; //mxd
|
||||||
|
uselongtexturenames = false; //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if(!General.Settings.CapitalizeTextureNames)
|
if(!General.Settings.CapitalizeTextureNames)
|
||||||
objectname.CharacterCasing = CharacterCasing.Normal;
|
objectname.CharacterCasing = CharacterCasing.Normal;
|
||||||
|
|
||||||
|
//mxd. Show texture sizes?
|
||||||
|
showtexturesize.Checked = showtexturesizes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This cleans everything up
|
// This cleans everything up
|
||||||
|
@ -167,8 +187,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
// If all previews were loaded, stop this timer
|
// If all previews were loaded, stop this timer
|
||||||
if(allpreviewsloaded) refreshtimer.Stop();
|
if(allpreviewsloaded) refreshtimer.Stop();
|
||||||
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -237,8 +255,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Raise event
|
// Raise event
|
||||||
if(SelectedItemChanged != null) SelectedItemChanged();
|
if(SelectedItemChanged != null) SelectedItemChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Doublelicking an item
|
// Doublelicking an item
|
||||||
|
@ -247,20 +263,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
if(!preventselection && (list.SelectedItems.Count > 0))
|
if(!preventselection && (list.SelectedItems.Count > 0))
|
||||||
if(SelectedItemDoubleClicked != null) SelectedItemDoubleClicked();
|
if(SelectedItemDoubleClicked != null) SelectedItemDoubleClicked();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Control is resized
|
|
||||||
private void ImageBrowserControl_Resize(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
|
||||||
|
|
||||||
// This hides the texture size label
|
|
||||||
private void texturesizetimer_Tick(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
texturesizetimer.Stop();
|
|
||||||
texturesize.Visible = false;
|
|
||||||
texturesizelabel.Visible = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
private void cbMixMode_SelectedIndexChanged(object sender, EventArgs e)
|
private void cbMixMode_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
@ -268,6 +270,20 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
mixMode = cbMixMode.SelectedIndex;
|
mixMode = cbMixMode.SelectedIndex;
|
||||||
RefillList(false);
|
RefillList(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private void longtexturenames_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
uselongtexturenames = longtexturenames.Checked;
|
||||||
|
RefillList(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private void showtexturesize_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
showtexturesizes = showtexturesize.Checked;
|
||||||
|
list.Invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -325,8 +341,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
lvi.Selected = true;
|
lvi.Selected = true;
|
||||||
lvi.EnsureVisible();
|
lvi.EnsureVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This performs item sleection by keys
|
// This performs item sleection by keys
|
||||||
|
@ -374,8 +388,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Make selection visible
|
// Make selection visible
|
||||||
if(list.SelectedItems.Count > 0) list.SelectedItems[0].EnsureVisible();
|
if(list.SelectedItems.Count > 0) list.SelectedItems[0].EnsureVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This selectes the first item
|
// This selectes the first item
|
||||||
|
@ -395,8 +407,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
lvi.EnsureVisible();
|
lvi.EnsureVisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This adds a group
|
// This adds a group
|
||||||
|
@ -433,20 +443,19 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
|
|
||||||
// This adds an item
|
// This adds an item
|
||||||
public void Add(string text, ImageData image, object tag, ListViewGroup group)
|
public void Add(ImageData image, object tag, ListViewGroup group)
|
||||||
{
|
{
|
||||||
if(text.Length > longestTextureName.Length) longestTextureName = text; //mxd
|
ImageBrowserItem i = new ImageBrowserItem(image, tag, uselongtexturenames); //mxd
|
||||||
ImageBrowserItem i = new ImageBrowserItem(text, image, tag);
|
|
||||||
i.ListGroup = group;
|
i.ListGroup = group;
|
||||||
i.Group = group;
|
i.Group = group;
|
||||||
|
i.ToolTipText = image.Name; //mxd
|
||||||
items.Add(i);
|
items.Add(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This adds an item
|
// This adds an item
|
||||||
public void Add(string text, ImageData image, object tag, ListViewGroup group, string tooltiptext)
|
public void Add(ImageData image, object tag, ListViewGroup group, string tooltiptext)
|
||||||
{
|
{
|
||||||
if(text.Length > longestTextureName.Length) longestTextureName = text; //mxd
|
ImageBrowserItem i = new ImageBrowserItem(image, tag, uselongtexturenames); //mxd
|
||||||
ImageBrowserItem i = new ImageBrowserItem(text, image, tag);
|
|
||||||
i.ListGroup = group;
|
i.ListGroup = group;
|
||||||
i.Group = group;
|
i.Group = group;
|
||||||
i.ToolTipText = tooltiptext;
|
i.ToolTipText = tooltiptext;
|
||||||
|
@ -472,14 +481,17 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
int h = filterHeight.GetResult(-1);
|
int h = filterHeight.GetResult(-1);
|
||||||
|
|
||||||
// Go for all items
|
// Go for all items
|
||||||
foreach(ImageBrowserItem i in items)
|
string prevname = string.Empty; //mxd
|
||||||
|
for(int i = items.Count - 1; i > -1; i--)
|
||||||
{
|
{
|
||||||
// Add item if valid
|
// Add item if valid
|
||||||
if(ValidateItem(i) && ValidateItemSize(i, w, h))
|
items[i].ShowFullName = uselongtexturenames; //mxd
|
||||||
|
if(ValidateItem(items[i], prevname) && ValidateItemSize(items[i], w, h))
|
||||||
{
|
{
|
||||||
i.Group = i.ListGroup;
|
items[i].Group = items[i].ListGroup;
|
||||||
i.Selected = false;
|
items[i].Selected = false;
|
||||||
visibleitems.Add(i);
|
visibleitems.Add(items[i]);
|
||||||
|
prevname = items[i].TextureName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,14 +525,17 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
// Raise event
|
// Raise event
|
||||||
if((SelectedItemChanged != null) && !preventselection) SelectedItemChanged();
|
if((SelectedItemChanged != null) && !preventselection) SelectedItemChanged();
|
||||||
UpdateTextureSizeLabel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This validates an item
|
// This validates an item
|
||||||
private bool ValidateItem(ImageBrowserItem i)
|
private bool ValidateItem(ImageBrowserItem i, string previtemname)
|
||||||
{
|
{
|
||||||
|
//mxd. Don't show duplicate items
|
||||||
|
if(i.TextureName == previtemname) return false; //mxd
|
||||||
|
|
||||||
//mxd. mixMode: 0 = All, 1 = Textures, 2 = Flats, 3 = Based on BrowseFlats
|
//mxd. mixMode: 0 = All, 1 = Textures, 2 = Flats, 3 = Based on BrowseFlats
|
||||||
if(!splitter.Panel2Collapsed) {
|
if(!splitter.Panel2Collapsed)
|
||||||
|
{
|
||||||
if(mixMode == 1 && i.icon.IsFlat) return false;
|
if(mixMode == 1 && i.icon.IsFlat) return false;
|
||||||
if(mixMode == 2 && !i.icon.IsFlat) return false;
|
if(mixMode == 2 && !i.icon.IsFlat) return false;
|
||||||
if(mixMode == 3 && (browseFlats != i.icon.IsFlat)) return false;
|
if(mixMode == 3 && (browseFlats != i.icon.IsFlat)) return false;
|
||||||
|
@ -544,27 +559,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
objectname.Focus();
|
objectname.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This updates the texture size label
|
|
||||||
private void UpdateTextureSizeLabel()
|
|
||||||
{
|
|
||||||
if((list.SelectedItems.Count == 0) ||
|
|
||||||
(splitter.Panel2.ClientSize.Width < (texturesize.Location.X + texturesize.Size.Width)))
|
|
||||||
{
|
|
||||||
texturesizetimer.Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
texturesizetimer.Stop();
|
|
||||||
ImageBrowserItem lvi = (list.SelectedItems[0] as ImageBrowserItem);
|
|
||||||
if(lvi.icon.IsPreviewLoaded)
|
|
||||||
texturesize.Text = lvi.icon.Width + " x " + lvi.icon.Height;
|
|
||||||
else
|
|
||||||
texturesize.Text = "unknown";
|
|
||||||
texturesize.Visible = true;
|
|
||||||
texturesizelabel.Visible = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,4 @@
|
||||||
<metadata name="refreshtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="refreshtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>103, 17</value>
|
<value>103, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="texturesizetimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>215, 17</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
|
@ -31,7 +31,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
private const int MAX_DISPLAY_NAME_LENGTH = 16; //mxd
|
internal const int MAX_NAME_LENGTH = 14; //mxd
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -39,7 +39,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
// Display image and text
|
// Display image and text
|
||||||
public readonly ImageData icon;
|
public readonly ImageData icon;
|
||||||
private string displaytext;
|
private string imagesize; //mxd
|
||||||
|
private bool showfullname; //mxd
|
||||||
private static readonly StringFormat format = new StringFormat { Alignment = StringAlignment.Center }; //mxd
|
private static readonly StringFormat format = new StringFormat { Alignment = StringAlignment.Center }; //mxd
|
||||||
|
|
||||||
// Group
|
// Group
|
||||||
|
@ -54,25 +55,21 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
public ListViewGroup ListGroup { get { return listgroup; } set { listgroup = value; } }
|
public ListViewGroup ListGroup { get { return listgroup; } set { listgroup = value; } }
|
||||||
public bool IsPreviewLoaded { get { return imageloaded; } }
|
public bool IsPreviewLoaded { get { return imageloaded; } }
|
||||||
|
public bool ShowFullName { set { showfullname = value; UpdateName(); } }
|
||||||
|
public string TextureName { get { return showfullname ? icon.Name : icon.ShortName; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
public ImageBrowserItem(string text, ImageData icon, object tag)
|
public ImageBrowserItem(ImageData icon, object tag, bool showfullname)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.Text = text;
|
|
||||||
if (text.Length > MAX_DISPLAY_NAME_LENGTH) text = text.Substring(0, MAX_DISPLAY_NAME_LENGTH); //mxd
|
|
||||||
this.displaytext = text;
|
|
||||||
|
|
||||||
if(General.Settings.ShowTextureSizes)
|
|
||||||
this.displaytext = text + "\n" + icon.ScaledWidth + " x " + icon.ScaledHeight;
|
|
||||||
else
|
|
||||||
this.displaytext = text;
|
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
this.Tag = tag;
|
this.Tag = tag;
|
||||||
|
this.showfullname = showfullname; //mxd
|
||||||
|
UpdateName(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -82,10 +79,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// This checks if a redraw is needed
|
// This checks if a redraw is needed
|
||||||
public bool CheckRedrawNeeded()
|
public bool CheckRedrawNeeded()
|
||||||
{
|
{
|
||||||
//mxd. Update texture size if needed
|
UpdateName(); //mxd. Update texture size if needed
|
||||||
if(General.Settings.ShowTextureSizes && imageloaded != icon.IsPreviewLoaded)
|
|
||||||
displaytext = Text + "\n" + icon.ScaledWidth + " x " + icon.ScaledHeight;
|
|
||||||
|
|
||||||
return (icon.IsPreviewLoaded != imageloaded);
|
return (icon.IsPreviewLoaded != imageloaded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +99,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
g.PixelOffsetMode = PixelOffsetMode.None;
|
g.PixelOffsetMode = PixelOffsetMode.None;
|
||||||
|
|
||||||
// Determine coordinates
|
// Determine coordinates
|
||||||
SizeF textsize = g.MeasureString(displaytext, this.ListView.Font, bounds.Width * 2);
|
SizeF textsize = g.MeasureString(Text, this.ListView.Font, bounds.Width * 2);
|
||||||
Rectangle imagerect = new Rectangle(bounds.Left + ((bounds.Width - General.Map.Data.Previews.MaxImageWidth) >> 1),
|
Rectangle imagerect = new Rectangle(bounds.Left + ((bounds.Width - General.Map.Data.Previews.MaxImageWidth) >> 1),
|
||||||
bounds.Top + ((bounds.Height - General.Map.Data.Previews.MaxImageHeight - (int)textsize.Height) >> 1),
|
bounds.Top + ((bounds.Height - General.Map.Data.Previews.MaxImageHeight - (int)textsize.Height) >> 1),
|
||||||
General.Map.Data.Previews.MaxImageWidth, General.Map.Data.Previews.MaxImageHeight);
|
General.Map.Data.Previews.MaxImageWidth, General.Map.Data.Previews.MaxImageHeight);
|
||||||
|
@ -130,7 +124,22 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Draw!
|
// Draw!
|
||||||
g.FillRectangle(backcolor, bounds);
|
g.FillRectangle(backcolor, bounds);
|
||||||
icon.DrawPreview(g, imagerect.Location);
|
icon.DrawPreview(g, imagerect.Location);
|
||||||
g.DrawString(displaytext, this.ListView.Font, forecolor, textpos, format);
|
g.DrawString(Text, this.ListView.Font, forecolor, textpos, format);
|
||||||
|
|
||||||
|
//mxd. Draw size label?
|
||||||
|
if (ImageBrowserControl.ShowTextureSizes && !string.IsNullOrEmpty(imagesize))
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
Font sizefont = new Font(this.ListView.Font.FontFamily, this.ListView.Font.SizeInPoints - 1);
|
||||||
|
textsize = g.MeasureString(imagesize, sizefont, bounds.Width * 2);
|
||||||
|
textpos = new PointF(bounds.Left + textsize.Width / 2, bounds.Top + 1);
|
||||||
|
imagerect = new Rectangle(bounds.Left + 1, bounds.Top + 1, (int)textsize.Width, (int)textsize.Height);
|
||||||
|
SolidBrush labelbg = new SolidBrush(Color.FromArgb(196, base.ListView.BackColor));
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
g.FillRectangle(labelbg, imagerect);
|
||||||
|
g.DrawString(imagesize, sizefont, new SolidBrush(base.ListView.ForeColor), textpos, format);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This brightens or darkens a color
|
// This brightens or darkens a color
|
||||||
|
@ -153,6 +162,14 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
if(v < 0f) return 0f; else if(v > 1f) return 1f; else return v;
|
if(v < 0f) return 0f; else if(v > 1f) return 1f; else return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private void UpdateName()
|
||||||
|
{
|
||||||
|
Text = (showfullname ? icon.DisplayName : icon.ShortName);
|
||||||
|
if(General.Settings.ShowTextureSizes && icon.IsPreviewLoaded)
|
||||||
|
imagesize = icon.ScaledWidth + "x" + icon.ScaledHeight;
|
||||||
|
}
|
||||||
|
|
||||||
// Comparer
|
// Comparer
|
||||||
public int CompareTo(ImageBrowserItem other)
|
public int CompareTo(ImageBrowserItem other)
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,10 +32,11 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
this.preview = new System.Windows.Forms.Panel();
|
this.preview = new System.Windows.Forms.Panel();
|
||||||
this.labelSize = new System.Windows.Forms.Label();
|
this.labelSize = new System.Windows.Forms.Label();
|
||||||
this.imagebox = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
|
|
||||||
this.timer = new System.Windows.Forms.Timer(this.components);
|
this.timer = new System.Windows.Forms.Timer(this.components);
|
||||||
this.tooltip = new System.Windows.Forms.ToolTip(this.components);
|
this.tooltip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.togglefullname = new System.Windows.Forms.Button();
|
||||||
this.name = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
|
this.name = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
|
||||||
|
this.imagebox = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
|
||||||
this.preview.SuspendLayout();
|
this.preview.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.imagebox)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.imagebox)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
|
@ -45,6 +46,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.preview.BackColor = System.Drawing.SystemColors.AppWorkspace;
|
this.preview.BackColor = System.Drawing.SystemColors.AppWorkspace;
|
||||||
this.preview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
this.preview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||||
this.preview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.preview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.preview.Controls.Add(this.togglefullname);
|
||||||
this.preview.Controls.Add(this.labelSize);
|
this.preview.Controls.Add(this.labelSize);
|
||||||
this.preview.Controls.Add(this.imagebox);
|
this.preview.Controls.Add(this.imagebox);
|
||||||
this.preview.Location = new System.Drawing.Point(0, 0);
|
this.preview.Location = new System.Drawing.Point(0, 0);
|
||||||
|
@ -66,6 +68,33 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.labelSize.Text = "128x128";
|
this.labelSize.Text = "128x128";
|
||||||
this.labelSize.Visible = false;
|
this.labelSize.Visible = false;
|
||||||
//
|
//
|
||||||
|
// timer
|
||||||
|
//
|
||||||
|
this.timer.Tick += new System.EventHandler(this.timer_Tick);
|
||||||
|
//
|
||||||
|
// togglefullname
|
||||||
|
//
|
||||||
|
this.togglefullname.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.togglefullname.Image = global::CodeImp.DoomBuilder.Properties.Resources.Collapse;
|
||||||
|
this.togglefullname.Location = new System.Drawing.Point(43, 35);
|
||||||
|
this.togglefullname.Name = "togglefullname";
|
||||||
|
this.togglefullname.Size = new System.Drawing.Size(20, 20);
|
||||||
|
this.togglefullname.TabIndex = 3;
|
||||||
|
this.togglefullname.UseVisualStyleBackColor = false;
|
||||||
|
this.togglefullname.Visible = false;
|
||||||
|
this.togglefullname.Click += new System.EventHandler(this.togglefullname_Click);
|
||||||
|
//
|
||||||
|
// name
|
||||||
|
//
|
||||||
|
this.name.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
|
||||||
|
this.name.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
|
||||||
|
this.name.Location = new System.Drawing.Point(0, 64);
|
||||||
|
this.name.MaxLength = 8;
|
||||||
|
this.name.Name = "name";
|
||||||
|
this.name.Size = new System.Drawing.Size(68, 20);
|
||||||
|
this.name.TabIndex = 2;
|
||||||
|
this.name.TextChanged += new System.EventHandler(this.name_TextChanged);
|
||||||
|
//
|
||||||
// imagebox
|
// imagebox
|
||||||
//
|
//
|
||||||
this.imagebox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
this.imagebox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||||
|
@ -86,21 +115,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.imagebox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.preview_MouseDown);
|
this.imagebox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.preview_MouseDown);
|
||||||
this.imagebox.MouseEnter += new System.EventHandler(this.preview_MouseEnter);
|
this.imagebox.MouseEnter += new System.EventHandler(this.preview_MouseEnter);
|
||||||
//
|
//
|
||||||
// timer
|
|
||||||
//
|
|
||||||
this.timer.Tick += new System.EventHandler(this.timer_Tick);
|
|
||||||
//
|
|
||||||
// name
|
|
||||||
//
|
|
||||||
this.name.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
|
|
||||||
this.name.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
|
|
||||||
this.name.Location = new System.Drawing.Point(0, 64);
|
|
||||||
this.name.MaxLength = 8;
|
|
||||||
this.name.Name = "name";
|
|
||||||
this.name.Size = new System.Drawing.Size(68, 20);
|
|
||||||
this.name.TabIndex = 2;
|
|
||||||
this.name.TextChanged += new System.EventHandler(this.name_TextChanged);
|
|
||||||
//
|
|
||||||
// ImageSelectorControl
|
// ImageSelectorControl
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
@ -128,6 +142,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
protected System.Windows.Forms.Timer timer;
|
protected System.Windows.Forms.Timer timer;
|
||||||
private System.Windows.Forms.ToolTip tooltip;
|
private System.Windows.Forms.ToolTip tooltip;
|
||||||
private ConfigurablePictureBox imagebox;
|
private ConfigurablePictureBox imagebox;
|
||||||
|
private System.Windows.Forms.Button togglefullname;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.Data;
|
||||||
using SlimDX;
|
using SlimDX;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -37,6 +38,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
private Bitmap bmp;
|
private Bitmap bmp;
|
||||||
private MouseButtons button;
|
private MouseButtons button;
|
||||||
|
private ImageData image; //mxd
|
||||||
private string previousImageName; //mxd
|
private string previousImageName; //mxd
|
||||||
protected bool multipletextures; //mxd
|
protected bool multipletextures; //mxd
|
||||||
protected bool usepreviews = true; //mxd
|
protected bool usepreviews = true; //mxd
|
||||||
|
@ -83,6 +85,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
preview.Height = this.ClientSize.Height - name.Height - 4;
|
preview.Height = this.ClientSize.Height - name.Height - 4;
|
||||||
name.Width = this.ClientSize.Width;
|
name.Width = this.ClientSize.Width;
|
||||||
name.Top = this.ClientSize.Height - name.Height;
|
name.Top = this.ClientSize.Height - name.Height;
|
||||||
|
togglefullname.Left = preview.Right - togglefullname.Width - 1; //mxd
|
||||||
|
togglefullname.Top = preview.Bottom - togglefullname.Height - 1; //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
// Layout change
|
// Layout change
|
||||||
|
@ -148,6 +152,16 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
labelSize.Visible = !(!General.Settings.ShowTextureSizes || !this.Enabled || string.IsNullOrEmpty(labelSize.Text));
|
labelSize.Visible = !(!General.Settings.ShowTextureSizes || !this.Enabled || string.IsNullOrEmpty(labelSize.Text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private void togglefullname_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Toggle between short and full name
|
||||||
|
name.Text = (name.Text == image.ShortName ? image.Name : image.ShortName);
|
||||||
|
|
||||||
|
// Update icon and tooltip
|
||||||
|
UpdateToggleImageNameButton(image);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -200,6 +214,31 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// This must show the image browser and return the selected texture name
|
// This must show the image browser and return the selected texture name
|
||||||
protected abstract string BrowseImage(string imagename);
|
protected abstract string BrowseImage(string imagename);
|
||||||
|
|
||||||
|
protected void UpdateToggleImageNameButton(ImageData image)
|
||||||
|
{
|
||||||
|
this.image = image;
|
||||||
|
|
||||||
|
// Update visibility
|
||||||
|
if(!General.Map.Config.UseLongTextureNames || image == null || !image.HasLongName)
|
||||||
|
{
|
||||||
|
togglefullname.Visible = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update icon and tooltip
|
||||||
|
togglefullname.Visible = true;
|
||||||
|
if (image.ShortName == name.Text)
|
||||||
|
{
|
||||||
|
togglefullname.Image = Properties.Resources.Expand;
|
||||||
|
tooltip.SetToolTip(togglefullname, "Switch to full name");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
togglefullname.Image = Properties.Resources.Collapse;
|
||||||
|
tooltip.SetToolTip(togglefullname, "Switch to short name");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This determines the result value
|
// This determines the result value
|
||||||
public string GetResult(string original)
|
public string GetResult(string original)
|
||||||
{
|
{
|
||||||
|
|
811
Source/Core/Controls/LinedefInfoPanel.Designer.cs
generated
811
Source/Core/Controls/LinedefInfoPanel.Designer.cs
generated
File diff suppressed because it is too large
Load diff
|
@ -18,7 +18,9 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.GZBuilder.Tools;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
using CodeImp.DoomBuilder.Types;
|
using CodeImp.DoomBuilder.Types;
|
||||||
|
@ -31,11 +33,9 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
internal partial class LinedefInfoPanel : UserControl
|
internal partial class LinedefInfoPanel : UserControl
|
||||||
{
|
{
|
||||||
private int hexenformatwidth;
|
private readonly int hexenformatwidth;
|
||||||
private int doomformatwidth;
|
private readonly int doomformatwidth;
|
||||||
private List<UniversalFieldInfo> fieldInfos;
|
private readonly int[] labelPositionsY = new[] { 39, 58, 77 }; //mxd
|
||||||
private int[] labelPositionsY = new[] { 39, 58, 77 }; //mxd
|
|
||||||
private const int defaultPanelWidth = 270; //mxd
|
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefInfoPanel()
|
public LinedefInfoPanel()
|
||||||
|
@ -46,17 +46,21 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Hide stuff when in Doom format
|
// Hide stuff when in Doom format
|
||||||
hexenformatwidth = infopanel.Width;
|
hexenformatwidth = infopanel.Width;
|
||||||
doomformatwidth = infopanel.Width - 190;
|
doomformatwidth = infopanel.Width - 190;
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
labelTextureFrontTop.BackColor = Color.FromArgb(128, labelTextureFrontTop.BackColor);
|
||||||
|
labelTextureFrontMid.BackColor = Color.FromArgb(128, labelTextureFrontMid.BackColor);
|
||||||
|
labelTextureFrontBottom.BackColor = Color.FromArgb(128, labelTextureFrontBottom.BackColor);
|
||||||
|
|
||||||
|
labelTextureBackTop.BackColor = Color.FromArgb(128, labelTextureBackTop.BackColor);
|
||||||
|
labelTextureBackMid.BackColor = Color.FromArgb(128, labelTextureBackMid.BackColor);
|
||||||
|
labelTextureBackBottom.BackColor = Color.FromArgb(128, labelTextureBackBottom.BackColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This shows the info
|
// This shows the info
|
||||||
public void ShowInfo(Linedef l)
|
public void ShowInfo(Linedef l)
|
||||||
{
|
{
|
||||||
bool upperunpegged, lowerunpegged;
|
|
||||||
string peggedness;
|
string peggedness;
|
||||||
|
|
||||||
//mxd
|
|
||||||
if (General.Map.UDMF && fieldInfos == null)
|
|
||||||
fieldInfos = General.Map.Config.SidedefFields;
|
|
||||||
|
|
||||||
// Show/hide stuff depending on format
|
// Show/hide stuff depending on format
|
||||||
if(!General.Map.FormatInterface.HasActionArgs)
|
if(!General.Map.FormatInterface.HasActionArgs)
|
||||||
|
@ -108,6 +112,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
activation.Top = labelPositionsY[0];
|
activation.Top = labelPositionsY[0];
|
||||||
activationlabel.Top = labelPositionsY[0];
|
activationlabel.Top = labelPositionsY[0];
|
||||||
|
activation.Enabled = (l.Activate != 0); //mxd
|
||||||
|
activationlabel.Enabled = (l.Activate != 0); //mxd
|
||||||
unpegged.Top = labelPositionsY[0];
|
unpegged.Top = labelPositionsY[0];
|
||||||
peglabel.Top = labelPositionsY[0];
|
peglabel.Top = labelPositionsY[0];
|
||||||
|
|
||||||
|
@ -130,6 +136,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
//set tag
|
//set tag
|
||||||
tag.Text = l.Tag + (General.Map.Options.TagLabels.ContainsKey(l.Tag) ? " (" + General.Map.Options.TagLabels[l.Tag] + ")" : string.Empty);
|
tag.Text = l.Tag + (General.Map.Options.TagLabels.ContainsKey(l.Tag) ? " (" + General.Map.Options.TagLabels[l.Tag] + ")" : string.Empty);
|
||||||
|
tag.Enabled = (l.Tag != 0);
|
||||||
|
taglabel.Enabled = (l.Tag != 0);
|
||||||
|
|
||||||
length.Top = labelPositionsY[0];
|
length.Top = labelPositionsY[0];
|
||||||
lengthlabel.Top = labelPositionsY[0];
|
lengthlabel.Top = labelPositionsY[0];
|
||||||
|
@ -151,8 +159,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
LinedefActionInfo act = General.Map.Config.GetLinedefActionInfo(l.Action);
|
LinedefActionInfo act = General.Map.Config.GetLinedefActionInfo(l.Action);
|
||||||
|
|
||||||
// Determine peggedness
|
// Determine peggedness
|
||||||
upperunpegged = l.IsFlagSet(General.Map.Config.UpperUnpeggedFlag);
|
bool upperunpegged = l.IsFlagSet(General.Map.Config.UpperUnpeggedFlag);
|
||||||
lowerunpegged = l.IsFlagSet(General.Map.Config.LowerUnpeggedFlag);
|
bool lowerunpegged = l.IsFlagSet(General.Map.Config.LowerUnpeggedFlag);
|
||||||
if(upperunpegged && lowerunpegged)
|
if(upperunpegged && lowerunpegged)
|
||||||
peggedness = "Upper & Lower";
|
peggedness = "Upper & Lower";
|
||||||
else if(upperunpegged)
|
else if(upperunpegged)
|
||||||
|
@ -168,6 +176,8 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
length.Text = l.Length.ToString("0.##");
|
length.Text = l.Length.ToString("0.##");
|
||||||
angle.Text = l.AngleDeg + "\u00B0";
|
angle.Text = l.AngleDeg + "\u00B0";
|
||||||
unpegged.Text = peggedness;
|
unpegged.Text = peggedness;
|
||||||
|
action.Enabled = (act.Index != 0);
|
||||||
|
actionlabel.Enabled = (act.Index != 0);
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
bool hasArg0Str = General.Map.UDMF && Array.IndexOf(GZGeneral.ACS_SPECIALS, l.Action) != -1 && l.Fields.ContainsKey("arg0str");
|
bool hasArg0Str = General.Map.UDMF && Array.IndexOf(GZGeneral.ACS_SPECIALS, l.Action) != -1 && l.Fields.ContainsKey("arg0str");
|
||||||
|
@ -193,65 +203,61 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
if (hasArg0Str)
|
if (hasArg0Str)
|
||||||
arg1.Text = '"' + l.Fields["arg0str"].Value.ToString() + '"';
|
arg1.Text = '"' + l.Fields["arg0str"].Value.ToString() + '"';
|
||||||
else
|
else
|
||||||
setArgumentText(act.Args[0], arg1, l.Args[0]);
|
SetArgumentText(act.Args[0], arg1, l.Args[0]);
|
||||||
setArgumentText(act.Args[1], arg2, l.Args[1]);
|
SetArgumentText(act.Args[1], arg2, l.Args[1]);
|
||||||
setArgumentText(act.Args[2], arg3, l.Args[2]);
|
SetArgumentText(act.Args[2], arg3, l.Args[2]);
|
||||||
setArgumentText(act.Args[3], arg4, l.Args[3]);
|
SetArgumentText(act.Args[3], arg4, l.Args[3]);
|
||||||
setArgumentText(act.Args[4], arg5, l.Args[4]);
|
SetArgumentText(act.Args[4], arg5, l.Args[4]);
|
||||||
|
|
||||||
// Front side available?
|
// Front side available?
|
||||||
if(l.Front != null)
|
if(l.Front != null)
|
||||||
{
|
{
|
||||||
int addedWidth = 0; //mxd
|
//mxd. Extended info shown?
|
||||||
|
bool hasTopFields = false;
|
||||||
|
bool hasMiddleFields = false;
|
||||||
|
bool hasBottomFields = false;
|
||||||
|
|
||||||
// Show sidedef info
|
// Show sidedef info
|
||||||
frontpanel.Visible = true; //mxd
|
frontpanel.Visible = true; //mxd
|
||||||
|
|
||||||
frontpanel.Text = " Front Sidedef " + l.Front.Index;
|
frontpanel.Text = " Front Sidedef " + l.Front.Index;
|
||||||
frontsector.Text = " Sector " + l.Front.Sector.Index;
|
|
||||||
frontsector.Visible = true;
|
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if(General.Map.UDMF)
|
if(General.Map.UDMF)
|
||||||
{
|
{
|
||||||
//light
|
//light
|
||||||
frontoffsetlabel.Text = "Front light:";
|
frontoffsetlabel.Text = "Front light:";
|
||||||
setUDMFLight(l.Front, frontoffsetlabel, frontoffset);
|
SetUDMFLight(l.Front, frontoffsetlabel, frontoffset);
|
||||||
|
|
||||||
//global offset
|
//global offset, sector index
|
||||||
frontpanel.Text += ". Offset: " + l.Front.OffsetX + ", " + l.Front.OffsetY;
|
frontpanel.Text += ". Offset " + l.Front.OffsetX + ", " + l.Front.OffsetY + ". Sector " + l.Front.Sector.Index + " ";
|
||||||
|
|
||||||
bool hasTopFields = false;
|
|
||||||
bool hasMiddleFields = false;
|
|
||||||
bool hasBottomFields = false;
|
|
||||||
|
|
||||||
//sidedef top
|
//sidedef top
|
||||||
if(checkPairedUDMFFields(l.Front.Fields, "offsetx_top", "offsety_top", frontTopUDMFOffsetLabel, frontTopUDMFOffset))
|
hasTopFields = SetPairedUDMFFieldsLabel(l.Front.Fields, "offsetx_top", "offsety_top", 0.0f, frontTopUDMFOffsetLabel, frontTopUDMFOffset);
|
||||||
hasTopFields = true;
|
hasTopFields |= SetPairedUDMFFieldsLabel(l.Front.Fields, "scalex_top", "scaley_top", 1.0f, frontTopUDMFScaleLabel, frontTopUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Front.Fields, "scalex_top", "scaley_top", frontTopUDMFScaleLabel, frontTopUDMFScale))
|
|
||||||
hasTopFields = true;
|
|
||||||
|
|
||||||
//sidedef middle
|
//sidedef middle
|
||||||
if (checkPairedUDMFFields(l.Front.Fields, "offsetx_mid", "offsety_mid", frontMidUDMFOffsetLabel, frontMidUDMFOffset))
|
hasMiddleFields = SetPairedUDMFFieldsLabel(l.Front.Fields, "offsetx_mid", "offsety_mid", 0.0f, frontMidUDMFOffsetLabel, frontMidUDMFOffset);
|
||||||
hasMiddleFields = true;
|
hasMiddleFields |= SetPairedUDMFFieldsLabel(l.Front.Fields, "scalex_mid", "scaley_mid", 1.0f, frontMidUDMFScaleLabel, frontMidUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Front.Fields, "scalex_mid", "scaley_mid", frontMidUDMFScaleLabel, frontMidUDMFScale))
|
|
||||||
hasMiddleFields = true;
|
|
||||||
|
|
||||||
//sidedef bottom
|
//sidedef bottom
|
||||||
if (checkPairedUDMFFields(l.Front.Fields, "offsetx_bottom", "offsety_bottom", frontBottomUDMFOffsetLabel, frontBottomUDMFOffset))
|
hasBottomFields = SetPairedUDMFFieldsLabel(l.Front.Fields, "offsetx_bottom", "offsety_bottom", 0.0f, frontBottomUDMFOffsetLabel, frontBottomUDMFOffset);
|
||||||
hasBottomFields = true;
|
hasBottomFields |= SetPairedUDMFFieldsLabel(l.Front.Fields, "scalex_bottom", "scaley_bottom", 1.0f, frontBottomUDMFScaleLabel, frontBottomUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Front.Fields, "scalex_bottom", "scaley_bottom", frontBottomUDMFScaleLabel, frontBottomUDMFScale))
|
|
||||||
hasBottomFields = true;
|
|
||||||
|
|
||||||
//visibility
|
//visibility
|
||||||
panelUDMFFrontTop.Visible = hasTopFields;
|
frontTopUDMFOffset.Visible = hasTopFields;
|
||||||
panelUDMFFrontMid.Visible = hasMiddleFields;
|
frontTopUDMFOffsetLabel.Visible = hasTopFields;
|
||||||
panelUDMFFrontBottom.Visible = hasBottomFields;
|
frontTopUDMFScale.Visible = hasTopFields;
|
||||||
|
frontTopUDMFScaleLabel.Visible = hasTopFields;
|
||||||
|
|
||||||
//size
|
frontMidUDMFOffset.Visible = hasMiddleFields;
|
||||||
if(hasTopFields) addedWidth = 64;
|
frontMidUDMFOffsetLabel.Visible = hasMiddleFields;
|
||||||
if(hasMiddleFields) addedWidth += 64;
|
frontMidUDMFScale.Visible = hasMiddleFields;
|
||||||
if(hasBottomFields) addedWidth += 64;
|
frontMidUDMFScaleLabel.Visible = hasMiddleFields;
|
||||||
|
|
||||||
|
frontBottomUDMFOffset.Visible = hasBottomFields;
|
||||||
|
frontBottomUDMFOffsetLabel.Visible = hasBottomFields;
|
||||||
|
frontBottomUDMFScale.Visible = hasBottomFields;
|
||||||
|
frontBottomUDMFScaleLabel.Visible = hasBottomFields;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -260,22 +266,26 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
frontoffsetlabel.Enabled = true;
|
frontoffsetlabel.Enabled = true;
|
||||||
frontoffset.Enabled = true;
|
frontoffset.Enabled = true;
|
||||||
|
|
||||||
panelUDMFFrontTop.Visible = false;
|
//mxd. Sector index
|
||||||
panelUDMFFrontMid.Visible = false;
|
frontpanel.Text += ". Sector " + l.Front.Sector.Index + " ";
|
||||||
panelUDMFFrontBottom.Visible = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd. Set texture names, update panel sizes
|
||||||
|
UpdateTexturePanel(panelFrontTop, l.Front.HighTexture, fronthighname, labelTextureFrontTop,
|
||||||
|
Math.Max(frontTopUDMFOffset.Right, frontTopUDMFScale.Right) + 4, fronthightex,
|
||||||
|
frontTopUDMFOffsetLabel.Left, hasTopFields, l.Front.HighRequired());
|
||||||
|
|
||||||
|
UpdateTexturePanel(panelFrontMid, l.Front.MiddleTexture, frontmidname, labelTextureFrontMid,
|
||||||
|
Math.Max(frontMidUDMFOffset.Right, frontMidUDMFScale.Right) + 4, frontmidtex,
|
||||||
|
frontMidUDMFOffsetLabel.Left, hasMiddleFields, l.Front.MiddleRequired());
|
||||||
|
|
||||||
|
UpdateTexturePanel(panelFrontLow, l.Front.LowTexture, frontlowname, labelTextureFrontBottom,
|
||||||
|
Math.Max(frontBottomUDMFOffset.Right, frontBottomUDMFScale.Right) + 4, frontlowtex,
|
||||||
|
frontBottomUDMFOffsetLabel.Left, hasBottomFields, l.Front.LowRequired());
|
||||||
|
|
||||||
//mxd. Resize panel
|
//mxd. Resize panel
|
||||||
frontpanel.Width = defaultPanelWidth + addedWidth + 12;
|
flowLayoutPanelFront.Width = panelFrontLow.Right;
|
||||||
flowLayoutPanelFront.Width = defaultPanelWidth + addedWidth;
|
frontpanel.Width = flowLayoutPanelFront.Width + flowLayoutPanelFront.Left * 2 - 4;
|
||||||
|
|
||||||
// Show textures
|
|
||||||
DisplaySidedefTexture(fronthightex, fronthighname, labelTextureFrontTop, l.Front.HighTexture, l.Front.HighRequired());
|
|
||||||
DisplaySidedefTexture(frontmidtex, frontmidname, labelTextureFrontMid, l.Front.MiddleTexture, l.Front.MiddleRequired());
|
|
||||||
DisplaySidedefTexture(frontlowtex, frontlowname, labelTextureFrontBottom, l.Front.LowTexture, l.Front.LowRequired());
|
|
||||||
|
|
||||||
//mxd. Position label
|
|
||||||
frontsector.Left = frontpanel.Width - frontsector.Width - 12;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -304,76 +314,80 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Back size available?
|
// Back size available?
|
||||||
if(l.Back != null)
|
if(l.Back != null)
|
||||||
{
|
{
|
||||||
int addedWidth = 0; //mxd
|
//mxd. Extended info shown?
|
||||||
|
bool hasTopFields = false;
|
||||||
|
bool hasMiddleFields = false;
|
||||||
|
bool hasBottomFields = false;
|
||||||
|
|
||||||
// Show sidedef info
|
// Show sidedef info
|
||||||
backpanel.Visible = true; //mxd
|
backpanel.Visible = true; //mxd
|
||||||
backpanel.Text = " Back Sidedef " + l.Back.Index;
|
backpanel.Text = " Back Sidedef " + l.Back.Index;
|
||||||
backsector.Text = " Sector " + l.Back.Sector.Index;
|
|
||||||
backsector.Visible = true;
|
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if(General.Map.UDMF) {
|
if(General.Map.UDMF)
|
||||||
|
{
|
||||||
//light
|
//light
|
||||||
backoffsetlabel.Text = "Back light:";
|
backoffsetlabel.Text = "Back light:";
|
||||||
setUDMFLight(l.Back, backoffsetlabel, backoffset);
|
SetUDMFLight(l.Back, backoffsetlabel, backoffset);
|
||||||
|
|
||||||
//global offset
|
//global offset, sector index
|
||||||
backpanel.Text += ". Offset: " + l.Back.OffsetX + ", " + l.Back.OffsetY;
|
backpanel.Text += ". Offset " + l.Back.OffsetX + ", " + l.Back.OffsetY + ". Sector " + l.Back.Sector.Index + " ";
|
||||||
|
|
||||||
bool hasTopFields = false;
|
|
||||||
bool hasMiddleFields = false;
|
|
||||||
bool hasBottomFields = false;
|
|
||||||
|
|
||||||
//sidedef top
|
//sidedef top
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "offsetx_top", "offsety_top", backTopUDMFOffsetLabel, backTopUDMFOffset))
|
hasTopFields = SetPairedUDMFFieldsLabel(l.Back.Fields, "offsetx_top", "offsety_top", 0f, backTopUDMFOffsetLabel, backTopUDMFOffset);
|
||||||
hasTopFields = true;
|
hasTopFields |= SetPairedUDMFFieldsLabel(l.Back.Fields, "scalex_top", "scaley_top", 1.0f, backTopUDMFScaleLabel, backTopUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "scalex_top", "scaley_top", backTopUDMFScaleLabel, backTopUDMFScale))
|
|
||||||
hasTopFields = true;
|
|
||||||
|
|
||||||
//sidedef middle
|
//sidedef middle
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "offsetx_mid", "offsety_mid", backMidUDMFOffsetLabel, backMidUDMFOffset))
|
hasMiddleFields = SetPairedUDMFFieldsLabel(l.Back.Fields, "offsetx_mid", "offsety_mid", 0f, backMidUDMFOffsetLabel, backMidUDMFOffset);
|
||||||
hasMiddleFields = true;
|
hasMiddleFields |= SetPairedUDMFFieldsLabel(l.Back.Fields, "scalex_mid", "scaley_mid", 1.0f, backMidUDMFScaleLabel, backMidUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "scalex_mid", "scaley_mid", backMidUDMFScaleLabel, backMidUDMFScale))
|
|
||||||
hasMiddleFields = true;
|
|
||||||
|
|
||||||
//sidedef bottom
|
//sidedef bottom
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "offsetx_bottom", "offsety_bottom", backBottomUDMFOffsetLabel, backBottomUDMFOffset))
|
hasBottomFields = SetPairedUDMFFieldsLabel(l.Back.Fields, "offsetx_bottom", "offsety_bottom", 0f, backBottomUDMFOffsetLabel, backBottomUDMFOffset);
|
||||||
hasBottomFields = true;
|
hasBottomFields |= SetPairedUDMFFieldsLabel(l.Back.Fields, "scalex_bottom", "scaley_bottom", 1.0f, backBottomUDMFScaleLabel, backBottomUDMFScale);
|
||||||
if (checkPairedUDMFFields(l.Back.Fields, "scalex_bottom", "scaley_bottom", backBottomUDMFScaleLabel, backBottomUDMFScale))
|
|
||||||
hasBottomFields = true;
|
|
||||||
|
|
||||||
//visibility
|
//visibility
|
||||||
panelUDMFBackTop.Visible = hasTopFields;
|
backTopUDMFOffset.Visible = hasTopFields;
|
||||||
panelUDMFBackMid.Visible = hasMiddleFields;
|
backTopUDMFOffsetLabel.Visible = hasTopFields;
|
||||||
panelUDMFBackBottom.Visible = hasBottomFields;
|
backTopUDMFScale.Visible = hasTopFields;
|
||||||
|
backTopUDMFScaleLabel.Visible = hasTopFields;
|
||||||
|
|
||||||
//size
|
backMidUDMFOffset.Visible = hasMiddleFields;
|
||||||
if(hasTopFields) addedWidth = 64;
|
backMidUDMFOffsetLabel.Visible = hasMiddleFields;
|
||||||
if(hasMiddleFields) addedWidth += 64;
|
backMidUDMFScale.Visible = hasMiddleFields;
|
||||||
if(hasBottomFields) addedWidth += 64;
|
backMidUDMFScaleLabel.Visible = hasMiddleFields;
|
||||||
} else {
|
|
||||||
|
backBottomUDMFOffset.Visible = hasBottomFields;
|
||||||
|
backBottomUDMFOffsetLabel.Visible = hasBottomFields;
|
||||||
|
backBottomUDMFScale.Visible = hasBottomFields;
|
||||||
|
backBottomUDMFScaleLabel.Visible = hasBottomFields;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
backoffsetlabel.Text = "Back offset:";
|
backoffsetlabel.Text = "Back offset:";
|
||||||
backoffset.Text = l.Back.OffsetX + ", " + l.Back.OffsetY;
|
backoffset.Text = l.Back.OffsetX + ", " + l.Back.OffsetY;
|
||||||
backoffsetlabel.Enabled = true;
|
backoffsetlabel.Enabled = true;
|
||||||
backoffset.Enabled = true;
|
backoffset.Enabled = true;
|
||||||
|
|
||||||
panelUDMFBackTop.Visible = false;
|
// Sector index
|
||||||
panelUDMFBackMid.Visible = false;
|
backpanel.Text += ". Sector " + l.Back.Sector.Index + " ";
|
||||||
panelUDMFBackBottom.Visible = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd. Set texture names, update panel sizes
|
||||||
|
UpdateTexturePanel(panelBackTop, l.Back.HighTexture, backhighname, labelTextureBackTop,
|
||||||
|
Math.Max(backTopUDMFOffset.Right, backTopUDMFScale.Right) + 4, backhightex,
|
||||||
|
backTopUDMFOffsetLabel.Left, hasTopFields, l.Back.HighRequired());
|
||||||
|
|
||||||
|
UpdateTexturePanel(panelBackMid, l.Back.MiddleTexture, backmidname, labelTextureBackMid,
|
||||||
|
Math.Max(backMidUDMFOffset.Right, backMidUDMFScale.Right) + 4, backmidtex,
|
||||||
|
backMidUDMFOffsetLabel.Left, hasMiddleFields, l.Back.MiddleRequired());
|
||||||
|
|
||||||
|
UpdateTexturePanel(panelBackLow, l.Back.LowTexture, backlowname, labelTextureBackBottom,
|
||||||
|
Math.Max(backBottomUDMFOffset.Right, backBottomUDMFScale.Right) + 4, backlowtex,
|
||||||
|
backBottomUDMFOffsetLabel.Left, hasBottomFields, l.Back.LowRequired());
|
||||||
|
|
||||||
//mxd. Resize panel
|
//mxd. Resize panel
|
||||||
backpanel.Width = defaultPanelWidth + addedWidth + 12;
|
flowLayoutPanelBack.Width = panelBackLow.Right;
|
||||||
flowLayoutPanelBack.Width = defaultPanelWidth + addedWidth;
|
backpanel.Width = flowLayoutPanelBack.Width + flowLayoutPanelBack.Left * 2 - 4;
|
||||||
|
|
||||||
// Show textures
|
|
||||||
DisplaySidedefTexture(backhightex, backhighname, labelTextureBackTop, l.Back.HighTexture, l.Back.HighRequired());
|
|
||||||
DisplaySidedefTexture(backmidtex, backmidname, labelTextureBackMid, l.Back.MiddleTexture, l.Back.MiddleRequired());
|
|
||||||
DisplaySidedefTexture(backlowtex, backlowname, labelTextureBackBottom, l.Back.LowTexture, l.Back.LowRequired());
|
|
||||||
|
|
||||||
//mxd. Position label
|
|
||||||
backsector.Left = backpanel.Width - backsector.Width - 12;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -437,35 +451,54 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.Update();
|
this.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
private static void UpdateTexturePanel(Panel panel, string texturename, Label texturenamelabel, Label sizelabel, int maxlabelright, Panel image, int sizeref, bool extendedinfoshown, bool required)
|
||||||
private bool checkPairedUDMFFields(UniFields fields, string paramX, string paramY, Label label, Label value)
|
|
||||||
{
|
{
|
||||||
float dx = getDefaultUDMFValue(paramX);
|
// Set texture name
|
||||||
float dy = getDefaultUDMFValue(paramY);
|
texturenamelabel.Text = texturename;
|
||||||
float x = dx;
|
|
||||||
float y = dy;
|
|
||||||
|
|
||||||
if(fields.ContainsKey(paramX))
|
// And image
|
||||||
x = (float)fields[paramX].Value;
|
DisplayTextureImage(image, sizelabel, texturename, required);
|
||||||
if(fields.ContainsKey(paramY))
|
|
||||||
y = (float)fields[paramY].Value;
|
//Reposition texture name label?
|
||||||
|
if(texturenamelabel.Width < image.Width + 2)
|
||||||
|
texturenamelabel.Location = new Point(image.Location.X + (image.Width - texturenamelabel.Width) / 2, texturenamelabel.Location.Y);
|
||||||
|
else
|
||||||
|
texturenamelabel.Location = new Point(image.Location.X, texturenamelabel.Location.Y);
|
||||||
|
|
||||||
if(x != dx || y != dy)
|
// Resize panel
|
||||||
{
|
if(!extendedinfoshown)
|
||||||
value.Text = String.Format("{0:0.##}", x) + ", " + String.Format("{0:0.##}", y);
|
panel.Width = Math.Max(texturenamelabel.Right + image.Location.X + 1, sizeref);
|
||||||
value.Enabled = true;
|
else
|
||||||
label.Enabled = true;
|
panel.Width = Math.Max(texturenamelabel.Right, maxlabelright) + image.Location.X;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
value.Text = "--, --";
|
|
||||||
value.Enabled = false;
|
|
||||||
label.Enabled = false;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
private static void setUDMFLight(Sidedef sd, Label label, Label value)
|
private static bool SetPairedUDMFFieldsLabel(UniFields fields, string paramX, string paramY, float defaultvalue, Label namelabel, Label valuelabel)
|
||||||
|
{
|
||||||
|
float x = UDMFTools.GetFloat(fields, paramX, defaultvalue);
|
||||||
|
float y = UDMFTools.GetFloat(fields, paramY, defaultvalue);
|
||||||
|
|
||||||
|
if(fields.ContainsKey(paramX)) x = (float)fields[paramX].Value;
|
||||||
|
if(fields.ContainsKey(paramY)) y = (float)fields[paramY].Value;
|
||||||
|
|
||||||
|
if(x != defaultvalue || y != defaultvalue)
|
||||||
|
{
|
||||||
|
valuelabel.Text = String.Format("{0:0.##}", x) + ", " + String.Format("{0:0.##}", y);
|
||||||
|
valuelabel.Enabled = true;
|
||||||
|
namelabel.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
valuelabel.Text = "--, --";
|
||||||
|
valuelabel.Enabled = false;
|
||||||
|
namelabel.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return valuelabel.Enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private static void SetUDMFLight(Sidedef sd, Label label, Label value)
|
||||||
{
|
{
|
||||||
if(sd.Fields.ContainsKey("light"))
|
if(sd.Fields.ContainsKey("light"))
|
||||||
{
|
{
|
||||||
|
@ -488,15 +521,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
private float getDefaultUDMFValue(string valueName)
|
private static void SetArgumentText(ArgumentInfo info, Label label, int value)
|
||||||
{
|
|
||||||
foreach (UniversalFieldInfo fi in fieldInfos)
|
|
||||||
if (fi.Name == valueName) return (float)fi.Default;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//mxd
|
|
||||||
private static void setArgumentText(ArgumentInfo info, Label label, int value)
|
|
||||||
{
|
{
|
||||||
TypeHandler th = General.Types.GetArgumentHandler(info);
|
TypeHandler th = General.Types.GetArgumentHandler(info);
|
||||||
th.SetValue(value);
|
th.SetValue(value);
|
||||||
|
@ -527,7 +552,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
|
|
||||||
// This shows a sidedef texture in a panel
|
// This shows a sidedef texture in a panel
|
||||||
private static void DisplaySidedefTexture(Panel panel, Label namelabel, Label sizelabel, string name, bool required)
|
private static void DisplayTextureImage(Panel panel, Label sizelabel, string name, bool required)
|
||||||
{
|
{
|
||||||
// Check if name is a "none" texture
|
// Check if name is a "none" texture
|
||||||
if((name.Length < 1) || (name == "-"))
|
if((name.Length < 1) || (name == "-"))
|
||||||
|
@ -539,16 +564,12 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
General.DisplayZoomedImage(panel, Properties.Resources.MissingTexture);
|
General.DisplayZoomedImage(panel, Properties.Resources.MissingTexture);
|
||||||
else
|
else
|
||||||
panel.BackgroundImage = null;
|
panel.BackgroundImage = null;
|
||||||
|
|
||||||
// Set texture name
|
|
||||||
namelabel.Text = "-";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//mxd
|
//mxd
|
||||||
ImageData texture = General.Map.Data.GetTextureImage(name);
|
ImageData texture = General.Map.Data.GetTextureImage(name);
|
||||||
bool unknowntexture = texture is UnknownImage;
|
if(General.Settings.ShowTextureSizes && texture.ImageState == ImageLoadState.Ready && !(texture is UnknownImage))
|
||||||
if(General.Settings.ShowTextureSizes && texture.ImageState == ImageLoadState.Ready && !unknowntexture)
|
|
||||||
{
|
{
|
||||||
sizelabel.Visible = true;
|
sizelabel.Visible = true;
|
||||||
sizelabel.Text = texture.ScaledWidth + "x" + texture.ScaledHeight;
|
sizelabel.Text = texture.ScaledWidth + "x" + texture.ScaledHeight;
|
||||||
|
@ -557,9 +578,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
sizelabel.Visible = false;
|
sizelabel.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set texture name
|
|
||||||
namelabel.Text = (unknowntexture ? name : texture.DisplayName);
|
|
||||||
|
|
||||||
// Set the image
|
// Set the image
|
||||||
General.DisplayZoomedImage(panel, texture.GetPreview());
|
General.DisplayZoomedImage(panel, texture.GetPreview());
|
||||||
|
|
|
@ -117,8 +117,47 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<metadata name="actionlabel.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="unpegged.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="peglabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arg5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arglbl5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arglbl4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arg4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arglbl3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arglbl2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arg3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arglbl1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arg2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="backoffset.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="arg1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="frontoffset.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="unpegged.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="unpegged.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
|
@ -162,10 +201,4 @@
|
||||||
<metadata name="frontoffset.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="frontoffset.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="frontsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>True</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="backsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>True</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
201
Source/Core/Controls/SectorInfoPanel.Designer.cs
generated
201
Source/Core/Controls/SectorInfoPanel.Designer.cs
generated
|
@ -30,10 +30,10 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
System.Windows.Forms.Label label13;
|
System.Windows.Forms.Label label13;
|
||||||
System.Windows.Forms.Label label5;
|
System.Windows.Forms.Label label5;
|
||||||
System.Windows.Forms.Label label4;
|
|
||||||
System.Windows.Forms.Label label3;
|
System.Windows.Forms.Label label3;
|
||||||
System.Windows.Forms.Label label2;
|
System.Windows.Forms.Label label2;
|
||||||
System.Windows.Forms.Label label1;
|
this.labelTag = new System.Windows.Forms.Label();
|
||||||
|
this.labelEffect = new System.Windows.Forms.Label();
|
||||||
this.ceilingLightLabel = new System.Windows.Forms.Label();
|
this.ceilingLightLabel = new System.Windows.Forms.Label();
|
||||||
this.ceilingScaleLabel = new System.Windows.Forms.Label();
|
this.ceilingScaleLabel = new System.Windows.Forms.Label();
|
||||||
this.ceilingAngleLabel = new System.Windows.Forms.Label();
|
this.ceilingAngleLabel = new System.Windows.Forms.Label();
|
||||||
|
@ -58,12 +58,10 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.ceilingAngle = new System.Windows.Forms.Label();
|
this.ceilingAngle = new System.Windows.Forms.Label();
|
||||||
this.ceilingOffset = new System.Windows.Forms.Label();
|
this.ceilingOffset = new System.Windows.Forms.Label();
|
||||||
this.ceilingpanel = new System.Windows.Forms.GroupBox();
|
this.ceilingpanel = new System.Windows.Forms.GroupBox();
|
||||||
this.ceilingInfo = new System.Windows.Forms.Panel();
|
|
||||||
this.ceilingname = new System.Windows.Forms.Label();
|
this.ceilingname = new System.Windows.Forms.Label();
|
||||||
this.ceilingtex = new System.Windows.Forms.Panel();
|
this.ceilingtex = new System.Windows.Forms.Panel();
|
||||||
this.labelCeilTextureSize = new System.Windows.Forms.Label();
|
this.labelCeilTextureSize = new System.Windows.Forms.Label();
|
||||||
this.floorpanel = new System.Windows.Forms.GroupBox();
|
this.floorpanel = new System.Windows.Forms.GroupBox();
|
||||||
this.floorInfo = new System.Windows.Forms.Panel();
|
|
||||||
this.floorLight = new System.Windows.Forms.Label();
|
this.floorLight = new System.Windows.Forms.Label();
|
||||||
this.floorScale = new System.Windows.Forms.Label();
|
this.floorScale = new System.Windows.Forms.Label();
|
||||||
this.floorOffset = new System.Windows.Forms.Label();
|
this.floorOffset = new System.Windows.Forms.Label();
|
||||||
|
@ -76,16 +74,12 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.flags = new System.Windows.Forms.ListView();
|
this.flags = new System.Windows.Forms.ListView();
|
||||||
label13 = new System.Windows.Forms.Label();
|
label13 = new System.Windows.Forms.Label();
|
||||||
label5 = new System.Windows.Forms.Label();
|
label5 = new System.Windows.Forms.Label();
|
||||||
label4 = new System.Windows.Forms.Label();
|
|
||||||
label3 = new System.Windows.Forms.Label();
|
label3 = new System.Windows.Forms.Label();
|
||||||
label2 = new System.Windows.Forms.Label();
|
label2 = new System.Windows.Forms.Label();
|
||||||
label1 = new System.Windows.Forms.Label();
|
|
||||||
this.sectorinfo.SuspendLayout();
|
this.sectorinfo.SuspendLayout();
|
||||||
this.ceilingpanel.SuspendLayout();
|
this.ceilingpanel.SuspendLayout();
|
||||||
this.ceilingInfo.SuspendLayout();
|
|
||||||
this.ceilingtex.SuspendLayout();
|
this.ceilingtex.SuspendLayout();
|
||||||
this.floorpanel.SuspendLayout();
|
this.floorpanel.SuspendLayout();
|
||||||
this.floorInfo.SuspendLayout();
|
|
||||||
this.floortex.SuspendLayout();
|
this.floortex.SuspendLayout();
|
||||||
this.flowLayoutPanel1.SuspendLayout();
|
this.flowLayoutPanel1.SuspendLayout();
|
||||||
this.flagsPanel.SuspendLayout();
|
this.flagsPanel.SuspendLayout();
|
||||||
|
@ -109,15 +103,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
label5.Text = "Height:";
|
label5.Text = "Height:";
|
||||||
label5.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
label5.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// label4
|
|
||||||
//
|
|
||||||
label4.Location = new System.Drawing.Point(8, 79);
|
|
||||||
label4.Name = "label4";
|
|
||||||
label4.Size = new System.Drawing.Size(44, 14);
|
|
||||||
label4.TabIndex = 4;
|
|
||||||
label4.Text = "Tag:";
|
|
||||||
label4.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
|
||||||
//
|
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
label3.Location = new System.Drawing.Point(8, 49);
|
label3.Location = new System.Drawing.Point(8, 49);
|
||||||
|
@ -136,18 +121,27 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
label2.Text = "Ceiling:";
|
label2.Text = "Ceiling:";
|
||||||
label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// label1
|
// labelTag
|
||||||
//
|
//
|
||||||
label1.Location = new System.Drawing.Point(8, 19);
|
this.labelTag.Location = new System.Drawing.Point(8, 79);
|
||||||
label1.Name = "label1";
|
this.labelTag.Name = "labelTag";
|
||||||
label1.Size = new System.Drawing.Size(44, 14);
|
this.labelTag.Size = new System.Drawing.Size(44, 14);
|
||||||
label1.TabIndex = 0;
|
this.labelTag.TabIndex = 4;
|
||||||
label1.Text = "Effect:";
|
this.labelTag.Text = "Tag:";
|
||||||
label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
this.labelTag.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
|
// labelEffect
|
||||||
|
//
|
||||||
|
this.labelEffect.Location = new System.Drawing.Point(8, 19);
|
||||||
|
this.labelEffect.Name = "labelEffect";
|
||||||
|
this.labelEffect.Size = new System.Drawing.Size(44, 14);
|
||||||
|
this.labelEffect.TabIndex = 0;
|
||||||
|
this.labelEffect.Text = "Effect:";
|
||||||
|
this.labelEffect.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// ceilingLightLabel
|
// ceilingLightLabel
|
||||||
//
|
//
|
||||||
this.ceilingLightLabel.Location = new System.Drawing.Point(3, 61);
|
this.ceilingLightLabel.Location = new System.Drawing.Point(77, 63);
|
||||||
this.ceilingLightLabel.Name = "ceilingLightLabel";
|
this.ceilingLightLabel.Name = "ceilingLightLabel";
|
||||||
this.ceilingLightLabel.Size = new System.Drawing.Size(45, 14);
|
this.ceilingLightLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.ceilingLightLabel.TabIndex = 27;
|
this.ceilingLightLabel.TabIndex = 27;
|
||||||
|
@ -156,7 +150,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// ceilingScaleLabel
|
// ceilingScaleLabel
|
||||||
//
|
//
|
||||||
this.ceilingScaleLabel.Location = new System.Drawing.Point(3, 43);
|
this.ceilingScaleLabel.Location = new System.Drawing.Point(77, 47);
|
||||||
this.ceilingScaleLabel.Name = "ceilingScaleLabel";
|
this.ceilingScaleLabel.Name = "ceilingScaleLabel";
|
||||||
this.ceilingScaleLabel.Size = new System.Drawing.Size(45, 14);
|
this.ceilingScaleLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.ceilingScaleLabel.TabIndex = 26;
|
this.ceilingScaleLabel.TabIndex = 26;
|
||||||
|
@ -165,7 +159,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// ceilingAngleLabel
|
// ceilingAngleLabel
|
||||||
//
|
//
|
||||||
this.ceilingAngleLabel.Location = new System.Drawing.Point(3, 25);
|
this.ceilingAngleLabel.Location = new System.Drawing.Point(77, 31);
|
||||||
this.ceilingAngleLabel.Name = "ceilingAngleLabel";
|
this.ceilingAngleLabel.Name = "ceilingAngleLabel";
|
||||||
this.ceilingAngleLabel.Size = new System.Drawing.Size(45, 14);
|
this.ceilingAngleLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.ceilingAngleLabel.TabIndex = 24;
|
this.ceilingAngleLabel.TabIndex = 24;
|
||||||
|
@ -174,7 +168,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// ceilingOffsetLabel
|
// ceilingOffsetLabel
|
||||||
//
|
//
|
||||||
this.ceilingOffsetLabel.Location = new System.Drawing.Point(3, 7);
|
this.ceilingOffsetLabel.Location = new System.Drawing.Point(77, 15);
|
||||||
this.ceilingOffsetLabel.Name = "ceilingOffsetLabel";
|
this.ceilingOffsetLabel.Name = "ceilingOffsetLabel";
|
||||||
this.ceilingOffsetLabel.Size = new System.Drawing.Size(45, 14);
|
this.ceilingOffsetLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.ceilingOffsetLabel.TabIndex = 22;
|
this.ceilingOffsetLabel.TabIndex = 22;
|
||||||
|
@ -183,7 +177,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// floorOffsetLabel
|
// floorOffsetLabel
|
||||||
//
|
//
|
||||||
this.floorOffsetLabel.Location = new System.Drawing.Point(3, 7);
|
this.floorOffsetLabel.Location = new System.Drawing.Point(77, 15);
|
||||||
this.floorOffsetLabel.Name = "floorOffsetLabel";
|
this.floorOffsetLabel.Name = "floorOffsetLabel";
|
||||||
this.floorOffsetLabel.Size = new System.Drawing.Size(45, 14);
|
this.floorOffsetLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.floorOffsetLabel.TabIndex = 22;
|
this.floorOffsetLabel.TabIndex = 22;
|
||||||
|
@ -192,7 +186,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// floorLightLabel
|
// floorLightLabel
|
||||||
//
|
//
|
||||||
this.floorLightLabel.Location = new System.Drawing.Point(3, 61);
|
this.floorLightLabel.Location = new System.Drawing.Point(77, 63);
|
||||||
this.floorLightLabel.Name = "floorLightLabel";
|
this.floorLightLabel.Name = "floorLightLabel";
|
||||||
this.floorLightLabel.Size = new System.Drawing.Size(45, 14);
|
this.floorLightLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.floorLightLabel.TabIndex = 27;
|
this.floorLightLabel.TabIndex = 27;
|
||||||
|
@ -201,7 +195,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// floorAngleLabel
|
// floorAngleLabel
|
||||||
//
|
//
|
||||||
this.floorAngleLabel.Location = new System.Drawing.Point(3, 25);
|
this.floorAngleLabel.Location = new System.Drawing.Point(77, 31);
|
||||||
this.floorAngleLabel.Name = "floorAngleLabel";
|
this.floorAngleLabel.Name = "floorAngleLabel";
|
||||||
this.floorAngleLabel.Size = new System.Drawing.Size(45, 14);
|
this.floorAngleLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.floorAngleLabel.TabIndex = 24;
|
this.floorAngleLabel.TabIndex = 24;
|
||||||
|
@ -210,7 +204,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// floorScaleLabel
|
// floorScaleLabel
|
||||||
//
|
//
|
||||||
this.floorScaleLabel.Location = new System.Drawing.Point(3, 43);
|
this.floorScaleLabel.Location = new System.Drawing.Point(77, 47);
|
||||||
this.floorScaleLabel.Name = "floorScaleLabel";
|
this.floorScaleLabel.Name = "floorScaleLabel";
|
||||||
this.floorScaleLabel.Size = new System.Drawing.Size(45, 14);
|
this.floorScaleLabel.Size = new System.Drawing.Size(45, 14);
|
||||||
this.floorScaleLabel.TabIndex = 26;
|
this.floorScaleLabel.TabIndex = 26;
|
||||||
|
@ -230,11 +224,11 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.sectorinfo.Controls.Add(this.tag);
|
this.sectorinfo.Controls.Add(this.tag);
|
||||||
this.sectorinfo.Controls.Add(this.floor);
|
this.sectorinfo.Controls.Add(this.floor);
|
||||||
this.sectorinfo.Controls.Add(this.ceiling);
|
this.sectorinfo.Controls.Add(this.ceiling);
|
||||||
this.sectorinfo.Controls.Add(label4);
|
this.sectorinfo.Controls.Add(this.labelTag);
|
||||||
this.sectorinfo.Controls.Add(label3);
|
this.sectorinfo.Controls.Add(label3);
|
||||||
this.sectorinfo.Controls.Add(label2);
|
this.sectorinfo.Controls.Add(label2);
|
||||||
this.sectorinfo.Controls.Add(this.effect);
|
this.sectorinfo.Controls.Add(this.effect);
|
||||||
this.sectorinfo.Controls.Add(label1);
|
this.sectorinfo.Controls.Add(this.labelEffect);
|
||||||
this.sectorinfo.Location = new System.Drawing.Point(0, 0);
|
this.sectorinfo.Location = new System.Drawing.Point(0, 0);
|
||||||
this.sectorinfo.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
|
this.sectorinfo.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
|
||||||
this.sectorinfo.Name = "sectorinfo";
|
this.sectorinfo.Name = "sectorinfo";
|
||||||
|
@ -328,39 +322,50 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// ceilingLight
|
// ceilingLight
|
||||||
//
|
//
|
||||||
this.ceilingLight.Location = new System.Drawing.Point(54, 61);
|
this.ceilingLight.AutoSize = true;
|
||||||
|
this.ceilingLight.Location = new System.Drawing.Point(124, 63);
|
||||||
this.ceilingLight.Name = "ceilingLight";
|
this.ceilingLight.Name = "ceilingLight";
|
||||||
this.ceilingLight.Size = new System.Drawing.Size(60, 14);
|
this.ceilingLight.Size = new System.Drawing.Size(15, 14);
|
||||||
this.ceilingLight.TabIndex = 29;
|
this.ceilingLight.TabIndex = 29;
|
||||||
this.ceilingLight.Text = "255 (abs.)";
|
this.ceilingLight.Text = "--";
|
||||||
//
|
//
|
||||||
// ceilingScale
|
// ceilingScale
|
||||||
//
|
//
|
||||||
this.ceilingScale.Location = new System.Drawing.Point(54, 43);
|
this.ceilingScale.AutoSize = true;
|
||||||
|
this.ceilingScale.Location = new System.Drawing.Point(124, 47);
|
||||||
this.ceilingScale.Name = "ceilingScale";
|
this.ceilingScale.Name = "ceilingScale";
|
||||||
this.ceilingScale.Size = new System.Drawing.Size(60, 14);
|
this.ceilingScale.Size = new System.Drawing.Size(29, 14);
|
||||||
this.ceilingScale.TabIndex = 28;
|
this.ceilingScale.TabIndex = 28;
|
||||||
this.ceilingScale.Text = "-1.0, -1.0";
|
this.ceilingScale.Text = "--, --";
|
||||||
//
|
//
|
||||||
// ceilingAngle
|
// ceilingAngle
|
||||||
//
|
//
|
||||||
this.ceilingAngle.Location = new System.Drawing.Point(54, 25);
|
this.ceilingAngle.AutoSize = true;
|
||||||
|
this.ceilingAngle.Location = new System.Drawing.Point(124, 31);
|
||||||
this.ceilingAngle.Name = "ceilingAngle";
|
this.ceilingAngle.Name = "ceilingAngle";
|
||||||
this.ceilingAngle.Size = new System.Drawing.Size(60, 14);
|
this.ceilingAngle.Size = new System.Drawing.Size(15, 14);
|
||||||
this.ceilingAngle.TabIndex = 25;
|
this.ceilingAngle.TabIndex = 25;
|
||||||
this.ceilingAngle.Text = "45";
|
this.ceilingAngle.Text = "--";
|
||||||
//
|
//
|
||||||
// ceilingOffset
|
// ceilingOffset
|
||||||
//
|
//
|
||||||
this.ceilingOffset.Location = new System.Drawing.Point(54, 7);
|
this.ceilingOffset.AutoSize = true;
|
||||||
|
this.ceilingOffset.Location = new System.Drawing.Point(124, 15);
|
||||||
this.ceilingOffset.Name = "ceilingOffset";
|
this.ceilingOffset.Name = "ceilingOffset";
|
||||||
this.ceilingOffset.Size = new System.Drawing.Size(60, 14);
|
this.ceilingOffset.Size = new System.Drawing.Size(29, 14);
|
||||||
this.ceilingOffset.TabIndex = 23;
|
this.ceilingOffset.TabIndex = 23;
|
||||||
this.ceilingOffset.Text = "-100, -100";
|
this.ceilingOffset.Text = "--, --";
|
||||||
//
|
//
|
||||||
// ceilingpanel
|
// ceilingpanel
|
||||||
//
|
//
|
||||||
this.ceilingpanel.Controls.Add(this.ceilingInfo);
|
this.ceilingpanel.Controls.Add(this.ceilingOffsetLabel);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingOffset);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingLight);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingAngleLabel);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingAngle);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingScaleLabel);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingScale);
|
||||||
|
this.ceilingpanel.Controls.Add(this.ceilingLightLabel);
|
||||||
this.ceilingpanel.Controls.Add(this.ceilingname);
|
this.ceilingpanel.Controls.Add(this.ceilingname);
|
||||||
this.ceilingpanel.Controls.Add(this.ceilingtex);
|
this.ceilingpanel.Controls.Add(this.ceilingtex);
|
||||||
this.ceilingpanel.Location = new System.Drawing.Point(506, 0);
|
this.ceilingpanel.Location = new System.Drawing.Point(506, 0);
|
||||||
|
@ -371,29 +376,14 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.ceilingpanel.TabStop = false;
|
this.ceilingpanel.TabStop = false;
|
||||||
this.ceilingpanel.Text = " Ceiling ";
|
this.ceilingpanel.Text = " Ceiling ";
|
||||||
//
|
//
|
||||||
// ceilingInfo
|
|
||||||
//
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingLight);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingOffsetLabel);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingScale);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingOffset);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingLightLabel);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingAngleLabel);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingScaleLabel);
|
|
||||||
this.ceilingInfo.Controls.Add(this.ceilingAngle);
|
|
||||||
this.ceilingInfo.Location = new System.Drawing.Point(80, 15);
|
|
||||||
this.ceilingInfo.Name = "ceilingInfo";
|
|
||||||
this.ceilingInfo.Size = new System.Drawing.Size(118, 80);
|
|
||||||
this.ceilingInfo.TabIndex = 2;
|
|
||||||
//
|
|
||||||
// ceilingname
|
// ceilingname
|
||||||
//
|
//
|
||||||
this.ceilingname.Location = new System.Drawing.Point(8, 80);
|
this.ceilingname.AutoSize = true;
|
||||||
|
this.ceilingname.Location = new System.Drawing.Point(6, 81);
|
||||||
this.ceilingname.Name = "ceilingname";
|
this.ceilingname.Name = "ceilingname";
|
||||||
this.ceilingname.Size = new System.Drawing.Size(68, 13);
|
this.ceilingname.Size = new System.Drawing.Size(68, 14);
|
||||||
this.ceilingname.TabIndex = 1;
|
this.ceilingname.TabIndex = 1;
|
||||||
this.ceilingname.Text = "BROWNHUG";
|
this.ceilingname.Text = "BROWNHUG";
|
||||||
this.ceilingname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
|
||||||
//
|
//
|
||||||
// ceilingtex
|
// ceilingtex
|
||||||
//
|
//
|
||||||
|
@ -401,9 +391,9 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.ceilingtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
this.ceilingtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||||
this.ceilingtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
this.ceilingtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
this.ceilingtex.Controls.Add(this.labelCeilTextureSize);
|
this.ceilingtex.Controls.Add(this.labelCeilTextureSize);
|
||||||
this.ceilingtex.Location = new System.Drawing.Point(8, 19);
|
this.ceilingtex.Location = new System.Drawing.Point(7, 14);
|
||||||
this.ceilingtex.Name = "ceilingtex";
|
this.ceilingtex.Name = "ceilingtex";
|
||||||
this.ceilingtex.Size = new System.Drawing.Size(68, 60);
|
this.ceilingtex.Size = new System.Drawing.Size(64, 64);
|
||||||
this.ceilingtex.TabIndex = 0;
|
this.ceilingtex.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// labelCeilTextureSize
|
// labelCeilTextureSize
|
||||||
|
@ -412,7 +402,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.labelCeilTextureSize.BackColor = System.Drawing.Color.Black;
|
this.labelCeilTextureSize.BackColor = System.Drawing.Color.Black;
|
||||||
this.labelCeilTextureSize.Font = new System.Drawing.Font("Arial", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.labelCeilTextureSize.Font = new System.Drawing.Font("Arial", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.labelCeilTextureSize.ForeColor = System.Drawing.Color.White;
|
this.labelCeilTextureSize.ForeColor = System.Drawing.Color.White;
|
||||||
this.labelCeilTextureSize.Location = new System.Drawing.Point(3, 1);
|
this.labelCeilTextureSize.Location = new System.Drawing.Point(1, 1);
|
||||||
this.labelCeilTextureSize.MaximumSize = new System.Drawing.Size(0, 13);
|
this.labelCeilTextureSize.MaximumSize = new System.Drawing.Size(0, 13);
|
||||||
this.labelCeilTextureSize.Name = "labelCeilTextureSize";
|
this.labelCeilTextureSize.Name = "labelCeilTextureSize";
|
||||||
this.labelCeilTextureSize.Size = new System.Drawing.Size(48, 13);
|
this.labelCeilTextureSize.Size = new System.Drawing.Size(48, 13);
|
||||||
|
@ -421,7 +411,14 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
//
|
//
|
||||||
// floorpanel
|
// floorpanel
|
||||||
//
|
//
|
||||||
this.floorpanel.Controls.Add(this.floorInfo);
|
this.floorpanel.Controls.Add(this.floorLight);
|
||||||
|
this.floorpanel.Controls.Add(this.floorOffsetLabel);
|
||||||
|
this.floorpanel.Controls.Add(this.floorLightLabel);
|
||||||
|
this.floorpanel.Controls.Add(this.floorScale);
|
||||||
|
this.floorpanel.Controls.Add(this.floorOffset);
|
||||||
|
this.floorpanel.Controls.Add(this.floorAngleLabel);
|
||||||
|
this.floorpanel.Controls.Add(this.floorScaleLabel);
|
||||||
|
this.floorpanel.Controls.Add(this.floorAngle);
|
||||||
this.floorpanel.Controls.Add(this.floorname);
|
this.floorpanel.Controls.Add(this.floorname);
|
||||||
this.floorpanel.Controls.Add(this.floortex);
|
this.floorpanel.Controls.Add(this.floortex);
|
||||||
this.floorpanel.Location = new System.Drawing.Point(303, 0);
|
this.floorpanel.Location = new System.Drawing.Point(303, 0);
|
||||||
|
@ -432,61 +429,50 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.floorpanel.TabStop = false;
|
this.floorpanel.TabStop = false;
|
||||||
this.floorpanel.Text = " Floor ";
|
this.floorpanel.Text = " Floor ";
|
||||||
//
|
//
|
||||||
// floorInfo
|
|
||||||
//
|
|
||||||
this.floorInfo.Controls.Add(this.floorLight);
|
|
||||||
this.floorInfo.Controls.Add(this.floorOffsetLabel);
|
|
||||||
this.floorInfo.Controls.Add(this.floorScale);
|
|
||||||
this.floorInfo.Controls.Add(this.floorOffset);
|
|
||||||
this.floorInfo.Controls.Add(this.floorLightLabel);
|
|
||||||
this.floorInfo.Controls.Add(this.floorAngleLabel);
|
|
||||||
this.floorInfo.Controls.Add(this.floorScaleLabel);
|
|
||||||
this.floorInfo.Controls.Add(this.floorAngle);
|
|
||||||
this.floorInfo.Location = new System.Drawing.Point(80, 15);
|
|
||||||
this.floorInfo.Name = "floorInfo";
|
|
||||||
this.floorInfo.Size = new System.Drawing.Size(118, 80);
|
|
||||||
this.floorInfo.TabIndex = 30;
|
|
||||||
//
|
|
||||||
// floorLight
|
// floorLight
|
||||||
//
|
//
|
||||||
this.floorLight.Location = new System.Drawing.Point(54, 61);
|
this.floorLight.AutoSize = true;
|
||||||
|
this.floorLight.Location = new System.Drawing.Point(124, 63);
|
||||||
this.floorLight.Name = "floorLight";
|
this.floorLight.Name = "floorLight";
|
||||||
this.floorLight.Size = new System.Drawing.Size(60, 14);
|
this.floorLight.Size = new System.Drawing.Size(15, 14);
|
||||||
this.floorLight.TabIndex = 29;
|
this.floorLight.TabIndex = 29;
|
||||||
this.floorLight.Text = "255 (abs.)";
|
this.floorLight.Text = "--";
|
||||||
//
|
//
|
||||||
// floorScale
|
// floorScale
|
||||||
//
|
//
|
||||||
this.floorScale.Location = new System.Drawing.Point(54, 43);
|
this.floorScale.AutoSize = true;
|
||||||
|
this.floorScale.Location = new System.Drawing.Point(124, 47);
|
||||||
this.floorScale.Name = "floorScale";
|
this.floorScale.Name = "floorScale";
|
||||||
this.floorScale.Size = new System.Drawing.Size(60, 14);
|
this.floorScale.Size = new System.Drawing.Size(29, 14);
|
||||||
this.floorScale.TabIndex = 28;
|
this.floorScale.TabIndex = 28;
|
||||||
this.floorScale.Text = "-1.0, -1.0";
|
this.floorScale.Text = "--, --";
|
||||||
//
|
//
|
||||||
// floorOffset
|
// floorOffset
|
||||||
//
|
//
|
||||||
this.floorOffset.Location = new System.Drawing.Point(54, 7);
|
this.floorOffset.AutoSize = true;
|
||||||
|
this.floorOffset.Location = new System.Drawing.Point(124, 15);
|
||||||
this.floorOffset.Name = "floorOffset";
|
this.floorOffset.Name = "floorOffset";
|
||||||
this.floorOffset.Size = new System.Drawing.Size(60, 14);
|
this.floorOffset.Size = new System.Drawing.Size(29, 14);
|
||||||
this.floorOffset.TabIndex = 23;
|
this.floorOffset.TabIndex = 23;
|
||||||
this.floorOffset.Text = "-100, -100";
|
this.floorOffset.Text = "--, --";
|
||||||
//
|
//
|
||||||
// floorAngle
|
// floorAngle
|
||||||
//
|
//
|
||||||
this.floorAngle.Location = new System.Drawing.Point(54, 25);
|
this.floorAngle.AutoSize = true;
|
||||||
|
this.floorAngle.Location = new System.Drawing.Point(124, 31);
|
||||||
this.floorAngle.Name = "floorAngle";
|
this.floorAngle.Name = "floorAngle";
|
||||||
this.floorAngle.Size = new System.Drawing.Size(60, 14);
|
this.floorAngle.Size = new System.Drawing.Size(15, 14);
|
||||||
this.floorAngle.TabIndex = 25;
|
this.floorAngle.TabIndex = 25;
|
||||||
this.floorAngle.Text = "45";
|
this.floorAngle.Text = "--";
|
||||||
//
|
//
|
||||||
// floorname
|
// floorname
|
||||||
//
|
//
|
||||||
this.floorname.Location = new System.Drawing.Point(8, 80);
|
this.floorname.AutoSize = true;
|
||||||
|
this.floorname.Location = new System.Drawing.Point(6, 81);
|
||||||
this.floorname.Name = "floorname";
|
this.floorname.Name = "floorname";
|
||||||
this.floorname.Size = new System.Drawing.Size(68, 13);
|
this.floorname.Size = new System.Drawing.Size(68, 14);
|
||||||
this.floorname.TabIndex = 1;
|
this.floorname.TabIndex = 1;
|
||||||
this.floorname.Text = "BROWNHUG";
|
this.floorname.Text = "BROWNHUG";
|
||||||
this.floorname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
|
||||||
//
|
//
|
||||||
// floortex
|
// floortex
|
||||||
//
|
//
|
||||||
|
@ -494,9 +480,9 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.floortex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
this.floortex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||||
this.floortex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
this.floortex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
this.floortex.Controls.Add(this.labelFloorTextureSize);
|
this.floortex.Controls.Add(this.labelFloorTextureSize);
|
||||||
this.floortex.Location = new System.Drawing.Point(8, 19);
|
this.floortex.Location = new System.Drawing.Point(7, 14);
|
||||||
this.floortex.Name = "floortex";
|
this.floortex.Name = "floortex";
|
||||||
this.floortex.Size = new System.Drawing.Size(68, 60);
|
this.floortex.Size = new System.Drawing.Size(64, 64);
|
||||||
this.floortex.TabIndex = 0;
|
this.floortex.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// labelFloorTextureSize
|
// labelFloorTextureSize
|
||||||
|
@ -505,7 +491,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.labelFloorTextureSize.BackColor = System.Drawing.Color.Black;
|
this.labelFloorTextureSize.BackColor = System.Drawing.Color.Black;
|
||||||
this.labelFloorTextureSize.Font = new System.Drawing.Font("Arial", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.labelFloorTextureSize.Font = new System.Drawing.Font("Arial", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.labelFloorTextureSize.ForeColor = System.Drawing.Color.White;
|
this.labelFloorTextureSize.ForeColor = System.Drawing.Color.White;
|
||||||
this.labelFloorTextureSize.Location = new System.Drawing.Point(3, 1);
|
this.labelFloorTextureSize.Location = new System.Drawing.Point(1, 1);
|
||||||
this.labelFloorTextureSize.MaximumSize = new System.Drawing.Size(0, 13);
|
this.labelFloorTextureSize.MaximumSize = new System.Drawing.Size(0, 13);
|
||||||
this.labelFloorTextureSize.Name = "labelFloorTextureSize";
|
this.labelFloorTextureSize.Name = "labelFloorTextureSize";
|
||||||
this.labelFloorTextureSize.Size = new System.Drawing.Size(48, 13);
|
this.labelFloorTextureSize.Size = new System.Drawing.Size(48, 13);
|
||||||
|
@ -518,10 +504,11 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.flowLayoutPanel1.Controls.Add(this.floorpanel);
|
this.flowLayoutPanel1.Controls.Add(this.floorpanel);
|
||||||
this.flowLayoutPanel1.Controls.Add(this.ceilingpanel);
|
this.flowLayoutPanel1.Controls.Add(this.ceilingpanel);
|
||||||
this.flowLayoutPanel1.Controls.Add(this.flagsPanel);
|
this.flowLayoutPanel1.Controls.Add(this.flagsPanel);
|
||||||
|
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(1090, 100);
|
this.flowLayoutPanel1.Size = new System.Drawing.Size(1400, 100);
|
||||||
this.flowLayoutPanel1.TabIndex = 5;
|
this.flowLayoutPanel1.TabIndex = 5;
|
||||||
this.flowLayoutPanel1.WrapContents = false;
|
this.flowLayoutPanel1.WrapContents = false;
|
||||||
//
|
//
|
||||||
|
@ -564,11 +551,11 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
this.sectorinfo.ResumeLayout(false);
|
this.sectorinfo.ResumeLayout(false);
|
||||||
this.sectorinfo.PerformLayout();
|
this.sectorinfo.PerformLayout();
|
||||||
this.ceilingpanel.ResumeLayout(false);
|
this.ceilingpanel.ResumeLayout(false);
|
||||||
this.ceilingInfo.ResumeLayout(false);
|
this.ceilingpanel.PerformLayout();
|
||||||
this.ceilingtex.ResumeLayout(false);
|
this.ceilingtex.ResumeLayout(false);
|
||||||
this.ceilingtex.PerformLayout();
|
this.ceilingtex.PerformLayout();
|
||||||
this.floorpanel.ResumeLayout(false);
|
this.floorpanel.ResumeLayout(false);
|
||||||
this.floorInfo.ResumeLayout(false);
|
this.floorpanel.PerformLayout();
|
||||||
this.floortex.ResumeLayout(false);
|
this.floortex.ResumeLayout(false);
|
||||||
this.floortex.PerformLayout();
|
this.floortex.PerformLayout();
|
||||||
this.flowLayoutPanel1.ResumeLayout(false);
|
this.flowLayoutPanel1.ResumeLayout(false);
|
||||||
|
@ -597,8 +584,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
private System.Windows.Forms.Label ceilingAngle;
|
private System.Windows.Forms.Label ceilingAngle;
|
||||||
private System.Windows.Forms.Label ceilingOffset;
|
private System.Windows.Forms.Label ceilingOffset;
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||||
private System.Windows.Forms.Panel ceilingInfo;
|
|
||||||
private System.Windows.Forms.Panel floorInfo;
|
|
||||||
private System.Windows.Forms.Label floorLight;
|
private System.Windows.Forms.Label floorLight;
|
||||||
private System.Windows.Forms.Label floorScale;
|
private System.Windows.Forms.Label floorScale;
|
||||||
private System.Windows.Forms.Label floorOffset;
|
private System.Windows.Forms.Label floorOffset;
|
||||||
|
@ -619,5 +604,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
private System.Windows.Forms.Label labelLight;
|
private System.Windows.Forms.Label labelLight;
|
||||||
private System.Windows.Forms.GroupBox flagsPanel;
|
private System.Windows.Forms.GroupBox flagsPanel;
|
||||||
private System.Windows.Forms.ListView flags;
|
private System.Windows.Forms.ListView flags;
|
||||||
|
private System.Windows.Forms.Label labelTag;
|
||||||
|
private System.Windows.Forms.Label labelEffect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#region ================== Namespaces
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
|
@ -29,14 +30,21 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
internal partial class SectorInfoPanel : UserControl
|
internal partial class SectorInfoPanel : UserControl
|
||||||
{
|
{
|
||||||
private readonly int fullWidth; //mxd
|
private readonly List<Label> floorlabels;
|
||||||
|
private readonly List<Label> ceillabels;
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public SectorInfoPanel()
|
public SectorInfoPanel()
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
fullWidth = floorpanel.Width; //mxd
|
|
||||||
|
//mxd
|
||||||
|
labelFloorTextureSize.BackColor = Color.FromArgb(128, labelFloorTextureSize.BackColor);
|
||||||
|
labelCeilTextureSize.BackColor = Color.FromArgb(128, labelCeilTextureSize.BackColor);
|
||||||
|
|
||||||
|
floorlabels = new List<Label> { floorAngle, floorLight, floorOffset, floorScale };
|
||||||
|
ceillabels = new List<Label> { ceilingAngle, ceilingLight, ceilingOffset, ceilingScale };
|
||||||
}
|
}
|
||||||
|
|
||||||
// This shows the info
|
// This shows the info
|
||||||
|
@ -55,34 +63,38 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
tag.Text = s.Tag + (General.Map.Options.TagLabels.ContainsKey(s.Tag) ? " (" + General.Map.Options.TagLabels[s.Tag] + ")" : string.Empty);
|
tag.Text = s.Tag + (General.Map.Options.TagLabels.ContainsKey(s.Tag) ? " (" + General.Map.Options.TagLabels[s.Tag] + ")" : string.Empty);
|
||||||
height.Text = sheight.ToString();
|
height.Text = sheight.ToString();
|
||||||
brightness.Text = s.Brightness.ToString();
|
brightness.Text = s.Brightness.ToString();
|
||||||
|
floorname.Text = s.FloorTexture;
|
||||||
|
ceilingname.Text = s.CeilTexture;
|
||||||
|
|
||||||
//mxd. Texture info
|
//mxd
|
||||||
|
effect.Enabled = (s.Effect != 0);
|
||||||
|
labelEffect.Enabled = (s.Effect != 0);
|
||||||
|
tag.Enabled = (s.Tag != 0);
|
||||||
|
labelTag.Enabled = (s.Tag != 0);
|
||||||
|
|
||||||
|
//mxd. Texture size
|
||||||
if (s.LongFloorTexture == MapSet.EmptyLongName)
|
if (s.LongFloorTexture == MapSet.EmptyLongName)
|
||||||
{
|
{
|
||||||
labelFloorTextureSize.Visible = false;
|
labelFloorTextureSize.Visible = false;
|
||||||
General.DisplayZoomedImage(floortex, Properties.Resources.MissingTexture);
|
General.DisplayZoomedImage(floortex, Properties.Resources.MissingTexture);
|
||||||
floorname.Text = s.FloorTexture;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImageData image = General.Map.Data.GetFlatImage(s.FloorTexture);
|
ImageData image = General.Map.Data.GetFlatImage(s.FloorTexture);
|
||||||
DisplayTextureSize(labelFloorTextureSize, image);
|
DisplayTextureSize(labelFloorTextureSize, image);
|
||||||
General.DisplayZoomedImage(floortex, image.GetPreview());
|
General.DisplayZoomedImage(floortex, image.GetPreview());
|
||||||
floorname.Text = (image is UnknownImage ? s.FloorTexture : image.DisplayName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s.LongCeilTexture == MapSet.EmptyLongName)
|
if (s.LongCeilTexture == MapSet.EmptyLongName)
|
||||||
{
|
{
|
||||||
labelCeilTextureSize.Visible = false;
|
labelCeilTextureSize.Visible = false;
|
||||||
General.DisplayZoomedImage(ceilingtex, Properties.Resources.MissingTexture);
|
General.DisplayZoomedImage(ceilingtex, Properties.Resources.MissingTexture);
|
||||||
ceilingname.Text = s.CeilTexture;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImageData image = General.Map.Data.GetFlatImage(s.CeilTexture);
|
ImageData image = General.Map.Data.GetFlatImage(s.CeilTexture);
|
||||||
DisplayTextureSize(labelCeilTextureSize, image); //mxd
|
DisplayTextureSize(labelCeilTextureSize, image); //mxd
|
||||||
General.DisplayZoomedImage(ceilingtex, image.GetPreview());
|
General.DisplayZoomedImage(ceilingtex, image.GetPreview());
|
||||||
ceilingname.Text = (image is UnknownImage ? s.CeilTexture : image.DisplayName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
|
@ -105,7 +117,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
panelLightColor.BackColor = System.Drawing.SystemColors.Control;
|
panelLightColor.BackColor = SystemColors.Control;
|
||||||
labelLight.Enabled = false;
|
labelLight.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +128,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
panelFadeColor.BackColor = System.Drawing.SystemColors.Control;
|
panelFadeColor.BackColor = SystemColors.Control;
|
||||||
labelFade.Enabled = false;
|
labelFade.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +257,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ceilingAngle.Text = "-";
|
ceilingAngle.Text = "--";
|
||||||
ceilingAngle.Enabled = false;
|
ceilingAngle.Enabled = false;
|
||||||
ceilingAngleLabel.Enabled = false;
|
ceilingAngleLabel.Enabled = false;
|
||||||
}
|
}
|
||||||
|
@ -259,7 +271,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
floorAngle.Text = "-";
|
floorAngle.Text = "--";
|
||||||
floorAngle.Enabled = false;
|
floorAngle.Enabled = false;
|
||||||
floorAngleLabel.Enabled = false;
|
floorAngleLabel.Enabled = false;
|
||||||
}
|
}
|
||||||
|
@ -286,7 +298,6 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
flags.Width = itemWidth * (int)Math.Ceiling(flags.Items.Count / 5.0f);
|
flags.Width = itemWidth * (int)Math.Ceiling(flags.Items.Count / 5.0f);
|
||||||
flagsPanel.Width = flags.Width + flags.Left * 2;
|
flagsPanel.Width = flags.Width + flags.Left * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -297,36 +308,41 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
flagsPanel.Visible = false;
|
flagsPanel.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//panels size
|
//mxd. Resize panels
|
||||||
if(showExtededCeilingInfo)
|
UpdateTexturePanel(ceilingpanel, ceilingname, ceillabels, ceilingtex, ceilingOffsetLabel.Location.X - 1, showExtededCeilingInfo);
|
||||||
{
|
UpdateTexturePanel(floorpanel, floorname, floorlabels, floortex, floorOffsetLabel.Location.X - 1, showExtededFloorInfo);
|
||||||
ceilingpanel.Width = fullWidth;
|
|
||||||
ceilingInfo.Visible = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ceilingInfo.Visible = false;
|
|
||||||
ceilingpanel.Width = 84;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(showExtededFloorInfo)
|
|
||||||
{
|
|
||||||
floorpanel.Width = fullWidth;
|
|
||||||
floorInfo.Visible = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
floorInfo.Visible = false;
|
|
||||||
floorpanel.Width = 84;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Show the whole thing
|
// Show the whole thing
|
||||||
this.Show();
|
this.Show();
|
||||||
this.Update();
|
this.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisplayTextureSize(Label label, ImageData texture)
|
//mxd
|
||||||
|
private static void UpdateTexturePanel(GroupBox panel, Label texturename, List<Label> proplabels, Panel image, int sizeref, bool extendedinfoshown)
|
||||||
|
{
|
||||||
|
//Reposition texture name label?
|
||||||
|
if(texturename.Width < image.Width + 2)
|
||||||
|
texturename.Location = new Point(image.Location.X + (image.Width - texturename.Width) / 2, texturename.Location.Y);
|
||||||
|
else
|
||||||
|
texturename.Location = new Point(image.Location.X - 1, texturename.Location.Y);
|
||||||
|
|
||||||
|
// Resize panel
|
||||||
|
if(!extendedinfoshown)
|
||||||
|
panel.Width = Math.Max(texturename.Right + image.Location.X - 1, sizeref);
|
||||||
|
else
|
||||||
|
panel.Width = Math.Max(texturename.Right, GetMaxRight(proplabels)) + image.Location.X;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private static int GetMaxRight(IEnumerable<Label> labels)
|
||||||
|
{
|
||||||
|
int max = 0;
|
||||||
|
foreach (Label label in labels) if (label.Right > max) max = label.Right;
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
private static void DisplayTextureSize(Label label, ImageData texture)
|
||||||
{
|
{
|
||||||
if(General.Settings.ShowTextureSizes && texture.ImageState == ImageLoadState.Ready
|
if(General.Settings.ShowTextureSizes && texture.ImageState == ImageLoadState.Ready
|
||||||
&& !string.IsNullOrEmpty(texture.Name) && !(texture is UnknownImage))
|
&& !string.IsNullOrEmpty(texture.Name) && !(texture is UnknownImage))
|
||||||
|
|
|
@ -123,16 +123,10 @@
|
||||||
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
|
@ -53,6 +53,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
if(string.IsNullOrEmpty(imagename))
|
if(string.IsNullOrEmpty(imagename))
|
||||||
{
|
{
|
||||||
DisplayImageSize(0, 0); //mxd
|
DisplayImageSize(0, 0); //mxd
|
||||||
|
UpdateToggleImageNameButton(null); //mxd
|
||||||
|
|
||||||
//mxd. Determine image to show
|
//mxd. Determine image to show
|
||||||
if (multipletextures) return Properties.Resources.ImageStack;
|
if (multipletextures) return Properties.Resources.ImageStack;
|
||||||
|
@ -61,6 +62,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
else if(imagename == "-") //mxd
|
else if(imagename == "-") //mxd
|
||||||
{
|
{
|
||||||
DisplayImageSize(0, 0);
|
DisplayImageSize(0, 0);
|
||||||
|
UpdateToggleImageNameButton(null); //mxd
|
||||||
|
|
||||||
// Determine image to show
|
// Determine image to show
|
||||||
return (required ? Properties.Resources.MissingTexture : null);
|
return (required ? Properties.Resources.MissingTexture : null);
|
||||||
|
@ -68,6 +70,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImageData texture = General.Map.Data.GetTextureImage(imagename); //mxd
|
ImageData texture = General.Map.Data.GetTextureImage(imagename); //mxd
|
||||||
|
UpdateToggleImageNameButton(texture); //mxd
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
|
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
|
||||||
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
|
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
|
||||||
|
|
|
@ -310,8 +310,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
|
|
||||||
// Load stuff
|
// Load stuff
|
||||||
LoadPalette();
|
LoadPalette();
|
||||||
texcount = LoadTextures(texturesonly);
|
texcount = LoadTextures(texturesonly, texturenamesshorttofull);
|
||||||
flatcount = LoadFlats(flatsonly);
|
flatcount = LoadFlats(flatsonly, flatnamesshorttofull);
|
||||||
colormapcount = LoadColormaps(colormapsonly);
|
colormapcount = LoadColormaps(colormapsonly);
|
||||||
LoadSprites();
|
LoadSprites();
|
||||||
thingcount = LoadDecorateThings();
|
thingcount = LoadDecorateThings();
|
||||||
|
@ -353,7 +353,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mixed textures and flats?
|
// Mixed textures and flats?
|
||||||
if (General.Map.Config.MixTexturesFlats) {
|
if (General.Map.Config.MixTexturesFlats)
|
||||||
|
{
|
||||||
// Add textures to flats
|
// Add textures to flats
|
||||||
foreach(KeyValuePair<long, ImageData> t in texturesonly)
|
foreach(KeyValuePair<long, ImageData> t in texturesonly)
|
||||||
{
|
{
|
||||||
|
@ -364,10 +365,20 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
else if(t.Value is HighResImage || t.Value is SimpleTextureImage) //mxd. Textures defined in TEXTURES or placed between TX_START and TX_END markers override "regular" flats in ZDoom
|
else if(t.Value is HighResImage || t.Value is SimpleTextureImage) //mxd. Textures defined in TEXTURES or placed between TX_START and TX_END markers override "regular" flats in ZDoom
|
||||||
{
|
{
|
||||||
|
//TODO: check this!
|
||||||
flats[t.Key] = t.Value;
|
flats[t.Key] = t.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
foreach (KeyValuePair<long, long> t in texturenamesshorttofull)
|
||||||
|
{
|
||||||
|
if (!flatnamesshorttofull.ContainsKey(t.Key))
|
||||||
|
{
|
||||||
|
flatnamesshorttofull.Add(t.Key, t.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add flats to textures
|
// Add flats to textures
|
||||||
foreach(KeyValuePair<long, ImageData> f in flatsonly)
|
foreach(KeyValuePair<long, ImageData> f in flatsonly)
|
||||||
{
|
{
|
||||||
|
@ -378,6 +389,15 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
foreach (KeyValuePair<long, long> t in flatnamesshorttofull)
|
||||||
|
{
|
||||||
|
if (!texturenamesshorttofull.ContainsKey(t.Key))
|
||||||
|
{
|
||||||
|
texturenamesshorttofull.Add(t.Key, t.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Do the same on the data readers
|
// Do the same on the data readers
|
||||||
foreach (DataReader dr in containers)
|
foreach (DataReader dr in containers)
|
||||||
dr.TextureSet.MixTexturesAndFlats();
|
dr.TextureSet.MixTexturesAndFlats();
|
||||||
|
@ -390,10 +410,6 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// Sort things
|
// Sort things
|
||||||
foreach(ThingCategory tc in thingcategories) tc.SortIfNeeded();
|
foreach(ThingCategory tc in thingcategories) tc.SortIfNeeded();
|
||||||
|
|
||||||
//mxd. Create texture name translation lists
|
|
||||||
texturenamesshorttofull = CreateShortTextureNamesCollection(textures);
|
|
||||||
flatnamesshorttofull = CreateShortTextureNamesCollection(flats);
|
|
||||||
|
|
||||||
// Update the used textures
|
// Update the used textures
|
||||||
General.Map.Data.UpdateUsedTextures();
|
General.Map.Data.UpdateUsedTextures();
|
||||||
|
|
||||||
|
@ -425,36 +441,9 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// Output info
|
// Output info
|
||||||
General.WriteLogLine("Loaded " + texcount + " textures, " + flatcount + " flats, " + colormapcount + " colormaps, " + spritecount + " sprites, " + thingcount + " decorate things, " + modeldefEntries.Count + " model deinitions, " + gldefsEntries.Count + " dynamic light definitions");
|
General.WriteLogLine("Loaded " + texcount + " textures, " + flatcount + " flats, " + colormapcount + " colormaps, " + spritecount + " sprites, " + thingcount + " decorate things, " + modeldefEntries.Count + " model deinitions, " + gldefsEntries.Count + " dynamic light definitions");
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
|
||||||
private Dictionary<long, long> CreateShortTextureNamesCollection(Dictionary<long, ImageData> images)
|
|
||||||
{
|
|
||||||
Dictionary<long, long> names = new Dictionary<long, long>();
|
|
||||||
|
|
||||||
foreach(KeyValuePair<long, ImageData> pair in images)
|
|
||||||
{
|
|
||||||
if(pair.Value.FullName.Length > CLASIC_IMAGE_NAME_LENGTH)
|
|
||||||
{
|
|
||||||
string shortname = pair.Value.DisplayName.ToUpperInvariant();
|
|
||||||
if(shortname.Length > CLASIC_IMAGE_NAME_LENGTH) shortname = shortname.Substring(0, CLASIC_IMAGE_NAME_LENGTH);
|
|
||||||
long hash = MurmurHash2.Hash(shortname);
|
|
||||||
|
|
||||||
if(names.ContainsKey(hash))
|
|
||||||
{
|
|
||||||
names[hash] = pair.Value.LongName;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
names.Add(hash, pair.Value.LongName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return names;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This unloads all data
|
// This unloads all data
|
||||||
internal void Unload()
|
private void Unload()
|
||||||
{
|
{
|
||||||
// Stop background loader
|
// Stop background loader
|
||||||
StopBackgroundLoader();
|
StopBackgroundLoader();
|
||||||
|
@ -725,13 +714,15 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. This loads a model
|
//mxd. This loads a model
|
||||||
internal bool ProcessModel(int type) {
|
internal bool ProcessModel(int type)
|
||||||
|
{
|
||||||
if(modeldefEntries[type].LoadState != ModelLoadState.None) return true;
|
if(modeldefEntries[type].LoadState != ModelLoadState.None) return true;
|
||||||
|
|
||||||
//create models
|
//create models
|
||||||
ModelReader.Load(modeldefEntries[type], containers, General.Map.Graphics.Device);
|
ModelReader.Load(modeldefEntries[type], containers, General.Map.Graphics.Device);
|
||||||
|
|
||||||
if(modeldefEntries[type].Model != null) {
|
if(modeldefEntries[type].Model != null)
|
||||||
|
{
|
||||||
modeldefEntries[type].LoadState = ModelLoadState.Ready;
|
modeldefEntries[type].LoadState = ModelLoadState.Ready;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -753,7 +744,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set used on all flats
|
// Set used on all flats
|
||||||
foreach(KeyValuePair<long, ImageData> i in flats) {
|
foreach(KeyValuePair<long, ImageData> i in flats)
|
||||||
|
{
|
||||||
i.Value.SetUsedInMap(usedimages.ContainsKey(i.Key));
|
i.Value.SetUsedInMap(usedimages.ContainsKey(i.Key));
|
||||||
if(i.Value.IsImageLoaded != i.Value.IsReferenced) ProcessImage(i.Value);
|
if(i.Value.IsImageLoaded != i.Value.IsReferenced) ProcessImage(i.Value);
|
||||||
}
|
}
|
||||||
|
@ -843,7 +835,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
#region ================== Textures
|
#region ================== Textures
|
||||||
|
|
||||||
// This loads the textures
|
// This loads the textures
|
||||||
private int LoadTextures(Dictionary<long, ImageData> list)
|
private int LoadTextures(Dictionary<long, ImageData> list, Dictionary<long, long> nametranslation)
|
||||||
{
|
{
|
||||||
ICollection<ImageData> images;
|
ICollection<ImageData> images;
|
||||||
PatchNames pnames = new PatchNames();
|
PatchNames pnames = new PatchNames();
|
||||||
|
@ -873,6 +865,20 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
list.Add(img.LongName, img);
|
list.Add(img.LongName, img);
|
||||||
if(firsttexture == 0) firsttexture = img.LongName;
|
if(firsttexture == 0) firsttexture = img.LongName;
|
||||||
counter++;
|
counter++;
|
||||||
|
|
||||||
|
//mxd. Also add as short name when texture name is longer than 8 chars
|
||||||
|
// Or remove when a wad image with short name overrides previously added
|
||||||
|
// resource image with long name
|
||||||
|
if(img.HasLongName)
|
||||||
|
{
|
||||||
|
long longshortname = Lump.MakeLongName(Path.GetFileNameWithoutExtension(img.Name), false);
|
||||||
|
nametranslation.Remove(longshortname);
|
||||||
|
nametranslation.Add(longshortname, img.LongName);
|
||||||
|
}
|
||||||
|
else if (img is TextureImage && nametranslation.ContainsKey(img.LongName))
|
||||||
|
{
|
||||||
|
nametranslation.Remove(img.LongName);
|
||||||
|
}
|
||||||
|
|
||||||
// Add to preview manager
|
// Add to preview manager
|
||||||
previews.AddImage(img);
|
previews.AddImage(img);
|
||||||
|
@ -932,7 +938,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// This checks if a given texture is known
|
// This checks if a given texture is known
|
||||||
public bool GetTextureExists(long longname)
|
public bool GetTextureExists(long longname)
|
||||||
{
|
{
|
||||||
return textures.ContainsKey(longname);
|
return textures.ContainsKey(longname) || texturenamesshorttofull.ContainsKey(longname);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns an image by string
|
// This returns an image by string
|
||||||
|
@ -947,11 +953,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
public ImageData GetTextureImage(long longname)
|
public ImageData GetTextureImage(long longname)
|
||||||
{
|
{
|
||||||
// Does this texture exist?
|
// Does this texture exist?
|
||||||
if(textures.ContainsKey(longname))
|
if(texturenamesshorttofull.ContainsKey(longname)) return textures[texturenamesshorttofull[longname]]; //mxd
|
||||||
{
|
if(textures.ContainsKey(longname)) return textures[longname];
|
||||||
// Return texture
|
|
||||||
return textures[longname];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return null image
|
// Return null image
|
||||||
return unknownimage; //mxd
|
return unknownimage; //mxd
|
||||||
|
@ -963,17 +966,24 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
if (Path.GetFileNameWithoutExtension(name) == name && name.Length > CLASIC_IMAGE_NAME_LENGTH)
|
if (Path.GetFileNameWithoutExtension(name) == name && name.Length > CLASIC_IMAGE_NAME_LENGTH)
|
||||||
name = name.Substring(0, CLASIC_IMAGE_NAME_LENGTH);
|
name = name.Substring(0, CLASIC_IMAGE_NAME_LENGTH);
|
||||||
long hash = MurmurHash2.Hash(name.Trim().ToUpperInvariant());
|
long hash = MurmurHash2.Hash(name.Trim().ToUpperInvariant());
|
||||||
if(textures.ContainsKey(hash)) return textures[hash].Name;
|
|
||||||
if(texturenamesshorttofull.ContainsKey(hash)) return textures[texturenamesshorttofull[hash]].Name;
|
if(texturenamesshorttofull.ContainsKey(hash)) return textures[texturenamesshorttofull[hash]].Name;
|
||||||
|
if(textures.ContainsKey(hash)) return textures[hash].Name;
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
internal long GetFullLongTextureName(long hash)
|
||||||
|
{
|
||||||
|
return (General.Map.Config.UseLongTextureNames && texturenamesshorttofull.ContainsKey(hash) ? texturenamesshorttofull[hash] : hash);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Flats
|
#region ================== Flats
|
||||||
|
|
||||||
// This loads the flats
|
// This loads the flats
|
||||||
private int LoadFlats(Dictionary<long, ImageData> list)
|
private int LoadFlats(Dictionary<long, ImageData> list, Dictionary<long, long> nametranslation)
|
||||||
{
|
{
|
||||||
ICollection<ImageData> images;
|
ICollection<ImageData> images;
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
@ -993,6 +1003,20 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
list.Add(img.LongName, img);
|
list.Add(img.LongName, img);
|
||||||
counter++;
|
counter++;
|
||||||
|
|
||||||
|
//mxd. Also add as short name when texture name is longer than 8 chars
|
||||||
|
// Or remove when a wad image with short name overrides previously added
|
||||||
|
// resource image with long name
|
||||||
|
if (img.HasLongName)
|
||||||
|
{
|
||||||
|
long longshortname = Lump.MakeLongName(Path.GetFileNameWithoutExtension(img.Name), false);
|
||||||
|
nametranslation.Remove(longshortname);
|
||||||
|
nametranslation.Add(longshortname, img.LongName);
|
||||||
|
}
|
||||||
|
else if(img is FlatImage && nametranslation.ContainsKey(img.LongName))
|
||||||
|
{
|
||||||
|
nametranslation.Remove(img.LongName);
|
||||||
|
}
|
||||||
|
|
||||||
// Add to preview manager
|
// Add to preview manager
|
||||||
previews.AddImage(img);
|
previews.AddImage(img);
|
||||||
}
|
}
|
||||||
|
@ -1030,7 +1054,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// This checks if a flat is known
|
// This checks if a flat is known
|
||||||
public bool GetFlatExists(long longname)
|
public bool GetFlatExists(long longname)
|
||||||
{
|
{
|
||||||
return flats.ContainsKey(longname);
|
return flats.ContainsKey(longname) || flatnamesshorttofull.ContainsKey(longname);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns an image by string
|
// This returns an image by string
|
||||||
|
@ -1045,6 +1069,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
public ImageData GetFlatImage(long longname)
|
public ImageData GetFlatImage(long longname)
|
||||||
{
|
{
|
||||||
// Does this flat exist?
|
// Does this flat exist?
|
||||||
|
if(flatnamesshorttofull.ContainsKey(longname)) return flats[flatnamesshorttofull[longname]]; //mxd
|
||||||
if(flats.ContainsKey(longname)) return flats[longname];
|
if(flats.ContainsKey(longname)) return flats[longname];
|
||||||
|
|
||||||
// Return null image
|
// Return null image
|
||||||
|
@ -1055,7 +1080,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
public ImageData GetFlatImageKnown(long longname)
|
public ImageData GetFlatImageKnown(long longname)
|
||||||
{
|
{
|
||||||
// Return flat
|
// Return flat
|
||||||
return flats[longname];
|
return flatnamesshorttofull.ContainsKey(longname) ? flats[flatnamesshorttofull[longname]] : flats[longname]; //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Gets full flat name by short flat name
|
//mxd. Gets full flat name by short flat name
|
||||||
|
@ -1064,10 +1089,17 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
if(Path.GetFileNameWithoutExtension(name) == name && name.Length > CLASIC_IMAGE_NAME_LENGTH)
|
if(Path.GetFileNameWithoutExtension(name) == name && name.Length > CLASIC_IMAGE_NAME_LENGTH)
|
||||||
name = name.Substring(0, CLASIC_IMAGE_NAME_LENGTH);
|
name = name.Substring(0, CLASIC_IMAGE_NAME_LENGTH);
|
||||||
long hash = MurmurHash2.Hash(name.ToUpperInvariant());
|
long hash = MurmurHash2.Hash(name.ToUpperInvariant());
|
||||||
if(flats.ContainsKey(hash)) return flats[hash].Name;
|
|
||||||
if(flatnamesshorttofull.ContainsKey(hash)) return flats[flatnamesshorttofull[hash]].Name;
|
if(flatnamesshorttofull.ContainsKey(hash)) return flats[flatnamesshorttofull[hash]].Name;
|
||||||
|
if(flats.ContainsKey(hash)) return flats[hash].Name;
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
internal long GetFullLongFlatName(long hash)
|
||||||
|
{
|
||||||
|
return (General.Map.Config.UseLongTextureNames && flatnamesshorttofull.ContainsKey(hash) ? flatnamesshorttofull[hash] : hash);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1124,8 +1156,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// Add to collection
|
// Add to collection
|
||||||
sprites.Add(ti.SpriteLongName, image);
|
sprites.Add(ti.SpriteLongName, image);
|
||||||
}
|
}
|
||||||
else
|
else //mxd
|
||||||
{ //mxd
|
{
|
||||||
General.ErrorLogger.Add(ErrorType.Error, "Missing sprite lump '" + ti.Sprite + "'. Forgot to include required resources?");
|
General.ErrorLogger.Add(ErrorType.Error, "Missing sprite lump '" + ti.Sprite + "'. Forgot to include required resources?");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,17 +140,19 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//mxd. Long names are absolute
|
//mxd. Long names are absolute
|
||||||
if(General.Map.Options.UseLongTextureNames && !string.IsNullOrEmpty(Path.GetExtension(pname)))
|
if (longname)
|
||||||
{
|
{
|
||||||
pname = pname.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
|
pname = pname.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
|
||||||
return (FileExists(pname) ? LoadFile(pname) : null);
|
return (FileExists(pname) ? LoadFile(pname) : null);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
// Find in textures directory
|
{
|
||||||
string path = Path.Combine(TEXTURES_DIR, Path.GetDirectoryName(pname));
|
// Find in textures directory
|
||||||
string filename = FindFirstFile(path, Path.GetFileName(pname), true);
|
string path = Path.Combine(TEXTURES_DIR, Path.GetDirectoryName(pname));
|
||||||
if(!string.IsNullOrEmpty(filename) && FileExists(filename))
|
string filename = FindFirstFile(path, Path.GetFileName(pname), true);
|
||||||
return LoadFile(filename);
|
if (!string.IsNullOrEmpty(filename) && FileExists(filename))
|
||||||
|
return LoadFile(filename);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
@ -266,24 +268,30 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
#region ================== Voxels (mxd)
|
#region ================== Voxels (mxd)
|
||||||
|
|
||||||
//mxd. This finds and returns a voxel stream
|
//mxd. This finds and returns a voxel stream
|
||||||
public override Stream GetVoxelData(string name) {
|
public override Stream GetVoxelData(string name)
|
||||||
|
{
|
||||||
// Error when suspended
|
// Error when suspended
|
||||||
if(issuspended) throw new Exception("Data reader is suspended");
|
if(issuspended) throw new Exception("Data reader is suspended");
|
||||||
|
|
||||||
// Find in any of the wad files
|
// Find in any of the wad files
|
||||||
for(int i = wads.Count - 1; i >= 0; i--) {
|
for(int i = wads.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
Stream voxel = wads[i].GetVoxelData(name);
|
Stream voxel = wads[i].GetVoxelData(name);
|
||||||
if(voxel != null) return voxel;
|
if(voxel != null) return voxel;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
// Find in voxels directory
|
// Find in voxels directory
|
||||||
string path = Path.Combine(VOXELS_DIR, Path.GetDirectoryName(name));
|
string path = Path.Combine(VOXELS_DIR, Path.GetDirectoryName(name));
|
||||||
string filename = FindFirstFile(path, Path.GetFileName(name), true);
|
string filename = FindFirstFile(path, Path.GetFileName(name), true);
|
||||||
if((filename != null) && FileExists(filename)) {
|
if((filename != null) && FileExists(filename))
|
||||||
|
{
|
||||||
return LoadFile(filename);
|
return LoadFile(filename);
|
||||||
}
|
}
|
||||||
} catch(Exception e) {
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while loading voxel '" + name + "' from directory: " + e.Message);
|
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while loading voxel '" + name + "' from directory: " + e.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -94,7 +95,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
//mxd: also, zdoom uses '/' as directory separator char.
|
//mxd: also, zdoom uses '/' as directory separator char.
|
||||||
private void SetName(string name, string filepathname)
|
private void SetName(string name, string filepathname)
|
||||||
{
|
{
|
||||||
SetName(name, filepathname, General.Map.Options.UseLongTextureNames);
|
SetName(name, filepathname, General.Map.Config.UseLongTextureNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetName(string name, string filepathname, bool uselongtexturenames)
|
private void SetName(string name, string filepathname, bool uselongtexturenames)
|
||||||
|
@ -104,26 +105,39 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
if(!uselongtexturenames)
|
if(!uselongtexturenames)
|
||||||
{
|
{
|
||||||
this.name = Path.GetFileNameWithoutExtension(name.ToUpperInvariant());
|
this.name = Path.GetFileNameWithoutExtension(name.ToUpperInvariant());
|
||||||
if(this.name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
if (this.name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
{
|
||||||
this.name = this.name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
this.name = this.name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
}
|
||||||
this.virtualname = Path.Combine(Path.GetDirectoryName(name), this.name).Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
this.virtualname = Path.Combine(Path.GetDirectoryName(name), this.name).Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
||||||
this.displayname = this.name;
|
this.displayname = this.name;
|
||||||
this.longname = Lump.MakeLongName(this.name); //mxd
|
this.shortname = this.name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.virtualname = name;
|
this.virtualname = name;
|
||||||
this.displayname = Path.GetFileNameWithoutExtension(name);
|
this.displayname = Path.GetFileNameWithoutExtension(name);
|
||||||
this.longname = Lump.MakeLongName(name);
|
this.shortname = this.displayname.ToUpperInvariant();
|
||||||
|
if (this.shortname.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.shortname = this.shortname.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
}
|
||||||
hasLongName = true;
|
hasLongName = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.longname = Lump.MakeLongName(this.name, uselongtexturenames); //mxd
|
||||||
this.fullname = filepathname;
|
this.fullname = filepathname;
|
||||||
|
|
||||||
if(General.Settings.CapitalizeTextureNames && !string.IsNullOrEmpty(this.displayname))
|
if(General.Settings.CapitalizeTextureNames && !string.IsNullOrEmpty(this.displayname))
|
||||||
{
|
{
|
||||||
this.displayname = this.displayname.ToUpperInvariant();
|
this.displayname = this.displayname.ToUpperInvariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.displayname.Length > ImageBrowserItem.MAX_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.displayname = this.displayname.Substring(0, ImageBrowserItem.MAX_NAME_LENGTH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This loads the image
|
// This loads the image
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
@ -50,16 +51,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
this.patches = new List<TexturePatch>(1);
|
this.patches = new List<TexturePatch>(1);
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if (!General.Map.Options.UseLongTextureNames)
|
|
||||||
{
|
|
||||||
if(name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
|
||||||
name = name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
|
||||||
name = name.ToUpperInvariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
SetName(name);
|
SetName(name);
|
||||||
this.virtualname = "[TEXTURES]/" + this.name; //mxd
|
this.isFlat = isflat;
|
||||||
this.isFlat = isflat; //mxd
|
|
||||||
|
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
|
@ -69,6 +62,36 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
|
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
protected override void SetName(string name)
|
||||||
|
{
|
||||||
|
if(!General.Map.Config.UseLongTextureNames)
|
||||||
|
{
|
||||||
|
if(name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
name = name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
name = name.ToUpperInvariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.SetName(name);
|
||||||
|
|
||||||
|
this.virtualname = "[TEXTURES]/" + this.name;
|
||||||
|
if(General.Settings.CapitalizeTextureNames && !string.IsNullOrEmpty(this.displayname))
|
||||||
|
{
|
||||||
|
this.displayname = this.displayname.ToUpperInvariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.displayname.Length > ImageBrowserItem.MAX_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.displayname = this.displayname.Substring(0, ImageBrowserItem.MAX_NAME_LENGTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.shortname = this.displayname.ToUpperInvariant();
|
||||||
|
if(this.shortname.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.shortname = this.shortname.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This adds a patch to the texture
|
// This adds a patch to the texture
|
||||||
public void AddPatch(TexturePatch patch)
|
public void AddPatch(TexturePatch patch)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,8 +50,9 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
protected bool worldpanning;
|
protected bool worldpanning;
|
||||||
private bool usecolorcorrection;
|
private bool usecolorcorrection;
|
||||||
protected string fullname; //mxd. name with path;
|
protected string fullname; //mxd. name with path;
|
||||||
protected string virtualname; //mxd
|
protected string shortname; //mxd. Name in uppercase and clamped to DataManager.CLASIC_IMAGE_NAME_LENGTH
|
||||||
protected string displayname; //mxd
|
protected string virtualname; //mxd. Path of this name is used in TextureBrowserForm
|
||||||
|
protected string displayname; //mxd. Name to display in TextureBrowserForm
|
||||||
protected bool isFlat; //mxd. if false, it's a texture
|
protected bool isFlat; //mxd. if false, it's a texture
|
||||||
protected bool hasLongName; //mxd. Texture name is longer than DataManager.CLASIC_IMAGE_NAME_LENGTH
|
protected bool hasLongName; //mxd. Texture name is longer than DataManager.CLASIC_IMAGE_NAME_LENGTH
|
||||||
protected bool hasPatchWithSameName; //mxd
|
protected bool hasPatchWithSameName; //mxd
|
||||||
|
@ -84,11 +85,13 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
|
|
||||||
public string Name { get { return name; } }
|
public string Name { get { return name; } }
|
||||||
public long LongName { get { return longname; } }
|
public long LongName { get { return longname; } }
|
||||||
|
public string ShortName { get { return shortname; } } //mxd
|
||||||
public string FullName { get { return fullname; } } //mxd
|
public string FullName { get { return fullname; } } //mxd
|
||||||
public string VirtualName { get { return virtualname; } } //mxd
|
public string VirtualName { get { return virtualname; } } //mxd
|
||||||
public string DisplayName { get { return displayname; } } //mxd
|
public string DisplayName { get { return displayname; } } //mxd
|
||||||
public bool IsFlat { get { return isFlat; } } //mxd
|
public bool IsFlat { get { return isFlat; } } //mxd
|
||||||
public bool HasPatchWithSameName { get { return hasPatchWithSameName; } } //mxd
|
public bool HasPatchWithSameName { get { return hasPatchWithSameName; } } //mxd
|
||||||
|
internal bool HasLongName { get { return hasLongName; } } //mxd
|
||||||
public bool UseColorCorrection { get { return usecolorcorrection; } set { usecolorcorrection = value; } }
|
public bool UseColorCorrection { get { return usecolorcorrection; } set { usecolorcorrection = value; } }
|
||||||
public Texture Texture { get { lock(this) { return texture; } } }
|
public Texture Texture { get { lock(this) { return texture; } } }
|
||||||
public bool IsPreviewLoaded { get { return (previewstate == ImageLoadState.Ready); } }
|
public bool IsPreviewLoaded { get { return (previewstate == ImageLoadState.Ready); } }
|
||||||
|
@ -184,6 +187,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.fullname = name; //mxd
|
this.fullname = name; //mxd
|
||||||
|
this.shortname = name; //mxd
|
||||||
this.virtualname = name; //mxd
|
this.virtualname = name; //mxd
|
||||||
this.displayname = name; //mxd
|
this.displayname = name; //mxd
|
||||||
this.longname = Lump.MakeLongName(name); //mxd
|
this.longname = Lump.MakeLongName(name); //mxd
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -67,28 +68,41 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
//mxd: filepathname is relative path to the image ("Textures\sometexture.png")
|
//mxd: filepathname is relative path to the image ("Textures\sometexture.png")
|
||||||
protected override void SetName(string filepathname)
|
protected override void SetName(string filepathname)
|
||||||
{
|
{
|
||||||
if(!General.Map.Options.UseLongTextureNames)
|
if(!General.Map.Config.UseLongTextureNames)
|
||||||
{
|
{
|
||||||
this.name = Path.GetFileNameWithoutExtension(filepathname.ToUpperInvariant());
|
this.name = Path.GetFileNameWithoutExtension(filepathname.ToUpperInvariant());
|
||||||
if(this.name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
if (this.name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
{
|
||||||
this.name = this.name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
this.name = this.name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
}
|
||||||
this.displayname = this.name;
|
this.displayname = this.name;
|
||||||
this.longname = Lump.MakeLongName(this.name); //mxd
|
this.shortname = this.name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.name = filepathname.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
this.name = filepathname.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
||||||
this.displayname = Path.GetFileNameWithoutExtension(name);
|
this.displayname = Path.GetFileNameWithoutExtension(name);
|
||||||
this.longname = Lump.MakeLongName(this.name);
|
this.shortname = this.displayname.ToUpperInvariant();
|
||||||
|
if (this.shortname.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.shortname = this.shortname.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
|
}
|
||||||
this.hasLongName = true;
|
this.hasLongName = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.longname = Lump.MakeLongName(this.name);
|
||||||
this.virtualname = filepathname.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
this.virtualname = filepathname.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
|
||||||
this.fullname = filepathname;
|
this.fullname = filepathname;
|
||||||
|
|
||||||
if(General.Settings.CapitalizeTextureNames && !string.IsNullOrEmpty(this.displayname))
|
if(General.Settings.CapitalizeTextureNames && !string.IsNullOrEmpty(this.displayname))
|
||||||
{
|
{
|
||||||
this.displayname = this.displayname.ToUpperInvariant();
|
this.displayname = this.displayname.ToUpperInvariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.displayname.Length > ImageBrowserItem.MAX_NAME_LENGTH)
|
||||||
|
{
|
||||||
|
this.displayname = this.displayname.Substring(0, ImageBrowserItem.MAX_NAME_LENGTH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This loads the image
|
// This loads the image
|
||||||
|
|
|
@ -610,10 +610,6 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
string[] files = GetAllFiles(path, includesubdirs);
|
string[] files = GetAllFiles(path, includesubdirs);
|
||||||
foreach(string f in files)
|
foreach(string f in files)
|
||||||
{
|
{
|
||||||
//mxd. Skip IMGZ files
|
|
||||||
string ext = Path.GetExtension(f);
|
|
||||||
if(!string.IsNullOrEmpty(ext) && ext.ToUpperInvariant() == ".IMGZ") continue;
|
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(Path.GetFileNameWithoutExtension(f)))
|
if(string.IsNullOrEmpty(Path.GetFileNameWithoutExtension(f)))
|
||||||
{
|
{
|
||||||
// Can't load image without name
|
// Can't load image without name
|
||||||
|
|
|
@ -58,11 +58,6 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
// This loads the image
|
// This loads the image
|
||||||
protected override void LocalLoadImage()
|
protected override void LocalLoadImage()
|
||||||
{
|
{
|
||||||
IImageReader reader;
|
|
||||||
MemoryStream mem;
|
|
||||||
Stream patchdata;
|
|
||||||
byte[] membytes;
|
|
||||||
|
|
||||||
// Checks
|
// Checks
|
||||||
if(this.IsImageLoaded) return;
|
if(this.IsImageLoaded) return;
|
||||||
|
|
||||||
|
@ -70,18 +65,18 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
// Get the patch data stream
|
// Get the patch data stream
|
||||||
if(bitmap != null) bitmap.Dispose(); bitmap = null;
|
if(bitmap != null) bitmap.Dispose(); bitmap = null;
|
||||||
patchdata = General.Map.Data.GetTextureData(lumpname, hasLongName);
|
Stream patchdata = General.Map.Data.GetTextureData(lumpname, hasLongName);
|
||||||
if(patchdata != null)
|
if(patchdata != null)
|
||||||
{
|
{
|
||||||
// Copy patch data to memory
|
// Copy patch data to memory
|
||||||
patchdata.Seek(0, SeekOrigin.Begin);
|
patchdata.Seek(0, SeekOrigin.Begin);
|
||||||
membytes = new byte[(int)patchdata.Length];
|
byte[] membytes = new byte[(int)patchdata.Length];
|
||||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||||
mem = new MemoryStream(membytes);
|
MemoryStream mem = new MemoryStream(membytes);
|
||||||
mem.Seek(0, SeekOrigin.Begin);
|
mem.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
// Get a reader for the data
|
// Get a reader for the data
|
||||||
reader = ImageDataFormat.GetImageReader(mem, ImageDataFormat.DOOMPICTURE, General.Map.Data.Palette);
|
IImageReader reader = ImageDataFormat.GetImageReader(mem, ImageDataFormat.DOOMPICTURE, General.Map.Data.Palette);
|
||||||
if(!(reader is UnknownImageReader))
|
if(!(reader is UnknownImageReader))
|
||||||
{
|
{
|
||||||
// Load the image
|
// Load the image
|
||||||
|
|
|
@ -27,7 +27,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
private Bitmap loadbitmap;
|
private readonly Bitmap loadbitmap;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// Write data to stream
|
// Write data to stream
|
||||||
MemoryStream memstream = new MemoryStream();
|
MemoryStream memstream = new MemoryStream();
|
||||||
ClipboardStreamWriter writer = new ClipboardStreamWriter(); //mxd
|
ClipboardStreamWriter writer = new ClipboardStreamWriter(); //mxd
|
||||||
writer.Write(copyset, memstream, General.Map.Options.UseLongTextureNames);
|
writer.Write(copyset, memstream, General.Map.Config.UseLongTextureNames);
|
||||||
|
|
||||||
// Set on clipboard
|
// Set on clipboard
|
||||||
Clipboard.SetData(CLIPBOARD_DATA_FORMAT, memstream);
|
Clipboard.SetData(CLIPBOARD_DATA_FORMAT, memstream);
|
||||||
|
@ -295,8 +295,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
if(!(General.Map.FormatInterface is UniversalMapSetIO)) General.Map.Map.TranslateFromUDMF();
|
if(!(General.Map.FormatInterface is UniversalMapSetIO)) General.Map.Map.TranslateFromUDMF();
|
||||||
|
|
||||||
//mxd. Translate texture names if needed
|
//mxd. Translate texture names if needed
|
||||||
if(reader.UseLongTextureNames != General.Map.Options.UseLongTextureNames)
|
if(reader.UseLongTextureNames != General.Map.Config.UseLongTextureNames)
|
||||||
General.Map.Map.TranslateTextureNames(General.Map.Options.UseLongTextureNames, true);
|
General.Map.Map.TranslateTextureNames(General.Map.Config.UseLongTextureNames, true);
|
||||||
|
|
||||||
// Modify tags and actions if preferred
|
// Modify tags and actions if preferred
|
||||||
if(options.ChangeTags == PasteOptions.TAGS_REMOVE) Tools.RemoveMarkedTags();
|
if(options.ChangeTags == PasteOptions.TAGS_REMOVE) Tools.RemoveMarkedTags();
|
||||||
|
|
|
@ -1166,8 +1166,7 @@ namespace CodeImp.DoomBuilder
|
||||||
openfile.Dispose();
|
openfile.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd. This loads a different map from same wad file without reloading resources
|
||||||
// This loads a different map from same wad file
|
|
||||||
[BeginAction("openmapincurrentwad")]
|
[BeginAction("openmapincurrentwad")]
|
||||||
internal static void OpenMapInCurrentWad()
|
internal static void OpenMapInCurrentWad()
|
||||||
{
|
{
|
||||||
|
|
|
@ -414,8 +414,8 @@ namespace CodeImp.DoomBuilder {
|
||||||
map.RemoveUnusedSectors(true);
|
map.RemoveUnusedSectors(true);
|
||||||
|
|
||||||
//mxd. Translate to long or short texture names.
|
//mxd. Translate to long or short texture names.
|
||||||
bool nameschanged = map.TranslateTextureNames(options.UseLongTextureNames, false);
|
bool nameschanged = map.TranslateTextureNames(config.UseLongTextureNames, false);
|
||||||
grid.TranslateBackgroundName(options.UseLongTextureNames);
|
grid.TranslateBackgroundName(config.UseLongTextureNames);
|
||||||
|
|
||||||
//mxd. Sector textures may've been changed
|
//mxd. Sector textures may've been changed
|
||||||
if (nameschanged)
|
if (nameschanged)
|
||||||
|
@ -458,21 +458,6 @@ namespace CodeImp.DoomBuilder {
|
||||||
//mxd. This switches to another map in the same wad
|
//mxd. This switches to another map in the same wad
|
||||||
internal bool InitializeSwitchMap(MapOptions options)
|
internal bool InitializeSwitchMap(MapOptions options)
|
||||||
{
|
{
|
||||||
bool uselongtexturenames = this.options.UseLongTextureNames;
|
|
||||||
|
|
||||||
// Does not compute! (we don't reload resources, so it can potentially
|
|
||||||
// lead to texture lookup FIALS if there are non-WAD resources)
|
|
||||||
if(uselongtexturenames != options.UseLongTextureNames &&
|
|
||||||
MessageBox.Show(General.MainWindow,
|
|
||||||
"Texture names in the map you are opening will be translated to "
|
|
||||||
+ (uselongtexturenames ? "long" : "short") + " texture names."
|
|
||||||
+ (!uselongtexturenames ? " This may lead to texture and flat name conflicts." : "")
|
|
||||||
+ " Do you want to continue?",
|
|
||||||
Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.changed = false;
|
this.changed = false;
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
|
||||||
|
@ -535,15 +520,11 @@ namespace CodeImp.DoomBuilder {
|
||||||
ChangeMapSet(newmap);
|
ChangeMapSet(newmap);
|
||||||
|
|
||||||
//mxd. Translate texture names
|
//mxd. Translate texture names
|
||||||
bool nameschanged = map.TranslateTextureNames(uselongtexturenames, false);
|
map.TranslateTextureNames(config.UseLongTextureNames, false);
|
||||||
grid.TranslateBackgroundName(uselongtexturenames);
|
grid.TranslateBackgroundName(config.UseLongTextureNames);
|
||||||
|
|
||||||
//mxd. Sector textures may've been changed
|
//mxd. Sector textures may've been changed
|
||||||
if (nameschanged)
|
data.UpdateUsedTextures();
|
||||||
{
|
|
||||||
data.UpdateUsedTextures();
|
|
||||||
General.Map.IsChanged = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//mxd. check script names
|
//mxd. check script names
|
||||||
UpdateScriptNames();
|
UpdateScriptNames();
|
||||||
|
@ -1922,8 +1903,8 @@ namespace CodeImp.DoomBuilder {
|
||||||
UpdateScriptNames(); //mxd
|
UpdateScriptNames(); //mxd
|
||||||
|
|
||||||
//mxd. Translate texture names
|
//mxd. Translate texture names
|
||||||
bool nameschanged = map.TranslateTextureNames(options.UseLongTextureNames, false);
|
bool nameschanged = map.TranslateTextureNames(config.UseLongTextureNames, false);
|
||||||
grid.TranslateBackgroundName(options.UseLongTextureNames);
|
grid.TranslateBackgroundName(config.UseLongTextureNames);
|
||||||
|
|
||||||
//mxd. Sector textures may've been changed
|
//mxd. Sector textures may've been changed
|
||||||
if (nameschanged)
|
if (nameschanged)
|
||||||
|
|
|
@ -28,8 +28,8 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
private DirectoryFileEntry[] entries;
|
private readonly DirectoryFileEntry[] entries;
|
||||||
private Dictionary<string, DirectoryFileEntry> hashedentries;
|
private readonly Dictionary<string, DirectoryFileEntry> hashedentries;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
path = Path.GetFullPath(path);
|
path = Path.GetFullPath(path);
|
||||||
string[] files = Directory.GetFiles(path, "*", subdirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
|
string[] files = Directory.GetFiles(path, "*", subdirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
|
||||||
|
Array.Sort(files); //mxd
|
||||||
entries = new DirectoryFileEntry[files.Length];
|
entries = new DirectoryFileEntry[files.Length];
|
||||||
hashedentries = new Dictionary<string, DirectoryFileEntry>(files.Length, StringComparer.Ordinal);
|
hashedentries = new Dictionary<string, DirectoryFileEntry>(files.Length, StringComparer.Ordinal);
|
||||||
for(int i = 0; i < files.Length; i++)
|
for(int i = 0; i < files.Length; i++)
|
||||||
|
@ -165,13 +166,16 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. This returns a list of all files that are in the given path and which names starts with title
|
//mxd. This returns a list of all files that are in the given path and which names starts with title
|
||||||
public List<string> GetAllFilesWhichTitleStartsWith(string path, string title) {
|
public List<string> GetAllFilesWhichTitleStartsWith(string path, string title)
|
||||||
|
{
|
||||||
path = CorrectPath(path).ToLowerInvariant();
|
path = CorrectPath(path).ToLowerInvariant();
|
||||||
title = title.ToLowerInvariant();
|
title = title.ToLowerInvariant();
|
||||||
List<string> files = new List<string>(entries.Length);
|
List<string> files = new List<string>(entries.Length);
|
||||||
for (int i = 0; i < entries.Length; i++)
|
for (int i = 0; i < entries.Length; i++)
|
||||||
if ((entries[i].path == path) && (entries[i].filetitle.StartsWith(title)))
|
{
|
||||||
|
if ((entries[i].path == path) && (entries[i].filetitle.StartsWith(title)))
|
||||||
files.Add(entries[i].filepathname);
|
files.Add(entries[i].filepathname);
|
||||||
|
}
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
// Make name
|
// Make name
|
||||||
this.name = MakeNormalName(fixedname, WAD.ENCODING).ToUpperInvariant();
|
this.name = MakeNormalName(fixedname, WAD.ENCODING).ToUpperInvariant();
|
||||||
this.fixedname = MakeFixedName(name, WAD.ENCODING);
|
this.fixedname = MakeFixedName(name, WAD.ENCODING);
|
||||||
this.longname = MakeLongName(name);
|
this.longname = MakeLongName(name, false); //mxd
|
||||||
|
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
|
@ -125,9 +125,15 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
|
|
||||||
//mxd. This returns (hopefully) unique hash value for a texture name of any length
|
//mxd. This returns (hopefully) unique hash value for a texture name of any length
|
||||||
public static long MakeLongName(string name)
|
public static long MakeLongName(string name)
|
||||||
|
{
|
||||||
|
return MakeLongName(name, General.Map != null && General.Map.Config != null && General.Map.Config.UseLongTextureNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This returns (hopefully) unique hash value for a texture name of any length
|
||||||
|
public static long MakeLongName(string name, bool uselongnames)
|
||||||
{
|
{
|
||||||
name = name.Trim().ToUpper();
|
name = name.Trim().ToUpper();
|
||||||
if(name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH && General.Map != null && General.Map.Options != null && !General.Map.Options.UseLongTextureNames)
|
if(!uselongnames && name.Length > DataManager.CLASIC_IMAGE_NAME_LENGTH)
|
||||||
{
|
{
|
||||||
name = name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
name = name.Substring(0, DataManager.CLASIC_IMAGE_NAME_LENGTH);
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,8 +79,6 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
private bool overridefloorheight;
|
private bool overridefloorheight;
|
||||||
private bool overrideceilheight;
|
private bool overrideceilheight;
|
||||||
private bool overridebrightness;
|
private bool overridebrightness;
|
||||||
|
|
||||||
private bool uselongtexturenames; //mxd
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -132,8 +130,6 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
public bool OverrideCeilingHeight { get { return overrideceilheight; } set { overrideceilheight = value; } }
|
public bool OverrideCeilingHeight { get { return overrideceilheight; } set { overrideceilheight = value; } }
|
||||||
public bool OverrideBrightness { get { return overridebrightness; } set { overridebrightness = value; } }
|
public bool OverrideBrightness { get { return overridebrightness; } set { overridebrightness = value; } }
|
||||||
|
|
||||||
public bool UseLongTextureNames { get { return uselongtexturenames; } set { uselongtexturenames = value; } } //mxd
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
@ -179,11 +175,13 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
this.tagLabels = new Dictionary<int, string>();
|
this.tagLabels = new Dictionary<int, string>();
|
||||||
ListDictionary tagLabelsData = (ListDictionary)this.mapconfig.ReadSetting("taglabels", new ListDictionary());
|
ListDictionary tagLabelsData = (ListDictionary)this.mapconfig.ReadSetting("taglabels", new ListDictionary());
|
||||||
|
|
||||||
foreach(DictionaryEntry tagLabelsEntry in tagLabelsData) {
|
foreach(DictionaryEntry tagLabelsEntry in tagLabelsData)
|
||||||
|
{
|
||||||
int tag = 0;
|
int tag = 0;
|
||||||
string label = string.Empty;
|
string label = string.Empty;
|
||||||
|
|
||||||
foreach(DictionaryEntry entry in (ListDictionary)tagLabelsEntry.Value) {
|
foreach(DictionaryEntry entry in (ListDictionary)tagLabelsEntry.Value)
|
||||||
|
{
|
||||||
if((string)entry.Key == "tag") tag = (int)entry.Value;
|
if((string)entry.Key == "tag") tag = (int)entry.Value;
|
||||||
else if((string)entry.Key == "label") label = (string)entry.Value;
|
else if((string)entry.Key == "label") label = (string)entry.Value;
|
||||||
}
|
}
|
||||||
|
@ -215,8 +213,6 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
overrideceilheight = this.mapconfig.ReadSetting("overrideceilheight", false);
|
overrideceilheight = this.mapconfig.ReadSetting("overrideceilheight", false);
|
||||||
overridebrightness = this.mapconfig.ReadSetting("overridebrightness", false);
|
overridebrightness = this.mapconfig.ReadSetting("overridebrightness", false);
|
||||||
|
|
||||||
uselongtexturenames = this.mapconfig.ReadSetting("uselongtexturenames", false); //mxd
|
|
||||||
|
|
||||||
// Resources
|
// Resources
|
||||||
IDictionary reslist = this.mapconfig.ReadSetting("resources", new Hashtable());
|
IDictionary reslist = this.mapconfig.ReadSetting("resources", new Hashtable());
|
||||||
foreach(DictionaryEntry mp in reslist)
|
foreach(DictionaryEntry mp in reslist)
|
||||||
|
@ -338,8 +334,6 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
mapconfig.WriteSetting("overrideceilheight", overrideceilheight);
|
mapconfig.WriteSetting("overrideceilheight", overrideceilheight);
|
||||||
mapconfig.WriteSetting("overridebrightness", overridebrightness);
|
mapconfig.WriteSetting("overridebrightness", overridebrightness);
|
||||||
|
|
||||||
mapconfig.WriteSetting("uselongtexturenames", uselongtexturenames); //mxd
|
|
||||||
|
|
||||||
//mxd. Write script compiler
|
//mxd. Write script compiler
|
||||||
if(!string.IsNullOrEmpty(scriptcompiler))
|
if(!string.IsNullOrEmpty(scriptcompiler))
|
||||||
mapconfig.WriteSetting("scriptcompiler", scriptcompiler);
|
mapconfig.WriteSetting("scriptcompiler", scriptcompiler);
|
||||||
|
@ -426,7 +420,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
// This loads the grid settings
|
// This loads the grid settings
|
||||||
internal void ApplyGridSettings()
|
internal void ApplyGridSettings()
|
||||||
{
|
{
|
||||||
General.Map.Grid.ReadFromConfig(mapconfig, "grid", uselongtexturenames);
|
General.Map.Grid.ReadFromConfig(mapconfig, "grid", General.Map.Config.UseLongTextureNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. This reads stored selection groups from the map configuration
|
//mxd. This reads stored selection groups from the map configuration
|
||||||
|
|
|
@ -261,7 +261,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
// Static initializer
|
// Static initializer
|
||||||
internal static void Initialize()
|
internal static void Initialize()
|
||||||
{
|
{
|
||||||
emptylongname = Lump.MakeLongName("-");
|
emptylongname = Lump.MakeLongName("-", false);
|
||||||
virtualsectorvalue = new UniValue((int)UniversalType.Integer, 0);
|
virtualsectorvalue = new UniValue((int)UniversalType.Integer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3234,7 +3234,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ft = General.Map.Data.GetFullFlatName(s.FloorTexture);
|
string ft = General.Map.Data.GetFullFlatName(s.FloorTexture);
|
||||||
if (ft != s.FloorTexture)
|
if (ft != s.FloorTexture)
|
||||||
{
|
{
|
||||||
s.SetFloorTexture(ft);
|
s.SetFloorTexture(Lump.MakeLongName(ft));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3243,7 +3243,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ct = General.Map.Data.GetFullFlatName(s.CeilTexture);
|
string ct = General.Map.Data.GetFullFlatName(s.CeilTexture);
|
||||||
if (ct != s.CeilTexture)
|
if (ct != s.CeilTexture)
|
||||||
{
|
{
|
||||||
s.SetCeilTexture(ct);
|
s.SetCeilTexture(Lump.MakeLongName(ct));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3256,7 +3256,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ht = General.Map.Data.GetFullTextureName(s.HighTexture);
|
string ht = General.Map.Data.GetFullTextureName(s.HighTexture);
|
||||||
if (ht != s.HighTexture)
|
if (ht != s.HighTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureHigh(ht);
|
s.SetTextureHigh(Lump.MakeLongName(ht));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3265,7 +3265,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string mt = General.Map.Data.GetFullTextureName(s.MiddleTexture);
|
string mt = General.Map.Data.GetFullTextureName(s.MiddleTexture);
|
||||||
if (mt != s.MiddleTexture)
|
if (mt != s.MiddleTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureMid(mt);
|
s.SetTextureMid(Lump.MakeLongName(mt));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3274,7 +3274,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string lt = General.Map.Data.GetFullTextureName(s.LowTexture);
|
string lt = General.Map.Data.GetFullTextureName(s.LowTexture);
|
||||||
if (lt != s.LowTexture)
|
if (lt != s.LowTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureLow(lt);
|
s.SetTextureLow(Lump.MakeLongName(lt));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3294,7 +3294,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ft = GetShortTextureName(s.FloorTexture);
|
string ft = GetShortTextureName(s.FloorTexture);
|
||||||
if (ft != s.FloorTexture)
|
if (ft != s.FloorTexture)
|
||||||
{
|
{
|
||||||
s.SetFloorTexture(ft);
|
s.SetFloorTexture(Lump.MakeLongName(ft));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3303,7 +3303,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ct = GetShortTextureName(s.CeilTexture);
|
string ct = GetShortTextureName(s.CeilTexture);
|
||||||
if (ct != s.CeilTexture)
|
if (ct != s.CeilTexture)
|
||||||
{
|
{
|
||||||
s.SetCeilTexture(ct);
|
s.SetCeilTexture(Lump.MakeLongName(ct));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3316,7 +3316,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string ht = GetShortTextureName(s.HighTexture);
|
string ht = GetShortTextureName(s.HighTexture);
|
||||||
if (ht != s.HighTexture)
|
if (ht != s.HighTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureHigh(ht);
|
s.SetTextureHigh(Lump.MakeLongName(ht));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3325,7 +3325,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string mt = GetShortTextureName(s.MiddleTexture);
|
string mt = GetShortTextureName(s.MiddleTexture);
|
||||||
if (mt != s.MiddleTexture)
|
if (mt != s.MiddleTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureMid(mt);
|
s.SetTextureMid(Lump.MakeLongName(mt));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3334,7 +3334,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
string lt = GetShortTextureName(s.LowTexture);
|
string lt = GetShortTextureName(s.LowTexture);
|
||||||
if (lt != s.LowTexture)
|
if (lt != s.LowTexture)
|
||||||
{
|
{
|
||||||
s.SetTextureLow(lt);
|
s.SetTextureLow(Lump.MakeLongName(lt));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,18 +213,23 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
base.ReadWrite(s);
|
base.ReadWrite(s);
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if(s.IsWriting) {
|
if(s.IsWriting)
|
||||||
|
{
|
||||||
s.wInt(flags.Count);
|
s.wInt(flags.Count);
|
||||||
|
|
||||||
foreach(KeyValuePair<string, bool> f in flags) {
|
foreach(KeyValuePair<string, bool> f in flags)
|
||||||
|
{
|
||||||
s.wString(f.Key);
|
s.wString(f.Key);
|
||||||
s.wBool(f.Value);
|
s.wBool(f.Value);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
int c; s.rInt(out c);
|
int c; s.rInt(out c);
|
||||||
|
|
||||||
flags = new Dictionary<string, bool>(c, StringComparer.Ordinal);
|
flags = new Dictionary<string, bool>(c, StringComparer.Ordinal);
|
||||||
for(int i = 0; i < c; i++) {
|
for(int i = 0; i < c; i++)
|
||||||
|
{
|
||||||
string t; s.rString(out t);
|
string t; s.rString(out t);
|
||||||
bool b; s.rBool(out b);
|
bool b; s.rBool(out b);
|
||||||
flags.Add(t, b);
|
flags.Add(t, b);
|
||||||
|
@ -456,16 +461,16 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This checks and returns a flag without creating it
|
// This checks and returns a flag without creating it
|
||||||
public bool IsFlagSet(string flagname) {
|
public bool IsFlagSet(string flagname)
|
||||||
if(flags.ContainsKey(flagname))
|
{
|
||||||
return flags[flagname];
|
return flags.ContainsKey(flagname) && flags[flagname];
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sets a flag
|
// This sets a flag
|
||||||
public void SetFlag(string flagname, bool value) {
|
public void SetFlag(string flagname, bool value)
|
||||||
if(!flags.ContainsKey(flagname) || (IsFlagSet(flagname) != value)) {
|
{
|
||||||
|
if(!flags.ContainsKey(flagname) || (IsFlagSet(flagname) != value))
|
||||||
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
|
|
||||||
flags[flagname] = value;
|
flags[flagname] = value;
|
||||||
|
@ -473,14 +478,15 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a copy of the flags dictionary
|
// This returns a copy of the flags dictionary
|
||||||
public Dictionary<string, bool> GetFlags() {
|
public Dictionary<string, bool> GetFlags()
|
||||||
|
{
|
||||||
return new Dictionary<string, bool>(flags);
|
return new Dictionary<string, bool>(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This clears all flags
|
// This clears all flags
|
||||||
public void ClearFlags() {
|
public void ClearFlags()
|
||||||
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
|
|
||||||
flags.Clear();
|
flags.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -609,8 +615,8 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
// Apply changes
|
// Apply changes
|
||||||
this.floorheight = hfloor;
|
this.floorheight = hfloor;
|
||||||
this.ceilheight = hceil;
|
this.ceilheight = hceil;
|
||||||
SetFloorTexture(tfloor);
|
//SetFloorTexture(tfloor);
|
||||||
SetCeilTexture(tceil);
|
//SetCeilTexture(tceil);
|
||||||
this.effect = effect;
|
this.effect = effect;
|
||||||
this.tag = tag;
|
this.tag = tag;
|
||||||
this.flags = new Dictionary<string, bool>(flags); //mxd
|
this.flags = new Dictionary<string, bool>(flags); //mxd
|
||||||
|
@ -619,6 +625,19 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
this.floorslope = floorslope; //mxd
|
this.floorslope = floorslope; //mxd
|
||||||
this.ceiloffset = ceiloffset; //mxd
|
this.ceiloffset = ceiloffset; //mxd
|
||||||
this.ceilslope = ceilslope; //mxd
|
this.ceilslope = ceilslope; //mxd
|
||||||
|
|
||||||
|
//mxd. Set ceil texture
|
||||||
|
if(string.IsNullOrEmpty(tceil)) tceil = "-";
|
||||||
|
ceiltexname = tceil;
|
||||||
|
longceiltexname = Lump.MakeLongName(ceiltexname);
|
||||||
|
|
||||||
|
//mxd. Set floor texture
|
||||||
|
if(string.IsNullOrEmpty(tfloor)) tfloor = "-"; //mxd
|
||||||
|
floortexname = tfloor;
|
||||||
|
longfloortexname = Lump.MakeLongName(tfloor);
|
||||||
|
|
||||||
|
//mxd. Map is changed
|
||||||
|
General.Map.IsChanged = true;
|
||||||
updateneeded = true;
|
updateneeded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -629,7 +648,7 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
||||||
floortexname = name;
|
floortexname = name;
|
||||||
longfloortexname = Lump.MakeLongName(name);
|
longfloortexname = General.Map.Data.GetFullLongFlatName(Lump.MakeLongName(name)); //mxd
|
||||||
updateneeded = true;
|
updateneeded = true;
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
@ -641,24 +660,44 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
||||||
ceiltexname = name;
|
ceiltexname = name;
|
||||||
longceiltexname = Lump.MakeLongName(name);
|
longceiltexname = General.Map.Data.GetFullLongFlatName(Lump.MakeLongName(name)); //mxd
|
||||||
|
updateneeded = true;
|
||||||
|
General.Map.IsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This sets texture lookup
|
||||||
|
internal void SetFloorTexture(long hash)
|
||||||
|
{
|
||||||
|
BeforePropsChange();
|
||||||
|
|
||||||
|
longfloortexname = hash;
|
||||||
|
updateneeded = true;
|
||||||
|
General.Map.IsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This sets texture lookup
|
||||||
|
internal void SetCeilTexture(long hash)
|
||||||
|
{
|
||||||
|
BeforePropsChange();
|
||||||
|
|
||||||
|
longceiltexname = hash;
|
||||||
updateneeded = true;
|
updateneeded = true;
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
public void UpdateFogColor() {
|
public void UpdateFogColor()
|
||||||
|
{
|
||||||
useOutsideFog = General.Map.Data.MapInfo.HasOutsideFogColor && ceiltexname == General.Map.Config.SkyFlatName;
|
useOutsideFog = General.Map.Data.MapInfo.HasOutsideFogColor && ceiltexname == General.Map.Config.SkyFlatName;
|
||||||
|
|
||||||
if(General.Map.UDMF && Fields.ContainsKey("fadecolor")) {
|
if(General.Map.UDMF && Fields.ContainsKey("fadecolor"))
|
||||||
fogColor = new Color4((int)Fields["fadecolor"].Value);
|
fogColor = new Color4((int)Fields["fadecolor"].Value);
|
||||||
} else if(useOutsideFog) {
|
else if(useOutsideFog)
|
||||||
fogColor = General.Map.Data.MapInfo.OutsideFogColor;
|
fogColor = General.Map.Data.MapInfo.OutsideFogColor;
|
||||||
} else if(General.Map.Data.MapInfo.HasFadeColor) {
|
else if(General.Map.Data.MapInfo.HasFadeColor)
|
||||||
fogColor = General.Map.Data.MapInfo.FadeColor;
|
fogColor = General.Map.Data.MapInfo.FadeColor;
|
||||||
} else {
|
else
|
||||||
fogColor = new Color4();
|
fogColor = new Color4();
|
||||||
}
|
|
||||||
|
|
||||||
hasFogColor = fogColor.Red > 0 || fogColor.Green > 0 || fogColor.Blue > 0;
|
hasFogColor = fogColor.Red > 0 || fogColor.Green > 0 || fogColor.Blue > 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,19 +169,24 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
base.ReadWrite(s);
|
base.ReadWrite(s);
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
if(s.IsWriting) {
|
if(s.IsWriting)
|
||||||
|
{
|
||||||
s.wInt(flags.Count);
|
s.wInt(flags.Count);
|
||||||
|
|
||||||
foreach(KeyValuePair<string, bool> f in flags) {
|
foreach(KeyValuePair<string, bool> f in flags)
|
||||||
|
{
|
||||||
s.wString(f.Key);
|
s.wString(f.Key);
|
||||||
s.wBool(f.Value);
|
s.wBool(f.Value);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
int c;
|
int c;
|
||||||
s.rInt(out c);
|
s.rInt(out c);
|
||||||
|
|
||||||
flags = new Dictionary<string, bool>(c, StringComparer.Ordinal);
|
flags = new Dictionary<string, bool>(c, StringComparer.Ordinal);
|
||||||
for(int i = 0; i < c; i++) {
|
for(int i = 0; i < c; i++)
|
||||||
|
{
|
||||||
string t;
|
string t;
|
||||||
s.rString(out t);
|
s.rString(out t);
|
||||||
bool b;
|
bool b;
|
||||||
|
@ -302,7 +307,8 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
// This sets a flag
|
// This sets a flag
|
||||||
public void SetFlag(string flagname, bool value)
|
public void SetFlag(string flagname, bool value)
|
||||||
{
|
{
|
||||||
if(!flags.ContainsKey(flagname) || (IsFlagSet(flagname) != value)) {
|
if(!flags.ContainsKey(flagname) || (IsFlagSet(flagname) != value))
|
||||||
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
flags[flagname] = value;
|
flags[flagname] = value;
|
||||||
}
|
}
|
||||||
|
@ -375,7 +381,8 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
// The middle texture can be removed regardless of any sector tag or linedef action
|
// The middle texture can be removed regardless of any sector tag or linedef action
|
||||||
if(!MiddleRequired() && removemiddle) {
|
if(!MiddleRequired() && removemiddle)
|
||||||
|
{
|
||||||
if(!changed) BeforePropsChange(); //mxd
|
if(!changed) BeforePropsChange(); //mxd
|
||||||
this.texnamemid = "-";
|
this.texnamemid = "-";
|
||||||
this.longtexnamemid = MapSet.EmptyLongName;
|
this.longtexnamemid = MapSet.EmptyLongName;
|
||||||
|
@ -565,9 +572,24 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
this.offsetx = offsetx;
|
this.offsetx = offsetx;
|
||||||
this.offsety = offsety;
|
this.offsety = offsety;
|
||||||
this.flags = new Dictionary<string, bool>(flags); //mxd
|
this.flags = new Dictionary<string, bool>(flags); //mxd
|
||||||
SetTextureMid(tmid);
|
//SetTextureMid(tmid);
|
||||||
SetTextureLow(tlow);
|
//SetTextureLow(tlow);
|
||||||
SetTextureHigh(thigh);
|
//SetTextureHigh(thigh);
|
||||||
|
|
||||||
|
//mxd. Set mid texture
|
||||||
|
texnamemid = string.IsNullOrEmpty(tmid) ? "-" : tmid;
|
||||||
|
longtexnamemid = Lump.MakeLongName(tmid);
|
||||||
|
|
||||||
|
//mxd. Set low texture
|
||||||
|
texnamelow = string.IsNullOrEmpty(tlow) ? "-" : tlow;
|
||||||
|
longtexnamelow = Lump.MakeLongName(tlow);
|
||||||
|
|
||||||
|
//mxd. Set high texture
|
||||||
|
texnamehigh = string.IsNullOrEmpty(thigh) ? "-" : thigh;
|
||||||
|
longtexnamehigh = Lump.MakeLongName(texnamehigh);
|
||||||
|
|
||||||
|
//mxd. Map is changed
|
||||||
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sets texture
|
// This sets texture
|
||||||
|
@ -575,9 +597,8 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
{
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
texnamehigh = string.IsNullOrEmpty(name) ? "-" : name; //mxd
|
||||||
texnamehigh = name;
|
longtexnamehigh = General.Map.Data.GetFullLongTextureName(Lump.MakeLongName(name)); //mxd
|
||||||
longtexnamehigh = Lump.MakeLongName(name);
|
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -586,9 +607,8 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
{
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(name)) name = "-"; //mxd
|
texnamemid = string.IsNullOrEmpty(name) ? "-" : name; //mxd;
|
||||||
texnamemid = name;
|
longtexnamemid = General.Map.Data.GetFullLongTextureName(Lump.MakeLongName(name)); //mxd
|
||||||
longtexnamemid = Lump.MakeLongName(name);
|
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -597,9 +617,35 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
{
|
{
|
||||||
BeforePropsChange();
|
BeforePropsChange();
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(name)) name = "-"; //mxd
|
texnamelow = string.IsNullOrEmpty(name) ? "-" : name; //mxd;
|
||||||
texnamelow = name;
|
longtexnamelow = General.Map.Data.GetFullLongTextureName(Lump.MakeLongName(name)); //mxd
|
||||||
longtexnamelow = Lump.MakeLongName(name);
|
General.Map.IsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This sets texture lookup
|
||||||
|
public void SetTextureHigh(long hash)
|
||||||
|
{
|
||||||
|
BeforePropsChange();
|
||||||
|
|
||||||
|
longtexnamehigh = hash;
|
||||||
|
General.Map.IsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This sets texture lookup
|
||||||
|
public void SetTextureMid(long hash)
|
||||||
|
{
|
||||||
|
BeforePropsChange();
|
||||||
|
|
||||||
|
longtexnamemid = hash;
|
||||||
|
General.Map.IsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd. This sets texture lookup
|
||||||
|
public void SetTextureLow(long hash)
|
||||||
|
{
|
||||||
|
BeforePropsChange();
|
||||||
|
|
||||||
|
longtexnamelow = hash;
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
Source/Core/Properties/Resources.Designer.cs
generated
14
Source/Core/Properties/Resources.Designer.cs
generated
|
@ -130,6 +130,13 @@ namespace CodeImp.DoomBuilder.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static System.Drawing.Bitmap Collapse {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Collapse", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static System.Drawing.Bitmap ColorPick {
|
internal static System.Drawing.Bitmap ColorPick {
|
||||||
get {
|
get {
|
||||||
object obj = ResourceManager.GetObject("ColorPick", resourceCulture);
|
object obj = ResourceManager.GetObject("ColorPick", resourceCulture);
|
||||||
|
@ -165,6 +172,13 @@ namespace CodeImp.DoomBuilder.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static System.Drawing.Bitmap Expand {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Expand", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static System.Drawing.Bitmap Failed {
|
internal static System.Drawing.Bitmap Failed {
|
||||||
get {
|
get {
|
||||||
object obj = ResourceManager.GetObject("Failed", resourceCulture);
|
object obj = ResourceManager.GetObject("Failed", resourceCulture);
|
||||||
|
|
|
@ -454,4 +454,10 @@
|
||||||
<data name="WordWrap" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="WordWrap" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\WordWrap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\WordWrap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Collapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Collapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Expand" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Expand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1161,7 +1161,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
graphics.Shaders.Things2D.BeginPass(1);
|
graphics.Shaders.Things2D.BeginPass(1);
|
||||||
float spriteShrink = General.Settings.SquareThings ? THING_SPRITE_SHRINK : THING_SPRITE_SHRINK * 2;
|
float spriteShrink = General.Settings.SquareThings ? THING_SPRITE_SHRINK : THING_SPRITE_SHRINK * 2;
|
||||||
|
|
||||||
foreach(KeyValuePair<int, List<Thing>> group in thingsByType){
|
foreach(KeyValuePair<int, List<Thing>> group in thingsByType)
|
||||||
|
{
|
||||||
// Find thing information
|
// Find thing information
|
||||||
ThingTypeInfo info = General.Map.Data.GetThingInfo(group.Key);
|
ThingTypeInfo info = General.Map.Data.GetThingInfo(group.Key);
|
||||||
|
|
||||||
|
@ -1170,7 +1171,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
|
|
||||||
ImageData sprite = General.Map.Data.GetSpriteImage(info.Sprite);
|
ImageData sprite = General.Map.Data.GetSpriteImage(info.Sprite);
|
||||||
if (sprite == null) continue;
|
if (sprite == null) continue;
|
||||||
if (!sprite.IsImageLoaded) {
|
if (!sprite.IsImageLoaded)
|
||||||
|
{
|
||||||
sprite.SetUsedInMap(true);
|
sprite.SetUsedInMap(true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1190,30 +1192,35 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
float spriteWidth, spriteHeight;
|
float spriteWidth, spriteHeight;
|
||||||
float spriteScale = (group.Value[0].FixedSize && (scale > 1.0f)) ? 1.0f : scale;
|
float spriteScale = (group.Value[0].FixedSize && (scale > 1.0f)) ? 1.0f : scale;
|
||||||
|
|
||||||
if(sprite.Width > sprite.Height) {
|
if(sprite.Width > sprite.Height)
|
||||||
|
{
|
||||||
spriteWidth = info.Radius * spriteScale - spriteShrink * spriteScale;
|
spriteWidth = info.Radius * spriteScale - spriteShrink * spriteScale;
|
||||||
spriteHeight = spriteWidth * ((float)sprite.Height / sprite.Width);
|
spriteHeight = spriteWidth * ((float)sprite.Height / sprite.Width);
|
||||||
if(spriteWidth < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
if(spriteWidth < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
||||||
|
}
|
||||||
} else if(sprite.Width < sprite.Height) {
|
else if(sprite.Width < sprite.Height)
|
||||||
|
{
|
||||||
spriteHeight = info.Radius * spriteScale - spriteShrink * spriteScale;
|
spriteHeight = info.Radius * spriteScale - spriteShrink * spriteScale;
|
||||||
spriteWidth = spriteHeight * ((float)sprite.Width / sprite.Height);
|
spriteWidth = spriteHeight * ((float)sprite.Width / sprite.Height);
|
||||||
if(spriteHeight < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
if(spriteHeight < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
||||||
|
}
|
||||||
} else {
|
else
|
||||||
|
{
|
||||||
spriteWidth = info.Radius * spriteScale - spriteShrink * spriteScale;
|
spriteWidth = info.Radius * spriteScale - spriteShrink * spriteScale;
|
||||||
spriteHeight = spriteWidth;
|
spriteHeight = spriteWidth;
|
||||||
if(spriteWidth < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
if(spriteWidth < MINIMUM_SPRITE_RADIUS) continue; //don't render tiny little sprites
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(Thing t in group.Value) {
|
foreach(Thing t in group.Value)
|
||||||
|
{
|
||||||
if(t.IsModel && (General.Settings.GZDrawModelsMode == ModelRenderMode.ALL || (General.Settings.GZDrawModelsMode == ModelRenderMode.SELECTION && t.Selected))) continue;
|
if(t.IsModel && (General.Settings.GZDrawModelsMode == ModelRenderMode.ALL || (General.Settings.GZDrawModelsMode == ModelRenderMode.SELECTION && t.Selected))) continue;
|
||||||
CreateThingSpriteVerts(thingsByPosition[t], spriteWidth, spriteHeight, ref verts, buffercount * 6, t.Selected ? selectionColor : 0xFFFFFF);
|
CreateThingSpriteVerts(thingsByPosition[t], spriteWidth, spriteHeight, ref verts, buffercount * 6, t.Selected ? selectionColor : 0xFFFFFF);
|
||||||
buffercount++;
|
buffercount++;
|
||||||
totalcount++;
|
totalcount++;
|
||||||
|
|
||||||
// Buffer filled?
|
// Buffer filled?
|
||||||
if(buffercount == locksize) {
|
if(buffercount == locksize)
|
||||||
|
{
|
||||||
// Write to buffer
|
// Write to buffer
|
||||||
stream = thingsvertices.Lock(0, locksize * 6 * FlatVertex.Stride, LockFlags.Discard);
|
stream = thingsvertices.Lock(0, locksize * 6 * FlatVertex.Stride, LockFlags.Discard);
|
||||||
stream.WriteRange(verts, 0, buffercount * 6);
|
stream.WriteRange(verts, 0, buffercount * 6);
|
||||||
|
@ -1257,7 +1264,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
buffercount = 0;
|
buffercount = 0;
|
||||||
totalcount = 0;
|
totalcount = 0;
|
||||||
|
|
||||||
foreach (KeyValuePair<Thing, Vector2D> group in thingsByPosition) {
|
foreach (KeyValuePair<Thing, Vector2D> group in thingsByPosition)
|
||||||
|
{
|
||||||
if(!group.Key.IsDirectional) continue;
|
if(!group.Key.IsDirectional) continue;
|
||||||
|
|
||||||
CreateThingArrowVerts(group.Key, ref verts, group.Value, buffercount * 6);
|
CreateThingArrowVerts(group.Key, ref verts, group.Value, buffercount * 6);
|
||||||
|
@ -1265,7 +1273,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
totalcount++;
|
totalcount++;
|
||||||
|
|
||||||
// Buffer filled?
|
// Buffer filled?
|
||||||
if(buffercount == locksize) {
|
if(buffercount == locksize)
|
||||||
|
{
|
||||||
// Write to buffer
|
// Write to buffer
|
||||||
stream = thingsvertices.Lock(0, locksize * 6 * FlatVertex.Stride, LockFlags.Discard);
|
stream = thingsvertices.Lock(0, locksize * 6 * FlatVertex.Stride, LockFlags.Discard);
|
||||||
stream.WriteRange(verts, 0, buffercount * 6);
|
stream.WriteRange(verts, 0, buffercount * 6);
|
||||||
|
|
|
@ -637,7 +637,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
img = General.Map.Data.WhiteTexture;
|
img = General.Map.Data.WhiteTexture;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(longimagename == Lump.MakeLongName("-")) //mxd
|
else if(longimagename == MapSet.EmptyLongName) //mxd
|
||||||
{
|
{
|
||||||
img = General.Map.Data.MissingTexture3D;
|
img = General.Map.Data.MissingTexture3D;
|
||||||
}
|
}
|
||||||
|
|
BIN
Source/Core/Resources/Collapse.png
Normal file
BIN
Source/Core/Resources/Collapse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 494 B |
BIN
Source/Core/Resources/Expand.png
Normal file
BIN
Source/Core/Resources/Expand.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 490 B |
|
@ -17,13 +17,15 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
|
|
||||||
public MapOptions Options { get { return options; } }
|
public MapOptions Options { get { return options; } }
|
||||||
|
|
||||||
public ChangeMapForm(string filepathname, MapOptions options) {
|
public ChangeMapForm(string filepathname, MapOptions options)
|
||||||
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.options = options;
|
this.options = options;
|
||||||
this.filepathname = filepathname;
|
this.filepathname = filepathname;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadSettings() {
|
private void LoadSettings()
|
||||||
|
{
|
||||||
int scanindex, checkoffset;
|
int scanindex, checkoffset;
|
||||||
int lumpsfound, lumpsrequired = 0;
|
int lumpsfound, lumpsrequired = 0;
|
||||||
string lumpname;
|
string lumpname;
|
||||||
|
@ -84,9 +86,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
IDictionary maplumpnames = ci.Configuration.ReadSetting("maplumpnames", new Hashtable());
|
IDictionary maplumpnames = ci.Configuration.ReadSetting("maplumpnames", new Hashtable());
|
||||||
|
|
||||||
// Count how many required lumps we have to find
|
// Count how many required lumps we have to find
|
||||||
foreach(DictionaryEntry ml in maplumpnames) {
|
foreach(DictionaryEntry ml in maplumpnames)
|
||||||
|
{
|
||||||
// Ignore the map header (it will not be found because the name is different)
|
// Ignore the map header (it will not be found because the name is different)
|
||||||
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER) {
|
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER)
|
||||||
|
{
|
||||||
// Read lump setting and count it
|
// Read lump setting and count it
|
||||||
if(ci.Configuration.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
if(ci.Configuration.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
||||||
lumpsrequired++;
|
lumpsrequired++;
|
||||||
|
@ -94,16 +98,19 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
// Go for all the lumps in the wad
|
// Go for all the lumps in the wad
|
||||||
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++) {
|
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++)
|
||||||
|
{
|
||||||
// Make sure this lump is not part of the map
|
// Make sure this lump is not part of the map
|
||||||
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name)) {
|
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name))
|
||||||
|
{
|
||||||
// Reset check
|
// Reset check
|
||||||
lumpsfound = 0;
|
lumpsfound = 0;
|
||||||
checkoffset = 1;
|
checkoffset = 1;
|
||||||
|
|
||||||
// Continue while still within bounds and lumps are still recognized
|
// Continue while still within bounds and lumps are still recognized
|
||||||
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
||||||
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name)) {
|
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name))
|
||||||
|
{
|
||||||
// Count the lump when it is marked as required
|
// Count the lump when it is marked as required
|
||||||
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
||||||
if(ci.Configuration.ReadSetting("maplumpnames." + lumpname + ".required", false))
|
if(ci.Configuration.ReadSetting("maplumpnames." + lumpname + ".required", false))
|
||||||
|
@ -128,9 +135,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
mapslist.Sort();
|
mapslist.Sort();
|
||||||
|
|
||||||
//select current map
|
//select current map
|
||||||
foreach(ListViewItem item in mapslist.Items) {
|
foreach(ListViewItem item in mapslist.Items)
|
||||||
|
{
|
||||||
// Was this item previously selected?
|
// Was this item previously selected?
|
||||||
if(item.Text == options.LevelName) {
|
if(item.Text == options.LevelName)
|
||||||
|
{
|
||||||
// Select it again
|
// Select it again
|
||||||
item.Selected = true;
|
item.Selected = true;
|
||||||
break;
|
break;
|
||||||
|
@ -145,16 +154,19 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
Cursor.Current = Cursors.Default;
|
Cursor.Current = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeMapForm_Shown(object sender, EventArgs e){
|
private void ChangeMapForm_Shown(object sender, EventArgs e)
|
||||||
|
{
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void mapslist_DoubleClick(object sender, EventArgs e) {
|
private void mapslist_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
// Click OK
|
// Click OK
|
||||||
if(mapslist.SelectedItems.Count > 0) apply.PerformClick();
|
if(mapslist.SelectedItems.Count > 0) apply.PerformClick();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void apply_Click(object sender, EventArgs e) {
|
private void apply_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
if (mapslist.SelectedItems.Count < 1)
|
if (mapslist.SelectedItems.Count < 1)
|
||||||
{
|
{
|
||||||
General.ShowWarningMessage("Please select a map first!", MessageBoxButtons.OK);
|
General.ShowWarningMessage("Please select a map first!", MessageBoxButtons.OK);
|
||||||
|
@ -166,16 +178,20 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new map options
|
// Create new map options, pass settings which should stay unchanged
|
||||||
options = new MapOptions(mapsettings, mapslist.SelectedItems[0].Text);
|
//TODO: are there other settings which should stay unchanged?..
|
||||||
|
MapOptions newoptions = new MapOptions(mapsettings, mapslist.SelectedItems[0].Text);
|
||||||
|
newoptions.ConfigFile = options.ConfigFile;
|
||||||
|
options = newoptions;
|
||||||
|
|
||||||
// Hide window
|
// Hide window
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cancel_Click(object sender, EventArgs e) {
|
private void cancel_Click(object sender, EventArgs e)
|
||||||
// Just hide window
|
{
|
||||||
|
// Just hide the window
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,13 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
this.Opacity = 0; //mxd
|
this.Opacity = 0; //mxd
|
||||||
|
|
||||||
|
//mxd. And now, let's hope this doesn't horribly break anything...
|
||||||
|
if(!(this is MainForm))
|
||||||
|
{
|
||||||
|
this.KeyPreview = true;
|
||||||
|
this.KeyUp += OnKeyUp;
|
||||||
|
}
|
||||||
|
|
||||||
// Create a timer that we need to show the form
|
// Create a timer that we need to show the form
|
||||||
formshowtimer = new Timer();
|
formshowtimer = new Timer();
|
||||||
formshowtimer.Interval = 1;
|
formshowtimer.Interval = 1;
|
||||||
|
@ -73,11 +80,12 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Block this. MainForm overrides this, so it's only called from child DelayedForms (mxd).
|
//mxd. Special handling to call "save screenshot" actions from any form,
|
||||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
//which inherits form DelayedForm and either doesn't override OnKeyUp, or calls base.OnKeyUp
|
||||||
|
private void OnKeyUp(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if(Form.ActiveForm == this) ProcessSaveScreenshotAction((int)keyData);
|
e.Handled = (Form.ActiveForm == this && ProcessSaveScreenshotAction((int)e.KeyData));
|
||||||
return false;
|
if(e.Handled) e.SuppressKeyPress = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mxd. Handle screenshot saving from any form
|
// mxd. Handle screenshot saving from any form
|
||||||
|
@ -97,14 +105,14 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
[BeginAction("savescreenshot", BaseAction = true)]
|
[EndAction("savescreenshot", BaseAction = true)]
|
||||||
internal void SaveScreenshot()
|
internal void SaveScreenshot()
|
||||||
{
|
{
|
||||||
if(Form.ActiveForm == this) General.MainWindow.SaveScreenshot(false);
|
if(Form.ActiveForm == this) General.MainWindow.SaveScreenshot(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
[BeginAction("saveeditareascreenshot", BaseAction = true)]
|
[EndAction("saveeditareascreenshot", BaseAction = true)]
|
||||||
internal void SaveEditAreaScreenshot()
|
internal void SaveEditAreaScreenshot()
|
||||||
{
|
{
|
||||||
if(Form.ActiveForm == this) General.MainWindow.SaveScreenshot(true);
|
if(Form.ActiveForm == this) General.MainWindow.SaveScreenshot(true);
|
||||||
|
|
|
@ -1428,7 +1428,8 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Sometimes it's handeled by RenderTargetControl, not by MainForm leading to keys being "stuck"
|
//mxd. Sometimes it's handeled by RenderTargetControl, not by MainForm leading to keys being "stuck"
|
||||||
private void display_OnKeyReleased(object sender, KeyEventArgs e) {
|
private void display_OnKeyReleased(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
MainForm_KeyUp(sender, e);
|
MainForm_KeyUp(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
35
Source/Core/Windows/MapOptionsForm.Designer.cs
generated
35
Source/Core/Windows/MapOptionsForm.Designer.cs
generated
|
@ -41,7 +41,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.apply = new System.Windows.Forms.Button();
|
this.apply = new System.Windows.Forms.Button();
|
||||||
this.cancel = new System.Windows.Forms.Button();
|
this.cancel = new System.Windows.Forms.Button();
|
||||||
this.panelres = new System.Windows.Forms.GroupBox();
|
this.panelres = new System.Windows.Forms.GroupBox();
|
||||||
this.uselongtexturenames = new System.Windows.Forms.CheckBox();
|
|
||||||
this.strictpatches = new System.Windows.Forms.CheckBox();
|
this.strictpatches = new System.Windows.Forms.CheckBox();
|
||||||
this.datalocations = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
|
this.datalocations = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
|
||||||
label3 = new System.Windows.Forms.Label();
|
label3 = new System.Windows.Forms.Label();
|
||||||
|
@ -64,12 +63,12 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
label2.Location = new System.Drawing.Point(13, 83);
|
label2.AutoSize = true;
|
||||||
|
label2.Location = new System.Drawing.Point(58, 83);
|
||||||
label2.Name = "label2";
|
label2.Name = "label2";
|
||||||
label2.Size = new System.Drawing.Size(110, 14);
|
label2.Size = new System.Drawing.Size(65, 14);
|
||||||
label2.TabIndex = 7;
|
label2.TabIndex = 7;
|
||||||
label2.Text = "Level name:";
|
label2.Text = "Level name:";
|
||||||
label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
|
@ -77,7 +76,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
label1.Name = "label1";
|
label1.Name = "label1";
|
||||||
label1.Size = new System.Drawing.Size(110, 14);
|
label1.Size = new System.Drawing.Size(110, 14);
|
||||||
label1.TabIndex = 5;
|
label1.TabIndex = 5;
|
||||||
label1.Text = "Game configuration:";
|
label1.Text = "Game Configuration:";
|
||||||
label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// panelsettings
|
// panelsettings
|
||||||
|
@ -125,7 +124,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.scriptcompilerlabel.Name = "scriptcompilerlabel";
|
this.scriptcompilerlabel.Name = "scriptcompilerlabel";
|
||||||
this.scriptcompilerlabel.Size = new System.Drawing.Size(110, 14);
|
this.scriptcompilerlabel.Size = new System.Drawing.Size(110, 14);
|
||||||
this.scriptcompilerlabel.TabIndex = 11;
|
this.scriptcompilerlabel.TabIndex = 11;
|
||||||
this.scriptcompilerlabel.Text = "Script type:";
|
this.scriptcompilerlabel.Text = "Script Type:";
|
||||||
this.scriptcompilerlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
this.scriptcompilerlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// levelname
|
// levelname
|
||||||
|
@ -153,7 +152,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
label4.AutoSize = true;
|
label4.AutoSize = true;
|
||||||
label4.Location = new System.Drawing.Point(15, 210);
|
label4.Location = new System.Drawing.Point(15, 190);
|
||||||
label4.Name = "label4";
|
label4.Name = "label4";
|
||||||
label4.Size = new System.Drawing.Size(312, 42);
|
label4.Size = new System.Drawing.Size(312, 42);
|
||||||
label4.TabIndex = 17;
|
label4.TabIndex = 17;
|
||||||
|
@ -164,7 +163,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
// apply
|
// apply
|
||||||
//
|
//
|
||||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.apply.Location = new System.Drawing.Point(297, 400);
|
this.apply.Location = new System.Drawing.Point(297, 378);
|
||||||
this.apply.Name = "apply";
|
this.apply.Name = "apply";
|
||||||
this.apply.Size = new System.Drawing.Size(112, 25);
|
this.apply.Size = new System.Drawing.Size(112, 25);
|
||||||
this.apply.TabIndex = 2;
|
this.apply.TabIndex = 2;
|
||||||
|
@ -176,7 +175,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//
|
//
|
||||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
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.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.cancel.Location = new System.Drawing.Point(179, 400);
|
this.cancel.Location = new System.Drawing.Point(179, 378);
|
||||||
this.cancel.Name = "cancel";
|
this.cancel.Name = "cancel";
|
||||||
this.cancel.Size = new System.Drawing.Size(112, 25);
|
this.cancel.Size = new System.Drawing.Size(112, 25);
|
||||||
this.cancel.TabIndex = 3;
|
this.cancel.TabIndex = 3;
|
||||||
|
@ -188,27 +187,16 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//
|
//
|
||||||
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.panelres.Controls.Add(this.uselongtexturenames);
|
|
||||||
this.panelres.Controls.Add(this.strictpatches);
|
this.panelres.Controls.Add(this.strictpatches);
|
||||||
this.panelres.Controls.Add(this.datalocations);
|
this.panelres.Controls.Add(this.datalocations);
|
||||||
this.panelres.Controls.Add(label4);
|
this.panelres.Controls.Add(label4);
|
||||||
this.panelres.Location = new System.Drawing.Point(12, 130);
|
this.panelres.Location = new System.Drawing.Point(12, 130);
|
||||||
this.panelres.Name = "panelres";
|
this.panelres.Name = "panelres";
|
||||||
this.panelres.Size = new System.Drawing.Size(397, 260);
|
this.panelres.Size = new System.Drawing.Size(397, 240);
|
||||||
this.panelres.TabIndex = 1;
|
this.panelres.TabIndex = 1;
|
||||||
this.panelres.TabStop = false;
|
this.panelres.TabStop = false;
|
||||||
this.panelres.Text = " Resources ";
|
this.panelres.Text = " Resources ";
|
||||||
//
|
//
|
||||||
// uselongtexturenames
|
|
||||||
//
|
|
||||||
this.uselongtexturenames.AutoSize = true;
|
|
||||||
this.uselongtexturenames.Location = new System.Drawing.Point(15, 51);
|
|
||||||
this.uselongtexturenames.Name = "uselongtexturenames";
|
|
||||||
this.uselongtexturenames.Size = new System.Drawing.Size(140, 18);
|
|
||||||
this.uselongtexturenames.TabIndex = 21;
|
|
||||||
this.uselongtexturenames.Text = "Use long texture names";
|
|
||||||
this.uselongtexturenames.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// strictpatches
|
// strictpatches
|
||||||
//
|
//
|
||||||
this.strictpatches.AutoSize = true;
|
this.strictpatches.AutoSize = true;
|
||||||
|
@ -224,7 +212,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.datalocations.AllowDrop = true;
|
this.datalocations.AllowDrop = true;
|
||||||
this.datalocations.DialogOffset = new System.Drawing.Point(40, 20);
|
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.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, 75);
|
this.datalocations.Location = new System.Drawing.Point(15, 57);
|
||||||
this.datalocations.Name = "datalocations";
|
this.datalocations.Name = "datalocations";
|
||||||
this.datalocations.Size = new System.Drawing.Size(368, 130);
|
this.datalocations.Size = new System.Drawing.Size(368, 130);
|
||||||
this.datalocations.TabIndex = 0;
|
this.datalocations.TabIndex = 0;
|
||||||
|
@ -235,7 +223,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.CancelButton = this.cancel;
|
this.CancelButton = this.cancel;
|
||||||
this.ClientSize = new System.Drawing.Size(421, 433);
|
this.ClientSize = new System.Drawing.Size(421, 411);
|
||||||
this.Controls.Add(this.panelres);
|
this.Controls.Add(this.panelres);
|
||||||
this.Controls.Add(this.cancel);
|
this.Controls.Add(this.cancel);
|
||||||
this.Controls.Add(this.apply);
|
this.Controls.Add(this.apply);
|
||||||
|
@ -271,7 +259,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private System.Windows.Forms.ComboBox scriptcompiler;
|
private System.Windows.Forms.ComboBox scriptcompiler;
|
||||||
private System.Windows.Forms.Label scriptcompilerlabel;
|
private System.Windows.Forms.Label scriptcompilerlabel;
|
||||||
private System.Windows.Forms.Label examplelabel;
|
private System.Windows.Forms.Label examplelabel;
|
||||||
private System.Windows.Forms.CheckBox uselongtexturenames;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
public MapOptionsForm(MapOptions options, bool newmap)
|
public MapOptionsForm(MapOptions options, bool newmap)
|
||||||
{
|
{
|
||||||
this.newmap = newmap;
|
this.newmap = newmap;
|
||||||
int index;
|
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
@ -58,7 +57,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!General.Configs[i].Enabled) continue;
|
if(!General.Configs[i].Enabled) continue;
|
||||||
|
|
||||||
// Add config name to list
|
// Add config name to list
|
||||||
index = config.Items.Add(General.Configs[i]);
|
int index = config.Items.Add(General.Configs[i]);
|
||||||
|
|
||||||
//mxd.
|
//mxd.
|
||||||
if(newmap && !string.IsNullOrEmpty(General.Settings.LastUsedConfigName) && General.Configs[i].Name == General.Settings.LastUsedConfigName)
|
if(newmap && !string.IsNullOrEmpty(General.Settings.LastUsedConfigName) && General.Configs[i].Name == General.Settings.LastUsedConfigName)
|
||||||
|
@ -169,16 +168,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Long texture names
|
|
||||||
if(!newmap && !uselongtexturenames.Checked && options.UseLongTextureNames &&
|
|
||||||
MessageBox.Show(this, "Switching to short texture names may lead to texture and flat name conflicts. Do you want to continue?",
|
|
||||||
Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
options.UseLongTextureNames = uselongtexturenames.Checked;
|
|
||||||
|
|
||||||
// Collect information
|
// Collect information
|
||||||
ConfigurationInfo configinfo = config.SelectedItem as ConfigurationInfo; //mxd
|
ConfigurationInfo configinfo = config.SelectedItem as ConfigurationInfo; //mxd
|
||||||
DataLocationList locations = datalocations.GetResources();
|
DataLocationList locations = datalocations.GetResources();
|
||||||
|
@ -322,10 +311,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
scriptcompiler.SelectedIndex = -1;
|
scriptcompiler.SelectedIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Long texture names
|
|
||||||
uselongtexturenames.Enabled = ci.SupportsLongTextureNames;
|
|
||||||
uselongtexturenames.Checked = (ci.SupportsLongTextureNames && options.UseLongTextureNames);
|
|
||||||
|
|
||||||
// Show resources
|
// Show resources
|
||||||
datalocations.FixedResourceLocationList(ci.Resources);
|
datalocations.FixedResourceLocationList(ci.Resources);
|
||||||
|
|
29
Source/Core/Windows/OpenMapOptionsForm.Designer.cs
generated
29
Source/Core/Windows/OpenMapOptionsForm.Designer.cs
generated
|
@ -33,7 +33,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
System.Windows.Forms.Label label2;
|
System.Windows.Forms.Label label2;
|
||||||
System.Windows.Forms.Label label3;
|
System.Windows.Forms.Label label3;
|
||||||
this.panelres = new System.Windows.Forms.GroupBox();
|
this.panelres = new System.Windows.Forms.GroupBox();
|
||||||
this.uselongtexturenames = new System.Windows.Forms.CheckBox();
|
|
||||||
this.strictpatches = new System.Windows.Forms.CheckBox();
|
this.strictpatches = new System.Windows.Forms.CheckBox();
|
||||||
this.datalocations = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
|
this.datalocations = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
|
||||||
this.apply = new System.Windows.Forms.Button();
|
this.apply = new System.Windows.Forms.Button();
|
||||||
|
@ -59,7 +58,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
label1.Name = "label1";
|
label1.Name = "label1";
|
||||||
label1.Size = new System.Drawing.Size(120, 14);
|
label1.Size = new System.Drawing.Size(120, 14);
|
||||||
label1.TabIndex = 14;
|
label1.TabIndex = 14;
|
||||||
label1.Text = "Game configuration:";
|
label1.Text = "Game Configuration:";
|
||||||
label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
|
@ -74,7 +73,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
label3.AutoSize = true;
|
label3.AutoSize = true;
|
||||||
label3.Location = new System.Drawing.Point(14, 210);
|
label3.Location = new System.Drawing.Point(14, 191);
|
||||||
label3.Name = "label3";
|
label3.Name = "label3";
|
||||||
label3.Size = new System.Drawing.Size(312, 42);
|
label3.Size = new System.Drawing.Size(312, 42);
|
||||||
label3.TabIndex = 17;
|
label3.TabIndex = 17;
|
||||||
|
@ -86,27 +85,16 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//
|
//
|
||||||
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.panelres.Controls.Add(this.uselongtexturenames);
|
|
||||||
this.panelres.Controls.Add(this.strictpatches);
|
this.panelres.Controls.Add(this.strictpatches);
|
||||||
this.panelres.Controls.Add(this.datalocations);
|
this.panelres.Controls.Add(this.datalocations);
|
||||||
this.panelres.Controls.Add(label3);
|
this.panelres.Controls.Add(label3);
|
||||||
this.panelres.Location = new System.Drawing.Point(12, 246);
|
this.panelres.Location = new System.Drawing.Point(12, 246);
|
||||||
this.panelres.Name = "panelres";
|
this.panelres.Name = "panelres";
|
||||||
this.panelres.Size = new System.Drawing.Size(396, 264);
|
this.panelres.Size = new System.Drawing.Size(396, 240);
|
||||||
this.panelres.TabIndex = 2;
|
this.panelres.TabIndex = 2;
|
||||||
this.panelres.TabStop = false;
|
this.panelres.TabStop = false;
|
||||||
this.panelres.Text = " Resources ";
|
this.panelres.Text = " Resources ";
|
||||||
//
|
//
|
||||||
// uselongtexturenames
|
|
||||||
//
|
|
||||||
this.uselongtexturenames.AutoSize = true;
|
|
||||||
this.uselongtexturenames.Location = new System.Drawing.Point(14, 51);
|
|
||||||
this.uselongtexturenames.Name = "uselongtexturenames";
|
|
||||||
this.uselongtexturenames.Size = new System.Drawing.Size(140, 18);
|
|
||||||
this.uselongtexturenames.TabIndex = 20;
|
|
||||||
this.uselongtexturenames.Text = "Use long texture names";
|
|
||||||
this.uselongtexturenames.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// strictpatches
|
// strictpatches
|
||||||
//
|
//
|
||||||
this.strictpatches.AutoSize = true;
|
this.strictpatches.AutoSize = true;
|
||||||
|
@ -122,7 +110,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.datalocations.AllowDrop = true;
|
this.datalocations.AllowDrop = true;
|
||||||
this.datalocations.DialogOffset = new System.Drawing.Point(40, 20);
|
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.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, 75);
|
this.datalocations.Location = new System.Drawing.Point(14, 58);
|
||||||
this.datalocations.Name = "datalocations";
|
this.datalocations.Name = "datalocations";
|
||||||
this.datalocations.Size = new System.Drawing.Size(368, 127);
|
this.datalocations.Size = new System.Drawing.Size(368, 127);
|
||||||
this.datalocations.TabIndex = 0;
|
this.datalocations.TabIndex = 0;
|
||||||
|
@ -130,7 +118,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
// apply
|
// apply
|
||||||
//
|
//
|
||||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.apply.Location = new System.Drawing.Point(296, 517);
|
this.apply.Location = new System.Drawing.Point(296, 496);
|
||||||
this.apply.Name = "apply";
|
this.apply.Name = "apply";
|
||||||
this.apply.Size = new System.Drawing.Size(112, 25);
|
this.apply.Size = new System.Drawing.Size(112, 25);
|
||||||
this.apply.TabIndex = 3;
|
this.apply.TabIndex = 3;
|
||||||
|
@ -142,7 +130,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//
|
//
|
||||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
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.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.cancel.Location = new System.Drawing.Point(178, 516);
|
this.cancel.Location = new System.Drawing.Point(178, 495);
|
||||||
this.cancel.Name = "cancel";
|
this.cancel.Name = "cancel";
|
||||||
this.cancel.Size = new System.Drawing.Size(112, 25);
|
this.cancel.Size = new System.Drawing.Size(112, 25);
|
||||||
this.cancel.TabIndex = 4;
|
this.cancel.TabIndex = 4;
|
||||||
|
@ -203,7 +191,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.scriptcompilerlabel.Name = "scriptcompilerlabel";
|
this.scriptcompilerlabel.Name = "scriptcompilerlabel";
|
||||||
this.scriptcompilerlabel.Size = new System.Drawing.Size(120, 14);
|
this.scriptcompilerlabel.Size = new System.Drawing.Size(120, 14);
|
||||||
this.scriptcompilerlabel.TabIndex = 18;
|
this.scriptcompilerlabel.TabIndex = 18;
|
||||||
this.scriptcompilerlabel.Text = "Script type:";
|
this.scriptcompilerlabel.Text = "Script Type:";
|
||||||
this.scriptcompilerlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
this.scriptcompilerlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// OpenMapOptionsForm
|
// OpenMapOptionsForm
|
||||||
|
@ -212,7 +200,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.CancelButton = this.cancel;
|
this.CancelButton = this.cancel;
|
||||||
this.ClientSize = new System.Drawing.Size(420, 551);
|
this.ClientSize = new System.Drawing.Size(420, 530);
|
||||||
this.Controls.Add(this.scriptcompiler);
|
this.Controls.Add(this.scriptcompiler);
|
||||||
this.Controls.Add(this.scriptcompilerlabel);
|
this.Controls.Add(this.scriptcompilerlabel);
|
||||||
this.Controls.Add(this.mapslist);
|
this.Controls.Add(this.mapslist);
|
||||||
|
@ -251,7 +239,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private System.Windows.Forms.CheckBox strictpatches;
|
private System.Windows.Forms.CheckBox strictpatches;
|
||||||
private System.Windows.Forms.ComboBox scriptcompiler;
|
private System.Windows.Forms.ComboBox scriptcompiler;
|
||||||
private System.Windows.Forms.Label scriptcompilerlabel;
|
private System.Windows.Forms.Label scriptcompilerlabel;
|
||||||
private System.Windows.Forms.CheckBox uselongtexturenames;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,38 +109,44 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
mapsettings = new Configuration(true);
|
mapsettings = new Configuration(true);
|
||||||
|
|
||||||
// Check strict patches box, check what game configuration is preferred
|
// Check strict patches box, check what game configuration is preferred
|
||||||
if (options != null) {
|
if (options != null)
|
||||||
|
{
|
||||||
strictpatches.Checked = options.StrictPatches;
|
strictpatches.Checked = options.StrictPatches;
|
||||||
gameconfig = options.ConfigFile;
|
gameconfig = options.ConfigFile;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
strictpatches.Checked = mapsettings.ReadSetting("strictpatches", false);
|
strictpatches.Checked = mapsettings.ReadSetting("strictpatches", false);
|
||||||
gameconfig = mapsettings.ReadSetting("gameconfig", "");
|
gameconfig = mapsettings.ReadSetting("gameconfig", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Fill script compilers list
|
//mxd. Fill script compilers list
|
||||||
foreach(KeyValuePair<string, ScriptConfiguration> group in General.CompiledScriptConfigs) {
|
foreach(KeyValuePair<string, ScriptConfiguration> group in General.CompiledScriptConfigs)
|
||||||
|
{
|
||||||
scriptcompiler.Items.Add(group.Value);
|
scriptcompiler.Items.Add(group.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Go for all enabled configurations
|
//mxd. Go for all enabled configurations
|
||||||
for(int i = 0; i < General.Configs.Count; i++) {
|
for(int i = 0; i < General.Configs.Count; i++)
|
||||||
|
{
|
||||||
if(!General.Configs[i].Enabled) continue;
|
if(!General.Configs[i].Enabled) continue;
|
||||||
|
|
||||||
// Add config name to list
|
// Add config name to list
|
||||||
index = config.Items.Add(General.Configs[i]);
|
index = config.Items.Add(General.Configs[i]);
|
||||||
|
|
||||||
if(General.Configs[i].Filename == gameconfig) {
|
// Select this item
|
||||||
// Select this item
|
if(General.Configs[i].Filename == gameconfig) config.SelectedIndex = index;
|
||||||
config.SelectedIndex = index;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. No dice? Try disabled ones
|
//mxd. No dice? Try disabled ones
|
||||||
if(config.SelectedIndex == -1) {
|
if(config.SelectedIndex == -1)
|
||||||
for(int i = 0; i < General.Configs.Count; i++) {
|
{
|
||||||
|
for(int i = 0; i < General.Configs.Count; i++)
|
||||||
|
{
|
||||||
if(General.Configs[i].Enabled) continue;
|
if(General.Configs[i].Enabled) continue;
|
||||||
|
|
||||||
if(General.Configs[i].Filename == gameconfig) {
|
if(General.Configs[i].Filename == gameconfig)
|
||||||
|
{
|
||||||
//add and Select this item
|
//add and Select this item
|
||||||
config.SelectedIndex = config.Items.Add(General.Configs[i]);
|
config.SelectedIndex = config.Items.Add(General.Configs[i]);
|
||||||
break;
|
break;
|
||||||
|
@ -149,7 +155,8 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
// Still no configuration selected?
|
// Still no configuration selected?
|
||||||
if(config.SelectedIndex == -1) {
|
if(config.SelectedIndex == -1)
|
||||||
|
{
|
||||||
// Then go for all configurations to find a suitable one
|
// Then go for all configurations to find a suitable one
|
||||||
for(int i = 0; i < General.Configs.Count; i++)
|
for(int i = 0; i < General.Configs.Count; i++)
|
||||||
{
|
{
|
||||||
|
@ -158,10 +165,13 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
//mxd. Already added?
|
//mxd. Already added?
|
||||||
index = config.Items.IndexOf(General.Configs[i]);
|
index = config.Items.IndexOf(General.Configs[i]);
|
||||||
if (index != -1) {
|
if (index != -1)
|
||||||
|
{
|
||||||
// Select this item
|
// Select this item
|
||||||
config.SelectedIndex = index;
|
config.SelectedIndex = index;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// Add and select this item
|
// Add and select this item
|
||||||
config.SelectedIndex = config.Items.Add(General.Configs[i]);
|
config.SelectedIndex = config.Items.Add(General.Configs[i]);
|
||||||
}
|
}
|
||||||
|
@ -186,9 +196,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
IDictionary maplumpnames = cfg.ReadSetting("maplumpnames", new Hashtable());
|
IDictionary maplumpnames = cfg.ReadSetting("maplumpnames", new Hashtable());
|
||||||
|
|
||||||
// Count how many required lumps we have to find
|
// Count how many required lumps we have to find
|
||||||
foreach(DictionaryEntry ml in maplumpnames) {
|
foreach(DictionaryEntry ml in maplumpnames)
|
||||||
|
{
|
||||||
// Ignore the map header (it will not be found because the name is different)
|
// Ignore the map header (it will not be found because the name is different)
|
||||||
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER) {
|
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER)
|
||||||
|
{
|
||||||
// Read lump setting and count it
|
// Read lump setting and count it
|
||||||
if(cfg.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
if(cfg.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
||||||
lumpsrequired++;
|
lumpsrequired++;
|
||||||
|
@ -196,19 +208,23 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
// Go for all the lumps in the wad
|
// Go for all the lumps in the wad
|
||||||
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++) {
|
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++)
|
||||||
|
{
|
||||||
// Make sure this lump is not part of the map.
|
// Make sure this lump is not part of the map.
|
||||||
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name)) {
|
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name))
|
||||||
|
{
|
||||||
// Reset check
|
// Reset check
|
||||||
lumpsfound = 0;
|
lumpsfound = 0;
|
||||||
checkoffset = 1;
|
checkoffset = 1;
|
||||||
|
|
||||||
// Continue while still within bounds and lumps are still recognized
|
// Continue while still within bounds and lumps are still recognized
|
||||||
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
||||||
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name)) {
|
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name))
|
||||||
|
{
|
||||||
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
||||||
//mxd. Lump cannot present in current map format, fail this check
|
//mxd. Lump cannot present in current map format, fail this check
|
||||||
if(cfg.ReadSetting("maplumpnames." + lumpname + ".forbidden", false)) {
|
if(cfg.ReadSetting("maplumpnames." + lumpname + ".forbidden", false))
|
||||||
|
{
|
||||||
lumpsfound = -1;
|
lumpsfound = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -256,9 +272,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
IDictionary maplumpnames = cfg.ReadSetting("maplumpnames", new Hashtable());
|
IDictionary maplumpnames = cfg.ReadSetting("maplumpnames", new Hashtable());
|
||||||
|
|
||||||
// Count how many required lumps we have to find
|
// Count how many required lumps we have to find
|
||||||
foreach(DictionaryEntry ml in maplumpnames) {
|
foreach(DictionaryEntry ml in maplumpnames)
|
||||||
|
{
|
||||||
// Ignore the map header (it will not be found because the name is different)
|
// Ignore the map header (it will not be found because the name is different)
|
||||||
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER) {
|
if(ml.Key.ToString() != MapManager.CONFIG_MAP_HEADER)
|
||||||
|
{
|
||||||
// Read lump setting and count it
|
// Read lump setting and count it
|
||||||
if(cfg.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
if(cfg.ReadSetting("maplumpnames." + ml.Key + ".required", false))
|
||||||
lumpsrequired++;
|
lumpsrequired++;
|
||||||
|
@ -266,19 +284,23 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
// Go for all the lumps in the wad
|
// Go for all the lumps in the wad
|
||||||
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++) {
|
for(scanindex = 0; scanindex < (wadfile.Lumps.Count - 1); scanindex++)
|
||||||
|
{
|
||||||
// Make sure this lump is not part of the map.
|
// Make sure this lump is not part of the map.
|
||||||
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name)) {
|
if(!maplumpnames.Contains(wadfile.Lumps[scanindex].Name))
|
||||||
|
{
|
||||||
// Reset check
|
// Reset check
|
||||||
lumpsfound = 0;
|
lumpsfound = 0;
|
||||||
checkoffset = 1;
|
checkoffset = 1;
|
||||||
|
|
||||||
// Continue while still within bounds and lumps are still recognized
|
// Continue while still within bounds and lumps are still recognized
|
||||||
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
while(((scanindex + checkoffset) < wadfile.Lumps.Count) &&
|
||||||
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name)) {
|
maplumpnames.Contains(wadfile.Lumps[scanindex + checkoffset].Name))
|
||||||
|
{
|
||||||
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
lumpname = wadfile.Lumps[scanindex + checkoffset].Name;
|
||||||
//mxd. Lump cannot present in current map format, fail this check
|
//mxd. Lump cannot present in current map format, fail this check
|
||||||
if(cfg.ReadSetting("maplumpnames." + lumpname + ".forbidden", false)) {
|
if(cfg.ReadSetting("maplumpnames." + lumpname + ".forbidden", false))
|
||||||
|
{
|
||||||
lumpsfound = -1;
|
lumpsfound = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -304,9 +326,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
mapslist.Sort();
|
mapslist.Sort();
|
||||||
|
|
||||||
// Go for all items in the list
|
// Go for all items in the list
|
||||||
foreach(ListViewItem item in mapslist.Items) {
|
foreach(ListViewItem item in mapslist.Items)
|
||||||
|
{
|
||||||
// Was this item previously selected?
|
// Was this item previously selected?
|
||||||
if(item.Text == selectedname) {
|
if(item.Text == selectedname)
|
||||||
|
{
|
||||||
// Select it again
|
// Select it again
|
||||||
item.Selected = true;
|
item.Selected = true;
|
||||||
break;
|
break;
|
||||||
|
@ -324,10 +348,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
scriptcompilerlabel.Enabled = false;
|
scriptcompilerlabel.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Long texture names
|
|
||||||
uselongtexturenames.Enabled = ci.SupportsLongTextureNames;
|
|
||||||
uselongtexturenames.Checked = (ci.SupportsLongTextureNames && options.UseLongTextureNames);
|
|
||||||
|
|
||||||
// Show configuration resources
|
// Show configuration resources
|
||||||
datalocations.FixedResourceLocationList(ci.Resources);
|
datalocations.FixedResourceLocationList(ci.Resources);
|
||||||
}
|
}
|
||||||
|
@ -343,15 +363,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
config.Focus();
|
config.Focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Use long texture names?
|
|
||||||
if (uselongtexturenames.Enabled && !options.UseLongTextureNames && uselongtexturenames.Checked &&
|
|
||||||
MessageBox.Show(this, "Switching to long texture names can make the map incompatible with some map editors and game engines. Do you want to continue?",
|
|
||||||
Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
options.UseLongTextureNames = uselongtexturenames.Checked;
|
|
||||||
|
|
||||||
// Collect information
|
// Collect information
|
||||||
ConfigurationInfo configinfo = (config.SelectedItem as ConfigurationInfo); //mxd
|
ConfigurationInfo configinfo = (config.SelectedItem as ConfigurationInfo); //mxd
|
||||||
|
@ -487,9 +498,6 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!string.IsNullOrEmpty(defaultscriptconfig) && General.CompiledScriptConfigs.ContainsKey(defaultscriptconfig))
|
if(!string.IsNullOrEmpty(defaultscriptconfig) && General.CompiledScriptConfigs.ContainsKey(defaultscriptconfig))
|
||||||
scriptconfig = defaultscriptconfig;
|
scriptconfig = defaultscriptconfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Long texture names
|
|
||||||
if(uselongtexturenames.Enabled) uselongtexturenames.Checked = options.UseLongTextureNames;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd. Select proper script compiler
|
//mxd. Select proper script compiler
|
||||||
|
|
|
@ -121,9 +121,9 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.Controls.Add(this.apply);
|
this.Controls.Add(this.apply);
|
||||||
this.Controls.Add(this.browser);
|
this.Controls.Add(this.browser);
|
||||||
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.KeyPreview = true;
|
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "TextureBrowserForm";
|
this.Name = "TextureBrowserForm";
|
||||||
|
this.Opacity = 1;
|
||||||
this.ShowIcon = false;
|
this.ShowIcon = false;
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||||
|
|
|
@ -120,8 +120,9 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
//mxd. Select the last one that was selected
|
//mxd. Select the last one that was selected
|
||||||
string selectname = General.Settings.ReadSetting("browserwindow.textureset", "");
|
string selectname = General.Settings.ReadSetting("browserwindow.textureset", "");
|
||||||
TreeNode match;
|
TreeNode match;
|
||||||
if (string.IsNullOrEmpty(selectname))
|
if(string.IsNullOrEmpty(selectname) || selectname == "-")
|
||||||
{
|
{
|
||||||
|
// When texture name is empty, select "All" texture set
|
||||||
match = tvTextureSets.Nodes[tvTextureSets.Nodes.Count - 1];
|
match = tvTextureSets.Nodes[tvTextureSets.Nodes.Count - 1];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -356,7 +357,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(browser.SelectedItem != null)
|
if(browser.SelectedItem != null)
|
||||||
{
|
{
|
||||||
ImageBrowserItem item = browser.SelectedItem as ImageBrowserItem;
|
ImageBrowserItem item = browser.SelectedItem as ImageBrowserItem;
|
||||||
selectedname = item.icon.Name;
|
selectedname = item.TextureName;
|
||||||
DialogResult = DialogResult.OK;
|
DialogResult = DialogResult.OK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -475,21 +476,21 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
// Add all available flats
|
// Add all available flats
|
||||||
foreach(ImageData img in set.Flats)
|
foreach(ImageData img in set.Flats)
|
||||||
browser.Add(img.DisplayName, img, img, availgroup);
|
browser.Add(img, img, availgroup);
|
||||||
|
|
||||||
// Add all used flats
|
// Add all used flats
|
||||||
foreach(ImageData img in set.Flats)
|
foreach(ImageData img in set.Flats)
|
||||||
if(img.UsedInMap) browser.Add(img.DisplayName, img, img, usedgroup);
|
if(img.UsedInMap) browser.Add(img, img, usedgroup);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Add all available textures and mark the images for temporary loading
|
// Add all available textures and mark the images for temporary loading
|
||||||
foreach (ImageData img in set.Textures)
|
foreach (ImageData img in set.Textures)
|
||||||
browser.Add(img.DisplayName, img, img, availgroup);
|
browser.Add(img, img, availgroup);
|
||||||
|
|
||||||
// Add all used textures and mark the images for permanent loading
|
// Add all used textures and mark the images for permanent loading
|
||||||
foreach (ImageData img in set.Textures)
|
foreach (ImageData img in set.Textures)
|
||||||
if(img.UsedInMap) browser.Add(img.DisplayName, img, img, usedgroup);
|
if(img.UsedInMap) browser.Add(img, img, usedgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Done adding
|
// Done adding
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
|
||||||
EAAAAk1TRnQBSQFMAgEBCAEAAfwBAAH8AQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
EAAAAk1TRnQBSQFMAgEBCAEAAQQBAQEEAQEBEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAAUIDAAEBAQABCAUAAYABEBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
|
AwABQAMAAUIDAAEBAQABCAUAAYABEBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
|
||||||
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
|
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
|
||||||
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
|
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
AwADbQEHArwB8AIAAm0BDgIAAVIBegFSAaABcwH/AdwF2wH0AXMBUgFLAQAB7AEcAXkCdAoSAQAB6wH/
|
AwADbQEHArwB8AIAAm0BDgIAAVIBegFSAaABcwH/AdwF2wH0AXMBUgFLAQAB7AEcAXkCdAoSAQAB6wH/
|
||||||
AfQJ8wH/AesDAAFtAfADBwK8AgABEQEHAewCAAFSAZoBUgH/AbwB/wYZAfMBvAFSAUsBAAIcAnQCBwPv
|
AfQJ8wH/AesDAAFtAfADBwK8AgABEQEHAewCAAFSAZoBUgH/AbwB/wYZAfMBvAFSAUsBAAIcAnQCBwPv
|
||||||
AfcBHAPtARIBAAHrAf8B8wH3B5IB8wH/AesDAAFtAfAB7wMHAbwCAAJtAQ4CAAFSAaANUgIAAe0BHAF0
|
AfcBHAPtARIBAAHrAf8B8wH3B5IB8wH/AesDAAFtAfAB7wMHAbwCAAJtAQ4CAAFSAaANUgIAAe0BHAF0
|
||||||
AUsBHAj/Ae0BEgEAAfgB/wrzAf8B+AMAAW0B8ALvAwcCAAERAQcB7AIAAVIDoAEcAf8BrgGaAb0BdQHj
|
AUsBHAj/Ae0BEgEAAewB/wrzAf8B7AMAAW0B8ALvAwcCAAERAQcB7AIAAVIDoAEcAf8BrgGaAb0BdQHj
|
||||||
Aa4B/wHtAesCAAHsAXMBdAFLAfcB/wauAf8B7QESAQAB7AH/AfMI7wHyAf8B7AMAAW0B8APvAgcCAAJt
|
Aa4B/wHtAesCAAHsAXMBdAFLAfcB/wauAf8B7QESAQAB7AH/AfMI7wHyAf8B7AMAAW0B8APvAgcCAAJt
|
||||||
AQ4CAAFSAf8CoAH3Af8BrgL/AnUBrgH/Ae0B6wIAAZMDdAHvAf8BrgGUAf8BmgGUAa4B/wHtARIBAAHs
|
AQ4CAAFSAf8CoAH3Af8BrgL/AnUBrgH/Ae0B6wIAAZMDdAHvAf8BrgGUAf8BmgGUAa4B/wHtARIBAAHs
|
||||||
Af8G8wX/AewDAAFtAbwE7wEHAgABEQEHAewDAAFSAv8B7wH/Aa4BlAH/AZoBlAGuAf8B7QHrAgABHAGZ
|
Af8G8wX/AewDAAFtAbwE7wEHAgABEQEHAewDAAFSAv8B7wH/Aa4BlAH/AZoBlAGuAf8B7QHrAgABHAGZ
|
||||||
|
|
|
@ -170,7 +170,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
bool ismatch = set.IsMatch(img);
|
bool ismatch = set.IsMatch(img);
|
||||||
if((ismatch && matchesbutton.Checked) || (!ismatch && nomatchesbutton.Checked))
|
if((ismatch && matchesbutton.Checked) || (!ismatch && nomatchesbutton.Checked))
|
||||||
matcheslist.Add(img.Name, img, img, null, tooltiptext);
|
matcheslist.Add(img, img, null, tooltiptext);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already mixed, add flats as well
|
// If not already mixed, add flats as well
|
||||||
|
@ -181,7 +181,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
{
|
{
|
||||||
bool ismatch = set.IsMatch(img);
|
bool ismatch = set.IsMatch(img);
|
||||||
if((ismatch && matchesbutton.Checked) || (!ismatch && nomatchesbutton.Checked))
|
if((ismatch && matchesbutton.Checked) || (!ismatch && nomatchesbutton.Checked))
|
||||||
matcheslist.Add(img.Name, img, img, null, tooltiptext);
|
matcheslist.Add(img, img, null, tooltiptext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue