diff --git a/backends/platform/symbian/src/SymbianActions.cpp b/backends/platform/symbian/src/SymbianActions.cpp index c45cef32bd7..995b03f200b 100644 --- a/backends/platform/symbian/src/SymbianActions.cpp +++ b/backends/platform/symbian/src/SymbianActions.cpp @@ -102,8 +102,15 @@ SymbianActions::SymbianActions() } void SymbianActions::initInstanceMain(OSystem *mainSystem) { + int i; + Actions::initInstanceMain(mainSystem); + // Disable all mappings before setting main mappings again + for (i = 0; i < ACTION_LAST; i++) { + _action_enabled[i] = false; + } + // Mouse Up _action_enabled[ACTION_UP] = true; diff --git a/backends/platform/symbian/src/SymbianOS.cpp b/backends/platform/symbian/src/SymbianOS.cpp index 6a8a46df07d..7af1cade8cb 100644 --- a/backends/platform/symbian/src/SymbianOS.cpp +++ b/backends/platform/symbian/src/SymbianOS.cpp @@ -471,8 +471,16 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { void OSystem_SDL_Symbian::setWindowCaption(const char *caption) { OSystem_SDL::setWindowCaption(caption); +} + +void OSystem_SDL_Symbian::engineInit() { + // Check mappings for the engine just started check_mappings(); -FIXME: move check_mappings() call to engineInit() & engineDone() +} + +void OSystem_SDL_Symbian::engineDone() { + // Need to reset engine to basic state after an engine has been running + GUI::Actions::Instance()->initInstanceMain(this); } void OSystem_SDL_Symbian::check_mappings() { diff --git a/backends/platform/symbian/src/SymbianOS.h b/backends/platform/symbian/src/SymbianOS.h index efca94b706a..b873b503beb 100644 --- a/backends/platform/symbian/src/SymbianOS.h +++ b/backends/platform/symbian/src/SymbianOS.h @@ -107,6 +107,18 @@ protected: void setWindowCaption(const char *caption); + /** + * Allows the backend to perform engine specific init. + * Called just before the engine is run. + */ + virtual void engineInit(); + + /** + * Allows the backend to perform engine specific de-init. + * Called after the engine finishes. + */ + virtual void engineDone(); + // // Used to intialized special game mappings //