[Scummvm-git-logs] scummvm branch-2-1 -> 335ec6fa0f6c66a5fd745ac0a3fe346862319cf7
bgK
bastien.bouclet at gmail.com
Sun Jan 5 12:39:06 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2f2e18fba4 MOHAWK: RIVEN: Save the options to ConfMan when the game is not started
ab024c973c MOHAWK: MYST: Save the options to ConfMan when the game is not started
f07b0091f5 CLOUD: Only download saves when necessary
335ec6fa0f 3DS: Add missing makefile dependency
Commit: 2f2e18fba4623847b59124a41f16cfa491796604
https://github.com/scummvm/scummvm/commit/2f2e18fba4623847b59124a41f16cfa491796604
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2020-01-05T13:32:30+01:00
Commit Message:
MOHAWK: RIVEN: Save the options to ConfMan when the game is not started
That way changes made while on the main menu with no game started are
persisted across sessions. When a game is started, the options are saved
to the savegame as previously.
(cherry picked from commit 998bd303c636e6da5d50edaa4890bedc730f5a11)
Changed paths:
engines/mohawk/dialogs.cpp
engines/mohawk/dialogs.h
engines/mohawk/riven.cpp
engines/mohawk/riven.h
engines/mohawk/riven_vars.cpp
diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp
index 9be05a1..154b1b1 100644
--- a/engines/mohawk/dialogs.cpp
+++ b/engines/mohawk/dialogs.cpp
@@ -296,20 +296,33 @@ RivenOptionsDialog::RivenOptionsDialog(MohawkEngine_Riven* vm) :
RivenOptionsDialog::~RivenOptionsDialog() {
}
-void RivenOptionsDialog::open() {
- MohawkOptionsDialog::open();
+bool RivenOptionsDialog::getZipMode() const {
+ return _zipModeCheckbox->getState();
+}
+
+void RivenOptionsDialog::setZipMode(bool enabled) {
+ _zipModeCheckbox->setState(enabled);
+}
+
+bool RivenOptionsDialog::getWaterEffect() const {
+ return _waterEffectCheckbox->getState();
+}
+
+void RivenOptionsDialog::setWaterEffect(bool enabled) {
+ _waterEffectCheckbox->setState(enabled);
+}
+
+uint32 RivenOptionsDialog::getTransitions() const {
+ return _transitionModePopUp->getSelectedTag();
+}
- _zipModeCheckbox->setState(_vm->_vars["azip"] != 0);
- _waterEffectCheckbox->setState(_vm->_vars["waterenabled"] != 0);
- _transitionModePopUp->setSelectedTag(_vm->_vars["transitionmode"]);
+void RivenOptionsDialog::setTransitions(uint32 mode) {
+ _transitionModePopUp->setSelectedTag(mode);
}
void RivenOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case GUI::kOKCmd:
- _vm->_vars["azip"] = _zipModeCheckbox->getState() ? 1 : 0;
- _vm->_vars["waterenabled"] = _waterEffectCheckbox->getState() ? 1 : 0;
- _vm->_vars["transitionmode"] = _transitionModePopUp->getSelectedTag();
setResult(1);
close();
break;
diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h
index 03b9643..a23d251 100644
--- a/engines/mohawk/dialogs.h
+++ b/engines/mohawk/dialogs.h
@@ -80,6 +80,7 @@ public:
~MohawkOptionsDialog() override;
void reflowLayout() override;
+ int getResult() const { return GUI::Dialog::getResult(); }
void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) override;
};
@@ -153,9 +154,14 @@ public:
explicit RivenOptionsDialog(MohawkEngine_Riven *vm);
~RivenOptionsDialog() override;
- void open() override;
void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) override;
+ bool getZipMode() const;
+ void setZipMode(bool enabled);
+ bool getWaterEffect() const;
+ void setWaterEffect(bool enabled);
+ uint32 getTransitions() const;
+ void setTransitions(uint32 mode);
private:
MohawkEngine_Riven *_vm;
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index 2545c68..1843de9 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -122,6 +122,10 @@ Common::Error MohawkEngine_Riven::run() {
return Common::kAudioDeviceInitFailed;
}
+ ConfMan.registerDefault("zip_mode", false);
+ ConfMan.registerDefault("water_effects", true);
+ ConfMan.registerDefault("transition_mode", kRivenTransitionModeFastest);
+
// Let's try to open the installer file (it holds extras.mhk)
// Though, we set a low priority to prefer the extracted version
if (_installerArchive.open("arcriven.z"))
@@ -387,6 +391,17 @@ void MohawkEngine_Riven::pauseEngineIntern(bool pause) {
}
}
+uint32 MohawkEngine_Riven::sanitizeTransitionMode(uint32 mode) {
+ if (mode != kRivenTransitionModeDisabled
+ && mode != kRivenTransitionModeFastest
+ && mode != kRivenTransitionModeNormal
+ && mode != kRivenTransitionModeBest) {
+ return kRivenTransitionModeFastest;
+ }
+
+ return mode;
+}
+
// Stack/Card-Related Functions
void MohawkEngine_Riven::changeToStack(uint16 stackId) {
@@ -666,6 +681,8 @@ void MohawkEngine_Riven::startNewGame() {
_zipModeData.clear();
+ _gfx->setTransitionMode((RivenTransitionMode) _vars["transitionmode"]);
+
setTotalPlayTime(0);
}
@@ -820,8 +837,33 @@ void MohawkEngine_Riven::setGameEnded() {
}
void MohawkEngine_Riven::runOptionsDialog() {
+ if (isGameStarted()) {
+ _optionsDialog->setZipMode(_vars["azip"] != 0);
+ _optionsDialog->setWaterEffect(_vars["waterenabled"] != 0);
+ _optionsDialog->setTransitions(_vars["transitionmode"]);
+ } else {
+ _optionsDialog->setZipMode(ConfMan.getBool("zip_mode"));
+ _optionsDialog->setWaterEffect(ConfMan.getBool("water_effects"));
+
+ uint32 transitions = ConfMan.getInt("transition_mode");
+ _optionsDialog->setTransitions(sanitizeTransitionMode(transitions));
+ }
+
runDialog(*_optionsDialog);
+ if (_optionsDialog->getResult() > 0) {
+ if (isGameStarted()) {
+ _vars["azip"] = _optionsDialog->getZipMode() ? 1 : 0;
+ _vars["waterenabled"] = _optionsDialog->getWaterEffect() ? 1 : 0;
+ _vars["transitionmode"] = _optionsDialog->getTransitions();
+ } else {
+ ConfMan.setBool("zip_mode", _optionsDialog->getZipMode());
+ ConfMan.setBool("water_effects", _optionsDialog->getWaterEffect());
+ ConfMan.setInt("transition_mode", _optionsDialog->getTransitions());
+ ConfMan.flushToDisk();
+ }
+ }
+
if (hasGameEnded()) {
// Attempt to autosave before exiting
tryAutoSaving();
diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h
index 7a0d8b5..fa82f92 100644
--- a/engines/mohawk/riven.h
+++ b/engines/mohawk/riven.h
@@ -135,6 +135,7 @@ private:
void initVars();
void pauseEngineIntern(bool) override;
+ uint32 sanitizeTransitionMode(uint32 mode);
public:
// Stack/card/script funtions
RivenStack *constructStackById(uint16 id);
diff --git a/engines/mohawk/riven_vars.cpp b/engines/mohawk/riven_vars.cpp
index e2166c9..e79d418 100644
--- a/engines/mohawk/riven_vars.cpp
+++ b/engines/mohawk/riven_vars.cpp
@@ -21,6 +21,7 @@
*/
#include "common/str.h"
+#include "common/config-manager.h"
#include "mohawk/riven.h"
#include "mohawk/riven_stack.h"
@@ -302,7 +303,8 @@ void MohawkEngine_Riven::initVars() {
_vars["blabpage"] = 1;
_vars["bidvlv"] = 1;
_vars["bvise"] = 1;
- _vars["waterenabled"] = 1;
+ _vars["azip"] = ConfMan.getBool("zip_mode");
+ _vars["waterenabled"] = ConfMan.getBool("water_effects");
_vars["ogehnpage"] = 1;
_vars["bblrsw"] = 1;
_vars["ocage"] = 1;
@@ -319,9 +321,11 @@ void MohawkEngine_Riven::initVars() {
_vars["gpinpos"] = 1;
_vars["grviewmpos"] = 1617;
_vars["omusicplayer"] = 1;
- _vars["transitionmode"] = kRivenTransitionModeFastest;
_vars["tdomeelev"] = 1;
+ uint32 transitions = ConfMan.getInt("transition_mode");
+ _vars["transitionmode"] = sanitizeTransitionMode(transitions);
+
// Randomize the telescope combination
uint32 &teleCombo = _vars["tcorrectorder"];
for (byte i = 0; i < 5; i++) {
Commit: ab024c973c519dfe5944ca99328af80ab2d7d974
https://github.com/scummvm/scummvm/commit/ab024c973c519dfe5944ca99328af80ab2d7d974
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2020-01-05T13:32:41+01:00
Commit Message:
MOHAWK: MYST: Save the options to ConfMan when the game is not started
(cherry picked from commit 8a02d0efad8a93be2525c3e439eb0b52f64d647a)
Changed paths:
engines/mohawk/dialogs.cpp
engines/mohawk/dialogs.h
engines/mohawk/myst.cpp
engines/mohawk/myst.h
engines/mohawk/myst_state.cpp
engines/mohawk/riven.cpp
diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp
index 154b1b1..667cb34 100644
--- a/engines/mohawk/dialogs.cpp
+++ b/engines/mohawk/dialogs.cpp
@@ -186,9 +186,6 @@ void MystOptionsDialog::open() {
if (_vm->getFeatures() & GF_DEMO)
_zipModeCheckbox->setEnabled(false);
- _zipModeCheckbox->setState(_vm->_gameState->_globals.zipMode);
- _transitionsCheckbox->setState(_vm->_gameState->_globals.transitions);
-
if (_vm->getFeatures() & GF_25TH) {
// The 25th anniversary version has a main menu, no need to show these buttons here
_loadButton->setVisible(false);
@@ -247,15 +244,12 @@ void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, ui
setResult(kActionGoToMenu);
close();
break;
- case kQuitCmd: {
+ case kQuitCmd:
setResult(kActionShowCredits);
close();
- }
break;
case GUI::kOKCmd:
- _vm->_gameState->_globals.zipMode = _zipModeCheckbox->getState();
- _vm->_gameState->_globals.transitions = _transitionsCheckbox->getState();
- setResult(kActionNone);
+ setResult(kActionSaveSettings);
close();
break;
default:
@@ -275,6 +269,22 @@ void MystOptionsDialog::setCanReturnToMenu(bool canReturnToMenu) {
_canReturnToMenu = canReturnToMenu;
}
+bool MystOptionsDialog::getZipMode() const {
+ return _zipModeCheckbox->getState();
+}
+
+void MystOptionsDialog::setZipMode(bool enabled) {
+ _zipModeCheckbox->setState(enabled);
+}
+
+bool MystOptionsDialog::getTransitions() const {
+ return _transitionsCheckbox->getState();
+}
+
+void MystOptionsDialog::setTransitions(bool enabled) {
+ _transitionsCheckbox->setState(enabled);
+}
+
#endif
#ifdef ENABLE_RIVEN
diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h
index a23d251..514e5e0 100644
--- a/engines/mohawk/dialogs.h
+++ b/engines/mohawk/dialogs.h
@@ -80,7 +80,6 @@ public:
~MohawkOptionsDialog() override;
void reflowLayout() override;
- int getResult() const { return GUI::Dialog::getResult(); }
void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) override;
};
@@ -96,7 +95,7 @@ public:
~MystOptionsDialog() override;
enum ResultAction {
- kActionNone = 1,
+ kActionSaveSettings = 1,
kActionDropPage,
kActionShowMap,
kActionGoToMenu,
@@ -107,6 +106,11 @@ public:
void setCanShowMap(bool canShowMap);
void setCanReturnToMenu(bool canReturnToMenu);
+ bool getZipMode() const;
+ void setZipMode(bool enabled);
+ bool getTransitions() const;
+ void setTransitions(bool enabled);
+
void open() override;
void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) override;
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index 94545bfb..9d1a1e1 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -398,6 +398,9 @@ Common::Error MohawkEngine_Myst::run() {
return Common::kAudioDeviceInitFailed;
}
+ ConfMan.registerDefault("zip_mode", false);
+ ConfMan.registerDefault("transition_mode", false);
+
_gfx = new MystGraphics(this);
_video = new VideoManager(this);
_sound = new MystSound(this);
@@ -610,6 +613,14 @@ void MohawkEngine_Myst::runOptionsDialog() {
stack = _stack;
}
+ if (isGameStarted()) {
+ _optionsDialog->setZipMode(_gameState->_globals.zipMode);
+ _optionsDialog->setTransitions(_gameState->_globals.transitions);
+ } else {
+ _optionsDialog->setZipMode(ConfMan.getBool("zip_mode"));
+ _optionsDialog->setTransitions(ConfMan.getBool("transition_mode"));
+ }
+
_optionsDialog->setCanDropPage(actionsAllowed && _gameState->_globals.heldPage != kNoPage);
_optionsDialog->setCanShowMap(actionsAllowed && stack->getMap());
_optionsDialog->setCanReturnToMenu(actionsAllowed && stack->getStackId() != kDemoStack);
@@ -647,6 +658,16 @@ void MohawkEngine_Myst::runOptionsDialog() {
quitGame();
}
break;
+ case MystOptionsDialog::kActionSaveSettings:
+ if (isGameStarted()) {
+ _gameState->_globals.zipMode = _optionsDialog->getZipMode();
+ _gameState->_globals.transitions = _optionsDialog->getTransitions();
+ } else {
+ ConfMan.setBool("zip_mode", _optionsDialog->getZipMode());
+ ConfMan.setBool("transition_mode", _optionsDialog->getTransitions());
+ ConfMan.flushToDisk();
+ }
+ break;
default:
if (_optionsDialog->getLoadSlot() >= 0)
loadGameState(_optionsDialog->getLoadSlot());
@@ -1140,6 +1161,10 @@ void MohawkEngine_Myst::goToMainMenu() {
_gfx->copyBackBufferToScreen(Common::Rect(544, 333));
}
+bool MohawkEngine_Myst::isGameStarted() const {
+ return _prevStack || (_stack->getStackId() != kMenuStack);
+}
+
void MohawkEngine_Myst::resumeFromMainMenu() {
_card->leave();
_card.reset();
diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h
index 1080fa6..22e6982 100644
--- a/engines/mohawk/myst.h
+++ b/engines/mohawk/myst.h
@@ -215,6 +215,7 @@ private:
void pauseEngineIntern(bool pause) override;
void goToMainMenu();
+ bool isGameStarted() const;
void dropPage();
diff --git a/engines/mohawk/myst_state.cpp b/engines/mohawk/myst_state.cpp
index 85e81da..782d83e 100644
--- a/engines/mohawk/myst_state.cpp
+++ b/engines/mohawk/myst_state.cpp
@@ -24,6 +24,7 @@
#include "mohawk/myst.h"
#include "mohawk/myst_state.h"
+#include "common/config-manager.h"
#include "common/debug.h"
#include "common/serializer.h"
#include "common/system.h"
@@ -94,6 +95,9 @@ void MystGameState::reset() {
_globals.u1 = 1;
_globals.ending = kDniNotVisited;
+ _globals.zipMode = ConfMan.getBool("zip_mode");
+ _globals.transitions = ConfMan.getBool("transition_mode");
+
// Library Bookcase Door - Default to Up
_myst.libraryBookcaseDoor = 1;
// Dock Imager Numeric Selection - Default to 67
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index 1843de9..01977e9 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -849,9 +849,7 @@ void MohawkEngine_Riven::runOptionsDialog() {
_optionsDialog->setTransitions(sanitizeTransitionMode(transitions));
}
- runDialog(*_optionsDialog);
-
- if (_optionsDialog->getResult() > 0) {
+ if (runDialog(*_optionsDialog) > 0) {
if (isGameStarted()) {
_vars["azip"] = _optionsDialog->getZipMode() ? 1 : 0;
_vars["waterenabled"] = _optionsDialog->getWaterEffect() ? 1 : 0;
Commit: f07b0091f52a209c1d19f79c7170c8c68402f531
https://github.com/scummvm/scummvm/commit/f07b0091f52a209c1d19f79c7170c8c68402f531
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2020-01-05T13:32:56+01:00
Commit Message:
CLOUD: Only download saves when necessary
Prevents the save/load dialog from refreshing and loosing the selection
when there is no file to download.
(cherry picked from commit c847476a932ed6798444e275232b38a3b6048286)
Changed paths:
backends/cloud/savessyncrequest.cpp
diff --git a/backends/cloud/savessyncrequest.cpp b/backends/cloud/savessyncrequest.cpp
index 6e0efc5..439642b 100644
--- a/backends/cloud/savessyncrequest.cpp
+++ b/backends/cloud/savessyncrequest.cpp
@@ -159,7 +159,11 @@ void SavesSyncRequest::directoryListedCallback(Storage::ListDirectoryResponse re
_totalFilesToHandle = _filesToDownload.size() + _filesToUpload.size();
//start downloading files
- downloadNextFile();
+ if (!_filesToDownload.empty()) {
+ downloadNextFile();
+ } else {
+ uploadNextFile();
+ }
}
void SavesSyncRequest::directoryListedErrorCallback(Networking::ErrorResponse error) {
Commit: 335ec6fa0f6c66a5fd745ac0a3fe346862319cf7
https://github.com/scummvm/scummvm/commit/335ec6fa0f6c66a5fd745ac0a3fe346862319cf7
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2020-01-05T13:33:07+01:00
Commit Message:
3DS: Add missing makefile dependency
Make cannot automatically deduce that the shader assembler generates the
.h file that is required to build osystem-graphics.cpp.
(cherry picked from commit 2c6dedaec8e58a0755741d8536dd053f7b2bb092)
Changed paths:
backends/platform/3ds/3ds.mk
diff --git a/backends/platform/3ds/3ds.mk b/backends/platform/3ds/3ds.mk
index 0954737..923699c 100644
--- a/backends/platform/3ds/3ds.mk
+++ b/backends/platform/3ds/3ds.mk
@@ -101,3 +101,6 @@ vpath %.shlist $(srcdir)
%.shbin.o : %.shlist
@echo $(notdir $<)
@$(call shader-as,$(foreach file,$(shell cat $<),$(dir $<)/$(file)))
+
+# osystem-graphics.cpp includes shader_shbin.h that is generated by the shader assembler
+backends/platform/3ds/osystem-graphics.o: backends/platform/3ds/shader.shbin.o
More information about the Scummvm-git-logs
mailing list