aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/wince/CEActionsPocket.cpp11
-rw-r--r--backends/platform/wince/CEActionsSmartphone.cpp11
-rw-r--r--backends/platform/wince/README-WinCE.txt6
-rw-r--r--backends/platform/wince/wince-sdl.cpp27
-rw-r--r--backends/platform/wince/wince-sdl.h1
5 files changed, 47 insertions, 9 deletions
diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp
index 194f855e98..5980a41caa 100644
--- a/backends/platform/wince/CEActionsPocket.cpp
+++ b/backends/platform/wince/CEActionsPocket.cpp
@@ -215,6 +215,8 @@ void CEActionsPocket::initInstanceGame() {
_key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
else if (gameid == "atlantis")
_key_action[POCKET_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+ else if (is_simon)
+ _key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
else
_key_action[POCKET_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
// Key bind method
@@ -268,6 +270,15 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
else
_key_action[action].setKey(SDLK_s);
}
+ if (action == POCKET_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+ // In several AGI games (for example SQ2) it is needed to press F10 to exit from
+ // a screen. But we still want be able to skip normally with the skip button.
+ // Because of this, we inject a F10 keystroke here (this works and doesn't seem
+ // to have side-effects)
+ _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+ EventsBuffer::simulateKey(&_key_action[action], true);
+ _key_action[action].setKey(KEY_ALL_SKIP);
+ }
EventsBuffer::simulateKey(&_key_action[action], true);
return true;
case POCKET_ACTION_KEYBOARD:
diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp
index c6456d3eb5..2cce288323 100644
--- a/backends/platform/wince/CEActionsSmartphone.cpp
+++ b/backends/platform/wince/CEActionsSmartphone.cpp
@@ -181,6 +181,8 @@ void CEActionsSmartphone::initInstanceGame() {
_key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
else if (gameid == "atlantis")
_key_action[SMARTPHONE_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+ else if (is_simon)
+ _key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
else
_key_action[SMARTPHONE_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
// Bind keys
@@ -232,6 +234,15 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
else
_key_action[action].setKey(SDLK_s);
}
+ if (action == SMARTPHONE_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+ // In several AGI games (for example SQ2) it is needed to press F10 to exit from
+ // a screen. But we still want be able to skip normally with the skip button.
+ // Because of this, we inject a F10 keystroke here (this works and doesn't seem
+ // to have side-effects)
+ _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+ EventsBuffer::simulateKey(&_key_action[action], true);
+ _key_action[action].setKey(KEY_ALL_SKIP);
+ }
EventsBuffer::simulateKey(&_key_action[action], true);
return true;
case SMARTPHONE_ACTION_RIGHTCLICK:
diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index 87f6e78ffe..60bcf710bb 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -1,5 +1,5 @@
ScummVM Windows CE FAQ
-Last updated: 2011-07-14
+Last updated: 2011-07-20
Release version: x.x.x
------------------------------------------------------------------------
@@ -9,6 +9,10 @@ x.x.x:
- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as
most devices today are fast enough to handle this. It's still possible to set
this to "false" if you have a slower device.
+- Fix for TeenAgent & Hugo engines (both weren't running at all, crashed right
+ at the beginning)
+- Replaced the game mass-adding functionality with the functionality used on all
+ other platforms. It now shows progress while searching for games.
1.3.1:
- Fix for Normal2xAspect scaler which was causing screen update issues in some
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index ec222c6fc1..1abc3cb350 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -42,6 +42,7 @@
#include "audio/mixer_intern.h"
#include "audio/fmopl.h"
+#include "backends/mutex/sdl/sdl-mutex.h"
#include "backends/timer/sdl/sdl-timer.h"
#include "gui/Actions.h"
@@ -379,14 +380,6 @@ void OSystem_WINCE3::initBackend() {
((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager);
- // Create the timer (but remove the timer manager from the SDL backend first).
- // CE SDL does not support multiple timers (SDL_AddTimer).
- // We work around this by using the SetTimer function, since we only use
- // one timer in scummvm (for the time being)
- delete _timerManager;
- _timerManager = new DefaultTimerManager();
- SDL_SetTimer(10, &timer_handler_wrapper);
-
// Call parent implementation of this method
OSystem_SDL::initBackend();
@@ -546,6 +539,24 @@ void OSystem_WINCE3::initSDL() {
}
}
+void OSystem_WINCE3::init() {
+ // Create SdlMutexManager instance as the TimerManager relies on the
+ // MutexManager being already initialized
+ if (_mutexManager == 0)
+ _mutexManager = new SdlMutexManager();
+
+ // Create the timer. CE SDL does not support multiple timers (SDL_AddTimer).
+ // We work around this by using the SetTimer function, since we only use
+ // one timer in scummvm (for the time being)
+ if (_timerManager == 0) {
+ _timerManager = new DefaultTimerManager();
+ SDL_SetTimer(10, &timer_handler_wrapper);
+ }
+
+ // Call parent implementation of this method
+ OSystem_SDL::init();
+}
+
void OSystem_WINCE3::quit() {
fclose(stdout_file);
fclose(stderr_file);
diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h
index 481956c19a..b4f323c9e2 100644
--- a/backends/platform/wince/wince-sdl.h
+++ b/backends/platform/wince/wince-sdl.h
@@ -52,6 +52,7 @@ public:
void initBackend();
// Overloaded from SDL backend
+ void init();
void quit();
virtual Common::String getSystemLanguage() const;