diff options
author | Paul Gilbert | 2010-11-20 03:14:03 +0000 |
---|---|---|
committer | Paul Gilbert | 2010-11-20 03:14:03 +0000 |
commit | a2367d26f9d7f8523c313a7b82d0b719de1e6e15 (patch) | |
tree | e63bfc6e1a8bd82f00ed24fdf167c6259676cc38 /engines/tinsel/dialogs.cpp | |
parent | b2ba35124c707ca33e0372690a0eb25e316bce8a (diff) | |
download | scummvm-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.cpp | 15 |
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 |