setclock(amount);
}
+function adjustclockfromstate()
+{
+ let amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']);
+ let elapsed = time_elapsed_raw();
+ if (Math.abs(amount - elapsed) >= 2.0) {
+ setclock(amount);
+ }
+}
+
function setclocklimitfromstate()
{
let amount = parseInt(state['clock_limit_min']) * 60 + parseInt(state['clock_limit_sec']);
lowerthird_visible = false;
}
-function time_elapsed()
+function time_elapsed_raw()
{
let elapsed = (Date.now() - clock_origin) * 1e-3;
if (clock_elapsed + elapsed >= clock_limit) {
clock_running = false;
return clock_limit;
}
- return Math.floor(clock_elapsed + elapsed);
+ return clock_elapsed + elapsed;
+}
+
+function time_elapsed()
+{
+ return Math.floor(time_elapsed_raw());
}
function update_clock()
let sec = elapsed % 60;
if (sec < 10) sec = "0" + sec;
- document.getElementById('clock').innerHTML = min + ":" + sec;
+ let text = min + ":" + sec;
+
+ if (false) {
+ // This is a hack around the fact that Exo has variable-width numerals.
+ // It doesn't look fantastic, but for the clock, it's better not to have
+ // the text jumping around.
+ let html = "";
+ for (let i = 0; i < text.length; ++i) {
+ if (text.charAt(i) === ':') {
+ html += ':';
+ } else {
+ html += "<div style='display: inline-block; width: 15px'>" + text.charAt(i) + "</div>";
+ }
+ }
+ document.getElementById('clock').innerHTML = html;
+ } else {
+ document.getElementById('clock').innerHTML = text;
+ }
}
function goalA()