aboutsummaryrefslogtreecommitdiff
path: root/script_v1.cpp
diff options
context:
space:
mode:
authorJames Brown2002-03-13 04:57:33 +0000
committerJames Brown2002-03-13 04:57:33 +0000
commit4d0c43520f8019746192a26d08f18d44d7bb1c3d (patch)
treefec7573e256db7cccd99fe4dae98cdded6717474 /script_v1.cpp
parent7d360dde50e1b01143ac907fa6c697baa4043175 (diff)
downloadscummvm-rg350-4d0c43520f8019746192a26d08f18d44d7bb1c3d.tar.gz
scummvm-rg350-4d0c43520f8019746192a26d08f18d44d7bb1c3d.tar.bz2
scummvm-rg350-4d0c43520f8019746192a26d08f18d44d7bb1c3d.zip
Fix an OB1 and typecast. Need to find out cause of invalid object index to begin with..
svn-id: r3738
Diffstat (limited to 'script_v1.cpp')
-rw-r--r--script_v1.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/script_v1.cpp b/script_v1.cpp
index ec4155f34c..82c98e3409 100644
--- a/script_v1.cpp
+++ b/script_v1.cpp
@@ -1294,7 +1294,7 @@ void Scumm::o5_getObjectOwner() {
void Scumm::o5_getObjectState() {
if(_features & GF_SMALL_HEADER) {
- if((getState(getVarOrDirectWord(0x80)) &0x0F >>4) != getVarOrDirectByte(0x40))
+ if((getState(getVarOrDirectWord(0x80)) &0x0F >>4) != (int)getVarOrDirectByte(0x40))
o5_jumpRelative();
else
ignoreScriptWord();
@@ -1319,6 +1319,7 @@ void Scumm::o5_getVerbEntrypoint() {
getResultPos();
a = getVarOrDirectWord(0x80);
b = getVarOrDirectWord(0x40);
+
setResult(getVerbEntrypoint(a, b));
}
@@ -2377,13 +2378,13 @@ int Scumm::getWordVararg(int16 *ptr) {
return i;
}
-int Scumm::getVarOrDirectWord(byte mask) {
+uint Scumm::getVarOrDirectWord(byte mask) {
if (_opcode&mask)
return readVar(fetchScriptWord());
- return (int16)fetchScriptWord();
+ return (uint16)fetchScriptWord();
}
-int Scumm::getVarOrDirectByte(byte mask) {
+uint Scumm::getVarOrDirectByte(byte mask) {
if (_opcode&mask)
return readVar(fetchScriptWord());
return fetchScriptByte();