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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sat Aug 2 13:57:07 CEST 2008


Revision: 33519
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33519&view=rev
Author:   lordhoto
Date:     2008-08-02 11:57:06 +0000 (Sat, 02 Aug 2008)

Log Message:
-----------
Proper fix for bug #2035459 "KYRA1: long savegame names cause garbage".

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_lok.cpp
    scummvm/trunk/engines/kyra/gui_lok.h
    scummvm/trunk/engines/kyra/gui_v2.cpp

Modified: scummvm/trunk/engines/kyra/gui_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lok.cpp	2008-08-02 11:40:09 UTC (rev 33518)
+++ scummvm/trunk/engines/kyra/gui_lok.cpp	2008-08-02 11:57:06 UTC (rev 33519)
@@ -530,7 +530,7 @@
 
 void GUI_LoK::setupSavegames(Menu &menu, int num) {
 	Common::InSaveFile *in;
-	static char savenames[5][31];
+	static char savenames[5][35];
 	uint8 startSlot;
 	assert(num <= 5);
 
@@ -549,7 +549,8 @@
 	KyraEngine_v1::SaveHeader header;
 	for (int i = startSlot; i < num && uint(_savegameOffset + i) < _saveSlots.size(); i++) {
 		if ((in = _vm->openSaveForReading(_vm->getSavegameFilename(_saveSlots[i + _savegameOffset]), header))) {
-			strncpy(savenames[i], header.description.c_str(), 31);
+			strncpy(savenames[i], header.description.c_str(), ARRAYSIZE(savenames[0]));
+			savenames[i][34] = 0;
 			menu.item[i].itemString = savenames[i];
 			menu.item[i].enabled = 1;
 			menu.item[i].saveSlot = _saveSlots[i + _savegameOffset];

Modified: scummvm/trunk/engines/kyra/gui_lok.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_lok.h	2008-08-02 11:40:09 UTC (rev 33518)
+++ scummvm/trunk/engines/kyra/gui_lok.h	2008-08-02 11:57:06 UTC (rev 33519)
@@ -162,7 +162,7 @@
 	bool _menuRestoreScreen;
 	uint8 _toplevelMenu;
 	int _savegameOffset;
-	char _savegameName[40];
+	char _savegameName[35];
 	const char *_specialSavegameString;
 	Common::KeyState _keyPressed;
 	int8 _mouseWheel;

Modified: scummvm/trunk/engines/kyra/gui_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.cpp	2008-08-02 11:40:09 UTC (rev 33518)
+++ scummvm/trunk/engines/kyra/gui_v2.cpp	2008-08-02 11:57:06 UTC (rev 33519)
@@ -456,6 +456,7 @@
 	for (int i = startSlot; i < num && uint(_savegameOffset + i) < _saveSlots.size(); ++i) {
 		if ((in = _vm->openSaveForReading(_vm->getSavegameFilename(_saveSlots[i + _savegameOffset]), header)) != 0) {
 			strncpy(getTableString(menu.item[i].itemId), header.description.c_str(), 80);
+			getTableString(menu.item[i].itemId)[79] = 0;
 			menu.item[i].saveSlot = _saveSlots[i + _savegameOffset];
 			menu.item[i].enabled = true;
 			delete in;


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