BCC

GitHub

Documentation

ZDoom forum thread

BCC is an alternative ACS compiler. If you are taking full advantage of BCS, it is recommended to use BCSUtils – a version of ACSUtils with full support for BCS strict typing.

If you are using BCC to compile regular ACS, ACSUtils is still fully supported in BCC, but will cause type errors if you enable strict typing. To avoid strict typing errors, you need to use BCSUtils.

Caveats

Functions return 0 by default (not a bug)

function int f() {} // returns 0

If a function that returns a value reaches the end, and there is no “return” statement at the end, the function returns 0. This is done to avoid false compiler errors like this:

function int f(void)
{
if (x)
return 1;
else
return 2;
// ACC will complain that the function doesn't return a value
}

Fixed bugs

Named clientside scripts are not clientside [fixed in 0.8.0]

BCC fails to mark named clientside scripts as clientside, so they end up actually being serverside. Instead, it marks an unnamed, not necessarily existing script as clientside.

Details: https://zandronum.com/tracker/view.php?id=3153