summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugues Hiegel <hugues@hiegel.fr>2013-11-25 09:59:16 +0100
committerHugues Hiegel <hugues@hiegel.fr>2013-11-25 09:59:16 +0100
commit0a2b7675e5bbc5abe9d9b6d142d3008d641e6dbf (patch)
tree61264103f7fc3c41977cfc89fbaa7a1a135c88d7
parent4d913f0033bd56acb86ad9d42237246d01a44a51 (diff)
[gugus] sector times : better managment of first lap
-rw-r--r--scripts/gugus/dev.lua2
-rw-r--r--scripts/gugus/sector.lua149
-rw-r--r--scripts/gugus/session.lua11
3 files changed, 118 insertions, 44 deletions
diff --git a/scripts/gugus/dev.lua b/scripts/gugus/dev.lua
index 3e7360b..c19da64 100644
--- a/scripts/gugus/dev.lua
+++ b/scripts/gugus/dev.lua
@@ -1,4 +1,6 @@
+require ("scripts/gugus/sector")
+
function custom_deviceReport(deviceType)
-- sim paused?
local paused = GetContextInfo("paused")
diff --git a/scripts/gugus/sector.lua b/scripts/gugus/sector.lua
index a3814f6..4c37469 100644
--- a/scripts/gugus/sector.lua
+++ b/scripts/gugus/sector.lua
@@ -1,18 +1,34 @@
mOldSector = -1
-mBestSectors = {0.00, 0.00, 0.00}
mLastSectors = {0.00, 0.00, 0.00}
+mBestSectors = {0.00, 0.00, 0.00}
mSectorSplit_Vs_LastSector = 0.0
mSectorSplit_Vs_BestSector = 0.0
mSectorSplit_Vs_BestLap = 0.0
-mSectorSplit = nil
+mSectorSplit = 0
function SectorUpdate()
local sector = GetCarInfo("sector")
local laps = GetContextInfo("laps")
- if mSectorSplit == nil or mOldSector ~= sector then
+ if mOldSector == -1 and sector < 3 then
+ return
+ elseif mOldSector == -1 and sector == 3 then
+ -- first lap
+ print (" Almost clean lap ... ")
+ --print ("lap "..laps.." / sector "..sector.." ["..mOldSector.."]")
+ mOldSector = 0
+ elseif mOldSector == 0 and sector ~= 1 then
+ return
+ elseif mOldSector == 0 then
+ -- start of first clean lap
+ print (" >>> Clean Lap ! <<< ")
+ --print ("lap "..laps.." / sector "..sector.." ["..mOldSector.."]")
+ mOldSector = 1
+ end
+
+ if mOldSector > 0 and mOldSector ~= sector then
mSectorSplit = GetTicks() + mSectorSplitDelay
-- Std values ------------------------
@@ -31,29 +47,18 @@ function SectorUpdate()
local blt = GetTimeInfo("bestlaptime")
--------------------------------------
- -- Computed values ---------------------------------------------------------------------------
+ ---------------------------------------------------------------------
local Ls1 = mLastSectors[1]
local Ls2 = mLastSectors[2]
local Ls3 = mLastSectors[3]
- local Llt = Ls1 + Ls2 + Ls3 -- for Debug
+ local Llt = 0.0
local Bs1 = mBestSectors[1]
local Bs2 = mBestSectors[2]
local Bs3 = mBestSectors[3]
- -- Don’t compute Best sector times if irrelevant last lap time.
- if llt >= 0 then
- if Bs1 ~= 0 then Bs1 = math.min(Bs1, bs1, ls1) else Bs1 = math.min(bs1, ls1) end
- if Bs2 ~= 0 then Bs2 = math.min(Bs2, bs2, ls2) else Bs2 = math.min(bs2, ls2) end
- if Bs3 ~= 0 then Bs3 = math.min(Bs3, bs3, ls3) else Bs3 = math.min(bs3, ls3) end
- -- store new values
- mBestSectors[1] = Bs1
- mBestSectors[2] = Bs2
- mBestSectors[3] = Bs3
- end
- local Blt = Bs1 + Bs2 + Bs3 -- Virtual Best Lap time
- ----------------------------------------------------------------------------------------------
+ local Blt = 0.0
- -- Sectors split -----------------------------------------------------
+ -- Sectors splits --------------------------------------------------
mSectorSplit_Vs_LastSector = 0.0
mSectorSplit_Vs_BestSector = 0.0
mSectorSplit_Vs_BestLap = 0.0
@@ -73,41 +78,105 @@ function SectorUpdate()
mSectorSplit_Vs_BestSector = mSectorSplit_Vs_BestSector + s3 - Bs3
mSectorSplit_Vs_BestLap = mSectorSplit_Vs_BestLap + s3 - bs3
end
+
+ -- Compute values ----------------------------------------------------
+ if mOldSector == 1 then
+ if Bs1 ~= 0 then Bs1 = math.min(Bs1, s1) else Bs1 = s1 end
+ Ls1 = s1
+ elseif mOldSector == 2 then
+ if Bs2 ~= 0 then Bs2 = math.min(Bs2, s2) else Bs2 = s2 end
+ Ls2 = s2
+ elseif mOldSector == 3 then
+ if Bs3 ~= 0 then Bs3 = math.min(Bs3, s3) else Bs3 = s3 end
+ Ls3 = s3
+ end
+
+ mBestSectors[1] = Bs1
+ mBestSectors[2] = Bs2
+ mBestSectors[3] = Bs3
+
+ mLastSectors[1] = Ls1
+ mLastSectors[2] = Ls2
+ mLastSectors[3] = Ls3
+
+ if Bs1 ~= 0 and Bs2 ~= 0 and Bs3 ~= 0 then Blt = Bs1 + Bs2 + Bs3 end
+ Llt = Ls1 + Ls2 + Ls3 -- used for Debug only
----------------------------------------------------------------------
- -- Sectors times debugging --------------------------------------------------------------------
- if true then
- if mOldSector == 1 then
- print (" sector " ..mOldSector)
- elseif mOldSector == 2 then
- print (" sector " ..mOldSector)
- else -- mOldSector == 3
- print (" sector " ..mOldSector)
- end
- print ("[curr] " .. s1 .. " " .. s2 .. " " .. s3 )
- print ("[last] " ..ls1 .. " " ..ls2 .. " " ..ls3 )
- print ("[Last] " ..Ls1 .. " " ..Ls2 .. " " ..Ls3 .. " | " .. (mSectorSplit_Vs_LastSector) )
- print ("[best] " ..bs1 .. " " ..bs2 .. " " ..bs3 .. " | " .. (mSectorSplit_Vs_BestLap ) )
- print ("[Best] " ..Bs1 .. " " ..Bs2 .. " " ..Bs3 .. " | " .. (mSectorSplit_Vs_BestSector) )
+
+ -- Sectors times debugging ----------------------------------------------------------------
+ if mOldSector == 1 then print (" sector " ..mOldSector)
+ elseif mOldSector == 2 then print (" sector " ..mOldSector)
+ elseif mOldSector == 3 then print (" sector " ..mOldSector)
+ else
+ print ("sector "..sector)
end
- -----------------------------------------------------------------------------------------------
+ print ("[curr] " .. s1 .. " " .. s2 .. " " .. s3 )
+ print ("[last] " ..ls1 .. " " ..ls2 .. " " ..ls3 )
+ print ("[Last] " ..Ls1 .. " " ..Ls2 .. " " ..Ls3 .. " | " .. (mSectorSplit_Vs_LastSector) )
+ print ("[best] " ..bs1 .. " " ..bs2 .. " " ..bs3 .. " | " .. (mSectorSplit_Vs_BestLap ) )
+ print ("[Best] " ..Bs1 .. " " ..Bs2 .. " " ..Bs3 .. " | " .. (mSectorSplit_Vs_BestSector) )
+ -------------------------------------------------------------------------------------------
+
+ print (" last best")
+ print ("[lapt] " .. llt .. " - " .. blt )
+ --print ("[sect] " .. (ls1+ls2+ls3) .. " - " .. (bs1+bs2+bs3) )
+ print ("[comp] " .. Llt .. " - " .. Blt )
if sector == 1 then
-- new lap
- mLastSectors = { ls1 , ls2 , ls3 }
print ("")
- print (" last best")
- print ("[lapt] " .. llt .. " - " .. blt )
- print ("[sect] " .. (ls1+ls2+ls3) .. " - " .. (bs1+bs2+bs3) )
- print ("[comp] " .. Llt .. " - " .. Blt )
-
- print ("--- lap "..(laps - 1).." --------------------------------")
+ print ("--- lap "..laps.." --------------------------------")
end
mOldSector = sector
end
end
+function GetCurrentSectorBestTime()
+ local sector = GetCarInfo("sector")
+ if sector == 1 then lpt = mBestSectors[1]
+ elseif sector == 2 then lpt = mBestSectors[2]
+ elseif sector == 3 then lpt = mBestSectors[3]
+ else lpt = 0.0
+ end
+end
+function GetCurrentSectorTime()
+ local sector = GetCarInfo("sector")
+ lt = GetTimeInfo("laptime")
+
+ if sector == 1 then
+ lpt = GetTimeInfo("lastsector1")
+ lpt = lt
+ elseif sector == 2 then
+ lpt = lt - GetTimeInfo("sector1")
+ else
+ -- sector 3
+ lpt = lt - GetTimeInfo("sector1") - GetTimeInfo("sector2")
+ end
+end
+function GetPreviousSectorBestTime()
+ local sector = GetCarInfo("sector")
+ if sector == 1 then lpt = mBestSectors[3]
+ elseif sector == 2 then lpt = mBestSectors[1]
+ elseif sector == 3 then lpt = mBestSectors[2]
+ else lpt = 0.0
+ end
+
+ return lpt
+end
+
+function GetPreviousSectorTime()
+ local sector = GetCarInfo("sector")
+ if sector == 1 then lpt = mLastSectors[3]
+ elseif sector == 2 then lpt = mLastSectors[1]
+ elseif sector == 3 then lpt = mLastSectors[2]
+ else lpt = 0.0
+ end
+
+ return lpt
+end
+
-- return delta time vs last/best time + sector splits
function RealTimeDiff_SectorSplits(Best, Lap)
diff --git a/scripts/gugus/session.lua b/scripts/gugus/session.lua
index 3e7039a..25f8a71 100644
--- a/scripts/gugus/session.lua
+++ b/scripts/gugus/session.lua
@@ -1,10 +1,13 @@
---require("scripts/gugus/sector")
+require("scripts/gugus/sector")
+
function custom_enterSessionEvent(devType)
- mCurrentSector = -1
- mLastSectors = {0.0, 0.0, 0.0}
- if GetContextInfo("laps") <= 0 then
+ mOldSector = -1
+ local laps = GetContextInfo("laps")
+ local sector = GetCarInfo("sector")
+ if laps <= 1 then
+ mLastSectors = {0.0, 0.0, 0.0}
mBestSectors = {0.0, 0.0, 0.0}
end