diff --git a/Documents/todo.txt b/Documents/todo.txt
index 669f231d..f3e3bc22 100644
--- a/Documents/todo.txt
+++ b/Documents/todo.txt
@@ -3,19 +3,13 @@ quality over quantity. It is done when it's done.
The order and included items may also change any time.
=========================================================
-- Create menus for different modes
-
-- Create gradient ceiling/floor heights feature
-
-- Set up forum for bug reports and development.
-
-- Test map nomonsters option in same menu
-
=========================================================
BETA TESTING STARTS HERE
OFFICIAL MANUAL WRITING STARTS HERE
=========================================================
+- Create gradient ceiling/floor heights feature
+
- Make DECORATE support
- Add more find/replace types
diff --git a/Resources/Icons/Monster2.png b/Resources/Icons/Monster2.png
index 7697fbcf..7542cfed 100644
Binary files a/Resources/Icons/Monster2.png and b/Resources/Icons/Monster2.png differ
diff --git a/Resources/Icons/Monster3.png b/Resources/Icons/Monster3.png
new file mode 100644
index 00000000..7da17607
Binary files /dev/null and b/Resources/Icons/Monster3.png differ
diff --git a/Source/Builder.csproj b/Source/Builder.csproj
index 4b733c10..cd745d41 100644
--- a/Source/Builder.csproj
+++ b/Source/Builder.csproj
@@ -656,6 +656,8 @@
+
+
@@ -698,7 +700,6 @@
-
diff --git a/Source/BuilderModes/Interface/MenusForm.Designer.cs b/Source/BuilderModes/Interface/MenusForm.Designer.cs
index 1d9fbb54..b233d837 100644
--- a/Source/BuilderModes/Interface/MenusForm.Designer.cs
+++ b/Source/BuilderModes/Interface/MenusForm.Designer.cs
@@ -40,9 +40,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
- this.thingsmenu = new System.Windows.Forms.ToolStripMenuItem();
- this.rotatethingscwitem = new System.Windows.Forms.ToolStripMenuItem();
- this.rotatethingsccwitem = new System.Windows.Forms.ToolStripMenuItem();
this.globalstrip = new System.Windows.Forms.ToolStrip();
this.manualstrip = new System.Windows.Forms.ToolStrip();
this.buttonbrightnessgradient = new System.Windows.Forms.ToolStripButton();
@@ -54,8 +51,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
//
this.menustrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.linedefsmenu,
- this.sectorsmenu,
- this.thingsmenu});
+ this.sectorsmenu});
this.menustrip.Location = new System.Drawing.Point(0, 0);
this.menustrip.Name = "menustrip";
this.menustrip.Size = new System.Drawing.Size(423, 24);
@@ -79,7 +75,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// fliplinedefsitem
//
this.fliplinedefsitem.Name = "fliplinedefsitem";
- this.fliplinedefsitem.Size = new System.Drawing.Size(158, 22);
+ this.fliplinedefsitem.Size = new System.Drawing.Size(169, 22);
this.fliplinedefsitem.Tag = "fliplinedefs";
this.fliplinedefsitem.Text = "Flip Linedefs";
this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
@@ -87,7 +83,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// flipsidedefsitem
//
this.flipsidedefsitem.Name = "flipsidedefsitem";
- this.flipsidedefsitem.Size = new System.Drawing.Size(158, 22);
+ this.flipsidedefsitem.Size = new System.Drawing.Size(169, 22);
this.flipsidedefsitem.Tag = "flipsidedefs";
this.flipsidedefsitem.Text = "Flip Sidedefs";
this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
@@ -95,24 +91,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
// toolStripMenuItem1
//
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
- this.toolStripMenuItem1.Size = new System.Drawing.Size(155, 6);
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(166, 6);
//
// curvelinedefsitem
//
this.curvelinedefsitem.Name = "curvelinedefsitem";
- this.curvelinedefsitem.Size = new System.Drawing.Size(158, 22);
+ this.curvelinedefsitem.Size = new System.Drawing.Size(169, 22);
this.curvelinedefsitem.Tag = "curvelinesmode";
this.curvelinedefsitem.Text = "Curve Linedefs...";
+ this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- this.toolStripMenuItem3.Size = new System.Drawing.Size(155, 6);
+ this.toolStripMenuItem3.Size = new System.Drawing.Size(166, 6);
//
// splitlinedefsitem
//
this.splitlinedefsitem.Name = "splitlinedefsitem";
- this.splitlinedefsitem.Size = new System.Drawing.Size(158, 22);
+ this.splitlinedefsitem.Size = new System.Drawing.Size(169, 22);
this.splitlinedefsitem.Tag = "splitlinedefs";
this.splitlinedefsitem.Text = "Split Linedefs";
this.splitlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
@@ -131,7 +128,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// joinsectorsitem
//
this.joinsectorsitem.Name = "joinsectorsitem";
- this.joinsectorsitem.Size = new System.Drawing.Size(143, 22);
+ this.joinsectorsitem.Size = new System.Drawing.Size(154, 22);
this.joinsectorsitem.Tag = "joinsectors";
this.joinsectorsitem.Text = "Join Sectors";
this.joinsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
@@ -139,7 +136,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// mergesectorsitem
//
this.mergesectorsitem.Name = "mergesectorsitem";
- this.mergesectorsitem.Size = new System.Drawing.Size(143, 22);
+ this.mergesectorsitem.Size = new System.Drawing.Size(154, 22);
this.mergesectorsitem.Tag = "mergesectors";
this.mergesectorsitem.Text = "Merge Sectors";
this.mergesectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
@@ -147,29 +144,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
- this.toolStripMenuItem2.Size = new System.Drawing.Size(140, 6);
- //
- // thingsmenu
- //
- this.thingsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.rotatethingscwitem,
- this.rotatethingsccwitem});
- this.thingsmenu.Name = "thingsmenu";
- this.thingsmenu.Size = new System.Drawing.Size(50, 20);
- this.thingsmenu.Text = "Things";
- this.thingsmenu.Visible = false;
- //
- // rotatethingscwitem
- //
- this.rotatethingscwitem.Name = "rotatethingscwitem";
- this.rotatethingscwitem.Size = new System.Drawing.Size(193, 22);
- this.rotatethingscwitem.Text = "Rotate Clockwise";
- //
- // rotatethingsccwitem
- //
- this.rotatethingsccwitem.Name = "rotatethingsccwitem";
- this.rotatethingsccwitem.Size = new System.Drawing.Size(193, 22);
- this.rotatethingsccwitem.Text = "Rotate Counterclockwise";
+ this.toolStripMenuItem2.Size = new System.Drawing.Size(151, 6);
//
// globalstrip
//
@@ -231,7 +206,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.MenuStrip menustrip;
private System.Windows.Forms.ToolStripMenuItem linedefsmenu;
private System.Windows.Forms.ToolStripMenuItem sectorsmenu;
- private System.Windows.Forms.ToolStripMenuItem thingsmenu;
private System.Windows.Forms.ToolStripMenuItem fliplinedefsitem;
private System.Windows.Forms.ToolStripMenuItem flipsidedefsitem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
@@ -239,8 +213,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.ToolStripMenuItem joinsectorsitem;
private System.Windows.Forms.ToolStripMenuItem mergesectorsitem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
- private System.Windows.Forms.ToolStripMenuItem rotatethingscwitem;
- private System.Windows.Forms.ToolStripMenuItem rotatethingsccwitem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
private System.Windows.Forms.ToolStripMenuItem splitlinedefsitem;
private System.Windows.Forms.ToolStrip globalstrip;
diff --git a/Source/BuilderModes/Interface/MenusForm.cs b/Source/BuilderModes/Interface/MenusForm.cs
index 20d7b950..549d3665 100644
--- a/Source/BuilderModes/Interface/MenusForm.cs
+++ b/Source/BuilderModes/Interface/MenusForm.cs
@@ -52,7 +52,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
public ToolStripMenuItem LinedefsMenu { get { return linedefsmenu; } }
public ToolStripMenuItem SectorsMenu { get { return sectorsmenu; } }
- public ToolStripMenuItem ThingsMenu { get { return thingsmenu; } }
public ToolStripButton MakeGradientBrightness { get { return buttonbrightnessgradient; } }
#endregion
@@ -119,17 +118,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
public void ShowEditingModeMenu(EditMode mode)
{
Type sourcemode = typeof(object);
- if(mode != null) sourcemode = mode.GetType();
-
- // When these modes are active, then test against the base mode they will return to
- if((mode is DragGeometryMode) || (mode is DragThingsMode) ||
- (mode is DrawGeometryMode) || (mode is CurveLinedefsMode))
- sourcemode = General.Editing.PreviousStableMode;
+ if(mode != null)
+ {
+ sourcemode = mode.GetType();
+
+ // When in a volatile mode, check against the last stable mode
+ if(mode.Attributes.Volatile) sourcemode = General.Editing.PreviousStableMode;
+ }
// Final decision
if(sourcemode == typeof(LinedefsMode)) HideAllMenusExcept(linedefsmenu);
else if(sourcemode == typeof(SectorsMode)) HideAllMenusExcept(sectorsmenu);
- else if(sourcemode == typeof(ThingsMode)) HideAllMenusExcept(thingsmenu);
else HideAllMenus();
}
diff --git a/Source/Properties/Resources.Designer.cs b/Source/Properties/Resources.Designer.cs
index a8299b04..876a4c9c 100644
--- a/Source/Properties/Resources.Designer.cs
+++ b/Source/Properties/Resources.Designer.cs
@@ -179,6 +179,13 @@ namespace CodeImp.DoomBuilder.Properties {
}
}
+ internal static System.Drawing.Bitmap Monster3 {
+ get {
+ object obj = ResourceManager.GetObject("Monster3", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
internal static System.Drawing.Bitmap NewMap {
get {
object obj = ResourceManager.GetObject("NewMap", resourceCulture);
diff --git a/Source/Properties/Resources.resx b/Source/Properties/Resources.resx
index 7684137f..b7a6c394 100644
--- a/Source/Properties/Resources.resx
+++ b/Source/Properties/Resources.resx
@@ -166,9 +166,6 @@
..\Resources\treeview.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\Monster2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -277,4 +274,10 @@
..\Resources\Prefab2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Monster2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/Source/Resources/Monster2.png b/Source/Resources/Monster2.png
index 7697fbcf..7542cfed 100644
Binary files a/Source/Resources/Monster2.png and b/Source/Resources/Monster2.png differ
diff --git a/Source/Resources/Monster3.png b/Source/Resources/Monster3.png
new file mode 100644
index 00000000..7da17607
Binary files /dev/null and b/Source/Resources/Monster3.png differ
diff --git a/Source/Windows/MainForm.Designer.cs b/Source/Windows/MainForm.Designer.cs
index 3537db7e..acc84f3c 100644
--- a/Source/Windows/MainForm.Designer.cs
+++ b/Source/Windows/MainForm.Designer.cs
@@ -118,7 +118,6 @@ namespace CodeImp.DoomBuilder.Windows
this.buttonsnaptogrid = new System.Windows.Forms.ToolStripButton();
this.buttonautomerge = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
- this.buttontestmonsters = new System.Windows.Forms.ToolStripButton();
this.buttontest = new System.Windows.Forms.ToolStripSplitButton();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.statusbar = new System.Windows.Forms.StatusStrip();
@@ -749,7 +748,6 @@ namespace CodeImp.DoomBuilder.Windows
this.buttonsnaptogrid,
this.buttonautomerge,
this.toolStripSeparator5,
- this.buttontestmonsters,
this.buttontest,
this.toolStripSeparator6});
this.toolbar.Location = new System.Drawing.Point(0, 24);
@@ -1005,19 +1003,6 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
//
- // buttontestmonsters
- //
- this.buttontestmonsters.Checked = true;
- this.buttontestmonsters.CheckState = System.Windows.Forms.CheckState.Checked;
- this.buttontestmonsters.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.buttontestmonsters.Image = global::CodeImp.DoomBuilder.Properties.Resources.Monster2;
- this.buttontestmonsters.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
- this.buttontestmonsters.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.buttontestmonsters.Name = "buttontestmonsters";
- this.buttontestmonsters.Size = new System.Drawing.Size(23, 22);
- this.buttontestmonsters.Text = "Test with monsters";
- this.buttontestmonsters.Click += new System.EventHandler(this.buttontestmonsters_Click);
- //
// buttontest
//
this.buttontest.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@@ -1565,7 +1550,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.ToolStripMenuItem itempaste;
private System.Windows.Forms.ToolStripStatusLabel configlabel;
private System.Windows.Forms.ToolStripMenuItem menumode;
- private System.Windows.Forms.ToolStripButton buttontestmonsters;
private System.Windows.Forms.ToolStripButton buttonviewnormal;
private System.Windows.Forms.ToolStripButton buttonviewbrightness;
private System.Windows.Forms.ToolStripButton buttonviewfloors;
diff --git a/Source/Windows/MainForm.cs b/Source/Windows/MainForm.cs
index 6c7a3611..82bb8c9f 100644
--- a/Source/Windows/MainForm.cs
+++ b/Source/Windows/MainForm.cs
@@ -101,7 +101,7 @@ namespace CodeImp.DoomBuilder.Windows
private int mouseexclusivebreaklevel;
// Skills
- private ToolStripMenuItem[] skills;
+ private ToolStripItem[] skills;
// Last info on panels
private object lastinfoobject;
@@ -1179,13 +1179,34 @@ namespace CodeImp.DoomBuilder.Windows
if(General.Map != null)
{
// Make the new skills list
- skills = new ToolStripMenuItem[General.Map.Config.Skills.Count];
+ skills = new ToolStripItem[(General.Map.Config.Skills.Count * 2) + 1];
+ int addindex = 0;
+
+ // Positive skills are with monsters
for(int i = 0; i < General.Map.Config.Skills.Count; i++)
{
- skills[i] = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
- skills[i].Image = buttontest.Image;
- skills[i].Click += new EventHandler(TestSkill_Click);
- skills[i].Tag = General.Map.Config.Skills[i].Index;
+ ToolStripMenuItem menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
+ menuitem.Image = Properties.Resources.Monster2;
+ menuitem.Click += new EventHandler(TestSkill_Click);
+ menuitem.Tag = General.Map.Config.Skills[i].Index;
+ menuitem.Checked = (General.Settings.TestMonsters && (General.Map.ConfigSettings.TestSkill == General.Map.Config.Skills[i].Index));
+ skills[addindex++] = menuitem;
+ }
+
+ // Add seperator
+ skills[addindex] = new ToolStripSeparator();
+ skills[addindex].Padding = new Padding(0, 3, 0, 3);
+ addindex++;
+
+ // Negative skills are without monsters
+ for(int i = 0; i < General.Map.Config.Skills.Count; i++)
+ {
+ ToolStripMenuItem menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
+ menuitem.Image = Properties.Resources.Monster3;
+ menuitem.Click += new EventHandler(TestSkill_Click);
+ menuitem.Tag = -General.Map.Config.Skills[i].Index;
+ menuitem.Checked = (!General.Settings.TestMonsters && (General.Map.ConfigSettings.TestSkill == General.Map.Config.Skills[i].Index));
+ skills[addindex++] = menuitem;
}
// Add to list
@@ -1197,14 +1218,10 @@ namespace CodeImp.DoomBuilder.Windows
private void TestSkill_Click(object sender, EventArgs e)
{
int skill = (int)((sender as ToolStripMenuItem).Tag);
- General.Map.Launcher.TestAtSkill(skill);
- }
-
- // Toggle monster testing
- private void buttontestmonsters_Click(object sender, EventArgs e)
- {
- General.Settings.TestMonsters = !General.Settings.TestMonsters;
- buttontestmonsters.Checked = General.Settings.TestMonsters;
+ General.Settings.TestMonsters = (skill > 0);
+ General.Map.ConfigSettings.TestSkill = Math.Abs(skill);
+ General.Map.Launcher.TestAtSkill(Math.Abs(skill));
+ UpdateSkills();
}
// This loses focus
@@ -1343,10 +1360,6 @@ namespace CodeImp.DoomBuilder.Windows
{
// Enable/disable all edit mode items
foreach(ToolStripItem i in editmodeitems) i.Enabled = (General.Map != null);
-
- // Update buttons
- buttontestmonsters.Enabled = (General.Map != null);
- buttontestmonsters.Checked = General.Settings.TestMonsters;
}
// This checks one of the edit mode items (and unchecks all others)
diff --git a/Source/Windows/MainForm.resx b/Source/Windows/MainForm.resx
index 96b81a61..b14e9c8d 100644
--- a/Source/Windows/MainForm.resx
+++ b/Source/Windows/MainForm.resx
@@ -171,12 +171,12 @@
121, 17
-
- True
-
207, 17
+
+ True
+
True