diff options
author | Max Horn | 2003-09-13 12:03:29 +0000 |
---|---|---|
committer | Max Horn | 2003-09-13 12:03:29 +0000 |
commit | 41a17b9da6ed1f4345bb0d492ac617862d0602f2 (patch) | |
tree | 811ccb8d23d2d90e1e3c7c0d100b1f35837da0f6 /sword2/interpreter.cpp | |
parent | f6cfd5775e5b1430ea8e0d805da13c51fb27ff89 (diff) | |
download | scummvm-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.cpp | 18 |
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; } |