ScummVM API documentation
mouse.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef MADS_CORE_MOUSE_H
23 #define MADS_CORE_MOUSE_H
24 
25 #include "graphics/surface.h"
26 #include "mads/core/general.h"
27 #include "mads/core/sprite.h"
28 
29 namespace MADS {
30 
31 #define MOUSE_TIMING_ONE 7 /* Mouse 1st repeat delay (ticks) */
32 #define MOUSE_TIMING_TWO 2 /* Mouse 2nd repeat delay (ticks) */
33 
34 #define MOUSE_DOUBLE_TIMING 5 /* Double click threshold (ticks) */
35 #define MOUSE_BALLISTIC_TIMING 36 /* Ballistic threshold (ticks) */
36 
37 extern word mouse_driver; /* True if mouse driver is currently active */
38 extern word mouse_known_mode; /* True if mouse in a 320x200 graphics mode */
39 extern int mouse_video_mode; /* Rom BIOS video mode # of current cursor */
40 extern byte mouse_showing; /* Mouse cursor showing status (0 = show) */
41 extern byte mouse_hidden;
42 
43 extern int mouse_button; /* Last button pressed (0 = left, 1 = right) */
44 extern int mouse_status; /* Button status flags */
45 extern int mouse_x, mouse_y; /* Most recent cursor position */
46 extern int mouse_buttons; /* Most recent button state */
47 extern bool mouse_start_stroke; /* True if new button press this round */
48 extern bool mouse_stroke_going; /* True if any button currently down */
49 extern bool mouse_changed; /* True if position or any button changed */
50 extern bool mouse_latched; /* Internal use (same as mouse_stroke_going) */
51 extern bool mouse_stop_stroke; /* True if button released this round */
52 extern bool mouse_any_stroke; /* True if button down or just now released */
53 extern int mouse_old_x; /* Cursor X position on previous round */
54 extern int mouse_old_y; /* Cursor Y position on previous round */
55 extern long mouse_clock; /* Timing clock to insure at least 1 tick */
56 
57 
58 extern int mouse_init(int driver_flag, int mouse_video_mode);
59 extern int mouse_set_hotspot(int spot_x, int spot_y);
60 extern void mouse_change_cursor_begin();
61 extern void mouse_change_cursor_end();
62 extern void mouse_screen_swap(int mouse_video_mode);
63 extern int mouse_get_video_mode();
64 extern void mouse_begin_double(int first_video_mode, int second_video_mode,
65  int mono_to_right, int auto_freedom);
66 extern void mouse_check_double();
67 extern void mouse_end_double();
68 extern void mouse_double_freedom(int freedom_flag);
69 extern void mouse_show();
70 extern void mouse_hide();
71 extern int mouse_get_status(int *x, int *y);
72 extern void mouse_timing();
73 extern void mouse_freeze();
74 extern void mouse_thaw();
75 extern void mouse_horiz_bound(int min_x, int max_x);
76 extern void mouse_vert_bound(int min_y, int max_y);
77 extern void mouse_force(int x, int y);
78 extern void mouse_set_work_buffer(byte *work_buffer, int wrap_value);
79 extern void mouse_set_view_port_loc(int x1, int y1, int x2, int y2);
80 extern void mouse_set_view_port(int dx, int dy);
81 extern int mouse_refresh_view_port();
82 extern void mouse_refresh_done();
83 extern void mouse_disable_scale();
84 extern void mouse_hard_cursor_mode(int mode, Palette &mypal);
85 
89 extern int mouse_in_box(int ul_x, int ul_y, int lr_x, int lr_y);
90 
95 extern void mouse_init_cycle();
96 
101 extern void mouse_begin_cycle(int double_flag);
102 
107 extern void mouse_end_cycle(int double_flag, int timing_flag);
108 
109 extern void mouse_cursor_sprite(SeriesPtr series, int id);
110 extern void mouse_cursor_surface(const Graphics::Surface &surf, int hot_x, int hot_y);
111 extern void mouse_video_init();
112 extern void mouse_video_update(int from_x, int from_y,
113  int unto_x, int unto_y, int size_x, int size_y);
114 
115 } // namespace MADS
116 
117 #endif
Definition: surface.h:67
Definition: anim_timer.h:27
Definition: atari-screen.h:42