//----------------------------------------------------------
//	Файл:		INPUT.H
//	Описание:	Выполняет всю черновую работу с DirectInput
//----------------------------------------------------------

//Вызывается для найденного джойстика
BOOL CALLBACK DIEnumJoysticks(LPCDIDEVICEINSTANCE  , VOID* );

//Выполняет настройку джойстика
BOOL PrepareJoystick(void);

//Функции инициализации и удаления объектов,
//связанных с DirectInput
BOOL	InitDirectInput (HWND hwnd);
void	RemoveDirectInput (void);

//Функции, обрабатывающая ввод от джойстика
// и захватывающая или освобождающая джойтсик
void	ProcessJoystick();
void	AccessJoystick(BOOL);

//-------------------------------------------
//переменные джойстика
extern int joystick_x;
extern int joystick_y;
extern bool joy_left;
extern bool joy_right;
extern bool joy_up;
extern bool joy_down;
extern bool button_1;
extern bool button_2;
extern bool button_3;
extern bool button_4;
extern bool button_5;
extern bool button_6;
extern bool button_7;
extern bool button_8;
extern bool button_9;
extern bool button_10;
extern bool button_11;
//-------------------------------------------
//Макрос - считывание нажатия клавиш
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
//переменные обработки мыши
extern bool lbutton;//клик левой кнопкой
extern bool rbutton;//клик правой кнопкой
extern bool ldblclk;//двойной щелчок
extern bool rdblclk;//двойной щелчок
extern int cur_x;//положение курсора
extern int cur_y;//положение курсора
extern int pointldx;//место нажатия кнопки
extern int pointldy;//место нажатия кнопки
extern int pointlux;//место отпуска кнопки
extern int pointluy;//место отпуска кнопки
extern int pointrdx;//место нажатия кнопки
extern int pointrdy;//место нажатия кнопки
extern int pointrux;//место отпуска кнопки
extern int pointruy;//место отпуска кнопки
//переменная нажатия клавиатуры
extern int key;
extern unsigned int key_state;
extern bool keypress;
//-------------------------------------
//проверка на клик в заданной области
bool CursorLD(int x,int y,int w,int h);
//проверка поднятия клавиши в заданной области
bool CursorLU(int x,int y,int w,int h);
//проверка на клик в заданной области
bool CursorRD(int x,int y,int w,int h);
//проверка поднятия клавиши в заданной области
bool CursorRU(int x,int y,int w,int h);
//проверка положения курсора относительно заданной прямоугольной области
bool CursorIn(int x,int y,int w,int h);
//-------------------------------------
