diff --git a/src/components/scenery-info-dialog/SceneryInfoView.jsx b/src/components/scenery-info-dialog/SceneryInfoView.jsx
index 106d638..fd4fd76 100644
--- a/src/components/scenery-info-dialog/SceneryInfoView.jsx
+++ b/src/components/scenery-info-dialog/SceneryInfoView.jsx
@@ -11,6 +11,7 @@ export default function SceneryInfoView({ scenery }) {
+
diff --git a/src/model/parsing/scenery-parser.js b/src/model/parsing/scenery-parser.js
index 5ade62a..feef994 100644
--- a/src/model/parsing/scenery-parser.js
+++ b/src/model/parsing/scenery-parser.js
@@ -77,16 +77,6 @@ export default class SceneryParser {
}
static _parseSceneryInfo(text) {
- const infoHeader = text.split(";", 2)[0];
- if(!infoHeader.startsWith("scv")) {
- SceneryParserLog.error('invalidSceneryInfo', `Invalid scenery info header: ${infoHeader}`);
- }
-
- const version = parseInt(infoHeader.split("v")[1]);
- if(version < Constants.parser.sceneryInfoVersionMin || version > Constants.parser.sceneryInfoVersionMax) {
- SceneryParserLog.warn('invalidSceneryInfoVersion', `Invalid scenery info version: ${version}. Expected: ${Constants.parser.sceneryInfoVersionMin}-${Constants.parser.sceneryInfoVersionMax}`);
- }
-
return SceneryInfo.fromText(text);
}
diff --git a/src/model/special-objects/scenery-info.js b/src/model/special-objects/scenery-info.js
index 874a71d..6a5ae6d 100644
--- a/src/model/special-objects/scenery-info.js
+++ b/src/model/special-objects/scenery-info.js
@@ -1,4 +1,6 @@
import SpecialObject from "./special-object";
+import SceneryParserLog from '../parsing/scenery-parser-log';
+import Constants from '../../helpers/constants';
export default class SceneryInfo extends SpecialObject {
name;
@@ -8,9 +10,10 @@ export default class SceneryInfo extends SpecialObject {
author;
main_signalbox;
uuid;
+ infoVersion;
type = "SceneryInfo";
- constructor(name, version, description, link, author, main_signalbox, uuid) {
+ constructor(name, version, description, link, author, main_signalbox, uuid, infoVersion) {
super();
Object.assign(this, {
name,
@@ -19,12 +22,24 @@ export default class SceneryInfo extends SpecialObject {
link,
author,
main_signalbox,
- uuid
+ uuid,
+ infoVersion
});
}
static fromText(text) {
const values = text.split(";");
+
+ if(!values[0].startsWith("scv")) {
+ SceneryParserLog.error('invalidSceneryInfo', `Invalid scenery info header: ${text}`);
+ return null;
+ }
+
+ const infoVersion = parseInt(values[0].split("v")[1]);
+ if(!infoVersion || infoVersion < Constants.parser.sceneryInfoVersionMin || infoVersion > Constants.parser.sceneryInfoVersionMax) {
+ SceneryParserLog.warn('invalidSceneryInfoVersion', `Unsupported scenery info version: ${infoVersion}. Expected: ${Constants.parser.sceneryInfoVersionMin}-${Constants.parser.sceneryInfoVersionMax}`);
+ }
+
const sceneryInfo = new SceneryInfo(
values[1], // name
parseInt(values[2]), // version
@@ -32,7 +47,8 @@ export default class SceneryInfo extends SpecialObject {
values[4], // link
values[5], // author
values[6], // main_signalbox
- values[7] // uuid
+ values[7], // uuid
+ infoVersion
);
return sceneryInfo;