]> icculus.org git repositories - btb/d2x.git/blob - arch/include/mouse.h
add axis invert cvars
[btb/d2x.git] / arch / include / mouse.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14 /*
15  *
16  * Header for mouse functions
17  *
18  *
19  */
20
21 #ifndef MOUSE_H
22 #define MOUSE_H
23
24 #include "pstypes.h"
25 #include "fix.h"
26 #include "console.h"
27
28
29 #define MOUSE_MAX_BUTTONS   16
30
31 #define MB_LEFT                 0
32 #define MB_RIGHT                1
33 #define MB_MIDDLE               2
34 #define MB_Z_UP                 3
35 #define MB_Z_DOWN               4
36 #define MB_PITCH_BACKWARD       5
37 #define MB_PITCH_FORWARD        6
38 #define MB_BANK_LEFT            7
39 #define MB_BANK_RIGHT           8
40 #define MB_HEAD_LEFT            9
41 #define MB_HEAD_RIGHT           10
42
43 #define MOUSE_LBTN 1
44 #define MOUSE_RBTN 2
45 #define MOUSE_MBTN 4
46
47
48 // Axis mapping cvars
49 // 0 = no action
50 // 1 = move forward/back
51 // 2 = look up/down
52 // 3 = move left/right
53 // 4 = look left/right
54 // 5 = move up/down
55 // 6 = bank left/right
56
57 extern cvar_t mouse_axes[];
58 extern cvar_t mouse_invert[];
59
60
61 //========================================================================
62 // Check for mouse driver, reset driver if installed. returns number of
63 // buttons if driver is present.
64
65 #ifdef SVGALIB_INPUT
66 extern int d_mouse_init(int enable_cyberman); /* conflict with <vgamouse.h> */
67 #else
68 extern int mouse_init(int enable_cyberman);
69 #endif
70 /* changed from int to void */
71 extern void mouse_set_limits( int x1, int y1, int x2, int y2 );
72 extern void mouse_flush();      // clears all mice events...
73
74 //========================================================================
75 // Shutdowns mouse system.
76 #ifdef SVGALIB_INPUT
77 extern void d_mouse_close(); /* conflict with <vgamouse.h> */
78 #else
79 extern void mouse_close();
80 #endif
81
82 //========================================================================
83 extern void mouse_get_pos( int *x, int *y );
84 extern void mouse_get_delta( int *dx, int *dy );
85 #ifdef SDL_INPUT
86 extern void mouse_get_pos_z( int *x, int *y, int *z );
87 extern void mouse_get_delta_z( int *dx, int *dy, int *dz );
88 #endif
89 extern int mouse_get_btns();
90 extern void mouse_set_pos( int x, int y);
91 extern void mouse_get_cyberman_pos( int *x, int *y );
92
93 // Returns how long this button has been down since last call.
94 #define mouse_button_down_time(button) key_down_time(KEY_MB1 + (button))
95
96 // Returns how many times this button has went down since last call.
97 #define mouse_button_down_count(button) key_down_count(KEY_MB1 + (button))
98
99 // Returns 1 if this button is currently down
100 extern int mouse_button_state(int button);
101
102
103 #endif