aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorNicolas Bacca2002-12-02 00:05:05 +0000
committerNicolas Bacca2002-12-02 00:05:05 +0000
commit718b935d485f6ea87d90ad13d3e9b9329e1ffd78 (patch)
tree2ea2d8765d55d91694a259a1de1db6ee93a08bdc /simon
parent04f5220874f3a1e76450d5344674418f342a07ff (diff)
downloadscummvm-rg350-718b935d485f6ea87d90ad13d3e9b9329e1ffd78.tar.gz
scummvm-rg350-718b935d485f6ea87d90ad13d3e9b9329e1ffd78.tar.bz2
scummvm-rg350-718b935d485f6ea87d90ad13d3e9b9329e1ffd78.zip
Fix WinCE keyboard + change quit key for foreign languages (fixme ?)
svn-id: r5806
Diffstat (limited to 'simon')
-rw-r--r--simon/items.cpp43
1 files changed, 33 insertions, 10 deletions
diff --git a/simon/items.cpp b/simon/items.cpp
index 68cb5e9cb9..8db0e97ca4 100644
--- a/simon/items.cpp
+++ b/simon/items.cpp
@@ -20,14 +20,15 @@
*/
// Item script opcodes for Simon1/Simon2
+#include <ctype.h>
+
#include "stdafx.h"
#include "simon/simon.h"
#include "simon/intern.h"
#ifdef _WIN32_WCE
-extern bool toolbar_drawn;
-extern bool draw_keyboard;
+extern void force_keyboard(bool);
#endif
@@ -752,18 +753,27 @@ int SimonState::runScript()
case 132:{ /* save game */
#ifdef _WIN32_WCE
-
- if (!draw_keyboard) {
- draw_keyboard = true;
- toolbar_drawn = false;
- }
+ force_keyboard(true);
#endif
+
o_save_game();
+
+#ifdef _WIN32_WCE
+ force_keyboard(false);
+#endif
}
break;
case 133:{ /* load game */
+#ifdef _WIN32_WCE
+ force_keyboard(true);
+#endif
+
o_load_game();
+
+#ifdef _WIN32_WCE
+ force_keyboard(false);
+#endif
}
break;
@@ -774,7 +784,15 @@ int SimonState::runScript()
break;
case 135:{ /* quit if user presses y */
+#ifdef _WIN32_WCE
+ force_keyboard(true);
+#endif
+
o_quit_if_user_presses_y();
+
+#ifdef _WIN32_WCE
+ force_keyboard(false);
+#endif
}
break;
@@ -1482,11 +1500,16 @@ void SimonState::o_quit_if_user_presses_y()
for (;;) {
_system->poll_event(&event);
- if (event.event_code == OSystem::EVENT_KEYDOWN)
- if (event.kbd.keycode == 'y')
+ if (event.event_code == OSystem::EVENT_KEYDOWN) {
+ event.kbd.keycode = toupper(event.kbd.keycode);
+ // FIXME Arisme : better than being blocked ?
+ if (event.kbd.keycode == 'Y' ||
+ event.kbd.keycode == 'O' || /* french */
+ event.kbd.keycode == 'J' /* german I guess :) */)
_system->quit();
- else if (event.kbd.keycode == 'n')
+ else if (event.kbd.keycode == 'N')
break;
+ }
delay(10);
}
}