mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-22 11:51:25 +00:00
- finished sector edit dialog
- cleaned up unused variables
This commit is contained in:
parent
2e741f7c8e
commit
0d8ff97abd
24 changed files with 969 additions and 35 deletions
|
@ -270,6 +270,51 @@ universalfields
|
|||
default = 0;
|
||||
}
|
||||
}
|
||||
|
||||
sectors
|
||||
{
|
||||
flat_scale_x
|
||||
{
|
||||
type = 1;
|
||||
default = 1.0f;
|
||||
}
|
||||
|
||||
flate_scale_y
|
||||
{
|
||||
type = 1;
|
||||
default = 1.0f;
|
||||
}
|
||||
|
||||
flat_offset_x
|
||||
{
|
||||
type = 1;
|
||||
default = 0.0f;
|
||||
}
|
||||
|
||||
flat_offset_y
|
||||
{
|
||||
type = 1;
|
||||
default = 0.0f;
|
||||
}
|
||||
|
||||
colormap
|
||||
{
|
||||
type = 2;
|
||||
default = "";
|
||||
}
|
||||
|
||||
normalmap
|
||||
{
|
||||
type = 5;
|
||||
default = "FLOOR1";
|
||||
}
|
||||
|
||||
second_effect
|
||||
{
|
||||
type = 4;
|
||||
default = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -148,6 +148,12 @@
|
|||
<Compile Include="Interface\ConfigForm.Designer.cs">
|
||||
<DependentUpon>ConfigForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Interface\EffectBrowserForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Interface\EffectBrowserForm.Designer.cs">
|
||||
<DependentUpon>EffectBrowserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Interface\FieldsEditorRow.cs" />
|
||||
<Compile Include="Interface\FieldsEditorControl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
|
@ -421,6 +427,10 @@
|
|||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ConfigForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Interface\EffectBrowserForm.resx">
|
||||
<DependentUpon>EffectBrowserForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Interface\FieldsEditorControl.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>FieldsEditorControl.cs</DependentUpon>
|
||||
|
|
|
@ -30,4 +30,3 @@ using System.Runtime.InteropServices;
|
|||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyFileVersion("1.0.*")]
|
||||
|
|
|
@ -59,7 +59,6 @@ namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
|||
{
|
||||
WorldVertex[] verts;
|
||||
WorldVertex v;
|
||||
PixelColor pc;
|
||||
|
||||
// Load floor texture
|
||||
base.Texture = General.Map.Data.GetFlatImage(s.LongCeilTexture);
|
||||
|
|
|
@ -58,7 +58,6 @@ namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
|||
public VisualFloor(Sector s)
|
||||
{
|
||||
WorldVertex[] verts;
|
||||
PixelColor pc;
|
||||
|
||||
// Load floor texture
|
||||
base.Texture = General.Map.Data.GetFlatImage(s.LongFloorTexture);
|
||||
|
|
|
@ -58,7 +58,6 @@ namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
|||
public VisualLower(Sidedef s)
|
||||
{
|
||||
WorldVertex[] verts;
|
||||
PixelColor pc;
|
||||
float geotop;
|
||||
float geobottom;
|
||||
float geoheight;
|
||||
|
|
|
@ -58,7 +58,6 @@ namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
|||
public VisualMiddle(Sidedef s)
|
||||
{
|
||||
WorldVertex[] verts;
|
||||
PixelColor pc;
|
||||
float geotop;
|
||||
float geobottom;
|
||||
float geoheight;
|
||||
|
|
|
@ -58,7 +58,6 @@ namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
|||
public VisualUpper(Sidedef s)
|
||||
{
|
||||
WorldVertex[] verts;
|
||||
PixelColor pc;
|
||||
float geotop;
|
||||
float geobottom;
|
||||
float geoheight;
|
||||
|
|
|
@ -77,10 +77,11 @@ namespace CodeImp.DoomBuilder.Config
|
|||
// Sectors
|
||||
private Dictionary<int, SectorEffectInfo> sectoreffects;
|
||||
private List<SectorEffectInfo> sortedsectoreffects;
|
||||
private List<GeneralizedCategory> geneffectcategories;
|
||||
private List<GeneralizedOption> geneffectoptions;
|
||||
|
||||
// Universal fields
|
||||
private List<UniversalFieldInfo> linedeffields;
|
||||
private List<UniversalFieldInfo> sectorfields;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -121,10 +122,11 @@ namespace CodeImp.DoomBuilder.Config
|
|||
// Sectors
|
||||
public IDictionary<int, SectorEffectInfo> SectorEffects { get { return sectoreffects; } }
|
||||
public List<SectorEffectInfo> SortedSectorEffects { get { return sortedsectoreffects; } }
|
||||
public List<GeneralizedCategory> GenEffectCategories { get { return genactioncategories; } }
|
||||
public List<GeneralizedOption> GenEffectOptions { get { return geneffectoptions; } }
|
||||
|
||||
// Universal fields
|
||||
public List<UniversalFieldInfo> LinedefFields { get { return linedeffields; } }
|
||||
public List<UniversalFieldInfo> SectorFields { get { return sectorfields; } }
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -145,7 +147,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
this.genactioncategories = new List<GeneralizedCategory>();
|
||||
this.sectoreffects = new Dictionary<int, SectorEffectInfo>();
|
||||
this.sortedsectoreffects = new List<SectorEffectInfo>();
|
||||
this.geneffectcategories = new List<GeneralizedCategory>();
|
||||
this.geneffectoptions = new List<GeneralizedOption>();
|
||||
|
||||
// Read general settings
|
||||
defaulttexturescale = cfg.ReadSetting("defaulttexturescale", 1f);
|
||||
|
@ -182,6 +184,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
|
||||
// Universal fields
|
||||
linedeffields = LoadUniversalFields("linedefs");
|
||||
sectorfields = LoadUniversalFields("sectors");
|
||||
}
|
||||
|
||||
// Destructor
|
||||
|
@ -212,7 +215,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
uf = new UniversalFieldInfo(elementname, de.Key.ToString(), cfg);
|
||||
list.Add(uf);
|
||||
}
|
||||
catch(Exception e)
|
||||
catch(Exception)
|
||||
{
|
||||
General.WriteLogLine("WARNING: Unable to read universal field definition 'universalfields." + elementname + "." + de.Key + "'!");
|
||||
}
|
||||
|
@ -421,15 +424,15 @@ namespace CodeImp.DoomBuilder.Config
|
|||
{
|
||||
IDictionary dic;
|
||||
|
||||
// Get linedef activations
|
||||
// Get sector effects
|
||||
dic = cfg.ReadSetting("gen_sectortypes", new Hashtable());
|
||||
foreach(DictionaryEntry de in dic)
|
||||
{
|
||||
// Check for valid structure
|
||||
if(de.Value is IDictionary)
|
||||
{
|
||||
// Add category
|
||||
geneffectcategories.Add(new GeneralizedCategory("gen_sectortypes", de.Key.ToString(), cfg));
|
||||
// Add option
|
||||
geneffectoptions.Add(new GeneralizedOption("gen_sectortypes", "", de.Key.ToString(), de.Value as IDictionary));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -469,13 +472,13 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
|
||||
// This checks if an action is generalized or predefined
|
||||
public bool IsGeneralizedAction(int action)
|
||||
public static bool IsGeneralized(int action, List<GeneralizedCategory> categories)
|
||||
{
|
||||
// Only actions above 0
|
||||
if(action > 0)
|
||||
{
|
||||
// Go for all categories
|
||||
foreach(GeneralizedCategory ac in genactioncategories)
|
||||
foreach(GeneralizedCategory ac in categories)
|
||||
{
|
||||
// Check if the action is within range of this category
|
||||
if((action >= ac.Offset) && (action < (ac.Offset + ac.Length))) return true;
|
||||
|
|
|
@ -59,7 +59,12 @@ namespace CodeImp.DoomBuilder.Config
|
|||
internal GeneralizedOption(string structure, string cat, string name, IDictionary bitslist)
|
||||
{
|
||||
int index;
|
||||
string fullpath;
|
||||
|
||||
// Determine path
|
||||
if(cat.Length > 0) fullpath = structure + "." + cat;
|
||||
else fullpath = structure;
|
||||
|
||||
// Initialize
|
||||
this.name = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name);
|
||||
this.bits = new List<GeneralizedBit>();
|
||||
|
@ -75,7 +80,7 @@ namespace CodeImp.DoomBuilder.Config
|
|||
}
|
||||
else
|
||||
{
|
||||
General.WriteLogLine("WARNING: Structure '" + structure + "." + cat + "." + name + "' contains invalid entries!");
|
||||
General.WriteLogLine("WARNING: Structure '" + fullpath + "." + name + "' contains invalid entries!");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2
Source/Interface/ActionBrowserForm.Designer.cs
generated
2
Source/Interface/ActionBrowserForm.Designer.cs
generated
|
@ -459,7 +459,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.Opacity = 0;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "ActionBrowserForm";
|
||||
this.Text = "Edit Action";
|
||||
groupBox1.ResumeLayout(false);
|
||||
groupBox1.PerformLayout();
|
||||
groupBox2.ResumeLayout(false);
|
||||
|
|
|
@ -114,7 +114,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
category.Items.AddRange(General.Map.Config.GenActionCategories.ToArray());
|
||||
|
||||
// Given action is generalized?
|
||||
if(General.Map.Config.IsGeneralizedAction(action))
|
||||
if(GameConfiguration.IsGeneralized(action, General.Map.Config.GenActionCategories))
|
||||
{
|
||||
// Open the generalized tab
|
||||
tabs.SelectedTab = tabgeneralized;
|
||||
|
|
|
@ -168,15 +168,6 @@
|
|||
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="category.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
|
|
|
@ -35,12 +35,16 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
// Events
|
||||
public event EventHandler ValueChanges;
|
||||
|
||||
// Variables
|
||||
private List<GeneralizedCategory> generalizedcategories;
|
||||
|
||||
// Constants
|
||||
private const string NUMBER_SEPERATOR = "\t";
|
||||
|
||||
// Properties
|
||||
public bool Empty { get { return (number.Text.Length == 0); } set { if(value) number.Text = ""; } }
|
||||
public int Value { get { if(number.Text.Length > 0) return int.Parse(number.Text); else return 0; } set { number.Text = value.ToString(); } }
|
||||
public List<GeneralizedCategory> GeneralizedCategories { get { return generalizedcategories; } set { generalizedcategories = value; } }
|
||||
|
||||
// Constructor
|
||||
public ActionSelectorControl()
|
||||
|
@ -96,7 +100,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
displayname = "";
|
||||
else if(intnumber == 0)
|
||||
displayname = "None";
|
||||
else if(General.Map.Config.IsGeneralizedAction(intnumber))
|
||||
else if((generalizedcategories != null) && GameConfiguration.IsGeneralized(intnumber, generalizedcategories))
|
||||
displayname = "Generalized (" + General.Map.Config.GetGeneralizedActionCategory(intnumber) + ")";
|
||||
else
|
||||
displayname = "Unknown";
|
||||
|
|
394
Source/Interface/EffectBrowserForm.Designer.cs
generated
Normal file
394
Source/Interface/EffectBrowserForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,394 @@
|
|||
namespace CodeImp.DoomBuilder.Interface
|
||||
{
|
||||
partial class EffectBrowserForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if(disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.GroupBox groupBox2;
|
||||
this.option7 = new System.Windows.Forms.ComboBox();
|
||||
this.option7label = new System.Windows.Forms.Label();
|
||||
this.option6 = new System.Windows.Forms.ComboBox();
|
||||
this.option6label = new System.Windows.Forms.Label();
|
||||
this.option5 = new System.Windows.Forms.ComboBox();
|
||||
this.option5label = new System.Windows.Forms.Label();
|
||||
this.option4 = new System.Windows.Forms.ComboBox();
|
||||
this.option4label = new System.Windows.Forms.Label();
|
||||
this.option3 = new System.Windows.Forms.ComboBox();
|
||||
this.option3label = new System.Windows.Forms.Label();
|
||||
this.option2 = new System.Windows.Forms.ComboBox();
|
||||
this.option2label = new System.Windows.Forms.Label();
|
||||
this.option1 = new System.Windows.Forms.ComboBox();
|
||||
this.option1label = new System.Windows.Forms.Label();
|
||||
this.option0 = new System.Windows.Forms.ComboBox();
|
||||
this.option0label = new System.Windows.Forms.Label();
|
||||
this.cancel = new System.Windows.Forms.Button();
|
||||
this.apply = new System.Windows.Forms.Button();
|
||||
this.tabs = new System.Windows.Forms.TabControl();
|
||||
this.tabeffects = new System.Windows.Forms.TabPage();
|
||||
this.effects = new System.Windows.Forms.ListView();
|
||||
this.colnumber = new System.Windows.Forms.ColumnHeader();
|
||||
this.colname = new System.Windows.Forms.ColumnHeader();
|
||||
this.tabgeneralized = new System.Windows.Forms.TabPage();
|
||||
groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
groupBox2.SuspendLayout();
|
||||
this.tabs.SuspendLayout();
|
||||
this.tabeffects.SuspendLayout();
|
||||
this.tabgeneralized.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
groupBox2.Controls.Add(this.option7);
|
||||
groupBox2.Controls.Add(this.option7label);
|
||||
groupBox2.Controls.Add(this.option6);
|
||||
groupBox2.Controls.Add(this.option6label);
|
||||
groupBox2.Controls.Add(this.option5);
|
||||
groupBox2.Controls.Add(this.option5label);
|
||||
groupBox2.Controls.Add(this.option4);
|
||||
groupBox2.Controls.Add(this.option4label);
|
||||
groupBox2.Controls.Add(this.option3);
|
||||
groupBox2.Controls.Add(this.option3label);
|
||||
groupBox2.Controls.Add(this.option2);
|
||||
groupBox2.Controls.Add(this.option2label);
|
||||
groupBox2.Controls.Add(this.option1);
|
||||
groupBox2.Controls.Add(this.option1label);
|
||||
groupBox2.Controls.Add(this.option0);
|
||||
groupBox2.Controls.Add(this.option0label);
|
||||
groupBox2.Location = new System.Drawing.Point(6, 6);
|
||||
groupBox2.Name = "groupBox2";
|
||||
groupBox2.Size = new System.Drawing.Size(379, 397);
|
||||
groupBox2.TabIndex = 1;
|
||||
groupBox2.TabStop = false;
|
||||
groupBox2.Text = " Options ";
|
||||
//
|
||||
// option7
|
||||
//
|
||||
this.option7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option7.FormattingEnabled = true;
|
||||
this.option7.Location = new System.Drawing.Point(118, 280);
|
||||
this.option7.Name = "option7";
|
||||
this.option7.Size = new System.Drawing.Size(199, 22);
|
||||
this.option7.TabIndex = 9;
|
||||
this.option7.Visible = false;
|
||||
//
|
||||
// option7label
|
||||
//
|
||||
this.option7label.Location = new System.Drawing.Point(3, 283);
|
||||
this.option7label.Name = "option7label";
|
||||
this.option7label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option7label.TabIndex = 16;
|
||||
this.option7label.Text = "Option:";
|
||||
this.option7label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option7label.Visible = false;
|
||||
//
|
||||
// option6
|
||||
//
|
||||
this.option6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option6.FormattingEnabled = true;
|
||||
this.option6.Location = new System.Drawing.Point(118, 244);
|
||||
this.option6.Name = "option6";
|
||||
this.option6.Size = new System.Drawing.Size(199, 22);
|
||||
this.option6.TabIndex = 8;
|
||||
this.option6.Visible = false;
|
||||
//
|
||||
// option6label
|
||||
//
|
||||
this.option6label.Location = new System.Drawing.Point(3, 247);
|
||||
this.option6label.Name = "option6label";
|
||||
this.option6label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option6label.TabIndex = 14;
|
||||
this.option6label.Text = "Option:";
|
||||
this.option6label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option6label.Visible = false;
|
||||
//
|
||||
// option5
|
||||
//
|
||||
this.option5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option5.FormattingEnabled = true;
|
||||
this.option5.Location = new System.Drawing.Point(118, 208);
|
||||
this.option5.Name = "option5";
|
||||
this.option5.Size = new System.Drawing.Size(199, 22);
|
||||
this.option5.TabIndex = 7;
|
||||
this.option5.Visible = false;
|
||||
//
|
||||
// option5label
|
||||
//
|
||||
this.option5label.Location = new System.Drawing.Point(3, 211);
|
||||
this.option5label.Name = "option5label";
|
||||
this.option5label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option5label.TabIndex = 12;
|
||||
this.option5label.Text = "Option:";
|
||||
this.option5label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option5label.Visible = false;
|
||||
//
|
||||
// option4
|
||||
//
|
||||
this.option4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option4.FormattingEnabled = true;
|
||||
this.option4.Location = new System.Drawing.Point(118, 172);
|
||||
this.option4.Name = "option4";
|
||||
this.option4.Size = new System.Drawing.Size(199, 22);
|
||||
this.option4.TabIndex = 6;
|
||||
this.option4.Visible = false;
|
||||
//
|
||||
// option4label
|
||||
//
|
||||
this.option4label.Location = new System.Drawing.Point(3, 175);
|
||||
this.option4label.Name = "option4label";
|
||||
this.option4label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option4label.TabIndex = 10;
|
||||
this.option4label.Text = "Option:";
|
||||
this.option4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option4label.Visible = false;
|
||||
//
|
||||
// option3
|
||||
//
|
||||
this.option3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option3.FormattingEnabled = true;
|
||||
this.option3.Location = new System.Drawing.Point(118, 136);
|
||||
this.option3.Name = "option3";
|
||||
this.option3.Size = new System.Drawing.Size(199, 22);
|
||||
this.option3.TabIndex = 5;
|
||||
this.option3.Visible = false;
|
||||
//
|
||||
// option3label
|
||||
//
|
||||
this.option3label.Location = new System.Drawing.Point(3, 139);
|
||||
this.option3label.Name = "option3label";
|
||||
this.option3label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option3label.TabIndex = 8;
|
||||
this.option3label.Text = "Option:";
|
||||
this.option3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option3label.Visible = false;
|
||||
//
|
||||
// option2
|
||||
//
|
||||
this.option2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option2.FormattingEnabled = true;
|
||||
this.option2.Location = new System.Drawing.Point(118, 100);
|
||||
this.option2.Name = "option2";
|
||||
this.option2.Size = new System.Drawing.Size(199, 22);
|
||||
this.option2.TabIndex = 4;
|
||||
this.option2.Visible = false;
|
||||
//
|
||||
// option2label
|
||||
//
|
||||
this.option2label.Location = new System.Drawing.Point(3, 103);
|
||||
this.option2label.Name = "option2label";
|
||||
this.option2label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option2label.TabIndex = 6;
|
||||
this.option2label.Text = "Option:";
|
||||
this.option2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option2label.Visible = false;
|
||||
//
|
||||
// option1
|
||||
//
|
||||
this.option1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option1.FormattingEnabled = true;
|
||||
this.option1.Location = new System.Drawing.Point(118, 64);
|
||||
this.option1.Name = "option1";
|
||||
this.option1.Size = new System.Drawing.Size(199, 22);
|
||||
this.option1.TabIndex = 3;
|
||||
this.option1.Visible = false;
|
||||
//
|
||||
// option1label
|
||||
//
|
||||
this.option1label.Location = new System.Drawing.Point(3, 67);
|
||||
this.option1label.Name = "option1label";
|
||||
this.option1label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option1label.TabIndex = 4;
|
||||
this.option1label.Text = "Option:";
|
||||
this.option1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option1label.Visible = false;
|
||||
//
|
||||
// option0
|
||||
//
|
||||
this.option0.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.option0.FormattingEnabled = true;
|
||||
this.option0.Location = new System.Drawing.Point(118, 28);
|
||||
this.option0.Name = "option0";
|
||||
this.option0.Size = new System.Drawing.Size(199, 22);
|
||||
this.option0.TabIndex = 2;
|
||||
this.option0.Visible = false;
|
||||
//
|
||||
// option0label
|
||||
//
|
||||
this.option0label.Location = new System.Drawing.Point(3, 31);
|
||||
this.option0label.Name = "option0label";
|
||||
this.option0label.Size = new System.Drawing.Size(109, 19);
|
||||
this.option0label.TabIndex = 2;
|
||||
this.option0label.Text = "Option:";
|
||||
this.option0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.option0label.Visible = false;
|
||||
//
|
||||
// cancel
|
||||
//
|
||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancel.Location = new System.Drawing.Point(297, 459);
|
||||
this.cancel.Name = "cancel";
|
||||
this.cancel.Size = new System.Drawing.Size(112, 27);
|
||||
this.cancel.TabIndex = 11;
|
||||
this.cancel.Text = "Cancel";
|
||||
this.cancel.UseVisualStyleBackColor = true;
|
||||
this.cancel.Click += new System.EventHandler(this.cancel_Click);
|
||||
//
|
||||
// apply
|
||||
//
|
||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.apply.Location = new System.Drawing.Point(177, 459);
|
||||
this.apply.Name = "apply";
|
||||
this.apply.Size = new System.Drawing.Size(112, 27);
|
||||
this.apply.TabIndex = 10;
|
||||
this.apply.Text = "OK";
|
||||
this.apply.UseVisualStyleBackColor = true;
|
||||
this.apply.Click += new System.EventHandler(this.apply_Click);
|
||||
//
|
||||
// tabs
|
||||
//
|
||||
this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tabs.Controls.Add(this.tabeffects);
|
||||
this.tabs.Controls.Add(this.tabgeneralized);
|
||||
this.tabs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tabs.ItemSize = new System.Drawing.Size(150, 19);
|
||||
this.tabs.Location = new System.Drawing.Point(10, 10);
|
||||
this.tabs.Margin = new System.Windows.Forms.Padding(1);
|
||||
this.tabs.Name = "tabs";
|
||||
this.tabs.SelectedIndex = 0;
|
||||
this.tabs.Size = new System.Drawing.Size(399, 436);
|
||||
this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
|
||||
this.tabs.TabIndex = 12;
|
||||
//
|
||||
// tabeffects
|
||||
//
|
||||
this.tabeffects.Controls.Add(this.effects);
|
||||
this.tabeffects.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tabeffects.Location = new System.Drawing.Point(4, 23);
|
||||
this.tabeffects.Name = "tabeffects";
|
||||
this.tabeffects.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabeffects.Size = new System.Drawing.Size(391, 409);
|
||||
this.tabeffects.TabIndex = 0;
|
||||
this.tabeffects.Text = "Predefined Effects";
|
||||
this.tabeffects.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// effects
|
||||
//
|
||||
this.effects.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.colnumber,
|
||||
this.colname});
|
||||
this.effects.FullRowSelect = true;
|
||||
this.effects.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.effects.HideSelection = false;
|
||||
this.effects.Location = new System.Drawing.Point(6, 6);
|
||||
this.effects.MultiSelect = false;
|
||||
this.effects.Name = "effects";
|
||||
this.effects.Size = new System.Drawing.Size(382, 397);
|
||||
this.effects.TabIndex = 0;
|
||||
this.effects.UseCompatibleStateImageBehavior = false;
|
||||
this.effects.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// colnumber
|
||||
//
|
||||
this.colnumber.Text = "Effect";
|
||||
this.colnumber.Width = 70;
|
||||
//
|
||||
// colname
|
||||
//
|
||||
this.colname.Text = "Description";
|
||||
this.colname.Width = 280;
|
||||
//
|
||||
// tabgeneralized
|
||||
//
|
||||
this.tabgeneralized.Controls.Add(groupBox2);
|
||||
this.tabgeneralized.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tabgeneralized.Location = new System.Drawing.Point(4, 23);
|
||||
this.tabgeneralized.Name = "tabgeneralized";
|
||||
this.tabgeneralized.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabgeneralized.Size = new System.Drawing.Size(391, 409);
|
||||
this.tabgeneralized.TabIndex = 1;
|
||||
this.tabgeneralized.Text = "Generalized Effects";
|
||||
this.tabgeneralized.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// EffectBrowserForm
|
||||
//
|
||||
this.AcceptButton = this.apply;
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.CancelButton = this.cancel;
|
||||
this.ClientSize = new System.Drawing.Size(419, 496);
|
||||
this.Controls.Add(this.tabs);
|
||||
this.Controls.Add(this.cancel);
|
||||
this.Controls.Add(this.apply);
|
||||
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "EffectBrowserForm";
|
||||
this.Opacity = 0;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Edit Effect";
|
||||
groupBox2.ResumeLayout(false);
|
||||
this.tabs.ResumeLayout(false);
|
||||
this.tabeffects.ResumeLayout(false);
|
||||
this.tabgeneralized.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button cancel;
|
||||
private System.Windows.Forms.Button apply;
|
||||
private System.Windows.Forms.TabControl tabs;
|
||||
private System.Windows.Forms.TabPage tabeffects;
|
||||
private System.Windows.Forms.TabPage tabgeneralized;
|
||||
private System.Windows.Forms.ComboBox option7;
|
||||
private System.Windows.Forms.Label option7label;
|
||||
private System.Windows.Forms.ComboBox option6;
|
||||
private System.Windows.Forms.Label option6label;
|
||||
private System.Windows.Forms.ComboBox option5;
|
||||
private System.Windows.Forms.Label option5label;
|
||||
private System.Windows.Forms.ComboBox option4;
|
||||
private System.Windows.Forms.Label option4label;
|
||||
private System.Windows.Forms.ComboBox option3;
|
||||
private System.Windows.Forms.Label option3label;
|
||||
private System.Windows.Forms.ComboBox option2;
|
||||
private System.Windows.Forms.Label option2label;
|
||||
private System.Windows.Forms.ComboBox option1;
|
||||
private System.Windows.Forms.Label option1label;
|
||||
private System.Windows.Forms.ComboBox option0;
|
||||
private System.Windows.Forms.Label option0label;
|
||||
private System.Windows.Forms.ListView effects;
|
||||
private System.Windows.Forms.ColumnHeader colnumber;
|
||||
private System.Windows.Forms.ColumnHeader colname;
|
||||
}
|
||||
}
|
182
Source/Interface/EffectBrowserForm.cs
Normal file
182
Source/Interface/EffectBrowserForm.cs
Normal file
|
@ -0,0 +1,182 @@
|
|||
|
||||
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||
* This program is released under GNU General Public License
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.Win32;
|
||||
using System.Diagnostics;
|
||||
using CodeImp.DoomBuilder.Controls;
|
||||
using CodeImp.DoomBuilder.Data;
|
||||
using CodeImp.DoomBuilder.Config;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.IO;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace CodeImp.DoomBuilder.Interface
|
||||
{
|
||||
internal partial class EffectBrowserForm : DelayedForm
|
||||
{
|
||||
// Constants
|
||||
private const int MAX_OPTIONS = 8;
|
||||
|
||||
// Variables
|
||||
private int selectedeffect;
|
||||
private ComboBox[] options;
|
||||
private Label[] optionlbls;
|
||||
|
||||
// Properties
|
||||
public int SelectedEffect { get { return selectedeffect; } }
|
||||
|
||||
// Constructor
|
||||
public EffectBrowserForm(int effect)
|
||||
{
|
||||
GeneralizedOption o;
|
||||
ListViewItem n;
|
||||
bool selected = false;
|
||||
|
||||
// Initialize
|
||||
InitializeComponent();
|
||||
|
||||
// Make array references for controls
|
||||
options = new ComboBox[] { option0, option1, option2, option3, option4, option5, option6, option7 };
|
||||
optionlbls = new Label[] { option0label, option1label, option2label, option3label, option4label,
|
||||
option5label, option6label, option7label };
|
||||
|
||||
// Go for all predefined effects
|
||||
foreach(SectorEffectInfo si in General.Map.Config.SortedSectorEffects)
|
||||
{
|
||||
// Create effect
|
||||
n = effects.Items.Add(si.Index.ToString());
|
||||
n.SubItems.Add(si.Title);
|
||||
n.Tag = si;
|
||||
if(si.Index == effect)
|
||||
{
|
||||
selected = true;
|
||||
n.Selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Using generalized effects?
|
||||
if(General.Map.Config.GeneralizedEffects)
|
||||
{
|
||||
// Go for all options
|
||||
for(int i = 0; i < MAX_OPTIONS; i++)
|
||||
{
|
||||
// Option used in selected category?
|
||||
if(i < General.Map.Config.GenEffectOptions.Count)
|
||||
{
|
||||
o = General.Map.Config.GenEffectOptions[i];
|
||||
|
||||
// Setup controls
|
||||
optionlbls[i].Text = o.Name + ":";
|
||||
options[i].Items.Clear();
|
||||
options[i].Items.AddRange(o.Bits.ToArray());
|
||||
|
||||
// Show option
|
||||
options[i].Visible = true;
|
||||
optionlbls[i].Visible = true;
|
||||
|
||||
if(effects.SelectedItems.Count == 0)
|
||||
{
|
||||
// Go for all bits
|
||||
foreach(GeneralizedBit ab in o.Bits)
|
||||
{
|
||||
// Select this setting if matches
|
||||
if((effect & ab.Index) == ab.Index) options[i].SelectedItem = ab;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Hide option
|
||||
options[i].Visible = false;
|
||||
optionlbls[i].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Open the generalized tab when given effect is generalized
|
||||
if(!selected) tabs.SelectedTab = tabgeneralized;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove generalized tab
|
||||
tabs.TabPages.Remove(tabgeneralized);
|
||||
}
|
||||
}
|
||||
|
||||
// This browses for an effect
|
||||
// Returns the new effect or the same effect when cancelled
|
||||
public static int BrowseEffect(IWin32Window owner, int effect)
|
||||
{
|
||||
EffectBrowserForm f = new EffectBrowserForm(effect);
|
||||
if(f.ShowDialog(owner) == DialogResult.OK) effect = f.SelectedEffect;
|
||||
f.Dispose();
|
||||
return effect;
|
||||
}
|
||||
|
||||
// OK clicked
|
||||
private void apply_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Presume no result
|
||||
selectedeffect = 0;
|
||||
|
||||
// Predefined action?
|
||||
if(tabs.SelectedTab == tabeffects)
|
||||
{
|
||||
// Effect selected?
|
||||
if((effects.SelectedItems.Count > 0) && (effects.SelectedItems[0].Tag is SectorEffectInfo))
|
||||
{
|
||||
// Our result
|
||||
selectedeffect = (effects.SelectedItems[0].Tag as SectorEffectInfo).Index;
|
||||
}
|
||||
}
|
||||
// Generalized action
|
||||
else
|
||||
{
|
||||
// Go for all options
|
||||
for(int i = 0; i < MAX_OPTIONS; i++)
|
||||
{
|
||||
// Option used?
|
||||
if(i < General.Map.Config.GenEffectOptions.Count)
|
||||
{
|
||||
// Add selected bits
|
||||
if(options[i].SelectedIndex > -1)
|
||||
selectedeffect += (options[i].SelectedItem as GeneralizedBit).Index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Done
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
// Cancel clicked
|
||||
private void cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Leave
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
195
Source/Interface/EffectBrowserForm.resx
Normal file
195
Source/Interface/EffectBrowserForm.resx
Normal file
|
@ -0,0 +1,195 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option7label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option6.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option6label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option5label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option4label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option3label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option2label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option1label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option0.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="option0label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="tabeffects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="effects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="tabgeneralized.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
|
@ -145,7 +145,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
{
|
||||
// Update type from cell
|
||||
try { fieldtype = (UniversalFieldType)Enum.Parse(typeof(UniversalFieldType), this.Cells[1].Value.ToString(), true); }
|
||||
catch(Exception e) { this.Cells[1].Value = fieldtype.ToString(); }
|
||||
catch(Exception) { this.Cells[1].Value = fieldtype.ToString(); }
|
||||
}
|
||||
|
||||
// This undefines the field
|
||||
|
|
|
@ -48,6 +48,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
foreach(KeyValuePair<int, string> lf in General.Map.Config.LinedefFlags) flags.Add(lf.Value, lf.Key);
|
||||
|
||||
// Fill actions list
|
||||
action.GeneralizedCategories = General.Map.Config.GenActionCategories;
|
||||
action.AddInfo(General.Map.Config.SortedLinedefActions.ToArray());
|
||||
|
||||
// Fill activations list
|
||||
|
|
21
Source/Interface/SectorEditForm.Designer.cs
generated
21
Source/Interface/SectorEditForm.Designer.cs
generated
|
@ -43,6 +43,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
System.Windows.Forms.Label label4;
|
||||
this.tag = new CodeImp.DoomBuilder.Interface.NumericTextbox();
|
||||
this.newtag = new System.Windows.Forms.Button();
|
||||
this.browseeffect = new System.Windows.Forms.Button();
|
||||
this.brightness = new CodeImp.DoomBuilder.Interface.NumericTextbox();
|
||||
this.effect = new CodeImp.DoomBuilder.Interface.ActionSelectorControl();
|
||||
this.sectorheight = new System.Windows.Forms.Label();
|
||||
|
@ -144,6 +145,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
//
|
||||
groupeffect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
groupeffect.Controls.Add(this.browseeffect);
|
||||
groupeffect.Controls.Add(this.brightness);
|
||||
groupeffect.Controls.Add(label9);
|
||||
groupeffect.Controls.Add(this.effect);
|
||||
|
@ -155,6 +157,19 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
groupeffect.TabStop = false;
|
||||
groupeffect.Text = " Effects ";
|
||||
//
|
||||
// browseeffect
|
||||
//
|
||||
this.browseeffect.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.browseeffect.Image = global::CodeImp.DoomBuilder.Properties.Resources.treeview;
|
||||
this.browseeffect.Location = new System.Drawing.Point(385, 27);
|
||||
this.browseeffect.Name = "browseeffect";
|
||||
this.browseeffect.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3);
|
||||
this.browseeffect.Size = new System.Drawing.Size(30, 23);
|
||||
this.browseeffect.TabIndex = 18;
|
||||
this.browseeffect.Text = " ";
|
||||
this.browseeffect.UseVisualStyleBackColor = true;
|
||||
this.browseeffect.Click += new System.EventHandler(this.browseeffect_Click);
|
||||
//
|
||||
// brightness
|
||||
//
|
||||
this.brightness.AllowNegative = false;
|
||||
|
@ -179,9 +194,10 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.effect.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.effect.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.effect.Empty = false;
|
||||
this.effect.GeneralizedCategories = null;
|
||||
this.effect.Location = new System.Drawing.Point(89, 28);
|
||||
this.effect.Name = "effect";
|
||||
this.effect.Size = new System.Drawing.Size(326, 21);
|
||||
this.effect.Size = new System.Drawing.Size(290, 21);
|
||||
this.effect.TabIndex = 1;
|
||||
this.effect.Value = 402;
|
||||
//
|
||||
|
@ -329,6 +345,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.apply.TabIndex = 18;
|
||||
this.apply.Text = "OK";
|
||||
this.apply.UseVisualStyleBackColor = true;
|
||||
this.apply.Click += new System.EventHandler(this.apply_Click);
|
||||
//
|
||||
// tabs
|
||||
//
|
||||
|
@ -415,6 +432,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.Name = "SectorEditForm";
|
||||
this.Opacity = 0;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Edit Sector";
|
||||
groupaction.ResumeLayout(false);
|
||||
groupaction.PerformLayout();
|
||||
|
@ -448,5 +466,6 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
private NumericTextbox brightness;
|
||||
private NumericTextbox tag;
|
||||
private System.Windows.Forms.Button newtag;
|
||||
private System.Windows.Forms.Button browseeffect;
|
||||
}
|
||||
}
|
|
@ -43,15 +43,98 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
{
|
||||
// Initialize
|
||||
InitializeComponent();
|
||||
|
||||
// Fill effects list
|
||||
effect.AddInfo(General.Map.Config.SortedSectorEffects.ToArray());
|
||||
|
||||
// Fill universal fields list
|
||||
fieldslist.ListFixedFields(General.Map.Config.SectorFields);
|
||||
|
||||
// Initialize image selectors
|
||||
floortex.Initialize();
|
||||
ceilingtex.Initialize();
|
||||
}
|
||||
|
||||
// This sets up the form to edit the given sectors
|
||||
public void Setup(ICollection<Sector> sectors)
|
||||
{
|
||||
Sector sc;
|
||||
|
||||
// Keep this list
|
||||
this.sectors = sectors;
|
||||
if(sectors.Count > 1) this.Text = "Edit Sectors (" + sectors.Count + ")";
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Set all options to the first sector properties
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Get first sector
|
||||
sc = General.GetByIndex<Sector>(sectors, 0);
|
||||
|
||||
// Effects
|
||||
effect.Value = sc.Effect;
|
||||
brightness.Text = sc.Brightness.ToString();
|
||||
|
||||
// Floor/ceiling
|
||||
floorheight.Text = sc.FloorHeight.ToString();
|
||||
ceilingheight.Text = sc.CeilHeight.ToString();
|
||||
floortex.TextureName = sc.FloorTexture;
|
||||
ceilingtex.TextureName = sc.CeilTexture;
|
||||
|
||||
// Action
|
||||
tag.Text = sc.Tag.ToString();
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Now go for all sectors and change the options when a setting is different
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Go for all sectors
|
||||
foreach(Sector s in sectors)
|
||||
{
|
||||
// Effects
|
||||
if(s.Effect != effect.Value) effect.Empty = true;
|
||||
if(s.Brightness.ToString() != brightness.Text) brightness.Text = "";
|
||||
|
||||
// Floor/Ceiling
|
||||
if(s.FloorHeight.ToString() != floorheight.Text) floorheight.Text = "";
|
||||
if(s.CeilHeight.ToString() != ceilingheight.Text) ceilingheight.Text = "";
|
||||
if(s.FloorTexture != floortex.TextureName) floortex.TextureName = "";
|
||||
if(s.CeilTexture != ceilingtex.TextureName) ceilingtex.TextureName = "";
|
||||
|
||||
// Action
|
||||
if(s.Tag.ToString() != tag.Text) tag.Text = "";
|
||||
}
|
||||
}
|
||||
|
||||
// OK clicked
|
||||
private void apply_Click(object sender, EventArgs e)
|
||||
{
|
||||
string undodesc = "sector";
|
||||
|
||||
// Make undo
|
||||
if(sectors.Count > 1) undodesc = sectors.Count + " sectors";
|
||||
General.Map.UndoRedo.CreateUndo("edit " + undodesc, UndoGroup.None, 0, false);
|
||||
|
||||
// Go for all sectors
|
||||
foreach(Sector s in sectors)
|
||||
{
|
||||
// Effects
|
||||
if(!effect.Empty) s.Effect = effect.Value;
|
||||
s.Brightness = brightness.GetResult(s.Brightness);
|
||||
|
||||
// Floor/Ceiling
|
||||
s.FloorHeight = floorheight.GetResult(s.FloorHeight);
|
||||
s.CeilHeight = ceilingheight.GetResult(s.CeilHeight);
|
||||
s.SetFloorTexture(floortex.GetResult(s.FloorTexture));
|
||||
s.SetCeilTexture(ceilingtex.GetResult(s.CeilTexture));
|
||||
|
||||
// Action
|
||||
s.Tag = tag.GetResult(s.Tag);
|
||||
}
|
||||
|
||||
// Done
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
// Cancel clicked
|
||||
|
@ -67,5 +150,11 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
{
|
||||
tag.Text = General.Map.Map.GetNewTag().ToString();
|
||||
}
|
||||
|
||||
// Browse Effect clicked
|
||||
private void browseeffect_Click(object sender, EventArgs e)
|
||||
{
|
||||
effect.Value = EffectBrowserForm.BrowseEffect(this, effect.Value);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -153,6 +153,9 @@
|
|||
<metadata name="groupeffect.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="browseeffect.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="brightness.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
|
|
@ -85,15 +85,15 @@ namespace CodeImp.DoomBuilder.Map
|
|||
public ICollection<Thing> Things { get { return things; } }
|
||||
public bool IsDisposed { get { return isdisposed; } }
|
||||
public int Index { get { return index; } }
|
||||
public int FloorHeight { get { return floorheight; } }
|
||||
public int CeilHeight { get { return ceilheight; } }
|
||||
public int FloorHeight { get { return floorheight; } set { floorheight = value; } }
|
||||
public int CeilHeight { get { return ceilheight; } set { ceilheight = value; } }
|
||||
public string FloorTexture { get { return floortexname; } }
|
||||
public string CeilTexture { get { return ceiltexname; } }
|
||||
public long LongFloorTexture { get { return longfloortexname; } }
|
||||
public long LongCeilTexture { get { return longceiltexname; } }
|
||||
public int Effect { get { return effect; } }
|
||||
public int Effect { get { return effect; } set { effect = value; } }
|
||||
public int Tag { get { return tag; } set { tag = value; if((tag < 0) || (tag > MapSet.HIGHEST_TAG)) throw new ArgumentOutOfRangeException("Tag", "Invalid tag number"); } }
|
||||
public int Brightness { get { return brightness; } }
|
||||
public int Brightness { get { return brightness; } set { brightness = value; } }
|
||||
public bool Selected { get { return selected; } set { selected = value; } }
|
||||
public bool UpdateNeeded { get { return updateneeded; } set { updateneeded |= value; } }
|
||||
public Sector Clone { get { return clone; } set { clone = value; } }
|
||||
|
|
|
@ -30,4 +30,3 @@ using System.Runtime.InteropServices;
|
|||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("2.0.*")]
|
||||
[assembly: AssemblyFileVersion("2.0.*")]
|
||||
|
|
Loading…
Reference in a new issue