Commit graph

244 commits

Author SHA1 Message Date
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
93327ddfe1 - moved tripbomb code to weapons subdirectory. 2023-04-16 16:53:50 +02:00
Christoph Oelckers
ac1d1a90e0 - transfer the nofloorfire flag to the flame actor.
When checked on the owner it can fall victim to garbage collection.
2023-04-16 16:53:33 +02:00
Christoph Oelckers
f2b13410a5 fixed offset in grower 2023-04-16 12:26:18 +02:00
Christoph Oelckers
de5e779c50 - fixed offset in shrinker 2023-04-16 12:26:08 +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
073c7e79e4 - Duke: remove redundant super.Initialize call from Liztrooper.
This function is a no-op for enemies and not needed.
2023-04-16 11:47:57 +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
24fc780ede - fixed ZScript compilation. 2023-04-15 13:16:48 +02:00
Christoph Oelckers
ecd0c8c1ff - fixed a few bad scaling values. 2023-04-15 12:20:10 +02:00
Christoph Oelckers
1304577dac - Duke: do not call DukeActor's OnInitialize function for projectiles.
This is performing some incompatible setup.
2023-04-15 10:54:18 +02:00
Christoph Oelckers
aad6c3da90 - RR: RedneckExplosion3 was not fully initialized. 2023-04-15 10:00:21 +02:00
Christoph Oelckers
8de44573b0 - added some missing stuff for World Tour. 2023-04-12 22:03:24 +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
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
f7d1838266 - Duke: tweaked the egg a little so that it does not run through the enemy init logic. 2023-04-11 21:30:12 +02:00
Christoph Oelckers
09cdc497bd - Duke: Inherit DukeReactor2Spark from DukeReactorSpark so that the checks for making it disappear work. 2023-04-11 21:24:23 +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
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
dc15418f37 - added missing elements for RR.
A few of Duke's actors which are not used in RR had to be included because some stale CON code still accesses them.
2023-04-09 09:46:10 +02:00
Christoph Oelckers
886683bc1b - added definitions for all remaining original Duke CON based actors. 2023-04-09 09:46:10 +02:00
Christoph Oelckers
1738e9e4f5 - added skeleton definitions for several decorations that CON references by name 2023-04-09 09:46:10 +02:00
Christoph Oelckers
f700fd61d6 - added two actors referenced by CON 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
a014b3436b - implemented GetRadiusDamageType virtuals. 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
510afe16fb - NODAMAGEPUSH is the default for RR.
The game never had this feature
2023-04-09 09:35:38 +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
Christoph Oelckers
281dbfb14c - added BADGUY/KILLCOUNT combos to all enemies. 2023-04-09 09:35:37 +02:00
Christoph Oelckers
672374c5f4 - added fullbright flags where appropriate 2023-04-09 09:35:37 +02:00
Christoph Oelckers
f4c176988a - first round of flag additions. 2023-04-09 09:35:36 +02:00
Christoph Oelckers
7d747489ec - fixed a typo 2023-04-09 09:35:27 +02:00
Christoph Oelckers
307276a276 - WIP for a default scale property.
For now a NOP, we need to get a little further with the scriptification work before this can be made operational.
2023-04-08 09:38:46 +02:00
Christoph Oelckers
980b3f257a - converted the final set of actor classes the native code needs to reference. 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
aae2c2dc3c - exported RR's enemies 2023-04-07 13:15:06 +02:00
Christoph Oelckers
779026162d - exported all of RR's pickup items. 2023-04-07 13:14:19 +02:00
Christoph Oelckers
3dd87cfd7f - got rid of checkType. 2023-04-07 12:22:46 +02:00
Christoph Oelckers
87bccb8933 - file for next stuff. 2023-04-07 12:22:46 +02:00
Christoph Oelckers
f2d802b537 - exported RR's remaining controllers. 2023-04-07 12:22:45 +02:00
Christoph Oelckers
0e169759d5 - animatesprites_r.cpp cleanup 2023-04-07 12:22:45 +02:00
Christoph Oelckers
f9e5f2c137 - final clenaup on animatesprites_d.cpp.
Only the player actor is left, which is also the messiest part...
2023-04-07 12:22:44 +02:00
Christoph Oelckers
ce00183707 - scriptified PlayerOnWater. 2023-04-07 12:17:56 +02:00
Christoph Oelckers
3106c8e6f5 - exported most of the remaining content in spawn_d.cpp 2023-04-07 12:14:16 +02:00
Christoph Oelckers
8b04f42ab5 - exported several fire related actors. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
ef6a8c010a - exported ceilingsteam and consolidated movefallers functions. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
82d04756be - exported a few of Duke's decorations 2023-04-07 11:52:53 +02:00
Christoph Oelckers
551e0af58d - exported the egg, also marking it non-killcount. 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
0636358b5f - fixes for RR items. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
1bc7c53351 - move the recon's FTA sound into the scripted actor. 2023-04-07 11:52:52 +02:00
Christoph Oelckers
ef54987a58 - exported WT's Firefly 2023-04-07 11:52:52 +02:00
Christoph Oelckers
4e0dad54a5 - exported all of Duke's pickup items. 2023-04-07 11:51:41 +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
d7224245e3 - added back WT's fireball's postHitEffect.
This somehow got lost during scriptification.
2023-04-07 08:30:58 +02:00
Christoph Oelckers
0706a8a5bb - exported LizTrooper and Lizman. 2023-04-02 17:37:30 +02:00
Christoph Oelckers
7b034b5eab - handle stayput for bosses.
The generic code is not ready yet so it has to be done manually.
2023-04-02 17:34:43 +02:00
Christoph Oelckers
240b24d771 - exported all females. 2023-04-02 17:34:37 +02:00
Christoph Oelckers
30d066cee9 - added script exports for Duke's bosses.
This allows removing a few hack checks.
2023-04-02 13:13:45 +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
9b96f8312a - pig cop converted 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
7b4d5eb26d - scriptified SHRINKEREXPLOSION and WATERBUBBLE. 2023-04-02 13:10:26 +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
e0bd038391 - scriptified the native parts of TRANSPORTERSTAR and TRANSPORTERBEAM 2023-04-02 13:00:13 +02:00
Christoph Oelckers
bae18b3023 - removed debug output 2023-04-02 09:14:15 +02:00
Christoph Oelckers
77bcea409b - Duke: fixed potential logic deadlocks with the green slimer.
It depended on the devoured actor not disappearing from the map prematurely to work as intended, so a new check had to be added to get out of the deadlock.
2023-03-25 14:33:10 +01:00
Mitchell Richters
e5f3f5f149 - Make setForcedSyncInput() require a player index.
* This should only ever apply to the console player.
2023-03-23 17:09:02 +11:00
Mitchell Richters
df5e8b1d04 - Duke: Fix missing greenslime base sprite when randomly changing animation. 2023-03-19 11:30:01 +11:00
Mitchell Richters
4355a44721 - Duke: Rework input blocking setup.
* Takes the duplicated conditions out of the input handler and makes the ticker responsible by forcing synchronised input.
2023-03-18 19:29:29 +11:00
Christoph Oelckers
ede52f2dde - Duke: make the geisha statues shootable again.
This got lost in the awful spaghetti code somehow.
2023-02-05 13:37:04 +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
0db441accb - scriptified the native parts of the powder keg.
This was the last remaining actor with its own native ticking part.
2023-01-28 16:31:46 +01:00
Christoph Oelckers
9f01c87ccb - scriptified the native part of FireflyFlyingEffect. 2023-01-28 16:31:45 +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
13c9e9916b - Duke: fixed the cactus.
Statnums were wrong here.
2023-01-21 15:48:55 +01:00
Christoph Oelckers
2c5062255c - fixed bad sound check in the sound controller. 2023-01-15 09:51:21 +01:00
Christoph Oelckers
b991af2dbc - fixed incomplete statnum setup. 2023-01-09 23:39:20 +01:00
Christoph Oelckers
532f994ccb - RR: stop the bowling pins' tumbling animation when they come to a rest.
Fixes an original RR bug.
2023-01-08 18:46:42 +01:00
Christoph Oelckers
deaec2d91d - disabled property-type definition of spritetype members.
As it turned out this is simply too dangerous - these should be left to be loaded from the map data or set manually.
All remaining setups using this feature have either been moved to Initialize or other meta properties that are not affected by map loading.
2023-01-08 16:45:09 +01:00
Christoph Oelckers
b48dad46f3 - do not use properties to set the sprite fields, part 4.
Bowling stuff also needed fixing.
2023-01-08 15:46:53 +01:00
Christoph Oelckers
223481fd23 - do not use properties to set the sprite fields, part 3.
mainly RR's chickenplant items.
2023-01-08 15:46:24 +01:00
Christoph Oelckers
8b664c840d - do not use properties to set the sprite fields, part 2.
This covers the remaining simple cases.
2023-01-08 15:46:24 +01:00
Christoph Oelckers
3a00480efd - do not use properties to set the sprite fields, part 1.
As soon as default init for CON gets in this won't work right anymore - these must come last, not first.
This commit contains all the trivial cases with no inheritance concerns.
2023-01-08 15:46:23 +01:00
Christoph Oelckers
278cfe9216 - RR: use a meta property for the gambling machine's sound.
This is mainly for the hypothetical map that tries to use this thing from within CON.
2023-01-08 15:45:22 +01:00
Mitchell Richters
b432e94a72 - Duke: Back up the shell's position in DukeShell::initshell(). 2023-01-08 23:54:17 +11:00
Christoph Oelckers
b980789ddf - skip switch animation checks for custom switch actors. 2022-12-29 14:01:39 +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
9a1a90a730 - Duke: fixed mortars not toggling their hittable state depending on player distance.
This is needed to make them shootable from a distance. Somehow these two lines of code had gotten lost during scriptification.
2022-12-18 09:14:11 +01:00