From 9f5666ea6d3859d3093c3c886476c3ab343e6a20 Mon Sep 17 00:00:00 2001 From: Zukero Date: Fri, 13 Jul 2018 19:03:08 +0200 Subject: [PATCH] Fixed bugs affecting Dialogue's replies, Key Areas and Replace areas where requirements' negation where lost upon alteration or loading. --- .../gpl/rpg/atcontentstudio/model/gamedata/Requirement.java | 1 + src/com/gpl/rpg/atcontentstudio/model/maps/KeyArea.java | 5 ++++- src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java index e1356fb..edf1b54 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java @@ -191,6 +191,7 @@ public class Requirement extends JSONElement { clone.state = this.state; clone.required_obj_id = this.required_obj_id; clone.required_value = this.required_value; + clone.negated = this.negated; clone.required_obj = this.required_obj; clone.type = this.type; if (clone.required_obj != null && parent != null) { diff --git a/src/com/gpl/rpg/atcontentstudio/model/maps/KeyArea.java b/src/com/gpl/rpg/atcontentstudio/model/maps/KeyArea.java index ed3aa2e..c583328 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/maps/KeyArea.java +++ b/src/com/gpl/rpg/atcontentstudio/model/maps/KeyArea.java @@ -19,6 +19,7 @@ public class KeyArea extends MapObject { String requireType = obj.getProperties().getProperty("requireType"); String requireId = obj.getProperties().getProperty("requireId"); String requireValue = obj.getProperties().getProperty("requireValue"); + String requireNegation = obj.getProperties().getProperty("requireNegation"); oldSchoolRequirement = false; if (requireType == null) { String[] fields = obj.getName().split(":"); @@ -38,7 +39,9 @@ public class KeyArea extends MapObject { if (requireType != null) requirement.type = Requirement.RequirementType.valueOf(requireType); requirement.required_obj_id = requireId; if (requireValue != null) requirement.required_value = Integer.parseInt(requireValue); + if (requireNegation != null) requirement.negated = Boolean.parseBoolean(requireNegation); requirement.state = GameDataElement.State.parsed; + } @Override @@ -98,7 +101,7 @@ public class KeyArea extends MapObject { public void updateNameFromRequirementChange() { if (oldSchoolRequirement && Requirement.RequirementType.questProgress.equals(requirement.type) && (requirement.negated == null || !requirement.negated)) { - name = requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value)); + name = (requirement.negated != null && requirement.negated) ? "NOT " : "" + requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value)); } else if (oldSchoolRequirement) { int i = 0; String futureName = requirement.type.toString() + "#" + Integer.toString(i); diff --git a/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java b/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java index 34e0ef7..ed64ea0 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java +++ b/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java @@ -20,6 +20,7 @@ public class ReplaceArea extends MapObject { String requireType = obj.getProperties().getProperty("requireType"); String requireId = obj.getProperties().getProperty("requireId"); String requireValue = obj.getProperties().getProperty("requireValue"); + String requireNegation = obj.getProperties().getProperty("requireNegation"); if (requireType == null) { String[] fields = obj.getName().split(":"); if (fields.length == 2) { @@ -37,6 +38,7 @@ public class ReplaceArea extends MapObject { if (requireType != null) requirement.type = Requirement.RequirementType.valueOf(requireType); requirement.required_obj_id = requireId; if (requireValue != null) requirement.required_value = Integer.parseInt(requireValue); + if (requireNegation != null) requirement.negated = Boolean.parseBoolean(requireNegation); requirement.state = GameDataElement.State.parsed; @@ -112,7 +114,7 @@ public class ReplaceArea extends MapObject { //Don't use yet ! public void updateNameFromRequirementChange() { if (oldSchoolRequirement && Requirement.RequirementType.questProgress.equals(requirement.type) && (requirement.negated == null || !requirement.negated)) { - name = requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value)); + name = (requirement.negated != null && requirement.negated) ? "NOT " : "" + requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value)); } else if (oldSchoolRequirement) { int i = 0; String futureName = requirement.type.toString() + "#" + Integer.toString(i);