ACC doesn't support the ternary operator '?:', but BCC and GDCC do. To emulate it in ACC, ACSUtils implements the following trivial function:
any cond(bool condition, any a, any b)
If condition
is true, it returns a, otherwise it returns b.
The only difference is that all arguments are evaluated before the function is called. This means that cond(x, f(), g())
will call both f()
and g()
, while x ? f() : g()
will call only one of them.
Without cond()
:
int color = CR_RED; if (PlayerTeam() == TEAM_BLUE) color = CR_BLUE; DrawSomething(color);
With cond()
:
DrawSomething(cond(PlayerTeam() == TEAM_BLUE, CR_BLUE, CR_RED));