Commit graph

10 commits

Author SHA1 Message Date
Sally Coolatta
8eef5efa95 Fully port the ACS integration to C++ 2022-12-23 04:38:05 -05:00
Sally Coolatta
88ffab9f3c Add ACSVM building to CMake
Currently this breaks some parts of the ACS functionality ... before I made a handful of small extensions to ACSVM's slightly-limited C API myself, and I didn't get them into the actual repo yet.

But now that we've moved to actual C++ compiling, I will likely just flat-out rewrite the SRB2 side of the code in C++ so it can use the library directly.
2022-12-22 09:44:38 -05:00
Sally Coolatta
4c7519dffb Allow ACS to call linedef specials as functions
A handful need adjusted to move more stuff off of linedef and into args, but otherwise works well.
2022-11-14 21:43:01 -05:00
Sally Coolatta
460e1a67c7 Implement remaining ACS0 codes that apply to SRB2
Only thing left to reach parity with Hexen is being able to use linedef specials as functions
2022-10-08 06:53:24 -04:00
Sally Coolatta
93cdac681b Keep track of script activators
Can supply the activating object, line, line side, polyobject, and (added for SRB2) sector.
2022-10-08 05:39:56 -04:00
Sally Coolatta
a315482aa4 Add ThingCount
Hexen implements this as ThingCount(int, int), and ZDoom adds ThingCountName(str, int). I decided on simplifying down to ThingCount(str, int).
2022-10-07 20:19:51 -04:00
Sally Coolatta
1d373d2c81 Add ChangeFloor/Ceiling, fix Random 2022-10-07 18:32:05 -04:00
Sally Coolatta
6a743db1eb More code cleanup
- Inline function to simplify adding call funcs
- Implemented print when thread is killed
2022-10-06 05:31:25 -04:00
Sally Coolatta
df47a5fe39 Commentate code, add a few more CallFuncs 2022-10-06 02:48:43 -04:00
Sally Coolatta
cb8dddbedc ACS basic implementation
- BEHAVIOR lumps successfully load & run from maps. Currently they do not get unloaded between maps, though.
- Print and Timer are the only implemented CallFuncs. All of the base language functions (Delay, etc) are already implemented by the VM though.
- ACS compiler files are included, for use with GDCC. (Picked instead of ACC because it's less ZDoom-centric)
- Additionally, also added the configs for Zone Builder to be able to compile it in editor. Syntax highlighting is very incomplete atm.
2022-10-04 03:23:17 -04:00