[Scummvm-cvs-logs] SF.net SVN: scummvm:[55725] scummvm/trunk/engines/sci

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Wed Feb 2 17:22:58 CET 2011


Revision: 55725
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55725&view=rev
Author:   mthreepwood
Date:     2011-02-02 16:22:58 +0000 (Wed, 02 Feb 2011)

Log Message:
-----------
SCI: Fix SCI32 Mac fonts

Modified Paths:
--------------
    scummvm/trunk/engines/sci/graphics/font.cpp
    scummvm/trunk/engines/sci/util.cpp
    scummvm/trunk/engines/sci/util.h

Modified: scummvm/trunk/engines/sci/graphics/font.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/font.cpp	2011-02-02 16:15:49 UTC (rev 55724)
+++ scummvm/trunk/engines/sci/graphics/font.cpp	2011-02-02 16:22:58 UTC (rev 55725)
@@ -45,12 +45,12 @@
 	}
 	_resourceData = _resource->data;
 
-	_numChars = READ_LE_UINT16(_resourceData + 2);
-	_fontHeight = READ_LE_UINT16(_resourceData + 4);
+	_numChars = READ_SCI32ENDIAN_UINT16(_resourceData + 2);
+	_fontHeight = READ_SCI32ENDIAN_UINT16(_resourceData + 4);
 	_chars = new Charinfo[_numChars];
 	// filling info for every char
 	for (int16 i = 0; i < _numChars; i++) {
-		_chars[i].offset = READ_LE_UINT16(_resourceData + 6 + i * 2);
+		_chars[i].offset = READ_SCI32ENDIAN_UINT16(_resourceData + 6 + i * 2);
 		_chars[i].w = _resourceData[_chars[i].offset];
 		_chars[i].h = _resourceData[_chars[i].offset + 1];
 	}

Modified: scummvm/trunk/engines/sci/util.cpp
===================================================================
--- scummvm/trunk/engines/sci/util.cpp	2011-02-02 16:15:49 UTC (rev 55724)
+++ scummvm/trunk/engines/sci/util.cpp	2011-02-02 16:22:58 UTC (rev 55725)
@@ -37,6 +37,13 @@
 	return READ_LE_UINT16(ptr);
 }
 
+uint16 READ_SCI32ENDIAN_UINT16(const void *ptr) {
+	if (g_sci->getPlatform() == Common::kPlatformMacintosh && getSciVersion() >= SCI_VERSION_2_1)
+		return READ_BE_UINT16(ptr);
+
+	return READ_LE_UINT16(ptr);
+}
+
 uint32 READ_SCI11ENDIAN_UINT32(const void *ptr) {
 	if (g_sci->getPlatform() == Common::kPlatformMacintosh && getSciVersion() >= SCI_VERSION_1_1)
 		return READ_BE_UINT32(ptr);

Modified: scummvm/trunk/engines/sci/util.h
===================================================================
--- scummvm/trunk/engines/sci/util.h	2011-02-02 16:15:49 UTC (rev 55724)
+++ scummvm/trunk/engines/sci/util.h	2011-02-02 16:22:58 UTC (rev 55725)
@@ -36,6 +36,10 @@
 uint32 READ_SCI11ENDIAN_UINT32(const void *ptr);
 void WRITE_SCI11ENDIAN_UINT16(void *ptr, uint16 val);
 
+// Wrappers for reading integer values in resources that are
+// LE in SCI1.1 Mac, but BE in SCI32 Mac
+uint16 READ_SCI32ENDIAN_UINT16(const void *ptr);
+
 } // End of namespace Sci
 
 #endif


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