]> git.sesse.net Git - ultimatescore/blobdiff - client/mainwindow.cpp
Only slew clock if more than two seconds off.
[ultimatescore] / client / mainwindow.cpp
index b186e6a6309d5b680b8e5c9d306b071b7f5aeada..032591e03f215c4b2e6a0b5da533d2926743a981 100644 (file)
@@ -436,18 +436,19 @@ void MainWindow::bt6000_message_received(const string &msg)
 
        if (msg.size() >= 9 && msg[0] == 'G' && msg[1] == '0' && msg[2] == '1') {
                // G01: Game clock, period number, and number of time-outs.
-               bool clock_running = (msg[4] & 0x02);
+               bool clock_running = !(msg[4] & 0x02);
 //             bool klaxon = (msg[4] & 0x04);
                int minutes = parse_clock(msg[5], msg[6]);
                int seconds = parse_clock(msg[7], msg[8]);
 
+               map<string, string> param;
+               param["clock_min"] = to_string(minutes);
+               param["clock_sec"] = to_string(seconds);
+               ws->send_command("update " + serialize_as_json(param));
+               ws->send_command("eval adjustclockfromstate()");
+
                if (clock_running) {
                        ws->send_command("eval startclock()");
-                       map<string, string> param;
-                       param["clock_min"] = to_string(minutes);
-                       param["clock_sec"] = to_string(seconds);
-                       ws->send_command("update " + serialize_as_json(param));
-                       ws->send_command("eval setclockfromstate()");
                } else {
                        ws->send_command("eval stopclock()");
                }