Skip to content
Snippets Groups Projects
Commit 5cb573d9 authored by MaxED's avatar MaxED
Browse files

GZDoom Builder 1.11:

Enhanced scripting workflow.
Thing and linedef arguments can now have default value in configuration files.
Fixed laggy visual camera movement on systems with big uptime.
Fixed incorrect alignment of Things with "hangs" flag in GZDoom Visual mode.
Fixed Editor crash when nodebuilder fails to build map. A window with error description will be shown instead.
Doom light levels were used even in maps in non-doom map format.

Tag Explorer plugin:
Elements list wasn't updated when map element was deleted.
Pugin wasn't disposed properly, which may led to Doom Builder 2 crash on map close.
Fixed plugin crash after opening another map.
Fixed unresponsive text entry in Filter text box.
Fixed plugin crash when Doom Builder can't determmine thing category ("UNKNOWN" category will be used instead).
parent fcd29375
No related branches found
No related tags found
No related merge requests found
Showing
with 308 additions and 18 deletions
......@@ -19,18 +19,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Intensity";
default = 64;
}
}
9801
......@@ -39,22 +43,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Start intensity";
default = 64;
}
arg4
{
title = "End intensity";
default = 32;
}
}
9802
......@@ -63,22 +72,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Primary intensity";
default = 64;
}
arg4
{
title = "Secondary intensity";
default = 32;
}
}
9803
......@@ -87,18 +101,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Intensity scale";
default = 4;
}
}
9804
......@@ -107,22 +125,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Minimal intensity";
default = 32;
}
arg4
{
title = "Maximal intensity";
default = 64;
}
}
9810
......@@ -131,18 +154,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Intensity";
default = 64;
}
}
9811
......@@ -151,22 +178,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Start intensity";
default = 32;
}
arg4
{
title = "End intensity";
default = 64;
}
}
9812
......@@ -175,22 +207,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Primary intensity";
default = 64;
}
arg4
{
title = "Secondary intensity";
default = 32;
}
}
9813
......@@ -199,18 +236,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Intensity scale";
default = 4;
}
}
9814
......@@ -219,22 +260,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Minimal intensity";
default = 32;
}
arg4
{
title = "Maximal intensity";
default = 64;
}
}
9820
......@@ -243,18 +289,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Radius";
default = 64;
}
}
9821
......@@ -263,22 +313,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Start intensity";
default = 32;
}
arg4
{
title = "End intensity";
default = 64;
}
}
9822
......@@ -287,22 +342,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Primary intensity";
default = 32;
}
arg4
{
title = "Secondary intensity";
default = 64;
}
}
9823
......@@ -311,18 +371,22 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Intensity scale";
default = 4;
}
}
9824
......@@ -331,22 +395,27 @@ gzdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
title = "Minimal intensity";
default = 32;
}
arg4
{
title = "Maximal intensity";
default = 64;
}
}
9825 = "Vavoom Light";
......@@ -356,6 +425,7 @@ gzdoom
arg0
{
title = "Radius";
default = 16;
}
}
1503
......@@ -364,18 +434,22 @@ gzdoom
arg0
{
title = "Radius";
default = 16;
}
arg1
{
title = "Red";
default = 255;
}
arg2
{
title = "Green";
default = 255;
}
arg3
{
title = "Blue";
default = 255;
}
}
}
......
......@@ -59,12 +59,6 @@ common
include("Boom_misc.cfg", "colormaps");
}
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
include("Doom_misc.cfg", "sectorbrightness");
}
// Generalized sector types
gen_sectortypes
{
......@@ -112,6 +106,12 @@ mapformat_doom
{
include("Boom_generalized.cfg", "gen_linedeftypes");
}
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
include("Doom_misc.cfg", "sectorbrightness");
}
// SECTOR TYPES
sectortypes
......@@ -204,6 +204,12 @@ mapformat_hexen
// Generalized actions
generalizedlinedefs = false;
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
include("ZDoom_misc.cfg", "sectorbrightness");
}
// SECTOR TYPES
sectortypes
......@@ -318,6 +324,12 @@ mapformat_udmf
// Generalized actions
generalizedlinedefs = false;
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
include("ZDoom_misc.cfg", "sectorbrightness");
}
// SECTOR TYPES
sectortypes
......
......@@ -206,6 +206,11 @@ universalfields
add = "Additive";
}
}
arg0str
{
type = 2;
default = "";
}
}
sidedef
......@@ -343,6 +348,11 @@ universalfields
type = 0;
default = 0;
}
arg0str
{
type = 2;
default = "";
}
}
sector
......
......@@ -540,14 +540,17 @@ zdoom
arg0
{
title = "Red";
default = 255;
}
arg1
{
title = "Green";
default = 255;
}
arg2
{
title = "Blue";
default = 255;
}
arg3
{
......@@ -560,14 +563,17 @@ zdoom
arg0
{
title = "Red";
default = 128;
}
arg1
{
title = "Green";
default = 128;
}
arg2
{
title = "Blue";
default = 128;
}
}
9041
......@@ -759,10 +765,12 @@ zdoom
arg2
{
title = "X Scale (64=100%)";
default = 64;
}
arg3
{
title = "Y Scale (64=100%) ";
default = 64;
}
arg4
{
......@@ -798,6 +806,7 @@ zdoom
arg0
{
title = "Flat Transparency";
default = 128;
}
}
......@@ -807,6 +816,7 @@ zdoom
arg0
{
title = "Flat Transparency";
default = 128;
}
}
}
......
......@@ -233,9 +233,13 @@
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="New settings">
<param name="Local" value="gz_settings.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Enhanced scripting workflow">
<param name="Local" value="gz_acsex.html">
</OBJECT>
<UL>
</UL>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="New editing modes">
<param name="Local" value="gz_editmodes.html">
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GZDoom Builder features</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="default.css" media="screen" title="Default" />
</head>
<body>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="keyword" value="Template">
</object>
<div id="gz_title"><h1>Enhanced scripting workflow</h1></div>
<div id="contents">
<p><img style="float:left; margin-right:10px" src="gz_scripteditor.jpg"/><b>GZDoom Builder</b> includes several features to help you edit and assign scripts easier.</br></br>
Script editor now has "Script names" drop down, which allows you to view and select individual scripts faster.</br>
<h3>Pseudo-named scripts</h3>
If you add a comment after script opening brace like so:</br>
<code>script 1 (void)</br>
{ //My Pseudo-named script</br>
...</br>
}</br></code>
it will be used as script name in "Script names" drop down and in Thing and Linedef Edit windows drop downs (example script will be named as "[1] My Pseudo-named script").</br></br>
<b>Notice:</b> "Script names" drop down items are updated when you compile script successfully.
</p>
</div>
<div id="contents" style="clear: left">
<p><img style="float:left; margin-right:10px" src="gz_thing1.jpg"/><img style="float:left; clear: left; margin-right:10px" src="gz_thing2.jpg"/>Thing and Linedef scripts can now be set much easier.</br></br>
<b>Notice:</b> to remove named or regular script, clear script selector text box</p>
</div>
<div id="contents" style="clear: left">
<p><img style="float:left; margin-right:10px" src="gz_infoex.jpg"/>If a Thing or Linedef has named script, it will be shown in info panel.</p>
</div>
</body>
......@@ -18,8 +18,18 @@
</div>
<div id="contents">
<p><b>basegame</b> - indicates on which game current configuration is based. Used to load game-specific GLDEFS lumps (DOOMDEFS, HTICDEFS, HEXNDEFS or STRFDEFS)</br>
<p><h3>General settings:</h3></br><b>basegame</b> - indicates on which game current configuration is based. Used to load game-specific GLDEFS lumps (DOOMDEFS, HTICDEFS, HEXNDEFS or STRFDEFS)</br>
<b>Possile values:</b> 0 (DOOM), 1 (HERETIC), 2 (HEXEN) or 3 (STRIFE).</br>
<b>Example:</b> <code>basegame = 0;</code></p>
<h3>Thing and linedef definition:</h3>
Default values can be set in Thing and Linedef argument definitions.</br>
<b>Example:</b> </br>
<code>arg1</br>
{</br>
title = "Speed";</br>
default = 100;</br>
}</br></code></p>
</div>
</body>
......@@ -22,6 +22,7 @@
<li>Dynamic lights (all types) are rendered in Visual modes.</li>
<li>Dynamic lights defined in GLDEFS are rendered in Visual modes.</li>
<li>Animated lights.</li>
<li><a href="gz_acsex.html">Enhanced scripting workflow</a>.</li>
<li>Partial <a href="gz_gldefs.html">GLDEFS</a> and <a href="gz_mapinfo.html">(Z)MAPINFO support.</a></li>
<li>Fog rendering (including colored fog in maps in UDMF format).</li>
<li><a href="gz_gldefs.html">MD2 and MD3 models</a> rendering in 2D and 3D modes.</li>
......@@ -30,6 +31,7 @@
<li><a href="gz_actions.html#newtestmap">"Test Map from current position"</a> feature.</li>
<li><a href="gz_settings.html">"Sync camera position between 2D and 3D modes"</a> feature.</li>
<li><a href="gz_actions.html#movethingtocursor">"Place Things at cursor position in Visual Modes"</a> feature.</li>
<li>PNG image format support.</li>
<li><a href="gz_plug_colorpicker.html">Color Picker plugin.</a></li>
<li><a href="gz_plug_udmfcontrols.html">UDMF Controls plugin.</a></li>
......
Help/gz_infoex.jpg

