[Scummvm-cvs-logs] SF.net SVN: scummvm:[33518] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Aug 2 13:40:09 CEST 2008
Revision: 33518
http://scummvm.svn.sourceforge.net/scummvm/?rev=33518&view=rev
Author: lordhoto
Date: 2008-08-02 11:40:09 +0000 (Sat, 02 Aug 2008)
Log Message:
-----------
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.h
scummvm/trunk/engines/kyra/saveload.cpp
Modified: scummvm/trunk/engines/kyra/gui_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lok.cpp 2008-08-02 09:24:10 UTC (rev 33517)
+++ scummvm/trunk/engines/kyra/gui_lok.cpp 2008-08-02 11:40:09 UTC (rev 33518)
@@ -673,7 +673,7 @@
length = strlen(_savegameName);
if (_keyPressed.ascii > 31 && _keyPressed.ascii < 127) {
- if (length < 31) {
+ if (length < ARRAYSIZE(_savegameName)-1) {
_savegameName[length] = _keyPressed.ascii;
_savegameName[length+1] = 0;
redrawTextfield();
Modified: scummvm/trunk/engines/kyra/gui_lok.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_lok.h 2008-08-02 09:24:10 UTC (rev 33517)
+++ scummvm/trunk/engines/kyra/gui_lok.h 2008-08-02 11:40:09 UTC (rev 33518)
@@ -162,7 +162,7 @@
bool _menuRestoreScreen;
uint8 _toplevelMenu;
int _savegameOffset;
- char _savegameName[31];
+ char _savegameName[40];
const char *_specialSavegameString;
Common::KeyState _keyPressed;
int8 _mouseWheel;
Modified: scummvm/trunk/engines/kyra/gui_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.h 2008-08-02 09:24:10 UTC (rev 33517)
+++ scummvm/trunk/engines/kyra/gui_v2.h 2008-08-02 11:40:09 UTC (rev 33518)
@@ -188,7 +188,7 @@
// save menu
bool _noSaveProcess;
int _saveSlot;
- char _saveDescription[0x50];
+ char _saveDescription[0x51];
int saveMenu(Button *caller);
int clickSaveSlot(Button *caller);
Modified: scummvm/trunk/engines/kyra/saveload.cpp
===================================================================
--- scummvm/trunk/engines/kyra/saveload.cpp 2008-08-02 09:24:10 UTC (rev 33517)
+++ scummvm/trunk/engines/kyra/saveload.cpp 2008-08-02 11:40:09 UTC (rev 33518)
@@ -95,6 +95,9 @@
if (header.version <= 8) {
char buffer[31];
in->read(buffer, 31);
+ // WORKAROUND: Old savegames could contain a missing termination 0 at the
+ // end so we manually add it.
+ buffer[30] = 0;
header.description = buffer;
} else {
header.description = "";
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