Tiny cleanup to ease extraction of the program parser code.

svn-id: r31959
This commit is contained in:
Nicola Mettifogo 2008-05-09 01:42:25 +00:00
parent 1d025957ca
commit c7c8bb99ee
5 changed files with 14 additions and 13 deletions

View File

@ -399,7 +399,7 @@ DECLARE_INSTRUCTION_OPCODE(inc) {
}
if (inst->_opA._flags & kParaLocal) {
wrapLocalVar(inst->_opA._local);
inst->_opA._local->wrap();
}
}

View File

@ -107,7 +107,7 @@ DECLARE_INSTRUCTION_OPCODE(inc) {
}
if (inst->_opA._flags & kParaLocal) {
wrapLocalVar(inst->_opA._local);
inst->_opA._local->wrap();
}
}
@ -189,16 +189,6 @@ DECLARE_INSTRUCTION_OPCODE(endscript) {
void Parallaction_ns::wrapLocalVar(LocalVariable *local) {
if (local->_value >= local->_max)
local->_value = local->_min;
if (local->_value < local->_min)
local->_value = local->_max - 1;
return;
}
DECLARE_COMMAND_OPCODE(invalid) {
error("Can't execute invalid command '%i'", _cmdRunCtxt.cmd->_id);

View File

@ -116,6 +116,16 @@ int16 Program::addLocal(const char *name, int16 value, int16 min, int16 max) {
return _numLocals++;
}
void LocalVariable::wrap() {
if (_value >= _max)
_value = _min;
if (_value < _min)
_value = _max - 1;
return;
}
Zone::Zone() {

View File

@ -316,6 +316,8 @@ struct LocalVariable {
_min = -10000;
_max = 10000;
}
void wrap();
};
enum ParaFlags {

View File

@ -683,7 +683,6 @@ protected:
void loadProgram(AnimationPtr a, const char *filename);
void parseLValue(ScriptVar &var, const char *str);
virtual void parseRValue(ScriptVar &var, const char *str);
void wrapLocalVar(LocalVariable *local);
DECLARE_UNQUALIFIED_COMMAND_OPCODE(invalid);
DECLARE_UNQUALIFIED_COMMAND_OPCODE(set);