aboutsummaryrefslogtreecommitdiff
path: root/backends/epoc
diff options
context:
space:
mode:
Diffstat (limited to 'backends/epoc')
-rw-r--r--backends/epoc/ScummApp.cpp3
-rw-r--r--backends/epoc/ScummApp.h4
-rw-r--r--backends/epoc/SymbianActions.cpp190
-rw-r--r--backends/epoc/SymbianActions.h77
-rw-r--r--backends/epoc/SymbianOS.cpp167
-rw-r--r--backends/epoc/SymbianOS.h32
-rw-r--r--backends/epoc/build/S60/BLD.INF1
-rw-r--r--backends/epoc/build/S60/EScummVM_S60.mmp24
-rw-r--r--backends/epoc/build/S60/EScummVM_S60_EXE.mmp95
-rw-r--r--backends/epoc/build/S60/ScummVMApp.cpp1
-rw-r--r--backends/epoc/build/S80/EScummVM_S80.mmp4
-rw-r--r--backends/epoc/build/S90/EScummvm_S90.mmp4
-rw-r--r--backends/epoc/build/UIQ/EScummVM.rss19
-rw-r--r--backends/epoc/build/UIQ/EScummVM_UIQ.mmp10
-rw-r--r--backends/epoc/build/scummvm_base.mmp1
15 files changed, 594 insertions, 38 deletions
diff --git a/backends/epoc/ScummApp.cpp b/backends/epoc/ScummApp.cpp
index f4caa7ea33..408d52550f 100644
--- a/backends/epoc/ScummApp.cpp
+++ b/backends/epoc/ScummApp.cpp
@@ -29,7 +29,8 @@ extern "C" int _chkstk(int /*a*/) {
return 1;
}
#endif
-#if !defined (__AVKON_ELAF__) && !defined (S60)
+
+#ifdef EPOC_AS_APP
// this function is called by Symbian to deliver the new CApaApplication object
EXPORT_C CApaApplication* NewApplication() {
// Return pointer to newly created CQMApp
diff --git a/backends/epoc/ScummApp.h b/backends/epoc/ScummApp.h
index af44952b16..eab91c736a 100644
--- a/backends/epoc/ScummApp.h
+++ b/backends/epoc/ScummApp.h
@@ -27,7 +27,7 @@
#include <eikapp.h>
#include <e32base.h>
#include <sdlapp.h>
-#if!defined (__AVKON_ELAF__) && !defined(S60)
+#ifdef EPOC_AS_APP
#include "ECompXL.h"
#endif
@@ -37,7 +37,7 @@ public:
~CScummApp();
TUid AppDllUid() const;
-#if!defined (__AVKON_ELAF__) && !defined(S60)
+#ifdef EPOC_AS_APP
TECompXL iECompXL;
#endif
};
diff --git a/backends/epoc/SymbianActions.cpp b/backends/epoc/SymbianActions.cpp
new file mode 100644
index 0000000000..6ec2ed9484
--- /dev/null
+++ b/backends/epoc/SymbianActions.cpp
@@ -0,0 +1,190 @@
+/* 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 "stdafx.h"
+#include "SymbianActions.h"
+
+#include "gui/message.h"
+#include "scumm/scumm.h"
+#include "common/config-manager.h"
+
+// this next one needs to be replaced with Symbian specific include(s)
+//#include "EventsBuffer.h" for //EventsBuffer::simulateKey()
+#include <sdl.h>
+// and use the correct Symbian calls for: //_mainSystem->fcns()
+
+namespace GUI {
+
+// SumthinWicked says: we either split our Actions like WinCE did with Pocket/Smartphone
+// or we put them in this file separated by #ifdefs, this one is up to you, AnotherGuest :)
+
+const Common::String actionNames[] = {
+ "Up",
+ "Down",
+ "Left",
+ "Right",
+ "Left Click",
+ "Right Click",
+ "Save",
+ "Skip",
+ "Zone",
+ "FT Cheat",
+ "Swap character",
+ "Skip text",
+ "Pause",
+ "Quit"
+};
+
+#ifdef UIQ
+static const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, 0x11a, 0x11b, SDLK_MENU, SDLK_PAGEDOWN, 0, 0,SDLK_PAGEUP,0,0};
+#elif defined (S60)
+const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, 0, 0, '*', '#', '0',0,0,0,0,0};
+#else
+const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, 0x11a, 0x11b, SDLK_MENU, VK_ESCAPE, '9', 0,0,0,0};
+#endif
+// creator function according to Factory Pattern
+void SymbianActions::init(GameDetector &detector) {
+ _instance = new SymbianActions(detector);
+}
+
+
+Common::String SymbianActions::actionName(ActionType action) {
+ return actionNames[action];
+}
+
+int SymbianActions::size() {
+ return ACTION_LAST;
+}
+
+Common::String SymbianActions::domain() {
+ return "symbian";
+}
+
+int SymbianActions::version() {
+ return ACTION_VERSION;
+}
+
+SymbianActions::SymbianActions(GameDetector &detector) :
+ Actions(detector)
+{
+ int i;
+
+ for (i=0; i<ACTION_LAST; i++) {
+ _action_mapping[i] = ACTIONS_DEFAULT[i];
+ _action_enabled[i] = false;
+ }
+
+}
+
+void SymbianActions::initInstanceMain(OSystem *mainSystem) {
+ Actions::initInstanceMain(mainSystem);
+
+ // Mouse Up
+ _action_enabled[ACTION_UP] = true;
+
+ // Mouse Down
+ _action_enabled[ACTION_DOWN] = true;
+
+ // Mouse Left
+ _action_enabled[ACTION_LEFT] = true;
+
+ // Mouse Right
+ _action_enabled[ACTION_RIGHT] = true;
+
+ // Left Click
+ _action_enabled[ACTION_LEFTCLICK] = true;
+
+ // Right Click
+ _action_enabled[ACTION_RIGHTCLICK] = true;
+
+ // Skip
+ _action_enabled[ACTION_SKIP] = true;
+ _key_action[ACTION_SKIP].setAscii(SDLK_ESCAPE);
+}
+
+void SymbianActions::initInstanceGame() {
+ bool is_simon = (strncmp(_detector->_targetName.c_str(), "simon", 5) == 0);
+ bool is_sky = (_detector->_targetName == "sky");
+ bool is_queen = (_detector->_targetName == "queen");
+ bool is_gob = (strncmp(_detector->_targetName.c_str(), "gob", 3) == 0);
+
+ Actions::initInstanceGame();
+
+ // See if a right click mapping could be needed
+ if (is_sky || _detector->_targetName == "samnmax" || is_gob)
+ _right_click_needed = true;
+
+ // Initialize keys for different actions
+ // Save
+ if (is_simon || is_gob)
+ _action_enabled[ACTION_SAVE] = false;
+ else
+ if (is_queen) {
+ _action_enabled[ACTION_SAVE] = true;
+ _key_action[ACTION_SAVE].setAscii(SDLK_F1); // F1 key for FOTAQ or F5??!?
+ }
+ else
+ if (is_sky) {
+ _action_enabled[ACTION_SAVE] = true;
+ _key_action[ACTION_SAVE].setAscii(63);
+ }
+ else {
+ _action_enabled[ACTION_SAVE] = true;
+ _key_action[ACTION_SAVE].setAscii(SDLK_F5); // F5 key
+ }
+
+ // Swap character
+ _action_enabled[ACTION_SWAPCHAR] = true;
+ _key_action[ACTION_SWAPCHAR].setAscii('b'); // b
+
+ // Zone
+ _action_enabled[ACTION_ZONE] = true;
+
+ // FT Cheat
+ _action_enabled[ACTION_FT_CHEAT] = true;
+ _key_action[ACTION_FT_CHEAT].setAscii(86); // shift-V
+ // Skip text
+ _action_enabled[ACTION_SKIP_TEXT]=true;
+ if (is_queen) {
+ _key_action[ACTION_SKIP_TEXT].setAscii(SDLK_SPACE);
+ }
+ else {
+ _key_action[ACTION_SKIP_TEXT].setAscii(SDLK_PERIOD);
+ }
+
+ // Pause
+ _key_action[ACTION_PAUSE].setAscii(' ');
+ _action_enabled[ACTION_PAUSE] = true;
+
+ // Quit
+ _action_enabled[ACTION_QUIT] = true;
+}
+
+
+SymbianActions::~SymbianActions() {
+}
+
+bool SymbianActions::perform(ActionType action, bool pushed) {
+
+ return false;
+}
+
+} // namespace GUI
diff --git a/backends/epoc/SymbianActions.h b/backends/epoc/SymbianActions.h
new file mode 100644
index 0000000000..9e556a04af
--- /dev/null
+++ b/backends/epoc/SymbianActions.h
@@ -0,0 +1,77 @@
+/* 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 SYMBIANACTIONS_H
+#define SYMBIANACTIONS_H
+
+#include "common/stdafx.h"
+#include "common/scummsys.h"
+#include "common/system.h"
+#include "base/gameDetector.h"
+#include "gui/Key.h"
+#include "gui/Actions.h"
+//#include "sdl.h"
+
+namespace GUI {
+
+#define ACTION_VERSION 6
+
+enum actionType {
+ ACTION_UP = 0,
+ ACTION_DOWN,
+ ACTION_LEFT,
+ ACTION_RIGHT,
+ ACTION_LEFTCLICK,
+ ACTION_RIGHTCLICK,
+ ACTION_SAVE,
+ ACTION_SKIP,
+ ACTION_ZONE,
+ ACTION_FT_CHEAT,
+ ACTION_SWAPCHAR,
+ ACTION_SKIP_TEXT,
+ ACTION_PAUSE,
+ ACTION_QUIT,
+ ACTION_LAST
+};
+
+class SymbianActions : public Actions {
+public:
+ // Actions
+ bool perform(ActionType action, bool pushed = true);
+ Common::String actionName(ActionType action);
+ int size();
+ static void init(GameDetector &detector);
+ void initInstanceMain(OSystem *mainSystem);
+ void initInstanceGame();
+
+ // Action domain
+ Common::String domain();
+ int version();
+
+ ~SymbianActions();
+private:
+ SymbianActions(GameDetector &detector);
+ bool _right_click_needed;
+};
+
+} // namespace GUI
+
+#endif
diff --git a/backends/epoc/SymbianOS.cpp b/backends/epoc/SymbianOS.cpp
index 55f52260a0..ce8722920c 100644
--- a/backends/epoc/SymbianOS.cpp
+++ b/backends/epoc/SymbianOS.cpp
@@ -22,7 +22,10 @@
*/
#include "SymbianOS.h"
-
+#include "SymbianActions.h"
+#include "Actions.h"
+#include "Key.h"
+#include "gui\message.h"
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
{"1x", "Fullscreen", GFX_NORMAL},
{0, 0, 0}
@@ -37,11 +40,22 @@ OSystem *OSystem_SymbianOS_create() {
extern Common::ConfigManager *g_config;
-OSystem_SDL_Symbian::OSystem_SDL_Symbian() :_channels(0),_stereo_mix_buffer(0){
+OSystem_SDL_Symbian::zoneDesc OSystem_SDL_Symbian::_zones[TOTAL_ZONES] = {
+ { 0, 0, 320, 145 },
+ { 0, 145, 150, 55 },
+ { 150, 145, 170, 55 }
+};
+OSystem_SDL_Symbian::OSystem_SDL_Symbian() :_channels(0),_stereo_mix_buffer(0)
+{
ConfMan.set("FM_high_quality", false);
ConfMan.set("FM_medium_quality", true);
// ConfMan.set("joystick_num",0); // S60 should have joystick_num set to 0 in the ini file
ConfMan.flushToDisk();
+ // Initialize global key mapping for Smartphones
+ GUI::Actions* actions = GUI::Actions::Instance();
+ actions->initInstanceMain(this);
+ actions->loadMapping();
+ initZones();
}
OSystem_SDL_Symbian::~OSystem_SDL_Symbian() {
@@ -165,8 +179,7 @@ void OSystem_SDL_Symbian::symbianMix(byte *samples, int len){
int16* bitmixDst=(int16*)samples;
int16* bitmixSrc=(int16*)_stereo_mix_buffer;
- for(int loop=len/2;loop>=0;loop--)
- {
+ for(int loop=len/2;loop>=0;loop--){
*bitmixDst=(*bitmixSrc+*(bitmixSrc+1))>>1;
bitmixDst++;
bitmixSrc+=2;
@@ -177,6 +190,152 @@ void OSystem_SDL_Symbian::symbianMix(byte *samples, int len){
}
+/**
+ * This is an implementation by the remapKey function
+ * @param SDL_Event to remap
+ * @param ScumVM event to modify if special result is requested
+ * @return true if Event has a valid return status
+ */
+bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev,Event &event)
+{
+ if(!GUI::Actions::Instance()->mappingActive() && ev.key.keysym.sym>SDLK_UNKNOWN)
+ for(TInt loop=0;loop<GUI::ACTION_LAST;loop++){
+ if(GUI::Actions::Instance()->getMapping(loop) ==ev.key.keysym.sym &&
+ GUI::Actions::Instance()->isEnabled(loop)){
+ // Create proper event instead
+ switch(loop)
+ {
+ case GUI::ACTION_UP:
+ if(ev.type == SDL_KEYDOWN)
+ {
+ _km.y_vel = -1;
+ _km.y_down_count = 1;
+ }
+ else
+ {
+ _km.y_vel = 0;
+ _km.y_down_count = 0;
+ }
+ event.type = EVENT_MOUSEMOVE;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_DOWN:
+ if(ev.type == SDL_KEYDOWN)
+ {
+ _km.y_vel = 1;
+ _km.y_down_count = 1;
+ }
+ else
+ {
+ _km.y_vel = 0;
+ _km.y_down_count = 0;
+ }
+ event.type = EVENT_MOUSEMOVE;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_LEFT:
+ if(ev.type == SDL_KEYDOWN)
+ {
+ _km.x_vel = -1;
+ _km.x_down_count = 1;
+ }
+ else
+ {
+ _km.x_vel = 0;
+ _km.x_down_count = 0;
+ }
+ event.type = EVENT_MOUSEMOVE;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_RIGHT:
+ if(ev.type == SDL_KEYDOWN)
+ {
+ _km.x_vel = 1;
+ _km.x_down_count = 1;
+ }
+ else
+ {
+ _km.x_vel = 0;
+ _km.x_down_count = 0;
+ }
+ event.type = EVENT_MOUSEMOVE;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_LEFTCLICK:
+ event.type = ev.type == SDL_KEYDOWN?EVENT_LBUTTONDOWN:EVENT_LBUTTONUP;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_RIGHTCLICK:
+ event.type = ev.type == SDL_KEYDOWN?EVENT_RBUTTONDOWN:EVENT_RBUTTONUP;
+ fillMouseEvent(event, _km.x, _km.y);
+ return true;
+ case GUI::ACTION_ZONE:
+ if(ev.type == SDL_KEYDOWN)
+ {
+ int i;
+
+ for (i=0; i<TOTAL_ZONES; i++)
+ if (_km.x >= _zones[i].x && _km.y >= _zones[i].y &&
+ _km.x <= _zones[i].x + _zones[i].width && _km.y <= _zones[i].y + _zones[i].height
+ ) {
+ _mouseXZone[i] = _km.x;
+ _mouseYZone[i] = _km.y;
+ break;
+ }
+ _currentZone++;
+ if (_currentZone >= TOTAL_ZONES)
+ _currentZone = 0;
+ event.type = EVENT_MOUSEMOVE;
+ fillMouseEvent(event, _mouseXZone[_currentZone],_mouseYZone[_currentZone]);
+ SDL_WarpMouse(event.mouse.x,event.mouse.y);
+ }
+ return true;
+ case GUI::ACTION_SAVE:
+ case GUI::ACTION_SKIP:
+ case GUI::ACTION_FT_CHEAT:
+ case GUI::ACTION_SKIP_TEXT:
+ case GUI::ACTION_PAUSE:
+ {
+ GUI::Key& key = GUI::Actions::Instance()->getKeyAction(loop);
+ ev.key.keysym.sym =(SDLKey) key.ascii();
+ ev.key.keysym.scancode= key.keycode();
+ ev.key.keysym.mod =(SDLMod) key.flags();
+ return false;
+ }
+ case GUI::ACTION_QUIT:{
+ GUI::MessageDialog alert("Do you want to quit ?", "Yes", "No");
+ if (alert.runModal() == GUI::kMessageOK)
+ quit();
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+void OSystem_SDL_Symbian::setWindowCaption(const char *caption) {
+ OSystem_SDL::setWindowCaption(caption);
+ check_mappings();
+}
+
+void OSystem_SDL_Symbian::check_mappings() {
+ if (!GUI::Actions::Instance()->gameDetector()._targetName.size() || GUI::Actions::Instance()->initialized())
+ return;
+
+ GUI::Actions::Instance()->initInstanceGame();
+}
+
+void OSystem_SDL_Symbian::initZones() {
+ int i;
+
+ _currentZone = 0;
+ for (i=0; i<TOTAL_ZONES; i++) {
+ _mouseXZone[i] = (_zones[i].x + (_zones[i].width / 2));
+ _mouseYZone[i] = (_zones[i].y + (_zones[i].height / 2));
+ }
+}
+
/*
// probably don't need this anymore: will remove later
#define EMPTY_SCALER_IMPLEMENTATION(x) \
diff --git a/backends/epoc/SymbianOS.h b/backends/epoc/SymbianOS.h
index abe72dc57d..5f281cfd3b 100644
--- a/backends/epoc/SymbianOS.h
+++ b/backends/epoc/SymbianOS.h
@@ -26,6 +26,8 @@
#include "sdl-common.h"
+#define TOTAL_ZONES 3
+
class OSystem_SDL_Symbian : public OSystem_SDL {
public:
OSystem_SDL_Symbian();
@@ -53,6 +55,23 @@ protected:
*/
void symbianMix(byte *samples, int len);
+ /**
+ * This is an implementation by the remapKey function
+ * @param SDL_Event to remap
+ * @param ScumVM event to modify if special result is requested
+ * @return true if Event has a valid return status
+ */
+ bool remapKey(SDL_Event &ev,Event &event);
+
+ void setWindowCaption(const char *caption);
+
+ /**
+ * Used to intialized special game mappings
+ */
+ void check_mappings();
+
+ void initZones();
+
// Audio
int _channels;
@@ -60,6 +79,19 @@ protected:
void *_sound_proc_param;
byte* _stereo_mix_buffer;
+ // Used to handle joystick navi zones
+ int _mouseXZone[TOTAL_ZONES];
+ int _mouseYZone[TOTAL_ZONES];
+ int _currentZone;
+
+ typedef struct zoneDesc {
+ int x;
+ int y;
+ int width;
+ int height;
+ } zoneDesc;
+
+ static zoneDesc _zones[TOTAL_ZONES];
};
#endif
diff --git a/backends/epoc/build/S60/BLD.INF b/backends/epoc/build/S60/BLD.INF
index 25d2d236ca..b65f65c7e2 100644
--- a/backends/epoc/build/S60/BLD.INF
+++ b/backends/epoc/build/S60/BLD.INF
@@ -10,3 +10,4 @@ PRJ_MMPFILES
..\scummvm_gob.mmp
.\EScummVM_S60.mmp
.\EScummVM_S60_App.mmp
+.\EScummVM_S60_Exe.mmp
diff --git a/backends/epoc/build/S60/EScummVM_S60.mmp b/backends/epoc/build/S60/EScummVM_S60.mmp
index 9fe8e1e9c7..143306a72c 100644
--- a/backends/epoc/build/S60/EScummVM_S60.mmp
+++ b/backends/epoc/build/S60/EScummVM_S60.mmp
@@ -18,7 +18,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Header:
+ * $Header$
*/
//
@@ -27,22 +27,22 @@
// *** Definitions
-#if defined(WINS)
- TARGET EScummVM.dll
-#else
- TARGET EScummVM.exe
-#endif
-TARGETPATH system\apps\EScummVMs60
-TARGETTYPE EXEDLL
+TARGET ESCUMMVM.APP
+TARGETPATH system\apps\EScummVM
+TARGETTYPE app
// /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION MSVC /QIfist /Ob1 /Oy /GF
//OPTION GCC -O3 -funroll-loops -finline-functions -ffast-math -frerun-loop-opt -fconserve-space -fexpensive-optimizations -Wno-multichar -Wno-reorder
-sourcepath ..\
-EPOCSTACKSIZE 0x00008000
EPOCHEAPSIZE 1024 5242880
+EPOCSTACKSIZE 0x80008000 // this enables ECompXL app compression
+AIF EScummVm.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // mine still fails: I think it's because I have JRE 1.5 instead of 1.3 :P
+UID 0x100039ce 0x101f9b57
+
+RESOURCE EScummVM.rss
MACRO S60
+MACRO EPOC_AS_APP
MACRO NONSTANDARD_PORT
// these need too high a resolution
@@ -100,8 +100,12 @@ SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
+SOURCE backends\epoc\SymbianActions.cpp
SOURCE backends\epoc\ScummApp.cpp
+SOURCE gui\Key.cpp
+SOURCE gui\KeysDialog.cpp
+SOURCE gui\Actions.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
diff --git a/backends/epoc/build/S60/EScummVM_S60_EXE.mmp b/backends/epoc/build/S60/EScummVM_S60_EXE.mmp
new file mode 100644
index 0000000000..ebb58553bb
--- /dev/null
+++ b/backends/epoc/build/S60/EScummVM_S60_EXE.mmp
@@ -0,0 +1,95 @@
+//
+// EPOC S60 MMP makefile project for ScummVM
+//
+
+// *** Definitions
+
+#if defined(WINS)
+ TARGET EScummVM.dll
+#else
+ TARGET EScummVM.exe
+#endif
+TARGETPATH system\apps\EScummVMs60
+TARGETTYPE EXEDLL
+ // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
+OPTION MSVC /QIfist /Ob1 /Oy /GF
+//OPTION GCC -O3 -funroll-loops -finline-functions -ffast-math -frerun-loop-opt -fconserve-space -fexpensive-optimizations -Wno-multichar -Wno-reorder
+sourcepath ..\
+
+EPOCSTACKSIZE 0x00008000
+
+EPOCHEAPSIZE 1024 5242880
+
+MACRO S60
+MACRO NONSTANDARD_PORT
+
+// these need too high a resolution
+MACRO DISABLE_SWORD1
+MACRO DISABLE_SWORD2
+// these are not ready to be released
+MACRO DISABLE_SAGA
+MACRO DISABLE_KYRA
+// these work, so don't disable them :)
+//MACRO DISABLE_SIMON
+//MACRO DISABLE_SKY
+//MACRO DISABLE_QUEEN
+//MACRO DISABLE_GOB
+
+// *** Static Libraries
+
+STATICLIBRARY scummvm_scumm.lib
+STATICLIBRARY scummvm_simon.lib
+STATICLIBRARY scummvm_sky.lib
+STATICLIBRARY scummvm_queen.lib
+STATICLIBRARY scummvm_gob.lib
+STATICLIBRARY scummvm_base.lib
+
+STATICLIBRARY libmad.lib
+STATICLIBRARY zlib.lib
+STATICLIBRARY esdl_exe.lib
+#if !defined(WINS)
+STATICLIBRARY egcc.lib // for __fixunsdfsi
+#endif
+// *** Include paths
+
+USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui
+USERINCLUDE ..\..\..\..\backends\fs ..\..\..\..\backends\epoc ..\..\..\..\backends\sdl ..\..\..\..\sound
+
+SYSTEMINCLUDE \epoc32\include\ESDL
+SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
+SYSTEMINCLUDE \epoc32\include\libc
+SYSTEMINCLUDE \epoc32\include
+SYSTEMINCLUDE ..\..\..\..\backends\epoc // for portdefs.h
+
+// *** SOURCE files
+
+SOURCEPATH ..\..\..\..
+
+//START_AUTO_OBJECTS_BASE_// Updated @ Tue May 31 18:35:38 2005
+SOURCE base\engine.cpp
+SOURCE base\gameDetector.cpp
+SOURCE base\main.cpp
+SOURCE base\plugins.cpp
+//STOP_AUTO_OBJECTS_BASE_//
+
+// backend EPOC/SDL/ESDL specific includes
+SOURCE backends\sdl\events.cpp
+SOURCE backends\sdl\graphics.cpp
+SOURCE backends\sdl\sdl.cpp
+SOURCE backends\fs\symbian\symbian-fs.cpp
+SOURCE backends\epoc\SymbianOS.cpp
+SOURCE backends\epoc\SymbianActions.cpp
+SOURCE backends\epoc\ScummApp.cpp
+
+SOURCE gui\Key.cpp
+SOURCE gui\KeysDialog.cpp
+SOURCE gui\Actions.cpp
+// *** Dynamic Libraries
+
+LIBRARY cone.lib eikcore.lib
+LIBRARY euser.lib apparc.lib fbscli.lib
+LIBRARY estlib.lib apgrfx.lib
+LIBRARY gdi.lib hal.lib bitgdi.lib
+LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib
+LIBRARY AVKON.LIB
+
diff --git a/backends/epoc/build/S60/ScummVMApp.cpp b/backends/epoc/build/S60/ScummVMApp.cpp
index 1702a88ba7..93a28694c3 100644
--- a/backends/epoc/build/S60/ScummVMApp.cpp
+++ b/backends/epoc/build/S60/ScummVMApp.cpp
@@ -95,6 +95,7 @@ void CScummVMUi::ConstructL() {
lsSession.StartApp(*cmdLine,iThreadId);
CleanupStack::PopAndDestroy();//close lsSession
CleanupStack::PopAndDestroy(cmdLine);
+ User::After(500000);// Let the application start
TApaTaskList taskList(iEikonEnv->WsSession());
TApaTask myTask=taskList.FindApp(TUid::Uid(0x101f9b57));
diff --git a/backends/epoc/build/S80/EScummVM_S80.mmp b/backends/epoc/build/S80/EScummVM_S80.mmp
index 4b12e269b7..3e843ab2cf 100644
--- a/backends/epoc/build/S80/EScummVM_S80.mmp
+++ b/backends/epoc/build/S80/EScummVM_S80.mmp
@@ -100,8 +100,12 @@ SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
+SOURCE backends\epoc\SymbianActions.cpp
SOURCE backends\epoc\ScummApp.cpp
+SOURCE gui\Key.cpp
+SOURCE gui\KeysDialog.cpp
+SOURCE gui\Actions.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
diff --git a/backends/epoc/build/S90/EScummvm_S90.mmp b/backends/epoc/build/S90/EScummvm_S90.mmp
index 6327b93c74..79d729b2a1 100644
--- a/backends/epoc/build/S90/EScummvm_S90.mmp
+++ b/backends/epoc/build/S90/EScummvm_S90.mmp
@@ -100,8 +100,12 @@ SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
+SOURCE backends\epoc\SymbianActions.cpp
SOURCE backends\epoc\ScummApp.cpp
+SOURCE gui\Key.cpp
+SOURCE gui\KeysDialog.cpp
+SOURCE gui\Actions.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
diff --git a/backends/epoc/build/UIQ/EScummVM.rss b/backends/epoc/build/UIQ/EScummVM.rss
index 470e819220..72f798781d 100644
--- a/backends/epoc/build/UIQ/EScummVM.rss
+++ b/backends/epoc/build/UIQ/EScummVM.rss
@@ -28,7 +28,7 @@ NAME SCUM
// Include definitions of resource STRUCTS used by this
// resource script
#include <eikon.rh>
-#include "..\backends\epoc\Scummvm.hrh"
+#include "..\..\Scummvm.hrh"
// Include the standard Eikon resource ids
#include <eikon.rsg>
@@ -41,22 +41,5 @@ RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
- menubar = r_scum_menubar;
}
-RESOURCE MENU_BAR r_scum_menubar // *** Menu bar
-{
- titles =
- {
- MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; }
- };
-}
-
-RESOURCE MENU_PANE r_scum_menu // *** Submenu
-{
- items =
- {
-
- MENU_ITEM{command = EEikCmdExit;txt = "Exit";}
- };
-}
diff --git a/backends/epoc/build/UIQ/EScummVM_UIQ.mmp b/backends/epoc/build/UIQ/EScummVM_UIQ.mmp
index c0ad2e1bef..fd4acda861 100644
--- a/backends/epoc/build/UIQ/EScummVM_UIQ.mmp
+++ b/backends/epoc/build/UIQ/EScummVM_UIQ.mmp
@@ -18,7 +18,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Header:
+ * $Header$
*/
//
@@ -36,11 +36,12 @@ OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way
RESOURCE EScummVM.rss
EPOCSTACKSIZE 0x80008000 // this enables ECompXL app compression
-AIF EScummVm.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // still fails?
+AIF EScummVm.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // mine still fails: I think it's because I have JRE 1.5 instead of 1.3 :P
UID 0x100039ce 0x101f9b57
MACRO UIQ
MACRO NONSTANDARD_PORT
+MACRO EPOC_AS_APP
// these need too high a resolution
MACRO DISABLE_SWORD1
@@ -98,8 +99,13 @@ SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
+SOURCE backends\epoc\SymbianActions.cpp
SOURCE backends\epoc\ScummApp.cpp
+SOURCE gui\Key.cpp
+SOURCE gui\KeysDialog.cpp
+SOURCE gui\Actions.cpp
+
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
diff --git a/backends/epoc/build/scummvm_base.mmp b/backends/epoc/build/scummvm_base.mmp
index e7c0a5f3de..9fb213935f 100644
--- a/backends/epoc/build/scummvm_base.mmp
+++ b/backends/epoc/build/scummvm_base.mmp
@@ -21,7 +21,6 @@
* $Header:
*/
-
//
// EPOC MMP makefile project for ScummVM
//