From a33583d67d277a6ef45311856d150e81be8e8df2 Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Tue, 26 Sep 2017 16:38:03 +1300 Subject: [PATCH] Fixed racescaling a mark twice and removed println statements #story[1323] --- racevisionGame/src/main/java/mock/app/Event.java | 1 - .../src/main/java/mock/xml/RaceXMLCreator.java | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index b50e33d5..052ea051 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -110,7 +110,6 @@ public class Event { this.raceXML = RaceXMLCreator.alterRaceToWind(this.raceXML, XMLFileType.Contents, windAngle, false); this.raceXML = RaceXMLCreator.scaleRaceSize(raceXML, windSpeed, raceLength); - System.out.println(raceLength); } this.boatXML = XMLReader.readXMLFileToString(boatsXMLFile, StandardCharsets.UTF_8); diff --git a/racevisionGame/src/main/java/mock/xml/RaceXMLCreator.java b/racevisionGame/src/main/java/mock/xml/RaceXMLCreator.java index 2c15e57f..a35693fe 100644 --- a/racevisionGame/src/main/java/mock/xml/RaceXMLCreator.java +++ b/racevisionGame/src/main/java/mock/xml/RaceXMLCreator.java @@ -21,6 +21,8 @@ import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; /** * Helper Class for creating a Race XML @@ -218,12 +220,16 @@ public class RaceXMLCreator { double averageSpeed = (bestDownWindSpeed + bestUpWindSpeed) / 2; double raceApproximateTime = getRaceLength(race, averageSpeed); double scale = milliseconds / raceApproximateTime; + Map hasBeenScaled = new HashMap<>(); for (XMLCorner cm: race.getCompoundMarkSequence().getCorner()){ int index = cm.getCompoundMarkID() - 1; XMLCompoundMark mark = race.getCourse().getCompoundMark().get(index); - for (XMLMark m: mark.getMark()){ - scalePoint(m, center, scale); + if (!hasBeenScaled.containsKey(mark)) { + for (XMLMark m : mark.getMark()) { + scalePoint(m, center, scale); + } } + hasBeenScaled.put(mark, true); } for (XMLLimit limit: race.getCourseLimit().getLimit()){ scalePoint(limit, center, scale);