diff --git a/src/App.vue b/src/App.vue index b99bd43..f7156aa 100644 --- a/src/App.vue +++ b/src/App.vue @@ -49,7 +49,7 @@ const showTopBar = ref(true) let hideTopBarTimer: ReturnType | null = null const { loadGame, start, resumeAutoSave, makeChoice, clickHotspot, startChapter, - skipScene, setSpeed, getSpeed, isSceneWatched, startAtScene, + skipScene, setSpeed, getSpeed, isSceneWatched, startAtScene, jumpToScene, saveGame, loadGameFromSlot, refreshSaves, saveSystem, engine } = useGameEngine(() => [videoElA.value, videoElB.value]) @@ -124,8 +124,7 @@ function handleStartFromScene(sceneId: string) { if (ch) { startAtScene(ch.id, sceneId) } else { - const scene = engine.sceneManager.getScene(sceneId) - if (scene) engine.goToScene(scene) + jumpToScene(sceneId) } } diff --git a/src/composables/useGameEngine.ts b/src/composables/useGameEngine.ts index 6e818d9..d59c95b 100644 --- a/src/composables/useGameEngine.ts +++ b/src/composables/useGameEngine.ts @@ -209,6 +209,12 @@ export function useGameEngine(videoEls: () => [HTMLVideoElement | null, HTMLVide engine.startAtScene(chapterId, sceneId) } + function jumpToScene(sceneId: string) { + ensureVideo() + const scene = engine.sceneManager.getScene(sceneId) + if (scene) engine.goToScene(scene) + } + function skipScene() { engine.skipCurrentScene() } @@ -288,7 +294,7 @@ export function useGameEngine(videoEls: () => [HTMLVideoElement | null, HTMLVide makeChoice, clickHotspot, startChapter, - startAtScene, + startAtScene, jumpToScene, skipScene, setSpeed, getSpeed,