[Scummvm-cvs-logs] scummvm master -> 879890e021028983dda5af3ea83156357ba239a6

bluegr bluegr at gmail.com
Sat Oct 18 19:47:24 CEST 2014


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:
f0bcacc7b3 MADS: Reset screen clip bounds before copying over a new screen
ad1aedec76 MADS: Implement the Rex Cancel button in the game options dialog
879890e021 MADS: Clear scene sprites and objects when showing a game menu


Commit: f0bcacc7b3ad9bc5bb88b9b7db8d36977e96fa08
    https://github.com/scummvm/scummvm/commit/f0bcacc7b3ad9bc5bb88b9b7db8d36977e96fa08
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-10-18T20:12:42+03:00

Commit Message:
MADS: Reset screen clip bounds before copying over a new screen

This is needed for the in-game menu, where a dialog spawns another one

Changed paths:
    engines/mads/dialogs.cpp



diff --git a/engines/mads/dialogs.cpp b/engines/mads/dialogs.cpp
index 5ea8fb1..5e38f34 100644
--- a/engines/mads/dialogs.cpp
+++ b/engines/mads/dialogs.cpp
@@ -457,6 +457,7 @@ void FullScreenDialog::display() {
 	_vm->_palette->setLowRange();
 	_vm->_screen.hLine(0, 20, MADS_SCREEN_WIDTH, 2);
 	_vm->_screen.hLine(0, 179, MADS_SCREEN_WIDTH, 2);
+	_vm->_screen.resetClipBounds();
 	_vm->_screen.copyRectToScreen(Common::Rect(0, 0, MADS_SCREEN_WIDTH, MADS_SCREEN_HEIGHT));
 
 	// Restrict the screen to the area between the two lines


Commit: ad1aedec7687019b44066bc7695f4d227cee1a5b
    https://github.com/scummvm/scummvm/commit/ad1aedec7687019b44066bc7695f4d227cee1a5b
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-10-18T20:19:14+03:00

Commit Message:
MADS: Implement the Rex Cancel button in the game options dialog

The current options are now saved when the dialog opens, and are
restored to their original values if the user cancels

Changed paths:
    engines/mads/nebular/dialogs_nebular.cpp



diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp
index 1900a12..6e0e782 100644
--- a/engines/mads/nebular/dialogs_nebular.cpp
+++ b/engines/mads/nebular/dialogs_nebular.cpp
@@ -1061,6 +1061,14 @@ void OptionsDialog::display() {
 
 void OptionsDialog::show() {
 	Nebular::GameNebular &game = *(Nebular::GameNebular *)_vm->_game;
+
+	// Previous options, restored when cancel is selected
+	bool prevEasyMouse = _vm->_easyMouse;
+	bool prevInvObjectsAnimated = _vm->_invObjectsAnimated;
+	bool prevTextWindowStill = _vm->_textWindowStill;
+	ScreenFade prevScreenFade = _vm->_screenFade;
+	StoryMode prevStoryMode = game._storyMode;
+
 	do {
 		_selectedLine = 0;
 		GameDialog::show();
@@ -1105,10 +1113,15 @@ void OptionsDialog::show() {
 
 	switch (_selectedLine) {
 	case 8:	// Done
-		// TODO: Copy from temporary config
+		// New options will be applied
 		break;
 	case 9:	// Cancel
-		// TODO: Ignore all changes to temporary config
+		// Revert all options from the saved ones
+		_vm->_easyMouse = prevEasyMouse;
+		_vm->_invObjectsAnimated = prevInvObjectsAnimated;
+		_vm->_textWindowStill = prevTextWindowStill;
+		_vm->_screenFade = prevScreenFade;
+		game._storyMode = prevStoryMode;
 		break;
 	default:
 		break;


Commit: 879890e021028983dda5af3ea83156357ba239a6
    https://github.com/scummvm/scummvm/commit/879890e021028983dda5af3ea83156357ba239a6
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-10-18T20:46:17+03:00

Commit Message:
MADS: Clear scene sprites and objects when showing a game menu

This shows the game menu, albeit with the wrong palette

Changed paths:
    engines/mads/nebular/dialogs_nebular.cpp



diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp
index 6e0e782..f51d046 100644
--- a/engines/mads/nebular/dialogs_nebular.cpp
+++ b/engines/mads/nebular/dialogs_nebular.cpp
@@ -594,6 +594,9 @@ GameDialog::GameDialog(MADSEngine *vm) : FullScreenDialog(vm) {
 	_vm->_events->waitCursor();
 	scene.clearVocab();
 	scene._dynamicHotspots.clear();
+	// Clear scene sprites and objects
+	scene._spriteSlots.reset();
+	_vm->_game->_screenObjects.clear();
 	_vm->_dialogs->_defaultPosition = Common::Point(-1, -1);
 	_menuSpritesIndex = 0;
 }






More information about the Scummvm-git-logs mailing list