35.9 KiB

Help/gz_scripteditor.jpg

94.5 KiB

Help/gz_thing1.jpg

55.9 KiB

Help/gz_thing2.jpg

54.1 KiB

......@@ -718,6 +718,7 @@
<Compile Include="GZBuilder\Data\GZDoomLight.cs" />
<Compile Include="GZBuilder\Data\MapInfo.cs" />
<Compile Include="GZBuilder\Data\ModeldefEntry.cs" />
<Compile Include="GZBuilder\Data\ScriptItem.cs" />
<Compile Include="GZBuilder\Data\TextureData.cs" />
<Compile Include="GZBuilder\Data\ThingBoundingBox.cs" />
<Compile Include="GZBuilder\GZDoom\GldefsParser.cs" />
......@@ -727,6 +728,7 @@
<Compile Include="GZBuilder\GZGeneral.cs" />
<Compile Include="GZBuilder\md3\GZModel.cs" />
<Compile Include="GZBuilder\md3\ModelReader.cs" />
<Compile Include="GZBuilder\ZDoom\AcsParser.cs" />
<Compile Include="IO\DoomColormapReader.cs" />
<Compile Include="Map\SelectionType.cs" />
<Compile Include="Map\MapElementCollection.cs" />
......
......@@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagExplorer", "..\Plugins\T
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UDMFControls", "..\Plugins\UMDFControls\UDMFControls.csproj", "{2D11C828-295C-463A-8545-CA1AD6D51518}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ColorPicker", "..\Plugins\ColorPicker\ColorPicker.csproj", "{A4761900-0EA3-4FE4-A919-847FD5080EFC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -71,6 +73,16 @@ Global
{2D11C828-295C-463A-8545-CA1AD6D51518}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2D11C828-295C-463A-8545-CA1AD6D51518}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2D11C828-295C-463A-8545-CA1AD6D51518}.Release|x86.ActiveCfg = Release|Any CPU
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|Any CPU.ActiveCfg = Debug|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|Mixed Platforms.Build.0 = Debug|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x86.ActiveCfg = Debug|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x86.Build.0 = Debug|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|Any CPU.ActiveCfg = Release|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|Mixed Platforms.ActiveCfg = Release|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|Mixed Platforms.Build.0 = Release|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x86.ActiveCfg = Release|x86
{A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
......@@ -89,11 +89,15 @@ namespace CodeImp.DoomBuilder.Compilers
processinfo = new ProcessStartInfo();
processinfo.Arguments = args;
processinfo.FileName = Path.Combine(this.tempdir.FullName, info.ProgramFile);
processinfo.CreateNoWindow = false;
processinfo.CreateNoWindow = true; //mxd. was false
processinfo.ErrorDialog = false;
processinfo.UseShellExecute = true;
processinfo.UseShellExecute = false; //mxd. was true
processinfo.WindowStyle = ProcessWindowStyle.Hidden;
processinfo.WorkingDirectory = this.workingdir;
//mxd
processinfo.RedirectStandardError = true;
processinfo.RedirectStandardOutput = true;
// Output info
General.WriteLogLine("Running compiler...");
......@@ -111,12 +115,37 @@ namespace CodeImp.DoomBuilder.Compilers
General.ShowErrorMessage("Unable to start the compiler (" + info.Name + "). " + e.GetType().Name + ": " + e.Message, MessageBoxButtons.OK);
return false;
}
//mxd
string outErr = process.StandardError.ReadToEnd();
string outMsg = process.StandardOutput.ReadToEnd();
// Wait for compiler to complete
process.WaitForExit();
//mxd
bool errorsInNormalOurput = (outMsg.Length > 0 && outMsg.ToLowerInvariant().IndexOf("error") != -1);
//zdbsp actually writes building process here, not error info
bool errorsInErrorOutput = (outErr.Length > 0 && outErr.ToLowerInvariant().IndexOf("error") != -1);
deltatime = TimeSpan.FromTicks(process.ExitTime.Ticks - process.StartTime.Ticks);
General.WriteLogLine("Compiler process has finished.");
General.WriteLogLine("Compiler process has finished " + (errorsInNormalOurput || errorsInErrorOutput ? "with errors." : ".")); //mxd
General.WriteLogLine("Compile time: " + deltatime.TotalSeconds.ToString("########0.00") + " seconds");
//mxd
if (process.ExitCode > 0 || errorsInNormalOurput || errorsInErrorOutput) {
if (errorsInNormalOurput) {
ReportError(new CompilerError(outMsg));
General.WriteLogLine("Normal output: " + outMsg);
}
if (errorsInErrorOutput) {
ReportError(new CompilerError(outErr));
General.WriteLogLine("Error output: " + outErr);
}
return false;
}
return true;
}
......
......@@ -42,6 +42,8 @@ namespace CodeImp.DoomBuilder.Config
private bool used;
private int type;
private EnumList enumlist;
//mxd
private object defaultValue;
#endregion
......@@ -51,6 +53,8 @@ namespace CodeImp.DoomBuilder.Config
public bool Used { get { return used; } }
public int Type { get { return type; } }
public EnumList Enum { get { return enumlist; } }
//mxd
public object DefaultValue { get { return defaultValue; } }
#endregion
......@@ -65,6 +69,9 @@ namespace CodeImp.DoomBuilder.Config
this.title = cfg.ReadSetting(argspath + ".arg" + istr + ".title", "Argument " + (argindex + 1));
this.type = cfg.ReadSetting(argspath + ".arg" + istr + ".type", 0);
//mxd
this.defaultValue = cfg.ReadSetting(argspath + ".arg" + istr + ".default", 0);
// Determine enum type
EnumList enumlist = null;
IDictionary argdic = cfg.ReadSetting(argspath + ".arg" + istr, new Hashtable());
......
......@@ -41,6 +41,8 @@ namespace CodeImp.DoomBuilder.Controls
private TypeHandler typehandler;
private bool ignorebuttonchange = false;
//mxd
private ArgumentInfo arginfo;
#endregion
......@@ -171,7 +173,9 @@ namespace CodeImp.DoomBuilder.Controls
// This sets up the control for a specific argument
public void Setup(ArgumentInfo arginfo)
{
int oldvalue = 0;
this.arginfo = arginfo; //mxd
int oldvalue = 0;
// Get the original value
if(typehandler != null) oldvalue = typehandler.GetIntValue();
......@@ -225,6 +229,14 @@ namespace CodeImp.DoomBuilder.Controls
combobox_Validating(this, new CancelEventArgs());
}
//mxd. this sets default value
public void SetDefaultValue() {
typehandler.SetDefaultValue();
combobox.SelectedItem = null;
combobox.Text = typehandler.GetStringValue();
combobox_Validating(this, new CancelEventArgs());
}
// This clears the value
public void ClearValue()
{
......
......@@ -33,6 +33,7 @@ using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using CodeImp.DoomBuilder.Map;
using System.Globalization;
using CodeImp.DoomBuilder.Types;
#endregion
......@@ -237,6 +238,48 @@ namespace CodeImp.DoomBuilder.Controls
// Sort fields
Sort();
}
//mxd
public object GetValue(string name) {
//have required row?
foreach (DataGridViewRow row in fieldslist.Rows) {
// Row is a field?
if (row is FieldsEditorRow) {
FieldsEditorRow frow = row as FieldsEditorRow;
// Row name matches with field
if (frow.Name == name) {
// Apply value of field to row
if (frow.IsDefined && !frow.IsEmpty)
return frow.GetResult(null);
return null;
}
}
}
return null;
}
//mxd
public void SetValue(string name, object value, UniversalType type) {
//have required row?
foreach (DataGridViewRow row in fieldslist.Rows) {
// Row is a field?
if (row is FieldsEditorRow) {
FieldsEditorRow frow = row as FieldsEditorRow;
// Row name matches with field
if (frow.Name == name) {
// Apply value of field to row
frow.Define(value);
return;
}
}
}
//no such row... let's add it
FieldsEditorRow newfrow = new FieldsEditorRow(fieldslist, name, (int)type, value);
fieldslist.Rows.Insert(fieldslist.Rows.Count - 1, newfrow);
}
// This applies the current fields to a UniFields object
public void Apply(UniFields tofields)
......
......@@ -29,6 +29,7 @@ using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Types;
using CodeImp.DoomBuilder.IO;
using CodeImp.DoomBuilder.GZBuilder;
#endregion
......@@ -113,9 +114,12 @@ namespace CodeImp.DoomBuilder.Controls
angle.Text = l.AngleDeg.ToString() + "\u00B0";
tag.Text = l.Tag.ToString();
unpegged.Text = peggedness;
//mxd
bool hasArg0Str = General.Map.UDMF && Array.IndexOf(GZGeneral.ACS_SPECIALS, l.Action) != -1 && l.Fields.ContainsKey("arg0str");
// Arguments
arglbl1.Text = act.Args[0].Title + ":";
arglbl1.Text = hasArg0Str ? "Script name:" : act.Args[0].Title + ":"; //mxd
arglbl2.Text = act.Args[1].Title + ":";
arglbl3.Text = act.Args[2].Title + ":";
arglbl4.Text = act.Args[3].Title + ":";
......@@ -130,8 +134,14 @@ namespace CodeImp.DoomBuilder.Controls
arg3.Enabled = act.Args[2].Used;
arg4.Enabled = act.Args[3].Used;
arg5.Enabled = act.Args[4].Used;
th = General.Types.GetArgumentHandler(act.Args[0]);
th.SetValue(l.Args[0]); arg1.Text = th.GetStringValue();
//mxd
if (hasArg0Str) {
arg1.Text = '"' + l.Fields["arg0str"].Value.ToString() + '"';
} else {
th = General.Types.GetArgumentHandler(act.Args[0]);
th.SetValue(l.Args[0]); arg1.Text = th.GetStringValue();
}
th = General.Types.GetArgumentHandler(act.Args[1]);
th.SetValue(l.Args[1]); arg2.Text = th.GetStringValue();
th = General.Types.GetArgumentHandler(act.Args[2]);
......
......@@ -39,8 +39,9 @@ namespace CodeImp.DoomBuilder.Controls
internal abstract class ScriptDocumentTab : TabPage
{
#region ================== Constants
private const int EDITOR_BORDER_TOP = 8;
private const int NAVIGATOR_BORDER_TOP = 8; //mxd
private const int EDITOR_BORDER_TOP = 33;
private const int EDITOR_BORDER_BOTTOM = 4;
private const int EDITOR_BORDER_LEFT = 4;
private const int EDITOR_BORDER_RIGHT = 4;
......@@ -51,6 +52,8 @@ namespace CodeImp.DoomBuilder.Controls
// The script edit control
protected ScriptEditorControl editor;
//mxd
protected ComboBox navigator;
// Derived classes must set this!
protected ScriptConfiguration config;
......@@ -82,6 +85,17 @@ namespace CodeImp.DoomBuilder.Controls
{
// Keep panel
this.panel = panel;
//mxd
navigator = new ComboBox();
navigator.Location = new Point(EDITOR_BORDER_LEFT, NAVIGATOR_BORDER_TOP);
navigator.Width = this.ClientSize.Width - EDITOR_BORDER_LEFT - EDITOR_BORDER_RIGHT;
navigator.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
navigator.DropDownStyle = ComboBoxStyle.DropDownList;
navigator.Name = "navigator";
navigator.TabStop = true;
navigator.TabIndex = 0;
this.Controls.Add(navigator);
// Make the script control
editor = new ScriptEditorControl();
......@@ -91,7 +105,7 @@ namespace CodeImp.DoomBuilder.Controls
editor.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
editor.Name = "editor";
editor.TabStop = true;
editor.TabIndex = 0;
editor.TabIndex = 1;
this.Controls.Add(editor);
// Bind events
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment