mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-18 14:31:50 +00:00
DECORATE: added "//$ArgNDefault" special comment. It can be used to specify the default argument value.
Visual mode, 3d floors: sloped 3d floors are now always rendered as opaque (just like in GZDoom). Fixed a crash when creating a new unknown thing (introduced in r2324). Documentation: updated "Action Argument Settings" and "DECORATE keys" pages.
This commit is contained in:
parent
f832fb85f9
commit
1843ffc5a7
10 changed files with 37 additions and 14 deletions
|
@ -18,6 +18,7 @@
|
|||
<div id="contents">
|
||||
<p> <b class="fat">title</b> (string)<br />
|
||||
Sets the title of this argument.<br />
|
||||
Argument title can be also set in <a href="gc_decoratekeys.html#argtitle">DECORATE</a>.<br />
|
||||
<br />
|
||||
<b class="fat"><a name="argtooltip" id="argtooltip"></a>tooltip</b> (string) - <span class="red">GZDB only</span>.<br />
|
||||
Allows to specify a tooltip text displayed for a <a href="gc_thingsettings.html#argtooltip">Thing</a> or Linedef argument definition. Newline character ("\n") can be used to format the text.<br />
|
||||
|
@ -78,6 +79,7 @@ arg0
|
|||
<br />
|
||||
<b class="fat">default</b> (integer) - <span class="red">GZDB only</span>.<br />
|
||||
Sets the default value for a Thing or Linedef argument definition.<br />
|
||||
Default value can be also set in <a href="gc_decoratekeys.html#argdefault">DECORATE</a>.<br />
|
||||
<strong>Example:</strong>
|
||||
</p>
|
||||
<pre>9038
|
||||
|
|
|
@ -30,18 +30,21 @@
|
|||
<strong>//$Title <title></strong><br />
|
||||
Specifies which name to give to the actor. By default, a custom actor not identified in a configuration file will use the Tag property, and if not present, will default to the class name.<br />
|
||||
<br />
|
||||
<strong>//$ArgN <name></strong> - <span class="red">GZDB only</span>.<br />
|
||||
<strong><a name="argtitle" id="argtitle"></a>//$ArgN <name></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to override default argument names for this actor.<br />
|
||||
<br />
|
||||
<strong><a name="argdefault" id="argdefault"></a>//$ArgNDefault <integer></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to set the default value for this argument. This property can only be used in conjunction with "<strong>//$ArgN</strong>" property.<br />
|
||||
<br />
|
||||
<strong><a name="argtooltip" id="argtooltip"></a>//$ArgNTooltip <text></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to specify a tooltip text displayed for this argument. Newline character ("\n") can be used to format the text. This property can only be used in conjunction with "<strong>$ArgN</strong>".<br />
|
||||
Allows to specify a tooltip text displayed for this argument. Newline character ("\n") can be used to format the text. This property can only be used in conjunction with "<strong>//$ArgN</strong>" property.<br />
|
||||
Argument tooltips can be also set for <a href="gc_argumentsettings.html#argtooltip">things and linedefs</a> in a Game Configuration.<br />
|
||||
<br />
|
||||
<strong><a name="argtype" id="argtype"></a>//$ArgNType <integer></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to specify an <a href="gc_argumentsettings.html#argtype">argument type</a> for this argument.<br />
|
||||
Allows to specify an <a href="gc_argumentsettings.html#argtype">argument type</a> for this argument. This property can only be used in conjunction with "<strong>//$ArgN</strong>" property.<br />
|
||||
<br />
|
||||
<strong><a name="argenum" id="argenum"></a>//$ArgNEnum <string or structure></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to specify an enum for this argument. This can be either a name of an enum defined in the Game Configuration, or an explicit enum definition.<br />
|
||||
Allows to specify an enum for this argument. This can be either a name of an enum defined in the Game Configuration, or an explicit enum definition. This property can only be used in conjunction with "<strong>//$ArgN</strong>" property.<br />
|
||||
<br />
|
||||
<strong>//$Color <color index></strong> - <span class="red">GZDB only</span>.<br />
|
||||
Allows to override category color for this actor. Possible values:
|
||||
|
|
|
@ -96,11 +96,12 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
|
||||
//mxd. Constructor for an argument info defined in DECORATE
|
||||
internal ArgumentInfo(string actorname, string argtitle, string tooltip, int type, string enumstr, IDictionary<string, EnumList> enums)
|
||||
internal ArgumentInfo(string actorname, string argtitle, string tooltip, int type, int defaultvalue, string enumstr, IDictionary<string, EnumList> enums)
|
||||
{
|
||||
this.used = true;
|
||||
this.title = argtitle;
|
||||
this.tooltip = tooltip;
|
||||
this.defaultvalue = defaultvalue;
|
||||
|
||||
// Get argument type
|
||||
if(System.Enum.IsDefined(typeof(UniversalType), type))
|
||||
|
@ -139,7 +140,6 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
|
||||
if(this.enumlist == null) this.enumlist = new EnumList();
|
||||
this.defaultvalue = 0;
|
||||
}
|
||||
|
||||
// Constructor for unknown argument info
|
||||
|
|
|
@ -361,8 +361,9 @@ namespace CodeImp.DoomBuilder.Config
|
|||
string argtitle = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i));
|
||||
string argtooltip = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "tooltip").Replace("\\n", Environment.NewLine));
|
||||
int argtype = actor.GetPropertyValueInt("$arg" + i + "type", 0);
|
||||
int defaultvalue = actor.GetPropertyValueInt("$arg" + i + "default", 0);
|
||||
string argenum = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "enum"));
|
||||
args[i] = new ArgumentInfo(title, argtitle, argtooltip, argtype, argenum, General.Map.Config.Enums);
|
||||
args[i] = new ArgumentInfo(title, argtitle, argtooltip, argtype, defaultvalue, argenum, General.Map.Config.Enums);
|
||||
}
|
||||
|
||||
// Remove doublequotes from title
|
||||
|
|
|
@ -831,7 +831,7 @@ namespace CodeImp.DoomBuilder.IO
|
|||
|
||||
|
||||
// This includes another file
|
||||
private void FunctionInclude(IDictionary cs, ArrayList args, ref string file, int line)
|
||||
private void FunctionInclude(IDictionary cs, List<object> args, ref string file, int line)
|
||||
{
|
||||
string data;
|
||||
|
||||
|
@ -933,7 +933,7 @@ namespace CodeImp.DoomBuilder.IO
|
|||
private void ParseFunction(IDictionary cs, ref string file, ref string data, ref int pos, ref int line, ref string functionname)
|
||||
{
|
||||
// We now parse arguments, separated by commas, until we reach the end of the function
|
||||
ArrayList args = new ArrayList();
|
||||
List<object> args = new List<object>();
|
||||
object val;
|
||||
while((pos < data.Length) && !cpErrorResult)
|
||||
{
|
||||
|
|
|
@ -503,6 +503,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
//mxd. Apply radius and height overrides?
|
||||
for(int i = 0; i < ti.Args.Length; i++)
|
||||
{
|
||||
if(ti.Args[i] == null) continue;
|
||||
if(ti.Args[i].Type == (int)UniversalType.ThingRadius && args[i] > 0)
|
||||
size = args[i];
|
||||
else if(ti.Args[i].Type == (int)UniversalType.ThingHeight && args[i] > 0)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#region === Copyright (c) 2010 Pascal van der Heiden ===
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Geometry;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,6 +28,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
//mxd. Translucent 3d-floor?
|
||||
private bool renderinside;
|
||||
|
||||
//mxd. Dirty hack to emulate GZDoom behaviour?
|
||||
private bool sloped3dfloor;
|
||||
|
||||
//mxd. Ignore Bottom Height?
|
||||
private bool ignorebottomheight;
|
||||
|
||||
|
@ -38,6 +42,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public bool VavoomType { get { return vavoomtype; } }
|
||||
public bool RenderInside { get { return renderinside; } } //mxd
|
||||
public bool IgnoreBottomHeight { get { return ignorebottomheight; } } //mxd
|
||||
public bool Sloped3dFloor { get { return sloped3dfloor; } } //mxd
|
||||
|
||||
//mxd. 3D-Floor Flags
|
||||
[Flags]
|
||||
|
@ -135,6 +140,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Apply alpha
|
||||
floor.alpha = alpha;
|
||||
ceiling.alpha = alpha;
|
||||
|
||||
//mxd. Check slopes, cause GZDoom can't handle sloped translucent 3d floors...
|
||||
sloped3dfloor = (alpha < 255 &&
|
||||
(Angle2D.RadToDeg(ceiling.plane.Normal.GetAngleZ()) != 270 ||
|
||||
Angle2D.RadToDeg(floor.plane.Normal.GetAngleZ()) != 90));
|
||||
|
||||
// Do not adjust light? (works only for non-vavoom types)
|
||||
if(!vavoomtype)
|
||||
|
|
|
@ -156,9 +156,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Determine render pass
|
||||
if(extrafloor != null)
|
||||
{
|
||||
if ((extrafloor.Linedef.Args[2] & (int)Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
if(extrafloor.Sloped3dFloor) //mxd
|
||||
this.RenderPass = RenderPass.Mask;
|
||||
else if((extrafloor.Linedef.Args[2] & (int)Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
this.RenderPass = RenderPass.Additive;
|
||||
else if (level.alpha < 255)
|
||||
else if(level.alpha < 255)
|
||||
this.RenderPass = RenderPass.Alpha;
|
||||
else
|
||||
this.RenderPass = RenderPass.Mask;
|
||||
|
|
|
@ -158,7 +158,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Determine render pass
|
||||
if(extrafloor != null)
|
||||
{
|
||||
if((extrafloor.Linedef.Args[2] & (int)Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
if(extrafloor.Sloped3dFloor) //mxd
|
||||
this.RenderPass = RenderPass.Mask;
|
||||
else if((extrafloor.Linedef.Args[2] & (int)Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
this.RenderPass = RenderPass.Additive;
|
||||
else if(level.alpha < 255)
|
||||
this.RenderPass = RenderPass.Alpha;
|
||||
|
|
|
@ -266,9 +266,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
List<WorldVertex> verts = CreatePolygonVertices(polygons, tp, sd, lightvalue, lightabsolute);
|
||||
if (verts.Count > 2)
|
||||
{
|
||||
if ((extrafloor.Linedef.Args[2] & (int) Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
if(extrafloor.Sloped3dFloor) //mxd
|
||||
this.RenderPass = RenderPass.Mask;
|
||||
else if((extrafloor.Linedef.Args[2] & (int) Effect3DFloor.Flags.RenderAdditive) != 0) //mxd
|
||||
this.RenderPass = RenderPass.Additive;
|
||||
else if (extrafloor.Alpha < 255)
|
||||
else if(extrafloor.Alpha < 255)
|
||||
this.RenderPass = RenderPass.Alpha;
|
||||
else
|
||||
this.RenderPass = RenderPass.Mask;
|
||||
|
|
Loading…
Reference in a new issue