summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugues Hiegel <hugues@hiegel.fr>2013-11-20 03:41:47 +0100
committerHugues Hiegel <hugues@hiegel.fr>2013-11-20 03:41:47 +0100
commit90556f8566691d1be6d19333e317e94936c4f1bb (patch)
tree410fb572a6f4258fd88c8ea2825f558d57bf7a8f
parent6f8803a5e60246f0231f6c3d0642c3ece04a4944 (diff)
[gugus] slipro digits : merged new version + added some stuff
- virtual best time - remaining laps - and fucking more cool things
-rw-r--r--cfg/sli_right_functions.ecfg3
-rw-r--r--scripts/gugus/sliproDigits.lua311
2 files changed, 139 insertions, 175 deletions
diff --git a/cfg/sli_right_functions.ecfg b/cfg/sli_right_functions.ecfg
index b88728a..2cd69f0 100644
--- a/cfg/sli_right_functions.ecfg
+++ b/cfg/sli_right_functions.ecfg
@@ -42,4 +42,5 @@
42.current sector2
43.current sector3
44.rFactor real time diff vs last + sector
-45.rFactor real time diff vs best + sector \ No newline at end of file
+45.rFactor real time diff vs best + sector
+46.virtual best lap time
diff --git a/scripts/gugus/sliproDigits.lua b/scripts/gugus/sliproDigits.lua
index f9c6321..48cbe1a 100644
--- a/scripts/gugus/sliproDigits.lua
+++ b/scripts/gugus/sliproDigits.lua
@@ -75,7 +75,7 @@ function leftDigitsEvent(swFunction)
end
elseif swValue == 4 then
-- laps completed:speed
- local inf = GetContextInfo("laps")
+ inf = GetContextInfo("laps")
if inf ~= nil then
-- if more than 99 laps
if inf >= 100 then
@@ -90,31 +90,48 @@ function leftDigitsEvent(swFunction)
if inf ~= nil then
-- check if sector > 9
if inf >9 then
- lPanel = string.format(",%02d:%3.0f", inf, spd)
+ lPanel = string.format("S.%02d:%3.0f", inf, spd)
else
- lPanel = string.format(",%01d :%3.0f", inf, spd)
+ lPanel = string.format(" S.%1d :%3.0f", inf, spd)
end
end
elseif swValue == 6 then
-- laps completed:total laps if available
- local inf = GetContextInfo("laps")
+ inf = GetContextInfo("laps")
local tl = GetContextInfo("lapscount")
- if tl < 1 then tl = 0 end
+ if tl == nil or tl < 0 or tl > 999 then tl = 0 end
if inf == nil then inf = 0 end
local laps = "L--"
local total = "t--"
- -- if more than 99 laps
- if inf >= 100 then
- laps = string.format("%03d", inf )
+
+ if tl == 0 then
+ -- if more than 99 laps
+ if inf >= 100 then
+ if inf > 999 then inf = 999 end
+ laps = string.format("%03d", inf )
+ else
+ laps = string.format("L%02d", inf)
+ end
else
- laps = string.format("L%02d", inf)
+ inf = tl - inf
+ -- display remaining laps
+
+ if inf >= 100 then
+ if inf > 999 then inf = 999 end
+ laps = string.format("%03d", inf )
+ else
+ laps = string.format("r%02d", inf)
+ end
end
+
if tl >= 100 then
+ if tl > 999 then tl = 999 end
total = string.format("%03d", tl)
- else
+ elseif tl ~= 0 then
total = string.format("t%02d", tl)
end
lPanel = laps .. ":" .. total
+
elseif swValue == 7 then
-- water temp
inf = GetCarInfo("watertemp")
@@ -262,7 +279,7 @@ function leftDigitsEvent(swFunction)
elseif swValue == 26 then
-- 26.distance
local dist = GetContextInfo("lapdistance")
- lPanel = string.format("%5.0f", dist )
+ lPanel = string.format(" %5d", dist )
elseif swValue == 27 then
--27.laps completed:sector
@@ -297,9 +314,9 @@ function leftDigitsEvent(swFunction)
local sect = GetCarInfo("sector")
-- check if sector > 9
if sect >9 then
- lPanel = string.format(" S:%02d ", sect)
+ lPanel = string.format(" S.%02d ", sect)
else
- lPanel = string.format(" S:%1d ", sect)
+ lPanel = string.format(" S.%1d ", sect)
end
elseif swValue == 30 then
@@ -355,6 +372,17 @@ end
+
+
+
+
+
+
+
+-- ============================================================
+-- Left and Right Panel functions
+-- ============================================================
+
function rightDigitsEvent(swFunction)
swValue = swFunction + 1
@@ -364,8 +392,8 @@ function rightDigitsEvent(swFunction)
local ms = 0
local hd = 0
local rPanel = ""
- local lpt = 0.0
- local diffFlag = false
+ local lpt = nil
+ local diffTimeFlag = false
local unit = false
-- is OSP Tracking ON
@@ -377,12 +405,12 @@ function rightDigitsEvent(swFunction)
end
-- lap finished, display lap time a few seconds
- local dlt = false
- dlt = GetContextInfo("displaylaptime")
- if dlt == nil then dlt = false end
- if dlt and swValue ~= 37 and swValue ~= 38 then
- swValue = 3
- end
+ --local dlt = false
+ --dlt = GetContextInfo("displaylaptime")
+ --if dlt == nil then dlt = false end
+ --if dlt and swValue ~= 37 and swValue ~= 38 then
+ -- swValue = 3
+ --end
-- check if quick info button is down
local qi = false
@@ -417,9 +445,11 @@ function rightDigitsEvent(swFunction)
if swValue == 1 then
-- current lap time
lpt = GetTimeInfo("laptime")
+
elseif swValue == 2 then
-- best lap time (PB)
lpt = GetTimeInfo("bestlaptime")
+
elseif swValue == 3 then
-- last lap time
lpt = GetTimeInfo("lastlaptime")
@@ -432,65 +462,66 @@ function rightDigitsEvent(swFunction)
if swValue == 4 then
lpt = GetPartialTimeInfo("currentpartial", sector)
elseif swValue == 5 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vsbestlap", sector)
elseif swValue == 6 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vsoptimallap", sector)
elseif swValue == 7 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vsoptimalsector", sector)
elseif swValue == 8 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vssessionbestlap", sector)
elseif swValue == 9 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vssessionoptimallap", sector)
elseif swValue == 10 then
- diffFlag = true
+ diffTimeFlag = true
lpt = GetPartialTimeInfo("vssessionoptimalsector", sector)
end
else
- lpt = 0.0
+ lpt = 0.0
end
elseif swValue == 11 then
-- real time diff vs your best
- diffFlag = true
+ diffTimeFlag = true
lpt = GetTimeInfo("realdiffbest")
elseif swValue == 12 then
-- real time diff vs your last
- diffFlag = true
+ diffTimeFlag = true
lpt = GetTimeInfo("realdifflast")
elseif swValue == 13 then
- -- current sector
+ -- current sector time
local sector = GetCarInfo("sector")
- local lt = GetTimeInfo("laptime")
+ lt = GetTimeInfo("laptime")
if sector == 1 then
lpt = lt
elseif sector == 2 then
- local s1 = GetTimeInfo("lastsector1")
- lpt = lt - s1
+ lpt = lt - GetTimeInfo("sector1")
else
-- sector 3
- local s1 = GetTimeInfo("lastsector1")
- local s2 = GetTimeInfo("lastsector2")
- lpt = lt - (s1 + s2)
+ lpt = lt - GetTimeInfo("sector1") + GetTimeInfo("sector2")
end
elseif swValue == 14 then
-- best sector 1
lpt = GetTimeInfo("bestsector1")
+
elseif swValue == 15 then
-- best sector 2
lpt = GetTimeInfo("bestsector2")
+
elseif swValue == 16 then
-- last sector 1
lpt = GetTimeInfo("lastsector1")
+
elseif swValue == 17 then
-- last sector 2
lpt = GetTimeInfo("lastsector2")
+
elseif swValue == 18 then
-- position
local pos = GetContextInfo("position")
@@ -501,10 +532,13 @@ function rightDigitsEvent(swFunction)
end
SetRightDigits( rPanel )
return 1
+
elseif swValue == 19 then
-- get an average consumption of fuel per lap and gives the remaining laps
local remainlapsintank = GetCarInfo("remainlapsintank")
rPanel = string.format(" FL%3.0f", math.floor(remainlapsintank) )
+ SetRightDigits( rPanel )
+ return 1
elseif swValue == 20 then
-- speed on right panel
@@ -557,7 +591,7 @@ function rightDigitsEvent(swFunction)
elseif swValue == 24 then
-- time elapsed if available
- local lpt = GetTimeInfo("timetotalelapsed")
+ lpt = GetTimeInfo("timetotalelapsed")
-- explod time
hr, mn, sc, hd, ms = timeDispatcher(lpt)
@@ -667,19 +701,16 @@ function rightDigitsEvent(swFunction)
local sector = GetCarInfo("sector")
if sector == 1 then
-- sector 3
- local ls1 = GetTimeInfo("lastsector1")
- local ls2 = GetTimeInfo("lastsector2")
- local lt = GetTimeInfo("lastlaptime")
- if ls1 > 0 and ls2 > 0 then
- lpt = lt - (ls1 + ls2)
- end
+ local ls3 = GetTimeInfo("lastsector3")
+ lpt = ls3
+
elseif sector == 2 then
- local ls1 = GetTimeInfo("lastsector1")
- lpt = ls1
+ local ls1 = GetTimeInfo("lastsector1")
+ lpt = ls1
else
-- sector 3
- local ls2 = GetTimeInfo("lastsector2")
- lpt = ls2
+ local ls2 = GetTimeInfo("lastsector2")
+ lpt = ls2
end
elseif swValue == 36 then
@@ -691,130 +722,68 @@ function rightDigitsEvent(swFunction)
elseif swValue == 37 then
-- real time delta vs last + last sector diff 1, 2 and 3
- local sector = GetCarInfo("sector")
- diffFlag = true
- if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then
- -- 8s delay, increase it if needed
- mDiffSectorDelay = GetTicks() + 8000
- mDiffOldSector = sector
- end
- -- init backup vars
- if mOld_lt == nil then
- mOld_ls1 = 0.00000
- mOld_ls2 = 0.00000
- mOld_lt = 0.00000
- mDelta_lpt = 0.00000
- mDelta_lptb = 0.00000
- end
-
- -- display delta by default
- lpt = GetTimeInfo("realdifflast")
+ diffTimeFlag = true
- if mDiffSectorDelay > GetTicks() then
- -- display sector
- if sector == 1 then
- -- sector 3
- local lt = GetTimeInfo("lastlaptime")
-
- -- if ls1 > 0 and ls2 > 0 and lt > 0 and mOld_ls1 > 0 and mOld_ls2 > 0 and mOld_lt > 0 then
- -- delta sector 3
- --lpt = (lt - (ls1 + ls2)) - (mOld_lt - (mOld_ls1 + mOld_ls2))
- if lt > 0 and mOld_lt > 0 then
- if lt ~= mOld_lt then
- mDelta_lpt = lt - mOld_lt
- print(mDelta_lpt, lt, mOld_lt)
- end
- lpt = mDelta_lpt
- end
-
- mOld_lt = lt
-
-
- elseif sector == 2 then
- -- sector 1
- local ls1 = GetTimeInfo("lastsector1")
- if ls1 > 0 and mOld_ls1 > 0 then
- lpt = ls1 - mOld_ls1
- end
- mOld_ls2 = GetTimeInfo("lastsector2")
- print(lpt, ls1 , mOld_ls1, mOld_ls2)
+ lpt = GetDeltaLastTime(false)
- else
- -- sector 2
- local ls2 = GetTimeInfo("lastsector2")
- if ls2 > 0 and mOld_ls2 > 0 then
- lpt = ls2 - mOld_ls2
- end
- mOld_ls1 = GetTimeInfo("lastsector1")
- print(lpt, ls2 , mOld_ls1, mOld_ls2)
- end
- end
elseif swValue == 38 then
- -- real time delta vs best + best sector diff 1, 2 and 3
+ -- real time delta vs best + last sector diff 1, 2 and 3
+ diffTimeFlag = true
- -- get sector
- local sector = GetCarInfo("sector")
- -- set flags
- diffFlag = true
-
- -- set delay
- if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then
- -- 8s delay, increase it if needed
- mDiffSectorDelay = GetTicks() + 8000
- mDiffOldSector = sector
- end
+ lpt = GetDeltaBestTime(false)
- -- init backup vars
- if mOld_bt == nil then
- mOld_bs1 = 0.00000
- mOld_bs2 = 0.00000
- mOld_bt = 0.00000
- mDelta_lpt = 0.00000
- mDelta_lptb = 0.00000
- end
- -- display delta by default
- lpt = GetTimeInfo("realdiffbest")
+ elseif swValue == 39 then
+ -- last sector 3
+ lpt = GetTimeInfo("lastsector3")
- if mDiffSectorDelay > GetTicks() then
- -- display sector diff during delay
- if sector == 1 then
- -- sector 3
- local bt = GetTimeInfo("bestlaptime")
-
- --if bs1 > 0 and bs2 > 0 and bt > 0 and mOld_bs1 > 0 and mOld_bs2 > 0 and mOld_bt > 0 then
- -- delta sector 3
- -- lpt = (bt - (bs1 + bs2)) - (mOld_bt - (mOld_bs1 + mOld_bs2))
- if bt > 0 and mOld_bt > 0 then
- if bt ~= mOld_bt then
- mDelta_lptb = bt - mOld_bt
- print(mDelta_lpt, bt, mOld_bt)
- end
- lpt = mDelta_lptb
- end
-
- mOld_bt = bt
-
- elseif sector == 2 then
- -- sector 1
- local bs1 = GetTimeInfo("bestsector1")
- if bs1 > 0 and mOld_bs1 > 0 then
- lpt = bs1 - mOld_bs1
- end
- print(lpt, bs1 )
- mOld_bs2 = GetTimeInfo("bestsector2")
+ elseif swValue == 40 then
+ -- last sector 3
+ lpt = GetTimeInfo("bestsector3")
- else
- -- sector 2
- local bs2 = GetTimeInfo("bestsector2")
- if bs2 > 0 and mOld_bs2 > 0 then
- lpt = bs2 - mOld_bs2
- end
- print(lpt, bs2 )
- mOld_bs1 = GetTimeInfo("bestsector1")
- end
- end
+ elseif swValue == 41 then
+ -- current sector 1 (rFactor)
+ lpt = GetTimeInfo("sector1")
+
+ elseif swValue == 42 then
+ -- current sector 2 (rFactor)
+ lpt = GetTimeInfo("sector2")
+
+ elseif swValue == 43 then
+ -- current sector 3 (rFactor)
+ lpt = GetTimeInfo("sector3")
+
+ elseif swValue == 44 then
+ -- rfactor real time delta vs last + last sector diff 1, 2 and 3
+ diffTimeFlag = true
+
+ lpt = GetDeltaLastTime(true)
+
+
+ elseif swValue == 45 then
+ -- rFactor real time delta vs best + last sector diff 1, 2 and 3
+ diffTimeFlag = true
+
+ lpt = GetDeltaBestTime(true)
+
+ elseif swValue == 46 then
+ -- virtual best lap time
+ bs1 = GetTimeInfo("bestsector1")
+ ls1 = GetTimeInfo("lastsector1")
+ if ls1 < bs1 then s1 = ls1 else s1 = bs1 end
+
+ bs2 = GetTimeInfo("bestsector2")
+ ls2 = GetTimeInfo("lastsector2")
+ if ls2 < bs2 then s2 = ls2 else s2 = bs2 end
+
+ bs3 = GetTimeInfo("bestsector3")
+ ls3 = GetTimeInfo("lastsector3")
+ if ls3 < bs3 then s3 = ls3 else s3 = bs3 end
+
+ --print ( ls1 , " + " , ls2, " + ", ls3 )
+ --print ( bs1 , " + " , bs2, " + ", bs3 )
+ lpt = s1 + s2 + s3
else
-- none
@@ -827,22 +796,15 @@ function rightDigitsEvent(swFunction)
if lpt == nil then return 0 end
local refreshRate = mRefreshLapTimeRate
- if diffFlag then
+ if diffTimeFlag then
refreshRate = mDeltaTimeDelay
end
-- check if diff time is ready
local diffOK = GetTimeInfo("realdifftimeready")
- if diffFlag and diffOK == false then
- diffFlag = false
+ if diffTimeFlag and diffOK == false and dlt == false then
+ diffTimeFlag = false
rPanel = " -.---"
-
- mOld_ls1 = 0.00000
- mOld_ls2 = 0.00000
- mOld_lt = 0.00000
- mDelta_lpt = 0.00000
- mDelta_lptb = 0.00000
-
SetRightDigits( rPanel )
return 1
end
@@ -858,7 +820,7 @@ function rightDigitsEvent(swFunction)
if GetTicks() > ( refreshRate + mDeltaTimeOldTicks ) then
mDeltaTimeOldTicks = GetTicks()
- if diffFlag then
+ if diffTimeFlag then
--
if lpt == -1 or (mn + sc + ms) == 0.0000 then
mDeltaTimeBackup = " --.---"
@@ -882,6 +844,7 @@ function rightDigitsEvent(swFunction)
mDeltaTimeBackup = string.format( " %02d.%02d.%01d", mn, sc, ms)
end
+
end
end
rPanel = mDeltaTimeBackup