aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/dialogs.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/dialogs.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/dialogs.cpp')
-rw-r--r--engines/tinsel/dialogs.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp
index 0a02924f12..73cad7a68f 100644
--- a/engines/tinsel/dialogs.cpp
+++ b/engines/tinsel/dialogs.cpp
@@ -5551,6 +5551,21 @@ extern void RegisterIcons(void *cptr, int num) {
memmove(destP, srcP, 12);
destP->attribute = 0;
}
+ } else if (TinselV1Mac) {
+ // Macintosh version has BE encoded resources, so the values need to be byte swapped
+ MEM_NODE *node = MemoryAllocFixed(numObjects * sizeof(INV_OBJECT));
+ assert(node);
+ invObjects = (INV_OBJECT *)MemoryDeref(node);
+ assert(invObjects);
+ INV_OBJECT *srcP = (INV_OBJECT *)cptr;
+ INV_OBJECT *destP = (INV_OBJECT *)invObjects;
+
+ for (int i = 0; i < num; ++i, ++destP, ++srcP) {
+ destP->id = FROM_BE_32(srcP->id);
+ destP->hIconFilm = FROM_BE_32(srcP->hIconFilm);
+ destP->hScript = FROM_BE_32(srcP->hScript);
+ destP->attribute = FROM_BE_32(srcP->attribute);
+ }
} else if (TinselV2) {
if (invFilms == NULL) {
// First time - allocate memory