Commit graph

169 commits

Author SHA1 Message Date
Christoph Oelckers
7126aa22f4 - preparations in the map loader for dynamically sized data storage.
This also consolidates these parts for Blood with the other games.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
c31d8a93fd - a few more
Enough of this - Duke is clearly clean of bad storage now
2021-11-29 00:56:24 +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
a26dc25e97 - lotsofpopcorn 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
cccc577c2e - lotsofpopcorn + dofurniture 2021-11-29 00:56:20 +01:00
Christoph Oelckers
8c4cb75d8c - checkhitswitch_r 2021-11-29 00:56:20 +01:00
Christoph Oelckers
6d4365f3a2 - animatewalls_r 2021-11-29 00:56:20 +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
4b0ffe5443 - looks I missed a few shorts.
Now all local short variables are gone, except for 2 lotags arrays.
2021-11-07 16:58:48 +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
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
2e37cc627c - function renaming for clarity and easier lookup. 2021-10-12 21:36:42 +02:00
Christoph Oelckers
4b35a30de5 - RR: fixed the bowling lane lights.
Tiles had not been made writable.
Also renamed a few bowling related things.
2021-06-09 23:53:05 +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
Mitchell Richters
5124c0daec - Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h. 2021-01-05 07:31:37 +11: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
Christoph Oelckers
2cd3927613 - use floats for wall panning offsets. 2020-11-26 18:32:35 +01:00
Mitchell Richters
d6a094dcdd - buildutils: Replace sintable[] use within Duke's sectors_r.cpp with bsin()/bcos(). 2020-11-22 21:18:05 +01:00
Christoph Oelckers
f9a776e71c - iterate linearly over sector effectors.
Apparently they aren't all properly linked into the required statnums.
Fixes #179
2020-11-12 19:12:58 +01:00
Christoph Oelckers
59c72c923e - added null pointer checks to locked door sound checks in RR.
This originally accessed undefined memory when no sprite was involved.
Fixes #157
2020-11-07 10:25:41 +01:00
Christoph Oelckers
d8e331ef0f - changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
471a25f819 - operaterespawns.
# Conflicts:
#	source/games/duke/src/sectors_d.cpp
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:40:25 +01:00
Christoph Oelckers
0eb10f0313 - newowner and related code. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
d0db810ab0 - ud.camerasprite -> actor. 2020-11-04 20:40:08 +01:00
Christoph Oelckers
edb991e47d - first part of spawn.cpp. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
e427668373 - the remaining iterators in sectors_r.cpp 2020-11-04 20:39:43 +01:00
Christoph Oelckers
6a8dc8217f - 6 simple loops in sectors_r.cpp. 2020-11-04 20:39:43 +01:00
Christoph Oelckers
cc0a668da3 - player.i, part 2
# Conflicts:
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:39:43 +01:00
Christoph Oelckers
d5a74e4290 - handled several GetIndex calls. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
64c83d166e - fixed a few parameters 2020-11-04 20:39:39 +01:00
Christoph Oelckers
eb5cd98d9a - fixed a few bad parameters. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
7c6ea9cff7 - activatebysector. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
34d0219d06 - nullptr fixes 2020-11-04 19:55:15 +01:00
Christoph Oelckers
36370b71e2 - wrapped neartag to return an actor. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
bc6ae872ae - cleaned up the checkhitswitch interface to receive sprites as pointers. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
3e7c8adc1e - checkhitswitch_r part 4 2020-11-04 19:55:15 +01:00
Christoph Oelckers
4ce19b74b0 - checkhitswitch_r part 3 2020-11-04 19:55:14 +01:00
Christoph Oelckers
e81b37b31a - checkhitswitch_r part 2 2020-11-04 19:55:14 +01:00
Christoph Oelckers
2a23dfa0a8 - checkhitswitch_r part 1 2020-11-04 19:55:14 +01:00
Christoph Oelckers
87e8801531 - handle the clipmove result in processinput. 2020-11-04 19:55:14 +01:00
Christoph Oelckers
29b08b2115 - access_spritenum 2020-11-03 22:49:17 +01:00
Christoph Oelckers
32a7c2349e - shoot interface transitioned/operateweapon mostly done. 2020-11-03 22:01:58 +01:00
Christoph Oelckers
7e29be7569 - switched checkhitwall interface to actors. 2020-11-03 21:49:57 +01:00
Christoph Oelckers
4258c27248 - switched the checkhitsprite interface to actors. 2020-11-03 21:43:50 +01:00
Christoph Oelckers
a31cb23be1 - checkhitsprite_r references to 'i' removed. 2020-11-03 21:43:49 +01:00
Christoph Oelckers
617c2c2503 - replaced index for sound origin in checkhitsprite_r. 2020-11-03 21:43:48 +01:00
Christoph Oelckers
41f2fe5e06 - same for checkhitsprite_r. 2020-11-03 21:43:48 +01:00
Christoph Oelckers
79f850d126 - PlayerColorChanged, hits, hitasprite. 2020-11-03 19:21:44 +01:00
Christoph Oelckers
2c573a720b - starting at the bottom of player_r.cpp. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
33f730baf3 - replaced "sprite[p->i]" globally. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
ad84c8149e - the rest of sectors.cpp 2020-11-03 07:06:27 +01:00
Christoph Oelckers
4236f800f6 - operateactivators and operatemasterswitches. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
861342a278 - guts_d and guts_r. 2020-11-01 11:32:34 +01:00
Christoph Oelckers
c42ff35dc5 - hitradius
# Conflicts:
#	source/games/duke/src/actors_d.cpp
#	source/games/duke/src/actors_r.cpp
2020-10-31 13:24:31 +01:00
Christoph Oelckers
8fd0fe5955 - changed the spriteq to use pointers instead of indices. 2020-10-24 09:40:10 +02:00
Christoph Oelckers
34e39dd221 - pass spawner as an actor pointer to 'lotsofstuff'.
Allows doing this without using sprite indices.
2020-10-24 09:36:35 +02:00
Christoph Oelckers
6311898152 - renamed a few disassembly variables. 2020-10-24 07:48:51 +02:00
Christoph Oelckers
9cdaaff42b - migrated EGS and deletesprite to new actor interface.
Inline wrappers for old code exist.
The backupplayer inline was moved into player.cpp because that's the only place it gets used.
2020-10-21 19:14:41 +02:00
Christoph Oelckers
76e4661eea - more simple pointer replacements - lots of them... 2020-10-15 01:34:28 +02:00
Christoph Oelckers
0b80ad8fb1 - handled the last remaining stat iterators in Duke. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
760a557f73 - converted the remaining sector iterators in Duke. 2020-10-15 01:34:27 +02:00
Mitchell Richters
fca846272e - gamecontrol: Initial setup of PlayerAngle struct and deployment within Duke.
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Christoph Oelckers
57945d2baf - eliminated a few overlooked 'long's. 2020-10-02 22:18:08 +02:00
Christoph Oelckers
daabb31bff - more stat constants 2020-09-23 19:24:01 +02:00
Mitchell Richters
470f481619 - Duke: Simplify entire camera angle setup. 2020-09-23 15:34:03 +10:00
Christoph Oelckers
694444b62a - converted the remaining input bits.
Looks like it is working in all games except Blood (not that it surprises me that it's Blood again which has issues...)
2020-08-29 13:32:55 +02:00
Christoph Oelckers
b9e0f493b2 - transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire. 2020-08-28 23:25:08 +02:00
Christoph Oelckers
cbfa8abd34 - fixed some messed up conditionals in RR's switch code.
Fixes #166
2020-08-12 00:31:04 +02:00
Christoph Oelckers
0958bccade Disabled all adult censoring in Duke and RR.
Aside from being "authentic" the parental lock is just a stupid feature with often unwanted side effects.
2020-07-29 22:43:06 +02:00
Christoph Oelckers
a0cc798c9c - cleaned up the sound system interface to have consistent naming and no aliases. 2020-07-25 09:32:54 +02:00
Christoph Oelckers
b9f0e35d4b - fixed the crosshair. 2020-07-24 19:43:33 +02:00
Christoph Oelckers
be9094cb97 Silenced lots of warnings pointed out by XCode. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
902fbf6f5d - got rid of MODE_TYPE since this will be handled in the backend in the future. 2020-07-21 22:59:24 +02:00
Christoph Oelckers
6227f9f7fd - optimizations for better savegame performance. 2020-07-21 21:32:38 +02:00
Christoph Oelckers
06fa1391f5 - did some cleanup on the global variables. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
16efa87701 - started sorting variables in globals.h and removed player.h after cleaning it out. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
d88ae50923 - moved a few global variables around so that they don't get lost for handling savegames or a global state reset. 2020-07-18 13:38:16 +02:00
Christoph Oelckers
36d61fc662 - make sure that the static time counters in the input code do not accumulate while not in use.
The one for holding the turn key needs to be reset any time there is no turning and everything needs to be cleared when the input state is cleared. And all need to check for the case where the static state is not set yet.
2020-07-18 13:27:24 +02:00
Christoph Oelckers
915b566612 - another safety commit. 2020-07-07 17:56:20 +02:00