Commit graph

327 commits

Author SHA1 Message Date
Christoph Oelckers
7d3babd678 - ported all pushmove calls to the float version. 2022-10-30 16:51:08 +01:00
Mitchell Richters
e7dff22095 - Duke: Fix some badly negated angle setups. 2022-10-27 16:55:53 +02:00
Mitchell Richters
1e7cce28af - VecToAngle() with delta() inside to .Angle() replacements. 2022-10-27 16:55:53 +02:00
Mitchell Richters
9b98388215 - VecToAngle() with XY() inside to .Angle() replacements. 2022-10-27 16:55:53 +02:00
Christoph Oelckers
20043f6223 - use symbolic constants in neartag calls. 2022-10-22 12:17:03 +02:00
Christoph Oelckers
8d99277b87 - remaining add_int_ang calls. 2022-10-22 11:33:15 +02:00
Christoph Oelckers
62d9a80379 - floatified most simple set_int_ang and add_int_ang calls. 2022-10-22 11:33:15 +02:00
Christoph Oelckers
30a3bba644 - many CreateActor calls converted to true floats. 2022-10-22 09:34:15 +02:00
Mitchell Richters
bbdb953eda - Duke: Fix issue stemming from - handle all remaining set_int_xvel and set_int_zvel..
* Fixes the Liztrooper sprite angle issues.
2022-10-22 09:34:15 +02:00
Christoph Oelckers
13dd7260f5 - handle all remaining set_int_xvel and set_int_zvel. 2022-10-22 09:34:15 +02:00
Christoph Oelckers
9cfd56a912 - mathutil is not needed anymore. 2022-10-22 09:34:13 +02:00
Christoph Oelckers
ebb7442370 - floatified hitawall 2022-10-22 09:34:13 +02:00
Christoph Oelckers
062e533b81 - floatified hitasprite's callers. 2022-10-22 09:34:13 +02:00
Christoph Oelckers
9591325876 - floatified return value of hits() 2022-10-22 09:34:13 +02:00
Christoph Oelckers
4f5dce81f6 - floatifx position in checkhitswitch_d. 2022-10-21 00:00:05 +02:00
Christoph Oelckers
c066f1754c - use randomAngle 2022-10-21 00:00:03 +02:00
Christoph Oelckers
e31f10be8a - floatify position in all remaining updatesector calls for the player 2022-10-21 00:00:03 +02:00
Christoph Oelckers
021f7062d1 - ported all simple EGS calls to CreateActor 2022-10-21 00:00:02 +02:00
Christoph Oelckers
fe0a10ed29 - handle neartag calls in checksectors. 2022-10-20 22:25:10 +02:00
Mitchell Richters
8bfcb8c939 - Floatify InputPacket::fvel and InputPacket::svel.
* Since all velocities are floated, we can now take each game's keymove scaling into its ticker and use a consistent keymove size, making non-mouselook and controller input truly identical across the games without having to try and fudge any values.
2022-10-20 00:48:09 +02:00
Christoph Oelckers
471f64cf72 - fixes for player velocity. 2022-10-20 00:48:08 +02:00
Christoph Oelckers
bca4819841 - handle some simple vector additions with velocity. 2022-10-20 00:47:31 +02:00
Christoph Oelckers
50a9ca49f3 - floatified player_struct::hitang 2022-10-20 00:33:31 +02:00
Christoph Oelckers
8171927c2a - renamed player_struct::vel 2022-10-20 00:19:56 +02:00
Christoph Oelckers
2be133aaee - poolball stuff in Duke 2022-10-18 20:02:01 +02:00
Christoph Oelckers
e5219382f2 - added some Sector Effector symbolic names. 2022-10-15 12:42:30 +02:00
Christoph Oelckers
eed7f0806c - more quick replacements 2022-10-15 10:15:21 +02:00
Christoph Oelckers
9ba03ac53f - renamed yvel to yint in Duke.
It's never used as velocity, but as an auxiliary parameter so name it appropriately.
2022-10-14 23:17:45 +02:00
Christoph Oelckers
33eeb8d9c2 - right shifts 2022-10-14 23:13:33 +02:00
Christoph Oelckers
ec88d1ea6c - set_int_xvel 2022-10-14 23:13:32 +02:00
Christoph Oelckers
a9d96864d3 - more zvel wrapping 2022-10-14 20:31:55 +02:00
Christoph Oelckers
785575604b - no need to use int_delta when all we want is the angle. 2022-10-13 22:54:43 +02:00
Christoph Oelckers
6ce01e24d2 - renamed walltype::delta and walltype::center 2022-10-13 22:54:42 +02:00
Christoph Oelckers
5f93ba9053 - use temp_pos for TRIPBOMB and SE26 2022-10-13 20:42:29 +02:00
Christoph Oelckers
cceecb4ab6 - use ToVector where appropriate 2022-10-13 20:41:54 +02:00
Christoph Oelckers
3d29c8f3ad - floatified position in checkhitwall 2022-10-13 00:59:00 +02:00
Christoph Oelckers
9314d4c774 - yet another batch of wrapper replacements 2022-10-09 08:21:53 +02:00
Christoph Oelckers
b32c4444c4 - replaced all add_int_z calls with constants. 2022-10-08 19:28:57 +02:00
Mitchell Richters
d28d6cd4cf - Utilise actor sprite's full precision in instances where angle was converted to Build and back again. 2022-10-05 00:36:30 +02:00
Mitchell Richters
ad908719ec - Remaining manual changes to replace player's ang with DAngle object. 2022-10-05 00:36:27 +02:00
Mitchell Richters
b23e77d9c7 - Replace player's ang with DAngle object.
* This commit does not build. Committed items are everything that's been done by find and replace.
* Next commit has hand-performed changes that are better separated out for clarity.
2022-10-05 00:36:27 +02:00
Christoph Oelckers
6bdfa09dd1 - the remaining angle stuff. 2022-10-05 00:36:21 +02:00
Christoph Oelckers
2d51058de8 - add_int_ang 2022-10-05 00:35:14 +02:00
Christoph Oelckers
c2f4fa8bb5 - more angles 2022-10-04 23:56:44 +02:00
Christoph Oelckers
150ab95a3a - set_int_ang in Duke.
Also changed SOUNDFX actor to use a different variable for its index.
2022-10-04 23:56:43 +02:00
Christoph Oelckers
f54e4b8a9a - more int_ang() 2022-10-04 23:56:43 +02:00
Christoph Oelckers
33d5b54ce0 - use int_ang(). 2022-10-04 23:56:43 +02:00
Christoph Oelckers
735b9a8fed - renamed ang to __int_angle 2022-10-04 23:56:42 +02:00
Christoph Oelckers
9392e31b33 - remove C-style struct parameters. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
b327f7f03a - some simple replacements. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
c5fb88e203 - another batch of utility use 2022-10-02 20:46:59 +02:00
Christoph Oelckers
312ee075d2 - use wrapper functions for pos/opos where possible. 2022-10-02 20:46:58 +02:00
Christoph Oelckers
564ec9e518 - renamed player_struct::opos 2022-10-02 20:46:58 +02:00
Christoph Oelckers
5f4c35e9aa - renamed player_struct::pos 2022-10-02 20:46:58 +02:00
Christoph Oelckers
c84d75b8bf - use inline access functions to read floorz/ceilingz. 2022-08-27 09:58:16 +02:00
Christoph Oelckers
0672572e63 - renamed sectortype::floorz and ceilingz as preparation for floatification 2022-08-27 09:47:48 +02:00
Christoph Oelckers
204d6018f4 - Duke: renamed all spr.pos
This was pure search&replace with no other code edits.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
f97bae8d23 - Duke: refactored sound API to receive its position by reference. 2022-08-26 19:53:06 +02:00
Christoph Oelckers
378d126114 - Duke: first batch of refactoring writes to spr.pos. 2022-08-26 19:53:05 +02:00
Christoph Oelckers
f44736a5b6 -use an access function for reading wall positions so that we have a non-modifiable value wherever this is possible. 2022-02-15 22:18:23 +01:00
Christoph Oelckers
89ef81da55 - renamed walltype::pos as preparation for refactoring.
no functional changes here
2022-02-15 22:18:22 +01:00
Christoph Oelckers
82898e42a6 - fix the camera.
- camera flag added
2022-01-27 01:05:12 +01:00
Christoph Oelckers
8e89bc29e4 - new explosion flags 2022-01-27 01:05:12 +01:00
Christoph Oelckers
125c3e8004 - flammable flags. 2022-01-27 00:41:33 +01:00
Christoph Oelckers
a252b206d1 - exported DukeActor's native member variables.
This includes renaming two native ones because they shared the same name with members of spritetype.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
3aff12cf4c - sky management rework. 2022-01-16 12:12:43 +01:00
Christoph Oelckers
5498699faf - use DCoreActor::sector() wherever possible. 2021-12-30 16:51:56 +01:00
Mitchell Richters
b2023efb44 - Duke: Replace player_struct posyv with vel.Y calls. 2021-12-30 23:00:41 +11:00
Mitchell Richters
31ed257f39 - Duke: Replace player_struct posxv with vel.X calls. 2021-12-30 23:00:41 +11:00
Mitchell Richters
9bbb54fe2e - Replace every line that just contains spaces or tabs with an empty line feed in all files except 3rd party libraries. 2021-12-30 20:30:21 +11:00
Christoph Oelckers
16635e53fc - renamed DDukeActor::picnum to attackertype.
This one having the same name here as spritetype::picnum is just confusing as hell and badly describes this variable's function.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
7bbd4343a8 - renamed all shadowing variables in Duke. 2021-12-30 09:57:33 +01:00
Mitchell Richters
3adf81e4f9 - Duke: Replace player_struct oposz with opos.Z calls. 2021-12-30 09:57:07 +01:00
Mitchell Richters
111aa16e64 - Duke: Replace player_struct oposy with opos.Y calls. 2021-12-30 09:57:07 +01:00
Mitchell Richters
0e897c29b0 - Duke: Replace player_struct oposx with opos.X calls. 2021-12-30 09:57:07 +01:00
Mitchell Richters
baf78848eb - Replace spritetypebase z with pos.Z calls and eliminate spritetypebase pos union. 2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e - Replace spritetypebase y with pos.Y calls. 2021-12-30 09:57:05 +01:00
Mitchell Richters
33ca55023f - Replace spritetypebase x with pos.X calls. 2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe - Replace walltype y with pos.Y calls and eliminate walltype pos union. 2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87 - Replace walltype x with pos.X calls. 2021-12-30 09:57:04 +01:00
Mitchell Richters
b2ab64bb62 - Capitalise vec3_t z variable. 2021-12-30 09:57:03 +01:00
Mitchell Richters
68e2691be7 - Capitalise vec3_t y variable. 2021-12-30 09:57:03 +01:00
Mitchell Richters
c549cc5276 - Capitalise vec3_t x variable. 2021-12-30 09:57:02 +01:00
Mitchell Richters
118ceb18ca - Capitalise vec2_t y variable. 2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba - Capitalise vec2_t x variable. 2021-12-30 09:57:02 +01:00
Christoph Oelckers
d532c496f1 - sectors_d.cpp 2021-12-30 09:56:59 +01:00
Christoph Oelckers
55cb5aaac6 - global search & replace of ->s-> with ->spr.
This is the largest part of uses of DDukeActor's 's' pointer.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
65bc6e6aef - removed the now redundant wall() and sector() interator helper functions.
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
8f0f0e8816 - manual sprite flag replacements in Duke. 2021-12-30 09:56:49 +01:00
Christoph Oelckers
ace01d02bc - alignment flags and a few leftovers. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
82fb03e399 - another batch of search&replace, with smaller results. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
c5ae454207 - another big batch of automatic replacements. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
adbf5177a7 - flag combo stuff. 2021-12-30 09:56:46 +01:00
Christoph Oelckers
b263c3ac6b - wall and sprite flags in Duke, just simple cases. 2021-12-30 09:56:46 +01:00
Christoph Oelckers
8c298de114 - Duke: replaced DukeLinearSpriteIterator and explicit loops over the sprite[] array. 2021-12-26 23:09:52 +01:00
Christoph Oelckers
b7a5ea8ef6 - moved some common utilities into the backend. 2021-12-26 23:09:44 +01:00
Christoph Oelckers
91e2391911 - adapted neartag in Duke. 2021-12-26 23:09:42 +01:00
Christoph Oelckers
4788c7ba5e - made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
Done for Doom so far.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
9c7eecb55f - the rest of Duke’s sectnum, except RR's geo hack 2021-12-25 21:28:57 +01:00
Christoph Oelckers
d1f7269ca8 replaced cursectnum with a cursector pointer 2021-12-25 21:28:56 +01:00
Christoph Oelckers
22b2f64016 dukeplayer stuff 2021-12-25 21:28:55 +01:00
Christoph Oelckers
312b1fd39f - cursectnum first half 2021-12-25 21:28:55 +01:00
Christoph Oelckers
b1b0c5d25c — Duke: use twoSided utility where appropriate. 2021-12-25 21:28:54 +01:00
Christoph Oelckers
d115d90961 - Duke: prefer calling the sector pointer variants of engine functions. 2021-12-25 21:28:54 +01:00
Christoph Oelckers
ef7fcd824f - use insector and sector pointer initialization for iterator 2021-12-25 21:28:54 +01:00
Christoph Oelckers
aada3f3d19 - renamed DDukeActor::getSector. 2021-12-25 21:28:51 +01:00
Christoph Oelckers
999ec3c95a use validSectorIndex checks where appropriate.
Let’s hope that this sloppiness doesn’t have negative effects with broken maps.

