mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-30 07:31:36 +00:00
Fixed: selected items info was not updated when deleting a map element.
Changed, Sound Environments mode: previously selected sound environment is now automatically selected when inserting a new sound environment item. Also it's now impossible to accept the form without selecting a sound environment. Changed, Sound Propagation mode: single-sided lines with sound zone boundary flag are now highlightable and clickable.
This commit is contained in:
parent
6732e31493
commit
2f77560b55
10 changed files with 40 additions and 10 deletions
|
@ -983,6 +983,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
OnMouseMove(e);
|
OnMouseMove(e);
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
@ -1052,6 +1053,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
OnMouseMove(e);
|
OnMouseMove(e);
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1618,6 +1618,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
UpdateSelectedLabels();
|
UpdateSelectedLabels();
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
|
@ -888,6 +888,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
OnMouseMove(e);
|
OnMouseMove(e);
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -936,6 +936,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
OnMouseMove(e);
|
OnMouseMove(e);
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
@ -1014,6 +1015,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
OnMouseMove(e);
|
OnMouseMove(e);
|
||||||
|
|
||||||
// Redraw screen
|
// Redraw screen
|
||||||
|
UpdateSelectionInfo(); //mxd
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
|
@ -434,7 +434,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
|
|
||||||
private static bool LinedefBlocksSoundEnvironment(Linedef linedef)
|
private static bool LinedefBlocksSoundEnvironment(Linedef linedef)
|
||||||
{
|
{
|
||||||
if(General.Map.UDMF) return linedef.IsFlagSet("zoneboundary"); //mxd. Fancier this way :)
|
if(General.Map.UDMF) return linedef.IsFlagSet(SoundEnvironmentMode.ZoneBoundaryFlag); //mxd. Fancier this way :)
|
||||||
|
|
||||||
// In Hexen format the line must have action 121 (Line_SetIdentification) and bit 1 of
|
// In Hexen format the line must have action 121 (Line_SetIdentification) and bit 1 of
|
||||||
// the second argument set (see http://zdoom.org/wiki/Line_SetIdentification)
|
// the second argument set (see http://zdoom.org/wiki/Line_SetIdentification)
|
||||||
|
|
|
@ -62,6 +62,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public override object HighlightedObject { get { return highlighted; } }
|
public override object HighlightedObject { get { return highlighted; } }
|
||||||
|
internal const string ZoneBoundaryFlag = "zoneboundary"; //mxd
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -194,7 +195,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
General.Map.UndoRedo.CreateUndo("Toggle Sound Zone Boundary");
|
General.Map.UndoRedo.CreateUndo("Toggle Sound Zone Boundary");
|
||||||
|
|
||||||
// Toggle flag
|
// Toggle flag
|
||||||
highlightedline.SetFlag("zoneboundary", !highlightedline.IsFlagSet("zoneboundary"));
|
highlightedline.SetFlag(ZoneBoundaryFlag, !highlightedline.IsFlagSet(ZoneBoundaryFlag));
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
UpdateData();
|
UpdateData();
|
||||||
|
@ -385,7 +386,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
//mxd. Find the nearest linedef within default highlight range
|
//mxd. Find the nearest linedef within default highlight range
|
||||||
l = General.Map.Map.NearestLinedefRange(mousemappos, 20 / renderer.Scale);
|
l = General.Map.Map.NearestLinedefRange(mousemappos, 20 / renderer.Scale);
|
||||||
//mxd. We are not interested in single-sided lines, unless they have zoneboundary flag...
|
//mxd. We are not interested in single-sided lines, unless they have zoneboundary flag...
|
||||||
if(l != null && ((l.Front == null || l.Back == null) && (General.Map.UDMF && !l.IsFlagSet("zoneboundary"))))
|
if(l != null && ((l.Front == null || l.Back == null) && (General.Map.UDMF && !l.IsFlagSet(ZoneBoundaryFlag))))
|
||||||
{
|
{
|
||||||
l = null;
|
l = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
|
|
||||||
foreach (Sidedef sd in sector.Sidedefs)
|
foreach (Sidedef sd in sector.Sidedefs)
|
||||||
{
|
{
|
||||||
bool blocksound = sd.Line.IsFlagSet(General.Map.UDMF ? "blocksound" : "64");
|
bool blocksound = sd.Line.IsFlagSet(SoundPropagationMode.BlockSoundFlag);
|
||||||
if (blocksound) blockinglines.Add(sd.Line);
|
if (blocksound) blockinglines.Add(sd.Line);
|
||||||
|
|
||||||
// If the line is one sided, the sound can travel nowhere, so try the next one
|
// If the line is one sided, the sound can travel nowhere, so try the next one
|
||||||
|
|
|
@ -57,6 +57,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public override object HighlightedObject { get { return highlighted; } }
|
public override object HighlightedObject { get { return highlighted; } }
|
||||||
|
internal static string BlockSoundFlag { get { return (General.Map.UDMF ? "blocksound" : "64"); } } //mxd
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -123,7 +124,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
BuilderPlug.Me.BlockingLinedefs.Clear();
|
BuilderPlug.Me.BlockingLinedefs.Clear();
|
||||||
|
|
||||||
foreach (Linedef ld in General.Map.Map.Linedefs)
|
foreach (Linedef ld in General.Map.Map.Linedefs)
|
||||||
if (ld.IsFlagSet(General.Map.UDMF ? "blocksound" : "64"))
|
if (ld.IsFlagSet(BlockSoundFlag))
|
||||||
BuilderPlug.Me.BlockingLinedefs.Add(ld);
|
BuilderPlug.Me.BlockingLinedefs.Add(ld);
|
||||||
|
|
||||||
if (highlighted == null || highlighted.IsDisposed) return;
|
if (highlighted == null || highlighted.IsDisposed) return;
|
||||||
|
@ -336,8 +337,7 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
General.Map.UndoRedo.CreateUndo("Toggle Linedef Sound Blocking");
|
General.Map.UndoRedo.CreateUndo("Toggle Linedef Sound Blocking");
|
||||||
|
|
||||||
// Toggle flag
|
// Toggle flag
|
||||||
string flag = (General.Map.UDMF ? "blocksound" : "64");
|
highlightedline.SetFlag(BlockSoundFlag, !highlightedline.IsFlagSet(BlockSoundFlag));
|
||||||
highlightedline.SetFlag(flag, !highlightedline.IsFlagSet(flag));
|
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
ResetSoundPropagation();
|
ResetSoundPropagation();
|
||||||
|
@ -397,8 +397,8 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
|
|
||||||
//mxd. Find the nearest linedef within default highlight range
|
//mxd. Find the nearest linedef within default highlight range
|
||||||
l = General.Map.Map.NearestLinedefRange(mousemappos, 20 / renderer.Scale);
|
l = General.Map.Map.NearestLinedefRange(mousemappos, 20 / renderer.Scale);
|
||||||
//mxd. We are not interested in single-sided lines...
|
//mxd. We are not interested in single-sided lines (unless they have "blocksound" flag set)...
|
||||||
if(l != null && (l.Front == null || l.Back == null)) l = null;
|
if(l != null && (l.Front == null || l.Back == null) && !l.IsFlagSet(BlockSoundFlag)) l = null;
|
||||||
|
|
||||||
//mxd. Set as highlighted
|
//mxd. Set as highlighted
|
||||||
if(highlightedline != l)
|
if(highlightedline != l)
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
this.groupBox1.Size = new System.Drawing.Size(190, 351);
|
this.groupBox1.Size = new System.Drawing.Size(190, 351);
|
||||||
this.groupBox1.TabIndex = 0;
|
this.groupBox1.TabIndex = 0;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = " Sound Environments ";
|
this.groupBox1.Text = " Sound Environments: ";
|
||||||
//
|
//
|
||||||
// list
|
// list
|
||||||
//
|
//
|
||||||
|
@ -55,10 +55,12 @@
|
||||||
this.list.Size = new System.Drawing.Size(184, 329);
|
this.list.Size = new System.Drawing.Size(184, 329);
|
||||||
this.list.TabIndex = 0;
|
this.list.TabIndex = 0;
|
||||||
this.list.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.list_MouseDoubleClick);
|
this.list.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.list_MouseDoubleClick);
|
||||||
|
this.list.SelectedIndexChanged += new System.EventHandler(this.list_SelectedIndexChanged);
|
||||||
//
|
//
|
||||||
// accept
|
// accept
|
||||||
//
|
//
|
||||||
this.accept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.accept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.accept.Enabled = false;
|
||||||
this.accept.Location = new System.Drawing.Point(14, 394);
|
this.accept.Location = new System.Drawing.Point(14, 394);
|
||||||
this.accept.Name = "accept";
|
this.accept.Name = "accept";
|
||||||
this.accept.Size = new System.Drawing.Size(91, 23);
|
this.accept.Size = new System.Drawing.Size(91, 23);
|
||||||
|
|
|
@ -27,6 +27,8 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string previousenvironmentname;
|
||||||
|
|
||||||
public ReverbsPickerForm(Thing t)
|
public ReverbsPickerForm(Thing t)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
@ -48,6 +50,19 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Select previously selected item?
|
||||||
|
if(!string.IsNullOrEmpty(previousenvironmentname) && list.SelectedItem == null)
|
||||||
|
{
|
||||||
|
foreach(ReverbListItem item in list.Items)
|
||||||
|
{
|
||||||
|
if(item.ToString() == previousenvironmentname)
|
||||||
|
{
|
||||||
|
list.SelectedItem = item;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Dormant?
|
// Dormant?
|
||||||
cbactiveenv.Checked = !BuilderPlug.ThingDormant(t);
|
cbactiveenv.Checked = !BuilderPlug.ThingDormant(t);
|
||||||
list.Focus();
|
list.Focus();
|
||||||
|
@ -69,8 +84,14 @@ namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||||
|
|
||||||
private void accept_Click(object sender, EventArgs e)
|
private void accept_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if(list.SelectedItem != null) previousenvironmentname = list.SelectedItem.ToString();
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void list_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
accept.Enabled = (list.SelectedItem != null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue