+
+ mbn = mouse_state(&mx, &my);
+
+ if((mbn_diff = mbn ^ prev_mbn) != 0) {
+ if(mbn_diff & 1) {
+ game_mouse(0, mbn & 1, mx, my);
+ last_mouse_ev = nticks;
+ }
+ if(mbn_diff & 2) {
+ game_mouse(2, mbn & 2, mx, my);
+ last_mouse_ev = nticks;
+ }
+ if(mbn_diff & 4) {
+ game_mouse(1, mbn & 4, mx, my);
+ last_mouse_ev = nticks;
+ }
+ }
+ if(mx != prev_mx || my != prev_my) {
+ game_motion(mx, my);
+ last_mouse_ev = nticks;
+ }
+ prev_mbn = mbn;
+ prev_mx = mx;
+ prev_my = my;
+