# Conflicts:
#	source/games/sw/src/sprite.cpp

# Conflicts:
#	source/games/duke/src/prediction.cpp
#	source/games/duke/src/render.cpp
2021-12-25 21:28:37 +01:00
Christoph Oelckers
2949361c82 - Duke/RR: added null checks to all spawn() calls 2021-11-29 00:56:32 +01:00
Christoph Oelckers
4c7662b4ea - Duke/RR: guard all calls to EGS with a null pointer check.
Spawning sprites into the void will crash the engine so these must be blocked which requires a failure check here.
With this pressing fire while in the void no longer crashes the game - it won't fire anything, either, though.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
fcbb7320a8 - Duke/RR: added all checks needed for not letting Duke crash with noclip when not accepting -1 as a valid sector pointer.
All places that were causing a crash are now guared by calling 'insector()'.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
db96e93adc - animatesect, setanimation and related stuff. 2021-11-29 00:56:30 +01:00
Christoph Oelckers
09c2677fe7 - lots of EGS calls. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
876d1dbe1f - operatesectors and activatebysector. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
45519f67c1 - Duke: let neartag return pointers 2021-11-29 00:56:28 +01:00
Christoph Oelckers
a9aadfd63d - neartag cleanup in checksectors. 2021-11-29 00:56:28 +01:00
Christoph Oelckers
3d05020f4c - checkhitceiling + ceilingglass are sector[] free. 2021-11-29 00:56:28 +01:00
Christoph Oelckers
27af8a52e9 - the final walls
What is left now of wall[] and wallnum() needs to remain.
2021-11-29 00:56:24 +01:00
Christoph Oelckers
35eb94b89a - lotsofcolourglass 2021-11-29 00:56:23 +01:00
Christoph Oelckers
83344818fd - pass wall pointer to breakwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
567a360092 - store wall pointers in animwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
caa9ef6dd3 - make access_wallnum a pointer 2021-11-29 00:56:22 +01:00
Christoph Oelckers
e7369a2796 - use pointers for checkhitswitch and took separated clearcameras to a new functions to make this free of gotos. 2021-11-29 00:56:22 +01:00
Christoph Oelckers
4823152107 - hitawall 2021-11-29 00:56:22 +01:00
Christoph Oelckers
09e75ddca2 - change wall parameter of checkhitwall. 2021-11-29 00:56:21 +01:00
Christoph Oelckers
200daacd3c - checksectors* 2021-11-29 00:56:20 +01:00
Christoph Oelckers
530c29973e - more walls in sectors_d.cpp 2021-11-29 00:56:20 +01:00
Christoph Oelckers
7268e779a7 - checkhitswitch_d 2021-11-29 00:56:19 +01:00
Christoph Oelckers
8cf3963901 - animatewalls_d 2021-11-29 00:56:19 +01:00
Christoph Oelckers
ad030d7e23 - Duke: SE20 + SE128 are wall-free
Also use symbolic constantfor SE_128 to make it easier to find.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
01abe7b2ac - addressed most unused/uninitialized variable warnings from MSVC. 2021-11-29 00:55:30 +01:00
Christoph Oelckers
dcccb0d653 - Duke: added [[fallthrough]] annotations wherever needed. 2021-11-29 00:55:29 +01:00
Christoph Oelckers
2d91786516 - changed all sector variables being passed to pushmove to full ints 2021-11-08 23:18:40 +01:00
Christoph Oelckers
35b9318580 - Duke/RR: checked the rest of the code for shorts and replaced most local ones with ints. 2021-11-07 16:33:13 +01:00
Christoph Oelckers
de7a06bea4 - Duke: extended neartag wrapper to use 32 bit integers as return values. 2021-11-07 16:20:59 +01:00
Christoph Oelckers
b13398c268 - quick global wall[] replacements. 2021-11-07 15:57:29 +01:00
Christoph Oelckers
a594e6465c - added nextSector access function to walltype and used it to eliminate a few more sector[] references. 2021-11-07 15:56:29 +01:00
Christoph Oelckers
8c5e4a7fa9 - Duke: a large batch of quick'n easy sector[] replacements with pointers. 2021-11-07 15:00:07 +01:00
Christoph Oelckers
9a1c80c464 - Duke: added a wrapper for player_struct::cursectnum to directly return the sector pointer.
This eliminates more than 10% of the existing direct references to the sector[] array.
2021-11-06 21:59:42 +01:00
Christoph Oelckers
1c0e3d849b - addressed the updatesector related deprecation warnings with Duke. 2021-11-06 20:46:08 +01:00
Christoph Oelckers
83fe41e71e - made updatesector receive a 32 bit int pointer and deprecated the 16 bit variant. 2021-11-06 15:53:16 +01:00
Christoph Oelckers
c8d65a1f06 - use sector wrappers where easily doable with search and replace. 2021-11-06 14:19:55 +01:00
Mitch Richters
a1570c185f - Duke: Remove posx/posy/posz variables and replace with points in the previously unionised pos vec3_t variable. 2021-10-31 17:52:52 +11:00
Christoph Oelckers
b1ac1ad585 - more changesprite* renaming. 2021-10-12 21:36:42 +02:00
Christoph Oelckers
2e37cc627c - function renaming for clarity and easier lookup. 2021-10-12 21:36:42 +02:00
Christoph Oelckers
dc8b72b2ce Merge branch 'master' into newrenderer2
# Conflicts:
#	source/games/duke/src/actors.cpp
#	source/games/duke/src/hudweapon_d.cpp
#	source/games/duke/src/hudweapon_r.cpp
#	source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
96d78ab9e6 - made DukeActor::s a pointer.
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +02:00
Christoph Oelckers
6f7e7459ea - did some cleanup on Duke's render code to prepare for the new way of handling portals.
Like for Blood, the Polymost-only code has been moved aside.
Closer examination of the preparations the engine is doing for rendering SE40/150-portals shows that all this was merely done to avoid glitches with a two-phase rendering setup - nothing of this will be needed for doing it properly.
They can just be treated as run-of-the-mill stacked sectors. when using hardware rendering capabilities for clipping.
2021-03-21 10:58:11 +01:00
Christoph Oelckers
3c83775273 - add back the missing secret hint notification calls for Duke/RR. 2020-12-01 12:52:49 +01:00
Christoph Oelckers
92bf1232da - Duke: documented global variables for eventual scriptification.
Most are only needed internally or for very special uses and do not need any scripting consideration.
2020-11-29 15:09:23 +01:00
Christoph Oelckers
7ad0750839 - grouped all of Duke's constant per-session state in a single struct.
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00