[Scummvm-cvs-logs] SF.net SVN: scummvm:[52179] scummvm/trunk/engines/sci/engine/script.cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Wed Aug 18 02:04:21 CEST 2010
Revision: 52179
http://scummvm.svn.sourceforge.net/scummvm/?rev=52179&view=rev
Author: thebluegr
Date: 2010-08-18 00:04:21 +0000 (Wed, 18 Aug 2010)
Log Message:
-----------
SCI: Resolved a FIXME concerning scripts with more than one export table (it only makes sense for SCI0-SCI1 games)
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/script.cpp
Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp 2010-08-18 00:03:58 UTC (rev 52178)
+++ scummvm/trunk/engines/sci/engine/script.cpp 2010-08-18 00:04:21 UTC (rev 52179)
@@ -329,13 +329,11 @@
uint16 offset = READ_SCI11ENDIAN_UINT16(_exportTable + pubfunct);
VERIFY(offset < _bufSize, "invalid export function pointer");
- if (offset == 0) {
- // Check if the game has a second export table (e.g. script 912 in Camelot)
+ if (offset == 0 && getSciVersion() <= SCI_VERSION_1_LATE) {
+ // Check if the game has a second export table (e.g. script 912 in Camelot).
+ // This only makes sense for SCI0-SCI1, as the export table in SCI1.1+ games
+ // is located at a specific address, thus findBlock() won't work.
// Fixes bug #3039785
- if (g_sci->getGameId() != GID_CAMELOT) // cheap fix
- return offset;
- // we are getting assert()s in eco quest 1 (right on startup) and kq6 and maybe more
- // [md5] plz look into this TODO FIXME
const uint16 *secondExportTable = (const uint16 *)findBlock(SCI_OBJ_EXPORTS, 0);
if (secondExportTable) {
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