[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