Commit graph

18085 commits

Author SHA1 Message Date
NepDisk
ed025e5428 Fix uncommited messages 2024-10-15 14:58:22 -04:00
NepDisk
fb34898a29 remove added header 2024-10-15 14:16:03 -04:00
Eidolon
d08b923f06 Merge branch 'extern-c-everything' into 'master'
Add extern "C" in C++ to all headers

See merge request KartKrew/Kart!842
2024-10-15 14:14:43 -04:00
NepDisk
82a7f26c66 comment out unlockables for now 2024-10-15 14:00:07 -04:00
Sally Coolatta
22e3ff3b07 Add ACS functions that can replicate line triggers
PlayerTeam, PlayerRings, PlayerScore, CountEnemies, CountPushables, HaveUnlockableTrigger, HaveUnlockable, PlayerSkin, GetObjectDye, PlayerEmeralds, PlayerLap, LowestLap, and EncoreMode
2024-10-15 13:57:06 -04:00
Sally Coolatta
b656167bfb Replace LinedefExecute hook
- It is now called the "SpecialExecute" hook, since it can be called from ACS in addition to linedef specials.
- The input arguments are completely different now. Instead of (line_t, mobj_t, sector_t), it's (activator_t, args array, stringargs array). activator_t is userdata containing valid, mo (mobj_t), line (line_t), side (side_t), sector (sector_t), and po (polyobject_t).
2024-10-15 13:44:30 -04:00
Sally Coolatta
63ca246a2a Fix ACS specials not working in binary maps
Didn't copy over the text field.
2024-10-15 13:35:32 -04:00
Sally Coolatta
20b68e4a0f Copy text to stringarg[0] for ACS linedefs
Allows them to be used in Zone Builder binary maps
2024-10-15 13:35:14 -04:00
NepDisk
ac7b44c503 Fix compile 2024-10-15 13:24:21 -04:00
Sally Coolatta
364b5bda8a Improve compiling, add ACS_Execute
Arbritrary ACS scripts can now be run from linedef executors. I will be implementing more, non-linedef-executor-related methods in the future.
2024-10-15 13:07:13 -04:00
Sally Coolatta
192b30f8ea Save+load SRB2 vars on ACS threads 2024-10-15 07:52:25 -04:00
Sally Coolatta
9ce121233e Add save/load stream for ACS
Saves the majority of the VM state, but not the SRB2-specific vars ... that can come after food
2024-10-15 07:51:13 -04:00
Sally Coolatta
e23180283a Contain end & size into savebuffer_t
I would've liked to make it use a single allocate function to do this very cleanly, but these cases were very clearly not meant to be standardized and use wildly different methods to allocate & free...
2024-10-15 07:48:51 -04:00
James R
3fb806ed71 Remove global lua_save_p and use savebuffer_t for LUA_Archive / LUA_UnArchive 2024-10-15 07:43:52 -04:00
James R
e91701fe5b g_demo.c: use savebuffer_t 2024-10-15 07:41:38 -04:00
NepDisk
7a4b3e8017 Fix corrupt save files 2024-10-15 06:55:41 -04:00
Sally Coolatta
07cdd2f461 Make save_p / savebuffers not global
This caused some scary issues with P_SaveNetGame the other day, and it's making ACS net sync harder. Let's just cut this off right now.

Also fixed some scary mix-ups in some of the Lua archiving code.
2024-10-15 06:41:25 -04:00
Sally Coolatta
8637dc3ce3 Fully port the ACS integration to C++ and make it build 2024-10-15 06:01:14 -04:00
James R
6de3a1b573 Merge branch 'cmake-testers' into 'master'
Add TESTERS and HOSTTESTERS builds to CMake options

See merge request KartKrew/Kart!830
2024-10-15 04:45:25 -04:00
toaster
0e53b0513f Remove dynamic base from CMake target link options
Permits functional debugging of crash reports by preventing ASLR
2024-10-15 04:44:21 -04:00
Sally Coolatta
e250450084 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.
2024-10-15 04:44:02 -04:00
Sal
f0370fc1a1 Merge branch 'cmake-sources' into 'master'
Move sources list from Sourcefile to CMakeLists.txt

See merge request KartKrew/Kart!795
2024-10-15 04:36:26 -04:00
NepDisk
ae739b9ef1 Merge branch 'CPP' into ACS2 2024-10-15 04:25:57 -04:00
NepDisk
872b3b70c1 Disable catch 2 2024-10-15 04:23:59 -04:00
Sal
f503d88ab5 Merge branch 'enable-cxx' into 'master'
Enable C++17 additionally with Catch2 unit testing

See merge request KartKrew/Kart!807
2024-10-15 04:19:22 -04:00
NepDisk
c7b48c8fe4 Remove unused headers 2024-10-15 04:18:11 -04:00
James R
9e801c66d5 Merge branch 'universal-typedef' into 'master'
Move all typedef into one file

See merge request KartKrew/Kart!791
2024-10-15 04:16:58 -04:00
Sal
4d1add7e4c Merge branch 'cmake-overhaul' into 'master'
cmake: Rollup of srb2-side changes

See merge request KartKrew/Kart!758
2024-10-15 03:40:29 -04:00
NepDisk
1288c80d8b Fix flat animation 2024-10-13 16:08:36 -04:00
NepDisk
afecac0c00 Remove unused titlecard code, some unused sounds and simplify pvp damage code 2024-10-12 22:02:51 -04:00
Alug
739b84ea28 Remove GLU library loading code
hope i didnt forger smth X)
2024-10-12 01:23:03 -04:00
Alug
674290dc11 Better Opengl version check
somehow forgor about vendor information in the version string lmao
2024-10-12 01:22:34 -04:00
Alug
26304d0bbb Replace glBuild2DMipmaps with GL_GENERATE_MIPMAPS
Quote "gluBuild2DMipmaps. Never use this."
gluBuild2DMipmaps was causing massive stutters on many maps on windows
this replaces it with GL_GENERATE_MIPMAP and removes glBuild2DMipmaps completely

https://www.khronos.org/opengl/wiki/Common_Mistakes
2024-10-12 01:22:29 -04:00
NepDisk
9a6aeaaa56 Allow ACS to call linedef specials as functions 2024-10-10 15:30:22 -04:00
Sally Coolatta
9d0ae3e489 Add LAP script type
GDCC just updated after my feature request for remappable script type names, so there's no more limitations surrounding those.
2024-10-10 15:17:17 -04:00
NepDisk
6edb12de78 Revert " Allow ACS to call linedef specials as functions"
This reverts commit f46a9ed5fa.
2024-10-10 15:14:01 -04:00
NepDisk
f46a9ed5fa Allow ACS to call linedef specials as functions 2024-10-10 15:10:18 -04:00
NepDisk
40270bcf3d Fix acs map lump reading 2024-10-10 14:18:29 -04:00
Indev
2eea1d0cde Those were not necessary oops 2024-10-10 20:59:05 +03:00
Indev
03c740503e Attempt to fix ACS library linking 2024-10-10 20:56:12 +03:00
Alug
5e5144822e shut up -Wcomment warnings pls 2024-10-10 18:08:24 +02:00
NepDisk
19ef4ef1e0 add to cmakelists? 2024-10-10 12:04:31 -04:00
NepDisk
84bff805e9 Fix perfstats, add acs folder 2024-10-10 11:29:58 -04:00
Sally Coolatta
ff1f91ebad 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
2024-10-10 01:43:42 -04:00
Sally Coolatta
89a5ea4a21 Keep track of script activators
Can supply the activating object, line, line side, polyobject, and (added for SRB2) sector.
2024-10-10 01:43:33 -04:00
Sally Coolatta
eff994fd60 Add ThingCount
Hexen implements this as ThingCount(int, int), and ZDoom adds ThingCountName(str, int). I decided on simplifying down to ThingCount(str, int).
2024-10-10 01:42:38 -04:00
Sally Coolatta
27ae35a82f Add ChangeFloor/Ceiling, fix Random 2024-10-10 01:42:33 -04:00
Sally Coolatta
4cd8aaa8b7 More code cleanup
- Inline function to simplify adding call funcs
- Implemented print when thread is killed
2024-10-10 01:42:26 -04:00
Sally Coolatta
3e5fb19e2d Commentate code, add a few more CallFuncs 2024-10-10 01:42:04 -04:00
Sally Coolatta
f5fe8ddcbe Reset hub & map scopes on map load 2024-10-10 01:41:36 -04:00