Add actions to toggle NiGHTS, zoom tube and polyobject rendering

This commit is contained in:
spherallic 2023-06-03 12:03:12 +02:00
parent 4ef3ba204b
commit 79f66f1b9b
4 changed files with 99 additions and 10 deletions

View file

@ -153,6 +153,11 @@ namespace CodeImp.DoomBuilder.Config
private bool flatShadeVertices;
private bool alwaysShowVertices;
// SRB2
private bool srb2rendernights;
private bool srb2renderzoomtubes;
private bool srb2renderpolyobjects;
// These are not stored in the configuration, only used at runtime
private int defaultbrightness;
private int defaultfloorheight;
@ -287,6 +292,11 @@ namespace CodeImp.DoomBuilder.Config
public bool AlwaysShowVertices { get { return alwaysShowVertices; } internal set { alwaysShowVertices = value; } }
//SRB2
public bool SRB2RenderNiGHTS { get { return srb2rendernights; } internal set { srb2rendernights = value; } }
public bool SRB2RenderZoomTubes { get { return srb2renderzoomtubes; } internal set { srb2renderzoomtubes = value; } }
public bool SRB2RenderPolyobjects { get { return srb2renderpolyobjects; } internal set { srb2renderpolyobjects = value; } }
//mxd. Left here for compatibility reasons...
public string DefaultTexture { get { return General.Map != null ? General.Map.Options.DefaultWallTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultWallTexture = value; } }
public string DefaultFloorTexture { get { return General.Map != null ? General.Map.Options.DefaultFloorTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultFloorTexture = value; } }
@ -428,6 +438,11 @@ namespace CodeImp.DoomBuilder.Config
alwaysShowVertices = cfg.ReadSetting("alwaysshowvertices", true);
flatShadeVertices = cfg.ReadSetting("flatshadevertices", false);
// SRB2
srb2rendernights = cfg.ReadSetting("srb2rendernights", true);
srb2renderpolyobjects = cfg.ReadSetting("srb2renderpolyobjects", true);
srb2renderzoomtubes = cfg.ReadSetting("srb2renderzoomtubes", true);
//mxd. Sector defaults
defaultceilheight = cfg.ReadSetting("defaultceilheight", 128);
defaultfloorheight = cfg.ReadSetting("defaultfloorheight", 0);
@ -573,6 +588,11 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("alwaysshowvertices", alwaysShowVertices);
cfg.WriteSetting("flatshadevertices", flatShadeVertices);
//SRB2
cfg.WriteSetting("srb2rendernights", srb2rendernights);
cfg.WriteSetting("srb2renderzoomtubes", srb2renderzoomtubes);
cfg.WriteSetting("srb2renderpolyobjects", srb2renderpolyobjects);
// Toasts
General.ToastManager.WriteSettings(cfg);

View file

