diff -urbB scummvm.orig/backends/sdl/events.cpp scummvm/backends/sdl/events.cpp --- scummvm.orig/backends/sdl/events.cpp 2005-10-18 05:11:17.000000000 +0300 +++ scummvm/backends/sdl/events.cpp 2006-01-21 22:53:33.000000000 +0200 @@ -192,9 +192,8 @@ case SDL_KEYDOWN:{ b = event.kbd.flags = SDLModToOSystemKeyFlags(SDL_GetModState()); - // Alt-Return and Alt-Enter toggle full screen mode - if (b == KBD_ALT && (ev.key.keysym.sym == SDLK_RETURN - || ev.key.keysym.sym == SDLK_KP_ENTER)) { + // Return and Enter toggle full screen mode + if (ev.key.keysym.sym == SDLK_F6) { setFullscreenMode(!_fullscreen); #ifdef USE_OSD if (_fullscreen) diff -urbB scummvm.orig/base/main.cpp scummvm/base/main.cpp --- scummvm.orig/base/main.cpp 2005-10-28 22:03:55.000000000 +0300 +++ scummvm/base/main.cpp 2006-01-21 22:53:32.000000000 +0200 @@ -166,6 +166,8 @@ #if defined(UNIX) #include +#include +#include #ifndef SCUMM_NEED_ALIGNMENT static void handle_errors(int sig_num) { @@ -335,6 +337,9 @@ do_memory_test(); #endif + // Maemo task navigator priority inheritance fix + setpriority(PRIO_PROCESS, 0, 0); + // Code copied from SDL_main #if (defined(WIN32) && defined(NO_CONSOLE)) || defined(__SYMBIAN32__) // Symbian does not like any output to the console through any *print* function diff -urbB scummvm.orig/configure scummvm/configure --- scummvm.orig/configure 2005-10-29 04:01:16.000000000 +0300 +++ scummvm/configure 2006-01-21 22:53:33.000000000 +0200 @@ -294,8 +294,8 @@ --disable-he exclude HE70+ games in SCUMM engine --disable-simon don't build the simon engine --disable-sky don't build the Beneath a Steel Sky engine - --disable-sword1 don't build the Broken Sword 1 engine - --disable-sword2 don't build the Broken Sword 2 engine + --disable-sword1 don't build the Broken Sword I engine + --disable-sword2 don't build the Broken Sword II engine --disable-queen don't build the Flight of the Amazon Queen engine --disable-saga don't build the SAGA engine --disable-gob don't build the Gobli*ns engine @@ -544,7 +544,7 @@ echocheck "compiler version" -cxx_name=`( $cc -v ) 2>&1 | tail -n 1 | cut -d ' ' -f 1` +cxx_name=`( $cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1` cxx_version=`( $CXX -dumpversion ) 2>&1` if test "$?" -gt 0; then cxx_version="not found" @@ -690,16 +690,6 @@ type_2_byte='short' type_4_byte='int' ;; - arm-linux) - echo "Cross-compiling to $_host, forcing endianness, alignment and type sizes" - DEFINES="$DEFINES -DUNIX" - #not true for all ARM systems, but the interesting ones are all LE. Most (if not all) BE arm devices don't have a screen - _def_endianness='#define SCUMM_LITTLE_ENDIAN' - _def_align='#define SCUMM_NEED_ALIGNMENT' - type_1_byte='char' - type_2_byte='short' - type_4_byte='int' - ;; ppc-amigaos) echo "Cross-compiling to $_host, forcing endianness, alignment and type sizes" _def_endianness='#define SCUMM_BIG_ENDIAN' @@ -1194,7 +1184,7 @@ echo " Beneath a Steel Sky" fi if test "$_build_sword1" = yes ; then - echo_n " Broken Sword 1" + echo_n " Broken Sword I" if test "$_mpeg2" = yes ; then echo " (w/ mpeg2 cutscenes)" else @@ -1202,7 +1192,7 @@ fi fi if test "$_build_sword2" = yes ; then - echo_n " Broken Sword 2" + echo_n " Broken Sword II" if test "$_mpeg2" = yes ; then echo " (w/ mpeg2 cutscenes)" else Only in scummvm: debian diff -urbB scummvm.orig/scumm/dialogs.cpp scummvm/scumm/dialogs.cpp --- scummvm.orig/scumm/dialogs.cpp 2005-10-18 05:11:21.000000000 +0300 +++ scummvm/scumm/dialogs.cpp 2006-01-21 22:53:33.000000000 +0200 @@ -879,7 +879,8 @@ } void PauseDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { - if (ascii == ' ') // Close pause dialog if space key is pressed + if (ascii == ' ' || + keycode == 273) // Close pause dialog if space or up key is pressed close(); else ScummDialog::handleKeyDown(ascii, keycode, modifiers); @@ -947,10 +948,12 @@ } void ValueDisplayDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { - if (ascii == _incKey || ascii == _decKey) { - if (ascii == _incKey && _value < _max) + // Adjust value on +, -, left or right keypress + if (ascii == _incKey || ascii == _decKey || + keycode == 275 || keycode == 276) { + if ((ascii == _incKey || keycode == 275) && _value < _max) _value++; - else if (ascii == _decKey && _value > _min) + else if ((ascii == _decKey || keycode == 276) && _value > _min) _value--; setResult(_value); diff -urbB scummvm.orig/scumm/input.cpp scummvm/scumm/input.cpp --- scummvm.orig/scumm/input.cpp 2005-10-26 10:14:22.000000000 +0300 +++ scummvm/scumm/input.cpp 2006-01-21 22:53:32.000000000 +0200 @@ -97,6 +97,36 @@ _keyPressed = event.kbd.ascii; // Normal key press, pass on to the game. } + // Maemo platform keybindings + if (_keyPressed == 318) // Map F4 (menu) to F5 (access main menu) + _keyPressed = 319; + if (_keyPressed == 13) // Map Select (return) to Tab (right mouse button) + _keyPressed = 9; + if (_keyPressed == 321) // Map F7 (zoom in) to 1 (to bypass Monkey2 copy protection) + _keyPressed = 49; // 1 + if (_keyPressed == 322) // Map F8 (zoom out) to toggle fast mode + _fastMode ^= 1; + if (event.kbd.ascii == 273) // Map Up to space (pause game) + _keyPressed = 32; + if (event.kbd.ascii == 274) // Map Down to . (skip one line of dialog) + _keyPressed = 46; + + // Map Right to increase talk speed + // Map Left to decrease talk speed + if (event.kbd.ascii == 275 || + event.kbd.ascii == 276) { + if (event.kbd.ascii == 275 && _defaultTalkDelay < 9) + _defaultTalkDelay++; + if (event.kbd.ascii == 276 && _defaultTalkDelay > 0) + _defaultTalkDelay--; + + ValueDisplayDialog dlg("Talk speed: ", 0, 9, _defaultTalkDelay, '+', '-'); + _defaultTalkDelay = runDialog(dlg); + + if (VAR_CHARINC != 0xFF) + VAR(VAR_CHARINC) = _defaultTalkDelay; + } + if (_heversion >= 80) { // Keyboard is controlled via variable int _keyState = 0; @@ -371,11 +401,12 @@ return; } - if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY) || - (((_version <= 2) || (_platform == Common::kPlatformFMTowns && _version == 3)) && _lastKeyHit == 8)) { - confirmRestartDialog(); - return; - } + // Disable restart dialog as we are using that key for zoomout/fast mode +// if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY) || +// (((_version <= 2) || (_platform == Common::kPlatformFMTowns && _version == 3)) && _lastKeyHit == 8)) { +// confirmRestartDialog(); +// return; +// } if ((VAR_PAUSE_KEY != 0xFF && _lastKeyHit == VAR(VAR_PAUSE_KEY)) || (VAR_PAUSE_KEY == 0xFF && _lastKeyHit == ' ')) { diff -urbB scummvm.orig/scummvm.desktop scummvm/scummvm.desktop --- scummvm.orig/scummvm.desktop 2005-10-29 04:01:16.000000000 +0300 +++ scummvm/scummvm.desktop 2006-01-21 22:53:32.000000000 +0200 @@ -1,12 +1,12 @@ [Desktop Entry] Encoding=UTF-8 -Name=ScummVM -Name[pl]=ScummVM -Comment=Interpreter for several adventure games -Comment[pl]=Interpreter graficznych gier przygodowych -Exec=scummvm -Icon=scummvm.xpm -Terminal=false +Version=1.0 Type=Application -Categories=Application;Game;AdventureGame; -StartupNotify=false +Name=ScummVM +Exec=/var/lib/install/usr/games/scummvm +Icon=scummvm +StartupWMClass=SDL_App +X-Icon-path=/var/lib/install/usr/share/icons +X-Window-Icon=scummvm +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable Only in scummvm: scummvm-maemo-patch.diff diff -urbB scummvm.orig/sky/sky.cpp scummvm/sky/sky.cpp --- scummvm.orig/sky/sky.cpp 2005-10-18 05:11:26.000000000 +0300 +++ scummvm/sky/sky.cpp 2006-01-21 22:53:32.000000000 +0200 @@ -464,6 +464,17 @@ case OSystem::EVENT_KEYDOWN: _keyFlags = event.kbd.flags; _keyPressed = (byte)event.kbd.ascii; + + // Maemo platform keybindings + if (_keyPressed == 62) // Map F4 (menu) to F5 (access main menu) + _keyPressed = 63; + if (_keyPressed == 64) // Map F6 (fullscreen) to right mouse button + _skyMouse->buttonPressed(1); + if (_keyPressed == 66) // Map F8 (zoom out) to toggle fast mode + _fastMode ^= 1; + if (_keyPressed == 18) // Map Down to . (skip one line of dialog) + _keyPressed = 46; + break; case OSystem::EVENT_MOUSEMOVE: if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED)) {