PRIVATE: fixes + more functiions

This commit is contained in:
neuromancer 2021-01-02 10:22:07 -03:00 committed by Eugene Sandulenko
parent 2ce4159f16
commit cae1b214a8
4 changed files with 70 additions and 14 deletions

View file

@ -6,19 +6,49 @@
namespace Private {
void ChgMode(ArgArray args) {
debug("ChgMode(%d, %s)", args[0].val, args[1].str);
_mode = args[0].val;
Common::String *s = new Common::String(args[1].str);
_nextSetting = s;
}
void Goto(ArgArray args) { // should be goto, but this is a reserved word
debug("goto(%s)", args[0].str);
Common::String *s = new Common::String(args[0].str);
_nextSetting = s;
}
void SetFlag(ArgArray args) {
debug("SetFlag(%s, %d)", args[0].sym->name->c_str(), args[1].val);
args[0].sym->u.val = args[1].val;
}
void Sound(ArgArray args) {
debug("Sound(%s)", args[0].str);
if (strcmp("\"\"", args[0].str) != 0) {
Common::String *s = new Common::String(args[0].str);
_private->playSound(*s);
//assert(0);
} else {
_private->stopSound();
}
}
void execFunction(char *name, ArgArray args) {
if (strcmp(name, "ChgMode") == 0) {
debug("ChgMode(%d, %s)", args[0].val, args[1].str);
_mode = args[0].val;
Common::String *s = new Common::String(args[1].str);
_nextSetting = s;
ChgMode(args);
}
else if (strcmp(name, "goto") == 0) {
Goto(args);
}
else if (strcmp(name, "SetFlag") == 0) {
debug("SetFlag(%s, %d)", args[0].sym->name->c_str(), args[1].val);
args[0].sym->u.val = args[1].val;
//_mode = args[0].val;
//Common::String *s = new Common::String(args[1].str);
//_nextSetting = s;
SetFlag(args);
}
else if (strcmp(name, "Sound") == 0) {
Sound(args);
}
else