__enableMaintenance_mod__ := 0

GoTo EndMaintenceDef

;This will do only an oil change. will leave user at race menu to resume.
GtAutoNav:
return

DoOilChange:

  if (__enableCheckTyres_mod__ = 0){
    return
  }

  if (SysCheck = 1) {
    Sleep, 1000
    Press_O()
    Sleep, 2800
    loop, 2 {
      Press_Right(140)
      Sleep, 200
    }
    Press_Down()
    Sleep, 200

    Press_X()
    Sleep, 1000
    loop, 2 { ; Makes sure it gets into the oil menu regardless the cursor starting point
      Press_Left(140)
      Sleep, 200
    }
    Press_X()
    Sleep, 1000

    Sleep, 2000
    Press_Down(140)
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 500
    }
    Sleep, 7000
    Press_X()
    Sleep, 500

    Press_O()
    Sleep, 200
    Sleep, 3000
    Press_Up(140)
    Sleep, 200
    Press_Left()
    Sleep, 500
    Press_Left()
    Sleep, 500
    Press_X()
    Sleep, 4800
    return
  }

  if (SysCheck = 2 or SysCheck = 3) {
    Sleep, 1000
    Press_O()
    Sleep, 8800
    loop, 2 {
      Press_Right(140)
      Sleep, 200
    }
    Press_Down()
    Sleep, 200

    Press_X()
    Sleep, 1000
    loop, 2 { ; Makes sure it gets into the oil menu regardless the cursor starting point
      Press_Left(140)
      Sleep, 200
    }
    Press_X()
    Sleep, 1000

    Sleep, 4000
    Press_Down(140)
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 1500
    }
    Sleep, 7000
    Press_X()
    Sleep, 500

    Press_O()
    Sleep, 200
    Sleep, 7000
    Press_Up(140)
    Sleep, 200
    Press_Left()
    Sleep, 500
    Press_Left()
    Sleep, 500
    Press_X()
    Sleep, 11800
    return
  }
return

;This will do complete maintenance on the car including oil, engine and body. will leave user at race menu to resume.
DoMaintenance:

  if (__enableCheckTyres_mod__ = 0){
    return
  }

  if (SysCheck = 1) { ; PS5
    Sleep, 1000
    controller.Buttons.Circle.SetState(true)
    Sleep, 200
    controller.Buttons.Circle.SetState(false)
    Sleep, 2800
    loop, 2 {
      controller.Dpad.SetState("Right")
      Sleep, 140
      controller.Dpad.SetState("None")
      Sleep, 200
    }
    controller.Dpad.SetState("Down")
    Sleep, 200
    controller.Dpad.SetState("None")
    Sleep, 200

    Press_X()
    Sleep, 1000
    loop, 2 { ; Makes sure it gets into the oil menu regardless the cursor starting point
      Press_Left(140)
      Sleep, 200
    }
    Press_X()
    Sleep, 1000

    Sleep, 2000
    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 500
    }
    Sleep, 7000
    Press_X()
    Sleep, 500

    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 500
    }
    Sleep, 7000
    Press_X()
    Sleep, 500

    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    controller.Dpad.SetState("Down")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 500
    }
    Sleep, 8500
    Press_X()
    Sleep, 500

    controller.Buttons.Circle.SetState(true)
    Sleep, 200
    controller.Buttons.Circle.SetState(false)
    Sleep, 200
    Sleep, 3000
    controller.Dpad.SetState("Up")
    Sleep, 140
    controller.Dpad.SetState("None")
    Sleep, 200
    controller.Dpad.SetState("Left")
    Sleep, 200
    controller.Dpad.SetState("None")
    Sleep, 500
    controller.Dpad.SetState("Left")
    Sleep, 200
    controller.Dpad.SetState("None")
    Sleep, 500
    Press_X()
    Sleep, 4800
    return
  }

  if (SysCheck = 2 or SysCheck = 3) { ; PS4 and PS4 Pro
    Sleep, 1000
    Press_O()
    Sleep, 8800
    loop, 2 {
      Press_Right(140)
      Sleep, 200
    }
    Press_Down()
    Sleep, 200

    Press_X()
    Sleep, 1000
    loop, 2 { ; Makes sure it gets into the oil menu regardless the cursor starting point
      Press_Left(140)
      Sleep, 200
    }
    Press_X()
    Sleep, 1000

    Sleep, 4000
    Press_Down(140)
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 1500
    }
    Sleep, 7000
    Press_X()
    Sleep, 500

    Press_Down(140)
    Sleep, 200
    Press_Down(140)
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 1500
    }
    Sleep, 7000
    Press_X()
    Sleep, 1500

    Press_Down(140)
    Sleep, 200
    Press_Down(140)
    Sleep, 200
    Press_Down(140)
    Sleep, 200
    loop, 2 {
      Press_X()
      Sleep, 1500
    }
    Sleep, 8500
    Press_X()
    Sleep, 500

    Press_O()
    Sleep, 200
    Sleep, 7000
    Press_Up(140)
    Sleep, 200
    Press_Left()
    Sleep, 500
    Press_Left()
    Sleep, 500
    Press_X()
    Sleep, 11800
    return
  }

return

EndMaintenceDef:
