diff --git a/src/engine/parsers/cache/DeedParser.java b/src/engine/parsers/cache/DeedParser.java index c4e3083a..5743fb54 100644 --- a/src/engine/parsers/cache/DeedParser.java +++ b/src/engine/parsers/cache/DeedParser.java @@ -97,8 +97,14 @@ public class DeedParser { deed.item_type = CacheParserUtil.readEnum(mbEnums.ItemType.class, deedJson.getString("item_type"), templateId, "item_type"); deed.item_eq_slots_value = deedJson.getInt("item_eq_slots_value"); deed.item_eq_slots_type = deedJson.getBoolean("item_eq_slots_type"); + + // The exporter writes ["NONE"] for an empty slot mask + deed.item_eq_slots_or.addAll(CacheParserUtil.readEnumSet(mbEnums.EquipSlotType.class, deedJson.getJSONArray("item_eq_slots_or"), templateId, "item_eq_slots_or")); + deed.item_eq_slots_or.remove(mbEnums.EquipSlotType.NONE); deed.item_eq_slots_and.addAll(CacheParserUtil.readEnumSet(mbEnums.EquipSlotType.class, deedJson.getJSONArray("item_eq_slots_and"), templateId, "item_eq_slots_and")); + deed.item_eq_slots_and.remove(mbEnums.EquipSlotType.NONE); + deed.item_takeable = deedJson.getBoolean("item_takeable"); deed.item_value = deedJson.getInt("item_value"); deed.item_wt = deedJson.getInt("item_wt"); diff --git a/src/engine/parsers/cache/RuneParser.java b/src/engine/parsers/cache/RuneParser.java index f3358c28..bfd5bd30 100644 --- a/src/engine/parsers/cache/RuneParser.java +++ b/src/engine/parsers/cache/RuneParser.java @@ -112,8 +112,14 @@ public class RuneParser { rune.item_type = CacheParserUtil.readEnum(mbEnums.ItemType.class, runeJson.getString("item_type"), templateId, "item_type"); rune.item_eq_slots_value = runeJson.getInt("item_eq_slots_value"); rune.item_eq_slots_type = runeJson.getBoolean("item_eq_slots_type"); + + // The exporter writes ["NONE"] for an empty slot mask + rune.item_eq_slots_or.addAll(CacheParserUtil.readEnumSet(mbEnums.EquipSlotType.class, runeJson.getJSONArray("item_eq_slots_or"), templateId, "item_eq_slots_or")); + rune.item_eq_slots_or.remove(mbEnums.EquipSlotType.NONE); rune.item_eq_slots_and.addAll(CacheParserUtil.readEnumSet(mbEnums.EquipSlotType.class, runeJson.getJSONArray("item_eq_slots_and"), templateId, "item_eq_slots_and")); + rune.item_eq_slots_and.remove(mbEnums.EquipSlotType.NONE); + rune.item_takeable = runeJson.getBoolean("item_takeable"); rune.item_value = runeJson.getInt("item_value"); rune.item_wt = runeJson.getInt("item_wt");