fix(codegen): Adds default codegen option for save flags. Fixes world load issues. (#707)
This commit is contained in:
parent
3fc2b76468
commit
ca5e9342a0
19 changed files with 204 additions and 109 deletions
|
|
@ -20,6 +20,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(0)]
|
||||
private bool ShouldSerializeAosAttributes() => !_attributes.IsEmpty;
|
||||
|
||||
[SerializableFieldDefault(0)]
|
||||
private AosAttributes AttributesDefaultValue() => new(this);
|
||||
|
||||
[SerializableField(1, setter: "private")]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
|
||||
private AosArmorAttributes _armorAttributes;
|
||||
|
|
@ -27,6 +30,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(1)]
|
||||
private bool ShouldSerializeArmorAttributes() => !_armorAttributes.IsEmpty;
|
||||
|
||||
[SerializableFieldDefault(1)]
|
||||
private AosArmorAttributes ArmorAttributesDefaultValue() => new(this);
|
||||
|
||||
[InvalidateProperties]
|
||||
[SerializableField(2)]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
|
||||
|
|
@ -135,6 +141,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(23)]
|
||||
private bool ShouldSerializeSkillBonuses() => !_skillBonuses.IsEmpty;
|
||||
|
||||
[SerializableFieldDefault(23)]
|
||||
private AosSkillBonuses SkillBonusesDefaultValue() => new(this);
|
||||
|
||||
[SerializableField(24)]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
|
||||
public bool _playerConstructed;
|
||||
|
|
@ -269,6 +278,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(14)]
|
||||
private bool ShouldSerializeResource() => _resource != DefaultResource;
|
||||
|
||||
[SerializableFieldDefault(14)]
|
||||
private CraftResource ResourceDefaultValue() => DefaultResource;
|
||||
|
||||
[SerializableField(15)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int BaseArmorRating
|
||||
|
|
@ -285,6 +297,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(15)]
|
||||
private bool ShouldSerializeArmorBase() => _armorBase != -1;
|
||||
|
||||
[SerializableFieldDefault(15)]
|
||||
private int ArmorBaseDefaultValue() => -1;
|
||||
|
||||
public double BaseArmorRatingScaled => BaseArmorRating * ArmorScalar;
|
||||
|
||||
public virtual double ArmorRating
|
||||
|
|
@ -358,6 +373,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(16)]
|
||||
private bool ShouldSerializeStrBonus() => _strBonus != -1;
|
||||
|
||||
[SerializableFieldDefault(16)]
|
||||
private int StrBonusDefaultValue() => -1;
|
||||
|
||||
[SerializableField(17)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int DexBonus
|
||||
|
|
@ -374,6 +392,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(17)]
|
||||
private bool ShouldSerializeDexBonus() => _dexBonus != -1;
|
||||
|
||||
[SerializableFieldDefault(17)]
|
||||
private int DexBonusDefaultValue() => -1;
|
||||
|
||||
[SerializableField(18)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int IntBonus
|
||||
|
|
@ -390,6 +411,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(18)]
|
||||
private bool ShouldSerializeIntBonus() => _intBonus != -1;
|
||||
|
||||
[SerializableFieldDefault(18)]
|
||||
private int IntBonusDefaultValue() => -1;
|
||||
|
||||
[SerializableField(19)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int StrRequirement
|
||||
|
|
@ -406,6 +430,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(19)]
|
||||
private bool ShouldSerializeStrReq() => _strReq != -1;
|
||||
|
||||
[SerializableFieldDefault(19)]
|
||||
private int StrReqDefaultValue() => -1;
|
||||
|
||||
[SerializableField(20)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int DexRequirement
|
||||
|
|
@ -422,6 +449,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(20)]
|
||||
private bool ShouldSerializeDexReq() => _dexReq != -1;
|
||||
|
||||
[SerializableFieldDefault(20)]
|
||||
private int DexReqDefaultValue() => -1;
|
||||
|
||||
[SerializableField(21)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int IntRequirement
|
||||
|
|
@ -438,6 +468,9 @@ namespace Server.Items
|
|||
[SerializableFieldSaveFlag(21)]
|
||||
private bool ShouldSerializeIntReq() => _intReq != -1;
|
||||
|
||||
[SerializableFieldDefault(21)]
|
||||
private int IntReqDefaultValue() => -1;
|
||||
|
||||
[SerializableField(22)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public AMA MeditationAllowance
|
||||
|
|
@ -1044,10 +1077,6 @@ namespace Server.Items
|
|||
[AfterDeserialization]
|
||||
private void AfterDeserialization()
|
||||
{
|
||||
Attributes ??= new AosAttributes(this);
|
||||
ArmorAttributes ??= new AosArmorAttributes(this);
|
||||
SkillBonuses ??= new AosSkillBonuses(this);
|
||||
|
||||
var m = Parent as Mobile;
|
||||
|
||||
if (Core.AOS && m != null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue