aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/gob.h
diff options
context:
space:
mode:
authorSven Hesse2008-05-28 21:15:11 +0000
committerSven Hesse2008-05-28 21:15:11 +0000
commit8da68b29648f9dbdcc05b3a1efe4a29ed2c4e88c (patch)
tree7f2416cbf176f53a871b0cc3bea4785284ba4889 /engines/gob/gob.h
parentc9fd5fef7645cc7ba6e14ddfeaab91d941f3b8f7 (diff)
downloadscummvm-rg350-8da68b29648f9dbdcc05b3a1efe4a29ed2c4e88c.tar.gz
scummvm-rg350-8da68b29648f9dbdcc05b3a1efe4a29ed2c4e88c.tar.bz2
scummvm-rg350-8da68b29648f9dbdcc05b3a1efe4a29ed2c4e88c.zip
Script variables are now always stored in the game version's native endianess.
This should make Woodruff playable on big-endian systems. svn-id: r32352
Diffstat (limited to 'engines/gob/gob.h')
-rw-r--r--engines/gob/gob.h49
1 files changed, 26 insertions, 23 deletions
diff --git a/engines/gob/gob.h b/engines/gob/gob.h
index efc9718098..ae2b53bc31 100644
--- a/engines/gob/gob.h
+++ b/engines/gob/gob.h
@@ -52,29 +52,32 @@ class Scenery;
class Util;
class SaveLoad;
-#define VARP(offs) (_vm->_global->_inter_variables + (offs))
-#define WRITE_VARO_UINT32(offs, val) _vm->_global->writeVar(offs, (uint32) (val))
-#define WRITE_VARO_UINT16(offs, val) _vm->_global->writeVar(offs, (uint16) (val))
-#define WRITE_VARO_UINT8(offs, val) _vm->_global->writeVar(offs, (uint8) (val))
-#define WRITE_VARO_STR(offs, str) _vm->_global->writeVar(offs, (const char *) (str))
-#define WRITE_VAR_UINT32(var, val) WRITE_VARO_UINT32((var) << 2, (val))
-#define WRITE_VAR_UINT16(var, val) WRITE_VARO_UINT16((var) << 2, (val))
-#define WRITE_VAR_UINT8(var, val) WRITE_VARO_UINT8((var) << 2, (val))
-#define WRITE_VAR_STR(var, str) WRITE_VARO_STR((var) << 2, (str))
-#define READ_VARO_UINT32(offs) READ_UINT32(VARP(offs))
-#define READ_VARO_UINT16(offs) READ_UINT16(VARP(offs))
-#define READ_VARO_UINT8(offs) (*((uint8 *) VARP(offs)))
-#define READ_VAR_UINT32(var) READ_VARO_UINT32((var) << 2)
-#define READ_VAR_UINT16(var) READ_VARO_UINT16((var) << 2)
-#define READ_VAR_UINT8(var) READ_VARO_UINT8((var) << 2)
-#define GET_VARO_STR(offs) ((char *) VARP(offs))
-#define GET_VAR_STR(var) GET_VARO_STR((var) << 2)
-
-#define WRITE_VAR_OFFSET(offs, val) WRITE_VARO_UINT32((offs), (val))
-#define WRITE_VAR(var, val) WRITE_VAR_UINT32((var), (val))
-#define VAR_OFFSET(offs) READ_VARO_UINT32(offs)
-#define VAR(var) READ_VAR_UINT32(var)
-#define VAR_ADDRESS(var) ((uint32 *) VARP((var) << 2))
+#define WRITE_VAR_UINT32(var, val) _vm->_inter->_variables->writeVar32(var, val)
+#define WRITE_VAR_UINT16(var, val) _vm->_inter->_variables->writeVar16(var, val)
+#define WRITE_VAR_UINT8(var, val) _vm->_inter->_variables->writeVar8(var, val)
+#define WRITE_VAR_STR(var, str) _vm->_inter->_variables->writeVarString(var, str)
+#define WRITE_VARO_UINT32(off, val) _vm->_inter->_variables->writeOff32(off, val)
+#define WRITE_VARO_UINT16(off, val) _vm->_inter->_variables->writeOff16(off, val)
+#define WRITE_VARO_UINT8(off, val) _vm->_inter->_variables->writeOff8(off, val)
+#define WRITE_VARO_STR(off, str) _vm->_inter->_variables->writeOffString(off, str)
+#define READ_VAR_UINT32(var) _vm->_inter->_variables->readVar32(var)
+#define READ_VAR_UINT16(var) _vm->_inter->_variables->readVar16(var)
+#define READ_VAR_UINT8(var) _vm->_inter->_variables->readVar8(var)
+#define READ_VARO_UINT32(off) _vm->_inter->_variables->readOff32(off)
+#define READ_VARO_UINT16(off) _vm->_inter->_variables->readOff16(off)
+#define READ_VARO_UINT8(off) _vm->_inter->_variables->readOff8(off)
+#define GET_VAR_STR(var) _vm->_inter->_variables->getAddressVarString(var, 0)
+#define GET_VARO_STR(off) _vm->_inter->_variables->getAddressOffString(off, 0)
+#define GET_VAR_FSTR(var) _vm->_inter->_variables->getAddressVarString(var)
+#define GET_VARO_FSTR(off) _vm->_inter->_variables->getAddressOffString(off)
+
+#define VAR_ADDRESS(var) _vm->_inter->_variables->getAddressVar32(var)
+
+#define WRITE_VAR_OFFSET(off, val) WRITE_VARO_UINT32((off), (val))
+#define WRITE_VAR(var, val) WRITE_VAR_UINT32((var), (val))
+#define VAR_OFFSET(off) READ_VARO_UINT32(off)
+#define VAR(var) READ_VAR_UINT32(var)
+
enum GameType {
kGameTypeNone = 0,