Commit graph

300 commits

Author SHA1 Message Date
Christoph Oelckers
ac50daf5f3 - split a large bunch of code out of movetransports that can be consolidated between Duke and RR. 2023-04-23 09:43:21 +02:00
Christoph Oelckers
0b3f18a903 - consolidated move functions. 2023-04-23 09:42:29 +02:00
Christoph Oelckers
2d4eee4153 - eliminated the last references to picnum in actors.cpp. 2023-04-23 09:42:28 +02:00
Christoph Oelckers
1b64b207bb - consolidated movesprite_ex functions. 2023-04-23 09:42:27 +02:00
Christoph Oelckers
542083af30 - merged both hitradius variants, now that all the critical differences are properly handled by actor flags. 2023-04-22 12:08:47 +02:00
Christoph Oelckers
19f4e4ff63 - added a new flag and split out the geometry destruction part from the hitradius functions
... which suddenly look a lot less menacing...
2023-04-22 12:08:47 +02:00
Christoph Oelckers
f78c971eac - refactored shoot API to exclusively work with class pointers. 2023-04-22 12:08:46 +02:00
Christoph Oelckers
36d5ab74bb - eliminated lots of direct tile references in spawn() calls. 2023-04-22 12:08:46 +02:00
Christoph Oelckers
a3da3a4c43 - added a large bunch of script exports. 2023-04-16 17:35:15 +02:00
Christoph Oelckers
cb8137c32b - consolidated shoot_d and shoot_r. 2023-04-16 16:53:52 +02:00
Christoph Oelckers
afe7086189 - reimplemented WW2GI's hitscan related events in ZScript. 2023-04-16 16:53:51 +02:00
Christoph Oelckers
3af08ecbac - scriptified and consolidated the hitscan attacks. 2023-04-16 16:53:51 +02:00
Christoph Oelckers
c73830992f - added a few exports and properties for weapon shooting and added missing 'const' annotations for ShootThis overrides. 2023-04-15 23:23:09 +02:00
Christoph Oelckers
0c17a369db - Duke: changed skill filter to be solely controlled by the spawnclasses definitions.
All classes with no skill filter now need an explicit noskill declaration.
The only exception is inert sprites using DukeActor directly, these will never get filtered by skill.
2023-04-12 20:06:25 +02:00
Christoph Oelckers
04a027f748 - removed most parameters from fall_common. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
60339a217c - moved a lot of shareable code out of the CON interpreter. 2023-04-07 13:15:06 +02:00
Christoph Oelckers
9ba0b18013 - moved the 3 health related instructions out of the CON interpreter.
This code can be shared with ZScript so it needs to be elsewhere.
2023-04-07 13:15:06 +02:00
Christoph Oelckers
2ba204444c - merged the spawn init code now that all differences are externalized 2023-04-07 13:15:06 +02:00
Christoph Oelckers
ef6a8c010a - exported ceilingsteam and consolidated movefallers functions. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
b4dcf8ddcf - exported the remaining Duke enemies. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
7f240a0a7a - converted all remaining classes used by PicForName.
This means all functions using this can now pass class pointers directly to the native code.
2023-04-02 13:13:45 +02:00
Christoph Oelckers
c9888ae6cb - exported several RR enemies/animals needed for the UFO spawner. 2023-04-02 13:13:06 +02:00
Christoph Oelckers
bc50f596e8 - exported two more classes used by PicForName. 2023-04-02 13:10:34 +02:00
Christoph Oelckers
ccc048136f - exported TOILETWATER, BURNING and EXPLOSION2.
All types needed for cleaning up PicForName
2023-04-02 13:00:13 +02:00
Christoph Oelckers
e0bd038391 - scriptified the native parts of TRANSPORTERSTAR and TRANSPORTERBEAM 2023-04-02 13:00:13 +02:00
Christoph Oelckers
4328016963 - move the remaining parts of spawninitdefault to DukeActor::Initialize.
This ensures proper execution of all code - spawninitdefault was designed to be the fallback for actors without a special case in spawninit.
2023-01-28 16:33:35 +01:00
Christoph Oelckers
38b278b12d - fixed enemy setup.
All enemies now run a native init function to reduce script-induced problems.

