added Enable, Disable, GetDisabled

This commit is contained in:
Marc Zinnschlag 2010-07-09 16:07:03 +02:00
parent 4ecb63203b
commit 592fa84e2d
22 changed files with 310 additions and 12 deletions

View file

@ -346,7 +346,17 @@ namespace Compiler
mNextOperand = false;
return true;
}
}
else if (keyword==Scanner::K_getdisabled)
{
mTokenLoc = loc;
Generator::getDisabled (mCode);
mOperands.push_back ('l');
mNextOperand = false;
return true;
}
else
{
// check for custom extensions

View file

@ -284,6 +284,22 @@ namespace
{
code.push_back (Compiler::Generator::segment5 (50));
}
void opEnable (Compiler::Generator::CodeContainer& code)
{
code.push_back (Compiler::Generator::segment5 (51));
}
void opDisable (Compiler::Generator::CodeContainer& code)
{
code.push_back (Compiler::Generator::segment5 (52));
}
void opGetDisabled (Compiler::Generator::CodeContainer& code)
{
code.push_back (Compiler::Generator::segment5 (53));
}
}
namespace Compiler
@ -685,6 +701,21 @@ namespace Compiler
{
opGetSecondsPassed (code);
}
void getDisabled (CodeContainer& code)
{
opGetDisabled (code);
}
void enable (CodeContainer& code)
{
opEnable (code);
}
void disable (CodeContainer& code)
{
opDisable (code);
}
}
}

View file

@ -110,6 +110,12 @@ namespace Compiler
void getDistance (CodeContainer& code);
void getSecondsPassed (CodeContainer& code);
void getDisabled (CodeContainer& code);
void enable (CodeContainer& code);
void disable (CodeContainer& code);
}
}

View file

@ -162,7 +162,19 @@ namespace Compiler
mExprParser.parseArguments ("c", scanner, mCode, true);
Generator::stopScript (mCode);
mState = EndState;
return true;
return true;
case Scanner::K_enable:
Generator::enable (mCode);
mState = EndState;
return true;
case Scanner::K_disable:
Generator::disable (mCode);
mState = EndState;
return true;
}
// check for custom extensions

View file

@ -247,6 +247,7 @@ namespace Compiler
"startscript", "stopscript", "scriptrunning",
"getdistance",
"getsecondspassed",
"enable", "disable", "getdisabled",
0
};

View file

@ -53,7 +53,8 @@ namespace Compiler
K_random,
K_startscript, K_stopscript, K_scriptrunning,
K_getdistance,
K_getsecondspassed
K_getsecondspassed,
K_enable, K_disable, K_getdisabled
};
enum special