aboutsummaryrefslogtreecommitdiff
path: root/engines/sky/sky.cpp
diff options
context:
space:
mode:
authorDavid Corrales2007-06-23 18:51:33 +0000
committerDavid Corrales2007-06-23 18:51:33 +0000
commitcacd7a28fd51d960947de88abbf30c487e66529d (patch)
treef3baa59853bfb307e452b86b9d93c4737b1fa6ab /engines/sky/sky.cpp
parent0ac96302fe9c04df79cb01a77d19535b45fe2db0 (diff)
parent90c2210dae8c91fa8babc6b05564e15c9d445d18 (diff)
downloadscummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.gz
scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.bz2
scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.zip
Merged the FSNode branch with trunk r27031:27680
svn-id: r27681
Diffstat (limited to 'engines/sky/sky.cpp')
-rw-r--r--engines/sky/sky.cpp45
1 files changed, 19 insertions, 26 deletions
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index d8e642d717..1ff23dbd07 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -217,57 +217,54 @@ void SkyEngine::initVirgin() {
void SkyEngine::handleKey(void) {
- if (_keyPressed && _systemVars.paused) {
+ if (_keyPressed.keycode && _systemVars.paused) {
_skySound->fnUnPauseFx();
_systemVars.paused = false;
_skyScreen->setPaletteEndian((uint8 *)_skyCompact->fetchCpt(SkyEngine::_systemVars.currentPalette));
- _keyFlags = _keyPressed = 0;
- return;
- }
-
- if (_keyFlags == Common::KBD_CTRL) {
- if (_keyPressed == 'f')
+ } else if (_keyPressed.flags == Common::KBD_CTRL) {
+ if (_keyPressed.keycode == 'f')
_fastMode ^= 1;
- else if (_keyPressed == 'g')
+ else if (_keyPressed.keycode == 'g')
_fastMode ^= 2;
- else if (_keyPressed == 'd')
+ else if (_keyPressed.keycode == 'd')
_debugger->attach();
- } else {
- switch (_keyPressed) {
- case '`':
- case '~':
- case '#':
+ } else if (_keyPressed.keycode) {
+ switch (_keyPressed.keycode) {
+ case Common::KEYCODE_BACKQUOTE:
+ case Common::KEYCODE_HASH:
_debugger->attach();
break;
- case 63:
+ case Common::KEYCODE_F5:
_skyControl->doControlPanel();
break;
- case 27:
+ case Common::KEYCODE_ESCAPE:
if (!_systemVars.pastIntro)
_skyControl->restartGame();
break;
- case '.':
+ case Common::KEYCODE_PERIOD:
_skyMouse->logicClick();
break;
- case 'p':
+ case Common::KEYCODE_p:
_skyScreen->halvePalette();
_skySound->fnPauseFx();
_systemVars.paused = true;
break;
+ default:
+ break;
}
}
- _keyFlags = _keyPressed = 0;
+ _keyPressed.reset();
}
int SkyEngine::go() {
_systemVars.quitGame = false;
- _keyFlags = _keyPressed = 0;
+ _keyPressed.reset();
uint16 result = 0;
if (ConfMan.hasKey("save_slot") && ConfMan.getInt("save_slot") >= 0)
@@ -517,7 +514,7 @@ void SkyEngine::delay(int32 amount) {
Common::Event event;
uint32 start = _system->getMillis();
- _keyFlags = _keyPressed = 0; //reset
+ _keyPressed.reset();
if (amount < 0)
amount = 0;
@@ -526,11 +523,7 @@ void SkyEngine::delay(int32 amount) {
while (_eventMan->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_KEYDOWN:
- _keyFlags = event.kbd.flags;
- if (_keyFlags == Common::KBD_CTRL)
- _keyPressed = event.kbd.keycode;
- else
- _keyPressed = (byte)event.kbd.ascii;
+ _keyPressed = event.kbd;
break;
case Common::EVENT_MOUSEMOVE:
if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED))