mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-30 07:31:36 +00:00
Changed, Thing and Linedef Edit Forms, script selector drop-downs: scripts from include files are now shown using different color and after the map scripts.
Fixed, Visual mode, UDMF: sector geometry cache was not updated after using "Match Brightness" and "Change Brightness" actions on ceilings, so the changes made by them were not visible when using Classic modes in "View Ceiling Textures" mode. Fixed, Visual mode, UDMF: "Match Brightness" and "Change Brightness" actions set brightness incorrectly in some cases. Fixed: ACS script names gathering logic was unable to process relative #include and #import paths (like '#import "..\acs\qtilt.acs"'). Updated ZDoom_DECORATE.cfg.
This commit is contained in:
parent
386b74d2ba
commit
c07df8f596
19 changed files with 132 additions and 73 deletions
|
@ -520,6 +520,7 @@ constants
|
||||||
Weapon.BobSpeed;
|
Weapon.BobSpeed;
|
||||||
Weapon.BobStyle;
|
Weapon.BobStyle;
|
||||||
Weapon.KickBack;
|
Weapon.KickBack;
|
||||||
|
Weapon.DefaultKickBack;
|
||||||
Weapon.ReadySound;
|
Weapon.ReadySound;
|
||||||
Weapon.SelectionOrder;
|
Weapon.SelectionOrder;
|
||||||
Weapon.SisterWeapon;
|
Weapon.SisterWeapon;
|
||||||
|
|
|
@ -691,6 +691,9 @@
|
||||||
<DependentUpon>ActionSpecialHelpButton.cs</DependentUpon>
|
<DependentUpon>ActionSpecialHelpButton.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Controls\ButtonsNumericTextboxDesigner.cs" />
|
<Compile Include="Controls\ButtonsNumericTextboxDesigner.cs" />
|
||||||
|
<Compile Include="Controls\ColoredComboBox.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Controls\DebugConsole.cs">
|
<Compile Include="Controls\DebugConsole.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
54
Source/Core/Controls/ColoredComboBox.cs
Normal file
54
Source/Core/Controls/ColoredComboBox.cs
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.Controls
|
||||||
|
{
|
||||||
|
public class ColoredComboBox : ComboBox
|
||||||
|
{
|
||||||
|
public ColoredComboBox()
|
||||||
|
{
|
||||||
|
this.DrawMode = DrawMode.OwnerDrawFixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDrawItem(DrawItemEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnDrawItem(e);
|
||||||
|
e.DrawBackground();
|
||||||
|
ColoredComboBoxItem item = (ColoredComboBoxItem)this.Items[e.Index];
|
||||||
|
Brush brush = new SolidBrush(item.ForeColor);
|
||||||
|
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) brush = Brushes.White;
|
||||||
|
e.Graphics.DrawString(item.Text, this.Font, brush, e.Bounds.X, e.Bounds.Y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ColoredComboBoxItem
|
||||||
|
{
|
||||||
|
private string text = "";
|
||||||
|
private object value;
|
||||||
|
Color forecolor = Color.Black;
|
||||||
|
|
||||||
|
public string Text { get { return text; } set { text = value; } }
|
||||||
|
public object Value { get { return value; } set { this.value = value; } }
|
||||||
|
public Color ForeColor { get { return forecolor; } set { forecolor = value; } }
|
||||||
|
|
||||||
|
public ColoredComboBoxItem() { }
|
||||||
|
|
||||||
|
public ColoredComboBoxItem(object value)
|
||||||
|
{
|
||||||
|
this.text = value.ToString();
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ColoredComboBoxItem(object value, Color forecolor)
|
||||||
|
{
|
||||||
|
this.text = value.ToString();
|
||||||
|
this.value = value;
|
||||||
|
this.forecolor = forecolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1798,6 +1798,9 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
//mxd
|
//mxd
|
||||||
internal MemoryStream LoadFile(string name)
|
internal MemoryStream LoadFile(string name)
|
||||||
{
|
{
|
||||||
|
//relative path?
|
||||||
|
if(name.StartsWith("..\\")) name = name.Replace("..\\", "");
|
||||||
|
|
||||||
foreach (DataReader dr in containers)
|
foreach (DataReader dr in containers)
|
||||||
if (dr.FileExists(name)) return dr.LoadFile(name);
|
if (dr.FileExists(name)) return dr.LoadFile(name);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -6,17 +6,20 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data
|
||||||
{
|
{
|
||||||
private readonly string name;
|
private readonly string name;
|
||||||
private readonly int index;
|
private readonly int index;
|
||||||
private readonly int cursorPosition;
|
private readonly int cursorposition;
|
||||||
|
private readonly bool isinclude;
|
||||||
|
|
||||||
internal string Name { get { return name; } }
|
internal string Name { get { return name; } }
|
||||||
internal int Index { get { return index; } }
|
internal int Index { get { return index; } }
|
||||||
internal int CursorPosition { get { return cursorPosition; } }
|
internal int CursorPosition { get { return cursorposition; } }
|
||||||
|
internal bool IsInclude { get { return isinclude; } }
|
||||||
|
|
||||||
internal ScriptItem(int index, string name, int cursorPosition)
|
internal ScriptItem(int index, string name, int cursorPosition, bool isinclude)
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.index = index;
|
this.index = index;
|
||||||
this.cursorPosition = cursorPosition;
|
this.cursorposition = cursorPosition;
|
||||||
|
this.isinclude = isinclude;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal ScriptItem(int index, string name)
|
internal ScriptItem(int index, string name)
|
||||||
|
@ -27,6 +30,8 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data
|
||||||
|
|
||||||
internal static int SortByIndex(ScriptItem i1, ScriptItem i2)
|
internal static int SortByIndex(ScriptItem i1, ScriptItem i2)
|
||||||
{
|
{
|
||||||
|
if (i1.isinclude && !i2.isinclude) return 1;
|
||||||
|
if (!i1.isinclude && i2.isinclude) return -1;
|
||||||
if (i1.Index > i2.Index) return 1;
|
if (i1.Index > i2.Index) return 1;
|
||||||
if (i1.Index == i2.Index) return 0;
|
if (i1.Index == i2.Index) return 0;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -34,6 +39,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data
|
||||||
|
|
||||||
internal static int SortByName(ScriptItem i1, ScriptItem i2)
|
internal static int SortByName(ScriptItem i1, ScriptItem i2)
|
||||||
{
|
{
|
||||||
|
if (i1.isinclude && !i2.isinclude) return 1;
|
||||||
|
if (!i1.isinclude && i2.isinclude) return -1;
|
||||||
|
|
||||||
if (i1.Name == i2.Name) return 0;
|
if (i1.Name == i2.Name) return 0;
|
||||||
if (i1.Name.ToUpper()[0] > i2.Name.ToUpper()[0]) return 1;
|
if (i1.Name.ToUpper()[0] > i2.Name.ToUpper()[0]) return 1;
|
||||||
if (i1.Name.ToUpper()[0] == i2.Name.ToUpper()[0])
|
if (i1.Name.ToUpper()[0] == i2.Name.ToUpper()[0])
|
||||||
|
|
|
@ -80,7 +80,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
|
||||||
token = token.Substring(0, token.LastIndexOf('"'));
|
token = token.Substring(0, token.LastIndexOf('"'));
|
||||||
|
|
||||||
token = StripTokenQuotes(token);
|
token = StripTokenQuotes(token);
|
||||||
ScriptItem i = new ScriptItem(0, token, startPos);
|
ScriptItem i = new ScriptItem(0, token, startPos, isinclude);
|
||||||
namedScripts.Add(i);
|
namedScripts.Add(i);
|
||||||
}
|
}
|
||||||
else //should be numbered script
|
else //should be numbered script
|
||||||
|
@ -112,7 +112,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
|
||||||
}
|
}
|
||||||
|
|
||||||
name = (name.Length > 0 ? name + " [" + n + "]" : "Script " + n);
|
name = (name.Length > 0 ? name + " [" + n + "]" : "Script " + n);
|
||||||
ScriptItem i = new ScriptItem(n, name, startPos);
|
ScriptItem i = new ScriptItem(n, name, startPos, isinclude);
|
||||||
numberedScripts.Add(i);
|
numberedScripts.Add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
|
||||||
} while(!token.Contains(")"));
|
} while(!token.Contains(")"));
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptItem i = new ScriptItem(0, funcname, startPos);
|
ScriptItem i = new ScriptItem(0, funcname, startPos, isinclude);
|
||||||
functions.Add(i);
|
functions.Add(i);
|
||||||
}
|
}
|
||||||
else if (processIncludes && (token == "#include" || token == "#import"))
|
else if (processIncludes && (token == "#include" || token == "#import"))
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
|
||||||
|
|
||||||
string name = "";
|
string name = "";
|
||||||
foreach (string s in definition) name += s + " ";
|
foreach (string s in definition) name += s + " ";
|
||||||
actors.Add(new ScriptItem(0, name.TrimEnd(), startPos));
|
actors.Add(new ScriptItem(0, name.TrimEnd(), startPos, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
|
||||||
|
|
||||||
if (token == "{")
|
if (token == "{")
|
||||||
{
|
{
|
||||||
ScriptItem i = new ScriptItem(0, modelName, startPos);
|
ScriptItem i = new ScriptItem(0, modelName, startPos, false);
|
||||||
models.Add(i);
|
models.Add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2255,7 +2255,7 @@ namespace CodeImp.DoomBuilder.Geometry
|
||||||
temp = TextRenderer.MeasureText(obj.ToString(), cb.Font).Width;
|
temp = TextRenderer.MeasureText(obj.ToString(), cb.Font).Width;
|
||||||
if(temp > maxWidth) maxWidth = temp;
|
if(temp > maxWidth) maxWidth = temp;
|
||||||
}
|
}
|
||||||
return maxWidth > 0 ? maxWidth : 1;
|
return maxWidth > 0 ? maxWidth + 6 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
|
|
4
Source/Core/Windows/LinedefEditForm.Designer.cs
generated
4
Source/Core/Windows/LinedefEditForm.Designer.cs
generated
|
@ -46,7 +46,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.actiongroup = new System.Windows.Forms.GroupBox();
|
this.actiongroup = new System.Windows.Forms.GroupBox();
|
||||||
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
||||||
this.argspanel = new System.Windows.Forms.Panel();
|
this.argspanel = new System.Windows.Forms.Panel();
|
||||||
this.scriptNumbers = new System.Windows.Forms.ComboBox();
|
this.scriptNumbers = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
|
@ -738,7 +738,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl frontTextureOffset;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl frontTextureOffset;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
|
||||||
private System.Windows.Forms.ComboBox scriptNumbers;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNumbers;
|
||||||
private System.Windows.Forms.Panel panel;
|
private System.Windows.Forms.Panel panel;
|
||||||
private CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton actionhelp;
|
private CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton actionhelp;
|
||||||
private System.Windows.Forms.ToolTip tooltip;
|
private System.Windows.Forms.ToolTip tooltip;
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
|
@ -128,7 +129,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
||||||
|
|
||||||
foreach(ScriptItem si in General.Map.NumberedScripts)
|
foreach(ScriptItem si in General.Map.NumberedScripts)
|
||||||
scriptNumbers.Items.Add(si);
|
scriptNumbers.Items.Add(new ColoredComboBoxItem(si, si.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
|
|
||||||
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
||||||
|
|
||||||
|
@ -390,16 +391,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(scriptNumbers.SelectedIndex == -1)
|
|
||||||
{
|
|
||||||
scriptNumbers.Items.Add(new ScriptItem(a0, "Script " + a0));
|
|
||||||
scriptNumbers.SelectedIndex = scriptNumbers.Items.Count - 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(scriptNumbers.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
scriptNumbers.Text = arg0.Text;
|
scriptNumbers.Text = a0.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -478,7 +474,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
||||||
{
|
{
|
||||||
if(scriptNumbers.SelectedItem != null)
|
if(scriptNumbers.SelectedItem != null)
|
||||||
l.Args[0] = ((ScriptItem)scriptNumbers.SelectedItem).Index;
|
l.Args[0] = ((ScriptItem)((ColoredComboBoxItem)scriptNumbers.SelectedItem).Value).Index;
|
||||||
else if(!int.TryParse(scriptNumbers.Text.Trim(), out l.Args[0]))
|
else if(!int.TryParse(scriptNumbers.Text.Trim(), out l.Args[0]))
|
||||||
l.Args[0] = 0;
|
l.Args[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,8 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.actiongroup = new System.Windows.Forms.GroupBox();
|
this.actiongroup = new System.Windows.Forms.GroupBox();
|
||||||
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
||||||
this.argspanel = new System.Windows.Forms.Panel();
|
this.argspanel = new System.Windows.Forms.Panel();
|
||||||
this.scriptNumbers = new System.Windows.Forms.ComboBox();
|
this.scriptNumbers = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.scriptNames = new System.Windows.Forms.ComboBox();
|
this.scriptNames = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
|
@ -1503,7 +1503,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontsector;
|
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontsector;
|
||||||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backsector;
|
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backsector;
|
||||||
private System.Windows.Forms.CheckBox cbArgStr;
|
private System.Windows.Forms.CheckBox cbArgStr;
|
||||||
private System.Windows.Forms.ComboBox scriptNames;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNames;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
||||||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox lightFront;
|
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox lightFront;
|
||||||
private System.Windows.Forms.CheckBox cbLightAbsoluteFront;
|
private System.Windows.Forms.CheckBox cbLightAbsoluteFront;
|
||||||
|
@ -1530,7 +1530,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
|
||||||
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsFront;
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsFront;
|
||||||
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsBack;
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsBack;
|
||||||
private System.Windows.Forms.ComboBox scriptNumbers;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNumbers;
|
||||||
private System.Windows.Forms.GroupBox activationGroup;
|
private System.Windows.Forms.GroupBox activationGroup;
|
||||||
private System.Windows.Forms.PictureBox missingactivation;
|
private System.Windows.Forms.PictureBox missingactivation;
|
||||||
private System.Windows.Forms.ToolTip tooltip;
|
private System.Windows.Forms.ToolTip tooltip;
|
||||||
|
|
|
@ -26,7 +26,8 @@ using CodeImp.DoomBuilder.Config;
|
||||||
using CodeImp.DoomBuilder.GZBuilder.Data; //mxd
|
using CodeImp.DoomBuilder.GZBuilder.Data; //mxd
|
||||||
using CodeImp.DoomBuilder.Types;
|
using CodeImp.DoomBuilder.Types;
|
||||||
using CodeImp.DoomBuilder.GZBuilder.Tools;
|
using CodeImp.DoomBuilder.GZBuilder.Tools;
|
||||||
using CodeImp.DoomBuilder.GZBuilder.Controls; //mxd
|
using CodeImp.DoomBuilder.GZBuilder.Controls;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -217,12 +218,14 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
|
|
||||||
//mxd. Setup script numbers
|
//mxd. Setup script numbers
|
||||||
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
||||||
foreach(ScriptItem si in General.Map.NumberedScripts) scriptNumbers.Items.Add(si);
|
foreach (ScriptItem si in General.Map.NumberedScripts)
|
||||||
|
scriptNumbers.Items.Add(new ColoredComboBoxItem(si, si.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
||||||
|
|
||||||
//mxd. Setup script names
|
//mxd. Setup script names
|
||||||
scriptNames.Location = scriptNumbers.Location;
|
scriptNames.Location = scriptNumbers.Location;
|
||||||
foreach(ScriptItem nsi in General.Map.NamedScripts) scriptNames.Items.Add(nsi);
|
foreach (ScriptItem nsi in General.Map.NamedScripts)
|
||||||
|
scriptNames.Items.Add(new ColoredComboBoxItem(nsi, nsi.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
scriptNames.DropDownWidth = Tools.GetDropDownWidth(scriptNames);
|
scriptNames.DropDownWidth = Tools.GetDropDownWidth(scriptNames);
|
||||||
|
|
||||||
// Initialize custom fields editor
|
// Initialize custom fields editor
|
||||||
|
@ -636,16 +639,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(scriptNumbers.SelectedIndex == -1)
|
|
||||||
{
|
|
||||||
scriptNumbers.Items.Add(new ScriptItem(a0, "Script " + a0));
|
|
||||||
scriptNumbers.SelectedIndex = scriptNumbers.Items.Count - 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(scriptNumbers.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
scriptNumbers.Text = arg0.Text;
|
scriptNumbers.Text = a0.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -799,7 +797,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
||||||
{
|
{
|
||||||
if(scriptNumbers.SelectedItem != null)
|
if(scriptNumbers.SelectedItem != null)
|
||||||
l.Args[0] = ((ScriptItem)scriptNumbers.SelectedItem).Index;
|
l.Args[0] = ((ScriptItem)((ColoredComboBoxItem)scriptNumbers.SelectedItem).Value).Index;
|
||||||
else if(!int.TryParse(scriptNumbers.Text.Trim(), out l.Args[0]))
|
else if(!int.TryParse(scriptNumbers.Text.Trim(), out l.Args[0]))
|
||||||
l.Args[0] = 0;
|
l.Args[0] = 0;
|
||||||
|
|
||||||
|
|
4
Source/Core/Windows/ThingEditForm.Designer.cs
generated
4
Source/Core/Windows/ThingEditForm.Designer.cs
generated
|
@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
this.actiongroup = new System.Windows.Forms.GroupBox();
|
this.actiongroup = new System.Windows.Forms.GroupBox();
|
||||||
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
||||||
this.hexenpanel = new System.Windows.Forms.Panel();
|
this.hexenpanel = new System.Windows.Forms.Panel();
|
||||||
this.scriptNumbers = new System.Windows.Forms.ComboBox();
|
this.scriptNumbers = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
|
@ -672,7 +672,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
private System.Windows.Forms.CheckBox cbAbsoluteHeight;
|
private System.Windows.Forms.CheckBox cbAbsoluteHeight;
|
||||||
private System.Windows.Forms.CheckBox cbRandomAngle;
|
private System.Windows.Forms.CheckBox cbRandomAngle;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
||||||
private System.Windows.Forms.ComboBox scriptNumbers;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNumbers;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
|
||||||
private System.Windows.Forms.PictureBox hint;
|
private System.Windows.Forms.PictureBox hint;
|
||||||
private System.Windows.Forms.Label hintlabel;
|
private System.Windows.Forms.Label hintlabel;
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
|
@ -117,7 +118,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
scriptNumbers.Location = new Point(arg0.Location.X, arg0.Location.Y + 2);
|
||||||
|
|
||||||
foreach(ScriptItem si in General.Map.NumberedScripts)
|
foreach(ScriptItem si in General.Map.NumberedScripts)
|
||||||
scriptNumbers.Items.Add(si);
|
scriptNumbers.Items.Add(new ColoredComboBoxItem(si, si.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
|
|
||||||
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
||||||
}
|
}
|
||||||
|
@ -274,16 +275,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(scriptNumbers.SelectedIndex == -1)
|
|
||||||
{
|
|
||||||
scriptNumbers.Items.Add(new ScriptItem(a0, "Script " + a0));
|
|
||||||
scriptNumbers.SelectedIndex = scriptNumbers.Items.Count - 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(scriptNumbers.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
scriptNumbers.Text = arg0.Text;
|
scriptNumbers.Text = a0.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -469,7 +465,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
||||||
{
|
{
|
||||||
if(scriptNumbers.SelectedItem != null)
|
if(scriptNumbers.SelectedItem != null)
|
||||||
t.Args[0] = ((ScriptItem)scriptNumbers.SelectedItem).Index;
|
t.Args[0] = ((ScriptItem)((ColoredComboBoxItem)scriptNumbers.SelectedItem).Value).Index;
|
||||||
else if(!int.TryParse(scriptNumbers.Text.Trim(), out t.Args[0]))
|
else if(!int.TryParse(scriptNumbers.Text.Trim(), out t.Args[0]))
|
||||||
t.Args[0] = 0;
|
t.Args[0] = 0;
|
||||||
|
|
||||||
|
|
|
@ -79,8 +79,8 @@
|
||||||
this.actiongroup = new System.Windows.Forms.GroupBox();
|
this.actiongroup = new System.Windows.Forms.GroupBox();
|
||||||
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
|
||||||
this.hexenpanel = new System.Windows.Forms.Panel();
|
this.hexenpanel = new System.Windows.Forms.Panel();
|
||||||
this.scriptNumbers = new System.Windows.Forms.ComboBox();
|
this.scriptNumbers = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.scriptNames = new System.Windows.Forms.ComboBox();
|
this.scriptNames = new CodeImp.DoomBuilder.Controls.ColoredComboBox();
|
||||||
this.cbArgStr = new System.Windows.Forms.CheckBox();
|
this.cbArgStr = new System.Windows.Forms.CheckBox();
|
||||||
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
|
||||||
|
@ -1041,10 +1041,10 @@
|
||||||
private CodeImp.DoomBuilder.Controls.ThingBrowserControl thingtype;
|
private CodeImp.DoomBuilder.Controls.ThingBrowserControl thingtype;
|
||||||
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox angle;
|
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox angle;
|
||||||
private System.Windows.Forms.CheckBox cbArgStr;
|
private System.Windows.Forms.CheckBox cbArgStr;
|
||||||
private System.Windows.Forms.ComboBox scriptNames;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNames;
|
||||||
private System.Windows.Forms.Label labelAngle;
|
private System.Windows.Forms.Label labelAngle;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
|
||||||
private System.Windows.Forms.ComboBox scriptNumbers;
|
private CodeImp.DoomBuilder.Controls.ColoredComboBox scriptNumbers;
|
||||||
private System.Windows.Forms.Label labelGravity;
|
private System.Windows.Forms.Label labelGravity;
|
||||||
private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
|
private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
|
||||||
private System.Windows.Forms.PictureBox hint;
|
private System.Windows.Forms.PictureBox hint;
|
||||||
|
|
|
@ -20,6 +20,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
|
@ -141,8 +142,10 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
scriptNames.Location = scriptNumbers.Location;
|
scriptNames.Location = scriptNumbers.Location;
|
||||||
|
|
||||||
// Setup script names
|
// Setup script names
|
||||||
foreach(ScriptItem nsi in General.Map.NamedScripts) scriptNames.Items.Add(nsi);
|
foreach(ScriptItem nsi in General.Map.NamedScripts)
|
||||||
foreach(ScriptItem si in General.Map.NumberedScripts) scriptNumbers.Items.Add(si);
|
scriptNames.Items.Add(new ColoredComboBoxItem(nsi, nsi.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
|
foreach(ScriptItem si in General.Map.NumberedScripts)
|
||||||
|
scriptNumbers.Items.Add(new ColoredComboBoxItem(si, si.IsInclude ? SystemColors.HotTrack : SystemColors.WindowText));
|
||||||
scriptNames.DropDownWidth = Tools.GetDropDownWidth(scriptNames);
|
scriptNames.DropDownWidth = Tools.GetDropDownWidth(scriptNames);
|
||||||
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
scriptNumbers.DropDownWidth = Tools.GetDropDownWidth(scriptNumbers);
|
||||||
|
|
||||||
|
@ -354,16 +357,11 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(scriptNumbers.SelectedIndex == -1)
|
|
||||||
{
|
|
||||||
scriptNumbers.Items.Add(new ScriptItem(a0, "Script " + a0));
|
|
||||||
scriptNumbers.SelectedIndex = scriptNumbers.Items.Count - 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(scriptNumbers.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
scriptNumbers.Text = arg0.Text;
|
scriptNumbers.Text = a0.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -611,7 +609,7 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
if(!string.IsNullOrEmpty(scriptNumbers.Text))
|
||||||
{
|
{
|
||||||
if(scriptNumbers.SelectedItem != null)
|
if(scriptNumbers.SelectedItem != null)
|
||||||
t.Args[0] = ((ScriptItem)scriptNumbers.SelectedItem).Index;
|
t.Args[0] = ((ScriptItem)((ColoredComboBoxItem)scriptNumbers.SelectedItem).Value).Index;
|
||||||
else if(!int.TryParse(scriptNumbers.Text.Trim(), out t.Args[0]))
|
else if(!int.TryParse(scriptNumbers.Text.Trim(), out t.Args[0]))
|
||||||
t.Args[0] = 0;
|
t.Args[0] = 0;
|
||||||
|
|
||||||
|
|
|
@ -2503,11 +2503,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
if (v.Level.sector.Fields.GetValue("lightfloorabsolute", false))
|
if (v.Level.sector.Fields.GetValue("lightfloorabsolute", false))
|
||||||
{
|
{
|
||||||
UDMFTools.SetInteger(v.Level.sector.Fields, "lightfloor", targetbrightness, 0);
|
v.Level.sector.Fields["lightfloor"] = new UniValue(UniversalType.Integer, targetbrightness);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
v.Level.sector.Fields["lightfloor"] = new UniValue(UniversalType.Integer, targetbrightness - v.Level.sector.Brightness);
|
UDMFTools.SetInteger(v.Level.sector.Fields, "lightfloor", targetbrightness - v.Level.sector.Brightness, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
v.Sector.UpdateSectorGeometry(false);
|
v.Sector.UpdateSectorGeometry(false);
|
||||||
|
@ -2517,14 +2517,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
VisualCeiling v = obj as VisualCeiling;
|
VisualCeiling v = obj as VisualCeiling;
|
||||||
v.Level.sector.Fields.BeforeFieldsChange();
|
v.Level.sector.Fields.BeforeFieldsChange();
|
||||||
v.Sector.Changed = true;
|
v.Sector.Changed = true;
|
||||||
|
v.Sector.Sector.UpdateNeeded = true;
|
||||||
|
|
||||||
if(v.Level.sector.Fields.GetValue("lightceilingabsolute", false))
|
if(v.Level.sector.Fields.GetValue("lightceilingabsolute", false))
|
||||||
{
|
{
|
||||||
UDMFTools.SetInteger(v.Level.sector.Fields, "lightceiling", targetbrightness, 0);
|
v.Level.sector.Fields["lightceiling"] = new UniValue(UniversalType.Integer, targetbrightness);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
v.Level.sector.Fields["lightceiling"] = new UniValue(UniversalType.Integer, targetbrightness - v.Level.sector.Brightness);
|
UDMFTools.SetInteger(v.Level.sector.Fields, "lightceiling", targetbrightness - v.Level.sector.Brightness, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
v.Sector.UpdateSectorGeometry(false);
|
v.Sector.UpdateSectorGeometry(false);
|
||||||
|
@ -2537,11 +2538,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
if (v.Sidedef.Fields.GetValue("lightabsolute", false))
|
if (v.Sidedef.Fields.GetValue("lightabsolute", false))
|
||||||
{
|
{
|
||||||
UDMFTools.SetInteger(v.Sidedef.Fields, "light", targetbrightness, 0);
|
v.Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, targetbrightness);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
v.Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, targetbrightness - v.Sidedef.Sector.Brightness);
|
UDMFTools.SetInteger(v.Sidedef.Fields, "light", targetbrightness - v.Sidedef.Sector.Brightness, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Update 'lightfog' flag
|
//Update 'lightfog' flag
|
||||||
|
|
|
@ -387,8 +387,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
Sector.Sector.Fields.BeforeFieldsChange();
|
Sector.Sector.Fields.BeforeFieldsChange();
|
||||||
|
|
||||||
//apply changes
|
//apply changes
|
||||||
Sector.Sector.Fields["lightceiling"] = new UniValue(UniversalType.Integer, newLight);
|
UDMFTools.SetInteger(Sector.Sector.Fields, "lightceiling", newLight, (absolute ? int.MinValue : 0));
|
||||||
mode.SetActionResult("Changed ceiling brightness to " + newLight + ".");
|
mode.SetActionResult("Changed ceiling brightness to " + newLight + ".");
|
||||||
|
Sector.Sector.UpdateNeeded = true;
|
||||||
Sector.Sector.UpdateCache();
|
Sector.Sector.UpdateCache();
|
||||||
|
|
||||||
//rebuild sector
|
//rebuild sector
|
||||||
|
|
Loading…
Reference in a new issue