mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-04-22 17:44:06 +00:00
Visual Mode: add action to toggle texture skewing & support resetting flags.
This commit is contained in:
parent
f4ff4ad1d5
commit
e9c9d008ff
2 changed files with 100 additions and 0 deletions
|
@ -1232,6 +1232,17 @@ togglebackslope
|
|||
default = 393299; //Ctrl-Alt-S
|
||||
}
|
||||
|
||||
toggleskew
|
||||
{
|
||||
title = "Toggle Texture Skewing";
|
||||
category = "visual";
|
||||
description = "Toggles texture skewing for selected walls.";
|
||||
allowkeys = true;
|
||||
allowmouse = true;
|
||||
allowscroll = true;
|
||||
default = 0;
|
||||
}
|
||||
|
||||
placevisualstart
|
||||
{
|
||||
title = "Place Visual Mode Camera";
|
||||
|
|
|
@ -3829,6 +3829,53 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
ShowTargetInfo();
|
||||
}
|
||||
|
||||
//sphere
|
||||
[BeginAction("resetflags")]
|
||||
public void ResetFlags()
|
||||
{
|
||||
List<VisualGeometry> selection = GetSelectedSurfaces();
|
||||
List<VisualThing> selection2 = GetSelectedVisualThings(true);
|
||||
|
||||
if (selection.Count == 0 && selection2.Count == 0)
|
||||
{
|
||||
General.Interface.DisplayStatus(StatusType.Warning, "Reset flags action requires selected surfaces or things!");
|
||||
return;
|
||||
}
|
||||
|
||||
General.Map.UndoRedo.CreateUndo("Reset flags");
|
||||
|
||||
foreach (VisualGeometry vg in selection)
|
||||
{
|
||||
if (vg.GeometryType == VisualGeometryType.WALL_LOWER ||
|
||||
vg.GeometryType == VisualGeometryType.WALL_MIDDLE ||
|
||||
vg.GeometryType == VisualGeometryType.WALL_UPPER)
|
||||
{
|
||||
vg.Sidedef.Line.ClearFlags();
|
||||
|
||||
if (vg.Sidedef.Line.Back != null && vg.Sidedef.Line.Back.Sector != null)
|
||||
vg.Sidedef.Line.SetFlag(General.Map.Config.DoubleSidedFlag, true);
|
||||
else
|
||||
vg.Sidedef.Line.SetFlag(General.Map.Config.ImpassableFlag, true);
|
||||
|
||||
vg.Sector.UpdateSectorGeometry(true);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (VisualThing vt in selection2)
|
||||
{
|
||||
vt.Thing.ClearFlags();
|
||||
}
|
||||
|
||||
//update changed geometry
|
||||
RebuildElementData();
|
||||
UpdateChangedObjects();
|
||||
ClearSelection();
|
||||
ShowTargetInfo();
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Reset flags for " +
|
||||
selection.Count + (selection.Count == 1 ? " surface and " : " surfaces and ") +
|
||||
selection2.Count + (selection2.Count == 1 ? " thing." : " things."));
|
||||
}
|
||||
|
||||
//mxd
|
||||
[BeginAction("toggleslope")]
|
||||
public void ToggleSlope()
|
||||
|
@ -4129,6 +4176,48 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Interface.DisplayStatus(StatusType.Action, "Toggled Slope for " + toUpdate.Count + (toUpdate.Count == 1 ? " surface." : " surfaces."));
|
||||
}
|
||||
|
||||
[BeginAction("toggleskew")]
|
||||
public void ToggleSkew()
|
||||
{
|
||||
int counter = 0;
|
||||
List<VisualGeometry> selection = GetSelectedSurfaces();
|
||||
|
||||
if (selection.Count == 0)
|
||||
{
|
||||
General.Interface.DisplayStatus(StatusType.Warning, "Toggle Skew action requires selected surfaces!");
|
||||
return;
|
||||
}
|
||||
|
||||
General.Map.UndoRedo.CreateUndo("Toggle Skew");
|
||||
|
||||
foreach (VisualGeometry vg in selection)
|
||||
{
|
||||
if (vg.GeometryType == VisualGeometryType.WALL_LOWER || vg.GeometryType == VisualGeometryType.WALL_UPPER)
|
||||
vg.Sidedef.Line.SetFlag("32", vg.Sidedef.Line.IsFlagSet("32") ? false : true);
|
||||
|
||||
else if (vg.GeometryType == VisualGeometryType.WALL_MIDDLE)
|
||||
vg.Sidedef.Line.SetFlag("128", vg.Sidedef.Line.IsFlagSet("128") ? false : true);
|
||||
|
||||
else if (vg.GeometryType == VisualGeometryType.WALL_MIDDLE_3D)
|
||||
vg.GetControlLinedef().SetFlag("8", vg.GetControlLinedef().IsFlagSet("8") ? false : true);
|
||||
|
||||
else
|
||||
continue;
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
if (counter > 0)
|
||||
{
|
||||
RebuildElementData();
|
||||
UpdateChangedObjects();
|
||||
ClearSelection();
|
||||
ShowTargetInfo();
|
||||
}
|
||||
|
||||
General.Interface.DisplayStatus(StatusType.Action, "Toggled Skewing for " + counter + (counter == 1 ? " surface." : " surfaces."));
|
||||
}
|
||||
|
||||
// biwa
|
||||
[BeginAction("visualpaintselect")]
|
||||
protected virtual void OnPaintSelectBegin()
|
||||
|
|
Loading…
Reference in a new issue