aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorEugene Sandulenko2005-08-08 19:40:55 +0000
committerEugene Sandulenko2005-08-08 19:40:55 +0000
commitccfedf06540fd9b0aa91a7f949dd563ab9b4c2ad (patch)
tree34e03a0b8a89505d9917114a0588032533bcf14f /saga
parent753ff5a92673c1eb714bc74b3b825b50b3c96a43 (diff)
downloadscummvm-rg350-ccfedf06540fd9b0aa91a7f949dd563ab9b4c2ad.tar.gz
scummvm-rg350-ccfedf06540fd9b0aa91a7f949dd563ab9b4c2ad.tar.bz2
scummvm-rg350-ccfedf06540fd9b0aa91a7f949dd563ab9b4c2ad.zip
Fix bug #1252277 "ITE: Actions not performed under OS X"
svn-id: r18637
Diffstat (limited to 'saga')
-rw-r--r--saga/events.cpp8
-rw-r--r--saga/script.cpp1
-rw-r--r--saga/sthread.cpp4
3 files changed, 8 insertions, 5 deletions
diff --git a/saga/events.cpp b/saga/events.cpp
index ebc959ed9a..b59c8aa1b5 100644
--- a/saga/events.cpp
+++ b/saga/events.cpp
@@ -417,10 +417,10 @@ int Events::handleOneShot(EVENT *event) {
break;
}
- sthread->_threadVars[kThreadVarAction] = TO_LE_16(event->param3);
- sthread->_threadVars[kThreadVarObject] = TO_LE_16(event->param4);
- sthread->_threadVars[kThreadVarWithObject] = TO_LE_16(event->param5);
- sthread->_threadVars[kThreadVarActor] = TO_LE_16(event->param6);
+ sthread->_threadVars[kThreadVarAction] = event->param3;
+ sthread->_threadVars[kThreadVarObject] = event->param4;
+ sthread->_threadVars[kThreadVarWithObject] = event->param5;
+ sthread->_threadVars[kThreadVarActor] = event->param6;
if (event->op == EVENT_EXEC_BLOCKING)
_vm->_script->completeThread();
diff --git a/saga/script.cpp b/saga/script.cpp
index 31dde01438..c01126fbe6 100644
--- a/saga/script.cpp
+++ b/saga/script.cpp
@@ -414,6 +414,7 @@ void Script::doVerb() {
} else {
if (objectType & (kGameObjectActor | kGameObjectObject)) {
scriptEntrypointNumber = _vm->_actor->getObjectScriptEntrypointNumber(_pendingObject[0]);
+ debug(0, "%d", scriptEntrypointNumber);
if ((objectType == kGameObjectActor) && !(_vm->_actor->getObjectFlags(_pendingObject[0]) & (kFollower|kProtagonist|kExtended))) {
scriptModuleNumber = _vm->_scene->getScriptModuleNumber();
diff --git a/saga/sthread.cpp b/saga/sthread.cpp
index 5816c6c49f..19d7c02a6e 100644
--- a/saga/sthread.cpp
+++ b/saga/sthread.cpp
@@ -266,8 +266,10 @@ bool Script::runThread(ScriptThread *thread, uint instructionLimit) {
thread->push((*addr) & iparam1 ? 1 : 0);
break;
CASEOP(opGetInt)
- addr = thread->baseAddress(scriptS.readByte());
+ iparam2 = scriptS.readByte();
+ addr = thread->baseAddress(iparam2);
iparam1 = scriptS.readSint16LE();
+ debug(0, "%d %d %d", *((uint16*)addr), iparam2, iparam1);
addr += iparam1;
thread->push(*((uint16*)addr));
debug(8, "0x%X", *((uint16*)addr));