Add config-driven game host updates

This commit is contained in:
2026-03-25 13:58:51 +08:00
parent f0ced54805
commit d1cc6cc473
28 changed files with 3247 additions and 105 deletions

View File

@@ -115,6 +115,10 @@ export class CourseLabelRenderer {
return COMPLETED_LABEL_COLOR
}
if (scene.skippedControlSequences.includes(sequence)) {
return COMPLETED_LABEL_COLOR
}
return DEFAULT_LABEL_COLOR
}
@@ -127,6 +131,10 @@ export class CourseLabelRenderer {
return SCORE_COMPLETED_LABEL_COLOR
}
if (scene.skippedControlSequences.includes(sequence)) {
return SCORE_COMPLETED_LABEL_COLOR
}
return SCORE_LABEL_COLOR
}

View File

@@ -45,6 +45,8 @@ export interface MapScene {
activeLegIndices: number[]
completedLegIndices: number[]
completedControlSequences: number[]
skippedControlIds: string[]
skippedControlSequences: number[]
osmReferenceEnabled: boolean
overlayOpacity: number
}

View File

@@ -346,6 +346,10 @@ export class WebGLVectorRenderer {
return scene.completedLegIndices.includes(index)
}
isSkippedControl(scene: MapScene, sequence: number): boolean {
return scene.skippedControlSequences.includes(sequence)
}
pushCourseLeg(
positions: number[],
colors: number[],
@@ -462,7 +466,7 @@ export class WebGLVectorRenderer {
return scene.controlVisualMode === 'multi-target' ? MULTI_ACTIVE_CONTROL_COLOR : ACTIVE_CONTROL_COLOR
}
if (scene.completedControlSequences.includes(sequence)) {
if (scene.completedControlSequences.includes(sequence) || this.isSkippedControl(scene, sequence)) {
return COMPLETED_ROUTE_COLOR
}