removing a vertex that has exactly 2 linedefs attached now leaves one linedef connected to the other linedef's vertex. also removed some unneeded template code.

This commit is contained in:
codeimp 2009-01-04 09:54:15 +00:00
parent f3354d4c0a
commit f8574ace7a
8 changed files with 38 additions and 9 deletions

View file

@ -3,10 +3,22 @@ quality over quantity. It is done when it's done.
The order and included items may also change any time. The order and included items may also change any time.
========================================================= =========================================================
- Fix up nodebuilder configurations and all user to choose no nodebuilder.
- Create menus for different modes - Create menus for different modes
- Create gradient ceiling/floor heights feature - Create gradient ceiling/floor heights feature
- Fix flats alignment in Visual Mode (possibly also in Classic Modes)
- Fix flat texture coordinates in Classic Modes (some flats/textures on floors appear stretched or shrinked)
- Right-click in empty space in Linedefs mode does weird.
- Edit Selection mode does not take size of things into account.
- Set up forum for bug reports and development.
========================================================= =========================================================
BETA TESTING STARTS HERE BETA TESTING STARTS HERE
OFFICIAL MANUAL WRITING STARTS HERE OFFICIAL MANUAL WRITING STARTS HERE

View file

@ -461,8 +461,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
else else
General.Map.UndoRedo.CreateUndo("Delete vertex"); General.Map.UndoRedo.CreateUndo("Delete vertex");
// Dispose selected vertices // Go for all vertices that need to be removed
foreach(Vertex v in selected) v.Dispose(); foreach(Vertex v in selected)
{
// If the vertex only has 2 linedefs attached, then merge the linedefs
if(v.Linedefs.Count == 2)
{
Linedef ld1 = General.GetByIndex(v.Linedefs, 0);
Linedef ld2 = General.GetByIndex(v.Linedefs, 1);
Vertex v1 = (ld1.Start == v) ? ld1.End : ld1.Start;
Vertex v2 = (ld2.Start == v) ? ld2.End : ld2.Start;
if(ld1.Start == v) ld1.SetStartVertex(v2); else ld1.SetEndVertex(v2);
//if(ld2.Start == v) ld2.SetStartVertex(v1); else ld2.SetEndVertex(v1);
//ld1.Join(ld2);
ld2.Dispose();
}
// Trash vertex
v.Dispose();
}
// Update cache values // Update cache values
General.Map.IsChanged = true; General.Map.IsChanged = true;

View file

@ -361,7 +361,7 @@ namespace CodeImp.DoomBuilder.Config
if(General.Map.Map.Sectors.Count > 0) if(General.Map.Map.Sectors.Count > 0)
{ {
foundone = true; foundone = true;
defaultfloortexture = General.GetByIndex<Sector>(General.Map.Map.Sectors, 0).FloorTexture; defaultfloortexture = General.GetByIndex(General.Map.Map.Sectors, 0).FloorTexture;
} }
// Pick the first FLOOR from the list. // Pick the first FLOOR from the list.
@ -391,7 +391,7 @@ namespace CodeImp.DoomBuilder.Config
if(General.Map.Map.Sectors.Count > 0) if(General.Map.Map.Sectors.Count > 0)
{ {
foundone = true; foundone = true;
defaultceiltexture = General.GetByIndex<Sector>(General.Map.Map.Sectors, 0).CeilTexture; defaultceiltexture = General.GetByIndex(General.Map.Map.Sectors, 0).CeilTexture;
} }
// Pick the first FLOOR from the list. // Pick the first FLOOR from the list.

View file

@ -75,7 +75,7 @@ namespace CodeImp.DoomBuilder.Geometry
// See: http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/ // See: http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/
public static bool PointInPolygon(ICollection<Vector2D> polygon, Vector2D point) public static bool PointInPolygon(ICollection<Vector2D> polygon, Vector2D point)
{ {
Vector2D v1 = General.GetByIndex<Vector2D>(polygon, polygon.Count - 1); Vector2D v1 = General.GetByIndex(polygon, polygon.Count - 1);
uint c = 0; uint c = 0;
// Go for all vertices // Go for all vertices

View file

@ -72,7 +72,7 @@ namespace CodeImp.DoomBuilder.Windows
fieldslist.Setup(elementname); fieldslist.Setup(elementname);
// Setup from first element // Setup from first element
MapElement fe = General.GetByIndex<MapElement>(elements, 0); MapElement fe = General.GetByIndex(elements, 0);
fieldslist.SetValues(fe.Fields, true); fieldslist.SetValues(fe.Fields, true);
// Setup from all elements // Setup from all elements

View file

@ -125,7 +125,7 @@ namespace CodeImp.DoomBuilder.Windows
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
// Get first line // Get first line
fl = General.GetByIndex<Linedef>(lines, 0); fl = General.GetByIndex(lines, 0);
// Flags // Flags
foreach(CheckBox c in flags.Checkboxes) foreach(CheckBox c in flags.Checkboxes)

View file

@ -79,7 +79,7 @@ namespace CodeImp.DoomBuilder.Windows
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
// Get first sector // Get first sector
sc = General.GetByIndex<Sector>(sectors, 0); sc = General.GetByIndex(sectors, 0);
// Effects // Effects
effect.Value = sc.Effect; effect.Value = sc.Effect;

View file

@ -111,7 +111,7 @@ namespace CodeImp.DoomBuilder.Windows
// Set all options to the first thing properties // Set all options to the first thing properties
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
ft = General.GetByIndex<Thing>(things, 0); ft = General.GetByIndex(things, 0);
// Set type index // Set type index
typeid.Text = ft.Type.ToString(); typeid.Text = ft.Type.ToString();