From: Nathaniel Wesley Filardo Date: Sat, 29 Jun 2019 15:45:20 +0000 (+0100) Subject: Deal with very long times better X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=56d908cee3005644a3ae02d4084ee80956ce7b12;p=acmetensortoys-esp-lua_ctfws Deal with very long times better Things will still break eventually, but surely no CtFwS game will ever go for over 16 hours, yeah? --- diff --git a/ctfws-lcd.lua b/ctfws-lcd.lua index 06b848a..9625bb9 100644 --- a/ctfws-lcd.lua +++ b/ctfws-lcd.lua @@ -21,11 +21,16 @@ local function drawDS(lcd, row, col, max, last, decisec) -- decisec/3600, decisec/600, (decisec/10)%60, decisec%10)) -- else if drawDScond(max, last, decisec, 600) then -- minutes, seconds, and deci - lcd:put(lcd:locate(row,col), string.format("%02d:%02d.%d", decisec/600, (decisec/10)%60, decisec%10)) + if decisec >= 60000 then + -- for incredibly long times, just space pad and hope for the best + lcd:put(lcd:locate(row,col), string.format("% 4d:%02d.%d", decisec/600, (decisec/10)%60, decisec%10)) + else + lcd:put(lcd:locate(row,col), string.format(" %02d:%02d.%d", decisec/600, (decisec/10)%60, decisec%10)) + end elseif drawDScond(max, last, decisec, 10) then -- seconds and deci - lcd:put(lcd:locate(row,col+3), string.format("%02d.%d", (decisec/10)%60, decisec%10)) + lcd:put(lcd:locate(row,col+5), string.format("%02d.%d", (decisec/10)%60, decisec%10)) else -- just deci - lcd:put(lcd:locate(row,col+6), string.format("%d",decisec%10)) + lcd:put(lcd:locate(row,col+8), string.format("%d",decisec%10)) end end @@ -80,7 +85,7 @@ local function drawSteadyTopLine(self,rix,maxt,ela) else lcd:put(lcd:locate(0,0), "GAME :") end end - drawDS(lcd,0,13,maxt,self.dl_elapsed,ela); self.dl_elapsed = ela + drawDS(lcd,0,11,maxt,self.dl_elapsed,ela); self.dl_elapsed = ela end local function drawSteadyBotLine(self,rix,maxt,rem) @@ -99,7 +104,7 @@ local function drawSteadyBotLine(self,rix,maxt,rem) lcd:put(lcd:locate(3,0), "GAME END :") end end - drawDS(lcd,3,13,maxt,self.dl_remain ,rem); self.dl_remain = rem + drawDS(lcd,3,11,maxt,self.dl_remain ,rem); self.dl_remain = rem end local function attention(self,long) diff --git a/ctfws-lfs-strings.lua b/ctfws-lfs-strings.lua index de6aad2..82b9652 100644 --- a/ctfws-lfs-strings.lua +++ b/ctfws-lfs-strings.lua @@ -21,7 +21,7 @@ local lcdpreload = "define_char", "lcd", "mtmr", "ftmr", "fatmr", "dl_elapsed", "dl_elapsed", "dl_remain", "dl_round", "attnState", "reset", "drawTimes", "drawFlags", "drawMessage", "drawFlagsMessage", - "%02d:%02d.%d", "%02d.%d", "%d", "%-20s", + "% 4d:%02d.%d", " %02d:%02d.%d", "%02d.%d", "%d", "%-20s", "%d\000: %s=%s %s=%s", "%d\000: %s=%s%s", " CMUKGB CTFWS TIMER ", " ", "GAME :",