From 43cd806f17377d5244e575b863519f013e5f033c Mon Sep 17 00:00:00 2001 From: johndoe123 Date: Thu, 20 Mar 2014 14:16:48 +0100 Subject: ILLUSIONS: Add more script opcodes --- engines/illusions/scriptman.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'engines/illusions/scriptman.cpp') diff --git a/engines/illusions/scriptman.cpp b/engines/illusions/scriptman.cpp index d94a32316a..527c0a5f3e 100644 --- a/engines/illusions/scriptman.cpp +++ b/engines/illusions/scriptman.cpp @@ -21,6 +21,7 @@ */ #include "illusions/illusions.h" +#include "illusions/actor.h" #include "illusions/scriptman.h" #include "illusions/scriptthread.h" #include "illusions/scriptopcodes.h" @@ -116,6 +117,10 @@ int16 ScriptStack::peek() { return value; } +int16 *ScriptStack::topPtr() { + return &_stack[_stackPos]; +} + // ScriptMan ScriptMan::ScriptMan(IllusionsEngine *vm) @@ -170,6 +175,12 @@ void ScriptMan::setCurrFontId(uint32 fontId) { _fontId = fontId; } +void ScriptMan::reset() { + // TODO _scriptResource->_blockCounters.clear(); + // TODO _scriptResource->_properties.clear(); + // TODO script_sub_417FF0(1, 0); +} + bool ScriptMan::enterScene(uint32 sceneId, uint32 threadId) { ProgInfo *progInfo = _scriptResource->getProgInfo(sceneId & 0xFFFF); if (!progInfo) { @@ -180,6 +191,17 @@ bool ScriptMan::enterScene(uint32 sceneId, uint32 threadId) { return progInfo != 0; } +void ScriptMan::exitScene(uint32 threadId) { + uint32 sceneId = _activeScenes.getCurrentScene(); + // TODO krnfileDump(sceneId); + // TODO UpdateFunctions_disableByTag__TODO_maybe(sceneId); + _threads->terminateThreadsByTag(sceneId, threadId); + _vm->_controls->destroyControlsByTag(sceneId); + // TODO causeFunc_removeBySceneId(sceneId); + // TODO _vm->_resSys->unloadResourceByTag(sceneId); + _activeScenes.pop(); +} + void ScriptMan::newScriptThread(uint32 threadId, uint32 callingThreadId, uint notifyFlags, byte *scriptCodeIp, uint32 value8, uint32 valueC, uint32 value10) { ScriptThread *scriptThread = new ScriptThread(_vm, threadId, callingThreadId, notifyFlags, -- cgit v1.2.3