mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-03-01 07:11:36 +00:00
Make 3D floor mode support SRB2
This commit is contained in:
parent
ba67a87c75
commit
a75489d7c6
11 changed files with 22 additions and 13 deletions
|
@ -104,6 +104,7 @@ mapformat_udmf
|
||||||
distinctfloorandceilingbrightness = true;
|
distinctfloorandceilingbrightness = true;
|
||||||
|
|
||||||
planeequationsupport = true;
|
planeequationsupport = true;
|
||||||
|
effect3dfloorsupport = true;
|
||||||
|
|
||||||
// Special linedefs
|
// Special linedefs
|
||||||
include("SRB222_misc.cfg", "speciallinedefs_udmf");
|
include("SRB222_misc.cfg", "speciallinedefs_udmf");
|
||||||
|
|
|
@ -177,6 +177,9 @@ namespace CodeImp.DoomBuilder
|
||||||
private const string TEXTURES_DIR = "Textures"; //mxd
|
private const string TEXTURES_DIR = "Textures"; //mxd
|
||||||
private const string HELP_FILE = "Refmanual.chm";
|
private const string HELP_FILE = "Refmanual.chm";
|
||||||
|
|
||||||
|
// SRB2
|
||||||
|
public static readonly int[] FOF_TYPES = { 100, 120, 150, 160, 170, 190, 200, 202, 220, 223, 250, 251, 254, 257, 258, 259, 260 };
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
|
@ -638,7 +638,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
//find lines with 3d floor action and collect sector tags
|
//find lines with 3d floor action and collect sector tags
|
||||||
foreach(Linedef l in General.Map.Map.Linedefs)
|
foreach(Linedef l in General.Map.Map.Linedefs)
|
||||||
{
|
{
|
||||||
if(l.Action == 160)
|
if(General.FOF_TYPES.Contains(l.Action))
|
||||||
{
|
{
|
||||||
int sectortag = (General.Map.UDMF || (l.Args[1] & 8) != 0) ? l.Args[0] : l.Args[0] + (l.Args[4] << 8);
|
int sectortag = (General.Map.UDMF || (l.Args[1] & 8) != 0) ? l.Args[0] : l.Args[0] + (l.Args[4] << 8);
|
||||||
if(sectortag != 0 && !tags.Contains(sectortag)) tags.Add(sectortag);
|
if(sectortag != 0 && !tags.Contains(sectortag)) tags.Add(sectortag);
|
||||||
|
|
|
@ -776,7 +776,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
if (ld.Front == null || ld.Front.Sector == null || ld.Front.Sector.IsDisposed || (General.Map.UDMF && ld.Front.Sector.Fields.GetValue("user_managed_3d_floor", false) == false))
|
if (ld.Front == null || ld.Front.Sector == null || ld.Front.Sector.IsDisposed || (General.Map.UDMF && ld.Front.Sector.Fields.GetValue("user_managed_3d_floor", false) == false))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ld.Action == 160 && ld.Args[0] != 0)
|
if (General.FOF_TYPES.Contains(ld.Action) && ld.Args[0] != 0)
|
||||||
{
|
{
|
||||||
if (!tags.ContainsKey(ld.Args[0]))
|
if (!tags.ContainsKey(ld.Args[0]))
|
||||||
tags.Add(ld.Args[0], new List<Sector>() { ld.Front.Sector });
|
tags.Add(ld.Args[0], new List<Sector>() { ld.Front.Sector });
|
||||||
|
|
|
@ -542,7 +542,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
//Determine whether or not the sector is actually a control sector for a 3D floor
|
//Determine whether or not the sector is actually a control sector for a 3D floor
|
||||||
foreach (Sidedef sd in s.Sidedefs)
|
foreach (Sidedef sd in s.Sidedefs)
|
||||||
{
|
{
|
||||||
if (sd.Line.Action == 160)
|
if (General.FOF_TYPES.Contains(sd.Line.Action))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -168,7 +168,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
// tagged sector(s). They will be used for highlighting in slope mode
|
// tagged sector(s). They will be used for highlighting in slope mode
|
||||||
foreach (Sidedef sd in s.Sidedefs)
|
foreach (Sidedef sd in s.Sidedefs)
|
||||||
{
|
{
|
||||||
if (sd.Line.Action == 160)
|
if (General.FOF_TYPES.Contains(sd.Line.Action))
|
||||||
{
|
{
|
||||||
foreach (Sector ts in BuilderPlug.GetSectorsByTag(sd.Line.Args[0]))
|
foreach (Sector ts in BuilderPlug.GetSectorsByTag(sd.Line.Args[0]))
|
||||||
{
|
{
|
||||||
|
|
|
@ -132,7 +132,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
|
|
||||||
foreach (Sidedef sd in sector.Sidedefs)
|
foreach (Sidedef sd in sector.Sidedefs)
|
||||||
{
|
{
|
||||||
if (sd.Line.Action == 160)
|
if (General.FOF_TYPES.Contains(sd.Line.Action))
|
||||||
{
|
{
|
||||||
bordertexture = sd.MiddleTexture;
|
bordertexture = sd.MiddleTexture;
|
||||||
udmftag = sd.Line.Args[0];
|
udmftag = sd.Line.Args[0];
|
||||||
|
@ -224,7 +224,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
{
|
{
|
||||||
sd.SetTextureMid(bordertexture);
|
sd.SetTextureMid(bordertexture);
|
||||||
|
|
||||||
if (sd.Line.Action == 160)
|
if (General.FOF_TYPES.Contains(sd.Line.Action))
|
||||||
{
|
{
|
||||||
sd.Line.Args[1] = type;
|
sd.Line.Args[1] = type;
|
||||||
sd.Line.Args[2] = flags;
|
sd.Line.Args[2] = flags;
|
||||||
|
@ -315,7 +315,7 @@ namespace CodeImp.DoomBuilder.ThreeDFloorMode
|
||||||
|
|
||||||
foreach (Sidedef sd in sector.Sidedefs)
|
foreach (Sidedef sd in sector.Sidedefs)
|
||||||
{
|
{
|
||||||
if (sd.Line.Action == 160 && BuilderPlug.GetSectorsByTag(sd.Line.Args[0]).Count == 0)
|
if (General.FOF_TYPES.Contains(sd.Line.Action) && BuilderPlug.GetSectorsByTag(sd.Line.Args[0]).Count == 0)
|
||||||
{
|
{
|
||||||
sd.Line.Action = 0;
|
sd.Line.Action = 0;
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
using CodeImp.DoomBuilder.Types;
|
using CodeImp.DoomBuilder.Types;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -443,7 +444,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// sectors that need updating
|
// sectors that need updating
|
||||||
foreach (Linedef ld in General.Map.Map.Linedefs)
|
foreach (Linedef ld in General.Map.Map.Linedefs)
|
||||||
{
|
{
|
||||||
if (ld.Action != 160) // Action 160 defines a 3D floor
|
if (!General.FOF_TYPES.Contains(ld.Action)) // Action 160 defines a 3D floor
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
foreach (Sector s in draggedsectors)
|
foreach (Sector s in draggedsectors)
|
||||||
|
|
|
@ -1592,7 +1592,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
{
|
{
|
||||||
foreach (Linedef ld in General.Map.Map.Linedefs)
|
foreach (Linedef ld in General.Map.Map.Linedefs)
|
||||||
{
|
{
|
||||||
if (ld.Action != 160) // Action 160 defines a 3D floor
|
if (!General.FOF_TYPES.Contains(ld.Action)) // Action 160 defines a 3D floor
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ld.Args[0] == 0) // First argument of the action is the sector tag. 0 is not a valid value
|
if (ld.Args[0] == 0) // First argument of the action is the sector tag. 0 is not a valid value
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -82,7 +84,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
foreach (Linedef ld in General.Map.Map.Linedefs)
|
foreach (Linedef ld in General.Map.Map.Linedefs)
|
||||||
{
|
{
|
||||||
if (ld.Action == 160)
|
if (General.FOF_TYPES.Contains(ld.Action))
|
||||||
{
|
{
|
||||||
if ((ld.Args[1] & 4) == 4) // Type render inside
|
if ((ld.Args[1] & 4) == 4) // Type render inside
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,6 +15,8 @@ using CodeImp.DoomBuilder.VisualModes;
|
||||||
using CodeImp.DoomBuilder.Windows;
|
using CodeImp.DoomBuilder.Windows;
|
||||||
using CodeImp.DoomBuilder.BuilderModes.Interface;
|
using CodeImp.DoomBuilder.BuilderModes.Interface;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -377,7 +379,7 @@ namespace CodeImp.DoomBuilder.BuilderModes.IO
|
||||||
{
|
{
|
||||||
foreach (Sidedef sd in s.Sidedefs)
|
foreach (Sidedef sd in s.Sidedefs)
|
||||||
{
|
{
|
||||||
if (sd.Line.Action == 160)
|
if (General.FOF_TYPES.Contains(sd.Line.Action))
|
||||||
{
|
{
|
||||||
addvs = false;
|
addvs = false;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue