aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMarisa-Chan2014-11-08 12:21:38 +0600
committerMarisa-Chan2014-11-08 12:21:38 +0600
commit53002dd2d067c24baaecfbc32071365bef58cfca (patch)
tree66a9fe5ee91a5c4fa2e5b12d53c6006c69ad5a4f /engines
parent0efa1bc5606c9fd984df077d55cf93a7903f5f67 (diff)
downloadscummvm-rg350-53002dd2d067c24baaecfbc32071365bef58cfca.tar.gz
scummvm-rg350-53002dd2d067c24baaecfbc32071365bef58cfca.tar.bz2
scummvm-rg350-53002dd2d067c24baaecfbc32071365bef58cfca.zip
ZVISION: Implement action:animunload
Diffstat (limited to 'engines')
-rw-r--r--engines/zvision/scripting/actions.cpp19
-rw-r--r--engines/zvision/scripting/actions.h2
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp2
3 files changed, 22 insertions, 1 deletions
diff --git a/engines/zvision/scripting/actions.cpp b/engines/zvision/scripting/actions.cpp
index 2754a39676..8a3d17f2c5 100644
--- a/engines/zvision/scripting/actions.cpp
+++ b/engines/zvision/scripting/actions.cpp
@@ -440,6 +440,25 @@ bool ActionPreloadAnimation::execute() {
return true;
}
+//////////////////////////////////////////////////////////////////////////////
+// ActionUnloadAnimation
+//////////////////////////////////////////////////////////////////////////////
+
+ActionUnloadAnimation::ActionUnloadAnimation(ZVision *engine, int32 slotkey, const Common::String &line) :
+ ResultAction(engine, slotkey) {
+
+ sscanf(line.c_str(), "%u", &_key);
+}
+
+bool ActionUnloadAnimation::execute() {
+ AnimationNode *nod = (AnimationNode *)_engine->getScriptManager()->getSideFX(_key);
+
+ if (nod && nod->getType() == SideFX::SIDEFX_ANIM)
+ _engine->getScriptManager()->deleteSideFx(_key);
+
+ return true;
+}
+
//////////////////////////////////////////////////////////////////////////////
// ActionPlayAnimation
diff --git a/engines/zvision/scripting/actions.h b/engines/zvision/scripting/actions.h
index 6a200198b7..731105d591 100644
--- a/engines/zvision/scripting/actions.h
+++ b/engines/zvision/scripting/actions.h
@@ -347,6 +347,8 @@ class ActionUnloadAnimation : public ResultAction {
public:
ActionUnloadAnimation(ZVision *engine, int32 slotkey, const Common::String &line);
bool execute();
+private:
+ uint32 _key;
};
class ActionRandom : public ResultAction {
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index b16a2d9474..a2b5311666 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -220,7 +220,7 @@ void ScriptManager::parseResults(Common::SeekableReadStream &stream, Common::Lis
} else if (act.matchString("animpreload", true)) {
actionList.push_back(new ActionPreloadAnimation(_engine, slot, args));
} else if (act.matchString("animunload", true)) {
- //actionList.push_back(new ActionUnloadAnimation(_engine, slot, args));
+ actionList.push_back(new ActionUnloadAnimation(_engine, slot, args));
} else if (act.matchString("attenuate", true)) {
actionList.push_back(new ActionAttenuate(_engine, slot, args));
} else if (act.matchString("assign", true)) {