Commit graph

3480 commits

Author SHA1 Message Date
Christoph Oelckers
cf349fbd7d - Duke: clear resource ID when setting up the original sounds for World Tour.
This made them unconditionally override the replacements - bad as they are.
2023-05-19 22:53:16 +02:00
Christoph Oelckers
e0de0893a9 - autoaim must never apply to WW2GI's pistol. 2023-05-19 22:53:16 +02:00
Christoph Oelckers
bab432ed72 - refinement of aiming fix. 2023-05-19 22:53:15 +02:00
Christoph Oelckers
fa1e667140 - Duke/RR: Use the exact same trajectory for autoaiming and the actual attack hitscan for the pistol.
These were not identical so the pistol was likely to miss small targets the autoaim acquired. This was particularly bad for Duke's ceiling turret and RR's mosquito.
2023-05-19 22:52:36 +02:00
Christoph Oelckers
94a80dda11 - initialize the angle of script spawned actors. 2023-05-19 22:52:00 +02:00
Christoph Oelckers
e8a3e2ee53 - fixed sprite rotation in mirrors. 2023-05-19 22:51:45 +02:00
Christoph Oelckers
aee26c2637 - reset counter in SetMove 2023-05-19 22:50:02 +02:00
Christoph Oelckers
8aaa8b4113 - use the native implementation for Duke.rnd.
This ensures that results are consistent.
2023-05-19 22:46:43 +02:00
Christoph Oelckers
7bb678bb7e - fixed 'move' property handler to properly store its z value. 2023-04-30 13:33:05 +02:00
Christoph Oelckers
b07a43a9db - Duke: fixed ChangeType to also change the actor's base pic. 2023-04-30 13:33:05 +02:00
alexey.lysiuk
a69d904192 - fix GCC/Clang compilation error
source/games/duke/src/types.h:178:14: error: exception specification of overriding function is more lax than base version
2023-04-30 13:14:45 +03:00
Christoph Oelckers
ecfa45c3ec - Duke: fixed animation lookup code. 2023-04-30 10:51:48 +02:00
Christoph Oelckers
b55d39e58d - fixed invocation of RunState. 2023-04-30 10:51:48 +02:00
Christoph Oelckers
83c401574c - remove debug check 2023-04-30 10:51:48 +02:00
Christoph Oelckers
4010fc1aa7 - Duke: init the animation arrays early.
app_init is too late for having the data set up during script compilation.
2023-04-30 10:51:48 +02:00
Christoph Oelckers
96b0542cd8 - flag all actors that override RunState.
This is for allowing quick checks of actors which need the special consideration.
2023-04-30 09:01:28 +02:00
Christoph Oelckers
2a38e83a2f - moved the animation code out of execute so it can be used without CON. 2023-04-30 08:57:28 +02:00
Christoph Oelckers
29322777dd - adapt the animation init code for CON replaced actors and consolidated the two cases. 2023-04-30 08:46:51 +02:00
Christoph Oelckers
21a37d2c07 - added helpers needed to run CON replacement code.
* killit must exit to the top level right away. Use an exception for this.
* two new flags to make checking easier.
* do not export killit_flag to scripting.
2023-04-30 08:11:30 +02:00
Christoph Oelckers
960e58cdf2 - move the action default propeerties into FActorInfo 2023-04-30 08:07:10 +02:00
Christoph Oelckers
9d43729e8c get rid of the killit_flag in the parse state.
Use the one in the actor instead.
2023-04-30 08:04:56 +02:00
Christoph Oelckers
47f9642294 - added compile time validation for SetAction, SetAI and SetMove.
the expression classes were deleted again, this can be done without them.
2023-04-29 10:09:36 +02:00
Christoph Oelckers
f1f1e54e04 - moved the remaining content of the flags* files directly into game.cpp 2023-04-29 09:59:54 +02:00
Christoph Oelckers
bfcceccc98 - consolidated checkhitdefault functions. 2023-04-29 09:58:42 +02:00
Christoph Oelckers
6fd4368592 - moved Duke/RR's tile name list to raze.pk3, now that internally it is not used anymore.
This way it can later also be used by editors.
2023-04-29 09:55:48 +02:00
Christoph Oelckers
44f4104eda - got rid of the last tilenum uses in Duke.
This meant refactoring the crosshair drawer to work on a named texture called "CROSSHAIR" and hard coding the magic numbers for spawndebris.
2023-04-29 09:54:15 +02:00
Christoph Oelckers
bb08a118d9 - replaced the sprite precaching code with one that scans the actual content.
This will currently not do proper precacing for Duke, which requires actions to be defined as the ones from CON cannot be assigned to an actor.
2023-04-29 09:53:52 +02:00
Christoph Oelckers
83eb4852f7 - do not use literal tile numbers for initializing WW2GI's weapon gamevars.
Instead use the type numbers of the items to be spawned so it is derived from configurable data.
2023-04-29 09:51:51 +02:00
Mitchell Richters
312b649d93 - Duke: Pass HUD offsets to bike/moto drawers by const reference. 2023-04-29 09:19:09 +02:00
Christoph Oelckers
f278a29fad - migrated all RR weapons to texture names. 2023-04-29 09:16:55 +02:00
Christoph Oelckers
5d4f137623 - migrated Duke's entire HUD weapon code to texture names. 2023-04-29 09:16:46 +02:00
Christoph Oelckers
d5f1a82f21 - Duke shotgun and chaingun handled. 2023-04-29 09:13:42 +02:00
Christoph Oelckers
1aa88bd201 - more HUD refactoring 2023-04-29 09:13:28 +02:00
Christoph Oelckers
8f61abdf75 - more HUD refactoring and fixed issues with badly named textures crashing the precacher. 2023-04-29 09:08:42 +02:00
Christoph Oelckers
8a331e226f - handle cases where CON tries to spawn unknown actors.
It must fall back to spawning an inert sprite in these cases, not just fail.
2023-04-29 07:06:53 +02:00
Christoph Oelckers
34160a4354 - ported the scuba mask drawers to texture IDs.
These were also the last places in Duke using tileWidth and tileHeight.
2023-04-29 07:06:42 +02:00
Mitchell Richters
52ab0fae19 - Duke: Allow reversing while moving forwards to act as the brake.
* Much more intuitive for controllers.
2023-04-25 11:30:48 +10:00
Mitchell Richters
6d2e114dec - Duke: Move moto tilt scaling into main tilt function, not within the draw code. 2023-04-25 08:37:38 +10:00
Mitchell Richters
fd1c3dffe8 - Duke: Allow view tilting for RRRA vehicles on separate CVAR.
* Tilts at the same angle as the HUD.
2023-04-24 23:20:14 +10:00
Mitchell Richters
918789705f - Duke: Use the player's angle when adjusting vehicle's HUD rotation. 2023-04-24 22:44:22 +10:00
Mitchell Richters
6ac2af9f3c - Duke: Convert RRRA's vehicle HUD tilting to a DAngle. 2023-04-24 22:17:37 +10:00
Mitchell Richters
11181f51f8 - Allow roll input through the packet system, giving us 6DOF for VR usage, etc. 2023-04-24 21:31:21 +10:00
Mitchell Richters
afcc65c332 - Duke: Hook up InputPacket::uvel to remainder of relevant code. 2023-04-24 18:27:44 +10:00
Mitchell Richters
09ab66b8c9 - Duke: Clean up p->GetActor() calls in movement() funcs. 2023-04-24 16:16:07 +10:00
Christoph Oelckers
1c7ca7b63a - moved all indirect precaching info to external definition files. 2023-04-23 17:43:22 +02:00
Christoph Oelckers
6924869895 - store texture IDs in the sprite set. 2023-04-23 17:42:07 +02:00
Christoph Oelckers
1bace1d508 - use texture IDs in the spawn records. 2023-04-23 17:33:50 +02:00
Christoph Oelckers
4692cc55f7 - cleaned up checkhitdefault
Only required 4 new flags plus one property...
2023-04-23 17:33:36 +02:00
Christoph Oelckers
125ea52e57 - handle special case for activation sounds when player bumps into other actors. 2023-04-23 17:33:35 +02:00
Christoph Oelckers
fd7a4e050a - no more picnum in gameexec.cpp 2023-04-23 12:15:36 +02:00
Christoph Oelckers
cd2cb8d60e - minor cleanup 2023-04-23 12:15:36 +02:00
Mitchell Richters
a731db95ae - Add initial support for up/down movement within the game, either by key or joystick axis.
* Started with Duke's jetpack, other games to follow for swimming, etc.
2023-04-23 19:53:45 +10:00
Mitchell Richters
87144564fd - Duke: Consolidate the mostly duplicate underwater() functions. 2023-04-23 19:21:04 +10:00
Mitchell Richters
02325c37bc - Duke: Fix incorrect scaling of underwater bubble. 2023-04-23 19:21:04 +10:00
Mitchell Richters
8db8d43f89 - Duke: Tidy up underwater(). 2023-04-23 19:21:04 +10:00
Mitchell Richters
95fe3d1bc4 - Duke: Tidy up operateJetpack(). 2023-04-23 19:21:04 +10:00
Christoph Oelckers
07c4b61260 - make sure that the aplWeapon* stuff is never accessed outside of WW2GI. 2023-04-23 10:45:44 +02:00
Christoph Oelckers
f0a6c4ecd8 - check for NOGRAVITY in 'fall'. 2023-04-23 10:45:44 +02:00
Christoph Oelckers
17a8dd5c2e - added tile names for all of Vacation's new actors.
Although several just replace existing actors, we want different names for these when replacing them.
2023-04-23 10:45:44 +02:00
Christoph Oelckers
4c1e379149 - only declare the weapon gamevars for WW2GI.
none of the other games uses any of this.
2023-04-23 10:45:44 +02:00
Christoph Oelckers
d5fa2d73ad - removed code for unused ATWITH gamevar. 2023-04-23 10:45:44 +02:00
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
Christoph Oelckers
f4c176988a - first round of flag additions. 2023-04-09 09:35:36 +02:00
Christoph Oelckers
50d406be4e - Duke: Do not call Initialize() for player actors.
The base function is doing things not meant for players, and we do not have a proper class yet that can deal with it.
2023-04-09 08:15:23 +02:00
Christoph Oelckers
e2db4a834e - Duke: apply default scale only to enemies defined in CON.
This code does not apply to the Recon!
2023-04-08 09:37:51 +02:00
Christoph Oelckers
9c164ad290 - fixed crash when stomping shrunk enemies. 2023-04-08 07:14:07 +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
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
f2d802b537 - exported RR's remaining controllers. 2023-04-07 12:22:45 +02:00
Christoph Oelckers
98d5a2686e - use for loop instead of repeating the same line 10x. 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
Mitchell Richters
bf58879b08 - Duke/RRRA: Fix HUD tilting when reversing motorcycle backwards. 2023-04-04 15:14:44 +10:00
Mitchell Richters
a68fcfc71c - Remove GameInterface::getConsoleAngles(), it's not needed anymore. 2023-04-04 07:02:39 +10:00
Mitchell Richters
3ef431a428 - Make scaleAdjust a float since it's what's needed anyway. 2023-04-03 19:38:00 +10:00
Mitchell Richters
69c65dfe7e - Internalise InputPacket used in movement functions. 2023-04-03 19:35:35 +10:00
Mitchell Richters
dbba0abb2e - Move all mouse handling into GameInput class. 2023-04-03 18:47:14 +10:00
Mitchell Richters
8d11fef916 - Initial conversion of game input into class GameInput. 2023-04-03 18:46:36 +10:00
Christoph Oelckers
0706a8a5bb - exported LizTrooper and Lizman. 2023-04-02 17:37:30 +02:00
Christoph Oelckers
240b24d771 - exported all females. 2023-04-02 17:34:37 +02:00
Christoph Oelckers
810977f19f - made RR thunder effect also work for Duke.
This mainly meant adding support for random sounds and playing the thunder sound by name instead of by index.
2023-04-02 17:20:06 +02:00
Christoph Oelckers
0cd0f28317 - fixed initialization of RR's thunder effect 2023-04-02 17:09:28 +02:00
Christoph Oelckers
eee551ce15 - take care of the last tileGetTexture call in Duke. 2023-04-02 16:45:43 +02:00
Christoph Oelckers
6248c8813b - make RR's ingame thunder effect not depend on having seen one specific texture.
This really should check if the player has seen one sector where the effect is active.
2023-04-02 16:45:43 +02:00
Christoph Oelckers
8208c7fc0b - some texture name cleanup 2023-04-02 16:45:43 +02:00
Johan Mattsson
cebab8f85d
Small fixes (#910)
* Fix potential index out of bounds

* Fix potential index out of bounds

* Use 'MAXGEOSECTORS' instead of magic constant
2023-04-02 22:10:57 +10:00
Christoph Oelckers
52ea497b50 - fixed lotsofstuff VM export. 2023-04-02 13:19:35 +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
26c8e948f7 deleted debug code 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
Mitchell Richters
10445635cf - Tidy up autosaving for all the games.
* There's not really any reason to need the game's world to tic once, it's already fully loaded during the `gi->NewGame()`/`gi->NextLevel()` calls.
2023-04-02 19:56:52 +10:00
Mitchell Richters
0052ae4172 - Duke: Ensure we backup player angles and not just pos when loading a save. 2023-04-02 19:51:12 +10:00
Mitchell Richters
9dfb805b38 - Duke: Fix potential null actor access in gi->CanSave(). 2023-04-02 19:51:12 +10:00
Mitchell Richters
7217ce6ff9 - Duke: Ensure hard landing check is done after pitch keys.
* Oversight from e9a5f745fc.
2023-04-02 19:51:12 +10:00
Mitchell Richters
272dfa762d - Remove backend crouch toggle solution redeploy with Duke/Exhumed/Blood using new ESyncBit bit.
* I tried to make this work in 2020 but its been nothing but headache. It's something for the game to control via a flag, not the backend to determine.
* For SW, this restores its original implementation.
2023-04-02 18:32:40 +10:00
Mitchell Richters
43febd5aa1 - Stop passing inputBuffer around within gameinput.cpp since everything's local now. 2023-04-02 18:32:38 +10:00
Mitchell Richters
359371527b - Move Duke's vehicle input processor into gameinput.cpp. 2023-04-02 18:32:36 +10:00
Mitchell Richters
563c79322d - Duke: Make vehicle input code work generically for possible reusage. 2023-04-02 18:25:04 +10:00
Mitchell Richters
5e153d6404 - Duke: Merge vehicle input code into one function. 2023-04-02 18:24:05 +10:00
Mitchell Richters
03eb105df1 - Duke: Move RRRA vehicle tilting out of the input code and into the playsim. 2023-04-02 18:24:05 +10:00
Mitchell Richters
46b5977a6a - Recover two ESyncBit values for other uses.
* By masking aiming+centering, we have look bits :)
2023-04-02 18:24:05 +10:00
Christoph Oelckers
5f3065d9f1 - Duke: fixed weapon spread with non-pistol hitscan weapons. 2023-04-01 09:49:22 +02:00
Mitchell Richters
7feb5a9a9b Revert "- Duke: Temporary workaround for last commit so the player returns to centre on level load."
This reverts commit 2b22e49a9b.

