diff options
Diffstat (limited to 'tricks/global_To_sectorSplits.diff')
-rw-r--r-- | tricks/global_To_sectorSplits.diff | 297 |
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 |