ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


new:ternary

Ternary operator in ACS

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.

Examples

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));
new/ternary.txt · Last modified: 2018/02/18 18:31 by korshun