Commit graph

95 commits

Author SHA1 Message Date
Christoph Oelckers
53e92097ac - converted weaponsandammosprites into a class pointer array and fixed RR's bogus content.
It's a Duke only feature. RR can use it but would have spawned some non-functional items.
2023-04-22 12:08:47 +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
ef412c20cc - scriptified shootrpg.
Due to its ugly special cases this function is most likely not modding-safe.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
e97fc54179 - scriptified shootstuff. 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
1f5cd93564 - wall flag interface cleanup.
With wall textures now available the workarounds could be removed.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
e15517cf57 - fixed some issues with projectile ownership.
Some init code was run here that should not be run. Added a new flag to handle this case without major code explosion.
2023-04-16 07:54:26 +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
0a91a9a199 - route checkhitsprite fully through the virtual interface so that the player class can finally be exported. 2023-04-12 22:02:01 +02:00
Christoph Oelckers
60af1b4c62 - renamed temp_data[0] to 'counter' and map temp_data[5] to the now free temp_data[0].
This not only matches its use in CON but seems to be used as a counter in most other places as well.
The main reason is to improve readability of CON to ZScript conversions.
2023-04-12 21:54:33 +02:00
Christoph Oelckers
ebf7b4a121 - copy the CON defined info into the actual actors.
Only using the strength value right now.
2023-04-12 20:29:37 +02:00
Christoph Oelckers
8c831de9be - Duke: deleted the obsolete script side actor flag definitions 2023-04-12 20:10:13 +02:00
Christoph Oelckers
62ace9371f - moved the 3 actor properties out of the global data. 2023-04-12 20:07:12 +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
7f758eef2b - got rid of the script-side flag wrappers. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
da0b429751 - migrated attackertype to class objects. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
ae4ef6401c - use the actual actor flags.
Not fully working yet...
2023-04-09 09:45:42 +02:00
Christoph Oelckers
8172a9ac0c - moved all flags into the actor definitions. 2023-04-09 09:35:37 +02:00
Christoph Oelckers
3dd87cfd7f - got rid of checkType. 2023-04-07 12:22:46 +02:00
Christoph Oelckers
7a699e032f - cleaned up Duke's very broken kill count system.
This now uses a static flag to denote an actor as countable and an internal flag to track its killed state, because CON can toggle that at will.
2023-04-07 09:49:20 +02:00
Christoph Oelckers
58ee80564b - Duke: fixed scale default for non-ememies. 2023-04-07 00:15:15 +02:00
Christoph Oelckers
52ea497b50 - fixed lotsofstuff VM export. 2023-04-02 13:19:35 +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
673ea69d35 - scriptified a few more skeleton items needed by PicforName. 2023-04-02 13:00:13 +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
6c77d1c39e - Duke: fixed setup of purely scripted enemies,
Some band-aid is still needed for the time being.
2023-02-09 17:34:59 +01: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
9783b8c402 - scriptified World Tour's flamethrowerflame.
The first of 3 mixed native/CON items which are the last things remaining in the main thinker loops.
2023-01-28 16:31:45 +01:00
Christoph Oelckers
2386ea9930 - implemented the 3 special switches
That's the developer commentary icon in World Tour, the deactivation switch for the chicken processing plant in RR and one shootable alarm bell in RRRA.
2022-12-29 13:32:30 +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
37067753fc - use mapspawned flag in all already scriptified code.
This is more to clarify intent than to fix things, none of the changes here should change behavior.
2022-12-13 11:29:37 +01:00
Christoph Oelckers
13e6718153 - added mapSpawned member to DDukeActor
Duke uses the owner a lot to check if an actor was spawned at map start or in-game, but that depends a lot on stale pointers being maintained, which our garbage collected system does not allow. So this field now serves as a more reliable stand-in for these cases.
No actual changes yet.
2022-12-13 10:36:45 +01:00
Mitchell Richters
5d3710d677 - Duke: Always use tsprite pos/angle when used in conjunction with viewvec or viewang.
* This solves the issue of jittery picnum changes when circle-strafing actors at high speeds.
2022-12-11 19:45:38 +01:00
Christoph Oelckers
c1a09196f0 - implemented breakable walls with external definitions.
The scripted case does not work yet due to bad loading order of files.
2022-12-11 19:43:57 +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
1cfba8e989 - cleaned up the main thinker loops, using a flag to denote actors that are not on STAT_ACTOR but need to run CON code.
This should not be automatic as it may cause problems with mods not expecting this.
2022-12-11 19:43:54 +01:00
Christoph Oelckers
cbb3b0ebfb - preparations for the next script exports. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
e6c466fcba - scriptified several of Duke's destructible items. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
7cbc713b4e - scriptified stat121 special effect. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
dc06a93a4f - scriptified RR's UFO teleporter. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
5a155730b4 - scriptified RR's bowling stuff. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
be6ead173a - scriptified several smaller actors 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
ff6a9b89ac - scriptified the green slimer. 2022-12-11 19:43:51 +01:00
Christoph Oelckers
f1d6e0e6bb - scriptified Duke's shooting gallery targets. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
4397e65443 - cleaned up the generic destructible code and used it for several more things. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
44fa420387 - added a few new flags and renamed some sprites.
All this is preparations for scriptifying the projectiles.
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