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