aboutsummaryrefslogtreecommitdiff
path: root/sword2/interpreter.cpp
diff options
context:
space:
mode:
authorMax Horn2003-09-13 12:03:29 +0000
committerMax Horn2003-09-13 12:03:29 +0000
commit41a17b9da6ed1f4345bb0d492ac617862d0602f2 (patch)
tree811ccb8d23d2d90e1e3c7c0d100b1f35837da0f6 /sword2/interpreter.cpp
parentf6cfd5775e5b1430ea8e0d805da13c51fb27ff89 (diff)
downloadscummvm-rg350-41a17b9da6ed1f4345bb0d492ac617862d0602f2.tar.gz
scummvm-rg350-41a17b9da6ed1f4345bb0d492ac617862d0602f2.tar.bz2
scummvm-rg350-41a17b9da6ed1f4345bb0d492ac617862d0602f2.zip
let the interpreter use native endianess for variables -> this allows us to get rid of various endian conversions, and also fixs lots of other problems on BE systems. Beware, though, this may impair save game exchange between LE/BE: we'll have to adjust save_rest.cpp to convert to/from LE upon save/load
svn-id: r10216
Diffstat (limited to 'sword2/interpreter.cpp')
-rw-r--r--sword2/interpreter.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/sword2/interpreter.cpp b/sword2/interpreter.cpp
index f6fc161578..9958260584 100644
--- a/sword2/interpreter.cpp
+++ b/sword2/interpreter.cpp
@@ -396,8 +396,8 @@ int RunScript ( char * scriptData , char * objectData , uint32 *offset )
case CP_PUSH_LOCAL_VAR32: // 1 Push the contents of a local variable
Read16ip(parameter)
- DEBUG2("Push local var %d (%d)",parameter,(int32)READ_LE_UINT32(variables+parameter));
- PUSHONSTACK ( (int32)READ_LE_UINT32(variables+parameter) );
+ DEBUG2("Push local var %d (%d)",parameter,*(int32 *)(variables+parameter));
+ PUSHONSTACK ( *(int32 *)(variables+parameter) );
break;
@@ -417,7 +417,7 @@ int RunScript ( char * scriptData , char * objectData , uint32 *offset )
Read16ip(parameter)
POPOFFSTACK ( value );
DEBUG2("Pop %d into var %d",value,parameter);
- *((int *)(variables+parameter)) = TO_LE_32(value);
+ *((int *)(variables+parameter)) = value;
break;
case CP_CALL_MCODE: // 4 Call an mcode routine
@@ -518,15 +518,15 @@ int RunScript ( char * scriptData , char * objectData , uint32 *offset )
case CP_ADDNPOP_LOCAL_VAR32: // 10
Read16ip(parameter)
POPOFFSTACK ( value );
- *((int *)(variables+parameter)) = TO_LE_32((int32)READ_LE_UINT32(variables+parameter) + value);
- DEBUG3("+= %d into var %d->%d",value,parameter,(int32)READ_LE_UINT32(variables+parameter));
+ *((int *)(variables+parameter)) = *(int32 *)(variables+parameter) + value;
+ DEBUG3("+= %d into var %d->%d",value,parameter,*(int32 *)(variables+parameter));
break;
case CP_SUBNPOP_LOCAL_VAR32: // 11
Read16ip(parameter)
POPOFFSTACK ( value );
- *((int *)(variables+parameter)) = TO_LE_32((int32)READ_LE_UINT32(variables+parameter) - value);
- DEBUG3("-= %d into var %d->%d",value,parameter,(int32)READ_LE_UINT32(variables+parameter));
+ *((int *)(variables+parameter)) = *(int32 *)(variables+parameter) - value;
+ DEBUG3("-= %d into var %d->%d",value,parameter,*(int32 *)(variables+parameter));
break;
case CP_SKIPONTRUE: // 12 Skip if the value on the stack is TRUE
@@ -574,7 +574,7 @@ int RunScript ( char * scriptData , char * objectData , uint32 *offset )
VS_COL_GREY);
#else
globalInterpreterVariables2[parameter] += value;
- DEBUG3("+= %d into global var %d->%d",value,parameter,(int32)READ_LE_UINT32(variables+parameter));
+ DEBUG3("+= %d into global var %d->%d",value,parameter,*(int32 *)(variables+parameter));
#endif
break;
}
@@ -593,7 +593,7 @@ int RunScript ( char * scriptData , char * objectData , uint32 *offset )
VS_COL_GREY);
#else
globalInterpreterVariables2[parameter] -= value;
- DEBUG3("-= %d into global var %d->%d",value,parameter,(int32)READ_LE_UINT32(variables+parameter));
+ DEBUG3("-= %d into global var %d->%d",value,parameter,*(int32 *)(variables+parameter));
#endif
break;
}