summaryrefslogtreecommitdiff
path: root/tricks/global_To_sectorSplits.diff
diff options
context:
space:
mode:
Diffstat (limited to 'tricks/global_To_sectorSplits.diff')
-rw-r--r--tricks/global_To_sectorSplits.diff297
1 files changed, 297 insertions, 0 deletions
diff --git a/tricks/global_To_sectorSplits.diff b/tricks/global_To_sectorSplits.diff
new file mode 100644
index 0000000..d5c1fcb
--- /dev/null
+++ b/tricks/global_To_sectorSplits.diff
@@ -0,0 +1,297 @@
+diff --git a/scripts/global.lua b/scripts/global.lua
+index 867e73e..ac3c797 100644
+--- a/scripts/global.lua
++++ b/scripts/global.lua
+@@ -28,6 +28,9 @@ mDeltaTimeDelay = 200
+ -- change the delay below to increase or decrease the update of lap time
+ mRefreshLapTimeRate = 50
+
++-- display sector split times
++mSectorSplitDelay = 8000
++
+ -- get feedback on display when you turn encoder or press button assigned to internal functions, see control.lua
+ -- true if you want to display switch pos and value
+ mSwitchFeedbackAllowed = false
+@@ -161,21 +164,16 @@ mRPMLedTable = {
+ -- SLI device type
+ -- mDeviceType no longer avaialable use GetDeviceType(devID) see 2.3 API
+
++mLastSectorTime = {}
++mBestSectorTime = {}
++mCurrentSector = 0
++mSectors = 0
+
+--- init globals
+-if mOld_ls1 == nil then
+- mOld_bs1 = 0.00000
+- mOld_bs2 = 0.00000
+- mOld_bt = 0.00000
+- mDelta_lpt = 0.00000
+- mDelta_lptb = 0.00000
+- mOld_ls1 = 0.00000
+- mOld_ls2 = 0.00000
+- mOld_lt = 0.00000
+- mDelta_lpt = 0.00000
+- mDelta_lptb = 0.00000
+- mDelta_Sect1 = 0.0000
+- mDelta_Sect1b = 0.0000
++function initSectorTimes()
++ --mSectors = GetContextInfo("sectorcount")
++ mLastSectorTime = {}
++ mBestSectorTime = {}
++ mCurrentSector = 1
+ end
+
+
+@@ -283,7 +281,7 @@ function GetSLIMaxInfo()
+ end
+
+ -- get cpu ticks
+- function GetTicks()
++function GetTicks()
+ local tcks = GetContextInfo("ticks")
+ if tcks == nil then tcks = 0 end
+ return tcks
+@@ -576,158 +574,114 @@ function DisplayFormatTime(lptime, delay, dec, deltaflag, numDigits)
+ return Panel
+ end
+
+-
+--- return delta time vs last time + sector diff
+-function GetDeltaLastTime(isRF)
+-
+- local lpt = 0.0
+-
++function UpdateSectorTimes()
+ local sector = GetCarInfo("sector")
+
+- if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then
+- -- 8s delay, increase it if needed
+- mDiffSectorDelay = GetTicks() + 8000
+- mDiffOldSector = sector
+-
+- if sector == 1 then
+- -- diff lap time 3
+- local lt = GetTimeInfo("lastlaptime")
+-
+- if lt > 0 and mOld_lt > 0 then
+- -- diff
+- mDelta_lpt = lt - mOld_lt
++ if mCurrentSector ~= sector then
++ local lastSector = sector - 1
++ if lastSector == 0 then lastSector = table.getn(mLastSectorTime) end
++
++ local ls = 0.00000
++
++ if isAppRFactor(GetContextInfo("simulation")) then
++ ls = GetTimeInfo(string.format("sector%d", lastSector))
++ else
++ ls = GetTimeInfo(string.format("lastsector%d", lastSector))
++ end
++
++ print ( "sector "..lastSector.." : " .. ls)
++
++ --
++ if mLastSectorTime[lastSector] == nil then
++ mLastSectorTime[lastSector] = {0.00000, 0.00000}
++ end
++ -- save previous best sector for sector split times
++ mLastSectorTime[lastSector][2] = mLastSectorTime[lastSector][1]
++ -- stores last sector time
++ mLastSectorTime[lastSector][1] = ls
++
++ --
++ if mBestSectorTime[lastSector] == nil then
++ mBestSectorTime[lastSector] = {0.00000, 0.00000}
++ end
++ -- save previous best sector for sector split times
++ mBestSectorTime[lastSector][2] = mBestSectorTime[lastSector][1]
++ if ls ~= 0.0 and mBestSectorTime[lastSector][1] > ls then
++ -- stores best sector time if better than best :)
++ mBestSectorTime[lastSector][1] = ls
++ end
++
++
++ -- save current sector value
++ mCurrentSector = sector
++ -- set ticks for display
++ mDiffSectorDelay = GetTicks() + mSectorSplitDelay
+ end
+- -- backup lt
+- mOld_lt = lt
+- -- save bt for delta vs best function
+- mOld_bt = GetTimeInfo("bestlaptime")
+-
++end
+
+- elseif sector == 2 then
+- -- diff sector 1
+- local ls1 = GetTimeInfo("lastsector1")
+- if isRF then
+- ls1 = GetTimeInfo("sector1")
+- end
++-- return delta time vs last time + sector diff
++function GetDeltaLastTime()
+
+- if ls1 > 0 and mOld_ls1 > 0 then
+- mDelta_lpt = ls1 - mOld_ls1
+- mDelta_Sect1 = mDelta_lpt
+- end
++ local lpt = 0.0
+
+- -- backup
+- mOld_ls1 = ls1
+- -- save bt for delta vs best function
+- mOld_bs = GetTimeInfo("bestsector1")
++ if mDiffSectorDelay ~= nil and GetTicks() < mDiffSectorDelay then
+
+- else
+- -- diff sector 2
+- local ls2 = GetTimeInfo("lastsector2")
+- if isRF then
+- ls2 = GetTimeInfo("sector2")
+- end
++ local lastSector = GetCarInfo("sector") - 1
++ if lastSector == 0 then lastSector = table.getn(mLastSectorTime) end
+
++ local ls = 0.00000
+
+- if ls2 > 0 and mOld_ls2 > 0 then
+- if mDelta_total_split_sectors then
+- mDelta_lpt = mDelta_Sect1 + (ls2 - mOld_ls2)
+- else
+- mDelta_lpt = ls2 - mOld_ls2
+- end
+- end
+- -- backup value
+- mOld_ls2 = ls2
+- -- save bt for delta vs best function below
+- mOld_bs2 = GetTimeInfo("bestsector2")
++ if isAppRFactor(GetContextInfo("simulation")) then
++ ls = GetTimeInfo(string.format("sector%d", lastSector))
++ else
++ ls = GetTimeInfo(string.format("lastsector%d", lastSector))
++ end
+
+- end
+- end
++ local start = lastSector
++ -- check whether to sum all sector diff values or not
++ if mDelta_total_split_sectors then start = 1 end
++ for i = start, lastSector, 1 do
++ local ls = mLastSectorTime[i][1]
++ local old_ls = mLastSectorTime[i][2]
++ if ls > 0 and old_ls > 0 then
++ lpt = lpt + (ls - old_ls)
++ end
++ end
+
+- -- display delta by default
+- lpt = GetTimeInfo("realdifflast")
+-
+- if mDiffSectorDelay > GetTicks() then
+- lpt = mDelta_lpt
++ else
++ -- display delta by default
++ lpt = GetTimeInfo("realdifflast")
+ end
+
+ return lpt
+ end
+
+ -- return delta time vs best time + sector diff
+-function GetDeltaBestTime(isRF)
+- local lpt = 0.0
+-
+- -- get sector
+- local sector = GetCarInfo("sector")
++function GetDeltaBestTime()
+
+- -- set delay
+- if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then
+- -- 8s delay, increase it if needed
+- mDiffSectorDelay = GetTicks() + 8000
+- mDiffOldSector = sector
+-
+- -- display sector diff during delay
+- if sector == 1 then
+-
+- -- diff last lap time vs best
+- local bt = GetTimeInfo("lastlaptime")
+-
+- -- save lt for delta vs last function above
+- mOld_lt = bt
+-
+- -- compare
+- if bt > 0 and mOld_bt > 0 then
+- -- delta
+- mDelta_lptb = bt - mOld_bt
+- end
+- -- backup
+- mOld_bt = GetTimeInfo("bestlaptime")
++ local lpt = 0.0
+
++ if mDiffSectorDelay ~= nil and GetTicks() < mDiffSectorDelay then
+
+- elseif sector == 2 then
+- -- diff sector 1
+- local bs1 = GetTimeInfo("lastsector1")
+- if isRF then
+- bs1 = GetTimeInfo("sector1")
+- end
+- -- save lt for delta vs last function
+- mOld_ls1 = bs1
++ local lastSector = GetCarInfo("sector") - 1
++ if lastSector == 0 then lastSector = mSectors end
+
+- -- compare
+- if bs1 > 0 and mOld_bs1 > 0 then
+- mDelta_lptb = bs1 - mOld_bs1
+- mDelta_Sect1b = mDelta_lptb
+- end
++ local ls = 0.00000
+
+- mOld_bs1 = GetTimeInfo("bestsector1")
++ local start = lastSector
++ -- check whether to sum all sector diff values or not
++ if mDelta_total_split_sectors then start = 1 end
++ for i = start, lastSector, 1 do
++ local ls = mLastSectorTime[i][1]
++ local old_bs = mBestSectorTime[i][2]
++ if ls > 0 and old_bs > 0 then
++ lpt = lpt + (ls - old_bs)
++ end
++ end
+
+ else
+- -- diff sector 2
+- local bs2 = GetTimeInfo("lastsector2")
+- if isRF then
+- bs2 = GetTimeInfo("sector2")
+- end
+- -- save lt for delta vs last function
+- mOld_ls2 = bs2
+-
+- -- compare with old value
+- if bs2 > 0 and mOld_bs2 > 0 then
+- if mDelta_total_split_sectors then
+- mDelta_lptb = mDelta_Sect1b + (bs2 - mOld_bs2)
+- else
+- mDelta_lptb = bs2 - mOld_bs2
+- end
+- end
+- -- backup
+- mOld_bs2 = GetTimeInfo("bestsector2")
+- end
+- end
+-
+- -- display delta by default
+- lpt = GetTimeInfo("realdiffbest")
+-
+- if mDiffSectorDelay > GetTicks() then
+- lpt = mDelta_lptb
++ -- display delta by default
++ lpt = GetTimeInfo("realdiffbest")
+ end
+
+ return lpt