add and sub actions

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1865 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 16 years ago
parent 22ba41b066
commit 557449f53e

@ -44,7 +44,8 @@ MOD_ACTIONEXPORT_BEGIN(MOD_CLS_NAME) {
DEF_CMD("utils.spell", SCUSpellAction);
DEF_CMD("utils.rand", SCURandomAction);
DEF_CMD("utils.srand", SCUSRandomAction);
DEF_CMD("utils.add", SCUSAddAction);
DEF_CMD("utils.sub", SCUSSubAction);
} MOD_ACTIONEXPORT_END;
@ -160,3 +161,40 @@ EXEC_ACTION_START(SCUSpellAction) {
sc_sess->playFile(basedir+play_string[i]+".wav", false);
} EXEC_ACTION_END;
CONST_ACTION_2P(SCUSAddAction, ',', false);
EXEC_ACTION_START(SCUSAddAction) {
string n1 = resolveVars(par1, sess, sc_sess, event_params);
string n2 = resolveVars(par2, sess, sc_sess, event_params);
string varname = par1;
if (varname.length() && varname[0] == '$')
varname = varname.substr(1);
// todo: err checking
string res = double2str(atof(n1.c_str()) + atof(n2.c_str()));
DBG("setting var[%s] = %s + %s = %s\n",
varname.c_str(), n1.c_str(), n2.c_str(), res.c_str());
sc_sess->var[varname] = res;
} EXEC_ACTION_END;
CONST_ACTION_2P(SCUSSubAction, ',', false);
EXEC_ACTION_START(SCUSSubAction) {
string n1 = resolveVars(par1, sess, sc_sess, event_params);
string n2 = resolveVars(par2, sess, sc_sess, event_params);
string varname = par1;
if (varname.length() && varname[0] == '$')
varname = varname.substr(1);
// todo: err checking
string res = double2str(atof(n1.c_str()) - atof(n2.c_str()));
DBG("setting var[%s] = %s - %s = %s\n",
varname.c_str(), n1.c_str(), n2.c_str(), res.c_str());
sc_sess->var[varname] = res;
} EXEC_ACTION_END;

@ -38,5 +38,7 @@ DEF_ACTION_1P(SCGetNewIdAction);
DEF_ACTION_2P(SCUSpellAction);
DEF_ACTION_2P(SCURandomAction);
DEF_ACTION_1P(SCUSRandomAction);
DEF_ACTION_2P(SCUSAddAction);
DEF_ACTION_2P(SCUSSubAction);
#endif

@ -23,3 +23,11 @@ Actions:
utils.srand()
seed the RNG with time().
utils.add($var, val)
add val (float value) to var. also
utils.add($var1, $val); utils.add($var, #param)
utils.sub($var, val)
subtract val from var

Loading…
Cancel
Save