diff options
author | Walter van Niftrik | 2011-03-04 21:07:52 +0100 |
---|---|---|
committer | Walter van Niftrik | 2011-03-04 21:12:00 +0100 |
commit | f96e93047a6407eeb5c9e59825e55648f74c6a3d (patch) | |
tree | af55bb4a4f9ca9c41e3fa982f594440add58c52f /engines/sci/engine | |
parent | d95b5331fb266de492c45d348ccb8313ca7824aa (diff) | |
download | scummvm-rg350-f96e93047a6407eeb5c9e59825e55648f74c6a3d.tar.gz scummvm-rg350-f96e93047a6407eeb5c9e59825e55648f74c6a3d.tar.bz2 scummvm-rg350-f96e93047a6407eeb5c9e59825e55648f74c6a3d.zip |
SCI: Use BE string handling for Mac games.
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kmisc.cpp | 10 | ||||
-rw-r--r-- | engines/sci/engine/kstring.cpp | 2 | ||||
-rw-r--r-- | engines/sci/engine/seg_manager.cpp | 8 |
3 files changed, 7 insertions, 13 deletions
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp index 6d7c4580e6..5b0d93a249 100644 --- a/engines/sci/engine/kmisc.cpp +++ b/engines/sci/engine/kmisc.cpp @@ -299,10 +299,7 @@ reg_t kMemory(EngineState *s, int argc, reg_t *argv) { return s->r_acc; } if (ref.isRaw) { - if (g_sci->getPlatform() == Common::kPlatformAmiga) - return make_reg(0, (int16)READ_BE_UINT16(ref.raw)); // Amiga versions are BE - else - return make_reg(0, (int16)READ_LE_UINT16(ref.raw)); + return make_reg(0, (int16)READ_SCI1ENDIAN_UINT16(ref.raw)); } else { if (ref.skipByte) error("Attempt to peek memory at odd offset %04X:%04X", PRINT_REG(argv[1])); @@ -323,10 +320,7 @@ reg_t kMemory(EngineState *s, int argc, reg_t *argv) { error("Attempt to poke memory reference %04x:%04x to %04x:%04x", PRINT_REG(argv[2]), PRINT_REG(argv[1])); return s->r_acc; } - if (g_sci->getPlatform() == Common::kPlatformAmiga) - WRITE_BE_UINT16(ref.raw, argv[2].offset); // Amiga versions are BE - else - WRITE_LE_UINT16(ref.raw, argv[2].offset); + WRITE_SCI1ENDIAN_UINT16(ref.raw, argv[2].offset); // Amiga versions are BE } else { if (ref.skipByte) error("Attempt to poke memory at odd offset %04X:%04X", PRINT_REG(argv[1])); diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp index df77b8e933..730f7af9b8 100644 --- a/engines/sci/engine/kstring.cpp +++ b/engines/sci/engine/kstring.cpp @@ -113,7 +113,7 @@ reg_t kStrAt(EngineState *s, int argc, reg_t *argv) { reg_t &tmp = dest_r.reg[offset / 2]; bool oddOffset = offset & 1; - if (g_sci->getPlatform() == Common::kPlatformAmiga) + if (g_sci->isBE()) oddOffset = !oddOffset; if (!oddOffset) { diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index f30f3ceb2c..c75ceab280 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -602,8 +602,8 @@ static inline char getChar(const SegmentRef &ref, uint offset) { warning("Attempt to read character from non-raw data"); bool oddOffset = offset & 1; - if (g_sci->getPlatform() == Common::kPlatformAmiga) - oddOffset = !oddOffset; // Amiga versions are BE + if (g_sci->isBE()) + oddOffset = !oddOffset; return (oddOffset ? val.offset >> 8 : val.offset & 0xff); } @@ -617,8 +617,8 @@ static inline void setChar(const SegmentRef &ref, uint offset, byte value) { val->segment = 0; bool oddOffset = offset & 1; - if (g_sci->getPlatform() == Common::kPlatformAmiga) - oddOffset = !oddOffset; // Amiga versions are BE + if (g_sci->isBE()) + oddOffset = !oddOffset; if (oddOffset) val->offset = (val->offset & 0x00ff) | (value << 8); |