diff options
Diffstat (limited to 'backends/platform/symbian/src')
-rw-r--r-- | backends/platform/symbian/src/SymbianActions.cpp | 20 | ||||
-rw-r--r-- | backends/platform/symbian/src/SymbianOS.cpp | 33 | ||||
-rw-r--r-- | backends/platform/symbian/src/SymbianOS.h | 3 | ||||
-rw-r--r-- | backends/platform/symbian/src/main_features.inl | 39 | ||||
-rw-r--r-- | backends/platform/symbian/src/portdefs.h | 1 |
5 files changed, 68 insertions, 28 deletions
diff --git a/backends/platform/symbian/src/SymbianActions.cpp b/backends/platform/symbian/src/SymbianActions.cpp index 8fc35e9f8d..60e402632f 100644 --- a/backends/platform/symbian/src/SymbianActions.cpp +++ b/backends/platform/symbian/src/SymbianActions.cpp @@ -129,17 +129,20 @@ void SymbianActions::initInstanceGame() { bool is_simon = (strncmp(gameid.c_str(), "simon", 5) == 0); bool is_sword1 = (gameid == "sword1"); bool is_sword2 = (strcmp(gameid.c_str(), "sword2") == 0); - bool is_sky = (strncmp(gameid.c_str(), "sky", 3) == 0); - bool is_saga = (gameid == "saga"); + bool is_queen = (gameid == "queen"); + bool is_sky = (gameid == "sky"); bool is_comi = (strncmp(gameid.c_str(), "comi", 4) == 0); - bool is_queen = (strncmp(gameid.c_str(), "queen", 5) == 0); bool is_gob = (strncmp(gameid.c_str(), "gob", 3) == 0); - bool is_kyra = (gameid == "kyra1"); + bool is_saga = (gameid == "saga"); + bool is_kyra = (strncmp(gameid.c_str(), "kyra",4) == 0); bool is_samnmax = (gameid == "samnmax"); bool is_cine = (gameid == "cine"); bool is_touche = (gameid == "touche"); bool is_agi = (gameid == "agi"); bool is_parallaction = (gameid == "parallaction"); + bool is_lure = (gameid == "lure"); + bool is_feeble = (gameid == "feeble"); + bool is_drascula = (strncmp(gameid.c_str(), "drascula",8) == 0); Actions::initInstanceGame(); @@ -150,16 +153,16 @@ void SymbianActions::initInstanceGame() { // Save - if (is_simon || is_sword2 || is_gob || is_kyra || is_touche) + if (is_simon || is_sword2 || is_gob || is_kyra || is_touche || is_feeble) _action_enabled[ACTION_SAVE] = false; else { _action_enabled[ACTION_SAVE] = true; if (is_queen) { - _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); // F1 key for FOTAQ + _key_action[ACTION_SAVE].setKey(Common::ASCII_F1, Common::KEYCODE_F1); // F1 key for FOTAQ } else if (is_sky) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); - } else if (is_cine) { + } else if (is_cine || is_drascula) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F10, Common::KEYCODE_F10); // F10 } else if (is_agi) { _key_action[ACTION_SAVE].setKey(Common::ASCII_ESCAPE, Common::KEYCODE_ESCAPE); @@ -175,7 +178,8 @@ void SymbianActions::initInstanceGame() { // Skip text if (!is_cine && !is_parallaction) _action_enabled[ACTION_SKIP_TEXT] = true; - if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob || is_saga || is_kyra || is_touche) + if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob || + is_saga || is_kyra || is_touche || is_lure || is_feeble || is_drascula) _key_action[ACTION_SKIP_TEXT].setKey(Common::KEYCODE_ESCAPE, Common::KEYCODE_ESCAPE); // Escape key else { _key_action[ACTION_SKIP_TEXT].setKey(SDLK_PERIOD); diff --git a/backends/platform/symbian/src/SymbianOS.cpp b/backends/platform/symbian/src/SymbianOS.cpp index e3a4027d79..0ce44d1704 100644 --- a/backends/platform/symbian/src/SymbianOS.cpp +++ b/backends/platform/symbian/src/SymbianOS.cpp @@ -30,6 +30,7 @@ #include "backends/platform/symbian/src/SymbianActions.h" #include "common/config-manager.h" #include "common/events.h" +#include "common/file.h" #include "gui/Actions.h" #include "gui/Key.h" #include "gui/message.h" @@ -42,6 +43,10 @@ #define SAMPLES_PER_SEC 16000 #endif + +#define DEFAULT_CONFIG_FILE "scummvm.ini" + + #define KInputBufferLength 128 // Symbian libc file functionality in order to provide shared file handles struct TSymbianFileEntry { @@ -122,6 +127,34 @@ FilesystemFactory *OSystem_SDL_Symbian::getFilesystemFactory() { return &SymbianFilesystemFactory::instance(); } +static Common::String getDefaultConfigFileName() { + char configFile[MAXPATHLEN]; + strcpy(configFile, Symbian::GetExecutablePath()); + strcat(configFile, DEFAULT_CONFIG_FILE); + return configFile; +} + +Common::SeekableReadStream *OSystem_SDL_Symbian::openConfigFileForReading() { + Common::File *confFile = new Common::File(); + assert(confFile); + if (!confFile->open(getDefaultConfigFileName())) { + delete confFile; + confFile = 0; + } + return confFile; +} + +Common::WriteStream *OSystem_SDL_Symbian::openConfigFileForWriting() { + Common::DumpFile *confFile = new Common::DumpFile(); + assert(confFile); + if (!confFile->open(getDefaultConfigFileName())) { + delete confFile; + confFile = 0; + } + return confFile; +} + + OSystem_SDL_Symbian::zoneDesc OSystem_SDL_Symbian::_zones[TOTAL_ZONES] = { { 0, 0, 320, 145 }, { 0, 145, 150, 55 }, diff --git a/backends/platform/symbian/src/SymbianOS.h b/backends/platform/symbian/src/SymbianOS.h index 71d24f6286..68a6fb492f 100644 --- a/backends/platform/symbian/src/SymbianOS.h +++ b/backends/platform/symbian/src/SymbianOS.h @@ -71,6 +71,9 @@ protected: static void symbianMixCallback(void *s, byte *samples, int len); virtual FilesystemFactory *getFilesystemFactory(); + + virtual Common::SeekableReadStream *openConfigFileForReading(); + virtual Common::WriteStream *openConfigFileForWriting(); public: // vibration support #ifdef USE_VIBRA_SE_PXXX diff --git a/backends/platform/symbian/src/main_features.inl b/backends/platform/symbian/src/main_features.inl index f572ddb3dd..30bbbea52c 100644 --- a/backends/platform/symbian/src/main_features.inl +++ b/backends/platform/symbian/src/main_features.inl @@ -27,62 +27,61 @@ // we want a list of supported engines visible in the program, // because we also release special builds with only one engine -#ifndef DISABLE_SCUMM +#ifdef ENABLE_SCUMM "SCUMM " #endif -#ifndef DISABLE_AGOS +#ifdef ENABLE_AGOS "AGOS " #endif -#ifndef DISABLE_SKY +#ifdef ENABLE_SKY "Sky " #endif -#ifndef DISABLE_QUEEN +#ifdef ENABLE_QUEEN "Queen " #endif -#ifndef DISABLE_GOB +#ifdef ENABLE_GOB "Gob " #endif -#ifndef DISABLE_SAGA +#ifdef ENABLE_SAGA "Saga " #endif -#ifndef DISABLE_KYRA +#ifdef ENABLE_KYRA "Kyra " #endif -#ifndef DISABLE_SWORD1 +#ifdef ENABLE_SWORD1 "Sword1 " #endif -#ifndef DISABLE_SWORD2 +#ifdef ENABLE_SWORD2 "Sword2 " #endif -#ifndef DISABLE_CINE +#ifdef ENABLE_CINE "Cine " #endif -#ifndef DISABLE_LURE +#ifdef ENABLE_LURE "Lure " #endif -#ifndef DISABLE_AGI +#ifdef ENABLE_AGI "AGI " #endif -#ifndef DISABLE_TOUCHE +#ifdef ENABLE_TOUCHE "Touche " #endif -#ifndef DISABLE_DRASCULA +#ifdef ENABLE_DRASCULA "Drascula " #endif -#ifndef DISABLE_IGOR +#ifdef ENABLE_IGOR "Igor " #endif -#ifndef DISABLE_PARALLACTION +#ifdef ENABLE_PARALLACTION "Parallaction " #endif -#ifndef DISABLE_CRUISE +#ifdef ENABLE_CRUISE "Cruise " #endif -#ifndef DISABLE_MADE +#ifdef ENABLE_MADE "MADE " #endif - -#ifndef DISABLE_M4 +#ifdef ENABLE_M4 "M4 " #endif diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h index 06a4cf374c..4577824b33 100644 --- a/backends/platform/symbian/src/portdefs.h +++ b/backends/platform/symbian/src/portdefs.h @@ -157,5 +157,6 @@ void inline *scumm_bsearch(const void *key, const void *base, size_t nmemb, size namespace Symbian { extern void FatalError(const char *msg); extern char* GetExecutablePath(); +#define DYNAMIC_MODULES 1 } #endif |