@ -1615,7 +1615,7 @@ namespace CodeImp.DoomBuilder.Rendering
public void RenderSRB2Extras()
{
//if (!(General.Settings.RenderNiGHTSPath || General.Settings.RenderZoomtubes || General.Settings.RenderPolyPreview)) return;
if (!(General.Settings.SRB2RenderNiGHTS || General.Settings.SRB2RenderZoomTubes || General.Settings.SRB2RenderPolyobjects)) return;
axes = new List<Thing>();
axistransferlines = new List<Thing>();
@ -1627,15 +1627,15 @@ namespace CodeImp.DoomBuilder.Rendering
// Collect relevant things
foreach (Thing t in General.Map.Map.Things)
{
if (t.Type == 1700) // General.Settings.RenderNiGHTSPath && t.Type == General.Map.FormatInterface.AxisType
if (General.Settings.SRB2RenderNiGHTS && t.Type == 1700)
axes.Add(t);
else if (t.Type == 1702) // General.Settings.RenderNiGHTSPath && t.Type == General.Map.FormatInterface.AxisTransferLineType
else if (General.Settings.SRB2RenderNiGHTS && t.Type == 1702)
axistransferlines.Add(t);
else if (t.Type == 753) // General.Settings.RenderZoomtubes && t.Type == General.Map.FormatInterface.WaypointType
else if (General.Settings.SRB2RenderZoomTubes && t.Type == 753)
waypoints.Add(t);
else if (t.Type == 760) // General.Settings.RenderPolyPreview
else if (General.Settings.SRB2RenderPolyobjects && t.Type == 760)
polyanchors.Add(t);
else if (t.Type == 761 || t.Type == 762) // General.Settings.RenderPolyPreview
else if (General.Settings.SRB2RenderPolyobjects && (t.Type == 761 || t.Type == 762))
polyspawns.Add(t);
}
@ -1650,7 +1650,7 @@ namespace CodeImp.DoomBuilder.Rendering
axistransferlines.Sort((x, y) => (x.Args[1] | x.Args[0]).CompareTo(y.Args[1] | y.Args[0]));
// Collect relevant lines
//if (General.Settings.RenderPolyPreview)
if (General.Settings.SRB2RenderPolyobjects)
{
foreach (Linedef l in General.Map.Map.Linedefs)
{
@ -1662,7 +1662,7 @@ namespace CodeImp.DoomBuilder.Rendering
}
//Render (zoom tube) waypoint sequences.
//if (General.Settings.RenderZoomtubes)
if (General.Settings.SRB2RenderZoomTubes)
{
int i = 0;
int size = waypoints.Count;
@ -1714,7 +1714,7 @@ namespace CodeImp.DoomBuilder.Rendering
}
//Render axis transfer lines.
//if (General.Settings.RenderNiGHTSPath)
if (General.Settings.SRB2RenderNiGHTS)
{
int i = 0;
int size = axistransferlines.Count;
@ -1744,7 +1744,7 @@ namespace CodeImp.DoomBuilder.Rendering
}
}
//if (General.Settings.RenderPolyPreview)
if (General.Settings.SRB2RenderPolyobjects)
{
int i = 0, j = 0, k = 0;
Sector s = null;

View file

@ -1365,6 +1365,36 @@ gztoggleenhancedrendering
registertoast = true;
}
srb2togglenights
{
title = "Toggle NiGHTS axis rendering";
category = "view";
description = "When enabled, shows NiGHTS axis circles and transfer lines.";
allowkeys = true;
allowmouse = true;
allowscroll = false;
}
srb2togglezoomtubes
{
title = "Toggle zoom tube waypoint rendering";
category = "view";
description = "When enabled, shows zoom tube waypoint sequences.";
allowkeys = true;
allowmouse = true;
allowscroll = false;
}
srb2togglepolyobjects
{
title = "Toggle polyobject preview rendering";
category = "view";
description = "When enabled, shows polyobject previews.";
allowkeys = true;
allowmouse = true;
allowscroll = false;
}
//////////////////////////////
//GZDOOMBUILDER MENU ACTIONS//
//////////////////////////////

View file

@ -3349,6 +3349,45 @@ namespace CodeImp.DoomBuilder.Windows
General.MainWindow.UpdateGZDoomPanel();
}
[BeginAction("srb2togglenights")]
internal void SRB2ToggleNiGHTS()
{
General.Settings.SRB2RenderNiGHTS = !General.Settings.SRB2RenderNiGHTS;
//itemtogglerendernights.Checked = General.Settings.SRB2RenderNiGHTS;
//buttontogglerendernights.Checked = General.Settings.SRB2RenderNiGHTS;
General.MainWindow.DisplayStatus(StatusType.Action, "NiGHTS track rendering " + (General.Settings.SRB2RenderNiGHTS ? "ENABLED" : "DISABLED"));
General.MainWindow.RedrawDisplay();
General.MainWindow.UpdateGZDoomPanel();
}
[BeginAction("srb2togglezoomtubes")]
internal void SRB2ToggleZoomTubes()
{
General.Settings.SRB2RenderZoomTubes = !General.Settings.SRB2RenderZoomTubes;
//itemtogglerenderzoomtubes.Checked = General.Settings.SRB2RenderZoomTubes;
//buttontogglerenderzoomtubes.Checked = General.Settings.SRB2RenderZoomTubes;
General.MainWindow.DisplayStatus(StatusType.Action, "Zoom tube waypoint rendering is " + (General.Settings.SRB2RenderZoomTubes ? "ENABLED" : "DISABLED"));
General.MainWindow.RedrawDisplay();
General.MainWindow.UpdateGZDoomPanel();
}
[BeginAction("srb2togglepolyobjects")]
internal void SRB2TogglePolyobjects()
{
General.Settings.SRB2RenderPolyobjects = !General.Settings.SRB2RenderPolyobjects;
//itemtogglerenderpolyobjects.Checked = General.Settings.SRB2RenderPolyobjects;
//buttontogglerenderpolyobjects.Checked = General.Settings.SRB2RenderPolyobjects;
General.MainWindow.DisplayStatus(StatusType.Action, "Polyobject preview rendering is " + (General.Settings.SRB2RenderPolyobjects ? "ENABLED" : "DISABLED"));
General.MainWindow.RedrawDisplay();
General.MainWindow.UpdateGZDoomPanel();
}
#endregion
#region ================== Mode Menu