Commit graph

3270 commits

Author SHA1 Message Date
Christoph Oelckers
fc0c8e0787 - NOHITJIBS flag. 2023-04-23 10:45:44 +02:00
Christoph Oelckers
91ee3cb7b8 - got rid of the picnum CreateActor variant. 2023-04-23 10:45:43 +02:00
Christoph Oelckers
a6600c200f - a lot of simple picnum or TILE_* replacements. 2023-04-23 10:45:43 +02:00
Christoph Oelckers
5d43975467 - store class pointers in weaprecs. 2023-04-23 10:36:39 +02:00
Christoph Oelckers
2f78a10ce1 - don't use picnum to address gs.actorinfo 2023-04-23 10:36:39 +02:00
Christoph Oelckers
b56aa1e1a3 - no more picnum in spawn CCMD 2023-04-23 10:36:38 +02:00
Christoph Oelckers
745275dc24 - use texture names for special player sprites, 2023-04-23 10:36:38 +02:00
Christoph Oelckers
bfc8862071 - use texture IDs in the sprite animator 2023-04-23 10:36:27 +02:00
Christoph Oelckers
cc83438e31 - replace dispicnum with dispictex 2023-04-23 10:32:58 +02:00
Christoph Oelckers
b2493116f8 - use texture IDs in the model interface. 2023-04-23 09:52:56 +02:00
Christoph Oelckers
1bc9de1cf0 - the last picnums in actors_r.cpp 2023-04-23 09:52:56 +02:00
Christoph Oelckers
14bf74c0f9 - turned adjustfall into a 'gravityfactor' property. 2023-04-23 09:51:24 +02:00
Christoph Oelckers
687cfd610f - copied ST160/161 handling to movetransports_d. 2023-04-23 09:43:21 +02:00
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
a0de956bef - got rid of tilenum checks in movetransports_r. 2023-04-23 09:43:21 +02:00
Christoph Oelckers
4812e1431e - made fallspecial game independent and eliminated all the wrapping and callback weirdness with fall. 2023-04-23 09:43:20 +02:00
Christoph Oelckers
7f19a120a0 - clean out RRRA move flags in the CON parser for the other games.
This allows keeping their function enabled everywhere so that they can become a common feature without further need for validation.
2023-04-23 09:42:30 +02:00
Christoph Oelckers
b2b4d432fc - handle tilenum access in movetransports_d. 2023-04-23 09:42:30 +02:00
Christoph Oelckers
91d864ac8f - use classtypes in fallspecial. 2023-04-23 09:42:30 +02:00
Christoph Oelckers
35a088ba04 - added map flags to enable RR's special sector types in Duke as well. 2023-04-23 09:42:29 +02:00
Christoph Oelckers
c8853de0ef - use the symbolic constants for ST_160 and ST_161 in the last remaining places where they hadn't been put before. 2023-04-23 09:42:29 +02:00
Christoph Oelckers
0b3f18a903 - consolidated move functions. 2023-04-23 09:42:29 +02:00
Christoph Oelckers
5a2410cbbb - more properties to get rid of the remaining actor type checks in move_d and move_r. 2023-04-23 09:42:29 +02:00
Christoph Oelckers
c4c035a527 - handle more of move's special cases with flags and properties. 2023-04-23 09:42:28 +02:00
Christoph Oelckers
2d4eee4153 - eliminated the last references to picnum in actors.cpp. 2023-04-23 09:42:28 +02:00
Christoph Oelckers
0249725ed8 - got rid of all TILE_* globals, except TILE_CROSSHAIR. 2023-04-23 09:42:28 +02:00
Christoph Oelckers
b78d268ef2 - clean up the lotsofstuff calls by correcting the class pointers on game load. 2023-04-23 09:42:27 +02:00
Christoph Oelckers
1b64b207bb - consolidated movesprite_ex functions. 2023-04-23 09:42:27 +02:00
Christoph Oelckers
46f7e38e46 - cleaned up movesprite_ex.
This needed 5 actor flags to handle some really inane special cases!
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
927d014cea - final cleanup on hitradius.
Several dead code paths were also removed that are unable to be triggered by any event in the game - due to the spaghetti-style checks this hadn't been obvious before.
Also one more flag that handles the WT flamethrower's special case of not hurting any actors of the shooter's kind in a more generalized form
2023-04-22 12:08:47 +02:00
Christoph Oelckers
ac430e6bc7 - another flag and the second old one renamed. 2023-04-22 12:08:47 +02:00
Christoph Oelckers
9ddb5987cd - two new flags and one renamed one for hitradius.
slowly getting closer to sorting this one out. The new flags already make operation a lot clearer.
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
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
f78c971eac - refactored shoot API to exclusively work with class pointers. 2023-04-22 12:08:46 +02:00
Christoph Oelckers
65e66a573d - Duke: look up all internally used actor classes at game startup.
This allows early validation of the names but is also more efficient.
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
Mitchell Richters
71d833f9ea - Make Exhumed's new view tilting features accessible for all games. 2023-04-22 19:34:53 +10:00
Mitchell Richters
bb19997a2c - Apply pitch/yaw input along-side the key inputs.
* Removes a lot of duplicated code.
2023-04-21 21:13:18 +10:00
Christoph Oelckers
07102fbd39 - fixed missing CANNONBALLS texture alias. 2023-04-16 21:47:06 +02:00
Christoph Oelckers
608b4e8e0f - initialize the new temporary actor properties to something useful. 2023-04-16 17:35:23 +02:00
Christoph Oelckers
5da28bf5ad - added new CHANF_SINGULAR flag plus a handler for CHANF_LOCAL in Duke. 2023-04-16 17:35:22 +02:00
Christoph Oelckers
a3da3a4c43 - added a large bunch of script exports. 2023-04-16 17:35:15 +02:00
Christoph Oelckers
5f68291f69 - added skeleton definitions for all new Nuclear Winter items and their base tiles. 2023-04-16 16:53:53 +02:00
Christoph Oelckers
ea96c66a93 - made some annotations in concmd_shoot how to deal with RRRA's merged projectiles. 2023-04-16 16:53:52 +02:00
Christoph Oelckers
712ed44e94 - use names instead of strings with FindActor. 2023-04-16 16:53:52 +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
3d09be118a - scriptified the freezeblast shooter. 2023-04-16 16:53:52 +02:00
Christoph Oelckers
e97fc54179 - scriptified shootstuff. 2023-04-16 16:53:52 +02:00
Christoph Oelckers
9085157130 - scriptified shootwhip. 2023-04-16 16:53:51 +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
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
041d5214a4 - two new flags for the hitscan attack. 2023-04-16 16:53:51 +02:00
Christoph Oelckers
0643ab22c0 - scriptified the melee attack. 2023-04-16 16:53:51 +02:00
Christoph Oelckers
1d887755a5 - scriptified shootfireball. 2023-04-16 16:53:50 +02:00
Christoph Oelckers
76b9314f63 - scriptified shootMortar. 2023-04-16 16:53:50 +02:00
Christoph Oelckers
48f7690756 - scriptified tripbomb 'shooting'. 2023-04-16 16:53:50 +02:00
Christoph Oelckers
1462cb5e9d - refactored some of WW2GI's gamewar stuff so that it is accessible to ZScript as well.
The features here are useful, the way they were handled not so much. What is there now can also be set from proper definition files instead of CON hacks.
2023-04-16 16:53:50 +02:00
Christoph Oelckers
1597cf5400 - exported the grower's shoot function and moved stuff to a separate file. 2023-04-16 11:49:47 +02:00
Christoph Oelckers
71a005fda6 - added a few 'const'. 2023-04-16 11:47:56 +02:00
Christoph Oelckers
77d14ec721 - scriptified shootshrinker and moved all shrinker code to a separate file. 2023-04-16 11:47:56 +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
17cde1e3ca - Duke: fixed bad init of hitag in initspriteforspawn 2023-04-15 19:53:04 +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
8bd88b8678 - migrate all script related info to the data stored in the actor classes.
This also needs cactor to really change the class descriptor now so that the correct script code is found.
2023-04-12 21:54:20 +02:00
Christoph Oelckers
c418356420 - added the action, move and ai properties. 2023-04-12 21:52:56 +02:00
Christoph Oelckers
947d427a9d - merged tileinfo and actorinfo. 2023-04-12 21:52:28 +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
a155a09f9f - deleted the setflag inlines. 2023-04-12 20:07:12 +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
cc8495c31e - got rid of the g_t pointer in the CON interpreter.
Using g_ac->temp_data now.
2023-04-12 20:07:12 +02:00
Christoph Oelckers
f0637cfc83 - moved actioncounter and curframe to a dedicated variable.
The third generic counter is not as easy to fix as its use is far more widespread
2023-04-12 20:07:12 +02:00
Christoph Oelckers
4b096f4f3e - nulling contents of a freshly spawned actor is not necessary.
All objects are zero inited.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
14dd9c3711 - refactored AI storage as well to not use ScriptCode anymore. 2023-04-12 20:07:11 +02:00
Christoph Oelckers
b9702fbb66 - moved 'move' data out of the ScriptCode array as well. 2023-04-12 20:07:11 +02:00
Christoph Oelckers
30ccbe2710 - moved actions out of the ScriptCode array and gave them a dedicated struct with meaningful member names. 2023-04-12 20:07:11 +02:00
Christoph Oelckers
94b676bd7c - wrapped access to the current 'move' values read from CON. 2023-04-12 20:07:11 +02:00
Christoph Oelckers
c76c511da2 - moved sprite animation code out of 'execute'. 2023-04-12 20:07:10 +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
53e41bd3b3 - Duke: added missing texture alias for the cannon. 2023-04-11 20:23:34 +02:00
Christoph Oelckers
660227e175 - Duke: restrict skill filter to those actors which originally handled it.
For flexibility there now is a flag that can be set on any actor class, but due to precedent it needs to be off by default.
2023-04-11 20:14:02 +02:00
Christoph Oelckers
ee61daed97 - reinstate code from e2db4a8 that got removed by a badly resolved merge conflict in ae4ef64 . 2023-04-10 16:48:08 +02:00
Christoph Oelckers
2f61a44329 - Duke: do not clear the KILLCOUNT flag.
This seems to have gotten back by accident.
2023-04-10 16:41:58 +02:00
Christoph Oelckers
1d79d0cee3 - Duke: fixed pitch calculation for explosion sounds.
This part was missed when the backend's pitch management was changed to floats instead of Q1.7 fixed point numbers.
2023-04-10 09:13:33 +02:00
Christoph Oelckers
7b1ef9e020 - Duke: Do not set SFLAG_BADGUY for internal bad guys.
This will pass an incorrect value for clipdist to clipmove.
2023-04-10 08:56:37 +02:00
Christoph Oelckers
3df7539eb9 - fixed return values of badguy() and bossguy() functions. 2023-04-09 15:45:19 +02:00
Christoph Oelckers
684fb5eb74 - added a few things missing for RR and Route 66.
R66's gator was also added - this is the only completely new actor in this mod.
2023-04-09 09:46:10 +02:00
Christoph Oelckers
7f758eef2b - got rid of the script-side flag wrappers. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
04a027f748 - removed most parameters from fall_common. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
cfa18952d1 - deleted the native flag setter code. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
918c75cb6e - validate statnum before spawning an actor. 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
b908ede470 - reviewed actor flags and applied several fixes. 2023-04-09 09:35:37 +02:00
Christoph Oelckers
8172a9ac0c - moved all flags into the actor definitions. 2023-04-09 09:35:37 +02:00