[Scummvm-cvs-logs] scummvm master -> 23dcd3c7612205c822f81d7ebdc25b0076a18600

waltervn waltervn at users.sourceforge.net
Fri Mar 4 21:57:48 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
23dcd3c761 SCI: Remove SCI version check from READ/WRITE_SCI1ENDIAN_UINT16.


Commit: 23dcd3c7612205c822f81d7ebdc25b0076a18600
    https://github.com/scummvm/scummvm/commit/23dcd3c7612205c822f81d7ebdc25b0076a18600
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2011-03-04T12:55:39-08:00

Commit Message:
SCI: Remove SCI version check from READ/WRITE_SCI1ENDIAN_UINT16.

Changed paths:
    engines/sci/engine/kmisc.cpp
    engines/sci/engine/kpathing.cpp
    engines/sci/util.cpp
    engines/sci/util.h



diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 5b0d93a..73c92a9 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -298,9 +298,9 @@ reg_t kMemory(EngineState *s, int argc, reg_t *argv) {
 			error("Attempt to peek invalid memory at %04x:%04x", PRINT_REG(argv[1]));
 			return s->r_acc;
 		}
-		if (ref.isRaw) {
-			return make_reg(0, (int16)READ_SCI1ENDIAN_UINT16(ref.raw));
-		} else {
+		if (ref.isRaw)
+			return make_reg(0, (int16)READ_SCIENDIAN_UINT16(ref.raw));
+		else {
 			if (ref.skipByte)
 				error("Attempt to peek memory at odd offset %04X:%04X", PRINT_REG(argv[1]));
 			return *(ref.reg);
@@ -320,7 +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;
 			}
-			WRITE_SCI1ENDIAN_UINT16(ref.raw, argv[2].offset);		// Amiga versions are BE
+			WRITE_SCIENDIAN_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/kpathing.cpp b/engines/sci/engine/kpathing.cpp
index c98d93c..7786f9b 100644
--- a/engines/sci/engine/kpathing.cpp
+++ b/engines/sci/engine/kpathing.cpp
@@ -265,8 +265,8 @@ static Common::Point readPoint(SegmentRef list_r, int offset) {
 	Common::Point point;
 
 	if (list_r.isRaw) {	// dynmem blocks are raw
-		point.x = (int16)READ_SCI1ENDIAN_UINT16(list_r.raw + offset * POLY_POINT_SIZE);
-		point.y = (int16)READ_SCI1ENDIAN_UINT16(list_r.raw + offset * POLY_POINT_SIZE + 2);
+		point.x = (int16)READ_SCIENDIAN_UINT16(list_r.raw + offset * POLY_POINT_SIZE);
+		point.y = (int16)READ_SCIENDIAN_UINT16(list_r.raw + offset * POLY_POINT_SIZE + 2);
 	} else {
 		point.x = list_r.reg[offset * 2].toUint16();
 		point.y = list_r.reg[offset * 2 + 1].toUint16();
@@ -276,8 +276,8 @@ static Common::Point readPoint(SegmentRef list_r, int offset) {
 
 static void writePoint(SegmentRef ref, int offset, const Common::Point &point) {
 	if (ref.isRaw) {	// dynmem blocks are raw
-		WRITE_SCI1ENDIAN_UINT16(ref.raw + offset * POLY_POINT_SIZE, point.x);
-		WRITE_SCI1ENDIAN_UINT16(ref.raw + offset * POLY_POINT_SIZE + 2, point.y);
+		WRITE_SCIENDIAN_UINT16(ref.raw + offset * POLY_POINT_SIZE, point.x);
+		WRITE_SCIENDIAN_UINT16(ref.raw + offset * POLY_POINT_SIZE + 2, point.y);
 	} else {
 		ref.reg[offset * 2] = make_reg(0, point.x);
 		ref.reg[offset * 2 + 1] = make_reg(0, point.y);
diff --git a/engines/sci/util.cpp b/engines/sci/util.cpp
index 408fd9d..f346add 100644
--- a/engines/sci/util.cpp
+++ b/engines/sci/util.cpp
@@ -30,15 +30,15 @@
 
 namespace Sci {
 
-uint16 READ_SCI1ENDIAN_UINT16(const void *ptr) {
-	if (g_sci->isBE() && getSciVersion() >= SCI_VERSION_1_EGA_ONLY && getSciVersion() <= SCI_VERSION_1_LATE)
+uint16 READ_SCIENDIAN_UINT16(const void *ptr) {
+	if (g_sci->isBE())
 		return READ_BE_UINT16(ptr);
 	else
 		return READ_LE_UINT16(ptr);
 }
 
-void WRITE_SCI1ENDIAN_UINT16(void *ptr, uint16 val) {
-	if (g_sci->isBE() && getSciVersion() >= SCI_VERSION_1_EGA_ONLY && getSciVersion() <= SCI_VERSION_1_LATE)
+void WRITE_SCIENDIAN_UINT16(void *ptr, uint16 val) {
+	if (g_sci->isBE())
 		WRITE_BE_UINT16(ptr, val);
 	else
 		WRITE_LE_UINT16(ptr, val);
diff --git a/engines/sci/util.h b/engines/sci/util.h
index d1f1c2f..7a2abb1 100644
--- a/engines/sci/util.h
+++ b/engines/sci/util.h
@@ -30,11 +30,10 @@
 
 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/writing 16-bit values in the endianness
+// of the original game platform.
+uint16 READ_SCIENDIAN_UINT16(const void *ptr);
+void WRITE_SCIENDIAN_UINT16(void *ptr, uint16 val);
 
 // Wrappers for reading integer values for SCI1.1+.
 // Mac versions have big endian data for some fields.






More information about the Scummvm-git-logs mailing list