this required adding a NOGRAVITY flag so that the recon can use the same code as well which was the only enemy relying on custom code.
2023-01-28 16:33:15 +01:00
Christoph Oelckers
90702ae2f5 - consolidated the animwall code by using texture flags.
This is way too hacky for generalization. For that newly defined control actors are surely a better option.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
95a2b85fae - migrated the rest of the switch code to use the external data. 2022-12-29 13:35:21 +01:00
Christoph Oelckers
8c41294cb0 - overpicnum lightening.
Especially make sure that it is never set to tile 0. There seems to have been some undefined behavior here treating 0 as 'no texture', but doing so inconsistently.
2022-12-18 15:13:22 +01:00
Christoph Oelckers
4a306a21dc - split several texture flags off into a surface type value.
Using the same field in the TexExtInfo struct as Blood's surfType.
This frees up a lot of flags for later use.
2022-12-18 13:56:54 +01:00
Christoph Oelckers
0ffeb2378a - generalize Duke's purple lava check. 2022-12-18 13:43:26 +01:00
Christoph Oelckers
a08db47528 - exported all breakable ceilings.
Very simple stuff with instant profit. :)
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a63ee8079a - implemented customizable breakable walls and ported all hard coded variants to use this. 2022-12-11 19:43:57 +01:00
Christoph Oelckers
9e3318a2fb - moved spawnclasses and breakwall definitions from .def to RMAPINFO.
.def is not the right place for this - it needs to run very early in the process, before scripted actors are loaded, so doing this stuff there means that half the initialization has to be postponed and error reporting is sub-par.
These are now part of RMAPINFO which gets parsed as one of the very last things - it is also where GZDoom is doing some of these things.

The better error reporting also allowed fixing some errors in these definitions.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
5b34917f62 - split the sprite animation code for CON-based actors into a separate function.
Like the shadow code this is virtually identical for Duke and RR.
2022-12-11 19:43:55 +01:00
Christoph Oelckers
0d7288c543 - moved the shadow creation code out of animatesprites into a common subfunction.
Also removing several checks for non-enemy actors for which shadows are generally not being created.
2022-12-11 19:43:55 +01:00
Christoph Oelckers
6fb263d61b - converted the two last non-CON-based active items - RRRA's empty bike and boat. 2022-12-11 19:43:54 +01:00
Christoph Oelckers
3ee28eb600 - use tickstat for all thinker loops that have no more special cases. 2022-12-11 19:43:54 +01:00
Christoph Oelckers
6de147b77f - moved the CON execute call to DDukeActor::Tick and removed a large portion of the special handling for scriptified actors. 2022-12-11 19:43:54 +01:00
Christoph Oelckers
bdc474d04f - scriptified all remaining Duke actors with specific init code and no CON part. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
cbb3b0ebfb - preparations for the next script exports. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
0dc526899b - scriptified FrameEffect 2022-12-11 19:43:51 +01:00
Christoph Oelckers
0bc9023e17 - scriptified the pipe bomb and RR's dynamite, which is mostly the same thing.
The mortars were split off because they made the code too convoluted.
2022-12-11 19:43:51 +01:00
Christoph Oelckers
5358b3d98c - added a new sprite flag for those types which can trigger respawn actions. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
f89ccec829 - scriptified Duke's reactor. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
403141807f - scriptified all simple and explosive RR projectiles. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
fcd05e38c9 - scriptified the freezer projectile. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
a756b71647 - scriptified the firelaser projectile.
This also fixes the animation of the RR variant, which used a bad value with '&'.
2022-12-11 19:43:48 +01:00
Christoph Oelckers
15fb7dab35 - virtualized the 'shoot' interface and scriptified the bloodsplats to test it.
This calls virtual functions on the actor defaults now to allow writing specific shoot functions for subclasses.
2022-12-11 19:43:48 +01:00