aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise
diff options
context:
space:
mode:
authorPaul Gilbert2009-05-17 06:59:19 +0000
committerPaul Gilbert2009-05-17 06:59:19 +0000
commitdcca3197fcef3fef49362a2543f426663d63599a (patch)
tree0844ab4c060e293d7bbe5e2c9a352e5a41389b77 /engines/cruise
parent17f468bb027ee9ef150a544286deb000b6a49e7d (diff)
downloadscummvm-rg350-dcca3197fcef3fef49362a2543f426663d63599a.tar.gz
scummvm-rg350-dcca3197fcef3fef49362a2543f426663d63599a.tar.bz2
scummvm-rg350-dcca3197fcef3fef49362a2543f426663d63599a.zip
Properly named the script structure offset field, and fixed an endian bug
svn-id: r40634
Diffstat (limited to 'engines/cruise')
-rw-r--r--engines/cruise/saveload.cpp2
-rw-r--r--engines/cruise/script.cpp35
-rw-r--r--engines/cruise/script.h2
3 files changed, 18 insertions, 21 deletions
diff --git a/engines/cruise/saveload.cpp b/engines/cruise/saveload.cpp
index 1301402254..dde51dd382 100644
--- a/engines/cruise/saveload.cpp
+++ b/engines/cruise/saveload.cpp
@@ -329,7 +329,7 @@ void syncScript(Common::Serializer &s, scriptInstanceStruct *entry) {
s.syncAsUint16LE(dummyWord);
s.syncAsSint16LE(ptr->ccr);
- s.syncAsSint16LE(ptr->var4);
+ s.syncAsSint16LE(ptr->scriptOffset);
s.syncAsUint32LE(dummyLong);
s.syncAsSint16LE(ptr->varA);
s.syncAsSint16LE(ptr->scriptNumber);
diff --git a/engines/cruise/script.cpp b/engines/cruise/script.cpp
index f060e379ad..f676cd8849 100644
--- a/engines/cruise/script.cpp
+++ b/engines/cruise/script.cpp
@@ -24,6 +24,7 @@
*/
#include "cruise/cruise_main.h"
+#include "common/endian.h"
namespace Cruise {
@@ -33,19 +34,15 @@ scriptInstanceStruct procHead;
scriptInstanceStruct *currentScriptPtr;
int8 getByteFromScript(void) {
- int8 var = *(int8*)(currentData3DataPtr + currentScriptPtr->var4);
-
- currentScriptPtr->var4 = currentScriptPtr->var4 + 1;
+ int8 var = *(int8*)(currentData3DataPtr + currentScriptPtr->scriptOffset);
+ ++currentScriptPtr->scriptOffset;
return (var);
}
short int getShortFromScript(void) {
- short int var = *(int16 *)(currentData3DataPtr + currentScriptPtr->var4);
-
- currentScriptPtr->var4 = currentScriptPtr->var4 + 2;
-
- flipShort(&var);
+ short int var = (int16)READ_BE_UINT16(currentData3DataPtr + currentScriptPtr->scriptOffset);
+ currentScriptPtr->scriptOffset += 2;
return (var);
}
@@ -362,7 +359,7 @@ int32 opcodeType7(void) {
}
int32 opcodeType5(void) {
- int offset = currentScriptPtr->var4;
+ int offset = currentScriptPtr->scriptOffset;
int short1 = getShortFromScript();
int newSi = short1 + offset;
int bitMask = currentScriptPtr->ccr;
@@ -370,37 +367,37 @@ int32 opcodeType5(void) {
switch (currentScriptOpcodeType) {
case 0: {
if (!(bitMask & 1)) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
case 1: {
if (bitMask & 1) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
case 2: {
if (bitMask & 2) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
case 3: {
if (bitMask & 3) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
case 4: {
if (bitMask & 4) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
case 5: {
if (bitMask & 5) {
- currentScriptPtr->var4 = newSi;
+ currentScriptPtr->scriptOffset = newSi;
}
break;
}
@@ -408,7 +405,7 @@ int32 opcodeType5(void) {
break; // never
}
case 7: {
- currentScriptPtr->var4 = newSi; //always
+ currentScriptPtr->scriptOffset = newSi; //always
break;
}
}
@@ -556,7 +553,7 @@ uint8 *attacheNewScriptToTail(scriptInstanceStruct *scriptHandlePtr, int16 overl
tempPtr->varA = var_C;
tempPtr->nextScriptPtr = NULL;
- tempPtr->var4 = 0;
+ tempPtr->scriptOffset = 0;
tempPtr->scriptNumber = param;
tempPtr->overlayNumber = overlayNumber;
@@ -626,10 +623,10 @@ int executeScripts(scriptInstanceStruct *ptr) {
positionInStack = 0;
do {
- if (currentScriptPtr->var4 == 290
+ if (currentScriptPtr->scriptOffset == 290
&& currentScriptPtr->overlayNumber == 4
&& currentScriptPtr->scriptNumber == 0) {
- currentScriptPtr->var4 = 923;
+ currentScriptPtr->scriptOffset = 923;
}
opcodeType = getByteFromScript();
diff --git a/engines/cruise/script.h b/engines/cruise/script.h
index 1868576686..ea78de15da 100644
--- a/engines/cruise/script.h
+++ b/engines/cruise/script.h
@@ -38,7 +38,7 @@ enum scriptTypeEnum {
struct scriptInstanceStruct {
struct scriptInstanceStruct *nextScriptPtr;
int16 ccr;
- int16 var4;
+ int16 scriptOffset;
uint8 *var6;
int16 varA;
int16 scriptNumber;