aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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));