mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-22 20:02:48 +00:00
Edit forms: current selection is no longer cleared when the edit is canceled.
Updated documentation.
This commit is contained in:
parent
898c8e6166
commit
c4130499fc
16 changed files with 52 additions and 88 deletions
|
@ -931,12 +931,6 @@
|
|||
<td>Repeats the action(s) performed before Undo was used.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a name="setdefaulttextures" id="setdefaulttextures"></a>Set Default Textures</td>
|
||||
<td><div align="center"></div></td>
|
||||
<td><div align="center"></div></td>
|
||||
<td>Opens the window, which lets user to change textures, which will be used in drawing operations.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="features/classic_modes/mode_snapelements.html">Snap Selected Map Elements to Grid</a></td>
|
||||
<td><div align="center"></div></td>
|
||||
<td><div align="center"></div></td>
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
<div id="contents">
|
||||
<p><strong>Q:</strong> I'm getting a ton of "<strong>Unable to find the DECORATE class '[some actor]' to inherit from, while parsing '[some other actor]:[DoomEdNum]'</strong>" warnings. What's wrong?<br />
|
||||
<strong>A:</strong> This happens when a DECORATE actor is inherited from another actor, which is not defined in game configuration and is not defined in any included resources. To fix this, add "<strong>(g)zdoom.pk3</strong>" as a map resource. Don't forget to check "Exclude from testing parameters" chekbox while adding it, otherwise (G)ZDoom won't load your map. "<strong>(g)zdoom.pk3</strong>" can be found in (G)ZDoom folder. </p>
|
||||
<p><strong>Q:</strong> I'm getting a ton of "<strong>Light declaration not found for light '[light name]' ('[source]', line [n])</strong>" warnings. What's wrong?<br />
|
||||
<strong>A:</strong> GZDoom Builder doesn't include GZDoom's GLDEFS lights definitions. To get rid of these errors, add "<strong>lights.pk3</strong>" as a map resource. Don't forget to check "Exclude from testing parameters" chekbox while adding it, otherwise GZDoom won't load your map. "<strong>lights.pk3</strong>" can be found in GZDoom folder. </p>
|
||||
<p><strong>Q: </strong>Dynamic lights defined in GLDEFS are not rendered in Visual mode / I'm getting a ton of "<strong>Light declaration not found for light '[light name]' ('[source]', line [n])</strong>" warnings. What's wrong?<br />
|
||||
<strong>A:</strong> GZDoom Builder doesn't include GZDoom's GLDEFS lights definitions. To get rid of these errors, add "<strong>lights.pk3</strong>" as a map resource. Don't forget to check "<strong>Exclude from testing parameters</strong>" chekbox while adding it, otherwise GZDoom won't load your map. "<strong>lights.pk3</strong>" can be found in GZDoom folder. </p>
|
||||
<p><strong>Q:</strong> When I create a new map, I see only Doom-related game configurations. Where are configurations for other games?<br />
|
||||
<strong>A:</strong> Copy "<span class="style1">[EngineName]_[Game][MapType].cfg</span>" and "<span class="style1">Includes</span>" folder from "<span class="style1">[GZDB]\Configurations\Configs for other games\[Game]</span>" to "<span class="style1">[GZDB]\Configurations\</span>".<br />
|
||||
If you are using Zandronum, you'll also need to copy all files from "<span class="style1">[GZDB]\Configurations\Configs for other games\Zandronum Includes\</span>" to the main "<span class="style1">Includes</span>" folder ("<span class="style1">[GZDB]\Configurations\Includes\</span>") .</p>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<div id="contents">
|
||||
<table width="100%" border="0" cellspacing="3" cellpadding="3">
|
||||
<tr>
|
||||
<td valign="top">The Image browser can display the directory structure of a Folder, PK3 and PK7 resource, allowing you to group and find textures easier.<br />
|
||||
<td valign="top">The Image browser displays the directory structure of a Folder, PK3 and PK7 resource, allowing you to group and find textures easier.<br />
|
||||
You can filter textures by texture size. If the current game configuration supports mixed textures and flats, you can filter textures by image type using this drop down:<br />
|
||||
<img src="texture_types.jpg" alt=""/><br />
|
||||
<br />
|
||||
|
|
BIN
Help/gzdb/features/classic_modes/draw_settings.jpg
Normal file
BIN
Help/gzdb/features/classic_modes/draw_settings.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
|
@ -103,10 +103,11 @@
|
|||
<li><a href="classic_modes/mode_drawbridge.html">Bridge mode</a>.</li>
|
||||
<li><a href="classic_modes/mode_snapelements.html">Snap map elements mode</a>.</li>
|
||||
<li><span class="style5">[new]</span> You can place things on top of selected vertices in Vertices and Linedefs modes and inside of selected sectors in Sectors mode useing "<a href="../actions.html#placethings">Place Things</a>" action.</li>
|
||||
<li><span class="style5">[new]</span> You can set, which textures to use when drawing new geometry using "<strong><a href="../actions.html#setdefaulttextures">Set Default Textures</a></strong>" action, available in <strong>Edit</strong> menu (by default, the editor uses textures from closest sector when drawing a new one).
|
||||
<li><span class="style5">[new]</span> You can override default sector properties, which are used to create new geometry, using "<strong>Draw Settings</strong>" panel (by default, when the new sector overlaps or touches existing sector, the editor uses textures, brighntess and floor/ceiling heights from that sector when drawing the new one).
|
||||
<input class="spoilerbutton" type="button" onclick="ToggleSpoiler(this);" href="javascript:void(0);" value="Show image"/>
|
||||
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/setdefaulttextures.jpg" alt="" /></div>
|
||||
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/draw_settings.jpg" alt="" /></div>
|
||||
</li>
|
||||
<li><span class="style5">[new]</span> You can change default sector brightness and floor/ceiling height (<strong>Preferences -> Editing -> Default sector settings</strong>). These settings are used when the new sector doesn't touch or overlap already existing sectors.</li>
|
||||
<li><span class="style5">[new]</span> 3D floor indication (color can be changed in <strong>Preferences -> Appearance -> 3D Floors</strong>, the setting can be disabled in <a href="../preferences.html#markextrafloors">Preferences</a>).
|
||||
<input class="spoilerbutton" type="button" onclick="ToggleSpoiler(this);" href="javascript:void(0);" value="Show image"/>
|
||||
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/3dfloor_marks.jpg" alt="" /></div>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<p><strong>MODELDEF support:</strong> all relevant MODELDEF properties and flags are supported. Sprite translations are not supported.<br />
|
||||
<strong>GLDEFS support:</strong>
|
||||
only dynamic light definitions are currently supported. Brightmaps and glowing flats support may be added in the future.<br />
|
||||
You can reload GLDEFS and MODELDEF by using "<a href="actions.html#gldefs"><strong>Reload GLDEFS</strong></a>" and "<a href="actions.html#modeldef"><strong>Reload MODELDEF</strong></a>" actions.
|
||||
You can reload GLDEFS and MODELDEF by using "<a href="actions.html#gldefs"><strong>Reload GLDEFS</strong></a>" and "<a href="actions.html#modeldef"><strong>Reload MODELDEF</strong></a>" actions.<br />To enable GZDoom's built-in GLDEFS dynamic light definitions, you need to add "<strong>lights.pk3</strong>" as a map resource. Don't forget to check "<strong>Exclude from testing parameters</strong>" chekbox while adding it, otherwise GZDoom won't load your map. "<strong>lights.pk3</strong>" can be found in GZDoom folder.
|
||||
<p><b>If you are creating maps for Doom or Doom 2, you probably don't need to read this, since required information is already added for those games.</b><br />
|
||||
<br />
|
||||
<b>To load models or dynamic lights defined in GLDEFS for things defined in configuration files:</b><br />
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace CodeImp.DoomBuilder
|
|||
#region ================== Properties
|
||||
|
||||
public bool HasErrors { get { return (errors.Count > 0); } }
|
||||
public int ErrorsCount { get { return errors.Count; } } //mxd
|
||||
public bool HasChanged { get { return changed; } set { changed = value; } }
|
||||
public bool IsErrorAdded { get { return erroradded; } set { erroradded = value; } }
|
||||
public bool IsWarningAdded { get { return warningadded; } set { warningadded = value; } }
|
||||
|
|
4
Source/Core/Windows/MainForm.Designer.cs
generated
4
Source/Core/Windows/MainForm.Designer.cs
generated
|
@ -1854,7 +1854,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
this.statuslabel.Name = "statuslabel";
|
||||
this.statuslabel.Size = new System.Drawing.Size(340, 18);
|
||||
this.statuslabel.Size = new System.Drawing.Size(309, 18);
|
||||
this.statuslabel.Spring = true;
|
||||
this.statuslabel.Text = "Initializing user interface...";
|
||||
this.statuslabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
|
@ -2094,6 +2094,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.xposlabel.Name = "xposlabel";
|
||||
this.xposlabel.Size = new System.Drawing.Size(50, 18);
|
||||
this.xposlabel.Text = "0";
|
||||
this.xposlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.xposlabel.ToolTipText = "Current X, Y coordinates on map";
|
||||
//
|
||||
// yposlabel
|
||||
|
@ -2102,6 +2103,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.yposlabel.Name = "yposlabel";
|
||||
this.yposlabel.Size = new System.Drawing.Size(50, 18);
|
||||
this.yposlabel.Text = "0";
|
||||
this.yposlabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.yposlabel.ToolTipText = "Current X, Y coordinates on map";
|
||||
//
|
||||
// warnsLabel
|
||||
|
|
|
@ -166,7 +166,6 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
private int lockupdatecount;
|
||||
|
||||
//mxd
|
||||
private int warningsCount;
|
||||
private System.Timers.Timer blinkTimer;
|
||||
|
||||
#endregion
|
||||
|
@ -244,6 +243,11 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// Keep last position and size
|
||||
lastposition = this.Location;
|
||||
lastsize = this.Size;
|
||||
|
||||
//mxd
|
||||
blinkTimer = new System.Timers.Timer();
|
||||
blinkTimer.Interval = 500;
|
||||
blinkTimer.Elapsed += blinkTimer_Elapsed;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -572,6 +576,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// Stop timers
|
||||
statusflasher.Stop();
|
||||
statusresetter.Stop();
|
||||
blinkTimer.Stop(); //mxd
|
||||
|
||||
// Stop exclusive mode, if any is active
|
||||
StopExclusiveMouseInput();
|
||||
|
@ -2592,7 +2597,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
errform.ShowDialog(this);
|
||||
errform.Dispose();
|
||||
//mxd
|
||||
SetWarningsCount(0, false);
|
||||
SetWarningsCount(General.ErrorLogger.ErrorsCount, false);
|
||||
}
|
||||
|
||||
// Game Configuration action
|
||||
|
@ -3088,41 +3093,27 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd. Warnings panel
|
||||
internal void SetWarningsCount(int count, bool blink) {
|
||||
warningsCount = count;
|
||||
|
||||
if(warningsCount > 0) {
|
||||
if(!warnsLabel.Font.Bold){
|
||||
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Bold);
|
||||
warnsLabel.Image = Resources.Warning;
|
||||
}
|
||||
if(count > 0) {
|
||||
if (warnsLabel.Image != Resources.Warning) warnsLabel.Image = Resources.Warning;
|
||||
} else {
|
||||
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Regular);
|
||||
warnsLabel.Image = Resources.WarningOff;
|
||||
warnsLabel.BackColor = SystemColors.Control;
|
||||
}
|
||||
|
||||
warnsLabel.Text = warningsCount.ToString();
|
||||
warnsLabel.Text = count.ToString();
|
||||
|
||||
//start annoying blinking!
|
||||
if(blink && blinkTimer == null) {
|
||||
blinkTimer = new System.Timers.Timer();
|
||||
blinkTimer.Interval = 500;
|
||||
blinkTimer.Elapsed += new System.Timers.ElapsedEventHandler(blinkTimer_Elapsed);
|
||||
blinkTimer.Enabled = true;
|
||||
if (blink) {
|
||||
if(!blinkTimer.Enabled) blinkTimer.Start();
|
||||
} else {
|
||||
blinkTimer.Stop();
|
||||
warnsLabel.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
|
||||
//mxd. Bliks warnings indicator
|
||||
private void blink() {
|
||||
if(warnsLabel.BackColor == Color.Red) {
|
||||
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Regular);
|
||||
warnsLabel.Image = Resources.WarningOff;
|
||||
warnsLabel.BackColor = SystemColors.Control;
|
||||
} else {
|
||||
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Bold);
|
||||
warnsLabel.Image = Resources.Warning;
|
||||
warnsLabel.BackColor = Color.Red;
|
||||
}
|
||||
warnsLabel.BackColor = (warnsLabel.BackColor == Color.Red ? SystemColors.Control : Color.Red);
|
||||
}
|
||||
|
||||
//mxd
|
||||
|
@ -3132,19 +3123,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd
|
||||
private void blinkTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
|
||||
if(warningsCount > 0) {
|
||||
if (!this.Disposing && blinkTimer != null) {
|
||||
try {
|
||||
this.Invoke(new CallBlink(blink));
|
||||
} catch(ObjectDisposedException) { } //la-la-la. We don't care.
|
||||
}
|
||||
} else {
|
||||
//get rid of timer
|
||||
blinkTimer.Stop();
|
||||
blinkTimer.Elapsed -= blinkTimer_Elapsed;
|
||||
blinkTimer.Dispose();
|
||||
blinkTimer = null;
|
||||
}
|
||||
try {
|
||||
this.Invoke(new CallBlink(blink));
|
||||
} catch(ObjectDisposedException) { } //la-la-la. We don't care.
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -201,30 +201,6 @@
|
|||
<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="vertexinfo.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">
|
||||
<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="modename.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="redrawtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>433, 17</value>
|
||||
</metadata>
|
||||
|
|
|
@ -468,11 +468,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
if(General.Interface.IsActiveWindow)
|
||||
{
|
||||
// Show line edit dialog
|
||||
General.Interface.ShowEditLinedefs(selected);
|
||||
DialogResult result = General.Interface.ShowEditLinedefs(selected);
|
||||
General.Map.Map.Update();
|
||||
|
||||
// When a single line was selected, deselect it now
|
||||
if(selected.Count == 1) General.Map.Map.ClearSelectedLinedefs();
|
||||
if (selected.Count == 1) {
|
||||
General.Map.Map.ClearSelectedLinedefs();
|
||||
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
|
||||
foreach (Linedef l in selected) l.Selected = true;
|
||||
}
|
||||
|
||||
// Update entire display
|
||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||
|
|
|
@ -717,18 +717,19 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
//mxd. Show realtime vertex edit dialog
|
||||
General.Interface.OnEditFormValuesChanged += new EventHandler(sectorEditForm_OnValuesChanged);
|
||||
General.Interface.ShowEditSectors(selected);
|
||||
DialogResult result = General.Interface.ShowEditSectors(selected);
|
||||
General.Interface.OnEditFormValuesChanged -= sectorEditForm_OnValuesChanged;
|
||||
|
||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||
|
||||
// When a single sector was selected, deselect it now
|
||||
if(selected.Count == 1)
|
||||
{
|
||||
if (selected.Count == 1) {
|
||||
General.Map.Map.ClearSelectedSectors();
|
||||
General.Map.Map.ClearSelectedLinedefs();
|
||||
General.Interface.RedrawDisplay();
|
||||
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
|
||||
foreach (Sector s in selected) SelectSector(s, true, true);
|
||||
}
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -411,14 +411,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
//mxd. Show realtime thing edit dialog
|
||||
General.Interface.OnEditFormValuesChanged += new EventHandler(thingEditForm_OnValuesChanged);
|
||||
General.Interface.ShowEditThings(selected);
|
||||
DialogResult result = General.Interface.ShowEditThings(selected);
|
||||
General.Interface.OnEditFormValuesChanged -= thingEditForm_OnValuesChanged;
|
||||
|
||||
// When a single thing was selected, deselect it now
|
||||
if(selected.Count == 1) {
|
||||
if (selected.Count == 1) {
|
||||
General.Map.Map.ClearSelectedThings();
|
||||
General.Interface.RedrawDisplay();
|
||||
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
|
||||
foreach (Thing t in selected) t.Selected = true;
|
||||
}
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -406,14 +406,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
//mxd. Show realtime vertex edit dialog
|
||||
General.Interface.OnEditFormValuesChanged += new EventHandler(vertexEditForm_OnValuesChanged);
|
||||
General.Interface.ShowEditVertices(selected);
|
||||
DialogResult result = General.Interface.ShowEditVertices(selected);
|
||||
General.Interface.OnEditFormValuesChanged -= vertexEditForm_OnValuesChanged;
|
||||
|
||||
// When a single vertex was selected, deselect it now
|
||||
if(selected.Count == 1) {
|
||||
if (selected.Count == 1) {
|
||||
General.Map.Map.ClearSelectedVertices();
|
||||
General.Interface.RedrawDisplay();
|
||||
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
|
||||
foreach (Vertex v in selected) v.Selected = true;
|
||||
}
|
||||
General.Interface.RedrawDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.groupBox4.Size = new System.Drawing.Size(272, 130);
|
||||
this.groupBox4.TabIndex = 19;
|
||||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = " Default sector values";
|
||||
this.groupBox4.Text = " Default sector settings";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue