Commit graph

7174 commits

Author SHA1 Message Date
Christoph Oelckers
230c1b9041 - fix animatesprite loop aborts on sector effectors 2023-09-10 19:55:41 +02:00
Christoph Oelckers
82057bcd5a - Backend update from GZDoom-
This compiles but doesn't run.
2023-08-23 20:36:19 +02:00
Christoph Oelckers
b95a5a4b2b - yet another backend update. 2023-08-20 02:15:57 +02:00
Christoph Oelckers
d34bad3045 - adapted game side code. 2023-08-19 19:41:40 +02:00
Christoph Oelckers
32ede813e9 - new files for backend update. 2023-08-19 18:17:17 +02:00
Christoph Oelckers
2095a2120c - consolidated the 4 ReadSound functions. 2023-08-19 18:11:19 +02:00
Christoph Oelckers
3c695a5abd - adapted to backend changes. 2023-08-19 18:08:27 +02:00
Christoph Oelckers
76e77d4e64 - Duke: fix enemy counting 2023-08-06 09:59:33 +02:00
Christoph Oelckers
f0623c7098 - fix compilation 2023-08-06 09:22:07 +02:00
Christoph Oelckers
bd078cc3e6 - SW: Clear FinishTimer when starting a new level. 2023-08-03 17:53:25 +02:00
Christoph Oelckers
20b96501b6 - moved rnd_plasma into global space again.
C++'s init rules for local static variables are so dumb that this will cause undefined behavior with the RNG management, it's also very inefficient.
2023-08-03 12:55:23 +02:00
Christoph Oelckers
c19653262e - Duke: fix management of killit_flag.
This cannot be in the actor because event scripts can be called without a valid actor.
It is now part of the parse state, but execute allows returning it to the caller, which is needed in one place.
2023-07-22 10:24:20 +02:00
Christoph Oelckers
ce34ef2921 - Duke: fixed skill filter handling for CON defined enemies. 2023-07-17 00:32:27 +02:00
Christoph Oelckers
0380ef3b80 - SW: remove redundant ; in sector object serializer.
This caused the animtype field not to be saved.
2023-07-16 10:59:39 +02:00
Kevin Caccamo
80ac9f6416 Fix a memory write issue with plasma_{A,B,C}
plasma_A[5] = {}; will write the default value for int to the sixth element of plasma_A, causing a global-buffer-overflow.

I assume the intention here was to fill these three arrays with zeroes, which is what I did with the memset calls.
2023-07-12 19:13:05 +10:00
Christoph Oelckers
1e2b5c2747 - added missing range checks to PlaySpriteSound.
This can be called with attr_none!
2023-06-29 18:28:16 +02:00
Christoph Oelckers
c4cb44f5f0 - RR: thunder may only be triggered when the player sees a sector with an activating texture as sky. 2023-06-19 20:45:16 +02:00
Christoph Oelckers
5bbcb82ef2 - unlimited the number of sectors to have window lightning. 2023-06-19 20:34:04 +02:00
Christoph Oelckers
b31e8dd8b4 - some initial preparations for exporting SW's actors. 2023-06-01 22:07:47 +02:00
Christoph Oelckers
d74c2ba52f - added a few texture names for picnum literals. 2023-05-31 21:53:14 +02:00
Christoph Oelckers
54335f7215 - got rid of the tilenum variant of hud_drawsprite. 2023-05-30 19:08:26 +02:00
Christoph Oelckers
0b158dbdd0 - Blood: use texture IDs in drawElements. 2023-05-30 19:05:33 +02:00
Christoph Oelckers
117874bb72 - Blood: fixed bad scaling in viewBurnTime. 2023-05-30 18:57:44 +02:00
Christoph Oelckers
af4189c2a1 - RR: fixed shotgun HUD placement
This original code is technically dead wrong - it just works by happenstance.
2023-05-30 18:26:05 +02:00
Christoph Oelckers
f8de8eb7a3 - Duke: fixed bad range check in tripbomb drawer. 2023-05-30 17:18:31 +02:00
Christoph Oelckers
517b77bfdc - RR: spawn the correct player class. 2023-05-30 00:11:49 +02:00
Christoph Oelckers
27d17bc413 - moving around some constants. 2023-05-29 22:16:23 +02:00
Christoph Oelckers
a2f0bfb073 - clean out digi.h
It's only the enum now - all the rest is externally defined.
2023-05-29 22:16:22 +02:00
Christoph Oelckers
d163e67a36 - named all breakable sprites. 2023-05-29 22:16:11 +02:00
Christoph Oelckers
e97dfb3687 - moved ActorActionFunc and Personality out of __LegacyState again. 2023-05-28 21:07:34 +02:00
Christoph Oelckers
b07a182df4 - change type of AF() 2023-05-28 11:19:36 +02:00
Christoph Oelckers
8d57281101 - turn the SO's Animator and PostMoveAnimator into non-functions as well.
What little is here can be done just as easily by more traditional means which are easier to serialize.
2023-05-28 11:19:35 +02:00
Christoph Oelckers
5e64d6c7aa - call ScaleSectorObject directly.
It's the only PreMoveAnimator so a bool can be used as easily as the full pointer.
2023-05-28 11:19:35 +02:00
Christoph Oelckers
20b39c6a0d - removed several non-actions from player.cpp's saveable code. 2023-05-28 11:19:35 +02:00
Christoph Oelckers
4bf0029c32 - remove lots of unneeded SAVE_CODE and SAVE_DATA declarations.
Everything ported to VMFunctions can now be saved natively and the DECISIONs never get stored in serialized pointers.
2023-05-28 11:19:35 +02:00
Christoph Oelckers
ddfb485424 - added a serializer for VMFunction pointers. 2023-05-28 11:19:34 +02:00
Christoph Oelckers
64d012b073 - implement the VM call's return value 2023-05-28 11:19:23 +02:00
Christoph Oelckers
fb79228600 - get rid of all ANIMATOR function pointers.
Everything now uses VMFunctions.
2023-05-28 09:06:51 +02:00
Christoph Oelckers
280d685774 - get rid of more ANIMATOR declarations. 2023-05-28 09:01:43 +02:00
Christoph Oelckers
4e5372133c - removed the godawful hack to use function addresses as identifier for playing sounds.
This already required a bad workaround, but let's do it cleanly now so it can be used from scripts properly.
In most places this wasn't even used to decide on sound playing at all - only the 'broadcast' decision matters.
2023-05-28 09:01:05 +02:00
Christoph Oelckers
f12cc01055 - wrap all personality decision actions in VM functions. 2023-05-28 08:52:46 +02:00
Christoph Oelckers
540f96407d - clean up ANIMATOR declarations. 2023-05-28 08:46:03 +02:00
Christoph Oelckers
1b685d8652 - wrap all action functions in a VMFunction.
To allow piece-by-piece refactoring.
2023-05-28 08:35:19 +02:00
Christoph Oelckers
89cce849e8 - wrapped more direct access to the states. 2023-05-28 08:32:52 +02:00
Christoph Oelckers
beb8368819 - more stateGroup wrapping 2023-05-28 08:24:56 +02:00
Christoph Oelckers
7eb713ab04 - wrap state setters so they can use state names. 2023-05-28 08:13:20 +02:00
Christoph Oelckers
213bdbadad - allocate VMFunction's PrintableName from the ClassDataAllocator arena.
This avoids execution order issues on shutdown. VMFunction should not use FString.
2023-05-27 22:40:47 +02:00
Christoph Oelckers
7d30f1921c - moved remaining stuff to refactor to a substructure for easier lookup later. 2023-05-27 22:15:52 +02:00
Christoph Oelckers
3612127a5e - move stuff to refactor to a sub-structure. 2023-05-27 12:37:24 +02:00
Christoph Oelckers
12266a3693 - SW: inline setting the end state. 2023-05-27 12:11:41 +02:00