[Scummvm-cvs-logs] scummvm master -> efac5c42d7d6ec91440e7c03e8205ce474e5437d

bgK bastien.bouclet at gmail.com
Sat May 14 19:56:50 CEST 2011


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:
0127a888fb MOHAWK: Fix Myst backgrounds being draw one pixel too low on some cards.
c7f3a4f578 MOHAWK: Implement page drop button for Myst
efac5c42d7 MOHAWK: Fix background music restarting when changing cards in original Myst


Commit: 0127a888fb821a6d9ef761b460cbb541bbfc2650
    https://github.com/scummvm/scummvm/commit/0127a888fb821a6d9ef761b460cbb541bbfc2650
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2011-05-14T10:54:30-07:00

Commit Message:
MOHAWK: Fix Myst backgrounds being draw one pixel too low on some cards.

Happened in Myst's Generator cave.

Changed paths:
    engines/mohawk/myst.cpp



diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index f7f1edf..44bfd16 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -550,7 +550,7 @@ uint16 MohawkEngine_Myst::getCardBackgroundId() {
 }
 
 void MohawkEngine_Myst::drawCardBackground() {
-	_gfx->copyImageToBackBuffer(getCardBackgroundId(), Common::Rect(0, 0, 544, 333));
+	_gfx->copyImageToBackBuffer(getCardBackgroundId(), Common::Rect(0, 0, 544, 332));
 }
 
 void MohawkEngine_Myst::changeToCard(uint16 card, bool updateScreen) {


Commit: c7f3a4f578b86b54572500322cc55cf0893634c9
    https://github.com/scummvm/scummvm/commit/c7f3a4f578b86b54572500322cc55cf0893634c9
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2011-05-14T10:54:32-07:00

Commit Message:
MOHAWK: Implement page drop button for Myst

Changed paths:
    engines/mohawk/dialogs.cpp
    engines/mohawk/dialogs.h
    engines/mohawk/myst.cpp
    engines/mohawk/myst.h



diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp
index eee5b15..22a9d2d 100644
--- a/engines/mohawk/dialogs.cpp
+++ b/engines/mohawk/dialogs.cpp
@@ -79,7 +79,8 @@ void PauseDialog::handleKeyDown(Common::KeyState state) {
 enum {
 	kZipCmd = 'ZIPM',
 	kTransCmd = 'TRAN',
-	kWaterCmd = 'WATR'
+	kWaterCmd = 'WATR',
+	kDropCmd = 'DROP'
 };
 
 #ifdef ENABLE_MYST
@@ -87,6 +88,7 @@ enum {
 MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) : GUI::OptionsDialog("", 120, 120, 360, 200), _vm(vm) {
 	_zipModeCheckbox = new GUI::CheckboxWidget(this, 15, 10, 300, 15, _("~Z~ip Mode Activated"), 0, kZipCmd);
 	_transitionsCheckbox = new GUI::CheckboxWidget(this, 15, 30, 300, 15, _("~T~ransitions Enabled"), 0, kTransCmd);
+	_dropPageButton = new GUI::ButtonWidget(this, 15, 60, 100, 25, _("~D~rop Page"), 0, kDropCmd);
 
 	new GUI::ButtonWidget(this, 95, 160, 120, 25, _("~O~K"), 0, GUI::kOKCmd);
 	new GUI::ButtonWidget(this, 225, 160, 120, 25, _("~C~ancel"), 0, GUI::kCloseCmd);
@@ -98,6 +100,8 @@ MystOptionsDialog::~MystOptionsDialog() {
 void MystOptionsDialog::open() {
 	Dialog::open();
 
+	_dropPageButton->setEnabled(_vm->_gameState->_globals.heldPage != 0);
+
 	_zipModeCheckbox->setState(_vm->_gameState->_globals.zipMode);
 	_transitionsCheckbox->setState(_vm->_gameState->_globals.transitions);
 }
@@ -110,6 +114,10 @@ void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, ui
 	case kTransCmd:
 		_vm->_gameState->_globals.transitions = _transitionsCheckbox->getState();
 		break;
+	case kDropCmd:
+		_vm->_needsPageDrop = true;
+		close();
+		break;
 	case GUI::kCloseCmd:
 		close();
 		break;
diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h
index 5cadf95..8aa9d0f 100644
--- a/engines/mohawk/dialogs.h
+++ b/engines/mohawk/dialogs.h
@@ -81,6 +81,7 @@ private:
 	MohawkEngine_Myst *_vm;
 	GUI::CheckboxWidget *_zipModeCheckbox;
 	GUI::CheckboxWidget *_transitionsCheckbox;
+	GUI::ButtonWidget *_dropPageButton;
 };
 
 #endif
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index 44bfd16..4ee078c 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -340,7 +340,13 @@ Common::Error MohawkEngine_Myst::run() {
 						drawResourceRects();
 					break;
 				case Common::KEYCODE_F5:
+					_needsPageDrop = false;
 					runDialog(*_optionsDialog);
+
+					if (_needsPageDrop) {
+						dropPage();
+						_needsPageDrop = false;
+					}
 					break;
 				default:
 					break;
@@ -1178,4 +1184,39 @@ bool MohawkEngine_Myst::canSaveGameStateCurrently() {
 	return false;
 }
 
+void MohawkEngine_Myst::dropPage() {
+    uint16 page = _gameState->_globals.heldPage;
+	bool whitePage = page == 13;
+	bool bluePage = page - 1 < 6;
+    bool redPage = page - 7 < 6;
+
+    // Drop page
+    _gameState->_globals.heldPage = 0;
+
+    // Redraw page area
+    if (whitePage && _gameState->_globals.currentAge == 2) {
+    	redrawArea(41);
+    } else if (bluePage) {
+    	if (page == 6) {
+    		if (_gameState->_globals.currentAge == 2)
+    			redrawArea(24);
+    	} else {
+    		redrawArea(103);
+    	}
+    } else if (redPage) {
+    	if (page == 12) {
+    		if (_gameState->_globals.currentAge == 2)
+    			redrawArea(25);
+    	} else if (page == 10) {
+    		if (_gameState->_globals.currentAge == 1)
+    			redrawArea(35);
+    	} else {
+    		redrawArea(102);
+    	}
+    }
+
+    setMainCursor(kDefaultMystCursor);
+    checkCursorHints();
+}
+
 } // End of namespace Mohawk
diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h
index aeb0d4c..e123883 100644
--- a/engines/mohawk/myst.h
+++ b/engines/mohawk/myst.h
@@ -165,6 +165,7 @@ public:
 
 	bool _tweaksEnabled;
 	bool _needsUpdate;
+	bool _needsPageDrop;
 
 	MystView _view;
 	MystGraphics *_gfx;
@@ -207,6 +208,8 @@ private:
 
 	bool _runExitScript;
 
+	void dropPage();
+
 	void loadCard();
 	void unloadCard();
 	void runInitScript();


Commit: efac5c42d7d6ec91440e7c03e8205ce474e5437d
    https://github.com/scummvm/scummvm/commit/efac5c42d7d6ec91440e7c03e8205ce474e5437d
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2011-05-14T10:54:34-07:00

Commit Message:
MOHAWK: Fix background music restarting when changing cards in original Myst

Changed paths:
    engines/mohawk/sound.cpp



diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp
index 2428f1b..6144c89 100644
--- a/engines/mohawk/sound.cpp
+++ b/engines/mohawk/sound.cpp
@@ -616,9 +616,16 @@ Audio::SoundHandle *Sound::replaceBackgroundMyst(uint16 id, uint16 volume) {
 
 	Common::String name = _vm->getResourceName(ID_MSND, convertMystID(id));
 
+	// Only the first eight characters need to be the same to have a match
+	Common::String prefix;
+	if (name.size() >= 8)
+		prefix = Common::String(name.c_str(), name.c_str() + 8);
+	else
+		prefix = name;
+
 	// Check if sound is already playing
 	if (_mystBackgroundSound.type == kUsedHandle && _vm->_mixer->isSoundHandleActive(_mystBackgroundSound.handle)
-			&& name.equals(_vm->getResourceName(ID_MSND, convertMystID(_mystBackgroundSound.id))))
+			&& _vm->getResourceName(ID_MSND, convertMystID(_mystBackgroundSound.id)).hasPrefix(prefix))
 		return &_mystBackgroundSound.handle;
 
 	// Stop old background sound






More information about the Scummvm-git-logs mailing list