Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void LocalEvent::HandleJoystickAxisEvent(SDL_JoyAxisEvent & event) {
- int step;
- int value = event.value >> 8;
- if (event.axis != 0 && event.axis != 1)
- return;
- if (value > 0x20)
- step = value - 0x20;
- else if (value < -0x20)
- step = value + 0x20;
- else
- step = 0;
- if (event.axis == 0)
- emulate_joy_step_x = step;
- else
- emulate_joy_step_y = step;
- }
- bool LocalEvent::EmulateJoystickAxisMove(void) {
- ResetModes(MOUSE_MOTION);
- if (emulate_joy_step_x != 0 || emulate_joy_step_y != 0) {
- mouse_cu.x += emulate_joy_step_x / 0x10;
- mouse_cu.y += emulate_joy_step_y / 0x10;
- SetModes(MOUSE_MOTION);
- if(mouse_cu.x < 0) mouse_cu.x = 0;
- if(mouse_cu.y < 0) mouse_cu.y = 0;
- if(mouse_cu.x > Display::Get().w()) mouse_cu.x = Display::Get().w();
- if(mouse_cu.y > Display::Get().h()) mouse_cu.y = Display::Get().h();
- if((modes & MOUSE_MOTION) && redraw_cursor_func)
- {
- if(modes & MOUSE_OFFSET)
- (*(redraw_cursor_func))(mouse_cu.x + mouse_st.x, mouse_cu.y + mouse_st.y);
- else
- (*(redraw_cursor_func))(mouse_cu.x, mouse_cu.y);
- }
- return true;
- }
- return false;
- }
Add Comment
Please, Sign In to add comment