aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
Diffstat (limited to 'backends')
-rw-r--r--backends/PalmOS/Src/palm.cpp2
-rw-r--r--backends/dc/input.cpp1
-rw-r--r--backends/gp32/gp32.cpp172
-rw-r--r--backends/morphos/morphos.cpp1
-rw-r--r--backends/sdl/sdl-common.cpp2
-rw-r--r--backends/wince/wince.cpp3
-rw-r--r--backends/x11/x11.cpp1
7 files changed, 96 insertions, 86 deletions
diff --git a/backends/PalmOS/Src/palm.cpp b/backends/PalmOS/Src/palm.cpp
index d0ae3c65a2..a64d99668b 100644
--- a/backends/PalmOS/Src/palm.cpp
+++ b/backends/PalmOS/Src/palm.cpp
@@ -603,6 +603,7 @@ void OSystem_PALMOS::SimulateArrowKeys(Event *event, Int8 iHoriz, Int8 iVert, Bo
event->event_code = EVENT_MOUSEMOVE;
event->mouse.x = x;
event->mouse.y = y;
+ set_mouse_pos(event->mouse.x, event->mouse.y);
}
static void getCoordinates(EventPtr event, Boolean wide, Coord *x, Coord *y) {
@@ -811,6 +812,7 @@ bool OSystem_PALMOS::poll_event(Event *event) {
event->event_code = EVENT_MOUSEMOVE;
event->mouse.x = x;
event->mouse.y = y - _decaly;
+ set_mouse_pos(event->mouse.x, event->mouse.y);
return true;
case penDownEvent:
diff --git a/backends/dc/input.cpp b/backends/dc/input.cpp
index 868f6c1fe0..e7b3dad072 100644
--- a/backends/dc/input.cpp
+++ b/backends/dc/input.cpp
@@ -184,6 +184,7 @@ bool OSystem_Dreamcast::poll_event(Event *event)
event->event_code = EVENT_MOUSEMOVE;
_ms_old_x = _ms_cur_x;
_ms_old_y = _ms_cur_y;
+ set_mouse_pos(event->mouse.x, event->mouse.y);
return true;
} else {
event->event_code = (EventCode)0;
diff --git a/backends/gp32/gp32.cpp b/backends/gp32/gp32.cpp
index 2c266aeca4..d81fbc2b8e 100644
--- a/backends/gp32/gp32.cpp
+++ b/backends/gp32/gp32.cpp
@@ -873,107 +873,107 @@ bool OSystem_GP32::poll_event(Event *event) { // fixme: make more user-friendly
int key;
key=GpKeyGet();
- if (key == GPC_VK_NONE) {
- if (lastevent==EVENT_LBUTTONDOWN) {
- lastevent=0;
- event->event_code = EVENT_LBUTTONUP;
- return true;
- }
- return false;
- }
-
- if (key == oldkey) {
- eventcount--;
- if (eventcount) return false;
+ if (key == GPC_VK_NONE) {
+ if (lastevent==EVENT_LBUTTONDOWN) {
+ lastevent=0;
+ event->event_code = EVENT_LBUTTONUP;
+ return true;
}
- oldkey=key;
- eventcount=EVENT_COUNT;
-
- event->event_code = EVENT_KEYDOWN;
+ return false;
+ }
- if (key & GPC_VK_FL && key & GPC_VK_FR) { // L+R = save state
- printf("Saving game, please wait...");
+ if (key == oldkey) {
+ eventcount--;
+ if (eventcount) return false;
+ }
+ oldkey=key;
+ eventcount=EVENT_COUNT;
- //extern void autosave(void * engine);
- //autosave(NULL); //FIXME?
- do key=GpKeyGet(); while (key != GPC_VK_NONE) ;
- return false;
- } else
+ event->event_code = EVENT_KEYDOWN;
- if(key & GPC_VK_FL) { // L = debug console
- //GpGraphicModeSet(8, NULL); //FIXME: if 16bit?
- currsurface=DEBUG_SURFACE;
- GpSurfaceFlip(&gpDraw[currsurface]);
- GpSetPaletteEntry ( 0, 0,0,0 );
- GpSetPaletteEntry ( 1, 255,0,0 );
- GpSetPaletteEntry ( 2, 255,255,255 );
- return false;
- } else
-
- if (key & GPC_VK_FR) { // R = game screen
- //if (_overlay_visible) GpGraphicModeSet(16, NULL);
- // else GpGraphicModeSet(8, NULL);
- currsurface=GAME_SURFACE;
- GpSurfaceFlip(&gpDraw[currsurface]);
+ if (key & GPC_VK_FL && key & GPC_VK_FR) { // L+R = save state
+ printf("Saving game, please wait...");
- _paletteDirtyStart=0;
- _paletteDirtyEnd=255; //fixme?
- return false;
- }
+ //extern void autosave(void * engine);
+ //autosave(NULL); //FIXME?
+ do key=GpKeyGet(); while (key != GPC_VK_NONE) ;
+ return false;
+ }
+
+ if (key & GPC_VK_FL) { // L = debug console
+ //GpGraphicModeSet(8, NULL); //FIXME: if 16bit?
+ currsurface=DEBUG_SURFACE;
+ GpSurfaceFlip(&gpDraw[currsurface]);
+ GpSetPaletteEntry ( 0, 0,0,0 );
+ GpSetPaletteEntry ( 1, 255,0,0 );
+ GpSetPaletteEntry ( 2, 255,255,255 );
+ return false;
+ }
+
+ if (key & GPC_VK_FR) { // R = game screen
+ //if (_overlay_visible) GpGraphicModeSet(16, NULL);
+ // else GpGraphicModeSet(8, NULL);
+ currsurface=GAME_SURFACE;
+ GpSurfaceFlip(&gpDraw[currsurface]);
- if(key & GPC_VK_START) { // START = menu
- event->kbd.keycode = 319;
- event->kbd.ascii = 319;
- return true;
- }
+ _paletteDirtyStart=0;
+ _paletteDirtyEnd=255; //fixme?
+ return false;
+ }
- if(key & GPC_VK_SELECT) { // SELECT == escape/skip
- if (_overlay_visible)
- do key=GpKeyGet(); while (key != GPC_VK_NONE) ; // prevent 2xESC
- event->kbd.keycode = 27;
- event->kbd.ascii = 27;
- return true;
- }
+ if (key & GPC_VK_START) { // START = menu
+ event->kbd.keycode = 319;
+ event->kbd.ascii = 319;
+ return true;
+ }
- if (key & GPC_VK_FA) {
- lastevent=EVENT_LBUTTONDOWN;
- event->event_code = EVENT_LBUTTONDOWN;
- return true;
- }
- if (key & GPC_VK_FB) {
- lastevent=EVENT_RBUTTONDOWN;
- event->event_code = EVENT_RBUTTONDOWN;
- return true;
- }
+ if (key & GPC_VK_SELECT) { // SELECT == escape/skip
+ if (_overlay_visible)
+ do key=GpKeyGet(); while (key != GPC_VK_NONE) ; // prevent 2xESC
+ event->kbd.keycode = 27;
+ event->kbd.ascii = 27;
+ return true;
+ }
+
+ if (key & GPC_VK_FA) {
+ lastevent=EVENT_LBUTTONDOWN;
+ event->event_code = EVENT_LBUTTONDOWN;
+ return true;
+ }
+ if (key & GPC_VK_FB) {
+ lastevent=EVENT_RBUTTONDOWN;
+ event->event_code = EVENT_RBUTTONDOWN;
+ return true;
+ }
- event->event_code = EVENT_MOUSEMOVE;
+ if(key & GPC_VK_LEFT) {
+ mx-=MOUSE_MIPS;
+ if (mx<1) mx=1; // wrong if 0?
+ }
- if(key & GPC_VK_LEFT) {
- mx-=MOUSE_MIPS;
- if (mx<1) mx=1; // wrong if 0?
- }
+ if(key & GPC_VK_RIGHT) {
+ mx+=MOUSE_MIPS;
+ if (mx>319) mx=319;
+ }
- if(key & GPC_VK_RIGHT) {
- mx+=MOUSE_MIPS;
- if (mx>319) mx=319;
- }
+ if(key & GPC_VK_UP) {
+ my-=MOUSE_MIPS;
+ if (my<1) my=1; // wrong if 0?
+ }
- if(key & GPC_VK_UP) {
- my-=MOUSE_MIPS;
- if (my<1) my=1; // wrong if 0?
- }
+ if(key & GPC_VK_DOWN) {
+ my+=MOUSE_MIPS;
+ if (my>199) my=199;
+ }
- if(key & GPC_VK_DOWN) {
- my+=MOUSE_MIPS;
- if (my>199) my=199;
- }
+ event->event_code = EVENT_MOUSEMOVE;
+ km.x = event->mouse.x = mx;
+ km.y = event->mouse.y = my;
- event->event_code = EVENT_MOUSEMOVE;
- km.x = event->mouse.x = mx;
- km.y = event->mouse.y = my;
+ event->mouse.x /= _scaleFactor;
+ event->mouse.y /= _scaleFactor;
- event->mouse.x /= _scaleFactor;
- event->mouse.y /= _scaleFactor;
+ set_mouse_pos(event->mouse.x, event->mouse.y);
}
// Set the function to be invoked whenever samples need to be generated
diff --git a/backends/morphos/morphos.cpp b/backends/morphos/morphos.cpp
index b8d6b0d963..1dab006808 100644
--- a/backends/morphos/morphos.cpp
+++ b/backends/morphos/morphos.cpp
@@ -894,6 +894,7 @@ bool OSystem_MorphOS::poll_event(Event *event)
event->event_code = EVENT_MOUSEMOVE;
event->mouse.x = newx;
event->mouse.y = newy;
+ set_mouse_pos(event->mouse.x, event->mouse.y);
break;
}
diff --git a/backends/sdl/sdl-common.cpp b/backends/sdl/sdl-common.cpp
index 84d80f3ca8..0b94433384 100644
--- a/backends/sdl/sdl-common.cpp
+++ b/backends/sdl/sdl-common.cpp
@@ -708,6 +708,8 @@ bool OSystem_SDL_Common::poll_event(Event *event) {
if (_adjustAspectRatio)
event->mouse.y = aspect2Real(event->mouse.y);
+
+ set_mouse_pos(event->mouse.x, event->mouse.y);
return true;
case SDL_MOUSEBUTTONDOWN:
diff --git a/backends/wince/wince.cpp b/backends/wince/wince.cpp
index 703e752ab3..78962e550e 100644
--- a/backends/wince/wince.cpp
+++ b/backends/wince/wince.cpp
@@ -1751,6 +1751,9 @@ bool OSystem_WINCE3::poll_event(Event *event) {
return false;
*event = _event;
+
+ if (_event.event_code == EVENT_MOUSEMOVE)
+ set_mouse_pos(_event.mouse.x, _event.mouse.y);
_event.event_code = EVENT_WHEELUP;
diff --git a/backends/x11/x11.cpp b/backends/x11/x11.cpp
index f146f02824..29d394c86d 100644
--- a/backends/x11/x11.cpp
+++ b/backends/x11/x11.cpp
@@ -1006,6 +1006,7 @@ bool OSystem_X11::poll_event(Event *scumm_event)
scumm_event->event_code = EVENT_MOUSEMOVE;
scumm_event->mouse.x = event.xmotion.x - scumm_x;
scumm_event->mouse.y = event.xmotion.y - scumm_y;
+ set_mouse_pos(scumm_event->mouse.x, scumm_event->mouse.y);
return true;
case ConfigureNotify:{