'http://gtaxscripting.blogspot.com/
'http://www.facebook.com/GtaIVScripting
'https://www.youtube.com/user/GTAScripting
Imports GTA
Public Class XControls
Public leftSitck_x, leftSitck_y, rightStick_x, rightStick_y As Native.Pointer
Public BUTTON_BACK As Int16 = 13
Public BUTTON_START As Int16 = 12
Public BUTTON_X As Int16 = 14
Public BUTTON_Y As Int16 = 15
Public BUTTON_A As Int16 = 16
Public BUTTON_B As Int16 = 17
Public BUTTON_DPAD_UP As Int16 = 8
Public BUTTON_DPAD_DOWN As Int16 = 9
Public BUTTON_DPAD_LEFT As Int16 = 10
Public BUTTON_DPAD_RIGHT As Int16 = 11
Public BUTTON_TRIGGER_LEFT As Int16 = 5
Public BUTTON_TRIGGER_RIGHT As Int16 = 7
Public BUTTON_BUMPER_LEFT As Int16 = 4
Public BUTTON_BUMPER_RIGHT As Int16 = 6
Public BUTTON_STICK_LEFT As Int16 = 18
Public BUTTON_STICK_RIGHT As Int16 = 19
Public PacketNumber As Int32 = 0
Public Sub New()
leftSitck_x = New Native.Pointer(GetType(Int32))
leftSitck_y = New Native.Pointer(GetType(Int32))
rightStick_x = New Native.Pointer(GetType(Int32))
rightStick_y = New Native.Pointer(GetType(Int32))
leftSitck_x.SetValue(0)
leftSitck_y.SetValue(0)
rightStick_x.SetValue(0)
rightStick_y.SetValue(0)
PacketNumber = 1
End Sub
Public Function usingController() As Boolean
Return Native.Function.Call(Of Boolean)("IS_USING_CONTROLLER")
End Function
Public Sub UpdateAnalogueSticksData(Optional control_number As Int16 = 0)
If usingController() AndAlso (PacketNumber > 0) Then _
Native.Function.Call("GET_POSITION_OF_ANALOGUE_STICKS", control_number, leftSitck_x, leftSitck_y, rightStick_x, rightStick_y)
End Sub
Public Function isButtonDown(button As Int16, Optional control_number As Int16 = 0) As Boolean
If usingController() Then
PacketNumber += 1
If PacketNumber > 9999 Then PacketNumber = 0
Return Native.Function.Call(Of Boolean)("IS_BUTTON_PRESSED", control_number, button)
Else
Return False
End If
End Function
End Class