* It's no longer needed with 06dd971291.
2023-03-29 13:20:55 +11:00
Mitchell Richters
7caec5fa69 - Clean out where inputState.ClearAllInput() is called.
* We can do this from just a few places and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:05:49 +11:00
Mitchell Richters
d665037075 - Clean out where Net_ClearFifo() is called.
* We can do this from one place and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:04:38 +11:00
Mitchell Richters
96055fbc03 - Clean out all games setting gameaction = ga_level and do it centrally. 2023-03-29 03:10:16 +11:00
Mitchell Richters
9618ba1e78 - Don't serialise player angles twice. 2023-03-28 09:15:58 +11:00
Mitchell Richters
e9a5f745fc - Duke: Ensure pitch keys are done after adding player's input.
* As this function includes the actor's pitch clamp, it's important its done afterwards.
* Setup is already right for all the other games.
2023-03-26 16:40:25 +11:00
Mitchell Richters
776c58c58a - Duke: If we enter playerCenterView() and put SB_CENTERVIEW() back on, we need to null and lock input. 2023-03-26 14:36:23 +11:00
Mitchell Richters
0da2afe3d7 - Duke: Tidy up some of the pitch stuff.
* Remove some extern'd CVARs that didn't need externing.
* Change `player_struct::centeringView()` bool into proper method to handle the operation.
* Operation now properly unsets `SB_CENTERVIEW` if conditions aren't met instead of relying on implied behaviour from the rest of the playsim.
2023-03-26 13:35:12 +11:00
Mitchell Richters
a5a9882d9a - Duke: Add a myriad of pitch recentering CVARs.
* Needs to be reworked into some kind of MP-safe flagging once we have demos/MP going. This will do for now.
* Fixes #853.
2023-03-26 12:46:14 +11: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
183ad0c61c - Adjust a few setForcedSyncInput() calls. 2023-03-23 16:34:33 +11:00
Mitchell Richters
4d6419732a - Duke: Add CVAR to allow disabling pitch reset with pitch input.
* Need to add this to the menu to address #853.
2023-03-23 15:54:58 +11:00
Mitchell Richters
88e6a6e894 - Rework ff652f454c slightly to accept an InputPacket pointer. 2023-03-22 20:08:53 +11:00
Mitchell Richters
2b22e49a9b - Duke: Temporary workaround for last commit so the player returns to centre on level load. 2023-03-22 18:26:23 +11:00
Mitchell Richters
ff652f454c - Tidy up how games reapply needed bits at start of tic. 2023-03-22 18:17:50 +11:00
Mitchell Richters
e5bad9af2c - Duke/RR: Re-arrange the playsim angle calls.
* Make them precisely where they were originally called from.
2023-03-21 21:37:25 +11:00
Mitchell Richters
181f88b028 - Duke/RR: Remove the confusing VEH_HEELTOE bit. 2023-03-21 10:41:55 +11:00
Mitchell Richters
2918c34d42 - Duke/RR: Fix two typos. 2023-03-21 10:39:24 +11:00
Mitchell Richters
64a3141f6f - Duke/RR: Add VEH_TURNING flag instead of testing left/right in places. 2023-03-21 10:21:30 +11:00
Mitchell Richters
f240b6c623 - Duke/RR: Fix bad flag test that needed to confirm two flags set, not any one of the two. 2023-03-21 10:12:38 +11:00
Mitchell Richters
19ddc1ee51 - Duke/RR: Repair angle test when adjusting velocity.
* Initially figured I could just use the sign of the angle adjustment, but the vehicle code makes left/right reversals that necessitate using the flags for this.
2023-03-21 09:39:36 +11:00
Mitchell Richters
a24b8499fc - Duke/RR: Swap out all 5-6 bools for a bitfield. 2023-03-21 09:39:35 +11:00
Mitchell Richters
a3a150558b - Duke/RR: Consolidate (mostly) identical vehicle throttle code. 2023-03-20 21:54:47 +11:00
Mitchell Richters
c8238d9646 - Duke/RR: Consolidate (mostly) identical vehicle sound code. 2023-03-20 21:46:18 +11:00
Mitchell Richters
cc977d510a - Duke/RR: Consolidate identical vehicle drinking code. 2023-03-20 21:46:16 +11:00