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; |