// change in mouse position since last call void mouse_eval_deltas() { static int old_x = 0; static int old_y = 0; int tmp_x, tmp_y, cx, cy; Mouse_dx = Mouse_dy = Mouse_dz = 0; if (!mouse_inited) return; #ifdef WIN32 if (Mouse_mode == MOUSE_MODE_DI) { mouse_eval_deltas_di(); return; } #endif cx = gr_screen.max_w / 2; cy = gr_screen.max_h / 2; ENTER_CRITICAL_SECTION( mouse_lock ); POINT pnt; getWindowMousePos(&pnt); tmp_x = pnt.x; tmp_y = pnt.y; Mouse_dx = tmp_x - old_x; Mouse_dy = tmp_y - old_y; Mouse_dz = 0; // Speeds up the menu mouse on higher resolutions. The check for a // visible mouse should eliminate any possible gameplay changes. if ( mouse_is_visible() ) { gr_resize_screen_pos( &Mouse_dx, &Mouse_dy ); } if (Keep_mouse_centered && Mouse_hidden) { if (Mouse_dx || Mouse_dy) mouse_force_pos(cx, cy); old_x = cx; old_y = cy; } else { old_x = tmp_x; old_y = tmp_y; } LEAVE_CRITICAL_SECTION( mouse_lock ); //WMC - For On Mouse Moved trigger if(Mouse_dx != 0 || Mouse_dy != 0) { Script_system.RunCondition(CHA_MOUSEMOVED); } }
// change in mouse position since last call void mouse_eval_deltas() { static int old_x = 0; static int old_y = 0; int tmp_x, tmp_y, cx, cy; Mouse_dx = Mouse_dy = Mouse_dz = 0; if (!mouse_inited) return; #ifdef USE_DIRECTINPUT if (Mouse_mode == MOUSE_MODE_DI) { mouse_eval_deltas_di(); return; } #endif cx = gr_screen.max_w / 2; cy = gr_screen.max_h / 2; ENTER_CRITICAL_SECTION(&mouse_lock); POINT pnt; getWindowMousePos(&pnt); tmp_x = pnt.x; tmp_y = pnt.y; Mouse_dx = tmp_x - old_x; Mouse_dy = tmp_y - old_y; Mouse_dz = 0; if (Keep_mouse_centered && Mouse_hidden) { if (Mouse_dx || Mouse_dy) mouse_force_pos(cx, cy); old_x = cx; old_y = cy; } else { old_x = tmp_x; old_y = tmp_y; } LEAVE_CRITICAL_SECTION(&mouse_lock); }