mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-03-03 16:11:45 +00:00
Add labels for zoom tube waypoint sequence IDs and an indicator for duplicate waypoints.
This commit is contained in:
parent
b59f8fef63
commit
469f56e6fc
1 changed files with 22 additions and 3 deletions
|
@ -1460,20 +1460,39 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
int i = 0;
|
||||
int size = waypoints.Count;
|
||||
int seqStart = 0;
|
||||
TextLabel[] sequencelabels = new TextLabel[256];
|
||||
while (i < size - 1)
|
||||
{
|
||||
int iNext = i + 1;
|
||||
if (waypoints[i].AngleDoom % 256 == 0)
|
||||
if (waypoints[i].AngleDoom % 256 == 0) // start of a new sequence?
|
||||
{
|
||||
seqStart = i;
|
||||
sequencelabels[waypoints[i].AngleDoom / 256] = new TextLabel(3) // create sequence ID label
|
||||
{
|
||||
Text = (waypoints[i].AngleDoom / 256).ToString(),
|
||||
AlignX = TextAlignmentX.Center,
|
||||
AlignY = TextAlignmentY.Middle,
|
||||
Color = General.Colors.WaypointColor,
|
||||
Backcolor = General.Colors.Background,
|
||||
Scale = 16f,
|
||||
TransformCoords = true,
|
||||
Rectangle = new RectangleF(waypoints[i].Position.x, waypoints[i].Position.y, 0.0f, 0.0f)
|
||||
};
|
||||
}
|
||||
if (iNext < size && waypoints[iNext].AngleDoom == waypoints[i].AngleDoom + 1) // next waypoint of this sequence?
|
||||
RenderLine((Vector2D)waypoints[i].Position, (Vector2D)waypoints[iNext].Position, 1.5f, General.Colors.WaypointColor, true);
|
||||
else if (iNext < size && waypoints[iNext].AngleDoom == waypoints[i].AngleDoom) // mark duplicate waypoints
|
||||
RenderCircle((Vector2D)waypoints[iNext].Position, 32f, 1f, PixelColor.FromColor(Color.Red), true);
|
||||
else // draw different line between last and first waypoint of this sequence
|
||||
RenderLine((Vector2D)waypoints[i].Position, (Vector2D)waypoints[seqStart].Position, 0.75f, General.Colors.WaypointLoopColor, true);
|
||||
i = iNext;
|
||||
}
|
||||
|
||||
//Render axis transfer lines.
|
||||
i = 0;
|
||||
for (i = 0; i < 256; i++)
|
||||
if (sequencelabels[i] != null) RenderText(sequencelabels[i]);
|
||||
|
||||
//Render axis transfer lines.
|
||||
i = 0;
|
||||
size = axistransferlines.Count;
|
||||
while (i < size - 1)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue