;;;;;;;;;;;;;;;;;;;;;;;;;LCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



[CAR_STEREO_...]
ACTIVE = $" read('csp/version', 0) >= 1279 "

MESHES = lcd_1
RESOLUTION = 1024, 384
DISPLAY_POS = 0, 48
DISPLAY_SIZE = 1024, 275
COLOR = 1, 1, 1
FADE_WHEN_INACTIVE = 0.95
DITHERING = 2

; artist text
TEXT_CSP_0 = "{Artist}"
TEXT_CSP_0_NOALBUM = "{Artist}"
TEXT_CSP_0_NOARTIST = "{Track}"
TEXT_CSP_0_FALLBACK = ""
TEXT_CSP_0_ALIGN_LAYOUT = 0
TEXT_CSP_0_START = 520, 55
TEXT_CSP_0_SIZE = 310, 80
TEXT_CSP_0_FONT_TYPE = ITALIC
TEXT_CSP_0_Z_INDEX = 10
TEXT_CSP_0_SCALE = 1, 1
TEXT_CSP_0_BOLD = 1

; track text
TEXT_CSP_3 = "{Track}"
TEXT_CSP_3_NOALBUM = "{Track}"
TEXT_CSP_3_NOARTIST = "{Track}"
TEXT_CSP_3_FALLBACK = ""
TEXT_CSP_3_ALIGN_LAYOUT = 0
TEXT_CSP_3_START = 520, 85
TEXT_CSP_3_SIZE = 310, 80
TEXT_CSP_3_FONT_TYPE = ITALIC
TEXT_CSP_3_Z_INDEX = 10
TEXT_CSP_3_SCALE = 1, 1
TEXT_CSP_3_BOLD = 1

; album text
TEXT_CSP_4 = "{Album}"
TEXT_CSP_4_NOALBUM = "{Album}"
TEXT_CSP_4_NOARTIST = "{Album}"
TEXT_CSP_4_FALLBACK = ""
TEXT_CSP_4_ALIGN_LAYOUT = 0
TEXT_CSP_4_START = 520, 115
TEXT_CSP_4_SIZE = 310, 80
TEXT_CSP_4_FONT_TYPE = ITALIC
TEXT_CSP_4_Z_INDEX = 10
TEXT_CSP_4_SCALE = 1, 1
TEXT_CSP_4_BOLD = 1

; track position
TEXT_CSP_1 = "{Position:%02d:%02d//--:--}"
TEXT_CSP_1_ALIGN_LAYOUT = 0
TEXT_CSP_1_START = 205, 215
TEXT_CSP_1_SIZE = 460, 48
TEXT_CSP_1_FONT_TYPE = MONOSPACE
TEXT_CSP_1_Z_INDEX = 10
TEXT_CSP_1_SCALE = 0.8
TEXT_CSP_1_BOLD = 1

; track duration
TEXT_CSP_2 = "{Duration:%02d:%02d//--:--}"
TEXT_CSP_2_ALIGN_LAYOUT = 1, 0
TEXT_CSP_2_START = 205, 215
TEXT_CSP_2_SIZE = 620, 48
TEXT_CSP_2_FONT_TYPE = MONOSPACE
TEXT_CSP_2_Z_INDEX = 10
TEXT_CSP_2_SCALE = 0.8
TEXT_CSP_2_BOLD = 1

; progress bar background
RECT_5 = 1
RECT_5_START = 280, 225
RECT_5_SIZE = 475, 5
RECT_5_Z_INDEX = 11
RECT_5_COLOR = 0.2, 0.2, 0.2, 0.5

; progress bar background
RECT_6 = 1
RECT_6_START = 280, 225
RECT_6_SIZE = 475, 5
RECT_6_Z_INDEX = 12
RECT_6_COLOR = 0.8, 0.8, 0.8, 1
RECT_6_SCALE_WITH_PROGRESS = 1, 0


; album cover in the middle
ALBUM_COVER_0 = 1
ALBUM_COVER_0_START = 340, 37
ALBUM_COVER_0_SIZE = 181, 180
ALBUM_COVER_0_Z_INDEX = -1
ALBUM_COVER_0_FALLBACK = MUSIC
ALBUM_COVER_0_FALLBACK_COLOR = 1.5, 1.5, 1.5, 0.5
ALBUM_COVER_0_FALLBACK_BACKGROUND = 0.05, 0.05, 0.05, 1
ALBUM_COVER_0_FALLBACK_SIZE = 28

; animation below album cover
ANIMATION_0 = 16, 4
ANIMATION_0_START = 310, 255
ANIMATION_0_BLOCK = 20, 2
ANIMATION_0_MARGIN = 6, 3
ANIMATION_0_BASE_ROW = BUTTOM

DYNAMIC_OPACITY = 0  ; disabling component from the start, relying on scriptable display to activate it when needed

[CAR_STEREO_1]
ACTIVE = $" read('csp/version', 0) >= 1279 "

MESHES = lcd_1
RESOLUTION = 1024, 384
DISPLAY_POS = 0, 48
DISPLAY_SIZE = 1024, 275
COLOR = 1, 1, 1
FADE_WHEN_INACTIVE = 0.95
DITHERING = 2

; animation below album cover
ANIMATION_0 = 20, 7
ANIMATION_0_START = 350, 20
ANIMATION_0_BLOCK = 20, 7
ANIMATION_0_MARGIN = 3, 3
ANIMATION_0_BASE_ROW = BOTTOM
ANIMATION_0_COLOR = 1,1,1,1
ANIMATION_0_Z_INDEX = 0

ANIMATION_1 = 20, 7
ANIMATION_1_START = 350, 30
ANIMATION_1_BLOCK = 20, 7
ANIMATION_1_MARGIN = 3, 3
ANIMATION_1_BASE_ROW = BOTTOM
ANIMATION_1_COLOR = 0,0,1,1
ANIMATION_1_Z_INDEX = 1

ANIMATION_2 = 20, 7
ANIMATION_2_START = 350, 40
ANIMATION_2_BLOCK = 20, 7
ANIMATION_2_MARGIN = 3, 3
ANIMATION_2_BASE_ROW = BOTTOM
ANIMATION_2_COLOR = 0,0.5,1,1
ANIMATION_2_Z_INDEX = 2

ANIMATION_3 = 20, 7
ANIMATION_3_START = 350, 250
ANIMATION_3_BLOCK = 20, -7
ANIMATION_3_MARGIN = 3, -3
ANIMATION_3_BASE_ROW = BOTTOM
ANIMATION_3_COLOR = 1,1,1,1
ANIMATION_3_Z_INDEX = 3

ANIMATION_4 = 20, 7
ANIMATION_4_START = 350, 240
ANIMATION_4_BLOCK = 20, -7
ANIMATION_4_MARGIN = 3, -3
ANIMATION_4_BASE_ROW = BOTTOM
ANIMATION_4_COLOR = 0,0,1,1
ANIMATION_4_Z_INDEX = 4

ANIMATION_5 = 20, 7
ANIMATION_5_START = 350, 230
ANIMATION_5_BLOCK = 20, -7
ANIMATION_5_MARGIN = 3, -3
ANIMATION_5_BASE_ROW = BOTTOM
ANIMATION_5_COLOR = 0,0.5,1,1
ANIMATION_5_Z_INDEX = 5

; progress bar background
RECT_5 = 1
RECT_5_START = 350, 120
RECT_5_SIZE = 460, 30
RECT_5_Z_INDEX = 11
RECT_5_COLOR = 1, 1, 1, 1

; progress bar background
RECT_6 = 1
RECT_6_START = 350, 120
RECT_6_SIZE = 460, 30
RECT_6_Z_INDEX = 12
RECT_6_COLOR = 0, 0.5, 1, 1
RECT_6_SCALE_WITH_PROGRESS = 1, 0

; progress bar background
RECT_7 = 1
RECT_7_START = 350, 137
RECT_7_SIZE = 460, 16
RECT_7_Z_INDEX = 13
RECT_7_COLOR = 0, 0, 1, 1

; album cover in the middle
ALBUM_COVER_0 = 1
ALBUM_COVER_0_START = 50, 35
ALBUM_COVER_0_SIZE = 250, 200
ALBUM_COVER_0_Z_INDEX = -1
ALBUM_COVER_0_FALLBACK = MUSIC
ALBUM_COVER_0_FALLBACK_COLOR = 1.5, 1.5, 1.5, 0.5
ALBUM_COVER_0_FALLBACK_BACKGROUND = 0.05, 0.05, 0.05, 1
ALBUM_COVER_0_FALLBACK_SIZE = 28

; background
RECT_4 = 1
RECT_4_START = 0, 0
RECT_4_SIZE = 1024, 275
RECT_4_COLOR = 0.01, 0.01, 0.1, 1
RECT_4_Z_INDEX = -1000

DYNAMIC_OPACITY = 0  ; disabling component from the start, relying on scriptable display to activate it when needed


[INCLUDE: common/navigators.ini]
[NAVIGATOR_0 : Navigator_StyleNavitel]
ACTIVE = $" read('csp/version', 0) >= 1024"
Meshes = lcd_1
@ = Navigator_Size, Resolution = "1024, 384", Size = "1024, 275", Offset = "0, 48",    
RESOLUTION_LIMIT = 1024, 384
DYNAMIC_OPACITY = 0  ; disabling component from the start, relying on scriptable display to activate it when needed

[NAVIGATOR_0]
; Slightly alter template to remove dark bar on the left
@ = Navigator_Size, Resolution = "1024, 384", Size = "1024, 275", Offset = "0, 48", 
@ = Navigator_Component, ComponentID = CURRENT_TRACK
@ = Navigator_FadingComponent, Up
@ = Navigator_ComponentLayout, Left = 300, Right = 100, Top = 0, Height = 50,\
	Padding = "92, 10, 20", Align = "0, 0.5", IconCenter = "48, 50%", IconSize = 40
TIME_SIZE = 0, 0
BTN_PHONE_ENABLED = 0
MAP_POS = 0, 0
MAP_SIZE = 1024, 275

[RENDERING_CAMERA_0]
DYNAMIC_TEXTURE_ID = camera_rear ; here, we will create “dynamic::camera_rear” texture
POSITION = 0, 0.85, -2.05
DIRECTION = -0, -0.5, -1
INCLUDE_CAR = 1
REFRESH_RATE = 20  ; doesn’t need to update too often, those in-car cameras are usually pretty nasty
INTERIOR_ONLY = 1  ; stop rendering if camera is not interior one
CLIP_NEAR = 0.005  ; the way it’s positioned, it needs to render things that are very close (bits of car)
FOV = 170          ; huge FOV to get that authentic look
RESOLUTION = 2048, 1236 ; and massive resolution too
ACTIVE_BY_DEFAULT = 0 ; inactive by default, activated by a script
WITH_LIGHTING = 1
DYNAMIC_OPACITY = 0  ; disabling component from the start, relying on scriptable display to activate it when needed
;RELATIVE_TO = GEAR_R

; Can’t really render camera like that with that huge FOV, gotta add a bit of preprocessing, namely — 
; fisheye filter to get it look curved and zoomed in in the middle.
[TEXTURE_PREPROCESSING_...]
DYNAMIC_TEXTURE_ID = camera_rear_distorted ; new “dynamic::camera_rear_distorted” texture
TEXTURE_SOURCE = dynamic::camera_rear ; use previously specificed camera texture
RESOLUTION = 1024, 275 ; target resolution matches screen one, RESOLUTION for camera is just that multiplied by four
EFFECT = FISHEYE  ; use BASIC if you only need color correction (SATURATION, BRIGHTNESS, etc.)
INTENSITY = 1.5   ; intensity of fisheye effect, adjusted for 170° FOV
EXPOSURE = 0.56      ; this value activates tonemapping to get image from HDR to LDR space
BRIGHTNESS = 0.7  ; a bit dimmer 
DYNAMIC_OPACITY = 0  ; disabling component from the start, relying on scriptable display to activate it when needed

[SCRIPTABLE_DISPLAY_...]
; Example of scriptable display
MESHES = lcd_1
KEEP_BACKGROUND = 1 ; Stop CSP from painting original texture as background to get stereo and navigator 
  ; to work. Script will need to reset background manually or things will leave trails.
INTERACTIVE = 1 ; Keep track of mouse position over the display (adds extra cost, especially on high poly meshes)
FORCE_UPDATE_AFTER = NAVIGATOR_0
SCRIPT = '
local colorCover = rgbm(0, 0, 0, 1)
local colorWhite = rgbm(1, 1, 1, 1)

local buttons = {
  { points = { vec2(610, 326), vec2(702, 326), vec2(702, 368), vec2(610, 368) }, title = "Created by B. Gili (MNBA)" },
  { points = { vec2(322, 326), vec2(414, 326), vec2(414, 368), vec2(322, 368) }, screen = "CAR_STEREO_0" },
  { points = { vec2(418, 326), vec2(510, 326), vec2(510, 368), vec2(418, 368) }, title = "no apps installed" },
  { points = { vec2(226, 326), vec2(318, 326), vec2(318, 368), vec2(226, 368) }, screen = "NAVIGATOR_0" },
  { points = { vec2(514, 326), vec2(606, 326), vec2(606, 368), vec2(514, 368) }, screen = "CAR_STEREO_1" },
  { points = { vec2(704, 326), vec2(796, 326), vec2(796, 368), vec2(704, 368) } },
}

local startingMode = tonumber(ac.loadDisplayValue("startingMode", 4)) or 1
local previousSection = startingMode
local currentSection = startingMode
local activationProgress = 0
local gearsGrowth = {}

function update(dt)
  -- Updating state
  if currentSection ~= previousSection then
    activationProgress = math.max(0, activationProgress - dt * 3)
    if activationProgress == 0 then
      ac.setDynamicTextureShift(buttons[previousSection].screen, 0)
      previousSection = currentSection
    end
  elseif activationProgress < 1 then
    activationProgress = math.min(1, activationProgress + dt * 3)
  end
  ac.setDynamicTextureShift(buttons[previousSection].screen, activationProgress)

  -- A bit of a placeholders (temporary?) for missing sections
  if buttons[previousSection].screen == nil then
    -- Restoring original background
    display.image{ image = "car::lcd1.dds", pos = vec2(), size = vec2(1024, 384) }

    if previousSection == 6 then
      settings()
    elseif buttons[previousSection].title ~= nil then
      ui.pushStyleVar(ui.StyleVar.Alpha, activationProgress)
      display.rect{ pos = vec2(), size = vec2(1024, 384), color = rgbm(0, 0, 0.1, 0.8) }
      display.text{ 
        text = buttons[previousSection].title, 
        pos = vec2(300, 150), 
        letter = vec2(20, 40),
        font = "sls",
        width = 400,
        alignment = 0.5
      }
      ui.popStyleVar()
    end
  end


  -- Buttons, also useful to recreate the curved mask
  local hoveredButton = 0
  ui.beginTextureSaturationAdjustment()         -- adjusting texture to hide original selection
  ui.setShadingOffset(1, 0)                  -- this one is for color×2-0.5, along with desaturation hides selection
  ui.beginTextureShade("car::lcd1.dds")  -- all shapes drawn here will get a texture mapped on top of them
  for i = 1, #buttons do
    local btn = buttons[i].points
    if ui.rectHovered(btn[1], btn[3]) then
      hoveredButton = i
      if ui.mouseClicked() then currentSection = i end
    end
    ui.drawQuadFilled(btn[1], btn[2], btn[3], btn[4], colorWhite)
  end
  ui.endTextureSaturationAdjustment(0)
  ui.endTextureShade(vec2(), vec2(1024, 384))
  ui.setShadingOffset()

  -- Highlight for selected button
  if currentSection ~= 0 then
    local btn = buttons[currentSection].points
    ui.beginGradientShade()
    ui.drawQuadFilled(btn[2] - vec2(92, 0), btn[2], btn[3], btn[3] - vec2(92, 0), rgbm(0.0, 0.0, 0.1, 0.5))
    ui.endGradientShade(btn[2] - vec2(92, 0), btn[3], rgbm(0.0, 0.0, 1, 1), rgbm(0.0, 0.0, 0.1, 1))
  end

  -- Highlight for hovered button
  if hoveredButton ~= 0 and hoveredButton ~= currentSection then
    local btn = buttons[hoveredButton].points
    ui.beginGradientShade()
    ui.drawQuadFilled(btn[2] - vec2(92, 0), btn[2], btn[3], btn[3] - vec2(92, 0), rgbm(0.2, 0, 1, 0.5))
    ui.endGradientShade(btn[2] - vec2(20, 0), btn[3], rgbm(0.2, 0, 1, 1), rgbm(0.0, 0.0, 0.1, 1))
  end

  -- Reception indicator to reduce in tunnels or with bad weather
  local satelliteOcclusion = ac.estimateSatelliteOcclusion()
  if satelliteOcclusion < 0.25 then
    display.rect{ pos = vec2(340.8, 382.4), size = vec2(16.8, 19.8), color = colorCover }
  elseif satelliteOcclusion < 0.5 then
    display.rect{ pos = vec2(346.1, 382.1), size = vec2(11.7, 19.4), color = colorCover }
  elseif satelliteOcclusion < 0.75 then
    display.rect{ pos = vec2(351.5, 382.4), size = vec2(5.7, 19.1), color = colorCover }
  end

  if car.gear ~= -1 then  
    -- If gear is not reverse, activate navigator:
    ac.setRenderingCameraActive("RENDERING_CAMERA_0", true)  -- pause rendering camera
    return  -- and we’re done here, so let’s stop
  end

  -- Gear is reverse!
  ac.setDynamicTextureShift("NAVIGATOR_0", 0)  -- let’s stop navigator
  ac.setDynamicTextureShift("CAR_STEREO_0", 0)  -- let’s stop navigator
  ac.setDynamicTextureShift("CAR_STEREO_1", 0)  -- let’s stop navigator
  ac.setRenderingCameraActive("RENDERING_CAMERA_0", 0)  -- activate rendering camera
  display.image{pos = vec2(0, 48), size = vec2(1024,275), image = "dynamic::camera_rear_distorted"}  -- and draw fisheye camera

  -- And we’re done! But for a bit of extra authenticity let’s add lines with trajectory:
  local startL = vec2(150, 320)  -- one thing to note: I haven’t really properly calibrated those lines yet
  local startR = vec2(870, 320)
  local direction = vec2(20, -15):normalize()
  local lineLen = 300
  local steps = 10
  local steerOffset = -car.steer * 0.60
  local currentPosL = startL
  local currentPosR = startR
  local color = rgbm(1, 0, 0, 1)
  for i = 1, steps do
    local newPosL = startL + direction * (i * (lineLen / steps)) + vec2(steerOffset * (i / steps) ^ 2, 0)
    local newPosR = startR + vec2(-direction.x, direction.y) * (i * (lineLen / steps)) + vec2(steerOffset * (i / steps) ^ 2, 0)
    local drawAcrossColor = color
    if i == 4 then
      color = rgbm(1, 1, 0, 1)
    elseif i == 7 then
      color = rgbm(0, 1, 0, 1)
    else
      drawAcrossColor = i == 9 and color or nil
    end
    ui.drawLine(currentPosL, newPosL, color, 4)
    ui.drawLine(currentPosR, newPosR, color, 4)
    if drawAcrossColor ~= nil then
      ui.drawLine(currentPosL, currentPosR, drawAcrossColor, 4)
    end
    currentPosL = newPosL
    currentPosR = newPosR
    direction:add(vec2(0, 0.02)):normalize()
  end

  -- And a warning:
  display.rect{pos = vec2(320, 76), size = vec2(396, 32), color = rgbm(0, 0, 0, 0.8 )}
  display.text{pos = vec2(320, 86), letter = vec2(12, 20), text = "Check surroundings for safety", font = "aria", width = 396, alignment = 0.5 }
end

function settings()
  local whiteColor = rgbm(1, 1, 1, 1)
  local accentColor = rgbm(1, 0.1, 0.1, 1)

  function radioButton(text, pos, mode)
    display.text{ text = text, pos = pos, letter = vec2(11, 22), font = "sls" }

    local circlePos = pos + vec2(-20, 10)
    ui.drawCircleFilled(circlePos, 10, whiteColor, 20)

    local hovered = ui.rectHovered(circlePos - 10, circlePos + vec2(110, 10))
    if startingMode == mode then
      ui.drawCircleFilled(circlePos, 8, accentColor)
    elseif hovered then
      ui.drawCircleFilled(circlePos, 8, rgbm(0.4, 0.4, 0.4, 1))
      if ui.mouseClicked() then
        startingMode = mode
        ac.saveDisplayValue("startingMode", mode)
      end
    end
  end 

  ui.pushStyleVar(ui.StyleVar.Alpha, activationProgress)
  display.rect{ pos = vec2(), size = vec2(1024, 384), color = rgbm(0, 0, 0.1, 0.8) }
  display.text{ text = "Starting mode:", pos = vec2(150, 120), letter = vec2(20, 50), font = "sls" }
  radioButton("Navigator", vec2(500, 50), 4)
  radioButton("Radio", vec2(500, 100), 2)
  radioButton("Equalizer", vec2(500, 150), 5)
 radioButton("App", vec2(500, 200), 3)
  radioButton("Info", vec2(500, 250), 1)
  ui.popStyleVar()
end'




;;;;;;;;;;;;;;;;;;;;;;;;;LCD2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;





[DI_ENGINE_POWER_...]
DIGITAL_ITEM = 1
DIGITAL_ITEM_NUMBER_FORMAT = 1.0
INPUT_MULT=1.15

[DI_ENGINE_TORQUE_...]
DIGITAL_ITEM = 0
DIGITAL_ITEM_NUMBER_FORMAT = 1.0
INPUT_MULT=1.75

[ANALOG_INDICATOR_...]
INPUT = RPM
INPUT_MAX = 11500
NAME = ARROW_RPM
DELAY = 0
ZERO = 0
STEP=-0.000102

[ANALOG_INDICATOR_...]
INPUT = SPEED
INPUT_MAX = 360
NAME = ARROW_SPEED
ZERO = 1
STEP = 0.0039

[ANALOG_INDICATOR_...]
INPUT=ENGINE_POWER
NAME=ARROW_HP
ZERO=0
STEP=0.00123
INPUT_LAG_DOWN=0.95
INPUT_LAG_DOWN=0.95
INPUT_STALLED_LAG=0

[ANALOG_INDICATOR_...]
INPUT=ENGINE_TORQUE
NAME = ARROW_NM
ZERO = 0
STEP=-0.0017
INPUT_LAG_DOWN=0.98
INPUT_LAG_DOWN=0.98

[ANALOG_INDICATOR_...]
INPUT=WATER_TEMPERATURE
NAME=ARROW_WATER
ZERO=0
STEP=0.59

[ANALOG_INDICATOR_...]
INPUT=OIL_TEMPERATURE
NAME=ARROW_OIL
ZERO=0
STEP=-0.57

[EMISSIVE_LIGHT_...]
NAME=RPM_1, SPEED_1, HP_1, NM_1, OIL_1, WATER_1
COLOR=4, 4, 4, 2
OFF_COLOR=4,4,4, 4





;;;;;;;;;;;;;;;;;;;;;;;;;Cluster+Steeringwheel;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


[ODOMETER_MAIN_0]
DIGITAL_ITEM=11
DIGITAL_ITEM_NUMBER_FORMAT=06.0
UPPER_BOUND=9999999

[ODOMETER_TRIP_0]
DIGITAL_ITEM=12
DIGITAL_ITEM_NUMBER_FORMAT=04.0
UPPER_BOUND=9999


[INCLUDE: common/custom_emissive.ini]

[CustomEmissiveMulti]
Meshes = cluster_lights3
Resolution = 812, 812
UseEmissive0AsFallback = 0
@ = MultiItem, Role = RPM , Start = "0, 750", Size = "57, 62" ,Color = "0,80,0" , InputThreshold=6500,
@ = MultiItem, Role = RPM , Start = "60, 750", Size = "57, 62" ,Color = "0,80,0" , InputThreshold=7000,
@ = MultiItem, Role = RPM , Start = "120, 750", Size = "57, 62" ,Color = "0,80,0" , InputThreshold=6500,
@ = MultiItem, Role = RPM , Start = "179, 750", Size = "57, 62" ,Color = "0,80,0" , InputThreshold=7000,
@ = MultiItem, Role = RPM , Start = "237, 750", Size = "57, 62" ,Color = "80,0,0" , InputThreshold=7500,
@ = MultiItem, Role = RPM , Start = "297, 750", Size = "57, 62" ,Color = "80,0,0" , InputThreshold=8000,
@ = MultiItem, Role = RPM , Start = "357, 750", Size = "57, 62" ,Color = "80,0,0" , InputThreshold=8500,
@ = MultiItem, Role = RPM , Start = "416, 750", Size = "57, 62" ,Color = "80,0,0" , InputThreshold=9000,
@ = MultiItem, Role = RPM , Start = "474, 750", Size = "57, 62" ,Color = "0,0,80" , InputThreshold=9500,
@ = MultiItem, Role = RPM , Start = "534, 750", Size = "57, 62" ,Color = "0,0,80" , InputThreshold=10000,
@ = MultiItem, Role = RPM , Start = "593, 750", Size = "57, 62" ,Color = "0,0,80" , InputThreshold=10500,
@ = MultiItem, Role = RPM , Start = "653, 750", Size = "57, 62" ,Color = "0,0,80" , InputThreshold=11000,
@ = MultiItem, Role = GEAR_N , Start = "120, 675", Size = "57, 62" , Color = "80,0, 0", Lag = 0.9
@ = MultiItem, Role = HIGHBEAM, Start = "0, 675", Size = "57, 62", Color = "0, 0, 80",


[CustomEmissiveMulti]
Meshes = water_fuel
Resolution = 812, 812
UseEmissive0AsFallback = 1
@ = MultiItem, Role = FUEL, Start = "554, 693", Size = "16, 34",  InputThreshold=5 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "575, 693", Size = "16, 34",  InputThreshold=20 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "596, 693", Size = "16, 34",  InputThreshold=35 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "617, 693", Size = "16, 34",  InputThreshold=50 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "638, 693", Size = "16, 34",  InputThreshold=65 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "659, 693", Size = "16, 34",  InputThreshold=80 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "680, 693", Size = "16, 34",  InputThreshold=95 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = FUEL, Start = "701, 693", Size = "16, 34",  InputThreshold=110 , Lag=0.9, Color = "60,60,60", 
@ = MultiItem, Role = OIL_TEMP , Start = "722, 693", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=15,
@ = MultiItem, Role = OIL_TEMP, Start = "743, 693", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=30,
@ = MultiItem, Role = OIL_TEMP, Start = "764, 693", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=45,
@ = MultiItem, Role = OIL_TEMP, Start = "785, 693", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=60,
@ = MultiItem, Role = OIL_TEMP, Start = "732, 730", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=75,
@ = MultiItem, Role = OIL_TEMP, Start = "753, 730", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=90,
@ = MultiItem, Role = OIL_TEMP, Start = "774, 730", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=105,
@ = MultiItem, Role = OIL_TEMP, Start = "795, 730", Size = "16, 34" ,Color = "60, 60, 60" , InputThreshold=120,


[CustomEmissiveMulti]
Meshes = abs_tc
Resolution = 812, 812
UseEmissive0AsFallback = 1
@ = MultiItem, Role = DashWarningTC , Start = "368, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=0, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "388, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=1, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "408, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=2, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "428, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=3, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "449, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=4, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "470, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=5, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "491, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=6, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "512, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=7, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "533, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=8, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "248, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=0, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "268, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=1, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "288, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=2, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "308, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=3, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "328, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=4, InputInverse=1,
@ = MultiItem, Role = DashWarningABS , Start = "348, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=5, InputInverse=1,


[CustomEmissiveMulti]
Meshes = cluster_lights2
Resolution = 812, 812
UseEmissive0AsFallback = 1
@ = MultiItem, Role = DashWarningTC , Start = "368, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=0, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "388, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=1, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "408, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=2, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "428, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=3, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "449, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=4, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "470, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=5, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "491, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=6, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "512, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=7, InputInverse=1,
@ = MultiItem, Role = DashWarningTC , Start = "533, 693", Size = "16, 34" ,Color = "60, 60, 0" , InputThreshold=8, InputInverse=1,
@ = MultiItem, Role = EXTRA_B , Start = "12, 649", Size = "56, 16" ,Color = "50, -4, -4" ,
@ = MultiItem, Role = LIGHT , Start = "9, 588", Size = "64, 78" ,Color = "4, 4, 4" ,
@ = MultiItem, Role = EXTRA_C , Start = "103, 647", Size = "57, 15" ,Color = "50, -4, -4" ,
@ = MultiItem, Role = LIGHT , Start = "100, 594", Size = "63, 69" ,Color = "4, 4, 4" ,


[CustomEmissiveMulti]
Meshes = clurster_lights1
Resolution = 812, 812
UseEmissive0AsFallback = 1
;Debug = 1 ; uncomment me to see the areas nicely
@ = MultiItem, Role = TURNSIGNAL_LEFT, Start = "62, 434", Size = "84, 104" , Color = "0, 10,0 " ,
@ = MultiItem, Role = TURNSIGNAL_RIGHT, Start = "163, 433", Size = "71, 100" , Color = "0, 10,0 " ,
@ = MultiItem, Role = ABS_INACTION, Start = "333, 4442", Size = "62, 39", Color = "60,30,0",
@ = MultiItem, Role = DashWarningABS, Start = "330, 359", Size = "73, 52", Color = "60,30,0",
@ = MultiItem, Role = DashWarningEngine, Start = "591, 272", Size = "74, 52" , Color = "60,30,0",
@ = MultiItem, Role = HANDBRAKE, Start = "507, 357", Size = "71, 56", Color = "80, 0, 0",
@ = MultiItem, Role = LIGHT, Start = "425, 364", Size = "63, 45", Color = "0, 80, 0",
@ = MultiItem, Role = DashWarningSuspDamage, Start = "596, 433", Size = "70, 58" , Color = "60,0,0",
@ = MultiItem, Role = TC_INACTION , Start = "431, 438", Size = "46, 56", Color = "60, 30, 0",
@ = MultiItem, Role = DashWarningTC, Start = "516, 436", Size = "46, 67", Color = "60, 30, 0",
@ = MultiItem, Role = TYRE_PRESSURE, Start = "687, 441", Size = "55, 54", Color = "60, 30, 0", InputThreshold = 40, InputSelector = MAX , InputSelectorPivot=5 , Lag=0.2 
@ = MultiItem, Role = DashWarningSeatbelt, Start = "167, 353", Size = "50, 63" , Color = "80, 0, 0",
@ = MultiItem, Role = DashWarningAirbag, Start = "252, 355", Size = "63, 61" , Color = "80, 0, 0",
@ = MultiItem, Role = FUEL, Start = "670, 519", Size = "104, 110",  InputThreshold=13 ,InputInverse=1 , Lag=0.2, Color = "80,30,-0", 
@ = MultiItem, Role = FUEL, Start = "670, 519", Size = "104, 110",  InputThreshold=120 ,InputInverse=1 , Lag=0.2, Color = "20,20,20", 
@ = MultiItem, Role = WATER_TEMP , Start = "677, 363", Size = "84, 44" ,Color = "0, 80, 0" , InputThreshold=5,
@ = MultiItem, Role = OIL_TEMP , Start = "499, 273", Size = "81, 43",  InputThreshold=96 ,InputInverse=0 , Lag=0.2, Color = "80,30,-20", 
@ = MultiItem, Role = OIL_TEMP , Start = "499, 273", Size = "81, 43",  InputThreshold=120 ,InputInverse=1 , Lag=0.2, Color = "20,20,20", 




;;;;;;;;;;;;;;;;;;;;;;;;;Car Instruments;;;;;;;;;;;;;;;




[SMART_MIRROR]
DISALLOW_REFLECTION_TILTING = 1     ; disable that simple tilting effect (for cars with monitors)
DISALLOW_MAPPING_NORMALIZATION = 1  ; by default since 0.1.49 Custom Shaders Patch automatically remaps UV 
  ; for mirrors to make sure aspect ratio is correct. Set this value to 1 to disable it for a particular car.
  ; Requires AC reload if changed.

; Options for real mirrors:
[REAL_MIRROR_1]  ; where N is mirror index
ROTATION = 0, 0  ; rotation
FOV = 10         ; field of view in degress
ASPECT_MULT = 1  ; multiplier for aspect ratio
IS_MONITOR = 1   ; set to 1 to make mirror act as a monitor
FLIP = 0         ; set to 1 to flip mirror

USE_MONITOR_SHADER = 1           ; set to 1 to use monitor shader with pixels visible if camera is too close
MONITOR_SHADER_SCALE = 800, 400  ; adjust pixel density of monitor shader
MONITOR_SHADER_TYPE = 0  

[AUDIO_VOLUME]
ENGINE_EXT = 1.5
ENGINE_INT = 1.0
GEAR_EXT = 1.0
GEAR_INT = 1.0
BODYWORK = 1.0
WIND = 1.1
DIRT = 1.0
DOWN_SHIFT = 1.0
HORN = 1.0
GEAR_GRIND = 1.0
BACKFIRE_EXT = 1.0
BACKFIRE_INT = 1.0
TRACTION_CONTROL_EXT = 1.0
TRACTION_CONTROL_INT = 1.0
TRANSMISSION = 1.0
LIMITER = 1.0
TURBO = 1.0

[AUDIO_PITCH]
ENGINE_EXT = 1.0
ENGINE_INT = 1.0
GEAR_EXT = 1.0
GEAR_INT = 1.0
BODYWORK = 1.0
WIND = 1.0
DIRT = 1.0
DOWN_SHIFT = 1.0
HORN = 1.0
GEAR_GRIND = 1.0
BACKFIRE_EXT = 1.0
BACKFIRE_INT = 1.0
TRACTION_CONTROL_EXT = 1.0
TRACTION_CONTROL_INT = 1.0
TRANSMISSION = 1.0
LIMITER = 1.0
TURBO = 1.1
HIT = 1.0
SCRAPE = 1.0
WHEEL = 1.0
SKID_EXT = 1.0
SKID_INT = 1.0

[WIPERS]
FRONT_0= wiper_left_blade
FRONT_1= wiper_right_blade
WIND_THRESHOLDS_KMH = 180, 300  ; speed for wipers to start vibrating and for maximum vibration
WIND_AMPLITUDE_MULT = 1        ; multiplier for amplitude
WIND_FREQUENCY_MULT = 1        ; multiplier for frequency
WIND_OFFSET = 0.03

[WIPERS_TRACE_...]
SURFACE = INT_glass_f, EXT_glass_f
WIPERS = wiper_left_blade, wiper_right_blade

[INSTRUMENTS]
HAZARDS_G_THRESHOLD=2.0

[LIGHT_BRAKEDISCS]
COLOR=0.5, 0.1, 0, 2

[BRAKEDISC_FX]
ACTIVE = 0             ; set to 0 to disable the whole thing if car uses ksBrakeDisc shader for something else

[SMART_MIRROR]
VISIBLE_FIRSTPERSON = LEFT

[DEFORMING_HOOD]
NAME = HOOD 		; name of parenting node containing all meshes to deform
OFFSET_Y_MIDDLE = 0.04    ; how high would it offset in the center at full damage
OFFSET_Y_END = 0.05       ; how high would it offset at the far end at full damage
OFFSET_Z_END = 0.05       ; how far would it offset at the far end
BULGING_EXTRA = 0.04       ; increase to make shape go less triangly and more trapezoid-like
BULGING_EXPONENT = 4.0    ; affects the curve of slopes around raised center
NOISE_Y_AMPLITUDE = -0.16 ; some simple vertical noise at the center
NOISE_Z_AMPLITUDE = 0.6   ; and horizontal noise at the far end
NOISE_Y_FREQENCY = 7.0    ; which adds
NOISE_Z_FREQENCY = 7.0    ; some randomization
Z_FACTOR = 2.5            ; how center is being found
Z_BIAS = 0.0              ; with, if needed, manual offset

[DEFORMING_REAR]
NAME = TRUNK 	  	   ; name of parenting node containing all meshes to deform
OFFSET_Y_MIDDLE = 0.04    ; how high would it offset in the center at full damage
OFFSET_Y_END = 0.03       ; how high would it offset at the far end at full damage
OFFSET_Z_END = 0.01       ; how far would it offset at the far end
BULGING_EXTRA = 0.02       ; increase to make shape go less triangly and more trapezoid-like
BULGING_EXPONENT = 2.0    ; affects the curve of slopes around raised center
NOISE_Y_AMPLITUDE = -0.16 ; some simple vertical noise at the center
NOISE_Z_AMPLITUDE = 2.0   ; and horizontal noise at the far end
NOISE_Y_FREQENCY = 7.0    ; which adds
NOISE_Z_FREQENCY = 7.0    ; some randomization
Z_FACTOR = 2.5            ; how center is being found
Z_BIAS = 0.0   

[INCLUDE: common/gt3_exhaust_glow.ini]
[EMISSIVE_WATER_TEMP_0_EXHAUST_GLOW]
MESHES = exhaust_0
COLOR = 25, 7, 0, 3
USE_SMOOTH_TRANSITION = 1
INPUT_MIN = 86
INPUT_MAX = 100
INPUT_LUT = (| 86 = 0 | 100 = 1 |)
AFFECTS_TRACK = 1
SPECULAR_MULT = 3

[LIGHT_FLAME_0]
BRIGHTNESS_MULT=0.2
CAR_BRIGHTNESS_MULT=1.5
CAR_RANGE_MULT=0.2
COLOR=5,1,1
DEBUG=0
DIRECTION_MULT=1, 1, 1
FADE_AT=150
FADE_SMOOTH=30
OFFSET=0.2
RANGE=5
RANGE_GRADIENT_OFFSET=0.2
SPOT=238.322
SPOT_SHARPNESS=0.8

[EXHAUST_FLAMES]
ANTILAG=1 ; turbo antilag, i havent tested this yet
ANTILAG_DELAY=0.4 ; how long after antilag trigger do flames start, in seconds
ANTILAG_INTENSITY=0.01 ; flame size
ANTILAG_INTERVAL_MAX=7200
ANTILAG_INTERVAL_MIN=4750
ANTILAG_TURBO_THRESHOLD=0.02
DAMAGE=0 ; engine damage? idk
DAMAGE_DURATION=0.00
DAMAGE_INTENSITY=0
DAMAGE_PROBABILITY=0
DISCHARGE=0 ; lifting off the throttle
DISCHARGE_CHARGE_TIME=10 ; how long you have to press the throttle to "charge" the flames
DISCHARGE_DELAY=0 ; delay after throttle lift
DISCHARGE_DURATION=0.2 ; length of flame shooting, in seconds
DISCHARGE_PROBABILITY=0.1; chance of flame shoot on lift, 1 is guaranteed, 0 is never
DISCHARGE_INTENSITY=0.01; flame size
DISCHARGE_RPM_THRESHOLD_MAX=7200 ; self explanatory
DISCHARGE_RPM_THRESHOLD_MIN=4750 ; self explanatory
DISCHARGE_WATER_TEMPERATURE_THRESHOLD=85
FLAT_SHIFT=1 ; on upshift
FLAT_SHIFT_COOLDOWN=0 ; after upshift
FLAT_SHIFT_DURATION=0.01 ; length of flame shooting, in seconds
FLAT_SHIFT_GAS_THRESHOLD=90 ; how much gas needs to be pressed on upshift for flame, 100 is wide open
FLAT_SHIFT_INTENSITY=0.01 ; flame size
FLAT_SHIFT_PROBABILITY=0.001 ; chance of flame shoot on upshift
FLAT_SHIFT_RPM_THRESHOLD=7200
LIMITER=1 ; on hitting the limiter
LIMITER_DELAY=2 ; delay, in seconds
LIMITER_INTENSITY=0.01 ; flame size
LIMITER_RPM_THRESHOLD=7280 ; limiter flames will not shoot below this rpm





;;;;;;;;;;;;;;;;;;;;;;;Animations;;;;;;;;;;;;;;;;;;;;;




[ANIMATION_0]
FILE=navi.ksanim
TIME= 0.005
BIND_TO_EXTRA_A=1

[ANIMATION_1]
FILE=wing_1.ksanim
TIME= 3.0
BIND_TO_EXTRA_B=1

[ANIMATION_2]
FILE=fender.ksanim
TIME= 1.0
BIND_TO_EXTRA_C=1

[ANIMATION_3]
FILE=trunk.ksanim
TIME= 3.0
BIND_TO_EXTRA_D=1

[ANIMATION_4]
FILE=car_door_L.ksanim
TIME= 3.0
BIND_TO_EXTRA_E=1

[ANIMATION_5]
FILE=car_door_R.ksanim
TIME= 3.0
BIND_TO_EXTRA_F=1




;;;;;;;;;;;;;;Lights and stuff;;;;;;;;;;;;;;;;;;;




[LIGHT_LICENSEPLATE]
; no need to specify meshes names if material is using
; Plate_D.dds and Plate_NM.dds textures
MESHES=plates
OFFSET=0.02, 0.01, 0
RANGE=0.6
RANGE_GRADIENT_OFFSET=0.03
SPOT=230
SPOT_SHARPNESS=0.09
COLOR=5,4,4,2
OFF_COLOR=0,0,0
FALLBACK_EMISSIVE=5,4,4,2

[EMISSIVE_REVERSE_0]
NAME=reverselight_0
COLOR=20,20,20, 100
LAG=0.6
SIMULATE_HEATING=0

[EMISSIVE_TURNSIGNAL_LEFT_0]
NAME=blinker_lf
COLOR=40, 10, 0, 15
LAG=0.5
SIMULATE_HEATING=0.0
LOCATION=FRONT

[EMISSIVE_TURNSIGNAL_LEFT_1]
NAME=blinker_lm
COLOR=40, 10, 0, 10
LAG=0.5
SIMULATE_HEATING=0.0
LOCATION=MIDDLE

[EMISSIVE_TURNSIGNAL_LEFT_2]
NAME=blinker_lr
RANGE_PREFIX=blinker_lr_
RANGE_START_INDEX=0
RANGE_END_INDEX=3
RANGE_DELAY=0.05 	; to compensate for that there are more of them
COLOR=40, 10, 0, 20
LAG=0
REPEAT_FREQENCY_HZ=3
LOCATION=REAR
SIMULATE_HEATING=0
CAST_LIGHT=1
REPEAT_FREQENCY_HAZARDS_HZ=3

[EMISSIVE_TURNSIGNAL_RIGHT_0]
NAME=blinker_rf
COLOR=40, 10, 0, 15
LAG=0.5
SIMULATE_HEATING=0.0
LOCATION=FRONT

[EMISSIVE_TURNSIGNAL_RIGHT_1]
NAME=blinker_rm
COLOR=400, 50, 0, 1
LAG=0.5
SIMULATE_HEATING=0.0
LOCATION=MIDDLE

[EMISSIVE_TURNSIGNAL_RIGHT_2]
NAME=blinker_rr
RANGE_PREFIX=blinker_rr_
RANGE_START_INDEX=0
RANGE_END_INDEX=3
RANGE_DELAY=0.05 	; to compensate for that there are more of them
COLOR=40, 10, 0, 20
LAG=0
REPEAT_FREQENCY_HZ=3
LOCATION=REAR
SIMULATE_HEATING=0
CAST_LIGHT=1
REPEAT_FREQENCY_HAZARDS_HZ=3

[EMISSIVE_LIGHT_...]
NAME=emissive2_0, emissive2_1, emissive2_2, emissive2_3
COLOR=8, 8, 8, 1
OFF_COLOR=2,2,2, 1

[LIGHT_LICENSEPLATE]
; no need to specify meshes names if material is using
; Plate_D.dds and Plate_NM.dds textures
MESHES=
OFFSET=0.00, 0.03, -0.00
RANGE=0.3
RANGE_GRADIENT_OFFSET=0.3
SPOT=280
SPOT_SHARPNESS=0.3
COLOR=6,8,10,1
FALLBACK_EMISSIVE=2,2,2,2
LAG=0.98
BOUND_TO = headlights

[EMISSIVE_LIGHT_...]
NAME=lcd_1, lcd_2, cluster_1
COLOR=4,4,4, 1
OFF_COLOR=4,4,4, 1

[LIGHT_EXTRA_...]
BIND_TO_HEADLIGHTS=0
COLOR=5,5,6
DIFFUSE_CONCENTRATION=0.88
EXTERIOR_ONLY=0
INTERIOR_ONLY=0
FADE_AT=5
FADE_SMOOTH=5
MIRROR=0
POSITION=0.333, 0.749, 1.0
DIRECTION=0,0.4,-0.9
RANGE=0.5
RANGE_GRADIENT_OFFSET=0.3
SPECULAR_MULT=0
SPOT=100
SPOT_SHARPNESS=0.3

[LIGHT_EXTRA_...]
BIND_TO_HEADLIGHTS=1
COLOR=5,5,6,1
DIFFUSE_CONCENTRATION=0.88
EXTERIOR_ONLY=0
INTERIOR_ONLY=0
FADE_AT=5
FADE_SMOOTH=5
MIRROR=0
POSITION=0.332, 0.687, 0.75
DIRECTION=0,0.4,-0.9
RANGE=0.3
RANGE_GRADIENT_OFFSET=0.3
SPECULAR_MULT=0
SPOT=160
SPOT_SHARPNESS=0.3

[LIGHT_EXTRA_...]
BIND_TO_HEADLIGHTS=0
COLOR=5,5,6,0.6
DIFFUSE_CONCENTRATION=0.88
EXTERIOR_ONLY=0
INTERIOR_ONLY=0
FADE_AT=5
FADE_SMOOTH=5
MIRROR=0
POSITION=-0.0464, 0.694, 0.935
DIRECTION=0,0.4,-0.9
RANGE=0.6
RANGE_GRADIENT_OFFSET=0.3
SPECULAR_MULT=0
SPOT=160
SPOT_SHARPNESS=0.3



;;;;;;;;;;;;;;Headlights;;;;;;;;;;;;;;;;;;;



[BASIC]
ENGINE_STALLED_RPM_THRESHOLD=100
HAZARD_LIGHTS_ENGINE_LIFE_THRESHOLD=0.001
TURNING_LIGHTS_REPEAT=1
BOUNDING_SPHERE_RADIUS=1
LIGHT_DAMAGE_SPEED_MAX=190
LIGHT_DAMAGE_SPEED_MIN=90

[BOUNCED_HEADLIGHTS]
ACTIVE=1
FADE_AT=20
FADE_SMOOTH=50
FALLOFF=0.7
GRADIENT_OFFSET=0.8
MULT=1, 1, 1, 1
OFFSET=1

[EMISSIVE_HEADLIGHTS_0]
NAME=headlight_0
COLOR=10,10,15, 150
LAG=0.0
SIMULATE_HEATING=0.0
LOCATION=FRONT

[EMISSIVE_HEADLIGHTS_1]
NAME=daylight_0
COLOR=20,20,20, 100
OFF_COLOR=20,20,20, 100
LAG=0.0
SIMULATE_HEATING=0.0
LOCATION=FRONT

[EMISSIVE_HEADLIGHTS_2]
NAME=taillight_0
COLOR=10,5,0, 80
LAG=0.0
SIMULATE_HEATING=0.0
LOCATION=REAR

[LIGHT_HEADLIGHT_0]
AFFECTS_TRACK=1
BOUND_EMISSIVE_MAX=500
BOUND_EXP=1
COLOR=10, 10, 15, 1
DIFFUSE_CONCENTRATION=0.88
DIRECTION=0, 0.0, 1
EXTERIOR_ONLY=0
FADE_AT=450
FADE_SMOOTH=50
INTERIOR_ONLY=0
LOWBEAM_RANGE_MAX=130
LOWBEAM_RANGE_MULT=0.8
LOWBEAM_RANGE_ONCOMING_MULT=0.4
MIRROR=0.75
MIRROR_DIRECTION=0
POPUP_ENABLED=0
POSITION=0, 0.62, 2.3
RANGE=480
RANGE_GRADIENT_OFFSET=0
SECOND_SPOT=129.6
SECOND_SPOT_INTENSITY=0.27
SECOND_SPOT_RANGE=50
SECOND_SPOT_SHARPNESS=0.58
SECOND_SPOT_SKIP=0.3
SINGLE_FREQUENCY=0
SPECULAR_MULT=1
SPOT=40
SPOT_EDGE=0.02088, 0.01992, 0.018
SPOT_EDGE_SHARPNESS=50
SPOT_SHARPNESS=0
SPOT_UP=0.0499376, 0.998752, 0

[EMISSIVE_HIGHBEAM_...]
NAME=highbeam_0
BOUND_TO= LOW_BEAM
COLOR=10,10,15, 350
LAG=0.0
SIMULATE_HEATING=0
LOCATION=FRONT
CAST_LIGHT=1
CLUSTER_THRESHOLD=0.5
LOCATION=FRONT

[INCLUDE: common/selflighting.ini]

[SelfLight_Headlights]
MIRROR = 0.7
DIRECTION =  0.2, 0.8, 1.9
POSITION =  0, 0.607, 2.1
AFFECTS_TRACK = 1
DIFFUSE_CONCENTRATION = 1
BOUND_TO = headlight_0
SPOT_SHARPNESS = 0.6
SPOT = 131
COLOR =14,14,16,10
SPECULAR_MULT = 0
RANGE = 0.4

[SelfLight_Headlights]
MIRROR = 0.629
DIRECTION =  0.2, 0.8, 1.9
POSITION = 0, 0.572, 2.26
AFFECTS_TRACK = 1
DIFFUSE_CONCENTRATION = 1
BOUND_TO = highbeam_0
SPOT_SHARPNESS = 0.6
SPOT = 131
COLOR =14,14,16,15
SPECULAR_MULT = 0
RANGE = 0.4

[SelfLight_Headlights]
MIRROR = 0
DIRECTION =  0.2, 0.8, 1.9
POSITION = 0.7, 0.598, 2.08
AFFECTS_TRACK = 1
DIFFUSE_CONCENTRATION = 1
BOUND_TO = blinker_lf
SPOT_SHARPNESS = 0.6
SPOT = 131
COLOR =14,12,4,3
SPECULAR_MULT = 0
RANGE = 0.5

[SelfLight_Headlights]
MIRROR = 0
DIRECTION =  0.2, 0.8, 1.9
POSITION = -0.7, 0.598, 2.08
AFFECTS_TRACK = 1
DIFFUSE_CONCENTRATION = 1
BOUND_TO = blinker_rf
SPOT_SHARPNESS = 0.6
SPOT = 131
COLOR =14,12,4,3
SPECULAR_MULT = 0
RANGE = 0.5



;;;;;;;;;;;;;;Brakelights;;;;;;;;;;;;;;;;;;;



[EMISSIVE_BRAKE_0]
NAME=brakelight_0
COLOR=30,10,0,100
FALLBACK_HEADLIGHTS_COLOR=50,29,15, 0.025
LAG=0
SIMULATE_HEATING=0
LOCATION=REAR
CAST_LIGHT=0
CLUSTER_THRESHOLD=0

[LIGHT_BRAKE_0]
AFFECTS_TRACK=1
BOUND_EMISSIVE_MAX=500
BOUND_EXP=1
COLOR=1, 0.181034, 0, 4
DIFFUSE_CONCENTRATION=0.88
DIRECTION=0, 0, -1
EXTERIOR_ONLY=1
FADE_AT=120
FADE_SMOOTH=30
INTERIOR_ONLY=0
MIRROR=0.655593
MIRROR_DIRECTION=0
POSITION=0, 0.825127, -1.9
RANGE=6
RANGE_GRADIENT_OFFSET=0.25
SINGLE_FREQUENCY=0
SPECULAR_MULT=1
SPOT=155
SPOT_EDGE=0.12, 0.12, 0.12
SPOT_EDGE_SHARPNESS=10
SPOT_SHARPNESS=0.4l



;;;;;;;;;;;;;;;;;;;;;;;Materials;;;;;;;;;;;;;;;;;;;




[INCLUDE: common/materials_carpaint.ini]
CarPaintMaterial = "carpaint1", "carpaint2"
DisableDev = 1

[Material_CarPaint_Metallic]
FresnelMax = 1
FresnelC = 0.1
BrightnessAdjustment = 0.9 ; compensates for ambient specular
ColoredSpecular = 0.9
AmbientSpecular = 0.6
AmbientSpecularEXP = 2.5
ClearCoatThickness = 0.05

[INCLUDE: common/materials_interior.ini]

[Material_InteriorPBRDetail]
Materials = black_gloss
ColorSource=DIFFUSE
Reflectance=0.8
Smoothness=0.2
Metalness=0.9
CubemapReflectionBlur=0.0
Brightness=0.2
OcclusionMult=0.5
DetailScale=50
ApplyTilingFix=1

[Material_Carbon]
Materials = carbon
Brightness = 0.4
HasDetailNormals = 1
Smoothness = 0.9
Reflectance = 0.2
CubemapReflectionBlur = 0.35
UseClearCoat = 1
ClearCoatSmoothness = 1.0
ClearCoatIntensity = 1.0
DetailTexture = common/carbon.png
DetailNormalTexture = common/carbon_nm.png
DetailNormalBlend = 1
DetailScale = 1000

[Material_Carbon]
Materials = rim_color2
Brightness = 0.4
HasDetailNormals = 1
Smoothness = 0.9
Reflectance = 0.2
CubemapReflectionBlur = 0.35
UseClearCoat = 1
ClearCoatSmoothness = 1.0
ClearCoatIntensity = 1.0
DetailTexture = common/carbon.png
DetailNormalTexture = common/carbon_nm.png
DetailNormalBlend = 1
DetailScale = 300

[Material_Velvet_v2]
Materials = leather_1
DetailNormalTexture = common/pbr_carpet.dds
DetailNormalPBRSecondaryColor = 0, 0, 0, 0.4
UseClothShading = 1
Reflectance = 0.3
DetailScale =30
ClothSheenColor = 1, 1, 1, 1
BrightnessAdjustment = 0.3
ApplyTilingFix=1

[Material_Leather_v2]
Materials = leather_2
DetailScale = 40
DetailNormalTexture = common/pbr_leather_bumpy.dds
DetailNormalIntensity = 3
DetailNormalPBRSecondaryColor = 0.1, 0.1, 0.1, 0.2
Reflectance = 0.3
UseClothShading = 1
ClothSheenColor = 1, 1, 1, 1
BrightnessAdjustment = 0.25

[Material_Leather_v2]
Materials = leather_logo
DetailScale = 40
DetailNormalTexture = common/pbr_leather_bumpy.dds
DetailNormalIntensity = 3
DetailNormalPBRSecondaryColor = 0.1, 0.1, 0.1, 0.2
Reflectance = 0.3
UseClothShading = 1
ClothSheenColor = 1, 1, 1, 1
BrightnessAdjustment = 0.25

[Material_Aluminium_v2]
Materials = aluminium, caliper_alu
Metalness = 0.8
Reflectance = 0.3
BrightnessAdjustment = 0.3
CubemapReflectionBlur=1.0
DetailTexture = 1
DetailNormalTexture = common/pbr_metal.dds
DetailNormalPBRSecondaryColor = 0, 0, 0, 0
DetailScale = 0
DetailNormalBlend = 1
DetailNormalPBRSmoothnessGamma = 0.4

[Material_Plastic_v2]
Materials = black_mattte
BrightnessAdjustment = 0.2
DetailScale = 100
Metalness = 0.1
Reflectance = 0.0
OcclusionMap = 0.3

[Material_Plastic_v2]
Materials = rim_black
BrightnessAdjustment = 0.2
DetailScale = 30
Metalness = 0.1
Reflectance = 0.0
OcclusionMap = 0.3

[Material_Chrome]
Materials = chrome
Smoothness = 1
Metalness = 0.5
Reflectance = 0.2
BrightnessAdjustment = 0.2
CubemapReflectionBlur = 0.1

[Material_InteriorPBRDetail]
Materials = caliper_color
ColorSource=DIFFUSE
Reflectance=0.0
Smoothness=0.15
Metalness=0.3
CubemapReflectionBlur=0.95
Brightness=1
OcclusionMult=0.8
DetailScale=30
ApplyTilingFix=1

[Material_InteriorPBRDetail]
Materials = rim_color1
ColorSource=DIFFUSE
Reflectance=0.3
Smoothness=1
Metalness=0.2
CubemapReflectionBlur=1
Brightness=1
OcclusionMult=0.4
DetailScale=30
ApplyTilingFix=1

[INCLUDE: common/materials_glass.ini]
ExteriorGlassFilmedMaterials= EXT_glass, 
ExteriorGlassTintedMaterials= 
ExteriorGlassHeadlightsMaterials =
[Material_PhotoelasticGlass]
Meshes= glass_clear_3, glass_clear_4