mouse_x(3)

NAME
mouse_x, mouse_y, mouse_z, mouse_b, mouse_pos

SYNOPSIS
#include <allegro.h>

extern volatile int mouse_x; extern volatile int mouse_y; extern volatile int mouse_z; extern volatile int mouse_b; extern volatile int mouse_pos;

DESCRIPTION
Global variables containing the current mouse position and button state. Wherever possible these values will be updated asynchronously, but if mouse_needs_poll() returns TRUE, you must manually call poll_mouse() to update them with the current input state. The mouse_x and mouse_y positions are integers ranging from zero to the bottom right corner of the screen. The mouse_z variable holds the current wheel position, when using an input driver that supports wheel mice. The mouse_b variable is a bitfield indicating the state of each button: bit 0 is the left button, bit 1 the right, and bit 2 the middle button. For example:
   if (mouse_b & 1)
      printf("Left button is pressed\n");

   if (!(mouse_b & 2))
      printf("Right button is not pressed\n");

The mouse_pos variable has the current X coordinate in the high word and the Y in the low word. This may be useful in tight polling loops where a mouse interrupt could occur between your reading of the two separate variables, since you can copy this value into a local variable with a single instruction and then split it up at your leisure.

SEE ALSO
install_mouse(3), poll_mouse(3), mouse_needs_poll(3)