aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/util.h
diff options
context:
space:
mode:
authormd52011-03-03 19:34:11 +0200
committermd52011-03-03 19:34:11 +0200
commit51437ba5e6e418d7e79cf341606bc6c1c50fd50b (patch)
tree8375cf8727b5af39dc844f3d176afa575b0576b1 /engines/sci/util.h
parent1aed9a1f3401477d4d56e278fec63cd90fafd81d (diff)
downloadscummvm-rg350-51437ba5e6e418d7e79cf341606bc6c1c50fd50b.tar.gz
scummvm-rg350-51437ba5e6e418d7e79cf341606bc6c1c50fd50b.tar.bz2
scummvm-rg350-51437ba5e6e418d7e79cf341606bc6c1c50fd50b.zip
SCI: Fixed path finding in Amiga SCI1 games
Added wrapper functions to read/write from dynmem segments, as these are treated as BE in Amiga versions (as we treat them like raw data instead of reg_t's), whereas the rest are LE. Thanks to waltervn and wjp for their help on this
Diffstat (limited to 'engines/sci/util.h')
-rw-r--r--engines/sci/util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/sci/util.h b/engines/sci/util.h
index d9ced5c9f6..d1f1c2ffa9 100644
--- a/engines/sci/util.h
+++ b/engines/sci/util.h
@@ -30,6 +30,12 @@
namespace Sci {
+// Wrappers for reading/writing integer values for SCI1 Amiga.
+// Amiga versions store big endian data in dynmem blocks, as
+// the game resources are in LE, but the actual system is BE.
+uint16 READ_SCI1ENDIAN_UINT16(const void *ptr);
+void WRITE_SCI1ENDIAN_UINT16(void *ptr, uint16 val);
+
// Wrappers for reading integer values for SCI1.1+.
// Mac versions have big endian data for some fields.
uint16 READ_SCI11ENDIAN_UINT16(const void *ptr);