[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