-
{{ stop.departureLine }} | {{ stop.departureLineSpeed }}
-
-

-
-
⚡
+
{{ stop.departureLine }}
+
+ | {{ stop.departureLineInfo.routeSpeed }}
+ ⚡
+
+
- {{ scheduleStops[i + 1].sceneryName }}
+ {{ scheduleStops[i + 1].sceneryName }}
+ ↕
+ ⇅
-
- {{ scheduleStops[i + 1].arrivalLine }} |
- {{ scheduleStops[i + 1].arrivalLineSpeed }}
+ {{ scheduleStops[i + 1].arrivalLine }}
+
+
+ | {{ scheduleStops[i + 1].arrivalLineInfo!.routeSpeed }}
+ ⚡
+
-
-
-
- ⚡
@@ -110,7 +104,7 @@ import StopLabel from './StopLabel.vue';
import StockList from '../Global/StockList.vue';
import { useMainStore } from '../../store/mainStore';
import { useApiStore } from '../../store/apiStore';
-import { Train } from '../../typings/common';
+import { StationRoutesInfo, Train } from '../../typings/common';
export interface TrainScheduleStop {
nameHtml: string;
@@ -136,17 +130,15 @@ export interface TrainScheduleStop {
isSBL: boolean;
sceneryName: string | null;
- sceneryHash: string;
distance: number;
arrivalLine: string | null;
departureLine: string | null;
- arrivalLineSpeed: number;
- arrivalLineElectrified: boolean | null;
+ arrivalLineInfo?: StationRoutesInfo;
+ departureLineInfo?: StationRoutesInfo;
- departureLineSpeed: number;
- departureLineElectrified: boolean | null;
+ isExternal: boolean;
comments: string | null;
}
@@ -177,13 +169,14 @@ export default defineComponent({
return (
this.train.timetableData?.followingStops.map((stop, i, arr) => {
- if (
+ const isExternal =
i > 0 &&
- stop.arrivalLine &&
- stop.arrivalLine != arr[i - 1].departureLine &&
- !/sbl/gi.test(stop.arrivalLine)
- )
- currentSceneryIndex++;
+ stop.arrivalLine != null &&
+ (stop.arrivalLine != arr[i - 1].departureLine ||
+ (stop.arrivalLine == arr[i - 1].departureLine &&
+ !/-|_|(^it\d+)|(^sbl)/gi.test(stop.arrivalLine)));
+
+ if (isExternal) currentSceneryIndex++;
const sceneryName = this.train.timetableData!.sceneryNames[currentSceneryIndex];
const sceneryInfo = this.apiStore.sceneryData.find((st) => st.name == sceneryName);
@@ -214,12 +207,12 @@ export default defineComponent({
comments: stop.comments ?? null,
arrivalLine: stop.arrivalLine,
- arrivalLineSpeed: arrivalLineInfo?.routeSpeed ?? 0,
- arrivalLineElectrified: arrivalLineInfo?.isElectric ?? null,
-
departureLine: stop.departureLine,
- departureLineSpeed: departureLineInfo?.routeSpeed ?? 0,
- departureLineElectrified: departureLineInfo?.isElectric ?? null,
+
+ arrivalLineInfo: arrivalLineInfo,
+ departureLineInfo: departureLineInfo,
+
+ isExternal,
type: stop.stopType,
distance: stop.stopDistance,
@@ -227,7 +220,6 @@ export default defineComponent({
isLastConfirmed: this.lastConfirmed === i && !stop.terminatesHere,
isSBL: /sbl/gi.test(stop.stopName),
position: stop.beginsHere ? 'begin' : stop.terminatesHere ? 'end' : 'en-route',
- sceneryHash: '',
sceneryName,
status: stop.confirmed ? 'confirmed' : stop.stopped ? 'stopped' : 'unconfirmed'
};
@@ -531,9 +523,9 @@ $blinkAnim: 0.5s ease-in-out alternate infinite blink;
}
.scenery-route {
- display: flex;
- align-items: center;
- gap: 5px;
+ img {
+ vertical-align: middle;
+ }
}
.scenery-change-name {
diff --git a/src/locales/en.json b/src/locales/en.json
index 2f8696d..165b8ba 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -332,6 +332,7 @@
"current-track": "on track",
"vmax-tooltip": "Maximum train speed based on rolling stock vehicles - braked weight is not included",
+ "we4a-tooltip": "Non-electrified track",
"delayed": "Delayed: ",
"preponed": "Ahead of schedule: ",
diff --git a/src/locales/pl.json b/src/locales/pl.json
index 958ae2b..db452a2 100644
--- a/src/locales/pl.json
+++ b/src/locales/pl.json
@@ -318,6 +318,7 @@
"current-track": "na szlaku",
"vmax-tooltip": "Maksymalna prędkość na podstawie pojazdów w składzie - nie bierze pod uwagę masy hamowania",
+ "we4a-tooltip": "Szlak niezelektryfikowany",
"delayed": "Opóźniony: ",
"preponed": "Przed czasem: ",