mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-18 14:31:50 +00:00
UDMF: raised sector slope precision to 7 decimal places when saving a map.
Nodes Viewer mode: added more boilerplate to classic nodes reader. Thing Filters Form: program configuration was not marked as changed when saving thing filters. Cosmetic layout fixes in Thing/Linedef/Sector Info panels. Cosmetic text fixes in several Map Analysis results. Internal: debug console is now cleared when creating a new map. Updated ZDoom_DECORATE.cfg.
This commit is contained in:
parent
c325d7ec14
commit
8218a5d906
13 changed files with 78 additions and 38 deletions
|
@ -37,23 +37,23 @@ keywords
|
|||
A_FaceTarget = "A_FaceTarget[(float angle = 0[, float pitch = 0])]";
|
||||
A_FaceMaster = "A_FaceMaster[(float angle = 0[, float pitch = 0])]";
|
||||
A_FastChase = "A_FastChase";
|
||||
A_KillChildren = "A_KillChildren[(string damagetype[, int flags])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.";
|
||||
A_KillMaster = "A_KillMaster[(string damagetype[, int flags])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.";
|
||||
A_KillSiblings = "A_KillSiblings[(string damagetype[, int flags])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.";
|
||||
A_KillTarget = "A_KillTarget[(string damagetype[, int flags])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.";
|
||||
A_KillTracer = "A_KillTracer[(string damagetype[, int flags])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.";
|
||||
A_KillChildren = "A_KillChildren[(string damagetype = \"None\"[, int flags = 0[, string filter = \"None\[, string species = \"None\]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_KillMaster = "A_KillMaster[(string damagetype = \"None\"[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_KillSiblings = "A_KillSiblings[(string damagetype = \"None\"[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_KillTarget = "A_KillTarget[(string damagetype = \"None\"[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_KillTracer = "A_KillTracer[(string damagetype = \"None\"[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_Look = "A_Look";
|
||||
A_Look2 = "A_Look2";
|
||||
A_LookEx = "A_LookEx(int flags, fixed minseedist, fixed maxseedist, fixed maxheardist, fixed fov, state seestate)";
|
||||
A_RaiseChildren = "A_RaiseChildren[(bool copyaffiliation)]";
|
||||
A_RaiseMaster = "A_RaiseMaster[(bool copyaffiliation)]";
|
||||
A_RaiseSiblings = "A_RaiseSiblings[(bool copyaffiliation)]";
|
||||
A_RemoveChildren = "A_RemoveChildren[(bool = false[, int flags = 0])]\nflags: RMVF flags.";
|
||||
A_RemoveMaster = "A_RemoveMaster[(int flags = 0)]\nflags: RMVF flags.";
|
||||
A_RemoveSiblings = "A_RemoveSiblings[(bool all = false[, int flags = 0])]\nflags: RMVF flags.";
|
||||
A_RemoveTarget = "A_RemoveTarget[(int flags)]\nflags: RMVF flags.";
|
||||
A_RemoveTracer = "A_RemoveTracer[(int flags)]\nflags: RMVF flags.";
|
||||
A_Remove = "A_Remove(int pointer, int flags)\nflags: RMVF flags.";
|
||||
A_RaiseChildren = "A_RaiseChildren[(bool copyaffiliation = false)]";
|
||||
A_RaiseMaster = "A_RaiseMaster[(bool copyaffiliation = false)]";
|
||||
A_RaiseSiblings = "A_RaiseSiblings[(bool copyaffiliation = false)]";
|
||||
A_RemoveChildren = "A_RemoveChildren[(bool all = false[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_RemoveMaster = "A_RemoveMaster[(int flags = 0[, string filter = \"None\"[, string species = \"None\"]])]\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_RemoveSiblings = "A_RemoveSiblings[(bool all = false[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])]\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_RemoveTarget = "A_RemoveTarget[(int flags = 0[, string filter = \"None\"[, string species = \"None\"]])]\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_RemoveTracer = "A_RemoveTracer[(int flags = 0[, string filter = \"None\"[, string species = \"None\"]])]\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_Remove = "A_Remove(int pointer[, int flags = 0[, string filter = \"None\"[, string species = \"None\"]]])\nflags: RMVF flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
|
||||
A_SentinelBob = "A_SentinelBob";
|
||||
A_SetTeleFog = "A_SetTeleFog(string telefogsourceclass, string telefogdestclass)";
|
||||
A_Srcr2Decide = "A_Srcr2Decide";
|
||||
|
@ -825,6 +825,9 @@ constants
|
|||
KILS_FOILINVUL;
|
||||
KILS_KILLMISSILES;
|
||||
KILS_NOMONSTERS;
|
||||
KILS_EXFILTER;
|
||||
KILS_EXSPECIES;
|
||||
KILS_EITHER;
|
||||
LOF_DONTCHASEGOAL;
|
||||
LOF_FULLVOLSEESOUND;
|
||||
LOF_NOJUMP;
|
||||
|
@ -855,6 +858,9 @@ constants
|
|||
RMVF_MISC;
|
||||
RMVF_MISSILES;
|
||||
RMVF_NOMONSTERS;
|
||||
RMVF_EXFILTER;
|
||||
RMVF_EXSPECIES;
|
||||
RMVF_EITHER;
|
||||
RSF_FOG;
|
||||
RSF_KEEPTARGET;
|
||||
RSF_TELEFRAG;
|
||||
|
|
|
@ -1017,7 +1017,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
this.flags.Name = "flags";
|
||||
this.flags.Scrollable = false;
|
||||
this.flags.ShowGroups = false;
|
||||
this.flags.Size = new System.Drawing.Size(443, 100);
|
||||
this.flags.Size = new System.Drawing.Size(443, 73);
|
||||
this.flags.TabIndex = 0;
|
||||
this.flags.UseCompatibleStateImageBehavior = false;
|
||||
this.flags.View = System.Windows.Forms.View.List;
|
||||
|
|
2
Source/Core/Controls/SectorInfoPanel.Designer.cs
generated
2
Source/Core/Controls/SectorInfoPanel.Designer.cs
generated
|
@ -533,7 +533,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
this.flags.Name = "flags";
|
||||
this.flags.Scrollable = false;
|
||||
this.flags.ShowGroups = false;
|
||||
this.flags.Size = new System.Drawing.Size(443, 100);
|
||||
this.flags.Size = new System.Drawing.Size(443, 73);
|
||||
this.flags.TabIndex = 0;
|
||||
this.flags.UseCompatibleStateImageBehavior = false;
|
||||
this.flags.View = System.Windows.Forms.View.List;
|
||||
|
|
2
Source/Core/Controls/ThingInfoPanel.Designer.cs
generated
2
Source/Core/Controls/ThingInfoPanel.Designer.cs
generated
|
@ -343,7 +343,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
this.flags.Name = "flags";
|
||||
this.flags.Scrollable = false;
|
||||
this.flags.ShowGroups = false;
|
||||
this.flags.Size = new System.Drawing.Size(556, 100);
|
||||
this.flags.Size = new System.Drawing.Size(556, 73);
|
||||
this.flags.TabIndex = 0;
|
||||
this.flags.UseCompatibleStateImageBehavior = false;
|
||||
this.flags.View = System.Windows.Forms.View.List;
|
||||
|
|
|
@ -1123,6 +1123,11 @@ namespace CodeImp.DoomBuilder
|
|||
|
||||
// Clear errors
|
||||
errorlogger.Clear();
|
||||
|
||||
//mxd. Clear Console
|
||||
#if DEBUG
|
||||
DebugConsole.Clear();
|
||||
#endif
|
||||
|
||||
// Show splash logo on display
|
||||
mainwindow.ShowSplashDisplay();
|
||||
|
|
|
@ -273,20 +273,20 @@ namespace CodeImp.DoomBuilder.IO
|
|||
//mxd. Slopes
|
||||
if (s.FloorSlope.GetLengthSq() > 0)
|
||||
{
|
||||
coll.Add("floorplane_a", Math.Round(s.FloorSlope.x, 3));
|
||||
coll.Add("floorplane_b", Math.Round(s.FloorSlope.y, 3));
|
||||
coll.Add("floorplane_c", Math.Round(s.FloorSlope.z, 3));
|
||||
coll.Add("floorplane_d",
|
||||
(float.IsNaN(s.FloorSlopeOffset) ? 0f : Math.Round(s.FloorSlopeOffset, 3)));
|
||||
coll.Add("floorplane_a", Math.Round(s.FloorSlope.x, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("floorplane_b", Math.Round(s.FloorSlope.y, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("floorplane_c", Math.Round(s.FloorSlope.z, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("floorplane_d",
|
||||
(float.IsNaN(s.FloorSlopeOffset) ? 0f : Math.Round(s.FloorSlopeOffset, Sector.SLOPE_DECIMALS)));
|
||||
}
|
||||
|
||||
if (s.CeilSlope.GetLengthSq() > 0)
|
||||
{
|
||||
coll.Add("ceilingplane_a", Math.Round(s.CeilSlope.x, 3));
|
||||
coll.Add("ceilingplane_b", Math.Round(s.CeilSlope.y, 3));
|
||||
coll.Add("ceilingplane_c", Math.Round(s.CeilSlope.z, 3));
|
||||
coll.Add("ceilingplane_d",
|
||||
(float.IsNaN(s.CeilSlopeOffset) ? 0f : Math.Round(s.CeilSlopeOffset, 3)));
|
||||
coll.Add("ceilingplane_a", Math.Round(s.CeilSlope.x, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("ceilingplane_b", Math.Round(s.CeilSlope.y, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("ceilingplane_c", Math.Round(s.CeilSlope.z, Sector.SLOPE_DECIMALS));
|
||||
coll.Add("ceilingplane_d",
|
||||
(float.IsNaN(s.CeilSlopeOffset) ? 0f : Math.Round(s.CeilSlopeOffset, Sector.SLOPE_DECIMALS)));
|
||||
}
|
||||
|
||||
//mxd. Flags
|
||||
|
|
|
@ -33,6 +33,8 @@ namespace CodeImp.DoomBuilder.Map
|
|||
{
|
||||
#region ================== Constants
|
||||
|
||||
internal const int SLOPE_DECIMALS = 7;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Variables
|
||||
|
|
|
@ -123,6 +123,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// Update stuff
|
||||
General.Map.ChangeThingFilter(new NullThingsFilter());
|
||||
General.MainWindow.UpdateThingsFilters();
|
||||
General.Map.ConfigSettings.Changed = true;
|
||||
|
||||
// Close
|
||||
this.DialogResult = DialogResult.OK;
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
public override int Buttons { get { return 2; } }
|
||||
public override string Button1Text { get { return "Add Default Flat"; } }
|
||||
public override string Button2Text { get { return "Browse Flat"; } } //mxd
|
||||
public override string Button2Text { get { return "Browse Flat..."; } } //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
public override int Buttons { get { return 2; } }
|
||||
public override string Button1Text { get { return "Add Default Texture"; } }
|
||||
public override string Button2Text { get { return "Browse Texture"; } } //mxd
|
||||
public override string Button2Text { get { return "Browse Texture..."; } } //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
public override int Buttons { get { return 2; } }
|
||||
public override string Button1Text { get { return "Add Default Flat"; } }
|
||||
public override string Button2Text { get { return "Browse Flat"; } } //mxd
|
||||
public override string Button2Text { get { return "Browse Flat..."; } } //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public override int Buttons { get { return 3; } }
|
||||
public override string Button1Text { get { return "Remove Texture"; } }
|
||||
public override string Button2Text { get { return "Add Default Texture"; } }
|
||||
public override string Button3Text { get { return "Browse Texture"; } } //mxd
|
||||
public override string Button3Text { get { return "Browse Texture..."; } } //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -108,15 +108,11 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
|
|||
MemoryStream nodesstream = General.Map.GetLumpData("NODES");
|
||||
int numnodes = (int)nodesstream.Length / 28;
|
||||
|
||||
//mxd. More boilerplate
|
||||
if(numnodes < 1)
|
||||
//mxd. Boilerplate!
|
||||
if(numnodes < 1)
|
||||
{
|
||||
// Close readers
|
||||
nodesstream.Close();
|
||||
nodesstream.Dispose();
|
||||
|
||||
// Cancel mode
|
||||
MessageBox.Show("The map has only one subsector. Please add more sectors, then try running this mode again.", "Why are you doing this, Stanley?..", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
MessageBox.Show("The map has only one subsector. Please add more sectors, then try running this mode again.", "THY NODETH ARETH BROKH!", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
General.Editing.CancelMode();
|
||||
return false;
|
||||
}
|
||||
|
@ -158,6 +154,16 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
|
|||
MemoryStream segsstream = General.Map.GetLumpData("SEGS");
|
||||
BinaryReader segsreader = new BinaryReader(segsstream);
|
||||
int numsegs = (int)segsstream.Length / 12;
|
||||
|
||||
//mxd. Boilerplate!
|
||||
if(numsegs < 1)
|
||||
{
|
||||
// Cancel mode
|
||||
MessageBox.Show("The map has empty SEGS lump. Please rebuild the nodes, then try running this mode again.", "THY SEGS HATH SINNETH!", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
General.Editing.CancelMode();
|
||||
return false;
|
||||
}
|
||||
|
||||
segs = new Seg[numsegs];
|
||||
for(int i = 0; i < segs.Length; i++)
|
||||
{
|
||||
|
@ -176,6 +182,16 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
|
|||
MemoryStream vertsstream = General.Map.GetLumpData("VERTEXES");
|
||||
BinaryReader vertsreader = new BinaryReader(vertsstream);
|
||||
int numverts = (int)vertsstream.Length / 4;
|
||||
|
||||
//mxd. Boilerplate!
|
||||
if(numverts < 1)
|
||||
{
|
||||
// Cancel mode
|
||||
MessageBox.Show("The map has empty VERTEXES lump. Please rebuild the nodes, then try running this mode again.", "THY VERTEXES ARETH FOUL!", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
General.Editing.CancelMode();
|
||||
return false;
|
||||
}
|
||||
|
||||
verts = new Vector2D[numverts];
|
||||
for(int i = 0; i < verts.Length; i++)
|
||||
{
|
||||
|
@ -190,6 +206,16 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
|
|||
MemoryStream ssecstream = General.Map.GetLumpData("SSECTORS");
|
||||
BinaryReader ssecreader = new BinaryReader(ssecstream);
|
||||
int numssec = (int)ssecstream.Length / 4;
|
||||
|
||||
//mxd. Boilerplate!
|
||||
if(numssec < 1)
|
||||
{
|
||||
// Cancel mode
|
||||
MessageBox.Show("The map has empty SSECTORS lump. Please rebuild the nodes, then try running this mode again.", "THY SSECTORS ARETH HERETYSH!", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
General.Editing.CancelMode();
|
||||
return false;
|
||||
}
|
||||
|
||||
ssectors = new Subsector[numssec];
|
||||
for(int i = 0; i < ssectors.Length; i++)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue