aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/scn.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2010-11-20 03:14:03 +0000
committerPaul Gilbert2010-11-20 03:14:03 +0000
commita2367d26f9d7f8523c313a7b82d0b719de1e6e15 (patch)
treee63bfc6e1a8bd82f00ed24fdf167c6259676cc38 /engines/tinsel/scn.cpp
parentb2ba35124c707ca33e0372690a0eb25e316bce8a (diff)
downloadscummvm-rg350-a2367d26f9d7f8523c313a7b82d0b719de1e6e15.tar.gz
scummvm-rg350-a2367d26f9d7f8523c313a7b82d0b719de1e6e15.tar.bz2
scummvm-rg350-a2367d26f9d7f8523c313a7b82d0b719de1e6e15.zip
TINSEL: Preliminary functionality for reading BE data files
svn-id: r54392
Diffstat (limited to 'engines/tinsel/scn.cpp')
-rw-r--r--engines/tinsel/scn.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/tinsel/scn.cpp b/engines/tinsel/scn.cpp
index 0c89819ca0..326fd9e750 100644
--- a/engines/tinsel/scn.cpp
+++ b/engines/tinsel/scn.cpp
@@ -46,6 +46,8 @@ byte *FindChunk(SCNHANDLE handle, uint32 chunk) {
byte *bptr = LockMem(handle);
uint32 *lptr = (uint32 *)bptr;
uint32 add;
+ bool bigEndian = (_vm->getFeatures() & GF_BIG_ENDIAN) != 0;
+ assert(!bigEndian); // Big endian data not yet supported
// Initial adjustmnet for Tinsel 1 chunk types
if ((TinselVersion != TINSEL_V2) && (chunk >= CHUNK_SCENE) &&
@@ -60,14 +62,17 @@ byte *FindChunk(SCNHANDLE handle, uint32 chunk) {
chunk -= 0x2L;
while (1) {
- if (READ_LE_UINT32(lptr) == chunk)
+ if (READ_32(lptr) == chunk)
return (byte *)(lptr + 2);
++lptr;
- add = READ_LE_UINT32(lptr);
+ add = READ_32(lptr);
+
if (!add)
+ // End of file reached
return NULL;
+ // Move to next chunk
lptr = (uint32 *)(bptr + add);
}
}