diff --git a/client/play/geoword/results/packet/html.js b/client/play/geoword/results/packet/html.js
index f5c3972e8..420c2ecb9 100644
--- a/client/play/geoword/results/packet/html.js
+++ b/client/play/geoword/results/packet/html.js
@@ -1,4 +1,4 @@
-import { formatTime, getBuzzTime, getClueAt, hasClueTimes } from './time.js';
+import { formatTime, getBuzzClue, getBuzzTime, hasClueTimes } from './time.js';
import { escapeHTML } from '../../../../../shared/string-utils.js';
/**
@@ -10,27 +10,26 @@ export function getCluesHTML (tossup, buzzpoints) {
const label = `aria-label="Clues for question ${tossup.questionNumber}"`;
if (hasClueTimes(tossup)) {
- const counts = tossup.clues.map(() => ({ correct: 0, total: 0 }));
+ const counts = [...tossup.clues, 'End'].map(() => ({ correct: 0, total: 0 }));
if (tossup.duration) {
for (const buzz of buzzpoints) {
- const time = getBuzzTime(buzz, tossup.duration);
- if (time === null) { continue; }
- const count = counts[getClueAt(tossup.clipBoundaries, time)];
+ const count = counts[getBuzzClue(buzz, tossup)];
count.total++;
if (buzz.points > 0) { count.correct++; }
}
}
let html = `
`;
- tossup.clues.forEach((clue, index) => {
- const start = tossup.clipBoundaries[index];
- const { correct, total } = counts[index];
+ counts.forEach(({ correct, total }, index) => {
+ const isEnd = index === tossup.clues.length;
+ if (isEnd && total === 0) { return; }
+ const start = isEnd ? Math.floor(tossup.duration * 1000) / 1000 : tossup.clipBoundaries[index];
const count = total === 0
? ''
: `${correct}/${total}`;
html += `
-