[Scummvm-git-logs] scummvm master -> e2f3202b677add9b0025ea7f497db613d74ff3a7
bluegr
noreply at scummvm.org
Mon Apr 7 11:16:18 UTC 2025
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e307273219 AGOS: Fix key handling in save/load screens, after key mapper changes
9f57f7cab9 AGOS: Fix cutscene skip key handling in Feeble Files
e2f3202b67 AGOS: Add hotkey to toggle between combat and movement mode in Waxworks
Commit: e307273219bc1afb3c8520143c422b4b5e792131
https://github.com/scummvm/scummvm/commit/e307273219bc1afb3c8520143c422b4b5e792131
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2025-04-07T14:15:16+03:00
Commit Message:
AGOS: Fix key handling in save/load screens, after key mapper changes
Keys in certain save/load screens, such as in Elvira 1, were not
handled correctly
Changed paths:
engines/agos/agos.h
engines/agos/input_pn.cpp
engines/agos/saveload.cpp
engines/agos/script.cpp
engines/agos/script_ff.cpp
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index b14b76d7147..648adf57057 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -1371,6 +1371,7 @@ protected:
int countSaveGames();
virtual Common::String genSaveName(int slot) const;
+ void enterSaveLoadScreen(bool entering);
};
class AGOSEngine_PN : public AGOSEngine {
diff --git a/engines/agos/input_pn.cpp b/engines/agos/input_pn.cpp
index cb9ab1c4b2b..a078f0b569e 100644
--- a/engines/agos/input_pn.cpp
+++ b/engines/agos/input_pn.cpp
@@ -35,8 +35,7 @@ void AGOSEngine_PN::handleKeyboard() {
return;
if (_keymapEnabled) {
- Common::Keymapper *keymapper = AGOSEngine::getEventManager()->getKeymapper();
- keymapper->getKeymap("game-shortcuts")->setEnabled(false);
+ getEventManager()->getKeymapper()->getKeymap("game-shortcuts")->setEnabled(false);
_keymapEnabled = false;
}
@@ -84,8 +83,7 @@ void AGOSEngine_PN::handleKeyboard() {
_mousePrintFG = 0;
_inputReady = false;
if (!_keymapEnabled) {
- Common::Keymapper *keymapper = AGOSEngine::getEventManager()->getKeymapper();
- keymapper->getKeymap("game-shortcuts")->setEnabled(true);
+ getEventManager()->getKeymapper()->getKeymap("game-shortcuts")->setEnabled(true);
_keymapEnabled = true;
}
}
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp
index 62c9518ce7b..9161fc54fab 100644
--- a/engines/agos/saveload.cpp
+++ b/engines/agos/saveload.cpp
@@ -290,6 +290,11 @@ int16 AGOSEngine::matchSaveGame(const char *name, uint16 max) {
return -1;
}
+void AGOSEngine::enterSaveLoadScreen(bool entering) {
+ _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, entering);
+ getEventManager()->getKeymapper()->getKeymap("game-shortcuts")->setEnabled(!entering);
+}
+
void AGOSEngine::userGame(bool load) {
WindowBlock *window = _windowArray[4];
const char *message1;
@@ -495,9 +500,6 @@ void AGOSEngine_Elvira2::userGame(bool load) {
listSaveGames();
- Common::Keymapper *keymapper = AGOSEngine::getEventManager()->getKeymapper();
- keymapper->getKeymap("game-shortcuts")->setEnabled(false);
-
if (!load) {
WindowBlock *window = _windowArray[num];
int16 slot = -1;
@@ -569,8 +571,6 @@ get_out:;
if (getGameType() == GType_ELVIRA2)
restartAnimation();
-
- keymapper->getKeymap("game-shortcuts")->setEnabled(true);
}
int AGOSEngine_Elvira2::userGameGetKey(bool *b, uint maxChar) {
@@ -720,9 +720,6 @@ void AGOSEngine_Simon1::userGame(bool load) {
restart:;
i = userGameGetKey(&b, maxChar);
- Common::Keymapper *keymapper = AGOSEngine::getEventManager()->getKeymapper();
- keymapper->getKeymap("game-shortcuts")->setEnabled(false);
-
if (i == 205)
goto get_out;
if (!load) {
@@ -842,8 +839,6 @@ get_out:;
disableFileBoxes();
_gameStoppedClock = getTime() - saveTime + _gameStoppedClock;
-
- keymapper->getKeymap("game-shortcuts")->setEnabled(true);
}
int AGOSEngine_Simon1::userGameGetKey(bool *b, uint maxChar) {
diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp
index c49ead73f99..31bdeac3415 100644
--- a/engines/agos/script.cpp
+++ b/engines/agos/script.cpp
@@ -811,9 +811,9 @@ void AGOSEngine::o_saveUserGame() {
fileError(_windowArray[5], true);
}
} else {
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
+ enterSaveLoadScreen(true);
userGame(false);
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
+ enterSaveLoadScreen(false);
}
}
@@ -826,9 +826,9 @@ void AGOSEngine::o_loadUserGame() {
fileError(_windowArray[5], false);
}
} else {
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
+ enterSaveLoadScreen(true);
userGame(true);
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
+ enterSaveLoadScreen(false);
}
}
diff --git a/engines/agos/script_ff.cpp b/engines/agos/script_ff.cpp
index 80a7970dd9d..295a47c0ad0 100644
--- a/engines/agos/script_ff.cpp
+++ b/engines/agos/script_ff.cpp
@@ -448,9 +448,9 @@ void AGOSEngine_Feeble::off_setTime() {
void AGOSEngine_Feeble::off_saveUserGame() {
// 132: save game
_noOracleScroll = 0;
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
+ enterSaveLoadScreen(true);
saveUserGame(countSaveGames() + 1 - readVariable(55));
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
+ enterSaveLoadScreen(false);
}
void AGOSEngine_Feeble::off_loadUserGame() {
Commit: 9f57f7cab99709ff084a446aad63fa12de092c3f
https://github.com/scummvm/scummvm/commit/9f57f7cab99709ff084a446aad63fa12de092c3f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2025-04-07T14:15:18+03:00
Commit Message:
AGOS: Fix cutscene skip key handling in Feeble Files
Changed paths:
engines/agos/animation.cpp
diff --git a/engines/agos/animation.cpp b/engines/agos/animation.cpp
index df47d252dd3..23f75c32db5 100644
--- a/engines/agos/animation.cpp
+++ b/engines/agos/animation.cpp
@@ -102,7 +102,7 @@ void MoviePlayer::handleNextFrame() {
Common::EventManager *eventMan = _vm->_system->getEventManager();
while (eventMan->pollEvent(event)) {
switch (event.type) {
- case Common::EVENT_CUSTOM_BACKEND_ACTION_START:
+ case Common::EVENT_CUSTOM_ENGINE_ACTION_START:
if (event.customType == kActionExitCutscene) {
_leftButtonDown = true;
_rightButtonDown = true;
Commit: e2f3202b677add9b0025ea7f497db613d74ff3a7
https://github.com/scummvm/scummvm/commit/e2f3202b677add9b0025ea7f497db613d74ff3a7
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2025-04-07T14:15:19+03:00
Commit Message:
AGOS: Add hotkey to toggle between combat and movement mode in Waxworks
Implements / fixes feature request #10311
Changed paths:
engines/agos/agos.h
engines/agos/event.cpp
engines/agos/metaengine.cpp
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index 648adf57057..fb30efcc2d3 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -94,6 +94,7 @@ enum AGOSAction {
kActionToggleHitboxName,
kActionToggleSoundEffects,
kActionToggleBackgroundSound,
+ kActionToggleFightMode,
kActionShowObjects,
kActionTextSpeedFast,
kActionTextSpeedMedium,
diff --git a/engines/agos/event.cpp b/engines/agos/event.cpp
index db3ba14427b..9bafe17778b 100644
--- a/engines/agos/event.cpp
+++ b/engines/agos/event.cpp
@@ -471,6 +471,16 @@ void AGOSEngine::delay(uint amount) {
_action = (AGOSAction)event.customType;
if (event.customType == kActionToggleFastMode) {
_fastMode = !_fastMode;
+ } else if (event.customType == kActionToggleFightMode && getGameId() == GID_WAXWORKS) {
+ HitArea *fightButton = findBox(117);
+
+ if (fightButton && !(fightButton->flags & kBFBoxDead)) {
+ _needHitAreaRecalc++;
+ _lastHitArea = fightButton;
+
+ // Switch between normal cursor (0) and fighting mode (3)
+ _mouseCursor = (_mouseCursor == 3) ? 0 : 3;
+ }
}
break;
case Common::EVENT_CUSTOM_ENGINE_ACTION_END:
diff --git a/engines/agos/metaengine.cpp b/engines/agos/metaengine.cpp
index 9046e80a0e0..5a8ba448bd7 100644
--- a/engines/agos/metaengine.cpp
+++ b/engines/agos/metaengine.cpp
@@ -310,6 +310,14 @@ Common::KeymapArray AgosMetaEngine::initKeymaps(const char *target) const {
act->addDefaultInputMapping("RIGHT");
act->addDefaultInputMapping("JOY_RIGHT");
gameKeyMap->addAction(act);
+
+ if (gameId == "waxworks") {
+ act = new Action("TOGGLEFIGHTMODE", _("Toggle fight mode")); // KEYCODE_F
+ act->setCustomEngineActionEvent(kActionToggleFightMode);
+ act->addDefaultInputMapping("f");
+ act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
+ gameKeyMap->addAction(act);
+ }
}
if (gameId == "simon1" || gameId == "simon2") {
More information about the Scummvm-git-logs
mailing list