diff --git a/src/components/TreeFlow.vue b/src/components/TreeFlow.vue index a7ef563..06dc66a 100644 --- a/src/components/TreeFlow.vue +++ b/src/components/TreeFlow.vue @@ -38,8 +38,9 @@ function buildFlow(root: PlayerTreeNode) { function walk(node: PlayerTreeNode, parentId: string | null) { if (node.visited) { + const dagreId = parentId ? `${parentId}/${node.sceneId}` : node.sceneId dagreNodes.push({ - id: node.sceneId, + id: dagreId, parent: parentId, label: node.label, visited: true, @@ -48,29 +49,29 @@ function buildFlow(root: PlayerTreeNode) { lockHint: node.lockHint, }) if (parentId) { - dagreEdges.push({ from: parentId, to: node.sceneId, visited: true }) + dagreEdges.push({ from: parentId, to: dagreId, visited: true }) } const unvisited: PlayerTreeNode[] = [] for (const child of node.children) { if (child.visited) { - walk(child, node.sceneId) + walk(child, dagreId) } else { unvisited.push(child) } } if (unvisited.length > 0) { - const mysteryId = `${node.sceneId}__mystery` + const mysteryId = `${dagreId}/__mystery` dagreNodes.push({ id: mysteryId, - parent: node.sceneId, + parent: dagreId, label: '? ?', visited: false, isMystery: true, locked: true, }) - dagreEdges.push({ from: node.sceneId, to: mysteryId, visited: false }) + dagreEdges.push({ from: dagreId, to: mysteryId, visited: false }) } } }