====== BCC ======
* **[[https://github.com/wormt/bcc|GitHub]]**
* **[[https://github.com/wormt/bcc/wiki|Documentation]]**
* **[[https://forum.zdoom.org/viewtopic.php?f=44&t=54037|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