Added: angle selector button used in arguments custom fields controls now shows angle value.
Fixed a crash when trying to store a custom field with "Byte Angle" type. Fixed: in some cases custom field types stored in the map's .dbs file were not applied when loading a map.
|
@ -1141,6 +1141,13 @@
|
|||
<None Include="Resources\About.png" />
|
||||
<None Include="Resources\Configuration.png" />
|
||||
<EmbeddedResource Include="Resources\Black.png" />
|
||||
<None Include="Resources\Angle1.png" />
|
||||
<None Include="Resources\Angle2.png" />
|
||||
<None Include="Resources\Angle3.png" />
|
||||
<None Include="Resources\Angle4.png" />
|
||||
<None Include="Resources\Angle5.png" />
|
||||
<None Include="Resources\Angle6.png" />
|
||||
<None Include="Resources\Angle7.png" />
|
||||
<Content Include="Resources\DB2.ico" />
|
||||
<None Include="Resources\GZDB2.ico" />
|
||||
<None Include="Resources\fog.png" />
|
||||
|
|
|
@ -132,6 +132,13 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
private void combobox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
scrollbuttons.Enabled = !CheckIsRelative();
|
||||
|
||||
//mxd. Update button image?
|
||||
if(typehandler.DynamicImage)
|
||||
{
|
||||
combobox_Validating(sender, new CancelEventArgs());
|
||||
button.Image = typehandler.BrowseImage;
|
||||
}
|
||||
}
|
||||
|
||||
// Mouse wheel used
|
||||
|
|
|
@ -802,7 +802,9 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
if(row is FieldsEditorRow)
|
||||
{
|
||||
// Browse
|
||||
(row as FieldsEditorRow).Browse(this.ParentForm);
|
||||
FieldsEditorRow frow = (FieldsEditorRow)row;
|
||||
frow.Browse(this.ParentForm);
|
||||
if(frow.TypeHandler.DynamicImage) browsebutton.Image = frow.TypeHandler.BrowseImage; //mxd
|
||||
fieldslist.Focus();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -225,7 +225,7 @@ namespace CodeImp.DoomBuilder.IO
|
|||
|
||||
// Go for all lines
|
||||
map.SetCapacity(0, map.Linedefs.Count + linescolls.Count, map.Sidedefs.Count + sidescolls.Count, 0, 0);
|
||||
char[] splitter = new[] { ' ' }; //mxd
|
||||
char[] splitter = { ' ' }; //mxd
|
||||
for(int i = 0; i < linescolls.Count; i++)
|
||||
{
|
||||
// Read fields
|
||||
|
@ -235,7 +235,8 @@ namespace CodeImp.DoomBuilder.IO
|
|||
int v1 = GetCollectionEntry(lc, "v1", true, 0, where);
|
||||
int v2 = GetCollectionEntry(lc, "v2", true, 0, where);
|
||||
|
||||
if(!vertexlink.ContainsKey(v1) || !vertexlink.ContainsKey(v2)) { //mxd
|
||||
if(!vertexlink.ContainsKey(v1) || !vertexlink.ContainsKey(v2))
|
||||
{ //mxd
|
||||
General.ErrorLogger.Add(ErrorType.Warning, "Linedef " + i + " references one or more invalid vertices. Linedef has been removed.");
|
||||
continue;
|
||||
}
|
||||
|
@ -508,7 +509,7 @@ namespace CodeImp.DoomBuilder.IO
|
|||
//mxd. Try to find the type from configuration
|
||||
if(setknowncustomtypes)
|
||||
{
|
||||
type = General.Map.Config.ReadSetting("universalfields." + elementname + "." + e.Key + ".type", -1);
|
||||
type = General.Map.Options.GetUniversalFieldType(elementname, e.Key, -1);
|
||||
|
||||
if(type != -1)
|
||||
{
|
||||
|
|
|
@ -126,6 +126,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
}
|
||||
|
||||
case UniversalType.AngleDegrees:
|
||||
case UniversalType.AngleByte: //mxd
|
||||
case UniversalType.Color:
|
||||
case UniversalType.EnumBits:
|
||||
case UniversalType.EnumOption:
|
||||
|
|
52
Source/Core/Properties/Resources.Designer.cs
generated
|
@ -90,9 +90,55 @@ namespace CodeImp.DoomBuilder.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Angle1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle3 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle3", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle4 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle4", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle5 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle5", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle6 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle6", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap Angle7 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Angle7", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ArrowDown {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ArrowDown", resourceCulture);
|
||||
|
|
|
@ -577,6 +577,27 @@
|
|||
<data name="FixedThingsScale" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FixedThingsScale.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle3" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle4" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle4.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle5" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle5.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle6" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle6.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Angle7" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Angle7.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Snap1mp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Snap1mp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
|
BIN
Source/Core/Resources/Angle1.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle2.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle3.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle4.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle5.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle6.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Source/Core/Resources/Angle7.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
|
@ -1,6 +1,7 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Windows;
|
||||
|
||||
|
@ -11,6 +12,12 @@ namespace CodeImp.DoomBuilder.Types
|
|||
[TypeHandler(UniversalType.AngleByte, "Byte Angle", true)]
|
||||
internal class AngleByteHandler : AngleDegreesHandler
|
||||
{
|
||||
#region ================== Properties
|
||||
|
||||
public override Image BrowseImage { get { return angleicons[General.ClampAngle((int)Math.Round((float)value / 256 * 360) + 22) / 45]; } }
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
public override void Browse(IWin32Window parent)
|
||||
|
|
|
@ -27,7 +27,7 @@ using CodeImp.DoomBuilder.Windows;
|
|||
namespace CodeImp.DoomBuilder.Types
|
||||
{
|
||||
[TypeHandler(UniversalType.AngleDegreesFloat, "Degrees (Decimal)", true)]
|
||||
internal class AngleDegreesFloatHandler : TypeHandler
|
||||
internal class AngleDegreesFloatHandler : AngleDegreesHandler
|
||||
{
|
||||
#region ================== Constants
|
||||
|
||||
|
@ -35,7 +35,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
|
||||
#region ================== Variables
|
||||
|
||||
private float value;
|
||||
private new float value;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -43,7 +43,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
|
||||
public override bool IsBrowseable { get { return true; } }
|
||||
|
||||
public override Image BrowseImage { get { return Properties.Resources.Angle; } }
|
||||
public override Image BrowseImage { get { return angleicons[General.ClampAngle((int)Math.Round(value) + 22) / 45]; } }
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -73,7 +73,8 @@ namespace CodeImp.DoomBuilder.Types
|
|||
// Set directly
|
||||
this.value = Convert.ToSingle(value);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
// Try parsing as string
|
||||
float result;
|
||||
if(float.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.CurrentCulture, out result))
|
||||
|
|
|
@ -36,6 +36,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
#region ================== Variables
|
||||
|
||||
protected int value;
|
||||
protected Image[] angleicons;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -43,12 +44,28 @@ namespace CodeImp.DoomBuilder.Types
|
|||
|
||||
public override bool IsBrowseable { get { return true; } }
|
||||
|
||||
public override Image BrowseImage { get { return Properties.Resources.Angle; } }
|
||||
|
||||
public override Image BrowseImage { get { return angleicons[General.ClampAngle(value + 22) / 45]; } }
|
||||
public override bool DynamicImage { get { return true; } }
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Constructor
|
||||
|
||||
public AngleDegreesHandler()
|
||||
{
|
||||
angleicons = new[]
|
||||
{
|
||||
Properties.Resources.Angle,
|
||||
Properties.Resources.Angle7,
|
||||
Properties.Resources.Angle6,
|
||||
Properties.Resources.Angle5,
|
||||
Properties.Resources.Angle4,
|
||||
Properties.Resources.Angle3,
|
||||
Properties.Resources.Angle2,
|
||||
Properties.Resources.Angle1
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
|
|
@ -28,7 +28,7 @@ using CodeImp.DoomBuilder.Geometry;
|
|||
namespace CodeImp.DoomBuilder.Types
|
||||
{
|
||||
[TypeHandler(UniversalType.AngleRadians, "Radians", true)]
|
||||
internal class AngleRadiansHandler : TypeHandler
|
||||
internal class AngleRadiansHandler : AngleDegreesHandler
|
||||
{
|
||||
#region ================== Constants
|
||||
|
||||
|
@ -36,7 +36,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
|
||||
#region ================== Variables
|
||||
|
||||
private float value;
|
||||
private new float value;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -44,7 +44,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
|
||||
public override bool IsBrowseable { get { return true; } }
|
||||
|
||||
public override Image BrowseImage { get { return Properties.Resources.Angle; } }
|
||||
public override Image BrowseImage { get { return angleicons[General.ClampAngle(Angle2D.RealToDoom(value) + 22) / 45]; } }
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ namespace CodeImp.DoomBuilder.Types
|
|||
public virtual bool IsLimitedToEnums { get { return false; } }
|
||||
|
||||
public virtual Image BrowseImage { get { return null; } }
|
||||
public virtual bool DynamicImage { get { return false; } } //mxd. When set to true, the button image will be re-applied after value changes
|
||||
|
||||
#endregion
|
||||
|
||||
|
|