3 static int num_mouse_buttons;
11 if ((inportb(0x201) & 1) == 0)
29 c1 = x = y = flag = 0;
59 if (joy.raw_x < joy.calib_data.x2)
60 joy.x = ((long) (joy.raw_x - joy.calib_data.x2) << 10) / (joy.calib_data.x2 - joy.calib_data.x1);
62 joy.x = ((long) (joy.raw_x - joy.calib_data.x2) << 10) / (joy.calib_data.x3 - joy.calib_data.x2);
63 if (joy.raw_y < joy.calib_data.y2)
64 joy.y = ((long) (joy.raw_y - joy.calib_data.y2) << 10) / (joy.calib_data.y2 - joy.calib_data.y1);
66 joy.y = ((long) (joy.raw_y - joy.calib_data.y2) << 10) / (joy.calib_data.y3 - joy.calib_data.y2);
78 joy.but1 = (((s1 >> 4) & 1) ^ 1);
79 joy.but2 = (((s1 >> 5) & 1) ^ 1);
81 joy.raw_x = joy.calib_data.x2;
82 joy.raw_y = joy.calib_data.y2;
86 joy.but1 = joy.but2 = 0;
92 int calib_joy(int type)
100 while (joy.but1 == 1) {
102 joy.but1 = (((s1 >> 4) & 1) ^ 1);
103 if (key_pressed(1) == 1) {
104 while (key_pressed(1) == 1);
111 while (joy.but1 == 0) {
113 c1 = x = y = flag = 0;
128 if (x != 0 && y != 0)
143 joy.but1 = (((s1 >> 4) & 1) ^ 1);
145 if (num_times < 0x7fffffff)
151 if (key_pressed(1) == 1) {
152 while (key_pressed(1) == 1);
165 joy.calib_data.x1 = joy.raw_x;
166 joy.calib_data.y1 = joy.raw_y;
169 joy.calib_data.x3 = joy.raw_x;
170 joy.calib_data.y3 = joy.raw_y;
173 joy.calib_data.x2 = joy.raw_x;
174 joy.calib_data.y2 = joy.raw_y;
178 while (joy.but1 == 1) {
180 joy.but1 = (((s1 >> 4) & 1) ^ 1);
190 int init_mouse(int *_num_buttons)
193 int mouse_enabled, num_mouse_buttons;
196 __dpmi_int(0x33, ®s);
197 if (regs.x.ax == 0xffff) {
199 num_mouse_buttons = regs.x.bx;
201 num_mouse_buttons = 2;
203 num_mouse_buttons = 3;
208 _num_buttons = num_mouse_buttons;
210 return mouse_enabled;
214 void read_mouse(void)
218 __dpmi_int(0x33, ®s);
219 mouse.but1 = regs.x.bx & 1;
220 mouse.but2 = (regs.x.bx & 2) >> 1;
221 mouse.but3 = (regs.x.bx & 4) >> 2;
226 void update_player_actions(void)
228 if (main_info.mouse_enabled == 1)
230 if (main_info.joy_enabled == 1)
232 player[0].action_left = key_pressed(KEY_PL1_LEFT) == 1;
233 player[0].action_right = key_pressed(KEY_PL1_RIGHT) == 1;
234 player[0].action_up = key_pressed(KEY_PL1_JUMP) == 1;
235 player[1].action_left = key_pressed(KEY_PL2_LEFT) == 1;
236 player[1].action_right = key_pressed(KEY_PL2_RIGHT) == 1;
237 player[1].action_up = key_pressed(KEY_PL2_JUMP) == 1;
238 player[2].action_left = key_pressed(KEY_PL3_LEFT) == 1;
239 player[2].action_right = key_pressed(KEY_PL3_RIGHT) == 1;
240 player[2].action_up = key_pressed(KEY_PL3_JUMP) == 1;
241 player[3].action_left = key_pressed(KEY_PL4_LEFT) == 1;
242 player[3].action_right = key_pressed(KEY_PL4_RIGHT) == 1;
243 player[3].action_up = key_pressed(KEY_PL4_JUMP) == 1;
247 void init_inputs(void)
249 main_info.mouse_enabled = init_mouse(&num_mouse_buttons);
250 main_info.joy_enabled = init_joy(&num_mouse_buttons);