[Scummvm-cvs-logs] SF.net SVN: scummvm:[35591] scummvm/trunk/engines/gob
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sun Dec 28 19:00:19 CET 2008
Revision: 35591
http://scummvm.svn.sourceforge.net/scummvm/?rev=35591&view=rev
Author: drmccoy
Date: 2008-12-28 18:00:19 +0000 (Sun, 28 Dec 2008)
Log Message:
-----------
Fixing the save/load list box's width
Modified Paths:
--------------
scummvm/trunk/engines/gob/inter.cpp
scummvm/trunk/engines/gob/inter.h
scummvm/trunk/engines/gob/inter_v5.cpp
scummvm/trunk/engines/gob/saveload.h
scummvm/trunk/engines/gob/saveload_v6.cpp
Modified: scummvm/trunk/engines/gob/inter.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter.cpp 2008-12-28 17:43:52 UTC (rev 35590)
+++ scummvm/trunk/engines/gob/inter.cpp 2008-12-28 18:00:19 UTC (rev 35591)
@@ -184,6 +184,25 @@
_vm->_util->clearKeyBuf();
}
+void Inter::writeVar(uint32 offset, uint16 type, uint32 value) {
+ switch (type) {
+ case 16:
+ case 18:
+ WRITE_VARO_UINT8(offset, value);
+ break;
+
+ case 17:
+ case 24:
+ case 27:
+ WRITE_VARO_UINT16(offset, value);
+ break;
+
+ default:
+ WRITE_VAR_OFFSET(offset, value);
+ break;
+ }
+}
+
void Inter::funcBlock(int16 retFlag) {
OpFuncParams params;
byte cmd;
Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h 2008-12-28 17:43:52 UTC (rev 35590)
+++ scummvm/trunk/engines/gob/inter.h 2008-12-28 18:00:19 UTC (rev 35591)
@@ -59,6 +59,8 @@
void storeMouse();
void storeKey(int16 key);
+ void writeVar(uint32 offset, uint16 type, uint32 value);
+
void funcBlock(int16 retFlag);
void callSub(int16 retFlag);
Modified: scummvm/trunk/engines/gob/inter_v5.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v5.cpp 2008-12-28 17:43:52 UTC (rev 35590)
+++ scummvm/trunk/engines/gob/inter_v5.cpp 2008-12-28 18:00:19 UTC (rev 35591)
@@ -782,19 +782,20 @@
bool Inter_v5::o5_istrlen(OpFuncParams ¶ms) {
int16 strVar1, strVar2;
int16 len;
+ uint16 type;
if (*_vm->_global->_inter_execPtr == 0x80) {
_vm->_global->_inter_execPtr++;
strVar1 = _vm->_parse->parseVarIndex();
- strVar2 = _vm->_parse->parseVarIndex();
+ strVar2 = _vm->_parse->parseVarIndex(0, &type);
len = _vm->_draw->stringLength(GET_VARO_STR(strVar1), READ_VARO_UINT16(strVar2));
} else {
strVar1 = _vm->_parse->parseVarIndex();
- strVar2 = _vm->_parse->parseVarIndex();
+ strVar2 = _vm->_parse->parseVarIndex(0, &type);
if (_vm->_global->_language == 10) {
// Extra handling for Japanese strings
@@ -807,7 +808,8 @@
len = strlen(GET_VARO_STR(strVar1));
}
- WRITE_VAR_OFFSET(strVar2, len);
+ writeVar(strVar2, type, (int32) len);
+
return false;
}
Modified: scummvm/trunk/engines/gob/saveload.h
===================================================================
--- scummvm/trunk/engines/gob/saveload.h 2008-12-28 17:43:52 UTC (rev 35590)
+++ scummvm/trunk/engines/gob/saveload.h 2008-12-28 18:00:19 UTC (rev 35591)
@@ -438,7 +438,6 @@
StagedSave *_save;
byte _indexBuffer[2900];
- bool _hasIndex;
virtual int getSaveType(const char *fileName);
Modified: scummvm/trunk/engines/gob/saveload_v6.cpp
===================================================================
--- scummvm/trunk/engines/gob/saveload_v6.cpp 2008-12-28 17:43:52 UTC (rev 35590)
+++ scummvm/trunk/engines/gob/saveload_v6.cpp 2008-12-28 18:00:19 UTC (rev 35591)
@@ -50,7 +50,6 @@
sprintf(_saveFiles[0].destName, "%s.s00", targetName);
_varSize = 0;
- _hasIndex = false;
}
SaveLoad_v6::~SaveLoad_v6() {
@@ -145,8 +144,7 @@
}
int32 SaveLoad_v6::getSizeGame(SaveFile &saveFile) {
- if (!_hasIndex)
- return -1;
+ refreshIndex();
Common::SaveFileManager *saveMan = g_system->getSavefileManager();
Common::InSaveFile *in;
@@ -178,11 +176,6 @@
return false;
}
- if (!_hasIndex) {
- warning("No index written yet");
- return false;
- }
-
refreshIndex();
byte *sizes = new byte[size];
@@ -234,7 +227,6 @@
}
_vm->_inter->_variables->copyTo(dataVar, _indexBuffer + offset, 0, size);
- _hasIndex = true;
} else {
int slot = getSlot(offset);
@@ -248,11 +240,6 @@
return false;
}
- if (!_hasIndex) {
- warning("No index written yet");
- return false;
- }
-
SaveLoad::setCurrentSlot(saveFile.destName, slot);
byte sizes[40];
@@ -295,7 +282,9 @@
memset(names, 0, 40);
}
- WRITE_LE_UINT32(_indexBuffer + 160, max + 1);
+ memset(_indexBuffer + 40, 0xFF, 40); // Joker
+ _indexBuffer[159] = 0x03; // # of joker unused
+ WRITE_LE_UINT32(_indexBuffer + 160, max + 1); // # of saves
}
} // End of namespace Gob
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