[Scummvm-cvs-logs] SF.net SVN: scummvm:[41181] scummvm/trunk/engines/sci/resource.cpp
waltervn at users.sourceforge.net
waltervn at users.sourceforge.net
Fri Jun 5 01:55:08 CEST 2009
Revision: 41181
http://scummvm.svn.sourceforge.net/scummvm/?rev=41181&view=rev
Author: waltervn
Date: 2009-06-04 23:55:08 +0000 (Thu, 04 Jun 2009)
Log Message:
-----------
SCI: Fixed some endian bugs related to speech handling. READ_UINT* are not LE,
but use native endianness. Thanks to clone2727 for pointing this out.
Modified Paths:
--------------
scummvm/trunk/engines/sci/resource.cpp
Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp 2009-06-04 22:16:31 UTC (rev 41180)
+++ scummvm/trunk/engines/sci/resource.cpp 2009-06-04 23:55:08 UTC (rev 41181)
@@ -1231,7 +1231,7 @@
return false;
byte *ptr = _audioMapSCI1;
- while ((n = READ_UINT16(ptr)) != 0xFFFF) {
+ while ((n = READ_LE_UINT16(ptr)) != 0xFFFF) {
if (n == audioNumber) {
off = READ_LE_UINT32(ptr + 2);
size = READ_LE_UINT32(ptr + 6);
@@ -1264,7 +1264,7 @@
byte *ptr = _audioMapSCI11->data;
- offset = READ_UINT32(ptr);
+ offset = READ_LE_UINT32(ptr);
ptr += 4;
while (ptr < _audioMapSCI11->data + _audioMapSCI11->size) {
@@ -1274,7 +1274,7 @@
if (n == 0xffffffff)
break;
- offset += (READ_UINT16(ptr) | (ptr[2] << 16));
+ offset += READ_LE_UINT24(ptr);
ptr += 3;
int syncSkip = 0;
@@ -1284,9 +1284,9 @@
if (getSync) {
if (size)
- *size = READ_UINT16(ptr);
+ *size = READ_LE_UINT16(ptr);
} else {
- syncSkip = READ_UINT16(ptr);
+ syncSkip = READ_LE_UINT16(ptr);
}
ptr += 2;
@@ -1295,7 +1295,7 @@
n ^= 0x40;
if (!getSync)
- syncSkip += READ_UINT16(ptr);
+ syncSkip += READ_LE_UINT16(ptr);
ptr += 2;
}
@@ -1339,10 +1339,10 @@
if (n == 0xffffffff)
break;
- offset = READ_UINT32(ptr);
+ offset = READ_LE_UINT32(ptr);
ptr += 4;
- int syncSize = READ_UINT16(ptr);
+ int syncSize = READ_LE_UINT16(ptr);
ptr += 2;
if (n == audioNumber) {
@@ -1383,13 +1383,13 @@
if (volume == 65535) {
while (ptr < _audioMapSCI11->data + _audioMapSCI11->size) {
- n = READ_UINT16(ptr);
+ n = READ_LE_UINT16(ptr);
ptr += 2;
if (n == 0xffff)
break;
- offset = READ_UINT32(ptr);
+ offset = READ_LE_UINT32(ptr);
ptr += 4;
if (n == audioNumber)
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