trackeditor: fix version 3 track import and export

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8459 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 78316149b6a12224a3c3b5d73231a427d786a6db
Former-commit-id: 5dc3406f769567cc13c63a904cfaf16504f3e7c3
This commit is contained in:
iobyte 2022-09-06 15:52:39 +00:00
parent 5d031e9d04
commit c203d9844e
2 changed files with 71 additions and 25 deletions

View file

@ -575,7 +575,24 @@ public class XmlReader
*/
private void setPitsV3(Element mainTrack)
{
editorFrame.getTrackData().getMainTrack().getPits().setStyle(getAttrIntValue(mainTrack, "pit type"));
String pitStyle = getAttrStrValue(mainTrack, "pit type");
if (pitStyle != null)
{
if (pitStyle.equals("no pit"))
{
editorFrame.getTrackData().getMainTrack().getPits().setStyle(0);
}
else if (pitStyle.equals("track side"))
{
editorFrame.getTrackData().getMainTrack().getPits().setStyle(1);
}
else if (pitStyle.equals("seperate path"))
{
editorFrame.getTrackData().getMainTrack().getPits().setStyle(2);
}
}
editorFrame.getTrackData().getMainTrack().getPits().setSide(getAttrStrValue(mainTrack, "pit side"));
editorFrame.getTrackData().getMainTrack().getPits().setEntry(getAttrStrValue(mainTrack, "pit entry"));
editorFrame.getTrackData().getMainTrack().getPits().setStart(getAttrStrValue(mainTrack, "pit start"));
@ -765,8 +782,16 @@ public class XmlReader
shape.setProfilStartTangentRight(getAttrNumValue(seg, "profil start tangent right", "%"));
shape.setProfilEndTangentRight(getAttrNumValue(seg, "profil end tangent right", "%"));
setSide(seg, left, "Left");
setSide(seg, right, "Right");
if (editorFrame.getTrackData().getHeader().getVersion() == 3)
{
setSideV3(seg, left, "l");
setSideV3(seg, right, "r");
}
else
{
setSide(seg, left, "Left");
setSide(seg, right, "Right");
}
return shape;
}

View file

@ -145,7 +145,7 @@ public class XmlWriter
if (editorFrame.getTrackData().getHeader().getVersion() == 3)
{
getSideV3(track, editorFrame.getTrackData().getMainTrack().getLeft(), "l");
getSideV3(track, editorFrame.getTrackData().getMainTrack().getLeft(), "r");
getSideV3(track, editorFrame.getTrackData().getMainTrack().getRight(), "r");
getPitsV3(track);
}
else
@ -207,7 +207,19 @@ public class XmlWriter
*/
private synchronized void getPitsV3(Element pits)
{
addContent(pits, "pit type", null, editorFrame.getTrackData().getMainTrack().getPits().getStyle());
if (editorFrame.getTrackData().getMainTrack().getPits().getStyle() == 0)
{
addContent(pits, "pit type", "no pits");
}
else if (editorFrame.getTrackData().getMainTrack().getPits().getStyle() == 1)
{
addContent(pits, "pit type", "track side");
}
else if (editorFrame.getTrackData().getMainTrack().getPits().getStyle() == 2)
{
addContent(pits, "pit type", "seperate path");
}
addContent(pits, "pit side", editorFrame.getTrackData().getMainTrack().getPits().getSide());
addContent(pits, "pit entry", editorFrame.getTrackData().getMainTrack().getPits().getEntry());
addContent(pits, "pit start", editorFrame.getTrackData().getMainTrack().getPits().getStart());
@ -321,26 +333,35 @@ public class XmlWriter
addContent(segment, "profil start tangent right", "%", shape.getProfilStartTangentRight());
addContent(segment, "profil end tangent right", "%", shape.getProfilEndTangentRight());
addContent(segment, "surface", shape.getSurface());
com = new Comment("Left part of segment");
segment.addContent(com);
if (shape.getLeft().getHasSide())
segment.addContent(getSide(shape.getLeft(), "Left"));
if (shape.getLeft().getHasBorder())
segment.addContent(getBorder(shape.getLeft(), "Left"));
if (shape.getLeft().getHasBarrier())
segment.addContent(getBarrier(shape.getLeft(), "Left"));
com = new Comment("End of left part");
segment.addContent(com);
com = new Comment("Right part of segment");
segment.addContent(com);
if (shape.getRight().getHasSide())
segment.addContent(getSide(shape.getRight(), "Right"));
if (shape.getRight().getHasBorder())
segment.addContent(getBorder(shape.getRight(), "Right"));
if (shape.getRight().getHasBarrier())
segment.addContent(getBarrier(shape.getRight(), "Right"));
com = new Comment("End of right part");
segment.addContent(com);
if (editorFrame.getTrackData().getHeader().getVersion() == 3)
{
getSideV3(segment, shape.getLeft(), "l");
getSideV3(segment, shape.getRight(), "r");
}
else
{
com = new Comment("Left part of segment");
segment.addContent(com);
if (shape.getLeft().getHasSide())
segment.addContent(getSide(shape.getLeft(), "Left"));
if (shape.getLeft().getHasBorder())
segment.addContent(getBorder(shape.getLeft(), "Left"));
if (shape.getLeft().getHasBarrier())
segment.addContent(getBarrier(shape.getLeft(), "Left"));
com = new Comment("End of left part");
segment.addContent(com);
com = new Comment("Right part of segment");
segment.addContent(com);
if (shape.getRight().getHasSide())
segment.addContent(getSide(shape.getRight(), "Right"));
if (shape.getRight().getHasBorder())
segment.addContent(getBorder(shape.getRight(), "Right"));
if (shape.getRight().getHasBarrier())
segment.addContent(getBarrier(shape.getRight(), "Right"));
com = new Comment("End of right part");
segment.addContent(com);
}
return segment;
}