@@ -25,6 +25,7 @@ import getIsPass from '../utils/isPass';
2525import { isBusLine } from '../utils/line' ;
2626import { useCurrentLine } from './useCurrentLine' ;
2727import { useCurrentTrainType } from './useCurrentTrainType' ;
28+ import { useLoopLine } from './useLoopLine' ;
2829
2930export const useSimulationMode = ( ) : void => {
3031 const {
@@ -39,6 +40,7 @@ export const useSimulationMode = (): void => {
3940
4041 const currentLine = useCurrentLine ( ) ;
4142 const trainType = useCurrentTrainType ( ) ;
43+ const { isLoopLine } = useLoopLine ( ) ;
4244
4345 const segmentIndexRef = useRef ( 0 ) ;
4446 const childIndexRef = useRef ( 0 ) ;
@@ -80,8 +82,15 @@ export const useSimulationMode = (): void => {
8082
8183 const maybeRevsersedStations = useMemo (
8284 ( ) =>
83- selectedDirection === 'INBOUND' ? stations : stations . slice ( ) . reverse ( ) ,
84- [ stations , selectedDirection ]
85+ // ループ線では INBOUND/OUTBOUND の進行方向が非ループ線と逆になる
86+ (
87+ isLoopLine
88+ ? selectedDirection !== 'INBOUND'
89+ : selectedDirection === 'INBOUND'
90+ )
91+ ? stations
92+ : stations . slice ( ) . reverse ( ) ,
93+ [ stations , selectedDirection , isLoopLine ]
8594 ) ;
8695
8796 const enabled = useMemo ( ( ) => {
0 commit comments