mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-26 13:51:40 +00:00
Added action to change the index of linedefs, things, sectors, and vertices. Can be accessed through a shortcut (not bound by default) or the menu of the respective mode (#903)
This commit is contained in:
parent
00406336e8
commit
bc98a5391f
18 changed files with 877 additions and 151 deletions
|
@ -67,6 +67,10 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
AddThing,
|
AddThing,
|
||||||
RemThing,
|
RemThing,
|
||||||
PrpThing,
|
PrpThing,
|
||||||
|
IndexLinedef,
|
||||||
|
IndexThing,
|
||||||
|
IndexSector,
|
||||||
|
IndexVertex,
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -425,6 +429,10 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
case StreamCodes.AddThing: PlayAddThing(ds); break;
|
case StreamCodes.AddThing: PlayAddThing(ds); break;
|
||||||
case StreamCodes.RemThing: PlayRemThing(ds); break;
|
case StreamCodes.RemThing: PlayRemThing(ds); break;
|
||||||
case StreamCodes.PrpThing: PlayPrpThing(ds); break;
|
case StreamCodes.PrpThing: PlayPrpThing(ds); break;
|
||||||
|
case StreamCodes.IndexLinedef: PlayIndexLinedef(ds); break;
|
||||||
|
case StreamCodes.IndexThing: PlayIndexThing(ds); break;
|
||||||
|
case StreamCodes.IndexSector: PlayIndexSector(ds); break;
|
||||||
|
case StreamCodes.IndexVertex: PlayIndexVertex(ds); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sanity check
|
// Sanity check
|
||||||
|
@ -1326,6 +1334,82 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
t.Marked = true;
|
t.Marked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void RecIndexLinedef(int oldindex, int newindex)
|
||||||
|
{
|
||||||
|
if (!BeginRecordData(StreamCodes.IndexLinedef)) return;
|
||||||
|
ss.wInt(oldindex);
|
||||||
|
ss.wInt(newindex);
|
||||||
|
EndRecordData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void PlayIndexLinedef(DeserializerStream ds)
|
||||||
|
{
|
||||||
|
ds.rInt(out int oldindex);
|
||||||
|
ds.rInt(out int newindex);
|
||||||
|
|
||||||
|
// Record again because redo will not work otherwise (for map elements this regularly happens in BeforePropsChange
|
||||||
|
// oldindex and newindex are flipped here because we have to change them back
|
||||||
|
General.Map.UndoRedo.RecIndexLinedef(newindex, oldindex);
|
||||||
|
General.Map.Map.ChangeLindefIndex(newindex, oldindex);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void RecIndexThing(int oldindex, int newindex)
|
||||||
|
{
|
||||||
|
if (!BeginRecordData(StreamCodes.IndexThing)) return;
|
||||||
|
ss.wInt(oldindex);
|
||||||
|
ss.wInt(newindex);
|
||||||
|
EndRecordData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void PlayIndexThing(DeserializerStream ds)
|
||||||
|
{
|
||||||
|
ds.rInt(out int oldindex);
|
||||||
|
ds.rInt(out int newindex);
|
||||||
|
|
||||||
|
// Record again because redo will not work otherwise (for map elements this regularly happens in BeforePropsChange
|
||||||
|
// oldindex and newindex are flipped here because we have to change them back
|
||||||
|
General.Map.UndoRedo.RecIndexThing(newindex, oldindex);
|
||||||
|
General.Map.Map.ChangeThingIndex(newindex, oldindex);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void RecIndexSector(int oldindex, int newindex)
|
||||||
|
{
|
||||||
|
if (!BeginRecordData(StreamCodes.IndexSector)) return;
|
||||||
|
ss.wInt(oldindex);
|
||||||
|
ss.wInt(newindex);
|
||||||
|
EndRecordData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void PlayIndexSector(DeserializerStream ds)
|
||||||
|
{
|
||||||
|
ds.rInt(out int oldindex);
|
||||||
|
ds.rInt(out int newindex);
|
||||||
|
|
||||||
|
// Record again because redo will not work otherwise (for map elements this regularly happens in BeforePropsChange
|
||||||
|
// oldindex and newindex are flipped here because we have to change them back
|
||||||
|
General.Map.UndoRedo.RecIndexSector(newindex, oldindex);
|
||||||
|
General.Map.Map.ChangeSectorIndex(newindex, oldindex);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void RecIndexVertex(int oldindex, int newindex)
|
||||||
|
{
|
||||||
|
if (!BeginRecordData(StreamCodes.IndexVertex)) return;
|
||||||
|
ss.wInt(oldindex);
|
||||||
|
ss.wInt(newindex);
|
||||||
|
EndRecordData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void PlayIndexVertex(DeserializerStream ds)
|
||||||
|
{
|
||||||
|
ds.rInt(out int oldindex);
|
||||||
|
ds.rInt(out int newindex);
|
||||||
|
|
||||||
|
// Record again because redo will not work otherwise (for map elements this regularly happens in BeforePropsChange
|
||||||
|
// oldindex and newindex are flipped here because we have to change them back
|
||||||
|
General.Map.UndoRedo.RecIndexVertex(newindex, oldindex);
|
||||||
|
General.Map.Map.ChangeVertexIndex(newindex, oldindex);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1364,6 +1364,16 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
colorPresetIndex = -1;
|
colorPresetIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes the linedef's index to a new index.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newindex">The new index to set</param>
|
||||||
|
public void ChangeIndex(int newindex)
|
||||||
|
{
|
||||||
|
General.Map.UndoRedo.RecIndexLinedef(Index, newindex);
|
||||||
|
map?.ChangeLindefIndex(Index, newindex);
|
||||||
|
}
|
||||||
|
|
||||||
// String representation
|
// String representation
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -813,7 +813,43 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
{
|
{
|
||||||
RemoveItem(ref things, index, ref numthings);
|
RemoveItem(ref things, index, ref numthings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ChangeItemIndex<T>(ref T[] array, int oldindex, int newindex, int counter) where T : MapElement
|
||||||
|
{
|
||||||
|
if (oldindex == newindex || oldindex < 0 || newindex < 0 || oldindex >= array.Length || newindex >= array.Length)
|
||||||
|
return;
|
||||||
|
|
||||||
|
T item = array[oldindex];
|
||||||
|
|
||||||
|
if (oldindex > newindex) // Shift everything right
|
||||||
|
{
|
||||||
|
for (int i = oldindex; i > newindex; i--)
|
||||||
|
{
|
||||||
|
array[i] = array[i - 1];
|
||||||
|
array[i].Index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else // Shift everything left
|
||||||
|
{
|
||||||
|
for (int i = oldindex; i < newindex; i++)
|
||||||
|
{
|
||||||
|
array[i] = array[i + 1];
|
||||||
|
array[i].Index--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
array[newindex] = item;
|
||||||
|
array[newindex].Index = newindex;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void ChangeLindefIndex(int oldindex, int newindex) => ChangeItemIndex(ref linedefs, oldindex, newindex, numlinedefs);
|
||||||
|
|
||||||
|
internal void ChangeThingIndex(int oldindex, int newindex) => ChangeItemIndex(ref things, oldindex, newindex, numthings);
|
||||||
|
|
||||||
|
internal void ChangeSectorIndex(int oldindex, int newindex) => ChangeItemIndex(ref sectors, oldindex, newindex, numsectors);
|
||||||
|
|
||||||
|
internal void ChangeVertexIndex(int oldindex, int newindex) => ChangeItemIndex(ref vertices, oldindex, newindex, numvertices);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Serialization
|
#region ================== Serialization
|
||||||
|
|
|
@ -819,6 +819,16 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
return new Geometry.Plane(new Vector3D(0, 0, -1), s.CeilHeight);
|
return new Geometry.Plane(new Vector3D(0, 0, -1), s.CeilHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes the sector's index to a new index.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newindex">The new index to set</param>
|
||||||
|
public void ChangeIndex(int newindex)
|
||||||
|
{
|
||||||
|
General.Map.UndoRedo.RecIndexSector(Index, newindex);
|
||||||
|
map?.ChangeSectorIndex(Index, newindex);
|
||||||
|
}
|
||||||
|
|
||||||
// String representation
|
// String representation
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -740,6 +740,16 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
return Vector2D.Distance(p, pos);
|
return Vector2D.Distance(p, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes the thing's index to a new index.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newindex">The new index to set</param>
|
||||||
|
public void ChangeIndex(int newindex)
|
||||||
|
{
|
||||||
|
General.Map.UndoRedo.RecIndexThing(Index, newindex);
|
||||||
|
map?.ChangeThingIndex(Index, newindex);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -338,6 +338,16 @@ namespace CodeImp.DoomBuilder.Map
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes the thing's index to a new index.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newindex">The new index to set</param>
|
||||||
|
public void ChangeIndex(int newindex)
|
||||||
|
{
|
||||||
|
General.Map.UndoRedo.RecIndexVertex(Index, newindex);
|
||||||
|
map?.ChangeVertexIndex(Index, newindex);
|
||||||
|
}
|
||||||
|
|
||||||
// String representation
|
// String representation
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -165,6 +165,12 @@
|
||||||
<Compile Include="General\Association.cs" />
|
<Compile Include="General\Association.cs" />
|
||||||
<Compile Include="General\BuilderPlug.cs" />
|
<Compile Include="General\BuilderPlug.cs" />
|
||||||
<Compile Include="General\CopyStructures.cs" />
|
<Compile Include="General\CopyStructures.cs" />
|
||||||
|
<Compile Include="Interface\ChangeMapElementIndexForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Interface\ChangeMapElementIndexForm.Designer.cs">
|
||||||
|
<DependentUpon>ChangeMapElementIndexForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Interface\ErrorCheckForm.cs">
|
<Compile Include="Interface\ErrorCheckForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -223,6 +229,9 @@
|
||||||
<Compile Include="ClassicModes\VerticesMode.cs" />
|
<Compile Include="ClassicModes\VerticesMode.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Interface\ChangeMapElementIndexForm.resx">
|
||||||
|
<DependentUpon>ChangeMapElementIndexForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
|
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
|
||||||
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
|
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -163,6 +163,12 @@
|
||||||
<Compile Include="General\Association.cs" />
|
<Compile Include="General\Association.cs" />
|
||||||
<Compile Include="General\BuilderPlug.cs" />
|
<Compile Include="General\BuilderPlug.cs" />
|
||||||
<Compile Include="General\CopyStructures.cs" />
|
<Compile Include="General\CopyStructures.cs" />
|
||||||
|
<Compile Include="Interface\ChangeMapElementIndexForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Interface\ChangeMapElementIndexForm.Designer.cs">
|
||||||
|
<DependentUpon>ChangeMapElementIndexForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Interface\ErrorCheckForm.cs">
|
<Compile Include="Interface\ErrorCheckForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -221,6 +227,9 @@
|
||||||
<Compile Include="ClassicModes\VerticesMode.cs" />
|
<Compile Include="ClassicModes\VerticesMode.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Interface\ChangeMapElementIndexForm.resx">
|
||||||
|
<DependentUpon>ChangeMapElementIndexForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
|
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
|
||||||
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
|
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -2158,6 +2158,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.DisplayStatus(StatusType.Action, "Added 'lightfog' flag to " + addedcout + " sidedefs, removed it from " + removedcount + " sidedefs.");
|
General.Interface.DisplayStatus(StatusType.Action, "Added 'lightfog' flag to " + addedcout + " sidedefs, removed it from " + removedcount + " sidedefs.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[BeginAction("changemapelementindex")]
|
||||||
|
private void ChangeMapElementIndex()
|
||||||
|
{
|
||||||
|
// Make list of selected linedefs
|
||||||
|
List<Linedef> selected = General.Map.Map.GetSelectedLinedefs(true).ToList();
|
||||||
|
if ((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||||
|
if (selected.Count != 1)
|
||||||
|
{
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.WARNING, "Changing linedef index failed", "You need to select or highlight exactly 1 linedef.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangeMapElementIndexForm f = new ChangeMapElementIndexForm("linedef", selected[0].Index, General.Map.Map.Linedefs.Count - 1);
|
||||||
|
if (f.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
int newindex = f.GetNewIndex();
|
||||||
|
int oldindex = selected[0].Index;
|
||||||
|
General.Map.UndoRedo.CreateUndo("Change linedef index");
|
||||||
|
|
||||||
|
selected[0].ChangeIndex(newindex);
|
||||||
|
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.INFO, "Successfully change linedef index", $"Changed index of linedef {oldindex} to {newindex}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
|
@ -2838,6 +2839,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[BeginAction("changemapelementindex")]
|
||||||
|
private void ChangeMapElementIndex()
|
||||||
|
{
|
||||||
|
// Make list of selected linedefs
|
||||||
|
List<Sector> selected = General.Map.Map.GetSelectedSectors(true).ToList();
|
||||||
|
if ((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||||
|
if (selected.Count != 1)
|
||||||
|
{
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.WARNING, "Changing sector index failed", "You need to select or highlight exactly 1 sector.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangeMapElementIndexForm f = new ChangeMapElementIndexForm("sector", selected[0].Index, General.Map.Map.Sectors.Count - 1);
|
||||||
|
if (f.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
int newindex = f.GetNewIndex();
|
||||||
|
int oldindex = selected[0].Index;
|
||||||
|
General.Map.UndoRedo.CreateUndo("Change sector index");
|
||||||
|
|
||||||
|
selected[0].ChangeIndex(newindex);
|
||||||
|
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.INFO, "Successfully change sector index", $"Changed index of sector {oldindex} to {newindex}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1607,6 +1607,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[BeginAction("changemapelementindex")]
|
||||||
|
private void ChangeMapElementIndex()
|
||||||
|
{
|
||||||
|
// Make list of selected linedefs
|
||||||
|
List<Thing> selected = General.Map.Map.GetSelectedThings(true).ToList();
|
||||||
|
if ((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||||
|
if (selected.Count != 1)
|
||||||
|
{
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.WARNING, "Changing thing index failed", "You need to select or highlight exactly 1 thing.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangeMapElementIndexForm f = new ChangeMapElementIndexForm("thing", selected[0].Index, General.Map.Map.Things.Count - 1);
|
||||||
|
if (f.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
int newindex = f.GetNewIndex();
|
||||||
|
int oldindex = selected[0].Index;
|
||||||
|
General.Map.UndoRedo.CreateUndo("Change thing index");
|
||||||
|
|
||||||
|
selected[0].ChangeIndex(newindex);
|
||||||
|
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.INFO, "Successfully change thing index", $"Changed index of thing {oldindex} to {newindex}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1219,11 +1219,36 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[BeginAction("changemapelementindex")]
|
||||||
|
private void ChangeMapElementIndex()
|
||||||
|
{
|
||||||
|
// Make list of selected linedefs
|
||||||
|
List<Vertex> selected = General.Map.Map.GetSelectedVertices(true).ToList();
|
||||||
|
if ((selected.Count == 0) && (highlighted != null) && !highlighted.IsDisposed) selected.Add(highlighted);
|
||||||
|
if (selected.Count != 1)
|
||||||
|
{
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.WARNING, "Changing vertex index failed", "You need to select or highlight exactly 1 vertex.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangeMapElementIndexForm f = new ChangeMapElementIndexForm("vertex", selected[0].Index, General.Map.Map.Vertices.Count - 1);
|
||||||
|
if (f.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
int newindex = f.GetNewIndex();
|
||||||
|
int oldindex = selected[0].Index;
|
||||||
|
General.Map.UndoRedo.CreateUndo("Change vertex index");
|
||||||
|
|
||||||
|
selected[0].ChangeIndex(newindex);
|
||||||
|
|
||||||
|
General.ToastManager.ShowToast(ToastMessages.CHANGEMAPELEMENTINDEX, ToastType.INFO, "Successfully change vertex index", $"Changed index of vertex {oldindex} to {newindex}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Action assist (mxd)
|
#region ================== Action assist (mxd)
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
private static void MergeLines(ICollection<Vertex> selected, Linedef ld1, Linedef ld2, Vertex v)
|
private static void MergeLines(ICollection<Vertex> selected, Linedef ld1, Linedef ld2, Vertex v)
|
||||||
{
|
{
|
||||||
Vertex v1 = (ld1.Start == v) ? ld1.End : ld1.Start;
|
Vertex v1 = (ld1.Start == v) ? ld1.End : ld1.Start;
|
||||||
|
|
|
@ -45,6 +45,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
internal class ToastMessages
|
internal class ToastMessages
|
||||||
{
|
{
|
||||||
public static readonly string VISUALSLOPING = "visualsloping";
|
public static readonly string VISUALSLOPING = "visualsloping";
|
||||||
|
public static readonly string CHANGEMAPELEMENTINDEX = "changemapelementindex";
|
||||||
}
|
}
|
||||||
|
|
||||||
public class BuilderPlug : Plug
|
public class BuilderPlug : Plug
|
||||||
|
@ -257,6 +258,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
// Register toasts
|
// Register toasts
|
||||||
General.ToastManager.RegisterToast(ToastMessages.VISUALSLOPING, "Visual sloping", "Toasts related to visual sloping");
|
General.ToastManager.RegisterToast(ToastMessages.VISUALSLOPING, "Visual sloping", "Toasts related to visual sloping");
|
||||||
|
General.ToastManager.RegisterToast(ToastMessages.CHANGEMAPELEMENTINDEX, "Change map element index", "Toasts related to changing the index of map elements");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disposer
|
// Disposer
|
||||||
|
|
181
Source/Plugins/BuilderModes/Interface/ChangeMapElementIndexForm.Designer.cs
generated
Normal file
181
Source/Plugins/BuilderModes/Interface/ChangeMapElementIndexForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,181 @@
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
||||||
|
{
|
||||||
|
partial class ChangeMapElementIndexForm
|
||||||
|
{
|
||||||
|
/// <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 Windows Form 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()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.bntNewIndex = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
|
||||||
|
this.lbCurrentIndex = new System.Windows.Forms.Label();
|
||||||
|
this.lbMaximumIndex = new System.Windows.Forms.Label();
|
||||||
|
this.btnOk = new System.Windows.Forms.Button();
|
||||||
|
this.btnCancel = new System.Windows.Forms.Button();
|
||||||
|
this.pbWarning = new System.Windows.Forms.PictureBox();
|
||||||
|
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pbWarning)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(22, 22);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(72, 13);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Current index:";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(22, 55);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(82, 13);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Maximum index:";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(22, 88);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(60, 13);
|
||||||
|
this.label3.TabIndex = 2;
|
||||||
|
this.label3.Text = "New index:";
|
||||||
|
//
|
||||||
|
// bntNewIndex
|
||||||
|
//
|
||||||
|
this.bntNewIndex.AllowDecimal = false;
|
||||||
|
this.bntNewIndex.AllowExpressions = false;
|
||||||
|
this.bntNewIndex.AllowNegative = false;
|
||||||
|
this.bntNewIndex.AllowRelative = false;
|
||||||
|
this.bntNewIndex.ButtonStep = 1;
|
||||||
|
this.bntNewIndex.ButtonStepBig = 10F;
|
||||||
|
this.bntNewIndex.ButtonStepFloat = 1F;
|
||||||
|
this.bntNewIndex.ButtonStepSmall = 0.1F;
|
||||||
|
this.bntNewIndex.ButtonStepsUseModifierKeys = false;
|
||||||
|
this.bntNewIndex.ButtonStepsWrapAround = false;
|
||||||
|
this.bntNewIndex.Location = new System.Drawing.Point(111, 83);
|
||||||
|
this.bntNewIndex.Name = "bntNewIndex";
|
||||||
|
this.bntNewIndex.Size = new System.Drawing.Size(100, 24);
|
||||||
|
this.bntNewIndex.StepValues = null;
|
||||||
|
this.bntNewIndex.TabIndex = 3;
|
||||||
|
this.bntNewIndex.WhenTextChanged += new System.EventHandler(this.bntNewIndex_WhenTextChanged);
|
||||||
|
//
|
||||||
|
// lbCurrentIndex
|
||||||
|
//
|
||||||
|
this.lbCurrentIndex.AutoSize = true;
|
||||||
|
this.lbCurrentIndex.Location = new System.Drawing.Point(110, 22);
|
||||||
|
this.lbCurrentIndex.Name = "lbCurrentIndex";
|
||||||
|
this.lbCurrentIndex.Size = new System.Drawing.Size(25, 13);
|
||||||
|
this.lbCurrentIndex.TabIndex = 4;
|
||||||
|
this.lbCurrentIndex.Text = "123";
|
||||||
|
//
|
||||||
|
// lbMaximumIndex
|
||||||
|
//
|
||||||
|
this.lbMaximumIndex.AutoSize = true;
|
||||||
|
this.lbMaximumIndex.Location = new System.Drawing.Point(110, 55);
|
||||||
|
this.lbMaximumIndex.Name = "lbMaximumIndex";
|
||||||
|
this.lbMaximumIndex.Size = new System.Drawing.Size(37, 13);
|
||||||
|
this.lbMaximumIndex.TabIndex = 5;
|
||||||
|
this.lbMaximumIndex.Text = "65535";
|
||||||
|
//
|
||||||
|
// btnOk
|
||||||
|
//
|
||||||
|
this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
|
this.btnOk.Location = new System.Drawing.Point(55, 133);
|
||||||
|
this.btnOk.Name = "btnOk";
|
||||||
|
this.btnOk.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnOk.TabIndex = 6;
|
||||||
|
this.btnOk.Text = "OK";
|
||||||
|
this.btnOk.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// btnCancel
|
||||||
|
//
|
||||||
|
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.btnCancel.Location = new System.Drawing.Point(136, 133);
|
||||||
|
this.btnCancel.Name = "btnCancel";
|
||||||
|
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnCancel.TabIndex = 7;
|
||||||
|
this.btnCancel.Text = "Cancel";
|
||||||
|
this.btnCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// pbWarning
|
||||||
|
//
|
||||||
|
this.pbWarning.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Warning;
|
||||||
|
this.pbWarning.Location = new System.Drawing.Point(217, 87);
|
||||||
|
this.pbWarning.Name = "pbWarning";
|
||||||
|
this.pbWarning.Size = new System.Drawing.Size(16, 16);
|
||||||
|
this.pbWarning.TabIndex = 8;
|
||||||
|
this.pbWarning.TabStop = false;
|
||||||
|
this.toolTip.SetToolTip(this.pbWarning, "The new index is too high");
|
||||||
|
this.pbWarning.Visible = false;
|
||||||
|
//
|
||||||
|
// ChangeMapElementIndexForm
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.btnOk;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(264, 168);
|
||||||
|
this.Controls.Add(this.pbWarning);
|
||||||
|
this.Controls.Add(this.btnCancel);
|
||||||
|
this.Controls.Add(this.btnOk);
|
||||||
|
this.Controls.Add(this.lbMaximumIndex);
|
||||||
|
this.Controls.Add(this.lbCurrentIndex);
|
||||||
|
this.Controls.Add(this.bntNewIndex);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "ChangeMapElementIndexForm";
|
||||||
|
this.Text = "ChangeMapElementIndexForm";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pbWarning)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private Controls.ButtonsNumericTextbox bntNewIndex;
|
||||||
|
private System.Windows.Forms.Label lbCurrentIndex;
|
||||||
|
private System.Windows.Forms.Label lbMaximumIndex;
|
||||||
|
private System.Windows.Forms.Button btnOk;
|
||||||
|
private System.Windows.Forms.Button btnCancel;
|
||||||
|
private System.Windows.Forms.PictureBox pbWarning;
|
||||||
|
private System.Windows.Forms.ToolTip toolTip;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
#region ================== Copyright (c) 2023 Boris Iwanski
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
*
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
*
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
*
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||||
|
*
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program.If not, see<http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using CodeImp.DoomBuilder.Windows;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
||||||
|
{
|
||||||
|
public partial class ChangeMapElementIndexForm : DelayedForm
|
||||||
|
{
|
||||||
|
private int currentindex;
|
||||||
|
private int maxindex;
|
||||||
|
|
||||||
|
public ChangeMapElementIndexForm(string typetitle, int currentindex, int maxindex)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
Text = $"Change {typetitle} index";
|
||||||
|
|
||||||
|
this.currentindex = currentindex;
|
||||||
|
this.maxindex = maxindex;
|
||||||
|
|
||||||
|
lbCurrentIndex.Text = currentindex.ToString();
|
||||||
|
lbMaximumIndex.Text = maxindex.ToString();
|
||||||
|
bntNewIndex.Text = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetNewIndex()
|
||||||
|
{
|
||||||
|
return bntNewIndex.GetResult(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bntNewIndex_WhenTextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int targetindex = bntNewIndex.GetResult(0);
|
||||||
|
|
||||||
|
if(targetindex > maxindex)
|
||||||
|
{
|
||||||
|
toolTip.SetToolTip(pbWarning, "The new index is too high");
|
||||||
|
btnOk.Enabled = false;
|
||||||
|
pbWarning.Visible = true;
|
||||||
|
}
|
||||||
|
else if(targetindex == currentindex)
|
||||||
|
{
|
||||||
|
toolTip.SetToolTip(pbWarning, "The new and old indices are the same");
|
||||||
|
btnOk.Enabled = false;
|
||||||
|
pbWarning.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
btnOk.Enabled = true;
|
||||||
|
pbWarning.Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,126 @@
|
||||||
|
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
|
@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.splitlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.splitlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.changeLindefIndexToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.updatelightfogitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.updatelightfogitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.aligntexturesitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.aligntexturesitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.alignFloorToFrontItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.alignFloorToFrontItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -79,27 +80,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.globalstrip = new System.Windows.Forms.ToolStrip();
|
this.globalstrip = new System.Windows.Forms.ToolStrip();
|
||||||
this.manualstrip = new System.Windows.Forms.ToolStrip();
|
this.manualstrip = new System.Windows.Forms.ToolStrip();
|
||||||
this.buttoncopyproperties = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonpasteproperties = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonpastepropertiesoptions = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
|
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton();
|
this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton();
|
this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton();
|
||||||
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
|
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.buttonMakeDoor = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator();
|
this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.buttonbrightnessgradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonfloorgradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonceilinggradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonflipselectionh = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonflipselectionv = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttoncurvelinedefs = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox();
|
this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox();
|
||||||
this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox();
|
this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox();
|
||||||
this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator();
|
this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton();
|
this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton();
|
||||||
this.syncthingteditbutton = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonAlignThingsToWall = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
|
||||||
this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton();
|
this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonTextureOffset3DFloorLock = new System.Windows.Forms.ToolStripButton();
|
this.buttonTextureOffset3DFloorLock = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonlightradii = new System.Windows.Forms.ToolStripButton();
|
this.buttonlightradii = new System.Windows.Forms.ToolStripButton();
|
||||||
|
@ -116,6 +105,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemlightradii = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemlightradii = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemsoundradii = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemsoundradii = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.changeThingIndexToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.changeSectorIndexToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.buttoncopyproperties = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonpasteproperties = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonpastepropertiesoptions = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonMakeDoor = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonbrightnessgradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonfloorgradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonceilinggradient = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonflipselectionh = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonflipselectionv = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttoncurvelinedefs = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.syncthingteditbutton = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.buttonAlignThingsToWall = new CodeImp.DoomBuilder.Controls.ToolStripActionButton();
|
||||||
|
this.changeVertexIndexToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menustrip.SuspendLayout();
|
this.menustrip.SuspendLayout();
|
||||||
this.manualstrip.SuspendLayout();
|
this.manualstrip.SuspendLayout();
|
||||||
this.fileMenuStrip.SuspendLayout();
|
this.fileMenuStrip.SuspendLayout();
|
||||||
|
@ -150,6 +154,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.curvelinedefsitem,
|
this.curvelinedefsitem,
|
||||||
this.toolStripMenuItem3,
|
this.toolStripMenuItem3,
|
||||||
this.splitlinedefsitem,
|
this.splitlinedefsitem,
|
||||||
|
this.changeLindefIndexToolStripMenuItem,
|
||||||
this.updatelightfogitem,
|
this.updatelightfogitem,
|
||||||
this.aligntexturesitem,
|
this.aligntexturesitem,
|
||||||
this.toolStripSeparator5,
|
this.toolStripSeparator5,
|
||||||
|
@ -261,6 +266,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.splitlinedefsitem.Text = "S&plit Linedefs";
|
this.splitlinedefsitem.Text = "S&plit Linedefs";
|
||||||
this.splitlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.splitlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
|
// changeLindefIndexToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.changeLindefIndexToolStripMenuItem.Name = "changeLindefIndexToolStripMenuItem";
|
||||||
|
this.changeLindefIndexToolStripMenuItem.Size = new System.Drawing.Size(223, 22);
|
||||||
|
this.changeLindefIndexToolStripMenuItem.Tag = "changemapelementindex";
|
||||||
|
this.changeLindefIndexToolStripMenuItem.Text = "Change Lindef Index";
|
||||||
|
this.changeLindefIndexToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
// updatelightfogitem
|
// updatelightfogitem
|
||||||
//
|
//
|
||||||
this.updatelightfogitem.Name = "updatelightfogitem";
|
this.updatelightfogitem.Name = "updatelightfogitem";
|
||||||
|
@ -339,6 +352,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.alignsectorlinedefsitem,
|
this.alignsectorlinedefsitem,
|
||||||
this.toolStripSeparator8,
|
this.toolStripSeparator8,
|
||||||
this.makedooritem,
|
this.makedooritem,
|
||||||
|
this.changeSectorIndexToolStripMenuItem,
|
||||||
this.toolStripSeparator4,
|
this.toolStripSeparator4,
|
||||||
this.selectSimilarSectors});
|
this.selectSimilarSectors});
|
||||||
this.sectorsmenu.Name = "sectorsmenu";
|
this.sectorsmenu.Name = "sectorsmenu";
|
||||||
|
@ -449,6 +463,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
this.alignToWallItem,
|
this.alignToWallItem,
|
||||||
this.pointAtCursorItem,
|
this.pointAtCursorItem,
|
||||||
|
this.changeThingIndexToolStripMenuItem,
|
||||||
this.toolStripSeparator6,
|
this.toolStripSeparator6,
|
||||||
this.selectSimilarThingsItem});
|
this.selectSimilarThingsItem});
|
||||||
this.thingsmenu.Name = "thingsmenu";
|
this.thingsmenu.Name = "thingsmenu";
|
||||||
|
@ -515,6 +530,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
//
|
//
|
||||||
this.vertsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.vertsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.placethingsv,
|
this.placethingsv,
|
||||||
|
this.changeVertexIndexToolStripMenuItem,
|
||||||
this.toolStripSeparator7,
|
this.toolStripSeparator7,
|
||||||
this.selectSimilarVertsItem});
|
this.selectSimilarVertsItem});
|
||||||
this.vertsmenu.Name = "vertsmenu";
|
this.vertsmenu.Name = "vertsmenu";
|
||||||
|
@ -526,7 +542,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
//
|
//
|
||||||
this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
|
this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
|
||||||
this.placethingsv.Name = "placethingsv";
|
this.placethingsv.Name = "placethingsv";
|
||||||
this.placethingsv.Size = new System.Drawing.Size(153, 22);
|
this.placethingsv.Size = new System.Drawing.Size(182, 22);
|
||||||
this.placethingsv.Tag = "placethings";
|
this.placethingsv.Tag = "placethings";
|
||||||
this.placethingsv.Text = "&Place Things...";
|
this.placethingsv.Text = "&Place Things...";
|
||||||
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
@ -534,13 +550,13 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// toolStripSeparator7
|
// toolStripSeparator7
|
||||||
//
|
//
|
||||||
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||||
this.toolStripSeparator7.Size = new System.Drawing.Size(150, 6);
|
this.toolStripSeparator7.Size = new System.Drawing.Size(179, 6);
|
||||||
//
|
//
|
||||||
// selectSimilarVertsItem
|
// selectSimilarVertsItem
|
||||||
//
|
//
|
||||||
this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
||||||
this.selectSimilarVertsItem.Name = "selectSimilarVertsItem";
|
this.selectSimilarVertsItem.Name = "selectSimilarVertsItem";
|
||||||
this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22);
|
this.selectSimilarVertsItem.Size = new System.Drawing.Size(182, 22);
|
||||||
this.selectSimilarVertsItem.Tag = "selectsimilar";
|
this.selectSimilarVertsItem.Tag = "selectsimilar";
|
||||||
this.selectSimilarVertsItem.Text = "Select Similar...";
|
this.selectSimilarVertsItem.Text = "Select Similar...";
|
||||||
this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
@ -587,40 +603,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.manualstrip.TabIndex = 2;
|
this.manualstrip.TabIndex = 2;
|
||||||
this.manualstrip.Text = "toolStrip1";
|
this.manualstrip.Text = "toolStrip1";
|
||||||
//
|
//
|
||||||
// buttoncopyproperties
|
|
||||||
//
|
|
||||||
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttoncopyproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CopyProperties;
|
|
||||||
this.buttoncopyproperties.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttoncopyproperties.Name = "buttoncopyproperties";
|
|
||||||
this.buttoncopyproperties.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttoncopyproperties.Tag = "classiccopyproperties";
|
|
||||||
this.buttoncopyproperties.Text = "Copy Properties";
|
|
||||||
this.buttoncopyproperties.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonpasteproperties
|
|
||||||
//
|
|
||||||
this.buttonpasteproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonpasteproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PasteProperties;
|
|
||||||
this.buttonpasteproperties.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonpasteproperties.Name = "buttonpasteproperties";
|
|
||||||
this.buttonpasteproperties.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonpasteproperties.Tag = "classicpasteproperties";
|
|
||||||
this.buttonpasteproperties.Text = "Paste Properties";
|
|
||||||
this.buttonpasteproperties.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonpastepropertiesoptions
|
|
||||||
//
|
|
||||||
this.buttonpastepropertiesoptions.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonpastepropertiesoptions.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PastePropertiesOptions;
|
|
||||||
this.buttonpastepropertiesoptions.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonpastepropertiesoptions.Name = "buttonpastepropertiesoptions";
|
|
||||||
this.buttonpastepropertiesoptions.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonpastepropertiesoptions.Tag = "classicpastepropertieswithoptions";
|
|
||||||
this.buttonpastepropertiesoptions.Text = "Paste Properties Special...";
|
|
||||||
this.buttonpastepropertiesoptions.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
|
||||||
this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// seperatorcopypaste
|
// seperatorcopypaste
|
||||||
//
|
//
|
||||||
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
||||||
|
@ -655,89 +637,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.separatorsectors1.Name = "separatorsectors1";
|
this.separatorsectors1.Name = "separatorsectors1";
|
||||||
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
|
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
|
||||||
//
|
//
|
||||||
// buttonMakeDoor
|
|
||||||
//
|
|
||||||
this.buttonMakeDoor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonMakeDoor.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
|
|
||||||
this.buttonMakeDoor.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonMakeDoor.Name = "buttonMakeDoor";
|
|
||||||
this.buttonMakeDoor.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonMakeDoor.Tag = "makedoor";
|
|
||||||
this.buttonMakeDoor.Text = "Make Door From Selection";
|
|
||||||
this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// separatorsectors2
|
// separatorsectors2
|
||||||
//
|
//
|
||||||
this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
||||||
this.separatorsectors2.Name = "separatorsectors2";
|
this.separatorsectors2.Name = "separatorsectors2";
|
||||||
this.separatorsectors2.Size = new System.Drawing.Size(6, 25);
|
this.separatorsectors2.Size = new System.Drawing.Size(6, 25);
|
||||||
//
|
//
|
||||||
// buttonbrightnessgradient
|
|
||||||
//
|
|
||||||
this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonbrightnessgradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.BrightnessGradient;
|
|
||||||
this.buttonbrightnessgradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonbrightnessgradient.Name = "buttonbrightnessgradient";
|
|
||||||
this.buttonbrightnessgradient.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonbrightnessgradient.Tag = "gradientbrightness";
|
|
||||||
this.buttonbrightnessgradient.Text = "Make Brightness Gradient";
|
|
||||||
this.buttonbrightnessgradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonfloorgradient
|
|
||||||
//
|
|
||||||
this.buttonfloorgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonfloorgradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FloorsGradient;
|
|
||||||
this.buttonfloorgradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonfloorgradient.Name = "buttonfloorgradient";
|
|
||||||
this.buttonfloorgradient.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonfloorgradient.Tag = "gradientfloors";
|
|
||||||
this.buttonfloorgradient.Text = "Make Floor Heights Gradient";
|
|
||||||
this.buttonfloorgradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonceilinggradient
|
|
||||||
//
|
|
||||||
this.buttonceilinggradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonceilinggradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CeilsGradient;
|
|
||||||
this.buttonceilinggradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonceilinggradient.Name = "buttonceilinggradient";
|
|
||||||
this.buttonceilinggradient.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonceilinggradient.Tag = "gradientceilings";
|
|
||||||
this.buttonceilinggradient.Text = "Make Ceiling Heights Gradient";
|
|
||||||
this.buttonceilinggradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonflipselectionh
|
|
||||||
//
|
|
||||||
this.buttonflipselectionh.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonflipselectionh.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FlipSelectionH;
|
|
||||||
this.buttonflipselectionh.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonflipselectionh.Name = "buttonflipselectionh";
|
|
||||||
this.buttonflipselectionh.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonflipselectionh.Tag = "flipselectionh";
|
|
||||||
this.buttonflipselectionh.Text = "Flip Selection Horizontally";
|
|
||||||
this.buttonflipselectionh.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonflipselectionv
|
|
||||||
//
|
|
||||||
this.buttonflipselectionv.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonflipselectionv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FlipSelectionV;
|
|
||||||
this.buttonflipselectionv.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonflipselectionv.Name = "buttonflipselectionv";
|
|
||||||
this.buttonflipselectionv.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonflipselectionv.Tag = "flipselectionv";
|
|
||||||
this.buttonflipselectionv.Text = "Flip Selection Vertically";
|
|
||||||
this.buttonflipselectionv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttoncurvelinedefs
|
|
||||||
//
|
|
||||||
this.buttoncurvelinedefs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttoncurvelinedefs.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
|
|
||||||
this.buttoncurvelinedefs.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttoncurvelinedefs.Name = "buttoncurvelinedefs";
|
|
||||||
this.buttoncurvelinedefs.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttoncurvelinedefs.Tag = "curvelinesmode";
|
|
||||||
this.buttoncurvelinedefs.Text = "Curve Linedefs";
|
|
||||||
this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// gradientModeMenu
|
// gradientModeMenu
|
||||||
//
|
//
|
||||||
this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
@ -773,29 +678,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
"";
|
"";
|
||||||
this.buttonMarqueSelectTouching.Click += new System.EventHandler(this.buttonMarqueSelectTouching_Click);
|
this.buttonMarqueSelectTouching.Click += new System.EventHandler(this.buttonMarqueSelectTouching_Click);
|
||||||
//
|
//
|
||||||
// syncthingteditbutton
|
|
||||||
//
|
|
||||||
this.syncthingteditbutton.CheckOnClick = true;
|
|
||||||
this.syncthingteditbutton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.syncthingteditbutton.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
|
|
||||||
this.syncthingteditbutton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.syncthingteditbutton.Name = "syncthingteditbutton";
|
|
||||||
this.syncthingteditbutton.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.syncthingteditbutton.Tag = "syncedthingedit";
|
|
||||||
this.syncthingteditbutton.Text = "Synchronized Things Editing";
|
|
||||||
this.syncthingteditbutton.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonAlignThingsToWall
|
|
||||||
//
|
|
||||||
this.buttonAlignThingsToWall.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonAlignThingsToWall.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
|
|
||||||
this.buttonAlignThingsToWall.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonAlignThingsToWall.Name = "buttonAlignThingsToWall";
|
|
||||||
this.buttonAlignThingsToWall.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonAlignThingsToWall.Tag = "thingaligntowall";
|
|
||||||
this.buttonAlignThingsToWall.ToolTipText = "Align Things to Nearest Linedef";
|
|
||||||
this.buttonAlignThingsToWall.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonTextureOffsetLock
|
// buttonTextureOffsetLock
|
||||||
//
|
//
|
||||||
this.buttonTextureOffsetLock.CheckOnClick = true;
|
this.buttonTextureOffsetLock.CheckOnClick = true;
|
||||||
|
@ -949,6 +831,164 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.itemsoundradii.Text = "Show Ambient Sound Radii";
|
this.itemsoundradii.Text = "Show Ambient Sound Radii";
|
||||||
this.itemsoundradii.Click += new System.EventHandler(this.buttonsoundradii_Click);
|
this.itemsoundradii.Click += new System.EventHandler(this.buttonsoundradii_Click);
|
||||||
//
|
//
|
||||||
|
// changeThingIndexToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.changeThingIndexToolStripMenuItem.Name = "changeThingIndexToolStripMenuItem";
|
||||||
|
this.changeThingIndexToolStripMenuItem.Size = new System.Drawing.Size(244, 22);
|
||||||
|
this.changeThingIndexToolStripMenuItem.Tag = "changemapelementindex";
|
||||||
|
this.changeThingIndexToolStripMenuItem.Text = "Change Thing Index";
|
||||||
|
this.changeThingIndexToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// changeSectorIndexToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.changeSectorIndexToolStripMenuItem.Name = "changeSectorIndexToolStripMenuItem";
|
||||||
|
this.changeSectorIndexToolStripMenuItem.Size = new System.Drawing.Size(223, 22);
|
||||||
|
this.changeSectorIndexToolStripMenuItem.Tag = "changemapelementindex";
|
||||||
|
this.changeSectorIndexToolStripMenuItem.Text = "Change Sector Index";
|
||||||
|
this.changeSectorIndexToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttoncopyproperties
|
||||||
|
//
|
||||||
|
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttoncopyproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CopyProperties;
|
||||||
|
this.buttoncopyproperties.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttoncopyproperties.Name = "buttoncopyproperties";
|
||||||
|
this.buttoncopyproperties.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttoncopyproperties.Tag = "classiccopyproperties";
|
||||||
|
this.buttoncopyproperties.Text = "Copy Properties";
|
||||||
|
this.buttoncopyproperties.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonpasteproperties
|
||||||
|
//
|
||||||
|
this.buttonpasteproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonpasteproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PasteProperties;
|
||||||
|
this.buttonpasteproperties.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonpasteproperties.Name = "buttonpasteproperties";
|
||||||
|
this.buttonpasteproperties.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonpasteproperties.Tag = "classicpasteproperties";
|
||||||
|
this.buttonpasteproperties.Text = "Paste Properties";
|
||||||
|
this.buttonpasteproperties.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonpastepropertiesoptions
|
||||||
|
//
|
||||||
|
this.buttonpastepropertiesoptions.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonpastepropertiesoptions.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PastePropertiesOptions;
|
||||||
|
this.buttonpastepropertiesoptions.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonpastepropertiesoptions.Name = "buttonpastepropertiesoptions";
|
||||||
|
this.buttonpastepropertiesoptions.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonpastepropertiesoptions.Tag = "classicpastepropertieswithoptions";
|
||||||
|
this.buttonpastepropertiesoptions.Text = "Paste Properties Special...";
|
||||||
|
this.buttonpastepropertiesoptions.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
|
this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonMakeDoor
|
||||||
|
//
|
||||||
|
this.buttonMakeDoor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonMakeDoor.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
|
||||||
|
this.buttonMakeDoor.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonMakeDoor.Name = "buttonMakeDoor";
|
||||||
|
this.buttonMakeDoor.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonMakeDoor.Tag = "makedoor";
|
||||||
|
this.buttonMakeDoor.Text = "Make Door From Selection";
|
||||||
|
this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonbrightnessgradient
|
||||||
|
//
|
||||||
|
this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonbrightnessgradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.BrightnessGradient;
|
||||||
|
this.buttonbrightnessgradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonbrightnessgradient.Name = "buttonbrightnessgradient";
|
||||||
|
this.buttonbrightnessgradient.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonbrightnessgradient.Tag = "gradientbrightness";
|
||||||
|
this.buttonbrightnessgradient.Text = "Make Brightness Gradient";
|
||||||
|
this.buttonbrightnessgradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonfloorgradient
|
||||||
|
//
|
||||||
|
this.buttonfloorgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonfloorgradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FloorsGradient;
|
||||||
|
this.buttonfloorgradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonfloorgradient.Name = "buttonfloorgradient";
|
||||||
|
this.buttonfloorgradient.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonfloorgradient.Tag = "gradientfloors";
|
||||||
|
this.buttonfloorgradient.Text = "Make Floor Heights Gradient";
|
||||||
|
this.buttonfloorgradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonceilinggradient
|
||||||
|
//
|
||||||
|
this.buttonceilinggradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonceilinggradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CeilsGradient;
|
||||||
|
this.buttonceilinggradient.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonceilinggradient.Name = "buttonceilinggradient";
|
||||||
|
this.buttonceilinggradient.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonceilinggradient.Tag = "gradientceilings";
|
||||||
|
this.buttonceilinggradient.Text = "Make Ceiling Heights Gradient";
|
||||||
|
this.buttonceilinggradient.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonflipselectionh
|
||||||
|
//
|
||||||
|
this.buttonflipselectionh.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonflipselectionh.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FlipSelectionH;
|
||||||
|
this.buttonflipselectionh.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonflipselectionh.Name = "buttonflipselectionh";
|
||||||
|
this.buttonflipselectionh.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonflipselectionh.Tag = "flipselectionh";
|
||||||
|
this.buttonflipselectionh.Text = "Flip Selection Horizontally";
|
||||||
|
this.buttonflipselectionh.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonflipselectionv
|
||||||
|
//
|
||||||
|
this.buttonflipselectionv.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonflipselectionv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FlipSelectionV;
|
||||||
|
this.buttonflipselectionv.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonflipselectionv.Name = "buttonflipselectionv";
|
||||||
|
this.buttonflipselectionv.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonflipselectionv.Tag = "flipselectionv";
|
||||||
|
this.buttonflipselectionv.Text = "Flip Selection Vertically";
|
||||||
|
this.buttonflipselectionv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttoncurvelinedefs
|
||||||
|
//
|
||||||
|
this.buttoncurvelinedefs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttoncurvelinedefs.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
|
||||||
|
this.buttoncurvelinedefs.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttoncurvelinedefs.Name = "buttoncurvelinedefs";
|
||||||
|
this.buttoncurvelinedefs.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttoncurvelinedefs.Tag = "curvelinesmode";
|
||||||
|
this.buttoncurvelinedefs.Text = "Curve Linedefs";
|
||||||
|
this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// syncthingteditbutton
|
||||||
|
//
|
||||||
|
this.syncthingteditbutton.CheckOnClick = true;
|
||||||
|
this.syncthingteditbutton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.syncthingteditbutton.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
|
||||||
|
this.syncthingteditbutton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.syncthingteditbutton.Name = "syncthingteditbutton";
|
||||||
|
this.syncthingteditbutton.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.syncthingteditbutton.Tag = "syncedthingedit";
|
||||||
|
this.syncthingteditbutton.Text = "Synchronized Things Editing";
|
||||||
|
this.syncthingteditbutton.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// buttonAlignThingsToWall
|
||||||
|
//
|
||||||
|
this.buttonAlignThingsToWall.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.buttonAlignThingsToWall.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
|
||||||
|
this.buttonAlignThingsToWall.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.buttonAlignThingsToWall.Name = "buttonAlignThingsToWall";
|
||||||
|
this.buttonAlignThingsToWall.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.buttonAlignThingsToWall.Tag = "thingaligntowall";
|
||||||
|
this.buttonAlignThingsToWall.ToolTipText = "Align Things to Nearest Linedef";
|
||||||
|
this.buttonAlignThingsToWall.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// changeVertexIndexToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.changeVertexIndexToolStripMenuItem.Name = "changeVertexIndexToolStripMenuItem";
|
||||||
|
this.changeVertexIndexToolStripMenuItem.Size = new System.Drawing.Size(182, 22);
|
||||||
|
this.changeVertexIndexToolStripMenuItem.Tag = "changemapelementindex";
|
||||||
|
this.changeVertexIndexToolStripMenuItem.Text = "Change Vertex Index";
|
||||||
|
this.changeVertexIndexToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
// MenusForm
|
// MenusForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
@ -1066,5 +1106,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemsoundradii;
|
private System.Windows.Forms.ToolStripMenuItem itemsoundradii;
|
||||||
private System.Windows.Forms.ToolStripButton buttonTextureOffset3DFloorLock;
|
private System.Windows.Forms.ToolStripButton buttonTextureOffset3DFloorLock;
|
||||||
private System.Windows.Forms.ToolStripMenuItem selectionToImageToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem selectionToImageToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem changeLindefIndexToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem changeThingIndexToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem changeSectorIndexToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem changeVertexIndexToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1551,4 +1551,14 @@ applycamerarotationtothings
|
||||||
allowkeys = true;
|
allowkeys = true;
|
||||||
allowmouse = true;
|
allowmouse = true;
|
||||||
allowscroll = false;
|
allowscroll = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
changemapelementindex
|
||||||
|
{
|
||||||
|
title = "Change Map Element Index";
|
||||||
|
category = "linedefs";
|
||||||
|
description = "Changes the index of the highlighted or selected vertex, linedef, sector, or thing. Only works on a single map element. It will shift all indices between the old and new index.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = false;
|
||||||
}
|
}
|
Loading…
Reference in a new issue