aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Persson2005-07-05 20:51:54 +0000
committerLars Persson2005-07-05 20:51:54 +0000
commitcaf6151bba4f0bc6956a45173f49cb056cf59bb4 (patch)
treec08780115f0e67c8771dc2f98544d6f96550970c
parenta5af0165ba7fb93da647622336e7c8c7b429ce00 (diff)
downloadscummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.tar.gz
scummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.tar.bz2
scummvm-rg350-caf6151bba4f0bc6956a45173f49cb056cf59bb4.zip
Last modifications for Actions to WinCE.
svn-id: r18500
-rw-r--r--backends/sdl/graphics.cpp2
-rw-r--r--backends/wince/CEActions.cpp151
-rw-r--r--backends/wince/CEActions.h83
-rw-r--r--backends/wince/CEActionsPocket.cpp6
-rw-r--r--backends/wince/CEActionsSmartphone.cpp6
-rw-r--r--base/engine.cpp2
6 files changed, 12 insertions, 238 deletions
diff --git a/backends/sdl/graphics.cpp b/backends/sdl/graphics.cpp
index f1f84e63ec..82e431e4eb 100644
--- a/backends/sdl/graphics.cpp
+++ b/backends/sdl/graphics.cpp
@@ -513,7 +513,7 @@ void OSystem_SDL::internUpdateScreen() {
ScalerProc *scalerProc;
int scale1, scale2;
-#ifdef DEBUG // definitions not available for non-DEBUG here. (needed this to compile in SYMBIAN32 & linux?)
+#if defined (DEBUG) && ! defined(_WIN32_WCE) // definitions not available for non-DEBUG here. (needed this to compile in SYMBIAN32 & linux?)
assert(_hwscreen != NULL);
assert(_hwscreen->map->sw_data != NULL);
#endif
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
diff --git a/base/engine.cpp b/base/engine.cpp
index 43e51b54e1..9560f48b41 100644
--- a/base/engine.cpp
+++ b/base/engine.cpp
@@ -86,7 +86,7 @@ void Engine::initCommonGFX(GameDetector &detector) {
}
void Engine::checkCD() {
-#ifdef WIN32
+#if defined (WIN32) && !defined(_WIN32_WCE)
// It is a known bug under Windows that games that play CD audio cause
// ScummVM to crash if the data files are read from the same CD. Check
// if this appears to be the case and issue a warning.