Game Configurations: UDMF integer and floating point fields can now have default values other than 0

This commit is contained in:
biwa 2023-10-06 21:05:57 +02:00
parent 9d8ddfad35
commit 682c4b92bf
2 changed files with 21 additions and 1 deletions

View file

@ -16,6 +16,7 @@
#region ================== Namespaces
using CodeImp.DoomBuilder.Config;
using System;
using System.Globalization;
@ -33,6 +34,7 @@ namespace CodeImp.DoomBuilder.Types
#region ================== Variables
private double value;
private double defaultvalue;
#endregion
@ -42,6 +44,18 @@ namespace CodeImp.DoomBuilder.Types
#region ================== Methods
public override void SetupArgument(TypeHandlerAttribute attr, ArgumentInfo arginfo)
{
defaultvalue = (double)arginfo.DefaultValue;
base.SetupArgument(attr, arginfo);
}
public override void SetupField(TypeHandlerAttribute attr, UniversalFieldInfo fieldinfo)
{
defaultvalue = fieldinfo == null ? 0.0 : (double)fieldinfo.Default;
base.SetupField(attr, fieldinfo);
}
public override void SetValue(object value)
{
// Null?
@ -87,7 +101,7 @@ namespace CodeImp.DoomBuilder.Types
public override object GetDefaultValue()
{
return 0.0;
return defaultvalue;
}
#endregion

View file

@ -51,6 +51,12 @@ namespace CodeImp.DoomBuilder.Types
base.SetupArgument(attr, arginfo);
}
public override void SetupField(TypeHandlerAttribute attr, UniversalFieldInfo fieldinfo)
{
defaultvalue = fieldinfo == null ? 0 : (int)fieldinfo.Default;
base.SetupField(attr, fieldinfo);
}
public override void SetValue(object value)
{
// Null?