[Scummvm-cvs-logs] SF.net SVN: scummvm:[43991] scummvm/trunk/engines/kyra

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sun Sep 6 19:04:58 CEST 2009


Revision: 43991
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43991&view=rev
Author:   athrxx
Date:     2009-09-06 17:04:58 +0000 (Sun, 06 Sep 2009)

Log Message:
-----------
LOL: fixed bug in delete menu code

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui.cpp
    scummvm/trunk/engines/kyra/gui_lol.cpp

Modified: scummvm/trunk/engines/kyra/gui.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui.cpp	2009-09-06 13:26:14 UTC (rev 43990)
+++ scummvm/trunk/engines/kyra/gui.cpp	2009-09-06 17:04:58 UTC (rev 43991)
@@ -385,7 +385,9 @@
 int GUI::getNextSavegameSlot() {
 	Common::InSaveFile *in;
 
-	for (int i = 1; i < 990; i++) {
+	int start = _vm->gameFlags().gameID == GI_LOL ? 0 : 1;
+
+	for (int i = start; i < 990; i++) {
 		if ((in = _vm->_saveFileMan->openForLoading(_vm->getSavegameFilename(i))))
 			delete in;
 		else

Modified: scummvm/trunk/engines/kyra/gui_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lol.cpp	2009-09-06 13:26:14 UTC (rev 43990)
+++ scummvm/trunk/engines/kyra/gui_lol.cpp	2009-09-06 17:04:58 UTC (rev 43991)
@@ -2662,7 +2662,7 @@
 
 	_newMenu = &_savenameMenu;
 	int16 s = (int16)button->arg;
-	_menuResult = _saveMenu.item[-s - 2].saveSlot;
+	_menuResult = _saveMenu.item[-s - 2].saveSlot + 1;
 	_saveDescription = (char*)_vm->_tempBuffer5120 + 1000;
 	_saveDescription[0] = 0;
 	if (_saveMenu.item[-s - 2].saveSlot != -3)
@@ -2682,7 +2682,7 @@
 	_choiceMenu.menuNameId = 0x400b;
 	_newMenu = &_choiceMenu;
 	int16 s = (int16)button->arg;
-	_menuResult = _deleteMenu.item[-s - 2].saveSlot;
+	_menuResult = _deleteMenu.item[-s - 2].saveSlot + 1;
 
 	return 1;
 }
@@ -2817,7 +2817,7 @@
 
 		Util::convertDOSToISO(_saveDescription);
 
-		int slot = _menuResult == -3 ? getNextSavegameSlot() : _menuResult;
+		int slot = _menuResult == -2 ? getNextSavegameSlot() : _menuResult - 1;
 		Graphics::Surface thumb;
 		createScreenThumbnail(thumb);
 		_vm->saveGameState(slot, _saveDescription, &thumb);
@@ -2838,15 +2838,13 @@
 		if (_lastMenu == &_mainMenu) {
 			_vm->quitGame();
 		} else if (_lastMenu == &_deleteMenu) {
-			_vm->_saveFileMan->removeSavefile(_vm->getSavegameFilename(_menuResult));
-			Common::Array<int>::iterator i = Common::find(_saveSlots.begin(), _saveSlots.end(), _menuResult);
-			while (i != _saveSlots.end()) {
-				++i;
-				if (i == _saveSlots.end())
-					break;
+			_vm->_saveFileMan->removeSavefile(_vm->getSavegameFilename(_menuResult - 1));
+			Common::Array<int>::iterator i = Common::find(_saveSlots.begin(), _saveSlots.end(), _menuResult - 1);
+			while (i != _saveSlots.begin()) {
+				--i;
 				// We are only renaming all savefiles until we get some slots missing
 				// Also not rename quicksave slot filenames
-				if (*(i-1) != *i || *i >= 990)
+				if (/**(i-1) != *i ||*/ *i >= 990)
 					break;
 				Common::String oldName = _vm->getSavegameFilename(*i);
 				Common::String newName = _vm->getSavegameFilename(*i-1);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list