mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-23 04:12:12 +00:00
Voxels can now be loaded from WAD resources.
Reverted "Delete Item" action to the way it worked in DB2. Added "Dissolve Item" action, which works the way "Delete Item" worked in previous revisions of GZDB. Added "Auto Clear Sidedef Textures" action, "Edit" menu and toolbar button, which toggle automatic removal of sidedef textures when floor or ceiling height is changed or when geometry is drawn, copied or pasted. Draw Settings panel: upper/lower texture overrides can now be used. Draw Settings panel: added 2 sets of buttons, which allow to quickly set or clear textures in current selection. Things are now rendered behind AND on top of the grid/linedefs/vertices when they are dragged. Redesigned hints system. They are now shown in a side panel. Edit area auto-focusing is now disabled when script editor is open. Texture Browser form: no texture group was selected when opening the form in some cases. Fixed several strange/misleading text messages.
This commit is contained in:
parent
ae79ed4e19
commit
013865e27d
48 changed files with 1939 additions and 948 deletions
|
@ -59,6 +59,12 @@ common
|
|||
include("Boom_misc.cfg", "colormaps");
|
||||
}
|
||||
|
||||
//mxd. Voxel sources
|
||||
voxels
|
||||
{
|
||||
include("ZDoom_misc.cfg", "voxels");
|
||||
}
|
||||
|
||||
// Generalized sector types
|
||||
gen_sectortypes
|
||||
{
|
||||
|
|
|
@ -181,6 +181,14 @@ textures
|
|||
}
|
||||
}
|
||||
|
||||
voxels //mxd
|
||||
{
|
||||
zdoom1
|
||||
{
|
||||
start = "VX_START";
|
||||
end = "VX_END";
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
ADDITIONAL UNIVERSAL DOOM MAP FORMAT FIELD DEFINITIONS
|
||||
|
|
|
@ -45,6 +45,7 @@ shortcuts
|
|||
builder_classicedit = 2;
|
||||
builder_classicselect = 1;
|
||||
builder_deleteitem = 46;
|
||||
builder_dissolveitem = 8;
|
||||
buildermodes_finishdraw = 2;
|
||||
buildermodes_drawpoint = 1;
|
||||
buildermodes_drawlinesmode = 131140;
|
||||
|
|
|
@ -671,6 +671,12 @@
|
|||
<Compile Include="Controls\DockersTabsControl.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Controls\HintsPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Controls\HintsPanel.Designer.cs">
|
||||
<DependentUpon>HintsPanel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Controls\PasteOptionsControl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
@ -872,6 +878,9 @@
|
|||
<EmbeddedResource Include="Controls\DockersControl.resx">
|
||||
<DependentUpon>DockersControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Controls\HintsPanel.resx">
|
||||
<DependentUpon>HintsPanel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Controls\PasteOptionsControl.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>PasteOptionsControl.cs</DependentUpon>
|
||||
|
@ -917,6 +926,7 @@
|
|||
<None Include="Resources\ArrowDown.png" />
|
||||
<None Include="Resources\ArrowUp.png" />
|
||||
<None Include="Resources\Check.png" />
|
||||
<None Include="Resources\ClearTextures.png" />
|
||||
<Content Include="Resources\DB2.ico" />
|
||||
<None Include="Resources\GZDB2.ico" />
|
||||
<None Include="Resources\fog.png" />
|
||||
|
|
|
@ -85,12 +85,13 @@ namespace CodeImp.DoomBuilder.Config
|
|||
private IDictionary maplumpnames; // This is old, we should use maplumps instead
|
||||
private Dictionary<string, MapLumpInfo> maplumps;
|
||||
|
||||
// Texture/flat sources
|
||||
// Texture/flat/voxel sources
|
||||
private IDictionary textureranges;
|
||||
private IDictionary flatranges;
|
||||
private IDictionary patchranges;
|
||||
private IDictionary spriteranges;
|
||||
private IDictionary colormapranges;
|
||||
private IDictionary voxelranges; //mxd
|
||||
|
||||
// Things
|
||||
private List<string> defaultthingflags;
|
||||
|
@ -185,12 +186,13 @@ namespace CodeImp.DoomBuilder.Config
|
|||
public IDictionary MapLumpNames { get { return maplumpnames; } }
|
||||
public Dictionary<string, MapLumpInfo> MapLumps { get { return maplumps; } }
|
||||
|
||||
// Texture/flat sources
|
||||
// Texture/flat/voxel sources
|
||||
public IDictionary TextureRanges { get { return textureranges; } }
|
||||
public IDictionary FlatRanges { get { return flatranges; } }
|
||||
public IDictionary PatchRanges { get { return patchranges; } }
|
||||
public IDictionary SpriteRanges { get { return spriteranges; } }
|
||||
public IDictionary ColormapRanges { get { return colormapranges; } }
|
||||
public IDictionary VoxelRanges { get { return voxelranges; } } //mxd
|
||||
|
||||
// Things
|
||||
public ICollection<string> DefaultThingFlags { get { return defaultthingflags; } }
|
||||
|
@ -332,6 +334,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
patchranges = cfg.ReadSetting("patches", new Hashtable());
|
||||
spriteranges = cfg.ReadSetting("sprites", new Hashtable());
|
||||
colormapranges = cfg.ReadSetting("colormaps", new Hashtable());
|
||||
voxelranges = cfg.ReadSetting("voxels", new Hashtable()); //mxd
|
||||
|
||||
// Map lumps
|
||||
LoadMapLumps();
|
||||
|
|
|
@ -111,6 +111,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
private string lastUsedConfigName;
|
||||
private bool gzMarkExtraFloors;
|
||||
private int maxRecentFiles;
|
||||
private bool autoClearSideTextures;
|
||||
|
||||
// These are not stored in the configuration, only used at runtime
|
||||
private int defaultbrightness;
|
||||
|
@ -193,6 +194,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
public string LastUsedConfigName { get { return lastUsedConfigName; } internal set { lastUsedConfigName = value; } }
|
||||
public bool GZMarkExtraFloors { get { return gzMarkExtraFloors; } internal set { gzMarkExtraFloors = value; } }
|
||||
public int MaxRecentFiles { get { return maxRecentFiles; } internal set { maxRecentFiles = General.Clamp(value, 8, 25); } }
|
||||
public bool AutoClearSidedefTextures { get { return autoClearSideTextures; } internal set { autoClearSideTextures = value; } }
|
||||
|
||||
//mxd. Left here for compatibility reasons...
|
||||
public string DefaultTexture { get { return General.Map != null ? General.Map.Options.DefaultWallTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultWallTexture = value; } }
|
||||
|
@ -296,6 +298,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
lastUsedConfigName = cfg.ReadSetting("lastusedconfigname", "");
|
||||
gzMarkExtraFloors = cfg.ReadSetting("gzmarkextrafloors", true);
|
||||
maxRecentFiles = cfg.ReadSetting("maxrecentfiles", 8);
|
||||
autoClearSideTextures = cfg.ReadSetting("autoclearsidetextures", true);
|
||||
|
||||
//mxd. Sector defaults
|
||||
defaultceilheight = cfg.ReadSetting("defaultceilheight", 128);
|
||||
|
@ -382,6 +385,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
if(!string.IsNullOrEmpty(lastUsedConfigName))
|
||||
cfg.WriteSetting("lastusedconfigname", lastUsedConfigName);
|
||||
cfg.WriteSetting("maxrecentfiles", maxRecentFiles);
|
||||
cfg.WriteSetting("autoclearsidetextures", autoClearSideTextures);
|
||||
|
||||
//mxd. Sector defaults
|
||||
cfg.WriteSetting("defaultceilheight", defaultceilheight);
|
||||
|
@ -552,7 +556,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
if(General.Map == null || General.Map.Options == null) return;
|
||||
|
||||
// Default texture missing?
|
||||
if(!General.Map.Options.OverrideWallTexture || string.IsNullOrEmpty(General.Map.Options.DefaultWallTexture)) //mxd
|
||||
if(!General.Map.Options.OverrideMiddleTexture || string.IsNullOrEmpty(General.Map.Options.DefaultWallTexture)) //mxd
|
||||
{
|
||||
// Find default texture from map
|
||||
foundone = false;
|
||||
|
@ -561,7 +565,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
if(sd.MiddleTexture != "-")
|
||||
{
|
||||
General.Map.Options.DefaultWallTexture = sd.MiddleTexture;
|
||||
if(General.Map.Data.GetTextureExists(General.Map.Options.DefaultWallTexture))
|
||||
if(General.Map.Data.GetTextureExists(sd.MiddleTexture))
|
||||
{
|
||||
foundone = true;
|
||||
break;
|
||||
|
@ -593,6 +597,10 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
}
|
||||
|
||||
//mxd.
|
||||
if(!General.Map.Options.OverrideTopTexture) General.Map.Options.DefaultTopTexture = General.Map.Options.DefaultWallTexture;
|
||||
if(!General.Map.Options.OverrideBottomTexture) General.Map.Options.DefaultBottomTexture = General.Map.Options.DefaultWallTexture;
|
||||
|
||||
// Default floor missing?
|
||||
if(!General.Map.Options.OverrideFloorTexture || string.IsNullOrEmpty(General.Map.Options.DefaultFloorTexture))
|
||||
{
|
||||
|
@ -676,7 +684,9 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
|
||||
// Texture names may not be null
|
||||
if(string.IsNullOrEmpty(General.Map.Options.DefaultTopTexture)) General.Map.Options.DefaultTopTexture = "-";
|
||||
if(string.IsNullOrEmpty(General.Map.Options.DefaultWallTexture)) General.Map.Options.DefaultWallTexture = "-";
|
||||
if(string.IsNullOrEmpty(General.Map.Options.DefaultBottomTexture)) General.Map.Options.DefaultBottomTexture = "-";
|
||||
if(string.IsNullOrEmpty(General.Map.Options.DefaultFloorTexture)) General.Map.Options.DefaultFloorTexture = "-";
|
||||
if(string.IsNullOrEmpty(General.Map.Options.DefaultCeilingTexture)) General.Map.Options.DefaultCeilingTexture = "-";
|
||||
}
|
||||
|
|
67
Source/Core/Controls/HintsPanel.Designer.cs
generated
Normal file
67
Source/Core/Controls/HintsPanel.Designer.cs
generated
Normal file
|
@ -0,0 +1,67 @@
|
|||
namespace CodeImp.DoomBuilder.Controls
|
||||
{
|
||||
partial class HintsPanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing) {
|
||||
if(disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HintsPanel));
|
||||
this.hints = new System.Windows.Forms.RichTextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// hints
|
||||
//
|
||||
this.hints.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.hints.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.hints.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.hints.Cursor = System.Windows.Forms.Cursors.Arrow;
|
||||
this.hints.DetectUrls = false;
|
||||
this.hints.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.hints.Location = new System.Drawing.Point(3, 3);
|
||||
this.hints.Name = "hints";
|
||||
this.hints.ReadOnly = true;
|
||||
this.hints.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.hints.ShortcutsEnabled = false;
|
||||
this.hints.Size = new System.Drawing.Size(384, 542);
|
||||
this.hints.TabIndex = 1;
|
||||
this.hints.Text = resources.GetString("hints.Text");
|
||||
//
|
||||
// HintsPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.hints);
|
||||
this.Name = "HintsPanel";
|
||||
this.Size = new System.Drawing.Size(390, 548);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.RichTextBox hints;
|
||||
|
||||
}
|
||||
}
|
43
Source/Core/Controls/HintsPanel.cs
Normal file
43
Source/Core/Controls/HintsPanel.cs
Normal file
|
@ -0,0 +1,43 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace CodeImp.DoomBuilder.Controls
|
||||
{
|
||||
internal partial class HintsPanel : UserControl
|
||||
{
|
||||
public HintsPanel() {
|
||||
InitializeComponent();
|
||||
hints.Clear();
|
||||
}
|
||||
|
||||
internal void SetHints(string[] hintsText) {
|
||||
hints.Clear();
|
||||
|
||||
foreach (string s in hintsText) {
|
||||
hints.AppendText(s + Environment.NewLine + Environment.NewLine);
|
||||
}
|
||||
|
||||
//apply <b> tags
|
||||
int start = hints.Text.IndexOf("<b>");
|
||||
int end = hints.Text.IndexOf("</b>");
|
||||
Font regular = hints.Font;
|
||||
Font bold = new Font(hints.SelectionFont, FontStyle.Bold);
|
||||
|
||||
while(start != -1 && end != -1) {
|
||||
hints.Select(start, end + 4 - start);
|
||||
hints.SelectionFont = bold;
|
||||
hints.SelectedText = hints.SelectedText.Replace("<b>", "").Replace("</b>", "");
|
||||
|
||||
start = hints.Text.IndexOf("<b>");
|
||||
end = hints.Text.IndexOf("</b>");
|
||||
}
|
||||
|
||||
hints.SelectionFont = regular;
|
||||
}
|
||||
|
||||
internal void ClearHints() {
|
||||
hints.Clear();
|
||||
}
|
||||
}
|
||||
}
|
145
Source/Core/Controls/HintsPanel.resx
Normal file
145
Source/Core/Controls/HintsPanel.resx
Normal file
|
@ -0,0 +1,145 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="hints.Text" xml:space="preserve">
|
||||
<value>To look around, look around!
|
||||
|
||||
Press any key to Jason!
|
||||
|
||||
Awesome stuff can be found in the manual!
|
||||
|
||||
Press Use to Use Press!
|
||||
|
||||
Place things to gain experience!
|
||||
|
||||
You can expand your kingdom by adding new sectors!
|
||||
|
||||
Beware of exceptions, they can do MASSIVE sanity damage!
|
||||
|
||||
Press Space to SPAAACEEEEE!!!
|
||||
|
||||
Check our Exception Killer Day One DLC!
|
||||
|
||||
GZDB is very easy to use: just learn more than 300 awesome hot keys and you are ready to go!
|
||||
|
||||
To find the Broom Closet Ending, create the broom closet!
|
||||
|
||||
Press F1 to view Achievements!</value>
|
||||
</data>
|
||||
</root>
|
|
@ -45,8 +45,6 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
// Initialize
|
||||
this.SetStyle(ControlStyles.FixedWidth, true);
|
||||
this.SetStyle(ControlStyles.FixedHeight, true);
|
||||
|
||||
this.MouseEnter += new System.EventHandler(RenderTargetControl_MouseEnter); //mxd
|
||||
}
|
||||
|
||||
// Disposer
|
||||
|
@ -72,11 +70,6 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
protected override void OnKeyUp(KeyEventArgs e) {
|
||||
if(OnKeyReleased != null) OnKeyReleased(this, e);
|
||||
}
|
||||
|
||||
//mxd
|
||||
private void RenderTargetControl_MouseEnter(object sender, System.EventArgs e) {
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -27,6 +27,12 @@ namespace CodeImp.DoomBuilder.Data
|
|||
{
|
||||
internal abstract class DataReader
|
||||
{
|
||||
#region ================== Constants
|
||||
|
||||
protected const string SPRITE_NAME_PATTERN = "(?i)\\A[a-z0-9]{4}([a-z][0-9]{0,2})$"; //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Variables
|
||||
|
||||
protected DataLocation location;
|
||||
|
@ -165,9 +171,6 @@ namespace CodeImp.DoomBuilder.Data
|
|||
//mxd. When implemented, this returns the list of voxel model names
|
||||
public virtual string[] GetVoxelNames() { return null; }
|
||||
|
||||
//mxd. When implemented, this checks if the given voxel lump exists
|
||||
public virtual bool GetVoxelExists(string name) { return false; }
|
||||
|
||||
//mxd. When implemented, this returns the voxel lump
|
||||
public virtual Stream GetVoxelData(string name) { return null; }
|
||||
|
||||
|
|
|
@ -240,6 +240,12 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
// Find in any of the wad files
|
||||
for(int i = wads.Count - 1; i >= 0; i--) {
|
||||
Stream voxel = wads[i].GetVoxelData(name);
|
||||
if(voxel != null) return voxel;
|
||||
}
|
||||
|
||||
try {
|
||||
// Find in voxels directory
|
||||
string path = Path.Combine(VOXELS_DIR, Path.GetDirectoryName(name));
|
||||
|
@ -255,26 +261,6 @@ namespace CodeImp.DoomBuilder.Data
|
|||
return null;
|
||||
}
|
||||
|
||||
//mxd. This checks if the given sprite exists
|
||||
public override bool GetVoxelExists(string name) {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
// Find in voxels directory
|
||||
try {
|
||||
string path = Path.Combine(VOXELS_DIR, Path.GetDirectoryName(name));
|
||||
string filename = FindFirstFile(path, Path.GetFileName(name), true);
|
||||
if((filename != null) && FileExists(filename)) {
|
||||
return true;
|
||||
}
|
||||
} catch(Exception e) {
|
||||
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while checking voxel '" + name + "' existance in directory: " + e.Message);
|
||||
}
|
||||
|
||||
// Nothing found
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
|
|
@ -216,11 +216,11 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// This checks if the given sprite exists
|
||||
public override bool GetSpriteExists(string pname)
|
||||
{
|
||||
string pfilename = pname.Replace('\\', '^');
|
||||
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
string pfilename = pname.Replace('\\', '^');
|
||||
|
||||
// Find in any of the wad files
|
||||
for(int i = wads.Count - 1; i >= 0; i--)
|
||||
{
|
||||
|
@ -242,11 +242,17 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
#region ================== Voxels (mxd)
|
||||
|
||||
//mxd. This finds and returns a voxel stream
|
||||
//mxd. This finds and returns a voxel stream or null if no voxel was found
|
||||
public override Stream GetVoxelData(string name) {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
// Find in any of the wad files
|
||||
for(int i = wads.Count - 1; i >= 0; i--) {
|
||||
Stream voxel = wads[i].GetVoxelData(name);
|
||||
if(voxel != null) return voxel;
|
||||
}
|
||||
|
||||
string pfilename = name.Replace('\\', '^');
|
||||
|
||||
// Find in sprites directory
|
||||
|
@ -259,23 +265,6 @@ namespace CodeImp.DoomBuilder.Data
|
|||
return null;
|
||||
}
|
||||
|
||||
//mxd. This checks if the given voxel exists
|
||||
public override bool GetVoxelExists(string name) {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
string pfilename = name.Replace('\\', '^');
|
||||
|
||||
// Find in sprites directory
|
||||
string filename = FindFirstFile(VOXELS_DIR, pfilename, true);
|
||||
if((filename != null) && FileExists(filename)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Nothing found
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
|
|
@ -494,7 +494,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
string[] files = GetAllFiles("voxels", false);
|
||||
List<string> voxels = new List<string>();
|
||||
Regex spriteName = new Regex("(?i)\\A[a-z0-9]{4}([a-z][0-9]{0,2})$");
|
||||
Regex spriteName = new Regex(SPRITE_NAME_PATTERN);
|
||||
|
||||
for(int i = 0; i < files.Length; i++) {
|
||||
string s = Path.GetFileNameWithoutExtension(files[i]).ToUpperInvariant();
|
||||
|
|
|
@ -23,6 +23,7 @@ using System.IO;
|
|||
using CodeImp.DoomBuilder.IO;
|
||||
using CodeImp.DoomBuilder.ZDoom;
|
||||
using CodeImp.DoomBuilder.GZBuilder.Data;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -58,6 +59,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
private List<LumpRange> spriteranges;
|
||||
private List<LumpRange> textureranges;
|
||||
private List<LumpRange> colormapranges;
|
||||
private List<LumpRange> voxelranges; //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -86,6 +88,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
flatranges = new List<LumpRange>();
|
||||
textureranges = new List<LumpRange>();
|
||||
colormapranges = new List<LumpRange>();
|
||||
voxelranges = new List<LumpRange>(); //mxd
|
||||
|
||||
// Find ranges
|
||||
FindRanges(patchranges, General.Map.Config.PatchRanges, "patches");
|
||||
|
@ -93,6 +96,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
FindRanges(flatranges, General.Map.Config.FlatRanges, "flats");
|
||||
FindRanges(textureranges, General.Map.Config.TextureRanges, "textures");
|
||||
FindRanges(colormapranges, General.Map.Config.ColormapRanges, "colormaps");
|
||||
FindRanges(voxelranges, General.Map.Config.VoxelRanges, "voxels");
|
||||
|
||||
//mxd
|
||||
invertedflatranges = new List<LumpRange>();
|
||||
|
@ -284,11 +288,11 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// This finds and returns a colormap stream
|
||||
public override Stream GetColormapData(string pname)
|
||||
{
|
||||
Lump lump;
|
||||
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
Lump lump;
|
||||
|
||||
// Strictly read patches only between C_START and C_END?
|
||||
if(strictpatches)
|
||||
{
|
||||
|
@ -316,12 +320,13 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// This loads the textures
|
||||
public override ICollection<ImageData> LoadTextures(PatchNames pnames)
|
||||
{
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
List<ImageData> images = new List<ImageData>();
|
||||
int lumpindex;
|
||||
Lump lump;
|
||||
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
float defaultscale = General.Map.Config.DefaultTextureScale; //mxd
|
||||
|
||||
// Load two sets of textures, if available
|
||||
lump = file.FindLump("TEXTURE1");
|
||||
|
@ -332,8 +337,20 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// Read ranges from configuration
|
||||
foreach(LumpRange range in textureranges)
|
||||
{
|
||||
// Load texture range
|
||||
LoadTexturesRange(range.start, range.end, ref images, pnames);
|
||||
// Go for all lumps between start and end exclusive
|
||||
for(int i = range.start + 1; i < range.end; i++) {
|
||||
// Lump not zero length?
|
||||
if(file.Lumps[i].Length > 0) {
|
||||
// Make the image
|
||||
SimpleTextureImage image = new SimpleTextureImage(file.Lumps[i].Name, file.Lumps[i].Name, defaultscale, defaultscale);
|
||||
|
||||
// Add image to collection
|
||||
images.Add(image);
|
||||
} else {
|
||||
// Can't load image without size
|
||||
General.ErrorLogger.Add(ErrorType.Error, "Can't load texture '" + file.Lumps[i].Name + "' because it doesn't contain any data.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load TEXTURES lump file
|
||||
|
@ -355,32 +372,6 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// Return result
|
||||
return images;
|
||||
}
|
||||
|
||||
// This loads a range of textures
|
||||
private void LoadTexturesRange(int startindex, int endindex, ref List<ImageData> images, PatchNames pnames)
|
||||
{
|
||||
// Determine default scale
|
||||
float defaultscale = General.Map.Config.DefaultTextureScale;
|
||||
|
||||
// Go for all lumps between start and end exclusive
|
||||
for(int i = startindex + 1; i < endindex; i++)
|
||||
{
|
||||
// Lump not zero length?
|
||||
if(file.Lumps[i].Length > 0)
|
||||
{
|
||||
// Make the image
|
||||
SimpleTextureImage image = new SimpleTextureImage(file.Lumps[i].Name, file.Lumps[i].Name, defaultscale, defaultscale);
|
||||
|
||||
// Add image to collection
|
||||
images.Add(image);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Can't load image without name
|
||||
General.ErrorLogger.Add(ErrorType.Error, "Can't load an unnamed texture from lump index " + i + ". Please consider giving names to your resources.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This loads the texture definitions from a TEXTURES lump
|
||||
public static void LoadHighresTextures(Stream stream, string filename, ref List<ImageData> images, Dictionary<long, ImageData> textures, Dictionary<long, ImageData> flats)
|
||||
|
@ -579,33 +570,32 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
#region ================== Flats
|
||||
|
||||
// This loads the textures
|
||||
public override ICollection<ImageData> LoadFlats()
|
||||
{
|
||||
List<ImageData> images = new List<ImageData>();
|
||||
string rangestart, rangeend;
|
||||
int lumpindex;
|
||||
|
||||
//mxd. This loads the flats
|
||||
public override ICollection<ImageData> LoadFlats() {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
// Read ranges from configuration
|
||||
foreach(DictionaryEntry r in General.Map.Config.FlatRanges)
|
||||
{
|
||||
// Read start and end
|
||||
rangestart = General.Map.Config.ReadSetting("flats." + r.Key + ".start", "");
|
||||
rangeend = General.Map.Config.ReadSetting("flats." + r.Key + ".end", "");
|
||||
if((rangestart.Length > 0) && (rangeend.Length > 0))
|
||||
{
|
||||
// Load texture range
|
||||
LoadFlatsRange(rangestart, rangeend, ref images);
|
||||
List<ImageData> images = new List<ImageData>();
|
||||
FlatImage image;
|
||||
|
||||
foreach(LumpRange range in flatranges){
|
||||
if(range.end < range.start + 2) continue;
|
||||
|
||||
for(int i = range.start + 1; i < range.end; i++) {
|
||||
// Lump not zero-length?
|
||||
if(file.Lumps[i].Length > 0) {
|
||||
// Make the image object
|
||||
image = new FlatImage(file.Lumps[i].Name);
|
||||
|
||||
// Add image to collection
|
||||
images.Add(image);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load TEXTURES lump file
|
||||
lumpindex = file.FindLumpIndex("TEXTURES");
|
||||
while(lumpindex > -1)
|
||||
{
|
||||
int lumpindex = file.FindLumpIndex("TEXTURES");
|
||||
while(lumpindex > -1) {
|
||||
MemoryStream filedata = new MemoryStream(file.Lumps[lumpindex].Stream.ReadAllBytes());
|
||||
WADReader.LoadHighresFlats(filedata, "TEXTURES", ref images, null, null);
|
||||
filedata.Dispose();
|
||||
|
@ -613,49 +603,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// Find next
|
||||
lumpindex = file.FindLumpIndex("TEXTURES", lumpindex + 1);
|
||||
}
|
||||
|
||||
|
||||
// Add images to the container-specific texture set
|
||||
foreach(ImageData img in images)
|
||||
textureset.AddFlat(img);
|
||||
foreach(ImageData img in images) textureset.AddFlat(img);
|
||||
|
||||
// Return result
|
||||
return images;
|
||||
}
|
||||
|
||||
// This loads a range of flats
|
||||
private void LoadFlatsRange(string startlump, string endlump, ref List<ImageData> images)
|
||||
{
|
||||
int startindex, endindex;
|
||||
FlatImage image;
|
||||
|
||||
// Continue until no more start can be found
|
||||
startindex = file.FindLumpIndex(startlump);
|
||||
while(startindex > -1)
|
||||
{
|
||||
// Find end index
|
||||
endindex = file.FindLumpIndex(endlump, startindex + 1);
|
||||
if(endindex > -1)
|
||||
{
|
||||
// Go for all lumps between start and end exclusive
|
||||
for(int i = startindex + 1; i < endindex; i++)
|
||||
{
|
||||
// Lump not zero-length?
|
||||
if(file.Lumps[i].Length > 0)
|
||||
{
|
||||
// Make the image object
|
||||
image = new FlatImage(file.Lumps[i].Name);
|
||||
|
||||
// Add image to collection
|
||||
images.Add(image);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Find the next start
|
||||
startindex = file.FindLumpIndex(startlump, startindex + 1);
|
||||
}
|
||||
}
|
||||
|
||||
// This loads the flat definitions from a TEXTURES lump
|
||||
public static void LoadHighresFlats(Stream stream, string filename, ref List<ImageData> images, Dictionary<long, ImageData> textures, Dictionary<long, ImageData> flats)
|
||||
{
|
||||
|
@ -683,11 +638,11 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// This finds and returns a patch stream
|
||||
public override Stream GetFlatData(string pname)
|
||||
{
|
||||
Lump lump;
|
||||
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
Lump lump;
|
||||
|
||||
// Find the lump in ranges
|
||||
foreach(LumpRange range in flatranges)
|
||||
{
|
||||
|
@ -705,15 +660,13 @@ namespace CodeImp.DoomBuilder.Data
|
|||
// This loads the textures
|
||||
public override ICollection<ImageData> LoadSprites()
|
||||
{
|
||||
List<ImageData> images = new List<ImageData>();
|
||||
//string rangestart, rangeend;
|
||||
int lumpindex;
|
||||
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
List<ImageData> images = new List<ImageData>();
|
||||
|
||||
// Load TEXTURES lump file
|
||||
lumpindex = file.FindLumpIndex("TEXTURES");
|
||||
int lumpindex = file.FindLumpIndex("TEXTURES");
|
||||
while(lumpindex > -1)
|
||||
{
|
||||
MemoryStream filedata = new MemoryStream(file.Lumps[lumpindex].Stream.ReadAllBytes());
|
||||
|
@ -790,6 +743,52 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
#endregion
|
||||
|
||||
#region ================== Voxels (mxd)
|
||||
|
||||
//mxd. This returns the list of voxels, which can be used without VOXELDEF definition
|
||||
public override string[] GetVoxelNames() {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
List<string> voxels = new List<string>();
|
||||
Regex spriteName = new Regex(SPRITE_NAME_PATTERN);
|
||||
|
||||
foreach(LumpRange range in voxelranges) {
|
||||
if(range.start == range.end) continue;
|
||||
|
||||
for(int i = range.start + 1; i < range.end; i++) {
|
||||
if(spriteName.IsMatch(file.Lumps[i].Name)) voxels.Add(file.Lumps[i].Name);
|
||||
}
|
||||
}
|
||||
|
||||
return voxels.ToArray();
|
||||
}
|
||||
|
||||
//mxd
|
||||
public override KeyValuePair<string, Stream> GetVoxeldefData() {
|
||||
Lump lump = file.FindLump("VOXELDEF");
|
||||
if(lump != null) return new KeyValuePair<string, Stream>("VOXELDEF", lump.Stream);
|
||||
return new KeyValuePair<string, Stream>();
|
||||
}
|
||||
|
||||
//mxd. This finds and returns a voxel stream or null if no voxel was found
|
||||
public override Stream GetVoxelData(string name) {
|
||||
// Error when suspended
|
||||
if(issuspended) throw new Exception("Data reader is suspended");
|
||||
|
||||
Lump lump;
|
||||
|
||||
foreach(LumpRange range in voxelranges) {
|
||||
if(range.start == range.end) continue;
|
||||
lump = file.FindLump(name, range.start, range.end);
|
||||
if(lump != null) return lump.Stream;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Decorate, Gldefs, Mapinfo, etc...
|
||||
|
||||
// This finds and returns a sprite stream
|
||||
|
|
|
@ -79,10 +79,6 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
//mxd. used in "Play From Here" Action
|
||||
private Thing playerStart;
|
||||
private Vector3D playerStartPosition;
|
||||
|
||||
//mxd. Hints
|
||||
protected string[] hints;
|
||||
protected string[] multiselectionHints;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -141,9 +137,6 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
Vector2D campos = new Vector2D(General.Map.VisualCamera.Position.x, General.Map.VisualCamera.Position.y);
|
||||
renderer2d.PositionView(campos.x, campos.y);
|
||||
}
|
||||
|
||||
SetupHints(); //mxd
|
||||
SetupMultiselectionHints(); //mxd
|
||||
}
|
||||
|
||||
// Disposer
|
||||
|
@ -598,10 +591,6 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
/// </summary>
|
||||
public override void OnEngage()
|
||||
{
|
||||
//mxd. Update hints
|
||||
General.Interface.HideInfo();
|
||||
General.Interface.ShowEditModeHints(hints);
|
||||
|
||||
// Clear display overlay
|
||||
renderer.StartOverlay(true);
|
||||
renderer.Finish();
|
||||
|
@ -808,20 +797,6 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
ScrollBy(lastmappos.x - mousemappos.x, lastmappos.y - mousemappos.y);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override this to setup hints for this editing mode
|
||||
/// </summary>
|
||||
protected virtual void SetupHints() { //mxd
|
||||
hints = new[] { "Press F1 to view help about current editing mode" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override this to setup hints shown while multiselecting for this editing mode
|
||||
/// </summary>
|
||||
protected virtual void SetupMultiselectionHints() { //mxd
|
||||
multiselectionHints = new[] { "Press F1 to view help about current editing mode" };
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -47,6 +47,10 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
// Disposing
|
||||
protected bool isdisposed = false;
|
||||
|
||||
//mxd. Hints
|
||||
protected string[] hints;
|
||||
protected string[] multiselectionHints;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
@ -84,6 +88,9 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
|
||||
// No attributes found?
|
||||
if(attributes == null) throw new Exception("Editing mode \"" + this.GetType().Name + "\" is missing EditMode attributes!");
|
||||
|
||||
SetupHints(); //mxd
|
||||
SetupMultiselectionHints(); //mxd
|
||||
|
||||
// We have no destructor
|
||||
GC.SuppressFinalize(this);
|
||||
|
@ -129,6 +136,25 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods (mxd)
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Override this to setup hints for this editing mode
|
||||
/// </summary>
|
||||
protected virtual void SetupHints() { //mxd
|
||||
hints = new[] { "Press F1 to view help about current editing mode" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override this to setup hints shown while multiselecting for this editing mode
|
||||
/// </summary>
|
||||
protected virtual void SetupMultiselectionHints() { //mxd
|
||||
multiselectionHints = new[] { "Press F1 to view help about current editing mode" };
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Events
|
||||
|
||||
//
|
||||
|
@ -146,6 +172,9 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
{
|
||||
// Bind any methods
|
||||
General.Actions.BindMethods(this);
|
||||
|
||||
//mxd. Show hints for this mode
|
||||
General.Interface.ShowEditModeHints(hints);
|
||||
}
|
||||
|
||||
// Mode disengages
|
||||
|
|
|
@ -1032,6 +1032,7 @@ namespace CodeImp.DoomBuilder
|
|||
mainwindow.UpdateThingsFilters();
|
||||
mainwindow.UpdateInterface();
|
||||
//mxd
|
||||
mainwindow.AddHintsDocker();
|
||||
mainwindow.UpdateGZDoomPanel();
|
||||
mainwindow.HideInfo();
|
||||
|
||||
|
@ -1083,6 +1084,7 @@ namespace CodeImp.DoomBuilder
|
|||
mainwindow.HideInfo();
|
||||
mainwindow.UpdateThingsFilters();
|
||||
//mxd
|
||||
mainwindow.RemoveHintsDocker();
|
||||
mainwindow.UpdateGZDoomPanel();
|
||||
mainwindow.UpdateInterface();
|
||||
mainwindow.DisplayReady();
|
||||
|
@ -1175,6 +1177,7 @@ namespace CodeImp.DoomBuilder
|
|||
mainwindow.UpdateThingsFilters();
|
||||
mainwindow.UpdateInterface();
|
||||
mainwindow.HideInfo();
|
||||
mainwindow.AddHintsDocker(); //mxd
|
||||
|
||||
//mxd
|
||||
mainwindow.UpdateGZDoomPanel();
|
||||
|
@ -1264,6 +1267,7 @@ namespace CodeImp.DoomBuilder
|
|||
mainwindow.UpdateThingsFilters();
|
||||
mainwindow.UpdateInterface();
|
||||
mainwindow.HideInfo();
|
||||
mainwindow.AddHintsDocker(); //mxd
|
||||
|
||||
if(errorlogger.IsErrorAdded)
|
||||
{
|
||||
|
|
|
@ -558,6 +558,11 @@ namespace CodeImp.DoomBuilder.Geometry
|
|||
}
|
||||
|
||||
// Update line
|
||||
if(useOverrides) { //mxd
|
||||
if(ls.Line.Front != null) ls.Line.Front.ShiftTextures();
|
||||
if(ls.Line.Back != null) ls.Line.Back.ShiftTextures();
|
||||
}
|
||||
|
||||
if(ls.Line.Front != null) ls.Line.Front.RemoveUnneededTextures(wassinglesided);
|
||||
if(ls.Line.Back != null) ls.Line.Back.RemoveUnneededTextures(wassinglesided);
|
||||
|
||||
|
@ -597,7 +602,7 @@ namespace CodeImp.DoomBuilder.Geometry
|
|||
ls.Line.ApplySidedFlags();
|
||||
|
||||
// We must remove the (now useless) middle texture on the other side
|
||||
if(ls.Line.Back != null) ls.Line.Back.RemoveUnneededTextures(true, true);
|
||||
if(ls.Line.Back != null) ls.Line.Back.RemoveUnneededTextures(true, false, true);
|
||||
}
|
||||
// Added 23-9-08, can we do this or will it break things?
|
||||
else if(!original.Sector.IsDisposed) //mxd
|
||||
|
@ -617,7 +622,7 @@ namespace CodeImp.DoomBuilder.Geometry
|
|||
ls.Line.ApplySidedFlags();
|
||||
|
||||
// We must remove the (now useless) middle texture on the other side
|
||||
if(ls.Line.Front != null) ls.Line.Front.RemoveUnneededTextures(true, true);
|
||||
if(ls.Line.Front != null) ls.Line.Front.RemoveUnneededTextures(true, false, true);
|
||||
}
|
||||
// Added 23-9-08, can we do this or will it break things?
|
||||
else if(!original.Sector.IsDisposed) //mxd
|
||||
|
@ -676,12 +681,12 @@ namespace CodeImp.DoomBuilder.Geometry
|
|||
private static void TakeSidedefDefaults(ref SidedefSettings settings, bool useOverrides)
|
||||
{
|
||||
// Use defaults where no settings could be found
|
||||
if(settings.newtexhigh == null || (useOverrides && General.Map.Options.OverrideWallTexture))
|
||||
settings.newtexhigh = General.Map.Options.DefaultWallTexture;
|
||||
if(settings.newtexmid == null || (useOverrides && General.Map.Options.OverrideWallTexture))
|
||||
if(settings.newtexhigh == null || (useOverrides && General.Map.Options.OverrideTopTexture))
|
||||
settings.newtexhigh = General.Map.Options.DefaultTopTexture;
|
||||
if(settings.newtexmid == null || (useOverrides && General.Map.Options.OverrideMiddleTexture))
|
||||
settings.newtexmid = General.Map.Options.DefaultWallTexture;
|
||||
if(settings.newtexlow == null || (useOverrides && General.Map.Options.OverrideWallTexture))
|
||||
settings.newtexlow = General.Map.Options.DefaultWallTexture;
|
||||
if(settings.newtexlow == null || (useOverrides && General.Map.Options.OverrideBottomTexture))
|
||||
settings.newtexlow = General.Map.Options.DefaultBottomTexture;
|
||||
}
|
||||
|
||||
// This takes sidedef settings if not taken yet
|
||||
|
|
|
@ -530,10 +530,8 @@ namespace CodeImp.DoomBuilder.Map
|
|||
// This checks and returns a flag without creating it
|
||||
public bool IsFlagSet(string flagname)
|
||||
{
|
||||
if(flags.ContainsKey(flagname))
|
||||
return flags[flagname];
|
||||
else
|
||||
return false;
|
||||
if(flags.ContainsKey(flagname)) return flags[flagname];
|
||||
return false;
|
||||
}
|
||||
|
||||
// This sets a flag
|
||||
|
@ -546,7 +544,6 @@ namespace CodeImp.DoomBuilder.Map
|
|||
flags[flagname] = value;
|
||||
|
||||
// Cached flags
|
||||
//if(flagname == General.Map.Config.SoundLinedefFlag) blocksoundflag = value; //mxd
|
||||
if(flagname == General.Map.Config.ImpassableFlag) impassableflag = value;
|
||||
|
||||
//mxd
|
||||
|
@ -565,7 +562,6 @@ namespace CodeImp.DoomBuilder.Map
|
|||
{
|
||||
BeforePropsChange();
|
||||
flags.Clear();
|
||||
//blocksoundflag = false;
|
||||
impassableflag = false;
|
||||
|
||||
//mxd
|
||||
|
|
|
@ -60,7 +60,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Sector drawing options
|
||||
private string defaultfloortexture;
|
||||
private string defaultceiltexture;
|
||||
private string defaulttoptexture;
|
||||
private string defaultwalltexture;
|
||||
private string defaultbottomtexture;
|
||||
private int custombrightness;
|
||||
private int customfloorheight;
|
||||
private int customceilheight;
|
||||
|
@ -68,7 +70,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Sector drawing overrides
|
||||
private bool overridefloortexture;
|
||||
private bool overrideceiltexture;
|
||||
private bool overridewalltexture;
|
||||
private bool overridetoptexture;
|
||||
private bool overridemiddletexture;
|
||||
private bool overridebottomtexture;
|
||||
private bool overridefloorheight;
|
||||
private bool overrideceilheight;
|
||||
private bool overridebrightness;
|
||||
|
@ -102,7 +106,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
private Dictionary<int, string> tagLabels;
|
||||
|
||||
//mxd. Sector drawing options
|
||||
public string DefaultTopTexture { get { return defaulttoptexture; } set { defaulttoptexture = value; } }
|
||||
public string DefaultWallTexture { get { return defaultwalltexture; } set { defaultwalltexture = value; } }
|
||||
public string DefaultBottomTexture { get { return defaultbottomtexture; } set { defaultbottomtexture = value; } }
|
||||
public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } }
|
||||
public string DefaultCeilingTexture { get { return defaultceiltexture; } set { defaultceiltexture = value; } }
|
||||
public int CustomBrightness { get { return custombrightness; } set { custombrightness = value; } }
|
||||
|
@ -112,7 +118,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Sector drawing overrides
|
||||
public bool OverrideFloorTexture { get { return overridefloortexture; } set { overridefloortexture = value; } }
|
||||
public bool OverrideCeilingTexture { get { return overrideceiltexture; } set { overrideceiltexture = value; } }
|
||||
public bool OverrideWallTexture { get { return overridewalltexture; } set { overridewalltexture = value; } }
|
||||
public bool OverrideTopTexture { get { return overridetoptexture; } set { overridetoptexture = value; } }
|
||||
public bool OverrideMiddleTexture { get { return overridemiddletexture; } set { overridemiddletexture = value; } }
|
||||
public bool OverrideBottomTexture { get { return overridebottomtexture; } set { overridebottomtexture = value; } }
|
||||
public bool OverrideFloorHeight { get { return overridefloorheight; } set { overridefloorheight = value; } }
|
||||
public bool OverrideCeilingHeight { get { return overrideceilheight; } set { overrideceilheight = value; } }
|
||||
public bool OverrideBrightness { get { return overridebrightness; } set { overridebrightness = value; } }
|
||||
|
@ -177,7 +185,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Read Sector drawing options
|
||||
defaultfloortexture = this.mapconfig.ReadSetting("defaultfloortexture", string.Empty);
|
||||
defaultceiltexture = this.mapconfig.ReadSetting("defaultceiltexture", string.Empty);
|
||||
defaulttoptexture = this.mapconfig.ReadSetting("defaulttoptexture", string.Empty);
|
||||
defaultwalltexture = this.mapconfig.ReadSetting("defaultwalltexture", string.Empty);
|
||||
defaultbottomtexture = this.mapconfig.ReadSetting("defaultbottomtexture", string.Empty);
|
||||
custombrightness = General.Clamp(this.mapconfig.ReadSetting("custombrightness", 196), 0, 255);
|
||||
customfloorheight = this.mapconfig.ReadSetting("customfloorheight", 0);
|
||||
customceilheight = this.mapconfig.ReadSetting("customceilheight", 128);
|
||||
|
@ -185,7 +195,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Read Sector drawing overrides
|
||||
overridefloortexture = this.mapconfig.ReadSetting("overridefloortexture", false);
|
||||
overrideceiltexture = this.mapconfig.ReadSetting("overrideceiltexture", false);
|
||||
overridewalltexture = this.mapconfig.ReadSetting("overridewalltexture", false);
|
||||
overridetoptexture = this.mapconfig.ReadSetting("overridetoptexture", false);
|
||||
overridemiddletexture = this.mapconfig.ReadSetting("overridemiddletexture", false);
|
||||
overridebottomtexture = this.mapconfig.ReadSetting("overridebottomtexture", false);
|
||||
overridefloorheight = this.mapconfig.ReadSetting("overridefloorheight", false);
|
||||
overrideceilheight = this.mapconfig.ReadSetting("overrideceilheight", false);
|
||||
overridebrightness = this.mapconfig.ReadSetting("overridebrightness", false);
|
||||
|
@ -289,7 +301,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Write Sector drawing options
|
||||
mapconfig.WriteSetting("defaultfloortexture", defaultfloortexture);
|
||||
mapconfig.WriteSetting("defaultceiltexture", defaultceiltexture);
|
||||
mapconfig.WriteSetting("defaulttoptexture", defaulttoptexture);
|
||||
mapconfig.WriteSetting("defaultwalltexture", defaultwalltexture);
|
||||
mapconfig.WriteSetting("defaultbottomtexture", defaultbottomtexture);
|
||||
mapconfig.WriteSetting("custombrightness", custombrightness);
|
||||
mapconfig.WriteSetting("customfloorheight", customfloorheight);
|
||||
mapconfig.WriteSetting("customceilheight", customceilheight);
|
||||
|
@ -297,7 +311,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Write Sector drawing overrides
|
||||
mapconfig.WriteSetting("overridefloortexture", overridefloortexture);
|
||||
mapconfig.WriteSetting("overrideceiltexture", overrideceiltexture);
|
||||
mapconfig.WriteSetting("overridewalltexture", overridewalltexture);
|
||||
mapconfig.WriteSetting("overridetoptexture", overridetoptexture);
|
||||
mapconfig.WriteSetting("overridemiddletexture", overridemiddletexture);
|
||||
mapconfig.WriteSetting("overridebottomtexture", overridebottomtexture);
|
||||
mapconfig.WriteSetting("overridefloorheight", overridefloorheight);
|
||||
mapconfig.WriteSetting("overrideceilheight", overrideceilheight);
|
||||
mapconfig.WriteSetting("overridebrightness", overridebrightness);
|
||||
|
|
|
@ -299,13 +299,14 @@ namespace CodeImp.DoomBuilder.Map
|
|||
// This removes textures that are not required
|
||||
public void RemoveUnneededTextures(bool removemiddle)
|
||||
{
|
||||
RemoveUnneededTextures(removemiddle, false);
|
||||
RemoveUnneededTextures(removemiddle, !General.Settings.AutoClearSidedefTextures, false);
|
||||
}
|
||||
|
||||
// This removes textures that are not required
|
||||
public void RemoveUnneededTextures(bool removemiddle, bool force)
|
||||
public void RemoveUnneededTextures(bool removemiddle, bool shiftMiddle, bool force)
|
||||
{
|
||||
bool changed = false; //mxd
|
||||
string curMidTex = this.texnamemid; //mxd
|
||||
|
||||
// The middle texture can be removed regardless of any sector tag or linedef action
|
||||
if(!MiddleRequired() && removemiddle)
|
||||
|
@ -319,30 +320,66 @@ namespace CodeImp.DoomBuilder.Map
|
|||
|
||||
// Check if the line or sectors have no action or tags because
|
||||
// if they do, any texture on this side could be needed
|
||||
if(((linedef.Tag <= 0) && (linedef.Action == 0) && (sector.Tag <= 0) &&
|
||||
((Other == null) || (Other.sector.Tag <= 0))) ||
|
||||
force)
|
||||
if(force || ((linedef.Tag <= 0) && (linedef.Action == 0) && (sector.Tag <= 0) &&
|
||||
((Other == null) || (Other.sector.Tag <= 0))))
|
||||
{
|
||||
if(!HighRequired())
|
||||
{
|
||||
if(!changed) { //mxd
|
||||
BeforePropsChange();
|
||||
changed = true;
|
||||
if(shiftMiddle) { //mxd
|
||||
if(string.IsNullOrEmpty(this.texnamehigh) || this.texnamehigh == "-")
|
||||
SetTextureHigh(curMidTex);
|
||||
} else {
|
||||
if(!changed) { //mxd
|
||||
BeforePropsChange();
|
||||
changed = true;
|
||||
}
|
||||
this.texnamehigh = "-";
|
||||
this.longtexnamehigh = MapSet.EmptyLongName;
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
this.texnamehigh = "-";
|
||||
this.longtexnamehigh = MapSet.EmptyLongName;
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
if(!LowRequired())
|
||||
{
|
||||
if(!changed) BeforePropsChange(); //mxd
|
||||
this.texnamelow = "-";
|
||||
this.longtexnamelow = MapSet.EmptyLongName;
|
||||
General.Map.IsChanged = true;
|
||||
if(shiftMiddle) { //mxd
|
||||
if(string.IsNullOrEmpty(this.texnamelow) || this.texnamelow == "-")
|
||||
SetTextureLow(curMidTex);
|
||||
} else {
|
||||
if(!changed) BeforePropsChange(); //mxd
|
||||
this.texnamelow = "-";
|
||||
this.longtexnamelow = MapSet.EmptyLongName;
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//mxd
|
||||
internal void ShiftTextures() {
|
||||
BeforePropsChange();
|
||||
|
||||
if(string.IsNullOrEmpty(texnamehigh) || texnamehigh == "-" && HighRequired()) {
|
||||
if(General.Map.Options.OverrideTopTexture) {
|
||||
texnamehigh = General.Map.Options.DefaultTopTexture;
|
||||
longtexnamehigh = Lump.MakeLongName(texnamehigh);
|
||||
} else {
|
||||
texnamehigh = texnamemid;
|
||||
longtexnamehigh = longtexnamemid;
|
||||
}
|
||||
}
|
||||
|
||||
if(string.IsNullOrEmpty(texnamelow) || texnamelow == "-" && LowRequired()) {
|
||||
if(General.Map.Options.OverrideBottomTexture) {
|
||||
texnamelow = General.Map.Options.DefaultBottomTexture;
|
||||
longtexnamelow = Lump.MakeLongName(texnamelow);
|
||||
} else {
|
||||
texnamelow = texnamemid;
|
||||
longtexnamelow = longtexnamemid;
|
||||
}
|
||||
}
|
||||
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This checks if a texture is required
|
||||
|
|
9
Source/Core/Properties/Resources.Designer.cs
generated
9
Source/Core/Properties/Resources.Designer.cs
generated
|
@ -1,7 +1,7 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.4927
|
||||
// Runtime Version:2.0.50727.5466
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
|
@ -95,6 +95,13 @@ namespace CodeImp.DoomBuilder.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ClearTextures {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ClearTextures", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap CLogo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CLogo", resourceCulture);
|
||||
|
|
|
@ -118,6 +118,9 @@
|
|||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Cut" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Cut.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ArrowUp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ArrowUp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -172,15 +175,15 @@
|
|||
<data name="Splash3_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Splash3_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScriptPalette" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ScriptPalette.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScriptHelp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ScriptHelp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="KnownTextureSet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\KnownTextureSet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Splash3_trans" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Splash3_trans.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -190,14 +193,17 @@
|
|||
<data name="Status2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Status2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Redo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="Unpin" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Unpin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Status0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Status0.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="ViewBrightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ViewBrightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Zoom" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Zoom.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="mergegeometry" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mergegeometry.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -277,6 +283,9 @@
|
|||
<data name="ErrorLarge" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ErrorLarge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Lightbulb" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Lightbulb.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MCrash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MCrash.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -286,9 +295,6 @@
|
|||
<data name="Zoom_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Zoom_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Zoom" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Zoom.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Model_selected" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Model_selected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -307,8 +313,8 @@
|
|||
<data name="Script2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Script2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Cut" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Cut.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="Redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Redo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Prefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Prefab.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -337,14 +343,14 @@
|
|||
<data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Test" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Undo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Unpin" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Unpin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="SlimDX_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SlimDX_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="KnownTextureSet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\KnownTextureSet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -361,17 +367,14 @@
|
|||
<data name="ViewNormal" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MissingThing" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MissingThing.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Monster3" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ViewBrightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ViewBrightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="Test" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Light" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Light.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -382,8 +385,8 @@
|
|||
<data name="OpenScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\OpenScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SlimDX_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SlimDX_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="MissingThing" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MissingThing.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Status11" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Status11.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -400,7 +403,7 @@
|
|||
<data name="Check" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Lightbulb" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Lightbulb.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="ClearTextures" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ClearTextures.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
|
@ -82,9 +82,10 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
dragThings = new Presentation();
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Background, BlendingMode.Mask, General.Settings.BackgroundAlpha));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Surface, BlendingMode.Mask));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Geometry, BlendingMode.Alpha, 1.0f, true));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Things, BlendingMode.Alpha, 1f, false));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Grid, BlendingMode.Mask));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Geometry, BlendingMode.Alpha, 1f, true));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Geometry, BlendingMode.Alpha, 0.5f, true));
|
||||
dragThings.layers.Add(new PresentLayer(RendererLayer.Overlay, BlendingMode.Alpha, 1f, true));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -348,6 +348,18 @@ deleteitem
|
|||
allowscroll = true;
|
||||
}
|
||||
|
||||
//mxd
|
||||
dissolveitem
|
||||
{
|
||||
title = "Dissolve Item";
|
||||
category = "edit";
|
||||
description = "Deletes the highlighted or selected items in classic modes, trying to preserve the rest of the map geometry intact.";
|
||||
allowkeys = true;
|
||||
allowmouse = true;
|
||||
allowscroll = true;
|
||||
//default = 131192;
|
||||
}
|
||||
|
||||
gridsetup
|
||||
{
|
||||
title = "Grid Setup";
|
||||
|
@ -419,6 +431,17 @@ toggleautomerge
|
|||
allowscroll = true;
|
||||
}
|
||||
|
||||
//mxd
|
||||
toggleautoclearsidetextures
|
||||
{
|
||||
title = "Auto Clear Sidedef Textures";
|
||||
category = "edit";
|
||||
description = "Toggles automatic removal of sidedef textures when floor or ceiling height is changed or when geometry is drawn, copied or pasted.";
|
||||
allowkeys = true;
|
||||
allowmouse = true;
|
||||
allowscroll = true;
|
||||
}
|
||||
|
||||
clearselection
|
||||
{
|
||||
title = "Clear Selection";
|
||||
|
@ -941,7 +964,7 @@ visualselect
|
|||
{
|
||||
title = "Select";
|
||||
category = "visual";
|
||||
description = "Selects the highlighted item. Hold Shift to select adjacent surfaces with the same texture. Hold Ctrl to adjacent surfaces with the same height";
|
||||
description = "Selects the highlighted item. Hold Shift to select adjacent surfaces with the same texture. Hold Ctrl to select adjacent surfaces with the same height";
|
||||
allowkeys = true;
|
||||
allowmouse = true;
|
||||
allowscroll = false;
|
||||
|
|
BIN
Source/Core/Resources/ClearTextures.png
Normal file
BIN
Source/Core/Resources/ClearTextures.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 760 B |
|
@ -531,6 +531,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// This is called when an editing mode item is checked or unchecked
|
||||
private void listmodes_ItemChecked(object sender, ItemCheckedEventArgs e)
|
||||
{
|
||||
if(preventchanges) return; //mxd
|
||||
|
||||
// Leave when no configuration selected
|
||||
if(configinfo == null) return;
|
||||
|
||||
|
|
147
Source/Core/Windows/MainForm.Designer.cs
generated
147
Source/Core/Windows/MainForm.Designer.cs
generated
|
@ -38,14 +38,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem("Press Use to use");
|
||||
System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem("To look around, look around");
|
||||
System.Windows.Forms.ListViewItem listViewItem11 = new System.Windows.Forms.ListViewItem("Another usefull hint");
|
||||
System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem("Yet another usefull hint");
|
||||
System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem("Yet another usefull hint");
|
||||
System.Windows.Forms.ListViewItem listViewItem14 = new System.Windows.Forms.ListViewItem("Yet another usefull hint");
|
||||
System.Windows.Forms.ListViewItem listViewItem15 = new System.Windows.Forms.ListViewItem("Yet another usefull hint");
|
||||
System.Windows.Forms.ListViewItem listViewItem16 = new System.Windows.Forms.ListViewItem("Yet another usefull hint");
|
||||
this.seperatorfileopen = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.seperatorfilerecent = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.seperatoreditgrid = new System.Windows.Forms.ToolStripSeparator();
|
||||
|
@ -79,6 +71,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.itempastespecial = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.itemsnaptogrid = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.itemautomerge = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.itemautoclearsidetextures = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.seperatoreditgeometry = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.itemgridinc = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.itemgriddec = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -239,10 +232,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.yposlabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.warnsLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.panelinfo = new System.Windows.Forms.Panel();
|
||||
this.hintIcon = new System.Windows.Forms.PictureBox();
|
||||
this.hints = new System.Windows.Forms.ListView();
|
||||
this.heightpanel1 = new System.Windows.Forms.Panel();
|
||||
this.labelcollapsedinfo = new System.Windows.Forms.Label();
|
||||
this.modename = new System.Windows.Forms.Label();
|
||||
this.buttontoggleinfo = new System.Windows.Forms.Button();
|
||||
this.vertexinfo = new CodeImp.DoomBuilder.Controls.VertexInfoPanel();
|
||||
this.linedefinfo = new CodeImp.DoomBuilder.Controls.LinedefInfoPanel();
|
||||
|
@ -256,6 +248,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.dockersspace = new System.Windows.Forms.Panel();
|
||||
this.dockerspanel = new CodeImp.DoomBuilder.Controls.DockersControl();
|
||||
this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
|
||||
this.buttonautoclearsidetextures = new System.Windows.Forms.ToolStripButton();
|
||||
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||
|
@ -267,7 +260,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.toolbarContextMenu.SuspendLayout();
|
||||
this.statusbar.SuspendLayout();
|
||||
this.panelinfo.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.hintIcon)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// toolStripSeparator1
|
||||
|
@ -320,13 +312,13 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.seperatoreditgrid.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.seperatoreditgrid.Name = "seperatoreditgrid";
|
||||
this.seperatoreditgrid.Size = new System.Drawing.Size(211, 6);
|
||||
this.seperatoreditgrid.Size = new System.Drawing.Size(216, 6);
|
||||
//
|
||||
// seperatoreditcopypaste
|
||||
//
|
||||
this.seperatoreditcopypaste.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.seperatoreditcopypaste.Name = "seperatoreditcopypaste";
|
||||
this.seperatoreditcopypaste.Size = new System.Drawing.Size(211, 6);
|
||||
this.seperatoreditcopypaste.Size = new System.Drawing.Size(216, 6);
|
||||
//
|
||||
// seperatorfile
|
||||
//
|
||||
|
@ -499,6 +491,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.seperatoreditcopypaste,
|
||||
this.itemsnaptogrid,
|
||||
this.itemautomerge,
|
||||
this.itemautoclearsidetextures,
|
||||
this.seperatoreditgeometry,
|
||||
this.itemgridinc,
|
||||
this.itemgriddec,
|
||||
|
@ -519,7 +512,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
|
||||
this.itemundo.Name = "itemundo";
|
||||
this.itemundo.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemundo.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemundo.Tag = "builder_undo";
|
||||
this.itemundo.Text = "&Undo";
|
||||
this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -528,7 +521,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
|
||||
this.itemredo.Name = "itemredo";
|
||||
this.itemredo.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemredo.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemredo.Tag = "builder_redo";
|
||||
this.itemredo.Text = "&Redo";
|
||||
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -537,13 +530,13 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.seperatoreditundo.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.seperatoreditundo.Name = "seperatoreditundo";
|
||||
this.seperatoreditundo.Size = new System.Drawing.Size(211, 6);
|
||||
this.seperatoreditundo.Size = new System.Drawing.Size(216, 6);
|
||||
//
|
||||
// itemcut
|
||||
//
|
||||
this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
|
||||
this.itemcut.Name = "itemcut";
|
||||
this.itemcut.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemcut.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemcut.Tag = "builder_cutselection";
|
||||
this.itemcut.Text = "Cu&t";
|
||||
this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -552,7 +545,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
|
||||
this.itemcopy.Name = "itemcopy";
|
||||
this.itemcopy.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemcopy.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemcopy.Tag = "builder_copyselection";
|
||||
this.itemcopy.Text = "&Copy";
|
||||
this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -561,7 +554,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
|
||||
this.itempaste.Name = "itempaste";
|
||||
this.itempaste.Size = new System.Drawing.Size(214, 22);
|
||||
this.itempaste.Size = new System.Drawing.Size(219, 22);
|
||||
this.itempaste.Tag = "builder_pasteselection";
|
||||
this.itempaste.Text = "&Paste";
|
||||
this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -570,7 +563,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itempastespecial.Image = global::CodeImp.DoomBuilder.Properties.Resources.PasteSpecial;
|
||||
this.itempastespecial.Name = "itempastespecial";
|
||||
this.itempastespecial.Size = new System.Drawing.Size(214, 22);
|
||||
this.itempastespecial.Size = new System.Drawing.Size(219, 22);
|
||||
this.itempastespecial.Tag = "builder_pasteselectionspecial";
|
||||
this.itempastespecial.Text = "Paste Special...";
|
||||
this.itempastespecial.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -581,7 +574,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
|
||||
this.itemsnaptogrid.Name = "itemsnaptogrid";
|
||||
this.itemsnaptogrid.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemsnaptogrid.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemsnaptogrid.Tag = "builder_togglesnap";
|
||||
this.itemsnaptogrid.Text = "&Snap to Grid";
|
||||
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -592,21 +585,32 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
|
||||
this.itemautomerge.Name = "itemautomerge";
|
||||
this.itemautomerge.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemautomerge.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemautomerge.Tag = "builder_toggleautomerge";
|
||||
this.itemautomerge.Text = "&Merge Geometry";
|
||||
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
//
|
||||
// itemautoclearsidetextures
|
||||
//
|
||||
this.itemautoclearsidetextures.Checked = true;
|
||||
this.itemautoclearsidetextures.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.itemautoclearsidetextures.Image = global::CodeImp.DoomBuilder.Properties.Resources.ClearTextures;
|
||||
this.itemautoclearsidetextures.Name = "itemautoclearsidetextures";
|
||||
this.itemautoclearsidetextures.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemautoclearsidetextures.Tag = "builder_toggleautoclearsidetextures";
|
||||
this.itemautoclearsidetextures.Text = "&Auto Clear Sidedef Textures";
|
||||
this.itemautoclearsidetextures.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
//
|
||||
// seperatoreditgeometry
|
||||
//
|
||||
this.seperatoreditgeometry.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.seperatoreditgeometry.Name = "seperatoreditgeometry";
|
||||
this.seperatoreditgeometry.Size = new System.Drawing.Size(211, 6);
|
||||
this.seperatoreditgeometry.Size = new System.Drawing.Size(216, 6);
|
||||
//
|
||||
// itemgridinc
|
||||
//
|
||||
this.itemgridinc.Name = "itemgridinc";
|
||||
this.itemgridinc.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemgridinc.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemgridinc.Tag = "builder_griddec";
|
||||
this.itemgridinc.Text = "&Increase Grid";
|
||||
this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -614,7 +618,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// itemgriddec
|
||||
//
|
||||
this.itemgriddec.Name = "itemgriddec";
|
||||
this.itemgriddec.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemgriddec.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemgriddec.Tag = "builder_gridinc";
|
||||
this.itemgriddec.Text = "&Decrease Grid";
|
||||
this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -623,7 +627,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
|
||||
this.itemgridsetup.Name = "itemgridsetup";
|
||||
this.itemgridsetup.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemgridsetup.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemgridsetup.Tag = "builder_gridsetup";
|
||||
this.itemgridsetup.Text = "&Grid and Backdrop Setup...";
|
||||
this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -631,7 +635,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// toolStripSeparator5
|
||||
//
|
||||
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||
this.toolStripSeparator5.Size = new System.Drawing.Size(211, 6);
|
||||
this.toolStripSeparator5.Size = new System.Drawing.Size(216, 6);
|
||||
//
|
||||
// addToGroup
|
||||
//
|
||||
|
@ -647,7 +651,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.addGroup9,
|
||||
this.addGroup10});
|
||||
this.addToGroup.Name = "addToGroup";
|
||||
this.addToGroup.Size = new System.Drawing.Size(214, 22);
|
||||
this.addToGroup.Size = new System.Drawing.Size(219, 22);
|
||||
this.addToGroup.Text = "Add Selection to Group";
|
||||
this.addToGroup.DropDownOpening += new System.EventHandler(this.addToGroup_DropDownOpening);
|
||||
//
|
||||
|
@ -745,7 +749,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.selectGroup9,
|
||||
this.selectGroup10});
|
||||
this.selectGroup.Name = "selectGroup";
|
||||
this.selectGroup.Size = new System.Drawing.Size(214, 22);
|
||||
this.selectGroup.Size = new System.Drawing.Size(219, 22);
|
||||
this.selectGroup.Text = "Select Group";
|
||||
this.selectGroup.DropDownOpening += new System.EventHandler(this.selectGroup_DropDownOpening);
|
||||
//
|
||||
|
@ -843,7 +847,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.clearGroup9,
|
||||
this.clearGroup10});
|
||||
this.clearGroup.Name = "clearGroup";
|
||||
this.clearGroup.Size = new System.Drawing.Size(214, 22);
|
||||
this.clearGroup.Size = new System.Drawing.Size(219, 22);
|
||||
this.clearGroup.Text = "Clear Group";
|
||||
this.clearGroup.DropDownOpening += new System.EventHandler(this.selectGroup_DropDownOpening);
|
||||
//
|
||||
|
@ -931,7 +935,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
|
||||
this.itemmapoptions.Name = "itemmapoptions";
|
||||
this.itemmapoptions.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemmapoptions.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemmapoptions.Tag = "builder_mapoptions";
|
||||
this.itemmapoptions.Text = "Map &Options....";
|
||||
this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -940,7 +944,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
this.itemviewusedtags.Image = global::CodeImp.DoomBuilder.Properties.Resources.TagStatistics;
|
||||
this.itemviewusedtags.Name = "itemviewusedtags";
|
||||
this.itemviewusedtags.Size = new System.Drawing.Size(214, 22);
|
||||
this.itemviewusedtags.Size = new System.Drawing.Size(219, 22);
|
||||
this.itemviewusedtags.Tag = "builder_viewusedtags";
|
||||
this.itemviewusedtags.Text = "View Used Tags...";
|
||||
this.itemviewusedtags.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
|
@ -1368,6 +1372,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.seperatorviews,
|
||||
this.buttonsnaptogrid,
|
||||
this.buttonautomerge,
|
||||
this.buttonautoclearsidetextures,
|
||||
this.seperatorgeometry,
|
||||
this.buttontogglefx,
|
||||
this.buttontoggledynlight,
|
||||
|
@ -2132,10 +2137,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//
|
||||
// panelinfo
|
||||
//
|
||||
this.panelinfo.Controls.Add(this.hintIcon);
|
||||
this.panelinfo.Controls.Add(this.hints);
|
||||
this.panelinfo.Controls.Add(this.heightpanel1);
|
||||
this.panelinfo.Controls.Add(this.labelcollapsedinfo);
|
||||
this.panelinfo.Controls.Add(this.modename);
|
||||
this.panelinfo.Controls.Add(this.buttontoggleinfo);
|
||||
this.panelinfo.Controls.Add(this.vertexinfo);
|
||||
this.panelinfo.Controls.Add(this.linedefinfo);
|
||||
|
@ -2147,42 +2151,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.panelinfo.Size = new System.Drawing.Size(986, 106);
|
||||
this.panelinfo.TabIndex = 4;
|
||||
//
|
||||
// hintIcon
|
||||
//
|
||||
this.hintIcon.Location = new System.Drawing.Point(4, 20);
|
||||
this.hintIcon.Name = "hintIcon";
|
||||
this.hintIcon.Size = new System.Drawing.Size(16, 16);
|
||||
this.hintIcon.TabIndex = 9;
|
||||
this.hintIcon.TabStop = false;
|
||||
this.hintIcon.Visible = false;
|
||||
//
|
||||
// hints
|
||||
//
|
||||
this.hints.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.hints.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.hints.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.hints.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.hints.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
|
||||
listViewItem9,
|
||||
listViewItem10,
|
||||
listViewItem11,
|
||||
listViewItem12,
|
||||
listViewItem13,
|
||||
listViewItem14,
|
||||
listViewItem15,
|
||||
listViewItem16});
|
||||
this.hints.LabelWrap = false;
|
||||
this.hints.Location = new System.Drawing.Point(20, 21);
|
||||
this.hints.MultiSelect = false;
|
||||
this.hints.Name = "hints";
|
||||
this.hints.Scrollable = false;
|
||||
this.hints.ShowGroups = false;
|
||||
this.hints.Size = new System.Drawing.Size(946, 110);
|
||||
this.hints.TabIndex = 8;
|
||||
this.hints.UseCompatibleStateImageBehavior = false;
|
||||
this.hints.View = System.Windows.Forms.View.List;
|
||||
this.hints.Visible = false;
|
||||
//
|
||||
// heightpanel1
|
||||
//
|
||||
this.heightpanel1.BackColor = System.Drawing.Color.Navy;
|
||||
|
@ -2196,14 +2164,28 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// labelcollapsedinfo
|
||||
//
|
||||
this.labelcollapsedinfo.AutoSize = true;
|
||||
this.labelcollapsedinfo.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelcollapsedinfo.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelcollapsedinfo.Location = new System.Drawing.Point(2, 2);
|
||||
this.labelcollapsedinfo.Name = "labelcollapsedinfo";
|
||||
this.labelcollapsedinfo.Size = new System.Drawing.Size(155, 13);
|
||||
this.labelcollapsedinfo.Size = new System.Drawing.Size(137, 13);
|
||||
this.labelcollapsedinfo.TabIndex = 6;
|
||||
this.labelcollapsedinfo.Text = "Collapsed Descriptions";
|
||||
this.labelcollapsedinfo.Visible = false;
|
||||
//
|
||||
// modename
|
||||
//
|
||||
this.modename.AutoSize = true;
|
||||
this.modename.Font = new System.Drawing.Font("Verdana", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.modename.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.modename.Location = new System.Drawing.Point(12, 20);
|
||||
this.modename.Name = "modename";
|
||||
this.modename.Size = new System.Drawing.Size(244, 59);
|
||||
this.modename.TabIndex = 8;
|
||||
this.modename.Text = "Vertices";
|
||||
this.modename.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.modename.UseMnemonic = false;
|
||||
this.modename.Visible = false;
|
||||
//
|
||||
// buttontoggleinfo
|
||||
//
|
||||
this.buttontoggleinfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
|
@ -2328,6 +2310,19 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.dockerscollapser.Interval = 200;
|
||||
this.dockerscollapser.Tick += new System.EventHandler(this.dockerscollapser_Tick);
|
||||
//
|
||||
// buttonautoclearsidetextures
|
||||
//
|
||||
this.buttonautoclearsidetextures.Checked = true;
|
||||
this.buttonautoclearsidetextures.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.buttonautoclearsidetextures.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.buttonautoclearsidetextures.Image = global::CodeImp.DoomBuilder.Properties.Resources.ClearTextures;
|
||||
this.buttonautoclearsidetextures.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.buttonautoclearsidetextures.Name = "buttonautoclearsidetextures";
|
||||
this.buttonautoclearsidetextures.Size = new System.Drawing.Size(23, 22);
|
||||
this.buttonautoclearsidetextures.Tag = "builder_toggleautoclearsidetextures";
|
||||
this.buttonautoclearsidetextures.Text = "Auto Clear Sidedef Textures";
|
||||
this.buttonautoclearsidetextures.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
|
@ -2346,7 +2341,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.MainMenuStrip = this.menumain;
|
||||
this.Name = "MainForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "GZDoomBuilder";
|
||||
this.Text = "GZDoom Builder";
|
||||
this.Deactivate += new System.EventHandler(this.MainForm_Deactivate);
|
||||
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||
this.Shown += new System.EventHandler(this.MainForm_Shown);
|
||||
|
@ -2366,7 +2361,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.statusbar.PerformLayout();
|
||||
this.panelinfo.ResumeLayout(false);
|
||||
this.panelinfo.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.hintIcon)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
@ -2582,7 +2576,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
private System.Windows.Forms.ToolStripMenuItem itemopenmapincurwad;
|
||||
private System.Windows.Forms.ToolStripMenuItem itemgrid1;
|
||||
private System.Windows.Forms.ToolStripMenuItem itemzoom400;
|
||||
private System.Windows.Forms.ListView hints;
|
||||
private System.Windows.Forms.PictureBox hintIcon;
|
||||
private System.Windows.Forms.Label modename;
|
||||
private System.Windows.Forms.ToolStripMenuItem itemautoclearsidetextures;
|
||||
private System.Windows.Forms.ToolStripButton buttonautoclearsidetextures;
|
||||
}
|
||||
}
|
|
@ -131,7 +131,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
// Last info on panels
|
||||
private object lastinfoobject;
|
||||
private string currentModeName; //mxd
|
||||
|
||||
// Recent files
|
||||
private ToolStripMenuItem[] recentitems;
|
||||
|
@ -166,6 +165,10 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// Updating
|
||||
private int lockupdatecount;
|
||||
|
||||
//mxd. Hints
|
||||
private Docker hintsDocker;
|
||||
private HintsPanel hintsPanel;
|
||||
|
||||
//mxd
|
||||
private System.Timers.Timer blinkTimer;
|
||||
|
||||
|
@ -200,7 +203,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
editmodeitems = new List<ToolStripItem>();
|
||||
labelcollapsedinfo.Text = "";
|
||||
display.Dock = DockStyle.Fill;
|
||||
hintIcon.Image = Resources.Lightbulb; //mxd
|
||||
|
||||
// Fetch pointer
|
||||
windowptr = base.Handle;
|
||||
|
@ -250,6 +252,10 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
blinkTimer = new System.Timers.Timer();
|
||||
blinkTimer.Interval = 500;
|
||||
blinkTimer.Elapsed += blinkTimer_Elapsed;
|
||||
|
||||
//mxd. Hints
|
||||
hintsPanel = new HintsPanel();
|
||||
hintsDocker = new Docker("hints", "Help", hintsPanel);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1121,6 +1127,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
{
|
||||
General.Plugins.OnEditMouseEnter(e);
|
||||
General.Editing.Mode.OnMouseEnter(e);
|
||||
if(!General.Map.IsScriptsWindowOpen) display.Focus(); //mxd
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1741,6 +1748,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
buttonviewnormal.Visible = General.Settings.ToolbarViewModes;
|
||||
buttonsnaptogrid.Visible = General.Settings.ToolbarGeometry;
|
||||
buttonautomerge.Visible = General.Settings.ToolbarGeometry;
|
||||
buttonautoclearsidetextures.Visible = General.Settings.ToolbarGeometry; //mxd
|
||||
buttontest.Visible = General.Settings.ToolbarTesting;
|
||||
|
||||
//mxd
|
||||
|
@ -2350,6 +2358,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
itemmapoptions.Enabled = (General.Map != null);
|
||||
itemsnaptogrid.Enabled = (General.Map != null);
|
||||
itemautomerge.Enabled = (General.Map != null);
|
||||
itemautoclearsidetextures.Enabled = (General.Map != null); //mxd
|
||||
itemautoclearsidetextures.Checked = General.Settings.AutoClearSidedefTextures; //mxd
|
||||
itemgridsetup.Enabled = (General.Map != null);
|
||||
itemgridinc.Enabled = (General.Map != null);
|
||||
itemgriddec.Enabled = (General.Map != null);
|
||||
|
@ -2377,6 +2387,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
buttonredo.ToolTipText = itemredo.Text;
|
||||
buttonsnaptogrid.Enabled = (General.Map != null);
|
||||
buttonautomerge.Enabled = (General.Map != null);
|
||||
buttonautoclearsidetextures.Enabled = (General.Map != null); //mxd
|
||||
buttonautoclearsidetextures.Checked = itemautoclearsidetextures.Checked; //mxd
|
||||
buttoncut.Enabled = itemcut.Enabled;
|
||||
buttoncopy.Enabled = itemcopy.Enabled;
|
||||
buttonpaste.Enabled = itempaste.Enabled;
|
||||
|
@ -2416,8 +2428,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
{
|
||||
buttonsnaptogrid.Checked = !buttonsnaptogrid.Checked;
|
||||
itemsnaptogrid.Checked = buttonsnaptogrid.Checked;
|
||||
string onoff = buttonsnaptogrid.Checked ? "ON" : "OFF";
|
||||
DisplayStatus(StatusType.Action, "Snap to grid is now " + onoff + " by default.");
|
||||
DisplayStatus(StatusType.Action, "Snap to grid is " + (buttonsnaptogrid.Checked ? "ENABLED" : "DISABLED"));
|
||||
}
|
||||
|
||||
// Action to toggle auto merge
|
||||
|
@ -2426,14 +2437,21 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
{
|
||||
buttonautomerge.Checked = !buttonautomerge.Checked;
|
||||
itemautomerge.Checked = buttonautomerge.Checked;
|
||||
string onoff = buttonautomerge.Checked ? "ON" : "OFF";
|
||||
DisplayStatus(StatusType.Action, "Snap to geometry is now " + onoff + " by default.");
|
||||
DisplayStatus(StatusType.Action, "Snap to geometry is " + (buttonautomerge.Checked ? "ENABLED" : "DISABLED"));
|
||||
}
|
||||
|
||||
//mxd
|
||||
[BeginAction("toggleautoclearsidetextures")]
|
||||
internal void ToggleAutoClearSideTextures() {
|
||||
buttonautoclearsidetextures.Checked = !buttonautoclearsidetextures.Checked;
|
||||
itemautoclearsidetextures.Checked = buttonautoclearsidetextures.Checked;
|
||||
General.Settings.AutoClearSidedefTextures = buttonautoclearsidetextures.Checked;
|
||||
DisplayStatus(StatusType.Action, "Auto removal of unused sidedef textures is " + (buttonautoclearsidetextures.Checked ? "ENABLED" : "DISABLED"));
|
||||
}
|
||||
|
||||
//mxd
|
||||
[BeginAction("viewusedtags")]
|
||||
internal void ViewUsedTags() {
|
||||
//ShowTagStatistics();
|
||||
TagStatisticsForm f = new TagStatisticsForm();
|
||||
f.ShowDialog(this);
|
||||
}
|
||||
|
@ -2797,8 +2815,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
if(vertexinfo.Visible) vertexinfo.Hide();
|
||||
if(sectorinfo.Visible) sectorinfo.Hide();
|
||||
if(thinginfo.Visible) thinginfo.Hide();
|
||||
hints.Visible = false; //mxd
|
||||
hintIcon.Visible = false; //mxd
|
||||
modename.Visible = false;
|
||||
labelcollapsedinfo.Visible = true;
|
||||
itemtoggleinfo.Checked = false;
|
||||
}
|
||||
|
@ -2827,9 +2844,12 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// This displays the current mode name
|
||||
internal void DisplayModeName(string name)
|
||||
{
|
||||
currentModeName = name; //mxd
|
||||
labelcollapsedinfo.Text = name;
|
||||
labelcollapsedinfo.Refresh();
|
||||
if(lastinfoobject == null) {
|
||||
labelcollapsedinfo.Text = name;
|
||||
labelcollapsedinfo.Refresh();
|
||||
}
|
||||
modename.Text = name;
|
||||
modename.Refresh();
|
||||
}
|
||||
|
||||
// This hides all info panels
|
||||
|
@ -2841,14 +2861,10 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
if(vertexinfo.Visible) vertexinfo.Hide();
|
||||
if(sectorinfo.Visible) sectorinfo.Hide();
|
||||
if(thinginfo.Visible) thinginfo.Hide();
|
||||
labelcollapsedinfo.Text = currentModeName;
|
||||
labelcollapsedinfo.Visible = true;
|
||||
labelcollapsedinfo.Text = modename.Text;
|
||||
labelcollapsedinfo.Refresh();
|
||||
|
||||
//mxd. Show hints?
|
||||
bool showHints = ((General.Map != null) && IsInfoPanelExpanded);
|
||||
hints.Visible = showHints;
|
||||
hintIcon.Visible = showHints && hints.Items.Count > 0;
|
||||
modename.Visible = ((General.Map != null) && IsInfoPanelExpanded);
|
||||
modename.Refresh();
|
||||
|
||||
//mxd. let the plugins know
|
||||
General.Plugins.OnHighlightLost();
|
||||
|
@ -2869,12 +2885,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
//mxd
|
||||
public void ShowEditModeHints(string[] hintsText) {
|
||||
if (hintsText != null) {
|
||||
hintIcon.Visible = true;
|
||||
|
||||
hints.BeginUpdate();
|
||||
hints.Items.Clear();
|
||||
foreach (string s in hintsText) hints.Items.Add(s);
|
||||
hints.EndUpdate();
|
||||
hintsPanel.SetHints(hintsText);
|
||||
} else {
|
||||
ClearEditModeHints();
|
||||
}
|
||||
|
@ -2882,8 +2893,17 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd
|
||||
public void ClearEditModeHints() {
|
||||
hintIcon.Visible = false;
|
||||
hints.Items.Clear();
|
||||
hintsPanel.ClearHints();
|
||||
}
|
||||
|
||||
//mxd
|
||||
internal void AddHintsDocker() {
|
||||
dockerspanel.Add(hintsDocker);
|
||||
}
|
||||
|
||||
//mxd
|
||||
internal void RemoveHintsDocker() {
|
||||
dockerspanel.Remove(hintsDocker);
|
||||
}
|
||||
|
||||
// Show linedef info
|
||||
|
@ -2896,27 +2916,22 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
lastinfoobject = l;
|
||||
hints.Visible = false; //mxd
|
||||
hintIcon.Visible = false; //mxd
|
||||
modename.Visible = false;
|
||||
if(vertexinfo.Visible) vertexinfo.Hide();
|
||||
if(sectorinfo.Visible) sectorinfo.Hide();
|
||||
if(thinginfo.Visible) thinginfo.Hide();
|
||||
if (IsInfoPanelExpanded) {
|
||||
linedefinfo.ShowInfo(l);
|
||||
labelcollapsedinfo.Visible = false; //mxd
|
||||
} else {
|
||||
// Show info on collapsed label
|
||||
labelcollapsedinfo.Visible = true; //mxd
|
||||
if(General.Map.Config.LinedefActions.ContainsKey(l.Action)) {
|
||||
LinedefActionInfo act = General.Map.Config.LinedefActions[l.Action];
|
||||
labelcollapsedinfo.Text = act.ToString();
|
||||
} else if(l.Action == 0)
|
||||
labelcollapsedinfo.Text = l.Action.ToString() + " - None";
|
||||
else
|
||||
labelcollapsedinfo.Text = l.Action.ToString() + " - Unknown";
|
||||
if(IsInfoPanelExpanded) linedefinfo.ShowInfo(l);
|
||||
|
||||
labelcollapsedinfo.Refresh();
|
||||
}
|
||||
// Show info on collapsed label
|
||||
if(General.Map.Config.LinedefActions.ContainsKey(l.Action)) {
|
||||
LinedefActionInfo act = General.Map.Config.LinedefActions[l.Action];
|
||||
labelcollapsedinfo.Text = act.ToString();
|
||||
} else if(l.Action == 0)
|
||||
labelcollapsedinfo.Text = l.Action.ToString() + " - None";
|
||||
else
|
||||
labelcollapsedinfo.Text = l.Action.ToString() + " - Unknown";
|
||||
|
||||
labelcollapsedinfo.Refresh();
|
||||
|
||||
//mxd. let the plugins know
|
||||
General.Plugins.OnHighlightLinedef(l);
|
||||
|
@ -2930,20 +2945,15 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
lastinfoobject = v;
|
||||
hints.Visible = false; //mxd
|
||||
hintIcon.Visible = false; //mxd
|
||||
modename.Visible = false;
|
||||
if (linedefinfo.Visible) linedefinfo.Hide();
|
||||
if (sectorinfo.Visible) sectorinfo.Hide();
|
||||
if (thinginfo.Visible) thinginfo.Hide();
|
||||
if (IsInfoPanelExpanded) {
|
||||
vertexinfo.ShowInfo(v);
|
||||
labelcollapsedinfo.Visible = false; //mxd
|
||||
} else {
|
||||
// Show info on collapsed label
|
||||
labelcollapsedinfo.Visible = true; //mxd
|
||||
labelcollapsedinfo.Text = v.Position.x.ToString("0.##") + ", " + v.Position.y.ToString("0.##");
|
||||
labelcollapsedinfo.Refresh();
|
||||
}
|
||||
if (IsInfoPanelExpanded) vertexinfo.ShowInfo(v);
|
||||
|
||||
// Show info on collapsed label
|
||||
labelcollapsedinfo.Text = v.Position.x.ToString("0.##") + ", " + v.Position.y.ToString("0.##");
|
||||
labelcollapsedinfo.Refresh();
|
||||
|
||||
//mxd. let the plugins know
|
||||
General.Plugins.OnHighlightVertex(v);
|
||||
|
@ -2957,26 +2967,21 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
lastinfoobject = s;
|
||||
hints.Visible = false;
|
||||
hintIcon.Visible = false; //mxd
|
||||
modename.Visible = false;
|
||||
if (linedefinfo.Visible) linedefinfo.Hide();
|
||||
if (vertexinfo.Visible) vertexinfo.Hide();
|
||||
if (thinginfo.Visible) thinginfo.Hide();
|
||||
if (IsInfoPanelExpanded) {
|
||||
sectorinfo.ShowInfo(s);
|
||||
labelcollapsedinfo.Visible = false; //mxd
|
||||
} else {
|
||||
// Show info on collapsed label
|
||||
labelcollapsedinfo.Visible = true; //mxd
|
||||
if (General.Map.Config.SectorEffects.ContainsKey(s.Effect))
|
||||
labelcollapsedinfo.Text = General.Map.Config.SectorEffects[s.Effect].ToString();
|
||||
else if (s.Effect == 0)
|
||||
labelcollapsedinfo.Text = s.Effect.ToString() + " - Normal";
|
||||
else
|
||||
labelcollapsedinfo.Text = s.Effect.ToString() + " - Unknown";
|
||||
if(IsInfoPanelExpanded) sectorinfo.ShowInfo(s);
|
||||
|
||||
labelcollapsedinfo.Refresh();
|
||||
}
|
||||
// Show info on collapsed label
|
||||
if(General.Map.Config.SectorEffects.ContainsKey(s.Effect))
|
||||
labelcollapsedinfo.Text = General.Map.Config.SectorEffects[s.Effect].ToString();
|
||||
else if(s.Effect == 0)
|
||||
labelcollapsedinfo.Text = s.Effect.ToString() + " - Normal";
|
||||
else
|
||||
labelcollapsedinfo.Text = s.Effect.ToString() + " - Unknown";
|
||||
|
||||
labelcollapsedinfo.Refresh();
|
||||
|
||||
//mxd. let the plugins know
|
||||
General.Plugins.OnHighlightSector(s);
|
||||
|
@ -2992,21 +2997,16 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
lastinfoobject = t;
|
||||
hints.Visible = false;
|
||||
hintIcon.Visible = false; //mxd
|
||||
modename.Visible = false;
|
||||
if(linedefinfo.Visible) linedefinfo.Hide();
|
||||
if(vertexinfo.Visible) vertexinfo.Hide();
|
||||
if(sectorinfo.Visible) sectorinfo.Hide();
|
||||
if (IsInfoPanelExpanded) {
|
||||
thinginfo.ShowInfo(t);
|
||||
labelcollapsedinfo.Visible = false; //mxd
|
||||
} else {
|
||||
// Show info on collapsed label
|
||||
labelcollapsedinfo.Visible = true; //mxd
|
||||
ThingTypeInfo ti = General.Map.Data.GetThingInfo(t.Type);
|
||||
labelcollapsedinfo.Text = t.Type + " - " + ti.Title;
|
||||
labelcollapsedinfo.Refresh();
|
||||
}
|
||||
if(IsInfoPanelExpanded) thinginfo.ShowInfo(t);
|
||||
|
||||
// Show info on collapsed label
|
||||
ThingTypeInfo ti = General.Map.Data.GetThingInfo(t.Type);
|
||||
labelcollapsedinfo.Text = t.Type + " - " + ti.Title;
|
||||
labelcollapsedinfo.Refresh();
|
||||
|
||||
//mxd. let the plugins know
|
||||
General.Plugins.OnHighlightThing(t);
|
||||
|
|
|
@ -183,22 +183,7 @@
|
|||
<metadata name="labelcollapsedinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="buttontoggleinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="linedefinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="thinginfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="heightpanel1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="labelcollapsedinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<metadata name="modename.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="buttontoggleinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
|
|
|
@ -1,145 +1,145 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AACQWzEBkFsxRJBbMWiQWzGBkFsxnpBbMbqQWzHYkFsx9ZVhOf+aaUH/o3RP/62CX/+QWzG4kFsxCgAA
|
||||
AAAAAAAAlF8zKriQbf/WuqP/38az/+fUw//u39P/9eri//v07//9+vb///79//vr3//77+b/wZ2A/5Rf
|
||||
MzAAAAAAAAAAAJlkNknHpIX////////////////////////+/P/++/f//vfx//728f/krob/+ujb/86v
|
||||
lf+ZZDZLAAAAAAAAAACeaTkdnmk57bSFWf/ZpXv/2J5v/9ebav/YlmP/1pJd/9SPWf/Tjlf/4p1p//rj
|
||||
0f/Yu6L/nmk5YQAAAAAAAAAApG88AaRvPHLVroz//fDl//bGof/2zqz/+NS0//bYu//127//997D//rk
|
||||
zP/99ez/4s66/6RvPH0AAAAAAAAAAAAAAACqdUAGt4ZW//7+/f/ozrT/z7ae/861n//OtZ//zreg/9a7
|
||||
pP/63MP//eve/+zczf+qdUCgAAAAAAAAAAAAAAAAsXtDA7mGUv/+/Pn/99q9/+3Rtf/u0rf/8tS8//LV
|
||||
u//z173/+dzC//vn1P/17eL/sXtDywAAAAAAAAAAAAAAAAAAAAC5hUv//vv3/+/Tuf/QuaD/z7ig/8+3
|
||||
of/PuKD/z7ig//HWvP/74sv//Pn1/7eCR/cAAAAAAAAAAAAAAAAAAAAAvYhL8/z28P/538f/8dW3//LV
|
||||
uP/y1Lr/8ta8//LWu//43MP/++DJ///8+v/BjVP/AAAAAAAAAAAAAAAAAAAAAMSOTrr159j/+eTR/9K4
|
||||
n//SuZ//07mh/9O7o//Tu6P/8ta+//vhyP///fv/yJRX/8SOTgEAAAAAAAAAAAAAAADKlFKJ8NnB//vt
|
||||
4f/42b//+NvB//fcw//43sX/99/H//ffyv/65dD///79/8uPWv/KlFLjypRSEgAAAAAAAAAA0JpVae3Q
|
||||
sv//9vD/6NG7/8+7qP/Pu6v/z76u/8/AsP/Xx7j//Orb/////f/SnXH/7tnB/9CaVc0AAAAAAAAAANWf
|
||||
WFPryqX///37//vn0//66NX/+ufY//vr3f/77uD//PDj//zw5P//////4KBw///7+f/fuIf/AAAAAAAA
|
||||
AADapFtE68aa///////87+L//fDn//3x6//99e7//fjx//369////Pr///////779//02sD/2qRb1gAA
|
||||
AAAAAAAA3qhdLurAjP///////////////////////fn0//vz6v/469n/+ObT//Xfxv/py6b/3qhd3N6o
|
||||
XSEAAAAAAAAAAOKsXwvirF+Z6ryB/+i3d//msm3/5LBo/+KsX+HirF/K4qxfqOKsX6PirF+J4qxfbuKs
|
||||
XxYAAAAAAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQcADrEHAA6xBwAGsQcAArEHAAKxBwACsQcAA
|
||||
rEHAAKxBwAGsQQ==
|
||||
<value>
|
||||
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AACQWzEBkFsxRJBbMWiQWzGBkFsxnpBbMbqQWzHYkFsx9ZVhOf+aaUH/o3RP/62CX/+QWzG4kFsxCgAA
|
||||
AAAAAAAAlF8zKriQbf/WuqP/38az/+fUw//u39P/9eri//v07//9+vb///79//vr3//77+b/wZ2A/5Rf
|
||||
MzAAAAAAAAAAAJlkNknHpIX////////////////////////+/P/++/f//vfx//728f/krob/+ujb/86v
|
||||
lf+ZZDZLAAAAAAAAAACeaTkdnmk57bSFWf/ZpXv/2J5v/9ebav/YlmP/1pJd/9SPWf/Tjlf/4p1p//rj
|
||||
0f/Yu6L/nmk5YQAAAAAAAAAApG88AaRvPHLVroz//fDl//bGof/2zqz/+NS0//bYu//127//997D//rk
|
||||
zP/99ez/4s66/6RvPH0AAAAAAAAAAAAAAACqdUAGt4ZW//7+/f/ozrT/z7ae/861n//OtZ//zreg/9a7
|
||||
pP/63MP//eve/+zczf+qdUCgAAAAAAAAAAAAAAAAsXtDA7mGUv/+/Pn/99q9/+3Rtf/u0rf/8tS8//LV
|
||||
u//z173/+dzC//vn1P/17eL/sXtDywAAAAAAAAAAAAAAAAAAAAC5hUv//vv3/+/Tuf/QuaD/z7ig/8+3
|
||||
of/PuKD/z7ig//HWvP/74sv//Pn1/7eCR/cAAAAAAAAAAAAAAAAAAAAAvYhL8/z28P/538f/8dW3//LV
|
||||
uP/y1Lr/8ta8//LWu//43MP/++DJ///8+v/BjVP/AAAAAAAAAAAAAAAAAAAAAMSOTrr159j/+eTR/9K4
|
||||
n//SuZ//07mh/9O7o//Tu6P/8ta+//vhyP///fv/yJRX/8SOTgEAAAAAAAAAAAAAAADKlFKJ8NnB//vt
|
||||
4f/42b//+NvB//fcw//43sX/99/H//ffyv/65dD///79/8uPWv/KlFLjypRSEgAAAAAAAAAA0JpVae3Q
|
||||
sv//9vD/6NG7/8+7qP/Pu6v/z76u/8/AsP/Xx7j//Orb/////f/SnXH/7tnB/9CaVc0AAAAAAAAAANWf
|
||||
WFPryqX///37//vn0//66NX/+ufY//vr3f/77uD//PDj//zw5P//////4KBw///7+f/fuIf/AAAAAAAA
|
||||
AADapFtE68aa///////87+L//fDn//3x6//99e7//fjx//369////Pr///////779//02sD/2qRb1gAA
|
||||
AAAAAAAA3qhdLurAjP///////////////////////fn0//vz6v/469n/+ObT//Xfxv/py6b/3qhd3N6o
|
||||
XSEAAAAAAAAAAOKsXwvirF+Z6ryB/+i3d//msm3/5LBo/+KsX+HirF/K4qxfqOKsX6PirF+J4qxfbuKs
|
||||
XxYAAAAAAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQcADrEHAA6xBwAGsQcAArEHAAKxBwACsQcAA
|
||||
rEHAAKxBwAGsQQ==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -104,8 +104,13 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd. Select the last one that was selected
|
||||
string selectname = General.Settings.ReadSetting("browserwindow.textureset", "");
|
||||
TreeNode match;
|
||||
if (string.IsNullOrEmpty(selectname)) {
|
||||
match = tvTextureSets.Nodes[tvTextureSets.Nodes.Count - 1];
|
||||
} else {
|
||||
match = findNodeByName(tvTextureSets.Nodes, selectname);
|
||||
}
|
||||
|
||||
TreeNode match = findNodeByName(tvTextureSets.Nodes, selectname);
|
||||
if (match != null) {
|
||||
IFilledTextureSet set = (match.Tag as IFilledTextureSet);
|
||||
|
||||
|
|
|
@ -411,16 +411,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string acceptKey = Actions.Action.GetShortcutKeyDesc("builder_acceptmode");
|
||||
string cancelKey = Actions.Action.GetShortcutKeyDesc("builder_cancelmode");
|
||||
string removeKey = Actions.Action.GetShortcutKeyDesc("buildermodes_removepoint");
|
||||
|
||||
hints = new[]{ "Press " + selectKey + " to place a vertex",
|
||||
"Press " + removeKey + " to remove last vertex",
|
||||
"Press " + acceptKey + " to accept",
|
||||
"Press " + cancelKey + " or " + editKey + " to cancel"
|
||||
hints = new[]{ "Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicselect") + "</b> to place a vertex",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_removepoint") + "</b> to remove last vertex",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_acceptmode") + "</b> to accept",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_cancelmode") + "</b> or <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to cancel"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -184,19 +184,11 @@ namespace CodeImp.DoomBuilder.BuilderModes.ClassicModes
|
|||
|
||||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string cancelKey = Actions.Action.GetShortcutKeyDesc("builder_cancelmode");
|
||||
string incSub = Actions.Action.GetShortcutKeyDesc("buildermodes_increasesubdivlevel");
|
||||
string decSub = Actions.Action.GetShortcutKeyDesc("buildermodes_decreasesubdivlevel");
|
||||
string incBvl = Actions.Action.GetShortcutKeyDesc("buildermodes_increasebevel");
|
||||
string decBvl = Actions.Action.GetShortcutKeyDesc("buildermodes_decreasebevel");
|
||||
|
||||
hints = new[]{"Press " + selectKey + " to place a vertex",
|
||||
"Use " + incBvl + " and " + decBvl + " to change corners bevel by current grid size",
|
||||
"Use " + incSub + " and " + decSub + " to change bevel detail level",
|
||||
hints = new[]{"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicselect") + "</b> to place a vertex",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_increasebevel") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_decreasebevel") + "</b> to change corners bevel by current grid size",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_increasesubdivlevel") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_decreasesubdivlevel") + "</b> to change bevel detail level",
|
||||
"Place second vertex to finish drawing",
|
||||
"Press " + cancelKey + " or " + editKey + " to cancel"
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_cancelmode") + "</b> or <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to cancel"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -260,31 +260,27 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string clearKey = Actions.Action.GetShortcutKeyDesc("builder_clearselection");
|
||||
string insertKey = Actions.Action.GetShortcutKeyDesc("builder_insertitem");
|
||||
string deleteKey = Actions.Action.GetShortcutKeyDesc("builder_deleteitem");
|
||||
string panKey = Actions.Action.GetShortcutKeyDesc("builder_pan_view");
|
||||
string drawKey = Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode");
|
||||
string gridIncKey = Actions.Action.GetShortcutKeyDesc("builder_griddec");
|
||||
string gridDecKey = Actions.Action.GetShortcutKeyDesc("builder_gridinc");
|
||||
|
||||
hints = new[]{ "Hold " + panKey + " to pan the view",
|
||||
"Press " + selectKey + " to select a linedef",
|
||||
"Hold " + selectKey + " and drag to use rectangular selection",
|
||||
"Press " + clearKey + " to clear selection",
|
||||
"Press " + deleteKey + " to delete selected linedef(s)",
|
||||
"Press " + editKey + " to edit properties of current selection",
|
||||
"Use " + gridIncKey + " and " + gridDecKey + " to change grid size",
|
||||
"Press " + drawKey + " or " + insertKey + " to start drawing lines",
|
||||
hints = new[]{ "Hold <b>" + Actions.Action.GetShortcutKeyDesc("builder_pan_view") + "</b> to pan the view",
|
||||
"Press <b>" + selectKey + "</b> to select a linedef",
|
||||
"Hold <b>" + selectKey + "</b> and drag to use rectangular selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_clearselection") + "</b> to clear selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_deleteitem") + "</b> to delete selected linedef(s)",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to edit properties of current selection",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_griddec") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("builder_gridinc") + "</b> to change grid size",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode") + "</b> or <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to start drawing lines",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_flipsidedefs") + "</b> to flips the sidedefs on the selected linedefs around",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_selectsinglesided") + "</b> to keep only the single-sided lines in your selection selected",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_selectdoublesided") + "</b> to keep only the double-sided lines in your selection selected",
|
||||
"Check <b>'Linedefs'</b> menu for additional actions"
|
||||
};
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void SetupMultiselectionHints() {
|
||||
multiselectionHints = new[] { "Hold Shift to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold Ctrl to enable subtractive selection",
|
||||
"Hold Ctrl-Shift to intersect the new selection with already existing one",
|
||||
multiselectionHints = new[] { "Hold <b>Shift</b> to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold <b>Ctrl</b> to enable subtractive selection",
|
||||
"Hold <b>Ctrl-Shift</b> to intersect the new selection with already existing one",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -875,9 +871,40 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
General.Editing.ChangeMode(drawmode);
|
||||
}
|
||||
|
||||
|
||||
[BeginAction("deleteitem", BaseAction = true)]
|
||||
public void DeleteItem()
|
||||
public void DeleteItem() {
|
||||
// Make list of selected linedefs
|
||||
ICollection<Linedef> selected = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||
if(selected.Count == 0) return;
|
||||
|
||||
// Make undo
|
||||
if(selected.Count > 1) {
|
||||
General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " linedefs");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted " + selected.Count + " linedefs.");
|
||||
} else {
|
||||
General.Map.UndoRedo.CreateUndo("Delete linedef");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted a linedef.");
|
||||
}
|
||||
|
||||
// Dispose selected linedefs
|
||||
foreach(Linedef ld in selected) ld.Dispose();
|
||||
|
||||
// Update cache values
|
||||
General.Map.IsChanged = true;
|
||||
General.Map.Map.Update();
|
||||
|
||||
// Invoke a new mousemove so that the highlighted item updates
|
||||
MouseEventArgs e = new MouseEventArgs(MouseButtons.None, 0, (int)mousepos.x, (int)mousepos.y, 0);
|
||||
OnMouseMove(e);
|
||||
|
||||
// Redraw screen
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
[BeginAction("dissolveitem", BaseAction = true)] //mxd
|
||||
public void DissolveItem()
|
||||
{
|
||||
// Make list of selected linedefs
|
||||
ICollection<Linedef> selected = General.Map.Map.GetSelectedLinedefs(true);
|
||||
|
@ -889,13 +916,13 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Make undo
|
||||
if(selected.Count > 1)
|
||||
{
|
||||
General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " linedefs");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted " + selected.Count + " linedefs.");
|
||||
General.Map.UndoRedo.CreateUndo("Dissolve " + selected.Count + " linedefs");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Dissolved " + selected.Count + " linedefs.");
|
||||
}
|
||||
else
|
||||
{
|
||||
General.Map.UndoRedo.CreateUndo("Delete linedef");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted a linedef.");
|
||||
General.Map.UndoRedo.CreateUndo("Dissolve linedef");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Dissolved a linedef.");
|
||||
}
|
||||
|
||||
//mxd. Find sectors, which will become invalid after linedefs removal.
|
||||
|
|
|
@ -527,33 +527,30 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string clearKey = Actions.Action.GetShortcutKeyDesc("builder_clearselection");
|
||||
string insertKey = Actions.Action.GetShortcutKeyDesc("builder_insertitem");
|
||||
string deleteKey = Actions.Action.GetShortcutKeyDesc("builder_deleteitem");
|
||||
string panKey = Actions.Action.GetShortcutKeyDesc("builder_pan_view");
|
||||
string drawKey = Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode");
|
||||
string gridIncKey = Actions.Action.GetShortcutKeyDesc("builder_griddec");
|
||||
string gridDecKey = Actions.Action.GetShortcutKeyDesc("builder_gridinc");
|
||||
|
||||
hints = new[]{ "Hold " + panKey + " to pan the view",
|
||||
"Press " + selectKey + " to select a sector",
|
||||
"Hold " + selectKey + " and drag to use rectangular selection",
|
||||
"Press " + clearKey + " to clear selection",
|
||||
"Press " + deleteKey + " to delete selected sector(s)",
|
||||
"Press " + editKey + " to edit properties of current selection",
|
||||
"Use " + gridIncKey + " and " + gridDecKey + " to change grid size",
|
||||
"Press " + drawKey + " or " + insertKey + " to start drawing lines",
|
||||
hints = new[]{ "Hold <b>" + Actions.Action.GetShortcutKeyDesc("builder_pan_view") + "</b> to pan the view",
|
||||
"Press <b>" + selectKey + "</b> to select a sector",
|
||||
"Hold <b>" + selectKey + "</b> and drag to use rectangular selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_clearselection") + "</b> to clear selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_deleteitem") + "</b> to delete selected sector(s)",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to edit properties of current selection",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_griddec") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("builder_gridinc") + "</b> to change grid size",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_joinsectors") + "</b> to join two or more selected sectors together and keep all linedefs",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_mergesectors") + "</b> to join two or more selected sectors together and remove the shared inedefs",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_gradientbrightness") + "</b> to create a brightness or color gradient over all selected sectors from the first to the last selected sector",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_gradientfloors") + "</b> to create a floor heights gradient over all selected sectors from the first to the last selected sector",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_gradientceilings") + "</b> to create a ceiling heights gradient over all selected sectors from the first to the last selected sector",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_makedoor") + "</b> to create doors from the highlighted or selected sectors",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode") + "</b> or <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to start drawing lines",
|
||||
"Check <b>'Sectors'</b> menu for additional actions"
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void SetupMultiselectionHints() {
|
||||
multiselectionHints = new[] { "Hold Shift to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold Ctrl to enable subtractive selection",
|
||||
"Hold Ctrl-Shift to intersect the new selection with already existing one",
|
||||
multiselectionHints = new[] { "Hold <b>Shift</b> to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold <b>Ctrl</b> to enable subtractive selection",
|
||||
"Hold <b>Ctrl-Shift</b> to intersect the new selection with already existing one",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1435,11 +1432,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Dispose selected sectors
|
||||
foreach(Sector s in selected)
|
||||
{
|
||||
// Get all the linedefs
|
||||
/*General.Map.Map.ClearMarkedLinedefs(false);
|
||||
foreach(Sidedef sd in s.Sidedefs) sd.Line.Marked = true;
|
||||
List<Linedef> lines = General.Map.Map.GetMarkedLinedefs(true);*/
|
||||
|
||||
//mxd. Get all the linedefs
|
||||
List<Linedef> lines = new List<Linedef>(s.Sidedefs.Count);
|
||||
foreach(Sidedef side in s.Sidedefs) lines.Add(side.Line);
|
||||
|
@ -1475,11 +1467,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
|
||||
//mxd. Do we still need high/low textures?
|
||||
if(!lines[i].Front.HighRequired() && lines[i].Front.HighTexture.Length > 0 && lines[i].Front.HighTexture != "-")
|
||||
lines[i].Front.SetTextureHigh("-");
|
||||
|
||||
if(!lines[i].Front.LowRequired() && lines[i].Front.LowTexture.Length > 0 && lines[i].Front.LowTexture != "-")
|
||||
lines[i].Front.SetTextureLow("-");
|
||||
lines[i].Front.RemoveUnneededTextures(false);
|
||||
|
||||
// Update sided flags
|
||||
lines[i].ApplySidedFlags();
|
||||
|
@ -1502,6 +1490,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
[BeginAction("dissolveitem", BaseAction = true)] //mxd
|
||||
public void DissolveItem() {
|
||||
///TODO handle this differently?..
|
||||
DeleteItem();
|
||||
}
|
||||
|
||||
// This joins sectors together and keeps all lines
|
||||
[BeginAction("joinsectors")]
|
||||
|
|
|
@ -638,32 +638,28 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string clearKey = Actions.Action.GetShortcutKeyDesc("builder_clearselection");
|
||||
string insertKey = Actions.Action.GetShortcutKeyDesc("builder_insertitem");
|
||||
string deleteKey = Actions.Action.GetShortcutKeyDesc("builder_deleteitem");
|
||||
string panKey = Actions.Action.GetShortcutKeyDesc("builder_pan_view");
|
||||
string drawKey = Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode");
|
||||
string gridIncKey = Actions.Action.GetShortcutKeyDesc("builder_griddec");
|
||||
string gridDecKey = Actions.Action.GetShortcutKeyDesc("builder_gridinc");
|
||||
|
||||
hints = new[]{ "Hold " + panKey + " to pan the view",
|
||||
"Press " + selectKey + " to select a thing",
|
||||
"Hold " + selectKey + " and drag to use rectangular selection",
|
||||
"Press " + clearKey + " to clear selection",
|
||||
"Press " + deleteKey + " to delete selected thing(s)",
|
||||
"Press " + editKey + " to edit properties of current selection",
|
||||
"Use " + gridIncKey + " and " + gridDecKey + " to change grid size",
|
||||
"Press " + insertKey + " to create a new thing",
|
||||
"Press " + drawKey + " to start drawing lines",
|
||||
hints = new[]{ "Hold <b>" + Actions.Action.GetShortcutKeyDesc("builder_pan_view") + "</b> to pan the view",
|
||||
"Press <b>" + selectKey + "</b> to select a thing",
|
||||
"Hold <b>" + selectKey + "</b> and drag to use rectangular selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_thingsselectinsectors") + "</b> to select things in selected sectors",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_clearselection") + "</b> to clear selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_deleteitem") + "</b> to delete selected thing(s)",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to edit properties of current selection",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_griddec") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("builder_gridinc") + "</b> to change grid size",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to create a new thing",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_thinglookatcursor") + "</b> to point selected things to cursor position. Hold <b>Ctrl</b> to point away from cursor",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_thingaligntowall") + "</b> to align selected things to closest linedef",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode") + "</b> to start drawing lines",
|
||||
"Check <b>'Things'</b> menu for additional actions"
|
||||
};
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void SetupMultiselectionHints() {
|
||||
multiselectionHints = new[] { "Hold Shift to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold Ctrl to enable subtractive selection",
|
||||
"Hold Ctrl-Shift to intersect the new selection with already existing one",
|
||||
multiselectionHints = new[] { "Hold <b>Shift</b> to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold <b>Ctrl</b> to enable subtractive selection",
|
||||
"Hold <b>Ctrl-Shift</b> to intersect the new selection with already existing one",
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ using CodeImp.DoomBuilder.Rendering;
|
|||
using CodeImp.DoomBuilder.Geometry;
|
||||
using CodeImp.DoomBuilder.Editing;
|
||||
using CodeImp.DoomBuilder.Actions;
|
||||
using System.Drawing;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -48,7 +49,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
// Highlighted item
|
||||
protected Vertex highlighted;
|
||||
private Linedef highlightedLine;
|
||||
private Vector2D insertPreview = new Vector2D(float.NaN, float.NaN); //mxd
|
||||
|
||||
// Interface
|
||||
private bool editpressed;
|
||||
|
@ -150,15 +151,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
renderer.Finish();
|
||||
}
|
||||
|
||||
// Selecting?
|
||||
if(selecting)
|
||||
// Render selection
|
||||
if(selecting && renderer.StartOverlay(true))
|
||||
{
|
||||
// Render selection
|
||||
if(renderer.StartOverlay(true))
|
||||
{
|
||||
RenderMultiSelection();
|
||||
renderer.Finish();
|
||||
}
|
||||
RenderMultiSelection();
|
||||
renderer.Finish();
|
||||
}
|
||||
|
||||
renderer.Present();
|
||||
|
@ -193,42 +190,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Interface.HideInfo();
|
||||
}
|
||||
|
||||
//mxd
|
||||
private void HighlightLine(Linedef l) {
|
||||
// Update display
|
||||
if(renderer.StartPlotter(false)) {
|
||||
// Undraw previous highlight
|
||||
if((highlightedLine != null) && !highlightedLine.IsDisposed) {
|
||||
renderer.PlotLinedef(highlightedLine, renderer.DetermineLinedefColor(highlightedLine));
|
||||
|
||||
if(highlighted == null) {
|
||||
renderer.PlotVertex(highlightedLine.Start, renderer.DetermineVertexColor(highlightedLine.Start));
|
||||
renderer.PlotVertex(highlightedLine.End, renderer.DetermineVertexColor(highlightedLine.End));
|
||||
}
|
||||
}
|
||||
|
||||
// Set new highlight
|
||||
highlightedLine = l;
|
||||
|
||||
// Render highlighted item
|
||||
if((highlightedLine != null) && !highlightedLine.IsDisposed) {
|
||||
renderer.PlotLinedef(highlightedLine, General.Colors.InfoLine.WithAlpha(128));
|
||||
|
||||
if(highlighted != null && !highlighted.IsDisposed) {
|
||||
renderer.PlotVertex(highlightedLine.Start, highlightedLine.Start == highlighted ? ColorCollection.HIGHLIGHT : renderer.DetermineVertexColor(highlightedLine.Start));
|
||||
renderer.PlotVertex(highlightedLine.End, highlightedLine.End == highlighted ? ColorCollection.HIGHLIGHT : renderer.DetermineVertexColor(highlightedLine.End));
|
||||
}else{
|
||||
renderer.PlotVertex(highlightedLine.Start, renderer.DetermineVertexColor(highlightedLine.Start));
|
||||
renderer.PlotVertex(highlightedLine.End, renderer.DetermineVertexColor(highlightedLine.End));
|
||||
}
|
||||
}
|
||||
|
||||
// Done
|
||||
renderer.Finish();
|
||||
renderer.Present();
|
||||
}
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void StartMultiSelection() {
|
||||
General.Interface.ShowEditModeHints(multiselectionHints);
|
||||
|
@ -442,7 +403,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public override void OnMouseMove(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseMove(e);
|
||||
if(panning) return; //mxd. Skip all this jass while panning
|
||||
if(panning) return; //mxd. Skip all this jazz while panning
|
||||
|
||||
//mxd
|
||||
if(selectpressed && !editpressed && !selecting) {
|
||||
|
@ -485,12 +446,48 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
else if(e.Button == MouseButtons.None) // Not holding any buttons?
|
||||
{
|
||||
//mxd
|
||||
// Find the nearest linedef within split linedefs range
|
||||
//mxd. Render insert vertex preview
|
||||
Linedef l = General.Map.Map.NearestLinedefRange(mousemappos, BuilderPlug.Me.SplitLinedefsRange / renderer.Scale);
|
||||
|
||||
// Highlight if not the same
|
||||
if(l != highlightedLine) HighlightLine(l);
|
||||
if(l != null) {
|
||||
// Snip to grid?
|
||||
if(General.Interface.ShiftState ^ General.Interface.SnapToGrid) {
|
||||
// Find all points where the grid intersects the line
|
||||
List<Vector2D> points = l.GetGridIntersections();
|
||||
if(points.Count == 0) {
|
||||
insertPreview = l.NearestOnLine(mousemappos);
|
||||
} else {
|
||||
insertPreview = mousemappos;
|
||||
float distance = float.MaxValue;
|
||||
foreach(Vector2D p in points) {
|
||||
float pdist = Vector2D.DistanceSq(p, mousemappos);
|
||||
if(pdist < distance) {
|
||||
insertPreview = p;
|
||||
distance = pdist;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Just use the nearest point on line
|
||||
insertPreview = l.NearestOnLine(mousemappos);
|
||||
}
|
||||
|
||||
//render preview
|
||||
if(renderer.StartOverlay(true)) {
|
||||
float vsize = (renderer.VertexSize + 1.0f) / renderer.Scale;
|
||||
renderer.RenderRectangleFilled(new RectangleF(insertPreview.x - vsize, insertPreview.y - vsize, vsize * 2.0f, vsize * 2.0f), General.Colors.InfoLine, true);
|
||||
renderer.Finish();
|
||||
renderer.Present();
|
||||
}
|
||||
} else if(insertPreview.IsFinite()) {
|
||||
insertPreview.x = float.NaN;
|
||||
|
||||
//undraw preveiw
|
||||
if(renderer.StartOverlay(true)) {
|
||||
renderer.Finish();
|
||||
renderer.Present();
|
||||
}
|
||||
}
|
||||
|
||||
// Find the nearest vertex within highlight range
|
||||
Vertex v = General.Map.Map.NearestVertexSquareRange(mousemappos, BuilderPlug.Me.HighlightRange / renderer.Scale);
|
||||
|
@ -509,6 +506,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
Highlight(null);
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void BeginViewPan() {
|
||||
if (insertPreview.IsFinite()) {
|
||||
insertPreview.x = float.NaN;
|
||||
|
||||
//undraw preveiw
|
||||
if (renderer.StartOverlay(true)) {
|
||||
renderer.Finish();
|
||||
renderer.Present();
|
||||
}
|
||||
}
|
||||
|
||||
base.BeginViewPan();
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void OnPaintSelectBegin() {
|
||||
highlighted = null;
|
||||
|
@ -649,32 +661,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
//mxd. Setup hints for current editing mode
|
||||
protected override void SetupHints() {
|
||||
string selectKey = Actions.Action.GetShortcutKeyDesc("builder_classicselect");
|
||||
string editKey = Actions.Action.GetShortcutKeyDesc("builder_classicedit");
|
||||
string clearKey = Actions.Action.GetShortcutKeyDesc("builder_clearselection");
|
||||
string insertKey = Actions.Action.GetShortcutKeyDesc("builder_insertitem");
|
||||
string deleteKey = Actions.Action.GetShortcutKeyDesc("builder_deleteitem");
|
||||
string panKey = Actions.Action.GetShortcutKeyDesc("builder_pan_view");
|
||||
string drawKey = Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode");
|
||||
string gridIncKey = Actions.Action.GetShortcutKeyDesc("builder_griddec");
|
||||
string gridDecKey = Actions.Action.GetShortcutKeyDesc("builder_gridinc");
|
||||
|
||||
hints = new[]{ "Hold " + panKey + " to pan the view",
|
||||
"Press " + selectKey + " to select a vertex",
|
||||
"Hold " + selectKey + " and drag to use rectangular selection",
|
||||
"Press " + clearKey + " to clear selection",
|
||||
"Press " + insertKey + " to insert a new vertex",
|
||||
"Press " + deleteKey + " to delete selected vertices",
|
||||
"Press " + editKey + " to edit properties of current selection",
|
||||
"Use " + gridIncKey + " and " + gridDecKey + " to change grid size",
|
||||
"Press " + drawKey + " to start drawing lines",
|
||||
|
||||
hints = new[]{ "Hold <b>" + Actions.Action.GetShortcutKeyDesc("builder_pan_view") + "</b> to pan the view",
|
||||
"Press <b>" + selectKey + "</b> to select a vertex",
|
||||
"Hold <b>" + selectKey + "</b> and drag to use rectangular selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_clearselection") + "</b> to clear selection",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to insert a new vertex",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_deleteitem") + "</b> to delete selected vertices",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_classicedit") + "</b> to edit properties of current selection",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_griddec") + "</b> and <b>" + Actions.Action.GetShortcutKeyDesc("builder_gridinc") + "</b> to change grid size",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_drawlinesmode") + "</b> to start drawing lines",
|
||||
"Check <b>'Vertices'</b> menu for additional actions"
|
||||
};
|
||||
}
|
||||
|
||||
//mxd
|
||||
protected override void SetupMultiselectionHints() {
|
||||
multiselectionHints = new[] { "Hold Shift to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold Ctrl to enable subtractive selection",
|
||||
"Hold Ctrl-Shift to intersect the new selection with already existing one",
|
||||
multiselectionHints = new[] { "Hold <b>Shift</b> to " + (BuilderPlug.Me.AdditiveSelect ? "disable" : "enable") + " additive selection",
|
||||
"Hold <b>Ctrl</b> to enable subtractive selection",
|
||||
"Hold <b>Ctrl-Shift</b> to intersect the new selection with already existing one",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -775,15 +780,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
// Find all points where the grid intersects the line
|
||||
List<Vector2D> points = l.GetGridIntersections();
|
||||
insertpos = mousemappos;
|
||||
float distance = float.MaxValue;
|
||||
foreach(Vector2D p in points)
|
||||
{
|
||||
float pdist = Vector2D.DistanceSq(p, mousemappos);
|
||||
if(pdist < distance)
|
||||
if(points.Count == 0) {
|
||||
//mxd. Just use the nearest point on line
|
||||
insertpos = l.NearestOnLine(mousemappos);
|
||||
} else {
|
||||
insertpos = mousemappos;
|
||||
float distance = float.MaxValue;
|
||||
foreach(Vector2D p in points)
|
||||
{
|
||||
insertpos = p;
|
||||
distance = pdist;
|
||||
float pdist = Vector2D.DistanceSq(p, mousemappos);
|
||||
if(pdist < distance)
|
||||
{
|
||||
insertpos = p;
|
||||
distance = pdist;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -847,8 +857,55 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
}
|
||||
|
||||
[BeginAction("deleteitem", BaseAction = true)] //mxd
|
||||
[BeginAction("deleteitem", BaseAction = true)]
|
||||
public void DeleteItem() {
|
||||
// Make list of selected vertices
|
||||
ICollection<Vertex> selected = General.Map.Map.GetSelectedVertices(true);
|
||||
if((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||
if(selected.Count == 0) return;
|
||||
|
||||
// Make undo
|
||||
if(selected.Count > 1) {
|
||||
General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " vertices");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted " + selected.Count + " vertices.");
|
||||
} else {
|
||||
General.Map.UndoRedo.CreateUndo("Delete vertex");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted a vertex.");
|
||||
}
|
||||
|
||||
// Go for all vertices that need to be removed
|
||||
foreach(Vertex v in selected) {
|
||||
// Not already removed automatically?
|
||||
if(!v.IsDisposed) {
|
||||
// If the vertex only has 2 linedefs attached, then merge the linedefs
|
||||
if(v.Linedefs.Count == 2) {
|
||||
Linedef ld1 = General.GetByIndex(v.Linedefs, 0);
|
||||
Linedef ld2 = General.GetByIndex(v.Linedefs, 1);
|
||||
Vertex v1 = (ld1.Start == v) ? ld1.End : ld1.Start;
|
||||
Vertex v2 = (ld2.Start == v) ? ld2.End : ld2.Start;
|
||||
if(ld1.Start == v) ld1.SetStartVertex(v2); else ld1.SetEndVertex(v2);
|
||||
ld2.Dispose();
|
||||
}
|
||||
|
||||
// Trash vertex
|
||||
v.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
// Update cache values
|
||||
General.Map.IsChanged = true;
|
||||
General.Map.Map.Update();
|
||||
|
||||
// Invoke a new mousemove so that the highlighted item updates
|
||||
MouseEventArgs e = new MouseEventArgs(MouseButtons.None, 0, (int)mousepos.x, (int)mousepos.y, 0);
|
||||
OnMouseMove(e);
|
||||
|
||||
// Redraw screen
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
[BeginAction("dissolveitem", BaseAction = true)] //mxd
|
||||
public void DissolveItem() {
|
||||
// Make list of selected vertices
|
||||
ICollection<Vertex> selected = General.Map.Map.GetSelectedVertices(true);
|
||||
if(selected.Count == 0) {
|
||||
|
@ -858,11 +915,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
// Make undo
|
||||
if(selected.Count > 1) {
|
||||
General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " vertices");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted " + selected.Count + " vertices.");
|
||||
General.Map.UndoRedo.CreateUndo("Dissolve " + selected.Count + " vertices");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Dissolved " + selected.Count + " vertices.");
|
||||
} else {
|
||||
General.Map.UndoRedo.CreateUndo("Delete vertex");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Deleted a vertex.");
|
||||
General.Map.UndoRedo.CreateUndo("Dissolve vertex");
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Dissolved a vertex.");
|
||||
}
|
||||
|
||||
//collect linedefs count per vertex
|
||||
|
|
|
@ -91,9 +91,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Settings.FindDefaultDrawSettings();
|
||||
switch (part)
|
||||
{
|
||||
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultTopTexture); break;
|
||||
case SidedefPart.Middle: side.SetTextureMid(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultBottomTexture); break;
|
||||
}
|
||||
|
||||
General.Map.Map.Update();
|
||||
|
|
|
@ -105,9 +105,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Settings.FindDefaultDrawSettings();
|
||||
switch(part)
|
||||
{
|
||||
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultTopTexture); break;
|
||||
case SidedefPart.Middle: side.SetTextureMid(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultWallTexture); break;
|
||||
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultBottomTexture); break;
|
||||
}
|
||||
|
||||
General.Map.Map.Update();
|
||||
|
|
|
@ -25,42 +25,73 @@
|
|||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.cbOverrideCeilingTexture = new System.Windows.Forms.CheckBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.cbOverrideFloorTexture = new System.Windows.Forms.CheckBox();
|
||||
this.cbOverrideWallTexture = new System.Windows.Forms.CheckBox();
|
||||
this.cbFloorHeight = new System.Windows.Forms.CheckBox();
|
||||
this.cbCeilHeight = new System.Windows.Forms.CheckBox();
|
||||
this.cbBrightness = new System.Windows.Forms.CheckBox();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.floorHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.ceilHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.walls = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.cbOverrideCeilingTexture = new System.Windows.Forms.CheckBox();
|
||||
this.floor = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.ceiling = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.cbBrightness = new System.Windows.Forms.CheckBox();
|
||||
this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.floorHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.cbCeilHeight = new System.Windows.Forms.CheckBox();
|
||||
this.cbFloorHeight = new System.Windows.Forms.CheckBox();
|
||||
this.ceilHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||
this.cbOverrideBottomTexture = new System.Windows.Forms.CheckBox();
|
||||
this.cbOverrideMiddleTexture = new System.Windows.Forms.CheckBox();
|
||||
this.bottom = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.cbOverrideTopTexture = new System.Windows.Forms.CheckBox();
|
||||
this.middle = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.top = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||
this.fillceiling = new System.Windows.Forms.Button();
|
||||
this.fillfloor = new System.Windows.Forms.Button();
|
||||
this.fillupper = new System.Windows.Forms.Button();
|
||||
this.fillmiddle = new System.Windows.Forms.Button();
|
||||
this.filllower = new System.Windows.Forms.Button();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||
this.clearlower = new System.Windows.Forms.Button();
|
||||
this.clearmiddle = new System.Windows.Forms.Button();
|
||||
this.clearupper = new System.Windows.Forms.Button();
|
||||
this.clearfloor = new System.Windows.Forms.Button();
|
||||
this.clearceiling = new System.Windows.Forms.Button();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.groupBox4.SuspendLayout();
|
||||
this.groupBox5.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox1.Controls.Add(this.cbOverrideWallTexture);
|
||||
this.groupBox1.Controls.Add(this.cbOverrideFloorTexture);
|
||||
this.groupBox1.Controls.Add(this.walls);
|
||||
this.groupBox1.Controls.Add(this.cbOverrideCeilingTexture);
|
||||
this.groupBox1.Controls.Add(this.floor);
|
||||
this.groupBox1.Controls.Add(this.ceiling);
|
||||
this.groupBox1.Location = new System.Drawing.Point(3, 3);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(243, 138);
|
||||
this.groupBox1.Size = new System.Drawing.Size(243, 137);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Texture overrides:";
|
||||
this.groupBox1.Text = "Sector texture overrides:";
|
||||
//
|
||||
// cbOverrideFloorTexture
|
||||
//
|
||||
this.cbOverrideFloorTexture.AutoSize = true;
|
||||
this.cbOverrideFloorTexture.Location = new System.Drawing.Point(88, 19);
|
||||
this.cbOverrideFloorTexture.Name = "cbOverrideFloorTexture";
|
||||
this.cbOverrideFloorTexture.Size = new System.Drawing.Size(49, 17);
|
||||
this.cbOverrideFloorTexture.TabIndex = 21;
|
||||
this.cbOverrideFloorTexture.Text = "Floor";
|
||||
this.cbOverrideFloorTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideFloorTexture.CheckedChanged += new System.EventHandler(this.cbOverrideFloorTexture_CheckedChanged);
|
||||
//
|
||||
// cbOverrideCeilingTexture
|
||||
//
|
||||
|
@ -73,6 +104,26 @@
|
|||
this.cbOverrideCeilingTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideCeilingTexture.CheckedChanged += new System.EventHandler(this.cbOverrideCeilingTexture_CheckedChanged);
|
||||
//
|
||||
// floor
|
||||
//
|
||||
this.floor.Location = new System.Drawing.Point(87, 41);
|
||||
this.floor.Name = "floor";
|
||||
this.floor.Required = false;
|
||||
this.floor.Size = new System.Drawing.Size(68, 90);
|
||||
this.floor.TabIndex = 17;
|
||||
this.floor.TextureName = "";
|
||||
this.floor.OnValueChanged += new System.EventHandler(this.floor_OnValueChanged);
|
||||
//
|
||||
// ceiling
|
||||
//
|
||||
this.ceiling.Location = new System.Drawing.Point(6, 41);
|
||||
this.ceiling.Name = "ceiling";
|
||||
this.ceiling.Required = false;
|
||||
this.ceiling.Size = new System.Drawing.Size(68, 90);
|
||||
this.ceiling.TabIndex = 16;
|
||||
this.ceiling.TextureName = "";
|
||||
this.ceiling.OnValueChanged += new System.EventHandler(this.ceiling_OnValueChanged);
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
|
@ -85,56 +136,30 @@
|
|||
this.groupBox2.Controls.Add(this.cbCeilHeight);
|
||||
this.groupBox2.Controls.Add(this.cbFloorHeight);
|
||||
this.groupBox2.Controls.Add(this.ceilHeight);
|
||||
this.groupBox2.Location = new System.Drawing.Point(3, 147);
|
||||
this.groupBox2.Location = new System.Drawing.Point(3, 397);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(243, 118);
|
||||
this.groupBox2.TabIndex = 21;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Geometry overrides:";
|
||||
//
|
||||
// cbOverrideFloorTexture
|
||||
// label1
|
||||
//
|
||||
this.cbOverrideFloorTexture.AutoSize = true;
|
||||
this.cbOverrideFloorTexture.Location = new System.Drawing.Point(88, 19);
|
||||
this.cbOverrideFloorTexture.Name = "cbOverrideFloorTexture";
|
||||
this.cbOverrideFloorTexture.Size = new System.Drawing.Size(49, 17);
|
||||
this.cbOverrideFloorTexture.TabIndex = 21;
|
||||
this.cbOverrideFloorTexture.Text = "Floor";
|
||||
this.cbOverrideFloorTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideFloorTexture.CheckedChanged += new System.EventHandler(this.cbOverrideFloorTexture_CheckedChanged);
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(182, 53);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(27, 13);
|
||||
this.label1.TabIndex = 29;
|
||||
this.label1.Text = "m.u.";
|
||||
//
|
||||
// cbOverrideWallTexture
|
||||
// label14
|
||||
//
|
||||
this.cbOverrideWallTexture.AutoSize = true;
|
||||
this.cbOverrideWallTexture.Location = new System.Drawing.Point(170, 19);
|
||||
this.cbOverrideWallTexture.Name = "cbOverrideWallTexture";
|
||||
this.cbOverrideWallTexture.Size = new System.Drawing.Size(52, 17);
|
||||
this.cbOverrideWallTexture.TabIndex = 22;
|
||||
this.cbOverrideWallTexture.Text = "Walls";
|
||||
this.cbOverrideWallTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideWallTexture.CheckedChanged += new System.EventHandler(this.cbOverrideWallTexture_CheckedChanged);
|
||||
//
|
||||
// cbFloorHeight
|
||||
//
|
||||
this.cbFloorHeight.AutoSize = true;
|
||||
this.cbFloorHeight.Location = new System.Drawing.Point(7, 52);
|
||||
this.cbFloorHeight.Name = "cbFloorHeight";
|
||||
this.cbFloorHeight.Size = new System.Drawing.Size(84, 17);
|
||||
this.cbFloorHeight.TabIndex = 23;
|
||||
this.cbFloorHeight.Text = "Floor height:";
|
||||
this.cbFloorHeight.UseVisualStyleBackColor = true;
|
||||
this.cbFloorHeight.CheckedChanged += new System.EventHandler(this.cbFloorHeight_CheckedChanged);
|
||||
//
|
||||
// cbCeilHeight
|
||||
//
|
||||
this.cbCeilHeight.AutoSize = true;
|
||||
this.cbCeilHeight.Location = new System.Drawing.Point(7, 23);
|
||||
this.cbCeilHeight.Name = "cbCeilHeight";
|
||||
this.cbCeilHeight.Size = new System.Drawing.Size(92, 17);
|
||||
this.cbCeilHeight.TabIndex = 24;
|
||||
this.cbCeilHeight.Text = "Ceiling height:";
|
||||
this.cbCeilHeight.UseVisualStyleBackColor = true;
|
||||
this.cbCeilHeight.CheckedChanged += new System.EventHandler(this.cbCeilHeight_CheckedChanged);
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(182, 24);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(27, 13);
|
||||
this.label14.TabIndex = 28;
|
||||
this.label14.Text = "m.u.";
|
||||
//
|
||||
// cbBrightness
|
||||
//
|
||||
|
@ -147,24 +172,6 @@
|
|||
this.cbBrightness.UseVisualStyleBackColor = true;
|
||||
this.cbBrightness.CheckedChanged += new System.EventHandler(this.cbBrightness_CheckedChanged);
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(182, 24);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(27, 13);
|
||||
this.label14.TabIndex = 28;
|
||||
this.label14.Text = "m.u.";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(182, 53);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(27, 13);
|
||||
this.label1.TabIndex = 29;
|
||||
this.label1.Text = "m.u.";
|
||||
//
|
||||
// brightness
|
||||
//
|
||||
this.brightness.AllowDecimal = false;
|
||||
|
@ -193,6 +200,28 @@
|
|||
this.floorHeight.TabIndex = 25;
|
||||
this.floorHeight.WhenTextChanged += new System.EventHandler(this.floorHeight_WhenTextChanged);
|
||||
//
|
||||
// cbCeilHeight
|
||||
//
|
||||
this.cbCeilHeight.AutoSize = true;
|
||||
this.cbCeilHeight.Location = new System.Drawing.Point(7, 23);
|
||||
this.cbCeilHeight.Name = "cbCeilHeight";
|
||||
this.cbCeilHeight.Size = new System.Drawing.Size(92, 17);
|
||||
this.cbCeilHeight.TabIndex = 24;
|
||||
this.cbCeilHeight.Text = "Ceiling height:";
|
||||
this.cbCeilHeight.UseVisualStyleBackColor = true;
|
||||
this.cbCeilHeight.CheckedChanged += new System.EventHandler(this.cbCeilHeight_CheckedChanged);
|
||||
//
|
||||
// cbFloorHeight
|
||||
//
|
||||
this.cbFloorHeight.AutoSize = true;
|
||||
this.cbFloorHeight.Location = new System.Drawing.Point(7, 52);
|
||||
this.cbFloorHeight.Name = "cbFloorHeight";
|
||||
this.cbFloorHeight.Size = new System.Drawing.Size(84, 17);
|
||||
this.cbFloorHeight.TabIndex = 23;
|
||||
this.cbFloorHeight.Text = "Floor height:";
|
||||
this.cbFloorHeight.UseVisualStyleBackColor = true;
|
||||
this.cbFloorHeight.CheckedChanged += new System.EventHandler(this.cbFloorHeight_CheckedChanged);
|
||||
//
|
||||
// ceilHeight
|
||||
//
|
||||
this.ceilHeight.AllowDecimal = false;
|
||||
|
@ -207,40 +236,236 @@
|
|||
this.ceilHeight.TabIndex = 11;
|
||||
this.ceilHeight.WhenTextChanged += new System.EventHandler(this.ceilHeight_WhenTextChanged);
|
||||
//
|
||||
// walls
|
||||
// cbOverrideBottomTexture
|
||||
//
|
||||
this.walls.Location = new System.Drawing.Point(168, 41);
|
||||
this.walls.Name = "walls";
|
||||
this.walls.Required = false;
|
||||
this.walls.Size = new System.Drawing.Size(68, 90);
|
||||
this.walls.TabIndex = 19;
|
||||
this.walls.TextureName = "";
|
||||
this.walls.OnValueChanged += new System.EventHandler(this.walls_OnValueChanged);
|
||||
this.cbOverrideBottomTexture.AutoSize = true;
|
||||
this.cbOverrideBottomTexture.Location = new System.Drawing.Point(170, 19);
|
||||
this.cbOverrideBottomTexture.Name = "cbOverrideBottomTexture";
|
||||
this.cbOverrideBottomTexture.Size = new System.Drawing.Size(55, 17);
|
||||
this.cbOverrideBottomTexture.TabIndex = 28;
|
||||
this.cbOverrideBottomTexture.Text = "Lower";
|
||||
this.cbOverrideBottomTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideBottomTexture.CheckedChanged += new System.EventHandler(this.cbOverrideBottomTexture_CheckedChanged);
|
||||
//
|
||||
// floor
|
||||
// cbOverrideMiddleTexture
|
||||
//
|
||||
this.floor.Location = new System.Drawing.Point(87, 41);
|
||||
this.floor.Name = "floor";
|
||||
this.floor.Required = false;
|
||||
this.floor.Size = new System.Drawing.Size(68, 90);
|
||||
this.floor.TabIndex = 17;
|
||||
this.floor.TextureName = "";
|
||||
this.floor.OnValueChanged += new System.EventHandler(this.floor_OnValueChanged);
|
||||
this.cbOverrideMiddleTexture.AutoSize = true;
|
||||
this.cbOverrideMiddleTexture.Location = new System.Drawing.Point(88, 19);
|
||||
this.cbOverrideMiddleTexture.Name = "cbOverrideMiddleTexture";
|
||||
this.cbOverrideMiddleTexture.Size = new System.Drawing.Size(57, 17);
|
||||
this.cbOverrideMiddleTexture.TabIndex = 27;
|
||||
this.cbOverrideMiddleTexture.Text = "Middle";
|
||||
this.cbOverrideMiddleTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideMiddleTexture.CheckedChanged += new System.EventHandler(this.cbOverrideMiddleTexture_CheckedChanged);
|
||||
//
|
||||
// ceiling
|
||||
// bottom
|
||||
//
|
||||
this.ceiling.Location = new System.Drawing.Point(6, 41);
|
||||
this.ceiling.Name = "ceiling";
|
||||
this.ceiling.Required = false;
|
||||
this.ceiling.Size = new System.Drawing.Size(68, 90);
|
||||
this.ceiling.TabIndex = 16;
|
||||
this.ceiling.TextureName = "";
|
||||
this.ceiling.OnValueChanged += new System.EventHandler(this.ceiling_OnValueChanged);
|
||||
this.bottom.Location = new System.Drawing.Point(168, 41);
|
||||
this.bottom.Name = "bottom";
|
||||
this.bottom.Required = false;
|
||||
this.bottom.Size = new System.Drawing.Size(68, 90);
|
||||
this.bottom.TabIndex = 25;
|
||||
this.bottom.TextureName = "";
|
||||
this.bottom.OnValueChanged += new System.EventHandler(this.bottom_OnValueChanged);
|
||||
//
|
||||
// cbOverrideTopTexture
|
||||
//
|
||||
this.cbOverrideTopTexture.AutoSize = true;
|
||||
this.cbOverrideTopTexture.Location = new System.Drawing.Point(7, 19);
|
||||
this.cbOverrideTopTexture.Name = "cbOverrideTopTexture";
|
||||
this.cbOverrideTopTexture.Size = new System.Drawing.Size(55, 17);
|
||||
this.cbOverrideTopTexture.TabIndex = 26;
|
||||
this.cbOverrideTopTexture.Text = "Upper";
|
||||
this.cbOverrideTopTexture.UseVisualStyleBackColor = true;
|
||||
this.cbOverrideTopTexture.CheckedChanged += new System.EventHandler(this.cbOverrideTopTexture_CheckedChanged);
|
||||
//
|
||||
// middle
|
||||
//
|
||||
this.middle.Location = new System.Drawing.Point(87, 41);
|
||||
this.middle.Name = "middle";
|
||||
this.middle.Required = false;
|
||||
this.middle.Size = new System.Drawing.Size(68, 90);
|
||||
this.middle.TabIndex = 24;
|
||||
this.middle.TextureName = "";
|
||||
this.middle.OnValueChanged += new System.EventHandler(this.middle_OnValueChanged);
|
||||
//
|
||||
// top
|
||||
//
|
||||
this.top.Location = new System.Drawing.Point(6, 41);
|
||||
this.top.Name = "top";
|
||||
this.top.Required = false;
|
||||
this.top.Size = new System.Drawing.Size(68, 90);
|
||||
this.top.TabIndex = 23;
|
||||
this.top.TextureName = "";
|
||||
this.top.OnValueChanged += new System.EventHandler(this.top_OnValueChanged);
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox3.Controls.Add(this.cbOverrideBottomTexture);
|
||||
this.groupBox3.Controls.Add(this.top);
|
||||
this.groupBox3.Controls.Add(this.cbOverrideMiddleTexture);
|
||||
this.groupBox3.Controls.Add(this.middle);
|
||||
this.groupBox3.Controls.Add(this.bottom);
|
||||
this.groupBox3.Controls.Add(this.cbOverrideTopTexture);
|
||||
this.groupBox3.Location = new System.Drawing.Point(3, 146);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(243, 137);
|
||||
this.groupBox3.TabIndex = 29;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "Sidedef texture overrides:";
|
||||
//
|
||||
// groupBox4
|
||||
//
|
||||
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox4.Controls.Add(this.filllower);
|
||||
this.groupBox4.Controls.Add(this.fillmiddle);
|
||||
this.groupBox4.Controls.Add(this.fillupper);
|
||||
this.groupBox4.Controls.Add(this.fillfloor);
|
||||
this.groupBox4.Controls.Add(this.fillceiling);
|
||||
this.groupBox4.Location = new System.Drawing.Point(3, 289);
|
||||
this.groupBox4.Name = "groupBox4";
|
||||
this.groupBox4.Size = new System.Drawing.Size(243, 48);
|
||||
this.groupBox4.TabIndex = 30;
|
||||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = "Fill Selection with Textures:";
|
||||
//
|
||||
// fillceiling
|
||||
//
|
||||
this.fillceiling.Location = new System.Drawing.Point(6, 19);
|
||||
this.fillceiling.Name = "fillceiling";
|
||||
this.fillceiling.Size = new System.Drawing.Size(26, 23);
|
||||
this.fillceiling.TabIndex = 0;
|
||||
this.fillceiling.Text = "C";
|
||||
this.toolTip1.SetToolTip(this.fillceiling, "Fill all ceiling textures within selection \r\nwith current ceiling override textur" +
|
||||
"e");
|
||||
this.fillceiling.UseVisualStyleBackColor = true;
|
||||
this.fillceiling.Click += new System.EventHandler(this.fillceiling_Click);
|
||||
//
|
||||
// fillfloor
|
||||
//
|
||||
this.fillfloor.Location = new System.Drawing.Point(38, 19);
|
||||
this.fillfloor.Name = "fillfloor";
|
||||
this.fillfloor.Size = new System.Drawing.Size(26, 23);
|
||||
this.fillfloor.TabIndex = 1;
|
||||
this.fillfloor.Text = "F";
|
||||
this.toolTip1.SetToolTip(this.fillfloor, "Fill all floor textures within selection \r\nwith current floor override texture");
|
||||
this.fillfloor.UseVisualStyleBackColor = true;
|
||||
this.fillfloor.Click += new System.EventHandler(this.fillfloor_Click);
|
||||
//
|
||||
// fillupper
|
||||
//
|
||||
this.fillupper.Location = new System.Drawing.Point(69, 19);
|
||||
this.fillupper.Name = "fillupper";
|
||||
this.fillupper.Size = new System.Drawing.Size(26, 23);
|
||||
this.fillupper.TabIndex = 2;
|
||||
this.fillupper.Text = "U";
|
||||
this.toolTip1.SetToolTip(this.fillupper, "Fill all upper textures within selection \r\nwith current upper override texture");
|
||||
this.fillupper.UseVisualStyleBackColor = true;
|
||||
this.fillupper.Click += new System.EventHandler(this.fillupper_Click);
|
||||
//
|
||||
// fillmiddle
|
||||
//
|
||||
this.fillmiddle.Location = new System.Drawing.Point(101, 19);
|
||||
this.fillmiddle.Name = "fillmiddle";
|
||||
this.fillmiddle.Size = new System.Drawing.Size(26, 23);
|
||||
this.fillmiddle.TabIndex = 3;
|
||||
this.fillmiddle.Text = "M";
|
||||
this.toolTip1.SetToolTip(this.fillmiddle, "Fill all middle textures within selection \r\nwith current middle override texture");
|
||||
this.fillmiddle.UseVisualStyleBackColor = true;
|
||||
this.fillmiddle.Click += new System.EventHandler(this.fillmiddle_Click);
|
||||
//
|
||||
// filllower
|
||||
//
|
||||
this.filllower.Location = new System.Drawing.Point(133, 19);
|
||||
this.filllower.Name = "filllower";
|
||||
this.filllower.Size = new System.Drawing.Size(26, 23);
|
||||
this.filllower.TabIndex = 4;
|
||||
this.filllower.Text = "L";
|
||||
this.toolTip1.SetToolTip(this.filllower, "Fill all lower textures within selection \r\nwith current lower override texture");
|
||||
this.filllower.UseVisualStyleBackColor = true;
|
||||
this.filllower.Click += new System.EventHandler(this.filllower_Click);
|
||||
//
|
||||
// groupBox5
|
||||
//
|
||||
this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox5.Controls.Add(this.clearlower);
|
||||
this.groupBox5.Controls.Add(this.clearmiddle);
|
||||
this.groupBox5.Controls.Add(this.clearupper);
|
||||
this.groupBox5.Controls.Add(this.clearfloor);
|
||||
this.groupBox5.Controls.Add(this.clearceiling);
|
||||
this.groupBox5.Location = new System.Drawing.Point(3, 343);
|
||||
this.groupBox5.Name = "groupBox5";
|
||||
this.groupBox5.Size = new System.Drawing.Size(243, 48);
|
||||
this.groupBox5.TabIndex = 31;
|
||||
this.groupBox5.TabStop = false;
|
||||
this.groupBox5.Text = "Remove Textures form Selection:";
|
||||
//
|
||||
// clearlower
|
||||
//
|
||||
this.clearlower.Location = new System.Drawing.Point(133, 19);
|
||||
this.clearlower.Name = "clearlower";
|
||||
this.clearlower.Size = new System.Drawing.Size(26, 23);
|
||||
this.clearlower.TabIndex = 4;
|
||||
this.clearlower.Text = "L";
|
||||
this.toolTip1.SetToolTip(this.clearlower, "Remove all lower textures within selection ");
|
||||
this.clearlower.UseVisualStyleBackColor = true;
|
||||
this.clearlower.Click += new System.EventHandler(this.clearlower_Click);
|
||||
//
|
||||
// clearmiddle
|
||||
//
|
||||
this.clearmiddle.Location = new System.Drawing.Point(101, 19);
|
||||
this.clearmiddle.Name = "clearmiddle";
|
||||
this.clearmiddle.Size = new System.Drawing.Size(26, 23);
|
||||
this.clearmiddle.TabIndex = 3;
|
||||
this.clearmiddle.Text = "M";
|
||||
this.toolTip1.SetToolTip(this.clearmiddle, "Remove all middle textures within selection");
|
||||
this.clearmiddle.UseVisualStyleBackColor = true;
|
||||
this.clearmiddle.Click += new System.EventHandler(this.clearmiddle_Click);
|
||||
//
|
||||
// clearupper
|
||||
//
|
||||
this.clearupper.Location = new System.Drawing.Point(69, 19);
|
||||
this.clearupper.Name = "clearupper";
|
||||
this.clearupper.Size = new System.Drawing.Size(26, 23);
|
||||
this.clearupper.TabIndex = 2;
|
||||
this.clearupper.Text = "U";
|
||||
this.toolTip1.SetToolTip(this.clearupper, "Remove all upper textures within selection");
|
||||
this.clearupper.UseVisualStyleBackColor = true;
|
||||
this.clearupper.Click += new System.EventHandler(this.clearupper_Click);
|
||||
//
|
||||
// clearfloor
|
||||
//
|
||||
this.clearfloor.Location = new System.Drawing.Point(38, 19);
|
||||
this.clearfloor.Name = "clearfloor";
|
||||
this.clearfloor.Size = new System.Drawing.Size(26, 23);
|
||||
this.clearfloor.TabIndex = 1;
|
||||
this.clearfloor.Text = "F";
|
||||
this.toolTip1.SetToolTip(this.clearfloor, "Remove all floor textures within selection");
|
||||
this.clearfloor.UseVisualStyleBackColor = true;
|
||||
this.clearfloor.Click += new System.EventHandler(this.clearfloor_Click);
|
||||
//
|
||||
// clearceiling
|
||||
//
|
||||
this.clearceiling.Location = new System.Drawing.Point(6, 19);
|
||||
this.clearceiling.Name = "clearceiling";
|
||||
this.clearceiling.Size = new System.Drawing.Size(26, 23);
|
||||
this.clearceiling.TabIndex = 0;
|
||||
this.clearceiling.Text = "C";
|
||||
this.toolTip1.SetToolTip(this.clearceiling, "Remove all ceiling textures within selection ");
|
||||
this.clearceiling.UseVisualStyleBackColor = true;
|
||||
this.clearceiling.Click += new System.EventHandler(this.clearceiling_Click);
|
||||
//
|
||||
// SectorDrawingOptionsPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.groupBox5);
|
||||
this.Controls.Add(this.groupBox4);
|
||||
this.Controls.Add(this.groupBox3);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "SectorDrawingOptionsPanel";
|
||||
|
@ -249,6 +474,10 @@
|
|||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox3.PerformLayout();
|
||||
this.groupBox4.ResumeLayout(false);
|
||||
this.groupBox5.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -257,11 +486,9 @@
|
|||
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.CheckBox cbOverrideCeilingTexture;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl walls;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl floor;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl ceiling;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.CheckBox cbOverrideWallTexture;
|
||||
private System.Windows.Forms.CheckBox cbOverrideFloorTexture;
|
||||
private System.Windows.Forms.CheckBox cbBrightness;
|
||||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox brightness;
|
||||
|
@ -271,5 +498,25 @@
|
|||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilHeight;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.CheckBox cbOverrideBottomTexture;
|
||||
private System.Windows.Forms.CheckBox cbOverrideMiddleTexture;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl bottom;
|
||||
private System.Windows.Forms.CheckBox cbOverrideTopTexture;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl middle;
|
||||
private CodeImp.DoomBuilder.Controls.TextureSelectorControl top;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.GroupBox groupBox4;
|
||||
private System.Windows.Forms.Button filllower;
|
||||
private System.Windows.Forms.Button fillmiddle;
|
||||
private System.Windows.Forms.Button fillupper;
|
||||
private System.Windows.Forms.Button fillfloor;
|
||||
private System.Windows.Forms.Button fillceiling;
|
||||
private System.Windows.Forms.ToolTip toolTip1;
|
||||
private System.Windows.Forms.GroupBox groupBox5;
|
||||
private System.Windows.Forms.Button clearlower;
|
||||
private System.Windows.Forms.Button clearmiddle;
|
||||
private System.Windows.Forms.Button clearupper;
|
||||
private System.Windows.Forms.Button clearfloor;
|
||||
private System.Windows.Forms.Button clearceiling;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -22,18 +24,24 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
|||
brightness.Text = General.Map.Options.CustomBrightness.ToString();
|
||||
ceiling.TextureName = General.Map.Options.DefaultCeilingTexture;
|
||||
floor.TextureName = General.Map.Options.DefaultFloorTexture;
|
||||
walls.TextureName = General.Map.Options.DefaultWallTexture;
|
||||
top.TextureName = General.Map.Options.DefaultTopTexture;
|
||||
middle.TextureName = General.Map.Options.DefaultWallTexture;
|
||||
bottom.TextureName = General.Map.Options.DefaultBottomTexture;
|
||||
|
||||
cbOverrideCeilingTexture.Checked = General.Map.Options.OverrideCeilingTexture;
|
||||
cbOverrideFloorTexture.Checked = General.Map.Options.OverrideFloorTexture;
|
||||
cbOverrideWallTexture.Checked = General.Map.Options.OverrideWallTexture;
|
||||
cbOverrideTopTexture.Checked = General.Map.Options.OverrideTopTexture;
|
||||
cbOverrideMiddleTexture.Checked = General.Map.Options.OverrideMiddleTexture;
|
||||
cbOverrideBottomTexture.Checked = General.Map.Options.OverrideBottomTexture;
|
||||
cbCeilHeight.Checked = General.Map.Options.OverrideCeilingHeight;
|
||||
cbFloorHeight.Checked = General.Map.Options.OverrideFloorHeight;
|
||||
cbBrightness.Checked = General.Map.Options.OverrideBrightness;
|
||||
|
||||
ceiling.Enabled = cbOverrideCeilingTexture.Checked;
|
||||
floor.Enabled = cbOverrideFloorTexture.Checked;
|
||||
walls.Enabled = cbOverrideWallTexture.Checked;
|
||||
top.Enabled = cbOverrideTopTexture.Checked;
|
||||
middle.Enabled = cbOverrideMiddleTexture.Checked;
|
||||
bottom.Enabled = cbOverrideBottomTexture.Checked;
|
||||
ceilHeight.Enabled = cbCeilHeight.Checked;
|
||||
floorHeight.Enabled = cbFloorHeight.Checked;
|
||||
brightness.Enabled = cbBrightness.Checked;
|
||||
|
@ -53,9 +61,19 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
|||
General.Map.Options.OverrideFloorTexture = cbOverrideFloorTexture.Checked;
|
||||
}
|
||||
|
||||
private void cbOverrideWallTexture_CheckedChanged(object sender, EventArgs e) {
|
||||
walls.Enabled = cbOverrideWallTexture.Checked;
|
||||
General.Map.Options.OverrideWallTexture = cbOverrideWallTexture.Checked;
|
||||
private void cbOverrideTopTexture_CheckedChanged(object sender, EventArgs e) {
|
||||
top.Enabled = cbOverrideTopTexture.Checked;
|
||||
General.Map.Options.OverrideTopTexture = cbOverrideTopTexture.Checked;
|
||||
}
|
||||
|
||||
private void cbOverrideMiddleTexture_CheckedChanged(object sender, EventArgs e) {
|
||||
middle.Enabled = cbOverrideMiddleTexture.Checked;
|
||||
General.Map.Options.OverrideMiddleTexture = cbOverrideMiddleTexture.Checked;
|
||||
}
|
||||
|
||||
private void cbOverrideBottomTexture_CheckedChanged(object sender, EventArgs e) {
|
||||
bottom.Enabled = cbOverrideBottomTexture.Checked;
|
||||
General.Map.Options.OverrideBottomTexture = cbOverrideBottomTexture.Checked;
|
||||
}
|
||||
|
||||
private void cbCeilHeight_CheckedChanged(object sender, EventArgs e) {
|
||||
|
@ -97,8 +115,216 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
|||
General.Map.Options.DefaultFloorTexture = floor.TextureName;
|
||||
}
|
||||
|
||||
private void walls_OnValueChanged(object sender, EventArgs e) {
|
||||
General.Map.Options.DefaultWallTexture = walls.TextureName;
|
||||
private void top_OnValueChanged(object sender, EventArgs e) {
|
||||
General.Map.Options.DefaultTopTexture = top.TextureName;
|
||||
}
|
||||
|
||||
private void middle_OnValueChanged(object sender, EventArgs e) {
|
||||
General.Map.Options.DefaultWallTexture = middle.TextureName;
|
||||
}
|
||||
|
||||
private void bottom_OnValueChanged(object sender, EventArgs e) {
|
||||
General.Map.Options.DefaultBottomTexture = bottom.TextureName;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Texture Fill
|
||||
|
||||
private void fillceiling_Click(object sender, EventArgs e) {
|
||||
ICollection<Sector> sectors = General.Map.Map.GetSelectedSectors(true);
|
||||
if(sectors.Count == 0) return;
|
||||
|
||||
string undodesc = "sector";
|
||||
if(sectors.Count > 1) undodesc = sectors.Count + " sectors";
|
||||
General.Map.UndoRedo.CreateUndo("Clear ceiling texture from " + undodesc);
|
||||
|
||||
foreach(Sector s in sectors) {
|
||||
s.SetCeilTexture(ceiling.TextureName);
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
|
||||
if(General.Map.Renderer2D.ViewMode == CodeImp.DoomBuilder.Rendering.ViewMode.CeilingTextures)
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
private void fillfloor_Click(object sender, EventArgs e) {
|
||||
ICollection<Sector> sectors = General.Map.Map.GetSelectedSectors(true);
|
||||
if(sectors.Count == 0) return;
|
||||
|
||||
string undodesc = "sector";
|
||||
if(sectors.Count > 1) undodesc = sectors.Count + " sectors";
|
||||
General.Map.UndoRedo.CreateUndo("Clear ceiling texture from " + undodesc);
|
||||
|
||||
foreach(Sector s in sectors) {
|
||||
s.SetFloorTexture(floor.TextureName);
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
|
||||
if(General.Map.Renderer2D.ViewMode == CodeImp.DoomBuilder.Rendering.ViewMode.FloorTextures)
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
private void fillupper_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Fill upper texture for " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.HighRequired()) l.Front.SetTextureHigh(top.TextureName);
|
||||
if(l.Back != null && l.Back.HighRequired()) l.Back.SetTextureHigh(top.TextureName);
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
private void fillmiddle_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Fill middle texture for " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.MiddleRequired()) l.Front.SetTextureMid(middle.TextureName);
|
||||
if(l.Back != null && l.Back.MiddleRequired()) l.Back.SetTextureMid(middle.TextureName);
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
private void filllower_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Fill lower texture for " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.LowRequired()) l.Front.SetTextureLow(bottom.TextureName);
|
||||
if(l.Back != null && l.Back.LowRequired()) l.Back.SetTextureLow(bottom.TextureName);
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Clear Textures
|
||||
|
||||
private void clearceiling_Click(object sender, EventArgs e) {
|
||||
ICollection<Sector> sectors = General.Map.Map.GetSelectedSectors(true);
|
||||
if(sectors.Count == 0) return;
|
||||
|
||||
string undodesc = "sector";
|
||||
if(sectors.Count > 1) undodesc = sectors.Count + " sectors";
|
||||
General.Map.UndoRedo.CreateUndo("Clear ceiling texture from " + undodesc);
|
||||
|
||||
foreach(Sector s in sectors){
|
||||
s.SetCeilTexture("-");
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
|
||||
// Update entire display
|
||||
General.Map.Map.Update();
|
||||
if(General.Map.Renderer2D.ViewMode == CodeImp.DoomBuilder.Rendering.ViewMode.CeilingTextures)
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
private void clearfloor_Click(object sender, EventArgs e) {
|
||||
ICollection<Sector> sectors = General.Map.Map.GetSelectedSectors(true);
|
||||
if(sectors.Count == 0) return;
|
||||
|
||||
string undodesc = "sector";
|
||||
if(sectors.Count > 1) undodesc = sectors.Count + " sectors";
|
||||
General.Map.UndoRedo.CreateUndo("Clear floor texture from " + undodesc);
|
||||
|
||||
foreach(Sector s in sectors) {
|
||||
s.SetFloorTexture("-");
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
|
||||
// Update entire display
|
||||
General.Map.Map.Update();
|
||||
if(General.Map.Renderer2D.ViewMode == CodeImp.DoomBuilder.Rendering.ViewMode.FloorTextures)
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
|
||||
private void clearupper_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Clear upper texture from " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.HighTexture != "-") l.Front.SetTextureHigh("-");
|
||||
if(l.Back != null && l.Back.HighTexture != "-") l.Back.SetTextureHigh("-");
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
private void clearmiddle_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Clear middle texture from " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.MiddleTexture != "-") l.Front.SetTextureMid("-");
|
||||
if(l.Back != null && l.Back.MiddleTexture != "-") l.Back.SetTextureMid("-");
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
private void clearlower_Click(object sender, EventArgs e) {
|
||||
ICollection<Linedef> lines = General.Map.Map.GetSelectedLinedefs(true);
|
||||
if(lines.Count == 0) return;
|
||||
|
||||
string undodesc = "linedef";
|
||||
if(lines.Count > 1) undodesc = lines.Count + " linedefs";
|
||||
General.Map.UndoRedo.CreateUndo("Clear lower texture from " + undodesc);
|
||||
|
||||
foreach(Linedef l in lines) {
|
||||
if(l.Front != null && l.Front.LowTexture != "-") l.Front.SetTextureLow("-");
|
||||
if(l.Back != null && l.Back.LowTexture != "-") l.Back.SetTextureLow("-");
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
General.Map.Data.UpdateUsedTextures();
|
||||
General.Map.IsChanged = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -117,4 +117,22 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
|
@ -35,8 +35,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// list
|
||||
//
|
||||
this.list.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.coldescription});
|
||||
this.coldescription});
|
||||
this.list.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.list.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.list.FullRowSelect = true;
|
||||
this.list.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.list.Location = new System.Drawing.Point(0, 0);
|
||||
|
|
|
@ -62,7 +62,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
|
||||
// This refills the list
|
||||
public unsafe void UpdateList()
|
||||
public void UpdateList()
|
||||
{
|
||||
ignoreevents = true;
|
||||
currentselection = -1;
|
||||
|
|
|
@ -1,120 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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>
|
||||
</root>
|
|
@ -67,9 +67,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
private VisualPickResult target;
|
||||
private float lastpicktime;
|
||||
private bool locktarget;
|
||||
|
||||
private bool useSelectionFromClassicMode;//mxd
|
||||
public bool UseSelectionFromClassicMode { get { return useSelectionFromClassicMode; } }
|
||||
|
||||
// This keeps extra element info
|
||||
private Dictionary<Sector, SectorData> sectordata;
|
||||
|
@ -93,8 +91,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
private List<IVisualEventReceiver> selectedobjects;
|
||||
//mxd. Used in Cut/PasteSelection actions
|
||||
private List<ThingCopyData> copyBuffer;
|
||||
private Type lasthighlighttype; //mxd
|
||||
|
||||
public static bool GZDoomRenderingEffects { get { return gzdoomRenderingEffects; } } //mxd
|
||||
private static bool gzdoomRenderingEffects = true; //mxd
|
||||
|
||||
//mxd. Moved here from Tools
|
||||
|
@ -112,6 +110,13 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// must be subtracted from the X offset first.
|
||||
public bool forward;
|
||||
}
|
||||
|
||||
//mxd. All sorts of hints
|
||||
private string[] thingHints;
|
||||
private string[] sidedefHints;
|
||||
private string[] sectorHints;
|
||||
private string[] vertexHints;
|
||||
private string[] generalHints;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -146,8 +151,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
}
|
||||
|
||||
//mxd
|
||||
public object HighlightedTarget { get { return target.picked; } }
|
||||
public object HighlightedTarget { get { return target.picked; } } //mxd
|
||||
public static bool GZDoomRenderingEffects { get { return gzdoomRenderingEffects; } } //mxd
|
||||
public bool UseSelectionFromClassicMode { get { return useSelectionFromClassicMode; } } //mxd
|
||||
|
||||
new public IRenderer3D Renderer { get { return renderer; } }
|
||||
|
||||
|
@ -1240,7 +1246,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public override void OnMouseMove(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseMove(e);
|
||||
GetTargetEventReceiver(true).OnMouseMove(e);
|
||||
IVisualEventReceiver o = GetTargetEventReceiver(true);
|
||||
o.OnMouseMove(e);
|
||||
|
||||
//mxd. Show hints!
|
||||
if (o.GetType() != lasthighlighttype) {
|
||||
if (o is BaseVisualGeometrySidedef) {
|
||||
General.Interface.ShowEditModeHints(sidedefHints);
|
||||
} else if (o is BaseVisualGeometrySector) {
|
||||
General.Interface.ShowEditModeHints(sectorHints);
|
||||
} else if (o is BaseVisualThing) {
|
||||
General.Interface.ShowEditModeHints(thingHints);
|
||||
} else if (o is BaseVisualVertex) {
|
||||
General.Interface.ShowEditModeHints(vertexHints);
|
||||
} else {
|
||||
General.Interface.ShowEditModeHints(generalHints);
|
||||
}
|
||||
|
||||
lasthighlighttype = o.GetType();
|
||||
}
|
||||
}
|
||||
|
||||
// Undo performed
|
||||
|
@ -1315,6 +1339,75 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#endregion
|
||||
|
||||
#region ================== Hints (mxd)
|
||||
|
||||
protected override void SetupHints() {
|
||||
base.SetupHints();
|
||||
|
||||
//GENERAL PURPOSE
|
||||
List<string> generalHintsList = new List<string>() {
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_moveforward") + "</b>, <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_movebackward") + "</b>, <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_moveleft") + "</b> and <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_moveright") + "</b> to move around. Hold <b>Shift</b> to double the speed",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_moveup") + "</b> and <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_movedown") + "</b> to move up and down",
|
||||
};
|
||||
|
||||
if (General.Map.UDMF) {
|
||||
generalHintsList.Add("Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_gztogglevisualvertices") + "</b> to toggle vertex handles rendering");
|
||||
}
|
||||
|
||||
//THINGS
|
||||
List<string> thingHintsList = new List<string>() {
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_visualselect") + "</b> to select the highlighted thing",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_clearselection") + "</b> to clear selection",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_raisesector8") +
|
||||
"</b> and <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_lowersector8") + "</b> to change height of selected/targeted things by 8 map units",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_lowersectortonearest") +
|
||||
"</b> and <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_raisesectortonearest") + "</b> to align selected/targeted things to floor or ceiling",
|
||||
"Use <b>" + Actions.Action.GetShortcutKeyDesc("builder_movethingfwd") + "</b>, <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_movethingback") + "</b>, <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_movethingleft") + "</b> and <b>" +
|
||||
Actions.Action.GetShortcutKeyDesc("builder_movethingright") + "</b> to move selected things around",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_placethingatcursor") + "</b> to move selected things to cursor location",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("buildermodes_showvisualthings") + "</b> to cycle through the different ways the things are shown",
|
||||
};
|
||||
|
||||
//SIDEDEFS
|
||||
List<string> sidedefHintsList = new List<string>() {
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to insert a Thing at current cursor position",
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_visualselect") + "</b> to select the highlighted surface. Hold <b>Shift</b> to select adjacent surfaces with the same texture. Hold <b>Ctrl</b> to select adjacent surfaces with the same height",
|
||||
"TODO: show more sidedef-related hints here"
|
||||
};
|
||||
|
||||
//SECTORS
|
||||
List<string> sectorHintsList = new List<string>() {
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to insert a Thing at current cursor position",
|
||||
"TODO: show more sector-related hints here"
|
||||
};
|
||||
|
||||
//VERTICES
|
||||
List<string> vertexHintsList = new List<string>() {
|
||||
"Press <b>" + Actions.Action.GetShortcutKeyDesc("builder_insertitem") + "</b> to insert a Thing at current cursor position",
|
||||
"TODO: show more vertex-related hints here"
|
||||
};
|
||||
|
||||
//instert general stuff into each array
|
||||
generalHints = generalHintsList.ToArray();
|
||||
thingHintsList.InsertRange(0, generalHints);
|
||||
sidedefHintsList.InsertRange(0, generalHints);
|
||||
sectorHintsList.InsertRange(0, generalHints);
|
||||
vertexHintsList.InsertRange(0, generalHints);
|
||||
|
||||
thingHints = thingHintsList.ToArray();
|
||||
sidedefHints = sidedefHintsList.ToArray();
|
||||
sectorHints = sectorHintsList.ToArray();
|
||||
vertexHints = vertexHintsList.ToArray();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Action Assist
|
||||
|
||||
// Because some actions can only be called on a single (the targeted) object because
|
||||
|
|
Loading…
Reference in a new issue