summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugues Hiegel <hugues@hiegel.fr>2013-11-27 09:59:26 +0100
committerHugues Hiegel <hugues@hiegel.fr>2013-11-27 09:59:41 +0100
commitbd4acb769e46f52c03098e4cd97aae897073002c (patch)
tree6e8d7f8333a1b7e38a1fd175c70430d1a6389997
parenta1a5654c20e270c9415f2b7b95586f52a2d3d232 (diff)
[gugus] new slipro digits managment
-rw-r--r--cfg/sli_left_functions.ecfg93
-rw-r--r--cfg/sli_right_functions.ecfg100
-rw-r--r--cfg/slipro_gus.sli4
-rw-r--r--scripts/gugus/digits.lua376
-rw-r--r--scripts/gugus/functions.lua584
-rw-r--r--scripts/slipro_gus.lua5
6 files changed, 1078 insertions, 84 deletions
diff --git a/cfg/sli_left_functions.ecfg b/cfg/sli_left_functions.ecfg
index 54cbd91..99af136 100644
--- a/cfg/sli_left_functions.ecfg
+++ b/cfg/sli_left_functions.ecfg
@@ -1,36 +1,57 @@
-1.speed
-2.fuel:speed
-3.position:speed
-4.laps completed:speed
-5.sector:speed
-6.laps completed:total laps
-7.water temp
-8.oil temp
-9.wheels temp FL
-10.wheels temp FR
-11.wheels temp RL
-12.wheels temp RR
-13.wheels press FL
-14.wheels press FR
-15.wheels press RL
-16.wheels press RR
-17.brakes temp FL
-18.brakes temp FR
-19.brakes temp RL
-20.brakes temp RR
-21.position
-22.Remaining laps for fuel in tank
-23.rpm
-24.track size
-25.fuel
-26.distance
-27.laps completed
-28.total laps
-29.sector
-30.kers
-31.kers max
-32.drs
-33.kers percent
-34.kers percent:speed
-35.PIT
-36.Safety Car \ No newline at end of file
+1.speed [ rpm/gear ]
+2.rpm
+3.rpm/gear
+4.position/speed
+5.sector/speed
+6.laps/sector
+7.laps/position
+8.laps/total
+9.remaining laps/total
+10.fuel
+11.fuel/speed
+12.fuel/remaining laps with fuel
+13.water temp [ oil temp ]
+14.oil temp [ water temp ]
+15.wheels temp FL [ RL ]
+16.wheels temp FR [ RR ]
+17.wheels temp L/R FRONT [ L/R REAR ]
+18.wheels temp L/R FRONT [ wheels press L/R FRONT ]
+19.wheels temp L/R REAR [ wheels press L/R REAR ]
+20.wheels/brake temp left FRONT [ REAR ]
+21.brake/wheels temp right FRONT [ REAR ]
+22.wheels temp FL/ press FL [ RL/RL ]
+23.wheels press FR/ temp FR [ RR/RR ]
+24.wheels press FL [ RL ]
+25.wheels press FR [ RR ]
+26.wheels press L/R FRONT [ L/R REAR ]
+27.brakes temp FL [ RL ]
+28.brakes temp FR [ RR ]
+29.brakes temp L/R FRONT [ L/R REAR ]
+30.track percent [ track size ]
+31.total distance
+32.kers
+33.kers max
+34.kers percent
+35.drs
+36.current lap time [ last lap time ]
+37.current lap time + sector splits [ current sector time ]
+38.current lap time + best sector splits [ current sector time ]
+39.best lap time [ virtual best lap time ]
+40.best lap time + best sector splits [ virtual best lap time ]
+41.last lap time [ last sector ]
+42.last lap time + sector splits [ last sector ]
+43.diff vs best [ bestlap time ]
+44.diff vs best + best sector split [ best sector time ]
+45.diff vs best + bestlap sector split [ bestlap sector time ]
+46.diff vs last [ last lap time ]
+47.diff vs last + sector split [ last sector time ]
+48.last sector time [ last sector best time ]
+49.sector split [ last sector time ]
+50.last sector best time
+51.best sector split [ best sector time ]
+52.virtual best lap time (best sectors) [ best lap time ]
+53.time remaining [ time elapsed ]
+54.time elapsed [ time remaining ]
+55.system time
+56.PIT
+57.Safety Car
diff --git a/cfg/sli_right_functions.ecfg b/cfg/sli_right_functions.ecfg
index dea5e2c..3f5b30b 100644
--- a/cfg/sli_right_functions.ecfg
+++ b/cfg/sli_right_functions.ecfg
@@ -1,45 +1,55 @@
-1.current lap time
-2.best lap time
-3.last lap time
-4.iRacing current partial (off)
-5.iRacing vs best lap
-6.iRacing vs optimal lap
-7.iRacing vs optimal sector (off)
-8.iRacing vs session best lap
-9.iRacing vs session optimal lap
-10.iRacing vs session optimal sector (off)
-11.real time diff vs best
-12.real time diff vs last
-13.current sector (1, 2 and 3)
-14.best sector1
-15.best sector2
-16.last sector1
-17.last sector2
-18.position
-19.Remaining laps for fuel in tank
-20.speed
-21.time remaining
-22.system time
-23.rpm:gear
-24.time elapsed
-25.fuel
-26.distance
-27.lap completed
-28.total laps
-29.sector
-30.kers
-31.kers max
-32.drs
-33.kers percent
-34.track size
-35.last sector (3, 1 and 2)
-36.rpm
-37.real time diff vs last + sector splits
-38.real time diff vs best + sector splits
-39.last sector3
-40.best sector3
-41.current sector1
-42.current sector2
-43.current sector3
-44.real time diff vs best + best sector splits
-45.virtual best lap time
+1.speed [ rpm/gear ]
+2.rpm
+3.rpm/gear
+4.position/speed
+5.sector/speed
+6.laps/sector
+7.laps/position
+8.laps/total
+9.remaining laps/total
+10.fuel
+11.fuel/speed
+12.fuel/remaining laps with fuel
+13.water temp [ oil temp ]
+14.oil temp [ water temp ]
+15.wheels temp FL [ RL ]
+16.wheels temp FR [ RR ]
+17.wheels temp L/R FRONT [ L/R REAR ]
+18.wheels temp L/R FRONT [ wheels press L/R FRONT ]
+19.wheels temp L/R REAR [ wheels press L/R REAR ]
+20.wheels/brake temp left FRONT [ REAR ]
+21.brake/wheels temp right FRONT [ REAR ]
+22.wheels temp FL/ press FL [ RL/RL ]
+23.wheels press FR/ temp FR [ RR/RR ]
+24.wheels press FL [ RL ]
+25.wheels press FR [ RR ]
+26.wheels press L/R FRONT [ L/R REAR ]
+27.brakes temp FL [ RL ]
+28.brakes temp FR [ RR ]
+29.brakes temp L/R FRONT [ L/R REAR ]
+30.track percent [ track size ]
+31.total distance
+32.kers
+33.kers max
+34.kers percent
+35.drs
+36.current lap time [ last lap time ]
+37.current lap time + sector splits [ current sector time ]
+38.current lap time + best sector splits [ current sector time ]
+39.best lap time [ virtual best lap time ]
+40.best lap time + best sector splits [ virtual best lap time ]
+41.last lap time + sector splits [ last sector ]
+42.real time diff vs best [ bestlap time ]
+43.real time diff vs best + best sector split [ best sector time ]
+44.real time diff vs best + bestlap sector split [ bestlap sector time ]
+45.real time diff vs last [ last lap time ]
+46.real time diff vs last + sector split [ last sector time ]
+47.last sector time [ last sector best time ]
+48.sector split [ last sector time ]
+49.best sector split [ best sector time ]
+50.virtual best lap time (best sectors) [ best lap time ]
+51.time remaining [ time elapsed ]
+52.time elapsed [ time remaining ]
+53.system time
+54.PIT
+55.Safety Car
diff --git a/cfg/slipro_gus.sli b/cfg/slipro_gus.sli
index 534a82c..1aaecea 100644
--- a/cfg/slipro_gus.sli
+++ b/cfg/slipro_gus.sli
@@ -8,8 +8,8 @@
<HELP flag="4" value=" " info="Define the default value for speed-limiter method, left and right panel function, max left and right functions, Quick-Info left and right function"/>
<SPDLMTMETHOD flag="6" info="SPD LMT Methods functions are defined in speedlimiter.lua script. Enter a value from 0 to 5 (default 3)" value="2"/>
<SPDLMTRPMLEDONLY flag="6" value="false" info="Enter true if you want to blink the RPM led without the speedlimiter led when speedlimiter is activated."/>
- <LEFTDIGITSPANELS flag="4" info="Double-Click 'LEFTDIGITSPANELS' tag to assign left panel functions and apply your change. These functions are defined in slipro.lua script#~Custom Script can change the default behavior.#~These Functions ARE Not Available In All Simulation/Game" value="2,3,4,1,27,6,25,23"/>
- <RIGHTDIGITSPANELS flag="4" info="Double-Click 'RIGHTDIGITSPANELS' tag to assign right panel functions (time related functions) and apply your change. These functions are defined in slipro.lua script#~Custom Script can change the default behavior.#~These Functions ARE Not Available In All Simulation/Game" value="3,13,37,1,38,2,44,45"/>
+ <LEFTDIGITSPANELS flag="4" info="Double-Click 'LEFTDIGITSPANELS' tag to assign left panel functions and apply your change. These functions are defined in slipro.lua script#~Custom Script can change the default behavior.#~These Functions ARE Not Available In All Simulation/Game" value="1,2,3,4,5,6,7,8,9,10,11,12,13,15,17,18,19,20,22,24,26,27,29,30,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,53,54,55"/>
+ <RIGHTDIGITSPANELS flag="4" info="Double-Click 'RIGHTDIGITSPANELS' tag to assign right panel functions and apply your change. These functions are defined in slipro.lua script#~Custom Script can change the default behavior.#~These Functions ARE Not Available In All Simulation/Game" value="1,2,3,4,5,6,7,8,9,10,11,12,14,16,17,18,19,21,23,25,26,28,29,30,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,53,54,55"/>
<QIFUNCTIONLEFT flag="6" info="Enter the corresponding function number (0 to deactivate) to show the info on left digits while you keep the button assigned to QIButton pressed (see the functions list in the slipro.lua script or by editing LEFTDIGITSPANELS tag)." value="25"/>
<QIFUNCTIONRIGHT flag="6" info="Enter the corresponding function number (0 to deactivate) to show the info on right digits while you keep the button assigned to QIButton pressed (see the functions list in slipro.lua script or by editing RIGHTDIGITSPANELS tag)." value="22"/>
<BUTTONSCHARSMAPPING flag="38" value="false" info="Buttons from 1 to 16: Activate (true) or deactivate (false) button mapping to char function"/>
diff --git a/scripts/gugus/digits.lua b/scripts/gugus/digits.lua
new file mode 100644
index 0000000..27bde1d
--- /dev/null
+++ b/scripts/gugus/digits.lua
@@ -0,0 +1,376 @@
+
+require("scripts/gugus/functions")
+
+-- ============================================================
+-- Left and Right Panel functions
+-- ============================================================
+
+-----------------------
+-- left : 0.0.0:00:0 --
+-- right: 0:00.0.0:0 --
+-----------------------
+
+function leftDigitsEvent(swFunction)
+ lPanel = DigitsEvent(swFunction, "L")
+ if lPanel == nil then lPanel = "-.--.---" end
+ SetLeftDigits( lPanel )
+ return 1
+end
+function rightDigitsEvent(swFunction)
+ rPanel = DigitsEvent(swFunction, "R")
+ if rPanel == nil then rPanel = "-:--.---" end
+ SetRightDigits( rPanel )
+ return 1
+end
+
+function DigitsEvent(swFunction, where)
+ local swValue = swFunction + 1
+ local displaylaptime = GetContextInfo("displaylaptime")
+ local displaysectorsplit = mSectorSplit < GetTicks()
+
+ local lr = ""
+ if where == "R" then
+ lr = "."
+ else
+ lr = ":"
+ end
+
+ local Output = nil
+
+ qi = GetContextInfo("quickinfobutton")
+ if qi then
+ -- 1.speed [ 3.rpm/gear ]
+ if swValue == 1 then qi = false ; swValue = 3
+ -- 8.laps/total [ 9.remaining laps / total ]
+ elseif swValue == 8 then qi = false ; swValue = 9
+ elseif swValue == 9 then qi = false ; swValue = 8
+ -- 11.fuel/speed [ 12.fuel / remaining laps with fuel ]
+ elseif swValue == 11 then qi = false ; swValue = 12
+ -- 13.water temp [ 14.oil temp ]
+ elseif swValue == 13 then qi = false ; swValue = 14
+ elseif swValue == 14 then qi = false ; swValue = 13
+ -- lap/sector times
+ -- 36.current lap time [ 39.last lap time ]
+ elseif swValue == 36 then qi = false ; swValue = 39
+ -- 38.current lap time + best sector splits [ current sector time ]
+ elseif swValue == 37 then qi = false ; swValue = 47
+ -- 39.best lap time [ virtual best lap time ]
+ elseif swValue == 38 then qi = false ; swValue = 52
+ elseif swValue == 39 then qi = false ; swValue = 49
+ elseif swValue == 40 then qi = false ; swValue = 49
+ elseif swValue == 41 then qi = false ; swValue = 47
+ elseif swValue == 45 then qi = false ; swValue = 49
+ elseif swValue == 46 then qi = false ; swValue = 49
+ elseif swValue == 47 then qi = false ; swValue = 49
+ elseif swValue == 48 then qi = false ; swValue = 47
+ end
+ end
+ local NotQI = qi == false
+
+ -- 1.speed [ rpm/gear ]
+ if swValue == 1 then
+ Output = GetString("speed", where)
+
+ -- 2.rpm
+ elseif swValue == 2 then
+ Output = GetString("rpm", where)
+
+ -- 3.rpm/gear
+ elseif swValue == 3 then
+ Output = GetString("rpm", where .. "l") .. ":" .. GetString("gear", where .. "r")
+
+ -- 4.position/speed
+ elseif swValue == 4 then
+ Output = GetString("position", where .. "l") .. lr.. GetString("speed", where .. "r")
+
+ -- 5.sector/speed
+ elseif swValue == 5 then
+ Output = GetString("sector", where .. "l") .. lr .. GetString("speed", where .. "r")
+
+ -- 6.laps/sector
+ elseif swValue == 6 then
+ Output = GetString("laps", where .. "l") .. lr .. GetString("sector", where .. "r")
+
+ -- 7.laps/position
+ elseif swValue == 7 then
+ Output = GetString("laps", where .. "l") .. lr .. GetString("position", where .. "r")
+
+ -- 8.laps/total [ remaining laps / total ]
+ elseif swValue == 8 then
+ Output = GetString("laps", where .. "l") .. lr .. GetString("totallaps", where .. "r")
+
+ -- 9.remaining laps/total [ laps / total ]
+ elseif swValue == 9 then
+ Output = GetString("remaininglaps", where .. "l") .. lr .. GetString("totallaps", where .. "r")
+
+ -- 10.fuel
+ elseif swValue == 10 then
+ Output = GetString("fuel", where)
+
+ -- 11.fuel/speed
+ elseif swValue == 11 then
+ Output = GetString("fuel", where .. "l") .. lr .. GetString("speed", where .. "r")
+
+ -- 12.fuel/remaining laps with fuel
+ elseif swValue == 12 then
+ Output = GetString("fuel", where .. "l") .. lr .. GetString("remaininglapsintank", where .. "r")
+
+ -- 13.water temp [ oil temp ]
+ elseif swValue == 13 then
+ Output = GetString("watertemp", where)
+
+ -- 14.oil temp [ water temp ]
+ elseif swValue == 14 then
+ Output = GetString("oiltemp", where)
+
+ -- 15.wheels temp FL [ RL ]
+ elseif swValue == 15 then
+ if NotQI then
+ Output = GetString("wtfl", where)
+ else
+ Output = GetString("wtrl", where)
+ end
+
+ -- 16.wheels temp FR [ RR ]
+ elseif swValue == 16 then
+ if NotQI then
+ Output = GetString("wtfr", where)
+ else
+ Output = GetString("wtrr", where)
+ end
+
+ -- 17.wheels temp L/R FRONT [ L/R REAR ]
+ elseif swValue == 17 then
+ if NotQI then
+ Output = GetString("wtfl", where .. "l") .. lr .. GetString("wtfr", where .. "r")
+ else
+ Output = GetString("wtrl", where .. "l") .. lr .. GetString("wtrr", where .. "r")
+ end
+
+ -- 18.wheels temp L/R FRONT [ wheels press L/R FRONT ]
+ elseif swValue == 18 then
+ if NotQI then
+ Output = GetString("wtfl", where .. "l") .. lr .. GetString("wtfr", where .. "r")
+ else
+ Output = GetString("wpfl", where .. "l") .. lr .. GetString("wpfr", where .. "r")
+ end
+
+ -- 19.wheels temp L/R REAR [ wheels press L/R REAR ]
+ elseif swValue == 19 then
+ if NotQI then
+ Output = GetString("wtrl", where .. "l") .. lr .. GetString("wtrr", where .. "r")
+ else
+ Output = GetString("wprl", where .. "l") .. lr .. GetString("wprr", where .. "r")
+ end
+
+ -- 20.wheels/brake temp left FRONT [ REAR ]
+ elseif swValue == 20 then
+ if NotQI then
+ Output = GetString("wtfl", where .. "l") .. lr .. GetString("btfl", where .. "r")
+ else
+ Output = GetString("wtrl", where .. "l") .. lr .. GetString("btrl", where .. "r")
+ end
+
+ -- 21.brake/wheels temp right FRONT [ REAR ]
+ elseif swValue == 21 then
+ if NotQI then
+ Output = GetString("btfr", where .. "l") .. lr .. GetString("wtfr", where .. "r")
+ else
+ Output = GetString("btrr", where .. "l") .. lr .. GetString("wtrr", where .. "r")
+ end
+
+ -- 22.wheels temp FL/ press FL [ RL/RL ]
+ elseif swValue == 22 then
+ if NotQI then
+ Output = GetString("wtfl", where .. "l") .. lr .. GetString("wpfl", where .. "r")
+ else
+ Output = GetString("wtrl", where .. "l") .. lr .. GetString("wprl", where .. "r")
+ end
+
+ -- 23.wheels press FR/ temp FR [ RR/RR ]
+ elseif swValue == 23 then
+ if NotQI then
+ Output = GetString("wpfr", where .. "l") .. lr .. GetString("wtfr", where .. "r")
+ else
+ Output = GetString("wprr", where .. "l") .. lr .. GetString("wtrr", where .. "r")
+ end
+
+ -- 24.wheels press FL [ RL ]
+ elseif swValue == 24 then
+ if NotQI then
+ Output = GetString("wpfl", where)
+ else
+ Output = GetString("wprl", where)
+ end
+
+ -- 25.wheels press FR [ RR ]
+ elseif swValue == 25 then
+ if NotQI then
+ Output = GetString("wpfr", where)
+ else
+ Output = GetString("wprr", where)
+ end
+
+ -- 26.wheels press L/R FRONT [ L/R REAR ]
+ elseif swValue == 26 then
+ if NotQI then
+ Output = GetString("wpfl", where .. "l") .. lr .. GetString("wpfr", where .. "r")
+ else
+ Output = GetString("wprl", where .. "l") .. lr .. GetString("wprr", where .. "r")
+ end
+
+ -- 27.brakes temp FL [ RL ]
+ elseif swValue == 27 then
+ if NotQI then
+ Output = GetString("btfl", where)
+ else
+ Output = GetString("btrl", where)
+ end
+
+ -- 28.brakes temp FR [ RR ]
+ elseif swValue == 28 then
+ if NotQI then
+ Output = GetString("btfr", where)
+ else
+ Output = GetString("btrr", where)
+ end
+
+ -- 29.brakes temp L/R FRONT [ L/R REAR ]
+ elseif swValue == 29 then
+ if NotQI then
+ Output = GetString("btfl", where .. "l") .. lr .. GetString("btfr", where .. "r")
+ else
+ Output = GetString("btrl", where .. "l") .. lr .. GetString("btrr", where .. "r")
+ end
+
+ -- 30.track percent [ track size ]
+ elseif swValue == 30 then
+ if NotQI then
+ Output = GetString("trackpercent", where)
+ else
+ Output = GetString("tracksize", where)
+ end
+
+ -- 31.total distance
+ elseif swValue == 31 then
+ Output = GetString("distance", where)
+
+ -- 32.kers
+ elseif swValue == 32 then
+
+ -- 33.kers max
+ elseif swValue == 33 then
+
+ -- 34.kers percent
+ elseif swValue == 34 then
+
+ -- 35.drs
+ elseif swValue == 35 then
+
+ -- 36.current lap time [ last lap time ]
+ elseif swValue == 36 then
+ Output = GetTimeString("laptime", where)
+
+ -- 37.current lap time + sector splits [ current sector time ]
+ elseif swValue == 37 then
+ if displaysectorsplit == false then
+ Output = GetTimeString("laptime", where)
+ else
+ Output = GetTimeString("lastsectorsplitVSlast", where)
+ end
+
+ -- 38.current lap time + best sector splits [ current sector time ]
+ elseif swValue == 38 then
+ if displaysectorsplit == false then
+ Output = GetTimeString("laptime", where)
+ else
+ Output = GetTimeString("lastsectorsplitVSbest", where)
+ end
+
+ -- 39.best lap time [ virtual best lap time ]
+ elseif swValue == 39 then
+ Output = GetTimeString("bestlaptime", where)
+
+ -- 40.best lap time + best sector splits [ virtual best lap time ]
+ elseif swValue == 40 then
+ if displaysectorsplit == false then
+ Output = GetTimeString("bestlaptime", where)
+ else
+ Output = GetTimeString("lastsectorsplitVSbest", where)
+ end
+
+ -- 41.last lap time [ last sector ]
+ elseif swValue == 41 then
+
+ -- 42.last lap time + sector splits [ last sector ]
+ elseif swValue == 42 then
+
+ -- 43.real time diff vs best [ bestlap time ]
+ elseif swValue == 43 then
+
+ -- 44.real time diff vs best + best sector split [ best sector time ]
+ elseif swValue == 44 then
+
+ -- 45.real time diff vs best + bestlap sector split [ bestlap sector time ]
+ elseif swValue == 45 then
+
+ -- 46.real time diff vs last [ last lap time ]
+ elseif swValue == 46 then
+
+ -- 47.real time diff vs last + sector split [ last sector time ]
+ elseif swValue == 47 then
+
+ -- 48.last sector time [ last sector best time ]
+ elseif swValue == 48 then
+ Output = GetTimeString("lastsector", where)
+
+ -- 49.sector split [ last sector time ]
+ elseif swValue == 49 then
+
+ -- 50.last sector best time
+ elseif swValue == 50 then
+ Output = GetTimeString("lastsectorbest", where)
+
+ -- 51.best sector split [ best sector time ]
+ elseif swValue == 51 then
+ Output = GetTimeString("lastsectorsplitVSbest", where)
+
+ -- 52.virtual best lap time (best sectors) [ best lap time ]
+ elseif swValue == 52 then
+ Output = GetTimeString("virtualbestlap", where)
+
+ -- 53.time remaining [ time elapsed ]
+ elseif swValue == 53 then
+ Output = GetTimeString("timeremaining", where)
+
+ -- 54.time elapsed [ time remaining ]
+ elseif swValue == 54 then
+ Output = GetTimeString("timeelapsed", where)
+
+ -- 55.system time
+ elseif swValue == 55 then
+ Output = GetTimeString("clock", where)
+
+ -- 56.PIT
+ elseif swValue == 56 then
+ if GetContextInfo("inpits") then
+ Output = " Pits "
+ else
+ Output = " "
+ end
+
+ -- 57.Safety Car
+ elseif swValue == 57 then
+ if GetContextInfo("safetycar") then
+ Output = "Safety"
+ else
+ Output = " "
+ end
+
+ end
+
+ return Output
+end
+
+
+print ( "gugus> + slipro digits" )
diff --git a/scripts/gugus/functions.lua b/scripts/gugus/functions.lua
new file mode 100644
index 0000000..81ffcf6
--- /dev/null
+++ b/scripts/gugus/functions.lua
@@ -0,0 +1,584 @@
+-- ============================================================
+-- Left and Right Panel functions
+-- ============================================================
+
+--require ("scripts/gugus/sector.lua")
+
+ --------------------------------
+ -- 0.0.0:00:0 [0.] 0:00.0.0:0 --
+ -- Ll : Lr [0.] Rl . Rr --
+ -- L [0.] R --
+ --------------------------------
+
+mDebug = GetTicks()
+
+function GetWheelTemp(what)
+ local sim = GetContextInfo("simulation")
+ local unit = GetContextInfo("speedmetric")
+
+ local temp = 0
+ if what == "wtfl" then temp = GetCarInfo("wheeltempfrontleft")
+ elseif what == "wtfr" then temp = GetCarInfo("wheeltempfrontright")
+ elseif what == "wtrr" then temp = GetCarInfo("wheeltemprearright")
+ elseif what == "wtrl" then temp = GetCarInfo("wheeltemprearleft")
+ elseif what == "btfl" then temp = GetCarInfo("braketempfrontleft")
+ elseif what == "btfr" then temp = GetCarInfo("braketempfrontright")
+ elseif what == "btrr" then temp = GetCarInfo("braketemprearright")
+ elseif what == "btrl" then temp = GetCarInfo("braketemprearleft")
+ end
+
+ if isAppRFactor(sim) or sim == "GTR2.exe" then temp = KtoC(temp) end
+ -- convert from C to K if needed
+ return GetTemp(temp, unit)
+end
+
+function GetWheelPressure(what)
+
+ local press = 0
+ if what == "wpfl" then press = GetCarInfo("wheelpressfrontleft")
+ elseif what == "wpfr" then press = GetCarInfo("wheelpressfrontright")
+ elseif what == "wprr" then press = GetCarInfo("wheelpressrearright")
+ elseif what == "wprl" then press = GetCarInfo("wheelpressrearleft")
+ end
+
+ return press / 6.88
+end
+
+function GetString(what, where)
+ -- where should be one of : L, R, Ll, Lr, Rl, Rr
+
+ local fullSize = false
+ if where == "R" or where == "L" then fullSize = true end
+
+ local Output = " "
+ if fullSize then Output = " " end
+
+ -- GENERAL
+
+ -- speed
+ if what == "speed" then
+ if fullSize then
+ Output = string.format(" %3d", GetCarInfo("speed"))
+ else
+ Output = string.format("%3d", GetCarInfo("speed"))
+ end
+ -- rpm
+ elseif what == "rpm" then
+ if fullSize then
+ Output = string.format(" %5d", GetCarInfo("rpm"))
+ else
+ Output = string.format("%5d", GetCarInfo("rpm"))
+ end
+ -- gear
+ elseif what == "gear" then
+ Output = string.format("%d", GetCarInfo("gear"))
+ elseif what == "pos" then
+ Output = string.format("P%02d", GetContextInfo("position"))
+ -- sector
+ elseif what == "sector" then
+ if where == "Ll" or where == "Rl" then
+ Output = string.format("S%1d ", GetCarInfo("sector"))
+ elseif where == "Lr" or where == "Rr" then
+ Output = string.format(" S%1d", GetCarInfo("sector"))
+ else -- fullSize
+ Output = string.format(" S%1d ", GetCarInfo("sector"))
+ end
+
+ -- LAPS
+ -- laps completed
+ elseif what == "laps" then
+ local laps = GetContextInfo("laps")
+ if fullSize then
+ Output = string.format("L %3d ", laps)
+ else
+ if laps > 99 then
+ Output = string.format("%03d", laps)
+ else
+ Output = string.format("L%02d", laps)
+ end
+ end
+ -- total laps
+ elseif what == "totallaps" then
+ local totallaps = GetContextInfo("lapscount")
+ if fullSize then
+ if totallaps ~= 0 then
+ Output = string.format("t %3d ", totallaps)
+ else
+ Output = "t -- "
+ end
+ else
+ if totallaps > 99 then
+ Output = string.format("%03d", totallaps)
+ elseif totallaps ~= 0 then
+ Output = string.format("t%02d", totallaps)
+ else
+ Output = "t--"
+ end
+ end
+ -- remaining laps
+ elseif what == "remainlaps" then
+ tl = GetContextInfo("lapscount")
+ l = GetContextInfo("laps")
+ if fullSize then
+ if tl ~= 0 then
+ Output = string.format("r %3d ", tl - l)
+ else
+ Output = "r -- "
+ end
+ else
+ if tl ~= 0 then
+ Output = string.format("r%03d", tl - l)
+ else
+ Output = "r--"
+ end
+ end
+
+ -- FUEL
+ -- fuel
+ elseif what == "fuel" then
+ fuel = GetFuel(GetCarInfo("fuel"), GetContextInfo("speedmetric"))
+ if fullSize then
+ if fuel >= 100 then
+ Output = string.format ( "F. %4d", fuel )
+ elseif fuel >= 10 then
+ Output = string.format ( "F. %2.1f", fuel )
+ else
+ Output = string.format ( "F. %1.1f", fuel )
+ end
+ else
+ if fuel >= 100 then
+ -- specific for euro truck :)
+ if fuel >= 999 then
+ Output = "999"
+ else
+ Output = string.format("%03d", round(fuel) % 1000 )
+ end
+ elseif fuel >= 10 then
+ Output = string.format("F%2d", math.floor(fuel) )
+ elseif fuel >= 1 then
+ if where == "Rl" then
+ -- no dot after second digit
+ Output = string.format("F %d", fuel )
+ else
+ Output = string.format("F%1.1f", fuel )
+ end
+ else
+ if where == "Lr" then
+ -- no dot after first digit..
+ Output = string.format("F .%d", fuel * 100 )
+ else
+ Output = string.format("F.%02d", fuel * 100 )
+ end
+ end
+ end
+ -- remaining laps with fuel
+ elseif what == "remainlapswithfuel" then
+ local rl = GetCarInfo("remainlapsintank")
+ if rl ~= 0 then
+ if rl > 99 then
+ Output = "r99"
+ else
+ Output = string.format("r%02d", GetCarInfo("remainlapsintank"))
+ end
+ else
+ Output = "r--"
+ end
+
+
+ -- ENGINE TEMP
+ -- water temp
+ elseif what == "water" then
+ wt = GetTemp(GetCarInfo("watertemp"), GetContextInfo("speedmetric"))
+ if fullSize then
+ Output = string.format("w %3d°", wt)
+ else
+ Output = string.format("%3d", wt)
+ end
+ -- oil temp
+ elseif what == "oil" then
+ oil = GetTemp(GetCarInfo("oiltemp"), GetContextInfo("speedmetric"))
+ if fullSize then
+ Output = string.format("o %3d°", oil)
+ else
+ Output = string.format("%3d", oil)
+ end
+
+
+ -- WHEEL TEMP
+ -- WHEEL PRESS
+ -- BRAKE TEMP
+ elseif what == "wtfl" or what == "wtfr" or what == "wtrl" or what == "wtrr"
+ or what == "btfl" or what == "btfr" or what == "btrl" or what == "btrr" then
+ if fullSize then
+ Output = string.format("%s.%3d", what, GetWheelTemp(what))
+ else
+ Output = string.format("%3d", GetWheelTemp(what))
+ end
+
+ elseif what == "wpfl" or what == "wpfr" or what == "wprl" or what == "wprr" then
+ if fullSize then
+ Output = string.format("%s.%3d", what, GetWheelPressure(what))
+ else
+ Output = string.format("%3d", GetWheelPressure(what))
+ end
+
+ -- DISTANCES
+ -- track size
+ elseif what == "track" then
+ track = GetContextInfo("tracksize") / 1000
+ if fullSize then
+ Output = string.format(" %2.3f", track)
+ else
+ if track >= 10. then
+ if where ~= "Rl" then
+ Output = string.format("%2.1f", track)
+ else
+ Output = string.format(" %2d", track)
+ end
+ else
+ if where ~= "Lr" then
+ Output = string.format("%1.2f", track)
+ else
+ Output = string.format(" %1.1f", track)
+ end
+ end
+ end
+ -- total distance
+ elseif what == "trip" then
+ distance = GetContextInfo("lapdistance") / 1000
+ if fullSize then
+ Output = string.format(" %2.3f", distance)
+ else
+ if distance >= 10. then
+ if where ~= "Rl" then
+ Output = string.format("%2.1f", distance)
+ else
+ Output = string.format(" %2d", distance)
+ end
+ else
+ if where ~= "Lr" then
+ Output = string.format("%1.2f", distance)
+ else
+ Output = string.format(" %1.1f", distance)
+ end
+ end
+ end
+ -- track %
+ elseif what == "trackpercent" then
+ track = GetContextInfo("lapdistance")
+ distance = GetContextInfo("lapdistance")
+ progress = (distance % track) * 100 / track
+ if fullSize then
+ Output = string.format(" %3.1f", progress)
+ else
+ Output = string.format("%3d", progress)
+ end
+
+ --
+ -- Formula 1
+ --
+ -- kers
+ elseif swValue == 27 then Output = GetCarInfo("kers")
+ -- kers max
+ elseif swValue == 28 then Output = GetCarInfo("kersmax")
+ -- kers percent
+ elseif swValue == 29 then Output = round(GetCarInfo("kers") * 100 / GetCarInfo("kersmax"))
+
+ -- drs
+ elseif swValue == 30 then Output = GetCarInfo("drs")
+
+ -- PIT
+ elseif what == "inpit" then
+ Output = GetContextInfo("inpits")
+ -- Safety Car
+ elseif what == "safetycar" then
+ Output = GetCarInfo("safetycar")
+
+ end
+
+ return Output
+end
+
+function GetTimeString(what, where)
+ -- most commonly used vars
+ local time = nil
+ local splitTime = false
+ local Output = " "
+
+ local fullSize = where == "L" or where == "R"
+ if fullSize then Output = " " end
+
+ --
+ -- TIMES
+ --
+
+ -- current lap time
+ if what == "currentlap" then time = GetTimeInfo("laptime")
+ -- best lap time
+ elseif what == "bestlaptime" then time = GetTimeInfo("bestlaptime")
+ -- last lap time
+ elseif what == "lastlaptime" then time = GetTimeInfo("lastlaptime")
+
+ -- virtual best lap time (best sectors)
+ elseif what == "virtualbestlap" then
+ if mBestSectors[1] ~= 0 and mBestSectors[2] ~= 0 and mBestSectors[3] ~= 0 then
+ time = mBestSectors[1] + mBestSectors[2] + mBestSectors[3]
+ end
+
+ -- current sector (1, 2 and 3)
+ elseif what == "currentsector" then
+ time = GetSectorTime("", 0)
+ -- previous sector (3, 1 and 2)
+ elseif what == "lastsector" then
+ time = GetSectorTime("", -1)
+ -- previous best sector (3, 1 and 2)
+ elseif what == "lastsectorbest" then
+ time = GetSectorTime("BEST", -1)
+ -- lastlap sector (1, 2 and 3)
+ elseif what == "lastlapsector" then
+ time = GetSectorTime("last", 0)
+ -- bestlap sector (1, 2 and 3)
+ elseif what == "bestlapsector" then
+ time = GetSectorTime("best", 0)
+ -- sector split
+ elseif what == "bestsector" then
+ time = GetSectorTime("BEST", 0)
+ -- sector split
+ elseif what == "lastsectorsplitVSlast" then
+ time = GetSectorSplit("last", -1)
+ splitTime = true
+ -- best lap sector split
+ elseif what == "lastsectorsplitVSbestlap" then
+ time = GetSectorSplit("best", -1)
+ splitTime = true
+ -- best sector split
+ elseif what == "lastsectorsplitVSbest" then
+ time = GetSectorSplit("BEST", -1)
+ splitTime = true
+
+ elseif what == "currentsectorsplitVSlast" then
+ time = GetSectorSplit("last", 0)
+ splitTime = true
+ -- best lap sector split
+ elseif what == "currentsectorsplitVSbestlap" then
+ time = GetSectorSplit("best", 0)
+ splitTime = true
+ -- best sector split
+ elseif what == "currentsectorsplitVSbest" then
+ time = GetSectorSplit("BEST", 0)
+ splitTime = true
+
+ -- real time diff vs best
+ elseif what == "diffbest" then
+ time = GetTimeInfo("realdiffbest")
+ splitTime = true
+ -- real time diff vs last
+ elseif what == "difflast" then
+ time = GetTimeInfo("realdifflast")
+ splitTime = true
+
+ -- time remaining
+ elseif what == "timeremaining" then
+ time = GetTimeInfo("timeremaining")
+ -- time elapsed
+ elseif what == "timeelapsed" then
+ time = GetTimeInfo("timetotalelapsed")
+
+ -- system time
+ elseif what == "clock" then
+ time = GetTimeInfo("systemtime")
+ end
+
+
+ if what ~= clock then
+ Output = TimeToString(time, where, splitTime)
+ else
+ local hr, mn, sc, cs, ms = timeDispatcher(time)
+ Output = string.format( " %2d.%02d ", hr, mn)
+ end
+
+ if Output == nil then Output = "" end
+ ticks = GetTicks()
+ if mDebug ==nil or ticks < mDebug then
+ if time ~= nil then
+ if splitTime then
+ --print ("funct: ".. what.. " ["..where.."] -> " ..time.." =[split]= ".. Output )
+ else
+ --print ("funct: ".. what.. " ["..where.."] -> " ..time.." == ".. Output )
+ end
+ else
+
+ print ("funct: ".. what.. " ["..where.."] -> nil == ".. Output )
+ end
+ mDebug = ticks + 10000
+ end
+ return Output
+end
+
+function GetSectorTime(what, which)
+ local sector = GetCarInfo("sector") + which
+ if sector == 0 then sector = 3 end
+ local time = 0.
+
+ if what == "" and which == 0 then
+ time = GetTimeInfo("laptime")
+ if sector == 1 then time = time
+ elseif sector == 2 then time = time - GetTimeInfo("sector1")
+ elseif sector == 3 then time = time - GetTimeInfo("sector1") - GetTimeInfo("sector2")
+ end
+ elseif what == "BEST" then
+ time = mBestSectors[sector]
+ else
+ GetTimeInfo(string.format("%ssector%d", what, sector))
+ end
+ return time
+end
+
+function GetSectorSplit(what, which)
+ return GetSectorTime("", which) - GetSectorTime(what, which)
+end
+
+function TimeToString(time, where, splitTime)
+
+ local Output = "000"
+ if where == "R" or where == "L" then Output = "0.00.000" end
+
+ if time ~= nil then
+
+ local hr = 0
+ local mn = 0
+ local sc = 0
+ local cs = 0
+ local ms = 0
+
+ hr, mn, sc, cs, ms = timeDispatcher(time)
+
+ -- blinking second separator
+ local dot = "."
+ local colon = ":"
+ local min = "'"
+ --if cs >= 50 then
+ -- dot = ""
+ -- colon = "."
+ -- min = " "
+ --end
+
+ if splitTime == false then
+
+ if where == "R" or where == "L" then
+ if hr > 9 then
+ -- [L] HHH:MM:S
+ -- [R] HHH.MM:S
+ Output = string.format("%3d.%02d%s%d", hr, mn, colon, sc/10)
+ elseif hr > 0 then
+ if where == "R" then
+ -- [R] H:MM.SS.m
+ Output = string.format("%d:%02d%s%02d.%d", hr, mn, sc, cs/10)
+ else
+ -- [L] H.MM:SS.m
+ Output = string.format("%d.%02d:%02d.%d", hr, mn, sc, cs/10)
+ end
+ elseif mn > 0 then
+ --  MM.SS.m
+ Output = string.format(" %2d.%02d.%d", mn, sc, cs/10)
+ else
+ --  SS.mmm
+ Output = string.format(" %2d.%03d", sc, ms)
+ end
+
+ else
+ if hr > 0 then
+ -- HHh
+ Output = string.format("%2dh", hr)
+ elseif mn > 9 then
+ if where ~= "Rl" then
+ -- MM.S
+ Output = string.format("%2d%s%d", mn, dot, sc/10)
+ else
+ -- MM'
+ Output = string.format("%2d%s", mn, min)
+ end
+ elseif mn > 0 then
+ if where ~= "Lr" then
+ -- M.SS
+ Output = string.format("%d.%02d", mn, sc)
+ else
+ --  M:S
+ Output = string.format(" %d%s%d", mn, colon, sc)
+ end
+ else
+ if where ~= "Rl" then
+ -- SS.m
+ Output = string.format("%2d.%d", sc, cs/10)
+ else
+ if sc > 9 then
+ --  SS
+ Output = string.format(" %2d", sc)
+ else
+ -- S.mm
+ Output = string.format("%d.%02d", sc, cs)
+ end
+ end
+ end
+ end
+
+ else
+ -- splittimes --
+ if hr > 0 then
+ -- -HHhMM
+ Output = string.format("%3dh%02d", hr, mn)
+ elseif mn > 0 then
+ -- -MM.SS.m
+ Output = string.format("%3d.%02d.%d", mn, sc, cs/10)
+ else
+ -- -SS.mmm
+ Output = string.format("%3d.%03d", sc, ms)
+ end
+
+ end
+
+ else
+
+ if splitTime == false then
+
+ -- 0.0.0:00:0 [0.] 0:00.0.0:0 --
+ if where == "R" then
+ Output = "-:--.---"
+ elseif where == "L" then
+ Output = " -:--.-"
+ else
+ if where ~= "Rl" then
+ Output = "--.-"
+ else
+ Output = "-.--"
+ end
+ end
+
+ else
+ -- 0.0.0:00:0 [0.] 0:00.0.0:0 --
+ if where == "R" or where == "L" then
+ Output " --.---"
+ else
+ if where ~= "Rl" then
+ Output "--.-"
+ else
+ Output "-.--"
+ end
+ end
+
+ end
+ end
+
+ ticks = GetTicks()
+ if mDebug ==nil or ticks < mDebug then
+ if time == nil then time = "NIL" end
+ if Output == nil then Output = "NIL" end
+ print ( time .. " [" .. where .. "] " .. Output )
+ mDebug = ticks + 10000
+ end
+
+ return Output
+
+end
+
+print ( "gugus> + switch positions" )
diff --git a/scripts/slipro_gus.lua b/scripts/slipro_gus.lua
index c5cc6a2..8cc4d55 100644
--- a/scripts/slipro_gus.lua
+++ b/scripts/slipro_gus.lua
@@ -5,7 +5,10 @@ require("scripts/gugus/sector")
require "scripts/gugus/session"
require "scripts/gugus/controls"
require "scripts/gugus/dev"
-require "scripts/gugus/slipro"
+--require "scripts/gugus/slipro"
+--require "scripts/gugus/functions"
+require "scripts/gugus/digits"
+
require "scripts/gugus/speedlimiter"
require "scripts/gugus/gear"