| version 1.1 | | version 1.2 |
|---|
| | |
| #include <string.h> | | #include <string.h> |
| | | #include <stdio.h> |
| #include <vga.h> | | #include <vga.h> |
| #include <vgamouse.h> | | #include <vgamouse.h> |
| #include "fix.h" | | #include "fix.h" |
| | |
| #include "event.h" | | #include "event.h" |
| #include "mouse.h" | | #include "mouse.h" |
| | | |
| | | ubyte installed = 0; |
| | | |
| struct mousebutton { | | struct mousebutton { |
| ubyte pressed; | | ubyte pressed; |
| fix time_went_down; | | fix time_went_down; |
| | |
| Mouse.buttons[i].num_ups++; | | Mouse.buttons[i].num_ups++; |
| } | | } |
| } | | } |
| Mouse.delta_x += drx; | | Mouse.delta_x += dx; |
| Mouse.delta_y += dry; | | Mouse.delta_y += dy; |
| Mouse.x = dx; | | Mouse.x += dx; |
| Mouse.y = dy; | | Mouse.y += dy; |
| if (Mouse.x > Mouse.max_x) Mouse.x = Mouse.max_x; | | if (Mouse.x > Mouse.max_x) Mouse.x = Mouse.max_x; |
| else if (Mouse.x < Mouse.min_x) Mouse.x = Mouse.min_x; | | else if (Mouse.x < Mouse.min_x) Mouse.x = Mouse.min_x; |
| if (Mouse.y > Mouse.max_y) Mouse.y = Mouse.max_y; | | if (Mouse.y > Mouse.max_y) Mouse.y = Mouse.max_y; |
| | |
| | | |
| void d_mouse_close(void) | | void d_mouse_close(void) |
| { | | { |
| | | printf ("d_mouse_close"); |
| | | if (installed) |
| vga_setmousesupport(0); | | vga_setmousesupport(0); |
| | | installed = 0; |
| } | | } |
| | | |
| void d_mouse_init(void) | | void d_mouse_init(void) |
| { | | { |
| memset(&Mouse,0,sizeof(Mouse)); | | memset(&Mouse,0,sizeof(Mouse)); |
| vga_setmousesupport(1); | | vga_setmousesupport(1); |
| mouse_seteventhandler(mouse_handler); | | if (!installed) |
| atexit(d_mouse_close); | | atexit(d_mouse_close); |
| | | installed = 1; |
| } | | } |
| | | |
| int mouse_set_limits( int x1, int y1, int x2, int y2 ) | | int mouse_set_limits( int x1, int y1, int x2, int y2 ) |
| { | | { |
| //added on 10/17/98 by Hans de Goede for mouse functionality | | event_poll(); |
| //-killed- // Shrug... | | |
| //-killed- event_poll(); | | |
| Mouse.min_x = x1; | | Mouse.min_x = x1; |
| Mouse.min_y = y1; | | Mouse.min_y = y1; |
| Mouse.max_x = x2; | | Mouse.max_x = x2; |
| Mouse.max_y = y2; | | Mouse.max_y = y2; |
| //end this section addition - Hans | | |
| return 0; | | return 0; |
| } | | } |
| | | |
| | |
| //======================================================================== | | //======================================================================== |
| void mouse_get_pos( int *x, int *y) | | void mouse_get_pos( int *x, int *y) |
| { | | { |
| //added/changed on 10/17/98 by Hans de Goede for mouse functionality | | |
| //-killed- Uint16 lx,ly; | | |
| event_poll(); | | event_poll(); |
| //-killed- SDL_GetMouseState(&lx,&ly); | | |
| //-killed- *x=(int)lx; | | |
| //-killed- *y=(int)ly; | | |
| *x=Mouse.x; | | *x=Mouse.x; |
| *y=Mouse.y; | | *y=Mouse.y; |
| //end this section change - Hans | | |
| } | | } |
| | | |
| void mouse_get_delta( int *dx, int *dy ) | | void mouse_get_delta( int *dx, int *dy ) |
| { | | { |
| //added/changed on 10/17/98 by Hans de Goede for mouse functionality | | |
| //-killed- static int lastx, lasty; | | |
| //-killed- int x,y; | | |
| | | |
| event_poll(); | | event_poll(); |
| //-killed- mouse_get_pos(&x,&y); | | |
| //-killed- *dx = x - lastx; | | |
| //-killed- *dy = y - lasty; | | |
| //-killed- lastx = x; | | |
| //-killed- lasty = y; | | |
| *dx = Mouse.delta_x; | | *dx = Mouse.delta_x; |
| *dy = Mouse.delta_y; | | *dy = Mouse.delta_y; |
| Mouse.delta_x = 0; | | Mouse.delta_x = 0; |
| Mouse.delta_y = 0; | | Mouse.delta_y = 0; |
| //end this section change - Hans | | |
| } | | } |
| | | |
| int mouse_get_btns() | | int mouse_get_btns() |
| | |
| void mouse_set_pos( int x, int y) | | void mouse_set_pos( int x, int y) |
| { | | { |
| event_poll(); | | event_poll(); |
| //added/changed on 10/17/98 by Hans de Goede for mouse functionality | | |
| //-killed- SDL_WarpMouse(x,y); | | |
| Mouse.x=x; | | Mouse.x=x; |
| Mouse.y=y; | | Mouse.y=y; |
| if (Mouse.x > Mouse.max_x) Mouse.x = Mouse.max_x; | | if (Mouse.x > Mouse.max_x) Mouse.x = Mouse.max_x; |