Emit a message when trying to use something non-integral as a boolean

- It's not exactly optimal, since it silently removes the offending
  expression, but it's better than crashing.
This commit is contained in:
Randy Heit 2016-02-05 22:16:56 -06:00
parent 09a17c2198
commit 48dcbabd60
1 changed files with 5 additions and 0 deletions

View File

@ -143,11 +143,13 @@ FxExpression *FxExpression::Resolve(FCompileContext &ctx)
FxExpression *FxExpression::ResolveAsBoolean(FCompileContext &ctx)
{
///FIXME: Use an actual boolean type
FxExpression *x = Resolve(ctx);
if (x != NULL)
{
switch (x->ValueType.Type)
{
case VAL_Int:
case VAL_Sound:
case VAL_Color:
case VAL_Name:
@ -155,6 +157,9 @@ FxExpression *FxExpression::ResolveAsBoolean(FCompileContext &ctx)
break;
default:
ScriptPosition.Message(MSG_ERROR, "Not an integral type");
delete this;
return NULL;
break;
}
}