aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Milburn2015-07-03 17:38:00 +0200
committerAlyssa Milburn2015-07-03 17:38:00 +0200
commit97fcc16a4dd2ed00bb0ed4460d9abadb7de8ac52 (patch)
tree7e6ffa16ee52f7722b954805d5971d453e64f3a0
parent327899c7d214c418250f2fcc6481f12256fe190c (diff)
downloadscummvm-rg350-97fcc16a4dd2ed00bb0ed4460d9abadb7de8ac52.tar.gz
scummvm-rg350-97fcc16a4dd2ed00bb0ed4460d9abadb7de8ac52.tar.bz2
scummvm-rg350-97fcc16a4dd2ed00bb0ed4460d9abadb7de8ac52.zip
MOHAWK: Implement deleteVar for LB.
-rw-r--r--engines/mohawk/livingbooks_code.cpp10
-rw-r--r--engines/mohawk/livingbooks_code.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/engines/mohawk/livingbooks_code.cpp b/engines/mohawk/livingbooks_code.cpp
index 3b2941a6f4..298569c050 100644
--- a/engines/mohawk/livingbooks_code.cpp
+++ b/engines/mohawk/livingbooks_code.cpp
@@ -858,7 +858,7 @@ CodeCommandInfo generalCommandInfo[NUM_GENERAL_COMMANDS] = {
{ "traceRect", 0 },
{ "sqrt", 0 },
// 0x20
- { "deleteVar", 0 },
+ { "deleteVar", &LBCode::cmdDeleteVar },
{ "saveVars", 0 },
{ "scriptLink", 0 },
{ "setViewOrigin", &LBCode::cmdUnimplemented },
@@ -1279,6 +1279,14 @@ void LBCode::cmdGetProperty(const Common::Array<LBValue> &params) {
_stack.push(target->_variables[name]);
}
+void LBCode::cmdDeleteVar(const Common::Array<LBValue> &params) {
+ if (params.size() != 1)
+ error("incorrect number of parameters (%d) to deleteVar", params.size());
+
+ const Common::String &string = params[0].toString();
+ _vm->_variables.erase(string);
+}
+
void LBCode::cmdExec(const Common::Array<LBValue> &params) {
if (params.size() != 1)
error("incorrect number of parameters (%d) to exec", params.size());
diff --git a/engines/mohawk/livingbooks_code.h b/engines/mohawk/livingbooks_code.h
index b6b38b61fc..c9d62ff799 100644
--- a/engines/mohawk/livingbooks_code.h
+++ b/engines/mohawk/livingbooks_code.h
@@ -275,6 +275,7 @@ public:
void cmdDeleteAt(const Common::Array<LBValue> &params);
void cmdSetProperty(const Common::Array<LBValue> &params);
void cmdGetProperty(const Common::Array<LBValue> &params);
+ void cmdDeleteVar(const Common::Array<LBValue> &params);
void cmdExec(const Common::Array<LBValue> &params);
void cmdReturn(const Common::Array<LBValue> &params);
void cmdSetPlayParams(const Common::Array<LBValue> &params);