summaryrefslogtreecommitdiff
path: root/scripts/gear.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gear.lua')
-rw-r--r--scripts/gear.lua350
1 files changed, 175 insertions, 175 deletions
diff --git a/scripts/gear.lua b/scripts/gear.lua
index 54649d6..bcf0361 100644
--- a/scripts/gear.lua
+++ b/scripts/gear.lua
@@ -1,176 +1,176 @@
--- SLIMax Mgr Lua Script v3.2.1
--- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved.
--- gear event
--- last change by Zappadoc - 2013-09
-
-function Ignition(gear, isFanatec)
- -- ========================================================================================
- -- IGNITION
- -- patch led function damage for ignition
- -- check if sim is rFactor2
- if GetContextInfo("simulation") == "rFactor2.exe" then
- if GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
- if GetCarInfo("ignition") == 0 then
- -- engine has been stopped
- -- engine has been stopped
- -- do nothing
-
-
- elseif GetCarInfo("ignition") == 1 then
- -- ignition ON after engine stop
- -- engine has been stopped, ignition ON
-
- SetDigitsAllowed(false)
- if isFanatec == true then
- SetFanatecDigits(" ")
- else
- SetLeftDigits (" ")
- SetRightDigits (" ")
- end
-
- SetGearDigit("_")
-
- -- init led
- toggleAllLed(0)
-
- -- blink damage led
- if mOLDIgnitionticks == nil or GetTicks() > mOLDIgnitionticks then
- mOLDIgnitionticks = GetTicks() + 1000
- initLedTable(mRPMLedTable, 1)
-
- SetWarnLed(GetLedIndex("damage"), 1)
-
- else
- initLedTable(mRPMLedTable, 0)
- SetWarnLed(GetLedIndex("damage"), 0)
- end
- SetRPMLed("mRPMLedTable")
- SLISendReport()
- return 1
-
- elseif GetCarInfo("ignition") == 2 and GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
- -- ignition ON and starter ON
- -- engine has been stopped, ignition ON + Starter ON
-
- SetGearDigit("-")
- SetDigitsAllowed(true)
- -- stop blinking
- initLedTable(mRPMLedTable, 1)
- SetWarnLed(GetLedIndex("damage"), 1)
- SetRPMLed("mRPMLedTable")
- SLISendReport()
- return 1
- end
- end
- end
- return 2
-end
-
--- SIM RACE Deluxe, SIM RACE F1, SLI-M, SLI-PRO Gear Event
-function gearEvent(gear)
- -- get the rpm limit already computed by my OSP method
- -- using OSP Factor parameter
- -- value used in OSP, Shiftlights, car setup,... and can be overwritten
- gOSPLimit = 0
- gOSPLimit = GetContextInfo("osplimitrpm")
- if gOSPLimit == nil then gOSPLimit = 0 end
-
- -- get the red zone already computed by my SLIMax Mgr II
- -- value used in Shiftlights and can be overwritten
- gRedZone = 0
- gRedZone = GetCarInfo("redzone")
- if gRedZone == nil then gRedZone = 18000 end
-
- -- call custom script
- local result = custom_gearEvent(gear)
- if result <= 1 then return result end
-
- -- call global custom script
- result = global_custom_gearEvent(gear)
- if result <= 1 then return result end
-
- -- ignition
- if Ignition(gear, false) <= 1 then return 1 end
-
- local g = gear
- if oldGear == nil then oldGear = -1 end
-
- -- get neutral
- local n = GetContextInfo("neutral")
- -- get reverse char and convert to string
- local r = string.char(GetContextInfo("reverse"))
- -- get state of custom Optimal Shift Point (OSP) records
- local ospcustom_on = GetContextInfo("ospcustom")
-
- -- optimize display, call if changed
- if oldGear ~= g then
- -- backup gear state
- oldGear = g
- -- set neutral, reverse or current gear
- if g == 0 then
- -- if neutral and using custom OSP record then add a dot to gear digit
- if ospcustom_on then n = n + 128 end
- SetGearDigit(string.char(n))
- elseif g < 0 then
- SetGearDigit(r)
- else
- -- if gear = 'E' give the hand to SLIMax Manager
- if g == 69 then
- return 0
- end
- SetGearDigit(string.char(g))
- end
- end
-
- return 1
-end
-
-
--- Fanatec Gear Event
-function gearFanatecEvent(gear)
- -- get the rpm limit already computed by my OSP method
- -- using OSP Factor parameter
- -- value used in OSP, Shiftlights, car setup,... and can be overwritten
- gOSPLimit = 0
- gOSPLimit = GetContextInfo("osplimitrpm")
- if gOSPLimit == nil then gOSPLimit = 0 end
-
- -- get the red zone already computed by my SLIMax Mgr
- -- value used in Shiftlights and can be overwritten
- gRedZone = 0
- gRedZone = GetCarInfo("redzone")
- if gRedZone == nil then gRedZone = 18000 end
-
- -- call custom script
- local result = custom_gearFanatecEvent(gear)
- if result <= 1 then return result end
-
- -- call global custom script
- result = global_custom_gearFanatecEvent(gear)
- if result <= 1 then return result end
-
- -- ignition
- if Ignition(gear, true) <= 1 then return 1 end
-
- local g = gear
- if oldGear == nil then oldGear = -1 end
-
- if oldGear ~= g then
- local rumbbleGear = GetContextInfo("gearshock")
- local rumbbleGearDelay = GetContextInfo("gearshockdelay")
-
- -- gear schock effect restricted to 1 to 7
- if rumbbleGear and g > 0 then
- if g < oldGear then
- SetFanatecWheelMotor(0, 100, rumbbleGearDelay)
- elseif g > oldGear then
- SetFanatecWheelMotor(1, 100, rumbbleGearDelay)
- end
- end
-
- -- backup gear state
- oldGear = g
- end
-
- return 2
+-- SLIMax Mgr Lua Script v3.2.1
+-- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved.
+-- gear event
+-- last change by Zappadoc - 2013-09
+
+function Ignition(gear, isFanatec)
+ -- ========================================================================================
+ -- IGNITION
+ -- patch led function damage for ignition
+ -- check if sim is rFactor2
+ if GetContextInfo("simulation") == "rFactor2.exe" then
+ if GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
+ if GetCarInfo("ignition") == 0 then
+ -- engine has been stopped
+ -- engine has been stopped
+ -- do nothing
+
+
+ elseif GetCarInfo("ignition") == 1 then
+ -- ignition ON after engine stop
+ -- engine has been stopped, ignition ON
+
+ SetDigitsAllowed(false)
+ if isFanatec == true then
+ SetFanatecDigits(" ")
+ else
+ SetLeftDigits (" ")
+ SetRightDigits (" ")
+ end
+
+ SetGearDigit("_")
+
+ -- init led
+ toggleAllLed(0)
+
+ -- blink damage led
+ if mOLDIgnitionticks == nil or GetTicks() > mOLDIgnitionticks then
+ mOLDIgnitionticks = GetTicks() + 1000
+ initLedTable(mRPMLedTable, 1)
+
+ SetWarnLed(GetLedIndex("damage"), 1)
+
+ else
+ initLedTable(mRPMLedTable, 0)
+ SetWarnLed(GetLedIndex("damage"), 0)
+ end
+ SetRPMLed("mRPMLedTable")
+ SLISendReport()
+ return 1
+
+ elseif GetCarInfo("ignition") == 2 and GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
+ -- ignition ON and starter ON
+ -- engine has been stopped, ignition ON + Starter ON
+
+ SetGearDigit("-")
+ SetDigitsAllowed(true)
+ -- stop blinking
+ initLedTable(mRPMLedTable, 1)
+ SetWarnLed(GetLedIndex("damage"), 1)
+ SetRPMLed("mRPMLedTable")
+ SLISendReport()
+ return 1
+ end
+ end
+ end
+ return 2
+end
+
+-- SIM RACE Deluxe, SIM RACE F1, SLI-M, SLI-PRO Gear Event
+function gearEvent(gear)
+ -- get the rpm limit already computed by my OSP method
+ -- using OSP Factor parameter
+ -- value used in OSP, Shiftlights, car setup,... and can be overwritten
+ gOSPLimit = 0
+ gOSPLimit = GetContextInfo("osplimitrpm")
+ if gOSPLimit == nil then gOSPLimit = 0 end
+
+ -- get the red zone already computed by my SLIMax Mgr II
+ -- value used in Shiftlights and can be overwritten
+ gRedZone = 0
+ gRedZone = GetCarInfo("redzone")
+ if gRedZone == nil then gRedZone = 18000 end
+
+ -- call custom script
+ local result = custom_gearEvent(gear)
+ if result <= 1 then return result end
+
+ -- call global custom script
+ result = global_custom_gearEvent(gear)
+ if result <= 1 then return result end
+
+ -- ignition
+ if Ignition(gear, false) <= 1 then return 1 end
+
+ local g = gear
+ if oldGear == nil then oldGear = -1 end
+
+ -- get neutral
+ local n = GetContextInfo("neutral")
+ -- get reverse char and convert to string
+ local r = string.char(GetContextInfo("reverse"))
+ -- get state of custom Optimal Shift Point (OSP) records
+ local ospcustom_on = GetContextInfo("ospcustom")
+
+ -- optimize display, call if changed
+ if oldGear ~= g then
+ -- backup gear state
+ oldGear = g
+ -- set neutral, reverse or current gear
+ if g == 0 then
+ -- if neutral and using custom OSP record then add a dot to gear digit
+ if ospcustom_on then n = n + 128 end
+ SetGearDigit(string.char(n))
+ elseif g < 0 then
+ SetGearDigit(r)
+ else
+ -- if gear = 'E' give the hand to SLIMax Manager
+ if g == 69 then
+ return 0
+ end
+ SetGearDigit(string.char(g))
+ end
+ end
+
+ return 1
+end
+
+
+-- Fanatec Gear Event
+function gearFanatecEvent(gear)
+ -- get the rpm limit already computed by my OSP method
+ -- using OSP Factor parameter
+ -- value used in OSP, Shiftlights, car setup,... and can be overwritten
+ gOSPLimit = 0
+ gOSPLimit = GetContextInfo("osplimitrpm")
+ if gOSPLimit == nil then gOSPLimit = 0 end
+
+ -- get the red zone already computed by my SLIMax Mgr
+ -- value used in Shiftlights and can be overwritten
+ gRedZone = 0
+ gRedZone = GetCarInfo("redzone")
+ if gRedZone == nil then gRedZone = 18000 end
+
+ -- call custom script
+ local result = custom_gearFanatecEvent(gear)
+ if result <= 1 then return result end
+
+ -- call global custom script
+ result = global_custom_gearFanatecEvent(gear)
+ if result <= 1 then return result end
+
+ -- ignition
+ if Ignition(gear, true) <= 1 then return 1 end
+
+ local g = gear
+ if oldGear == nil then oldGear = -1 end
+
+ if oldGear ~= g then
+ local rumbbleGear = GetContextInfo("gearshock")
+ local rumbbleGearDelay = GetContextInfo("gearshockdelay")
+
+ -- gear schock effect restricted to 1 to 7
+ if rumbbleGear and g > 0 then
+ if g < oldGear then
+ SetFanatecWheelMotor(0, 100, rumbbleGearDelay)
+ elseif g > oldGear then
+ SetFanatecWheelMotor(1, 100, rumbbleGearDelay)
+ end
+ end
+
+ -- backup gear state
+ oldGear = g
+ end
+
+ return 2
end \ No newline at end of file