aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/input.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/input.cpp')
-rw-r--r--engines/agos/input.cpp44
1 files changed, 31 insertions, 13 deletions
diff --git a/engines/agos/input.cpp b/engines/agos/input.cpp
index 3f2efc86b4..ef0791dc10 100644
--- a/engines/agos/input.cpp
+++ b/engines/agos/input.cpp
@@ -25,6 +25,7 @@
#include "common/stdafx.h"
+#include "common/config-manager.h"
#include "common/file.h"
#include "agos/intern.h"
@@ -273,28 +274,28 @@ void AGOSEngine::waitForInput() {
_verbHitArea = 236;
if (ha->id == 98) {
- animate(2, 0, 110, 0, 0, 0);
+ animate(2, 1, 110, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 108) {
- animate(2, 0, 106, 0, 0, 0);
+ animate(2, 1, 106, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 109) {
- animate(2, 0, 107, 0, 0, 0);
+ animate(2, 1, 107, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 115) {
- animate(2, 0, 109, 0, 0, 0);
+ animate(2, 1, 109, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 116) {
- animate(2, 0, 113, 0, 0, 0);
+ animate(2, 1, 113, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 117) {
- animate(2, 0, 112, 0, 0, 0);
+ animate(2, 1, 112, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 118) {
- animate(2, 0, 108, 0, 0, 0);
+ animate(2, 1, 108, 0, 0, 0);
waitForSync(34);
} else if (ha->id == 119) {
- animate(2, 0, 111, 0, 0, 0);
+ animate(2, 1, 111, 0, 0, 0);
waitForSync(34);
}
}
@@ -542,6 +543,14 @@ bool AGOSEngine::processSpecialKeys() {
if (getGameType() == GType_FF)
setBitFlag(73, !getBitFlag(73));
break;
+ case 37: // F12
+ if (getGameType() == GType_PP && getGameId() != GID_DIMP) {
+ if (!getBitFlag(110)) {
+ setBitFlag(107, !getBitFlag(107));
+ _vgaPeriod = (getBitFlag(107) != 0) ? 15 : 30;
+ }
+ }
+ break;
case 'p':
pause();
break;
@@ -558,21 +567,30 @@ bool AGOSEngine::processSpecialKeys() {
_speech ^= 1;
}
case '+':
- _midi.setVolume(_midi.getVolume() + 16);
+ if (_midiEnabled) {
+ _midi.setVolume(_midi.getVolume() + 16);
+ }
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) + 16);
break;
case '-':
- _midi.setVolume(_midi.getVolume() - 16);
+ if (_midiEnabled) {
+ _midi.setVolume(_midi.getVolume() - 16);
+ }
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) - 16);
break;
case 'm':
- _midi.pause(_musicPaused ^= 1);
+ _musicPaused ^= 1;
+ if (_midiEnabled) {
+ _midi.pause(_musicPaused);
+ }
+ _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, (_musicPaused) ? 0 : ConfMan.getInt("music_volume"));
break;
case 's':
- if (getGameId() == GID_SIMON1DOS)
+ if (getGameId() == GID_SIMON1DOS) {
_midi._enable_sfx ^= 1;
- else
+ } else {
_sound->effectsPause(_effectsPaused ^= 1);
+ }
break;
case 'b':
_sound->ambientPause(_ambientPaused ^= 1);