update: trigger dialogue en fonction du gameplay

This commit is contained in:
Tom Boullay
2026-05-11 10:03:07 +02:00
parent a34396b958
commit 4b7498ae13
2 changed files with 19 additions and 1 deletions
+16 -1
View File
@@ -2,7 +2,10 @@ import { AudioManager } from "@/managers/AudioManager";
import { useSettingsStore } from "@/managers/stores/useSettingsStore";
import { useSubtitleStore } from "@/managers/stores/useSubtitleStore";
import type { DialogueManifest } from "@/types/dialogues/dialogues";
import { loadDialogueSubtitleCue } from "@/utils/dialogues/loadDialogueManifest";
import {
loadDialogueManifest,
loadDialogueSubtitleCue,
} from "@/utils/dialogues/loadDialogueManifest";
interface QueuedDialogueRequest {
manifest: DialogueManifest;
@@ -12,6 +15,8 @@ interface QueuedDialogueRequest {
const DIALOGUE_PLAY_START_TIMEOUT_MS = 800;
const dialogueQueue: QueuedDialogueRequest[] = [];
let gameplayDialogueManifestPromise: Promise<DialogueManifest | null> | null =
null;
let isDialogueQueuePlaying = false;
export function queueDialogueById(
@@ -30,6 +35,16 @@ export function clearQueuedDialogues(): void {
}
}
export async function playGameplayDialogueById(
dialogueId: string,
): Promise<HTMLAudioElement | null> {
gameplayDialogueManifestPromise ??= loadDialogueManifest();
const manifest = await gameplayDialogueManifestPromise;
if (!manifest) return null;
return queueDialogueById(manifest, dialogueId);
}
export async function playDialogueById(
manifest: DialogueManifest,
dialogueId: string,