diff options
author | Lars Persson | 2005-07-05 20:51:54 +0000 |
---|---|---|
committer | Lars Persson | 2005-07-05 20:51:54 +0000 |
commit | caf6151bba4f0bc6956a45173f49cb056cf59bb4 (patch) | |
tree | c08780115f0e67c8771dc2f98544d6f96550970c /backends/wince | |
parent | a5af0165ba7fb93da647622336e7c8c7b429ce00 (diff) | |
download | scummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.tar.gz scummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.tar.bz2 scummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.zip |
Last modifications for Actions to WinCE.
svn-id: r18500
Diffstat (limited to 'backends/wince')
-rw-r--r-- | backends/wince/CEActions.cpp | 151 | ||||
-rw-r--r-- | backends/wince/CEActions.h | 83 | ||||
-rw-r--r-- | backends/wince/CEActionsPocket.cpp | 6 | ||||
-rw-r--r-- | backends/wince/CEActionsSmartphone.cpp | 6 |
4 files changed, 10 insertions, 236 deletions
diff --git a/backends/wince/CEActions.cpp b/backends/wince/CEActions.cpp deleted file mode 100644 index 2e7d9fd4b8..0000000000 --- a/backends/wince/CEActions.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001-2005 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Header$ - * - */ - -#include "common/stdafx.h" -#include "CEActions.h" -#include "CEActionsPocket.h" -#include "CEActionsSmartphone.h" - -#include "gui/message.h" - -#include "scumm/scumm.h" - -#include "common/config-manager.h" - - -CEActions* CEActions::Instance() { - return _instance; -} - -CEActions::CEActions(GameDetector &detector) : - _detector(&detector), _mapping_active(false), _initialized(false) -{ -} - - -CEActions::~CEActions() { -} - -void CEActions::init(GameDetector &detector) { - if (!CEDevice::hasSmartphoneResolution()) - CEActionsPocket::init(detector); -//#ifdef WIN32_PLATFORM_WFSP - else - CEActionsSmartphone::init(detector); -//#endif -} - -void CEActions::initInstanceMain(OSystem *mainSystem) { - _mainSystem = mainSystem; -} - -void CEActions::initInstanceGame() { - _instance->_initialized = true; -} - - -bool CEActions::initialized() { - return _initialized; -} - -bool CEActions::isActive(ActionType action) { - return false; -} - -bool CEActions::isEnabled(ActionType action) { - return _action_enabled[action]; -} - -void CEActions::beginMapping(bool start) { - _mapping_active = start; -} - -bool CEActions::mappingActive() { - return _mapping_active; -} - -bool CEActions::performMapped(unsigned int keyCode, bool pushed) { - int i; - - for (i=0; i<size(); i++) { - if (_action_mapping[i] == keyCode && _action_enabled[i]) - return perform((ActionType)i, pushed); - } - - return false; -} - -bool CEActions::loadMapping() { - const char *tempo; - int current_version; - int i; - current_version = ConfMan.getInt("action_mapping_version", domain()); - if (current_version != version()) - return false; - tempo = ConfMan.get("action_mapping", domain()).c_str(); - if (tempo && strlen(tempo)) { - for (i=0; i<size(); i++) { - char x[6]; - int j; - memset(x, 0, sizeof(x)); - memcpy(x, tempo + 5 * i, 4); - sscanf(x, "%x", &j); - _action_mapping[i] = j; - } - return true; - } - else - return false; -} - -bool CEActions::saveMapping() { - char tempo[200]; - int i; - tempo[0] = '\0'; - ConfMan.set("action_mapping_version", version(), domain()); - for (i=0; i<size(); i++) { - char x[4]; - sprintf(x, "%.4x ", _action_mapping[i]); - strcat(tempo, x); - } - ConfMan.set("action_mapping", tempo, domain()); - ConfMan.flushToDisk(); - return true; -} - -unsigned int CEActions::getMapping(ActionType action) { - return _action_mapping[action]; -} - - -void CEActions::setMapping(ActionType action, unsigned int keyCode) { - int i; - - for (i=0; i<size(); i++) { - if (_action_mapping[i] == keyCode) - _action_mapping[i] = 0; - } - - _action_mapping[action] = keyCode; -} - - -CEActions *CEActions::_instance = NULL; diff --git a/backends/wince/CEActions.h b/backends/wince/CEActions.h deleted file mode 100644 index fddd935ba6..0000000000 --- a/backends/wince/CEActions.h +++ /dev/null @@ -1,83 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001-2005 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Header$ - * - */ - -#ifndef CEACTIONS -#define CEACTIONS - -#include "common/stdafx.h" -#include "common/scummsys.h" -#include "common/system.h" - - -#include "base/gameDetector.h" -#include "wince-sdl.h" -#include "Key.h" - -#define MAX_ACTIONS 20 - -typedef int ActionType; - -class OSystem_WINCE3; - -class CEActions { - public: - static CEActions* Instance(); - static void init(GameDetector &detector); - virtual void initInstanceMain(OSystem *mainSystem); - virtual void initInstanceGame(); - bool initialized(); - - // Actions - virtual bool perform(ActionType action, bool pushed = true) = 0; - bool isActive(ActionType action); - bool isEnabled(ActionType action); - virtual String actionName(ActionType action) = 0; - virtual int size() = 0; - - // Mapping - void beginMapping(bool start); - bool mappingActive(); - bool performMapped(unsigned int keyCode, bool pushed); - bool loadMapping(); - bool saveMapping(); - unsigned int getMapping(ActionType action); - void setMapping(ActionType action, unsigned int keyCode); - - // Action domain - virtual String domain() = 0; - virtual int version() = 0; - - virtual ~CEActions(); - - protected: - CEActions(GameDetector &detector); - static CEActions* _instance; - OSystem_WINCE3 *_mainSystem; - GameDetector *_detector; - Key _key_action[MAX_ACTIONS + 1]; - bool _action_active[MAX_ACTIONS + 1]; - bool _action_enabled[MAX_ACTIONS + 1]; - unsigned int _action_mapping[MAX_ACTIONS + 1]; - bool _mapping_active; - bool _initialized; - }; - -#endif
\ No newline at end of file diff --git a/backends/wince/CEActionsPocket.cpp b/backends/wince/CEActionsPocket.cpp index 6c55be3fa5..35776fcadc 100644 --- a/backends/wince/CEActionsPocket.cpp +++ b/backends/wince/CEActionsPocket.cpp @@ -30,6 +30,10 @@ #include "common/config-manager.h" +#ifdef _WIN32_WCE +#define KEY_ALL_SKIP 3457 +#endif + const String pocketActionNames[] = { "Pause", "Save", @@ -137,7 +141,7 @@ void CEActionsPocket::initInstanceGame() { if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob) _key_action[POCKET_ACTION_SKIP].setAscii(VK_ESCAPE); else - _key_action[POCKET_ACTION_SKIP].setAscii(Scumm::KEY_ALL_SKIP); + _key_action[POCKET_ACTION_SKIP].setAscii(KEY_ALL_SKIP); // Hide _action_enabled[POCKET_ACTION_HIDE] = true; // Keyboard diff --git a/backends/wince/CEActionsSmartphone.cpp b/backends/wince/CEActionsSmartphone.cpp index c8938b8859..04048bc396 100644 --- a/backends/wince/CEActionsSmartphone.cpp +++ b/backends/wince/CEActionsSmartphone.cpp @@ -33,6 +33,10 @@ #include "common/config-manager.h" +#ifdef _WIN32_WCE +#define KEY_ALL_SKIP 3457 +#endif + const String smartphoneActionNames[] = { "Up", "Down", @@ -137,7 +141,7 @@ void CEActionsSmartphone::initInstanceGame() { if (is_simon || is_sky || is_gob) _key_action[SMARTPHONE_ACTION_SKIP].setAscii(VK_ESCAPE); else - _key_action[SMARTPHONE_ACTION_SKIP].setAscii(Scumm::KEY_ALL_SKIP); + _key_action[SMARTPHONE_ACTION_SKIP].setAscii(KEY_ALL_SKIP); // Zone _action_enabled[SMARTPHONE_ACTION_ZONE] = true; // FT Cheat |