mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-12 19:31:41 +00:00
if statements
Changed: if check on vals now return true if the value has a string value %val = "test me" if(%val) will now return true since %val is not null Script side: string checks for "true" and "false" will now be parsed as integer values of 1 and 0. TEST VIGOUROUSLY
This commit is contained in:
parent
760c153232
commit
e56f4cb6a6
5 changed files with 39 additions and 4 deletions
|
|
@ -200,7 +200,9 @@ U32 IfStmtNode::compileStmt(CodeStream& codeStream, U32 ip)
|
|||
U32 endifIp, elseIp;
|
||||
addBreakLine(codeStream);
|
||||
|
||||
if (testExpr->getPreferredType() == TypeReqUInt)
|
||||
TypeReq testType = testExpr->getPreferredType();
|
||||
|
||||
if (testType == TypeReqUInt)
|
||||
{
|
||||
integer = true;
|
||||
}
|
||||
|
|
@ -209,8 +211,16 @@ U32 IfStmtNode::compileStmt(CodeStream& codeStream, U32 ip)
|
|||
integer = false;
|
||||
}
|
||||
|
||||
ip = testExpr->compile(codeStream, ip, integer ? TypeReqUInt : TypeReqFloat);
|
||||
codeStream.emit(integer ? OP_JMPIFNOT : OP_JMPIFFNOT);
|
||||
if (testType == TypeReqString)
|
||||
{
|
||||
ip = testExpr->compile(codeStream, ip, TypeReqString);
|
||||
codeStream.emit(OP_JMPIFNOT);
|
||||
}
|
||||
else
|
||||
{
|
||||
ip = testExpr->compile(codeStream, ip, integer ? TypeReqUInt : TypeReqFloat);
|
||||
codeStream.emit(integer ? OP_JMPIFNOT : OP_JMPIFFNOT);
|
||||
}
|
||||
|
||||
if (elseBlock)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue