aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
authorKostas Nakos2007-11-13 19:49:01 +0000
committerKostas Nakos2007-11-13 19:49:01 +0000
commit4993a2cb75c60e0080db7ad169f01aadfe57802f (patch)
treee292c651d1394c7e49601392e532c16a8b13edf6 /backends/platform
parentd66e4901ed5a04a3328e72f76546a7d3fbd807eb (diff)
downloadscummvm-rg350-4993a2cb75c60e0080db7ad169f01aadfe57802f.tar.gz
scummvm-rg350-4993a2cb75c60e0080db7ad169f01aadfe57802f.tar.bz2
scummvm-rg350-4993a2cb75c60e0080db7ad169f01aadfe57802f.zip
got rid of the /evil/ monkeykeyboard code :-) (see also rev. 29495)
svn-id: r29498
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/wince/wince-sdl.cpp119
-rw-r--r--backends/platform/wince/wince-sdl.h2
2 files changed, 44 insertions, 77 deletions
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index 31d8d9360d..3de8762864 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -40,18 +40,11 @@
#include "backends/timer/default/default-timer.h"
-// FIXME: The following #include is necessary for the evil _monkeyKeyboard hack.
-// Fingolfin says: It would be a lot better to get this resolved in a cleaner way.
-// E.g. by using setFeatureState in the SCUMM engine in the appropriate place.
-// Even an "#ifdef WINCE" in the SCUMM engine would probably be nicer than this :/
-#include "engines/scumm/scumm.h"
-
-#include "backends/platform/wince/resource.h"
-
#include "gui/Actions.h"
#include "gui/KeysDialog.h"
#include "gui/message.h"
+#include "backends/platform/wince/resource.h"
#include "backends/platform/wince/CEActionsPocket.h"
#include "backends/platform/wince/CEActionsSmartphone.h"
#include "backends/platform/wince/CEgui/ItemAction.h"
@@ -467,7 +460,7 @@ OSystem_WINCE3::OSystem_WINCE3() : OSystem_SDL(),
_orientationLandscape(0), _newOrientation(0), _panelInitialized(false),
_panelVisible(true), _panelStateForced(false), _forceHideMouse(false), _unfilteredkeys(false),
_freeLook(false), _forcePanelInvisible(false), _toolbarHighDrawn(false), _zoomUp(false), _zoomDown(false),
- _scalersChanged(false), _monkeyKeyboard(false), _lastKeyPressed(0), _tapTime(0),
+ _scalersChanged(false), _lastKeyPressed(0), _tapTime(0),
_saveToolbarState(false), _saveActiveToolbar(NAME_MAIN_PANEL), _rbutton(false), _hasfocus(true),
_usesEmulatedMouse(false), _mouseBackupOld(NULL), _mouseBackupToolbar(NULL), _mouseBackupDim(0)
{
@@ -948,58 +941,58 @@ bool OSystem_WINCE3::getFeatureState(Feature f) {
}
void OSystem_WINCE3::check_mappings() {
- CEActionsPocket *instance;
+ CEActionsPocket *instance;
- Common::String gameid(ConfMan.get("gameid"));
+ Common::String gameid(ConfMan.get("gameid"));
- if (gameid.empty() || GUI_Actions::Instance()->initialized())
- return;
+ if (gameid.empty() || GUI_Actions::Instance()->initialized())
+ return;
- GUI_Actions::Instance()->initInstanceGame();
- instance = (CEActionsPocket*)GUI_Actions::Instance();
-
- // Some games need to map the right click button, signal it here if it wasn't done
- if (instance->needsRightClickMapping()) {
- GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map right click action");
- while (!instance->getMapping(POCKET_ACTION_RIGHTCLICK)) {
- keysDialog->runModal();
- if (!instance->getMapping(POCKET_ACTION_RIGHTCLICK)) {
- GUI::MessageDialog alert("You must map a key to the 'Right Click' action to play this game");
- alert.runModal();
- }
- }
- delete keysDialog;
- }
+ GUI_Actions::Instance()->initInstanceGame();
+ instance = (CEActionsPocket*)GUI_Actions::Instance();
- // Map the "hide toolbar" action if needed
- if (instance->needsHideToolbarMapping()) {
- GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map hide toolbar action");
- while (!instance->getMapping(POCKET_ACTION_HIDE)) {
- keysDialog->runModal();
- if (!instance->getMapping(POCKET_ACTION_HIDE)) {
- GUI::MessageDialog alert("You must map a key to the 'Hide toolbar' action to play this game");
- alert.runModal();
- }
+ // Some games need to map the right click button, signal it here if it wasn't done
+ if (instance->needsRightClickMapping()) {
+ GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map right click action");
+ while (!instance->getMapping(POCKET_ACTION_RIGHTCLICK)) {
+ keysDialog->runModal();
+ if (!instance->getMapping(POCKET_ACTION_RIGHTCLICK)) {
+ GUI::MessageDialog alert("You must map a key to the 'Right Click' action to play this game");
+ alert.runModal();
}
- delete keysDialog;
}
+ delete keysDialog;
+ }
- // Map the "zoom" actions if needed
- if (instance->needsZoomMapping()) {
- GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map Zoom Up action (optional)");
- keysDialog->runModal();
- delete keysDialog;
- keysDialog = new GUI::KeysDialog("Map Zoom Down action (optional)");
+ // Map the "hide toolbar" action if needed
+ if (instance->needsHideToolbarMapping()) {
+ GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map hide toolbar action");
+ while (!instance->getMapping(POCKET_ACTION_HIDE)) {
keysDialog->runModal();
- delete keysDialog;
+ if (!instance->getMapping(POCKET_ACTION_HIDE)) {
+ GUI::MessageDialog alert("You must map a key to the 'Hide toolbar' action to play this game");
+ alert.runModal();
+ }
}
+ delete keysDialog;
+ }
- // Extra warning for Zak Mc Kracken
- if (strncmp(gameid.c_str(), "zak", 3) == 0 &&
- !GUI_Actions::Instance()->getMapping(POCKET_ACTION_HIDE)) {
- GUI::MessageDialog alert("Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory");
- alert.runModal();
- }
+ // Map the "zoom" actions if needed
+ if (instance->needsZoomMapping()) {
+ GUI::KeysDialog *keysDialog = new GUI::KeysDialog("Map Zoom Up action (optional)");
+ keysDialog->runModal();
+ delete keysDialog;
+ keysDialog = new GUI::KeysDialog("Map Zoom Down action (optional)");
+ keysDialog->runModal();
+ delete keysDialog;
+ }
+
+ // Extra warning for Zak Mc Kracken
+ if (strncmp(gameid.c_str(), "zak", 3) == 0 &&
+ !GUI_Actions::Instance()->getMapping(POCKET_ACTION_HIDE)) {
+ GUI::MessageDialog alert("Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory");
+ alert.runModal();
+ }
}
@@ -1037,12 +1030,6 @@ void OSystem_WINCE3::update_game_settings() {
_toolbarHandler.setActive(NAME_MAIN_PANEL);
_toolbarHandler.setVisible(true);
- // Keyboard is active for Monkey 1 or 2 initial copy-protection
- if (strncmp(gameid.c_str(), "monkey", 6) == 0) {
- _monkeyKeyboard = true;
- _toolbarHandler.setActive(NAME_PANEL_KEYBOARD);
- }
-
if (_mode == GFX_NORMAL && ConfMan.hasKey("landscape") && ConfMan.getInt("landscape")) {
setGraphicsMode(GFX_NORMAL);
hotswapGFXMode();
@@ -1514,22 +1501,6 @@ void OSystem_WINCE3::hotswapGFXMode() {
// _modeChanged = true;
}
-void OSystem_WINCE3::update_keyboard() {
- // Update the forced keyboard for Monkey Island copy protection
- if (_monkeyKeyboard && !_isSmartphone)
- if (!_panelVisible || _toolbarHandler.activeName() != NAME_PANEL_KEYBOARD)
- swap_panel();
-#if !defined(DISABLE_SCUMM) && !defined(DYNAMIC_MODULES)
- // This REALLY, REALLY has to go. Check out Fingolfin's comment at the top.
- if (_monkeyKeyboard && Scumm::g_scumm->VAR_ROOM != 0xff && Scumm::g_scumm && Scumm::g_scumm->VAR(Scumm::g_scumm->VAR_ROOM) != 108 &&
- Scumm::g_scumm->VAR(Scumm::g_scumm->VAR_ROOM) != 90) {
- // Switch back to the normal panel now that the keyboard is not used anymore
- _monkeyKeyboard = false;
- _toolbarHandler.setActive(NAME_MAIN_PANEL);
- }
-#endif
-}
-
void OSystem_WINCE3::internUpdateScreen() {
SDL_Surface *srcSurf, *origSurf;
static bool old_overlayVisible = false;
@@ -1544,8 +1515,6 @@ void OSystem_WINCE3::internUpdateScreen() {
return;
}
- update_keyboard();
-
// If the shake position changed, fill the dirty area with blackness
if (_currentShakePos != _newShakePos) {
SDL_Rect blackrect = {0, 0, _screenWidth * _scaleFactorXm / _scaleFactorXd, _newShakePos * _scaleFactorYm / _scaleFactorYd};
diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h
index 09960e3116..5ce94401f5 100644
--- a/backends/platform/wince/wince-sdl.h
+++ b/backends/platform/wince/wince-sdl.h
@@ -166,7 +166,6 @@ private:
void create_toolbar();
void update_game_settings();
void check_mappings();
- void update_keyboard();
void get_sample_rate();
void retrieve_mouse_location(int &x, int &y);
@@ -189,7 +188,6 @@ private:
bool _panelInitialized; // only initialize the toolbar once
- bool _monkeyKeyboard; // forced keyboard for Monkey Island copy protection
bool _unfilteredkeys; // discard key mapping temporarily (agi pred. dialog)
static bool _soundMaster; // turn off sound after all calculations
// static since needed by the SDL callback