Christoph Oelckers
89c0e4234c
- remapped all copy assignments to DDukeActor::ceilingz/floorz.
...
This commit does not work! It was split for clarity.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4787bddddd
- Duke: replaced most read access to DDukeActor::floorz/ceilingz with a wrapper function.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
793e9b7623
- renamed DDukeActor::floorz, ceilingz.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
6816e32d23
- call float 'interpolated' functions for setting tsprite's pos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
7745701d4b
- floatified opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
5df4caa82f
- renamed interpolate functions as preparation for floatifying opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
1482052c8a
- fixed: chickens in RRRA did not autoaim in hitscan-only mode.
...
since these are homing missiles they always need to acquire a target, regardless of autoaim mode.
2022-10-01 14:34:55 +02:00
Christoph Oelckers
9627f00f32
- Duke: added emulation for a sound system bug that prevents certain duplicate sounds from playing.
...
Since our sound system does not reject this case, the calling code must check for the relevant condition.
2022-10-01 12:59:43 +02:00
Christoph Oelckers
64a96e1b94
- fixed: RR: save the current track for the "8-track player"
...
This way a saved game can properly resume the loop.
2022-10-01 09:16:47 +02:00
Christoph Oelckers
044929ad06
- replaced all remaining read access to __int_floorz and __int_ceilingz with wrappers.
2022-08-27 10:13:15 +02:00
Christoph Oelckers
8325e7369f
- removed floorzptr and ceilingzptr.
...
These were obstacles for further changes.
2022-08-27 10:01:01 +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
b1cbecf268
- Duke/RR: do not spawn sprites with invalid picnums.
...
RRRA E1L7 has a respawner that will spawn an invalid sprite crashing the game.
2022-08-26 20:05:28 +02:00
Christoph Oelckers
4c6976baca
- looks I missed one last place...
2022-08-26 19:53:10 +02:00
Christoph Oelckers
1231f6025d
- handle the last remaining uses of __int_pos that can be done with the function interface.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
8ccaa0ab8c
- more tsprite position stuff
2022-08-26 19:53:10 +02:00
Christoph Oelckers
170387ab26
- tspritetype::pos access wrappers, part 1.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
dc94dedc6b
- renaming spritetype::pos
2022-08-26 19:53:10 +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
f629ec1916
- Duke: full pos assignments
2022-08-26 19:53:06 +02:00
Christoph Oelckers
0ad571b72d
- Duke: wrapped remaining write access to spr.pos
2022-08-26 19:53:06 +02:00
Christoph Oelckers
f4ed59ccb7
- Duke: ninth batch.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
9bf94cbc1c
- Duke: eighth batch
2022-08-26 19:53:06 +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
b4e18e8255
- Duke: seventh batch of refactoring writes to spr.pos.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
99b9b01d6a
- Duke: sixth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
5c31568184
- Duke: fifth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
82095b435f
- Duke: fourth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
236b1cf4e0
- Duke: third batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
6d21552d6c
- Duke: second batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
378d126114
- Duke: first batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
ca1171187f
- hack to fix bad door definition in RR E2L7.
2022-08-25 21:45:03 +02:00
Christoph Oelckers
4d423004e9
- unlimited the displayable sprites.
...
Now with Polymost gone this can finally be done properly.
2022-08-07 10:25:15 +02:00
Christoph Oelckers
83c0ad55f2
- rewrote nextsectorneighborzptr with a better parameter interface
2022-08-05 18:43:48 +02:00
Christoph Oelckers
c2fc7577db
- cleanup of 3D viewport code.
...
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
8d423fdc6f
- toned down the fov change a bit.
...
With real projection math it was a bit extreme.
2022-08-03 19:59:46 +02:00
Christoph Oelckers
e6ca0f4817
- made fov change for RRRA's drug mode work.
2022-08-03 19:41:30 +02:00
Christoph Oelckers
291726cc55
- removed the Polymost renderer.
2022-08-03 15:50:27 +02:00
Christoph Oelckers
1df66f4971
- clear all collision flags from generic controller sprites
...
Taken from EDuke32 - there seem to be a few maps which need this.
Also consolidate a bit of setup code between Duke and RR.
2022-07-26 00:13:11 +02:00
Mitchell Richters
4324f923bc
- Call updateTurnHeldAmt()
after doing the turn, not before it. This gives one tic more preamble.
2022-07-23 10:37:32 +10:00
Mitchell Richters
00e12ea031
- Remove some uses of xs_Float.h
functions in game-side code where overflow protection isn't needed.
...
* Went a little bit nuts and just used this everywhere back way back when.
2022-07-23 10:37:32 +10:00
Christoph Oelckers
84173ee09b
- backend update from GZDoom.
...
The main bulk of this is the new start screen code. To make this work in Raze some more work on the startup procedure is needed.
What this does provide is support for the DOS end-of-game text screens in Duke and SW on non-Windows systems.
2022-06-06 11:45:34 +02:00
Mitchell Richters
c3981e06cb
- Duke: Remove one save interpolated weapon value that got away from me in 3948ec7a35
.
2022-06-06 11:31:42 +10:00
Mitchell Richters
a29bce9eda
- Duke: Interpolate loogcnt
when drawing onscreen.
2022-06-06 11:24:47 +10:00
Mitchell Richters
3948ec7a35
- Duke: Remove recently added interpolated weapon values from save code and add to player_struct::backupweapon()
instead.
2022-06-06 11:05:11 +10:00
Mitchell Richters
ee6abac699
- Duke: Apply same fistsign
fix from 4ee64df844
to RR code.
2022-06-06 11:04:59 +10:00
Mitchell Richters
b0f517736c
- Duke: Fix fistsign
smoothness.
2022-06-06 10:51:57 +10:00
Mitchell Richters
600776da2e
- Duke: Change a few return types from int to bool in HUD code.
2022-06-06 09:57:51 +10:00
Mitchell Richters
f4b78dc3c7
- Duke: Interpolate access_incs
when drawing onscreen (security card usage).
2022-06-06 09:47:30 +10:00
Mitchell Richters
3b2ef4d18b
- Duke: Interpolate tipincs
when drawing onscreen (tipping the dancers).
2022-06-06 09:40:47 +10:00
Mitchell Richters
d6549d6335
- Duke: Interpolate knee_incs
when drawing onscreen (stomping on shrunken enemies).
2022-06-06 09:19:55 +10:00
Mitchell Richters
ab95a8b890
- Duke: Interpolate fist_incs
when drawing onscreen (hitting the nuke detonator at the end of each level).
2022-06-05 21:00:44 +02:00
Richard Gobeille
55408e6e3c
- Duke3d: smooth movement of recons.
2022-06-05 21:00:36 +02:00
Richard Gobeille
1389413ca1
Duke3d: make actors set to move vertically in CON act as if SFLAG_SMOOTHMOVE was explicitly enabled
...
This smooths out stuff like octabrains and flying liztroops without making them look stupid when they move on the ground.
2022-06-05 22:40:06 +10:00
Christoph Oelckers
bc5c742930
- Duke: fixed some crashes with bad map setups
2022-06-05 09:40:10 +02:00
Mitchell Richters
7282e0d8bf
- Remove multiple addadjustment()
/settarget()
overloads in favour of native binangle
/fixedhoriz
versions only.
...
* Simplifies these classes a bit.
* Better shows intent in actual game code.
* Removes unnecessary int to double conversions.
2022-05-30 20:35:41 +10:00
Jordon Moss
5c65a9bab4
Interpolate FIRELASER trails.
2022-05-30 20:21:40 +10:00
Mitchell Richters
79465ffc42
- Duke: Add CON support for Duke Nukem 3D 1.1 Shareware.
...
Based on EDuke32's parsing of the same commands.
2022-05-29 10:34:33 +10:00
Mitchell Richters
889baeff14
- Duke: Fix CON parser to detect shareware scripts.
2022-05-29 09:56:56 +10:00
Christoph Oelckers
aab13addb7
-renamed spritetype’s owner field to ‚intowner‘
...
Mainly for easier searching.
Also remove the duplicate ‚detail‘ field.
2022-05-24 00:30:41 +02:00
Christoph Oelckers
af89c25151
- RR: clear jaildoors array on map start.
...
this was leaving stale data behind which could cause nasty crashes.
2022-05-22 09:28:12 +02:00
Christoph Oelckers
a071479339
- Duke: set game palette before rendering the automap
2022-04-04 00:16:54 +02:00
Christoph Oelckers
3114059145
- fixed sprite indices for map spawned sprites.
2022-03-20 12:08:47 +01:00
Rachael Alexanderson
735740e453
- add level names to title bar (and by proxy, to RPC)
2022-03-18 05:06:58 -04:00
Christoph Oelckers
789794539c
- added script exports for Duke's main structures.
2022-02-21 00:19:26 +01:00
Christoph Oelckers
951b93123a
- fixed incorrect symbolic constant for statnum.
2022-02-19 09:50:05 +01:00
Christoph Oelckers
fd6d09273f
- reverted wall pointer fix for FANSPRITE setup.
...
Turns out the bug came from the DOS code, but changing this breaks the fans.
2022-02-18 00:19:57 +01:00
Christoph Oelckers
21fddd6c54
- spriteset management.
2022-02-15 22:34:48 +01:00
Christoph Oelckers
8cc8ebf30c
- preparations for more floatification.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
c18a46b98a
- fixed dofurniture
2022-02-15 22:18:26 +01:00
Christoph Oelckers
63f1a968d6
- do not update the sector for sector effectors moving themselves.
...
They need to stay in their originally assigned sector forever, or really bad things can happen.
If due to some math imprecisions they change their sector, they can screw up the entire map.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
7374364527
- doFurniture floatified and inside rewritten as a floating point algorithm that works without bit masking.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
4d38f62a14
- cleaned up and floatified the jaildoor code
...
(which should probably be renamed to 'slidedoor' because it gets used for lots of stuff other than actual jail doors...)
2022-02-15 22:18:25 +01:00
Christoph Oelckers
6fbecf2348
- RR: cleaned up and floatified the mine cart code
2022-02-15 22:18:25 +01:00
Christoph Oelckers
13d01bc98b
- lower the value of MAXSO.
...
This was causing overflow issues and resulted in bad int <-> float conversions.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
02d508baef
- renamed floatified wall coordinate to 'pos'.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
cd55658786
- use floats for vertices.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
59e834fdad
- Duke: changed animation storage to be independent of the animated values' types.
2022-02-15 22:18:23 +01: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
a015958f66
- Duke: had to give the trip bomb yet another flag.
...
Unlike every other actor this has scripted animation logic attached that is not supposed to be used. Weird.
2022-01-29 10:45:36 +01:00
Christoph Oelckers
8487d693f5
- flags for the bolts.
2022-01-27 01:05:12 +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
fba8f54bb3
- two more flags to get sprite indices out of movecrack.
...
# Conflicts:
# source/games/duke/src/constants.h
2022-01-27 00:48:39 +01:00
Christoph Oelckers
d3f2d50088
- added NOFLOORPAL flag to remove some special cases from animatesprites.
...
# Conflicts:
# source/games/duke/src/constants.h
2022-01-27 00:48:00 +01:00
Christoph Oelckers
c0a40cb7d7
- renamed RR's TRIPBOMBSPRITE to POWDERKEG
2022-01-27 00:46:46 +01:00
Christoph Oelckers
3d0c794224
- two more flags for LASERLINE.
2022-01-27 00:46:24 +01:00
Christoph Oelckers
a776e5c56e
- turned the exclude lists for initspriteforspawn into a flag.
2022-01-27 00:45:55 +01:00
Christoph Oelckers
e4cfc374be
- another trip bomb flag.
2022-01-27 00:42:57 +01:00
Christoph Oelckers
0574da7cd4
- SE24 cleanup using flags.
...
The whole setup is actually very simple, once all the mess got removed from the code.
2022-01-27 00:42:49 +01:00
Christoph Oelckers
eae5ca93d0
- cleanup - flag name and removal of unused code.
2022-01-27 00:42:40 +01:00
Christoph Oelckers
2468debe34
- added a new flag for non-teleporting items.
2022-01-27 00:42:16 +01:00
Christoph Oelckers
fc94fb9651
- replaced checktimetosleep with a flag.
2022-01-27 00:42:07 +01:00
Christoph Oelckers
72510a47fa
- replaced one more actor list check in hitradius with a flag.
2022-01-27 00:41:57 +01:00
Christoph Oelckers
125c3e8004
- flammable flags.
2022-01-27 00:41:33 +01:00
Christoph Oelckers
913b0622b8
- use symbolic constants
2022-01-27 00:35:45 +01:00
Christoph Oelckers
58b718d2a2
- turn all special actor type checks in moveflammable into flags.
...
Also wrap all flag checks in actorflag function
2022-01-27 00:34:21 +01:00
Christoph Oelckers
d9fee902de
- setSpritesetImage export added.
2022-01-26 23:35:53 +01:00
Christoph Oelckers
ef22a78618
- moved all VM exports to their own file.
2022-01-26 23:35:46 +01:00
Christoph Oelckers
5fe5dbd5aa
- added spriteSet property to DukeActor
...
The idea here is to abstract picnum manipulation. Since all this is strongly index based it translates poorly to a system with named textures.
This allows a class to define a set of sprite images it intends to operate on as if it was still a simple indexed resource, even if the underlying storage changes.
2022-01-26 00:36:34 +01:00
Christoph Oelckers
c27976b2e5
- added script exports for Duke's iterators
2022-01-26 00:16:21 +01:00
Christoph Oelckers
5bc8b1c2d3
- Duke: added two more flags to eliminate the references to the crane's tile numbers.
2022-01-25 22:26:53 +01:00
Christoph Oelckers
58f535d3a4
- Duke: fixed gamevars not being allocated for map spawned actors.
2022-01-24 23:05:22 +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
f194fb6c90
- added a name to tilenum function so that we can define picnums by name in scripted actors.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
0398ba4ff0
- added all parts needed to implement the actor property parser.
...
Not hooked up yet with the rest of the code, this just adds the needed files in compilable form.
2022-01-23 13:03:39 +01:00
Christoph Oelckers
82be7db269
- give the tree sky of DukeDC an offset of -40 to better hide its poor design in the new renderer.
2022-01-16 12:12:44 +01:00
Christoph Oelckers
3aff12cf4c
- sky management rework.
2022-01-16 12:12:43 +01:00
Christoph Oelckers
4ee64df844
- uncouple the fist animation for being shrunk from the display frame rate.
2022-01-15 15:48:50 +01:00
Christoph Oelckers
26d89e932a
- Duke: add back a limit to the teleporter sound.
...
Due to broken game logic it is possible for this to play in very large quantities.
2022-01-15 11:56:38 +01:00
Christoph Oelckers
24a67e194d
- Duke: reverted sector storage to temp_data[0] for the subway.
...
This was the ultimate revenge of the Spaghetti code: Somewhere in there, something needs this value in temp_data[0], but I cannot find where this is...
2022-01-13 22:34:43 +01:00
Christoph Oelckers
ecb2732629
- little bit of cleanup on Duke's bullet hole code.
2022-01-13 20:53:36 +01:00
Mitchell Richters
79f47ca2f9
- Duke: Add some comments to 40ffb23b44
so it can be better fixed in the future when multiplayer is going.
2022-01-13 22:42:48 +11:00
Christoph Oelckers
fcf04a7df1
- delete unused variable.
2022-01-13 12:27:40 +01:00
Mitchell Richters
40ffb23b44
- Duke: Directly check the backend input code's crouch_toggle
to always remain crouched after pausing, even if the first tic doesn't have input.
...
* This is needed because unlike the other games, Duke doesn't have any decent state manager for the player like Blood and SW do.
2022-01-13 21:54:56 +11:00
Christoph Oelckers
85cce1128a
- do proper handling of the 'no shadow' case for Duke's bad guys.
...
Using a flag like RedNukem instead of hacking dispicnum, which occasionally does reach the renderer and causes problems.
2022-01-13 00:42:34 +01:00
Christoph Oelckers
ddcee4ecbf
- split up g_visibility into two variables.
...
This is preparation for experimenting with the weapon flashes that can be quite annoying with how they brighten distant parts of the level far more than nearby parts.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
da5a92852f
- cleanup of Duke's actor flags.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
e892de21ec
- preparations for unlimited tsprites.
...
Right now it is a no-op because Polymost cannot deal with this properly.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
3c54495c58
- Duke: hardened the sound controller a bit by flagging the callsound call from doanimations as most likely terminating.
...
This allows avoiding unnecessary sound repeats on some doors.
A real fix is not possible with the broken setup here - the sound controller can only implicitly toggle its state so it is likely that improper use is frequent.
2022-01-09 23:03:11 +01:00
Christoph Oelckers
0f925d4cc0
- Duke: fixed monster sight sounds not being played.
2022-01-09 21:25:02 +01:00
Christoph Oelckers
e1661e0de1
- Duke: disabled sound limiting.
...
This does not work with how the game uses sounds. Unlike Doom the sound engine in DOS Duke has no channel limit so any sound can play as many times as the game deems fit.
2022-01-09 15:18:35 +01:00
Christoph Oelckers
694f44774f
- Duke: added missing z-offset in hits.
...
Among other things, this made throwing pipebombs on slopes misbehave.
2022-01-09 14:43:59 +01:00
Christoph Oelckers
a50430bf68
- Duke: fixed SE02's handling of sloping sectors.
2022-01-09 13:38:10 +01:00
Christoph Oelckers
3c2c53c7e1
- fixed NAM's sniper rifle.
...
This was using one of WW2GI's apl* variables, but shouldn't.
2022-01-08 21:42:44 +01:00
Christoph Oelckers
70087ebc12
- fixed: The new renderer still called the Polymost screen finish function.
...
This led to a second, redundant postprocessing step with incorrect matrix values.
It now calls screen->Update() directly without the unneeded stuff, but this required a bit of reordering in the game code to ensure that the renderer receives the weapon data to display.
2022-01-08 13:50:47 +01:00
Christoph Oelckers
5759bcc1a6
- Duke/RR: removed all in-game assignments to g_visibility.
...
These are remnants of the software renderer which used it to calculate light fading but with the current hardware renderers none of these ever reach the renderer, the values are never used.
2022-01-08 13:49:06 +01:00
Mitchell Richters
771a84338e
- Fix typo in MOVEFTA flag (was NOVEFTA
). Thanks Gaerzi!
2022-01-08 22:30:34 +11:00
Christoph Oelckers
a3162f6ccf
- renamed testnewrenderer CVAR.
2022-01-07 12:49:41 +01:00
Mitchell Richters
e5bcb8ee61
- Duke: Repair issues with handle_se32()
following lost Sgn()
call.
...
* Originated from "- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.".
2022-01-05 22:45:33 +11:00
Mitchell Richters
eca3c29261
- Duke: Fix nullptr issue in RR's processinput_r()
.
2022-01-05 19:22:21 +11:00
Christoph Oelckers
5ff7d45f7f
- Duke/RR: better handling for one random kill scenario in the player movement code.
...
Using the same appoach as EDuke32 - instead of outright killing the player it will first reset its position and retry the pushmove check.
2022-01-05 09:20:54 +01:00
Mitchell Richters
9de4b4753a
- Duke: Add nullptr check to haskey()
.
2022-01-05 18:05:15 +11:00
Mitchell Richters
b422b049c1
- Duke: Fix bad interp check in RR's dofurniture()
.
2022-01-05 10:03:33 +11:00
Mitchell Richters
874f9952f8
- Duke: Fix bad clipmove result check in movesprite_ex_r()
.
2022-01-05 09:50:22 +11:00
Christoph Oelckers
47b9de1fb4
- RR: interpolate moving furniture.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
33aee54113
- RR: interpolate jaildoors and minecarts.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
45b88277a3
- Platoon Leader: Set explicit sky offset for the third episode's orange sky.
2022-01-04 17:17:58 +01:00
Christoph Oelckers
8dedcf94d3
- Duke: removed special precaching for sky texture
...
Due to precomposition these single tiles will never be rendered anyway.
2022-01-04 17:17:58 +01:00
Mitchell Richters
6414a4ce78
- Duke: Add nullptr check to footprints()
code.
2022-01-04 22:44:11 +11:00
Christoph Oelckers
226807db34
- RR: fixed wakeup check logic in movefta.
...
Essentially the feature must be on for all RR actors and off for all Duke actors.
RR's original logic here to exclude animals was broken and non-functional.
2022-01-04 09:39:55 +01:00
Mitchell Richters
783dd98641
- Duke: Fix nullptr check for Duke and RR that was causing a crash in a glitched spot in RR's E1L1.
2022-01-04 14:00:18 +11:00
Christoph Oelckers
1d091ae395
- merged both movefta functions, using the already defined flags instead of explicit picnum checks.
2022-01-02 15:59:24 +01:00
Christoph Oelckers
e42fc5e743
- use the newly added flag to consolidate ifhitsector.
2022-01-02 12:27:36 +01:00
Christoph Oelckers
cc6d52013d
- made Duke actor flags type safe and added a few new definitions that are not active yet.
2022-01-02 10:17:44 +01:00
Christoph Oelckers
cd599a7a15
- Duke: abstracted all checks for TILE_APLAYER with an isPlayer method.
2021-12-31 18:51:43 +01:00
Christoph Oelckers
3eb640658f
- don't typedef MATTGAMEVAR
2021-12-31 13:12:20 +01:00
Christoph Oelckers
61d4d06783
- RRRA: fixed typo in portal setup.
2021-12-30 22:16:39 +01:00
Christoph Oelckers
552668418a
- moved opos and oang to DCoreActor.
2021-12-30 18:21:02 +01:00
Christoph Oelckers
7f62df517d
- moved all interpolate* methods from spritetypebase to DCoreActor.
...
The places where it was used on tsprites were redone to use the actor's base coordinate, which at the point of the operation would always be the same.
2021-12-30 17:32:31 +01:00
Christoph Oelckers
c10fb1278a
- moved the backup... methods to DCoreActor.
2021-12-30 17:10:08 +01:00
Christoph Oelckers
6c381d4392
- removed sector() method from low level sprite type.
2021-12-30 16:58:48 +01:00
Christoph Oelckers
5498699faf
- use DCoreActor::sector() wherever possible.
2021-12-30 16:51:56 +01:00
Christoph Oelckers
88e4bb9f79
- moved sectno method to DCoreActor.
2021-12-30 16:39:43 +01:00
Christoph Oelckers
f0b7fe4add
- use setsector from DCoreActor.
...
Also did a bit of cleanup
2021-12-30 16:36:04 +01:00
Christoph Oelckers
af6ca40e3d
- use DCoreActor::insector instead of spritetype::insector.
2021-12-30 16:24:51 +01:00
Mitchell Richters
225a2a39da
- Duke: Replace player_struct
noise_*
variables with a vector.
2021-12-31 00:19:33 +11:00
Mitchell Richters
1e90b0bbbe
- Duke: Replace player_struct
bobposy
with bobpos.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
034e1fd175
- Duke: Replace player_struct
bobposx
with bobpos.X
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
f9b728d188
- Duke: Replace DDukeActor
lastvy
with ovel.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
8932b2fc1d
- Duke: Replace DDukeActor
lastvx
with ovel.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
0bc26e78ba
- Duke: Replace player_struct
loogiey[64]
with loogie[64].Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
e196a4daa3
- Duke: Replace player_struct
loogiex[64]
with loogie[64].X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
2d6bc783c4
- Duke: Replace player_struct
exity
with exit.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
8d2595ea84
- Duke: Replace player_struct
exitx
with exit.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
19a9fc462f
- Duke: Replace CraneDef
poley
with pole.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
034727d902
- Duke: Replace CraneDef
polex
with pole.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
4b1fbf13df
- Duke: Replace CraneDef
z
with pos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
3dfcbafd93
- Duke: Replace CraneDef
y
with pos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8006d8e394
- Duke: Replace CraneDef
x
with pos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
788be33c1a
- Duke: Replace player_orig
oz
with opos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
f5dd8ba3b9
- Duke: Replace player_orig
oy
with opos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
c5d94f9a8e
- Duke: Replace player_orig
ox
with opos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8a94022f5d
- Duke: - Duke: Replace FireProj
position and velocity variables with vectors.
2021-12-30 23:00:42 +11:00
Mitchell Richters
fd8c7bfa52
- Duke: Replace player_struct
poszv
with vel.Z
calls.
2021-12-30 23:00:41 +11: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
f9cea2b1db
- turning one check in hitradius into a flag.
2021-12-30 09:58:48 +01:00
Christoph Oelckers
3fcecedf32
- deleted ClearContent functions from actor classes.
...
this is a leftover from pre-DObject times and no longer needed.
2021-12-30 09:58:47 +01: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
059412b75e
- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.
...
We need this for implementing "precise" rendering to flag vertices as dirty.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
12619671e6
- Duke/RR: added fudging to work around aiming randomization issues with the pistol when autoaim is off.
...
Solution is the same as in RedNukem/EDuke32: do one hitscan directly in aiming order and if that hits a sprite, use it as aiming target.
2021-12-30 09:58:10 +01:00
Christoph Oelckers
ce1daa82c2
- Duke: make camera actors temporarily invisible before rendering a scene.
...
Mainly needed for voxel/model replacements of the security camera sprite.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
34f14aa4c3
- added vector variants of FindDistance2D and FindDistance3D
2021-12-30 09:58:07 +01:00
Christoph Oelckers
e3ce0da111
- make all actor pointers in the player struct regular pointers.
2021-12-30 09:58:06 +01:00
Christoph Oelckers
7bbd4343a8
- renamed all shadowing variables in Duke.
2021-12-30 09:57:33 +01:00
Mitchell Richters
e15c887f90
- Duke: Fix bad setup in initcrane()
following actor sprite pointer cleanups.
2021-12-30 09:57:31 +01:00
Christoph Oelckers
3adbed4826
- t[] replacement in spawn code.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
9b932b2d91
- t[] replacement in actors_d.cpp and actors_r.cpp.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
8c35224fe1
- Duke: removed all t-pointers to temp_data in actors.cpp.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
6766a5922a
- pass actors to calcChaseCamPos.
2021-12-30 09:57:18 +01:00
Christoph Oelckers
ed0c27b240
- Duke: deleted unused spritetype* variants of badguy() and bossguy()
2021-12-30 09:57:15 +01:00
Christoph Oelckers
09634c4993
- use actors instead of sprites in the new renderer's API.
2021-12-30 09:57:15 +01:00
Christoph Oelckers
d0143db8fe
- got rid of sx() and sm() inlines.
2021-12-30 09:57:13 +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
dd0ff465b0
- Replace spritetypebase
oz
with opos.Z
calls and eliminate spritetypebase
opos
union.
2021-12-30 09:57:07 +01:00
Mitchell Richters
a79b4b5ffc
- Replace spritetypebase
oy
with opos.Y
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
e0fb92bb01
- Replace spritetypebase
ox
with opos.X
calls.
2021-12-30 09:57:06 +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
6f9484a9ee
- fixed compilation on GCC.
...
error: operands to ?: have different types ‘std::nullptr_t’ and ‘TObjPtr<Duke3d::DDukeActor*>’
2021-12-30 09:57:01 +01:00
Christoph Oelckers
1240818122
- getting rid of DDukeActor::s, final part.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
f216857f55
- Getting rid of DDukeActor::s, part 1.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
99507ed048
- spawn_d.cpp
2021-12-30 09:57:00 +01:00
Christoph Oelckers
df2fc596f9
- spawn.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
45a2b9766e
- sectors_r.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
d532c496f1
- sectors_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
f816f2fb22
- ->s in non-gameplay files.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
edf3fd0f82
- premap_r.cpp + dependencies.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
1f40dfa411
- premap.cpp + premap_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
e76e28cdea
- the rest of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
0768c9e8b6
- non 'actor' parts of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
de22c8ca26
- 's->' in player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
6b675cc849
- non 'actor' parts of player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
b55e04d455
- game_misc.cpp + gameexec.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
a982c7e590
- player.cpp + noise.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
c0ea208ba3
- animatesprites_d.cpp and animatesprites_r.cpp.
2021-12-30 09:56:57 +01:00
Christoph Oelckers
9eb7c536ab
- the rest of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
7d5cf6e631
- first third of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
8ff53eae7d
- second half of actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
f1e608685e
- more parts of actor_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
b7a4c484e9
- large block of s = actor->s; in actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
44895411b9
- a large block of 'act->s' in actors_r.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
8dcc128697
- deal with 'spri = actor->s;'
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0df97f00ec
- the remaining 's's in actor.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
f5151e31a5
- globally replaced all 's->' with 'actor->spr.' in duke/src/actors.cpp.
2021-12-30 09:56:56 +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
0284ec1cb0
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 3.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0f7024e70e
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 2.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
997c12f67a
- replacement of DDukeActor::s and pointers to DCoreActor::spr.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
6fd4d6d550
- ported slope sorite support from NBlood.
...
For Polymost only so far.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4
- replaced most of numsectors, too.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
f1c0298825
- replaced numwalls with wall.Size in several places.
2021-12-30 09:56:54 +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
986fccfddc
- use symbolic constants for all places where globalorientation is checked for the alignment bits.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
5ff36f491e
- fixed the remaining places where the compiler complained about cstat.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
2d648924e8
- the final Duke flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
e02f4d8fd1
- randomFlip stuff.
...
To avoid casting from int to flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8f0f0e8816
- manual sprite flag replacements in Duke.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8e0b9f7ce6
- some automatic, some manual sprite flag replacements
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
5b65e214e0
- global search & replace of the more frequent sprite flag patterns.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
8f012d1beb
- made wall flags type safe
2021-12-30 09:56:47 +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
6e32832428
- made sector ceiling/floor flags type safe.
...
- made sector flags type safe.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b0e3c6b5ec
- some remaining sector flag stuff
2021-12-30 09:56:45 +01:00
Christoph Oelckers
d0a06ae961
- deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
98f0886b3d
-Duke/RR: Automatic replacement for CSTAT_SPRITE_INVISIBLE and CSTAT_SPRITE_BLOCK_ALL
2021-12-30 09:56:45 +01:00
Christoph Oelckers
8d0013128e
- Exhumed: use symbolic constant CSTAT_SPRITE_INVISIBLE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
1edccf1423
- added slope setter methods to sectortype.
...
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
11f41a97d5
- made gotpic a FixedBitArray.
...
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
dddf48fd3e
- cleaned up and renamed buildtypes.h.
...
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
4a5de6f56e
- make sure that all changes of wall coordinates invalidate associated data.
...
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
d1f088a858
- SW/Exhumed fixed sound relinking on actor destruction.
...
This still passed the sprites instead of the actors. Moved the relinking code to DCoreActor::Destroy because it is the same for all games.
Also did a little bit of sound cleanup to ensure the sound backend does not hold stale actor pointers.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
b89bba5ed1
- Duke: DDukeActor::setActiveCrane must also clear ownerActor.
...
Apparently something in the crane code can cause a condition where this wasn't cleared before grabbing a player.
Formerly these two were the same variable but had to be separated.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
d8ccfa1a5f
- cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated.
2021-12-26 23:10:05 +01:00
Mitchell Richters
14b8eda436
- Get rid of some now irrelevant comments.
2021-12-26 23:10:03 +01:00
Christoph Oelckers
74da3e5fa7
- added savegame support for the new actor management.
2021-12-26 23:10:03 +01:00
Mitchell Richters
2dda3ee505
- Tidy up some GCC warnings about ininitialised variables, memsetting non-trivial types and some others.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
838bed7800
- final cleanup of sectnum related stuff.
...
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6a43a270fa
- use sectno() access function where we really need a sector index.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
8ee5d1b0d7
- activated the garbage collector
...
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
0dd756fa32
- added GC handling for all backend pointers in the map data.
...
GC is not active yet!
2021-12-26 23:10:00 +01:00
Christoph Oelckers
138690d34e
- do not use auto to make local copies of TObjPtr's.
...
This will just copy the object without performing the read barrier on the source data which is not what we want here.
For these assignments the type must be explicit.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
fa62b20d76
- GC setup for Duke.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
5d09748af9
- Duke: added some null pointer checks.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
42e4e9288f
- deleted GetSpriteIndex.
...
It's not needed anymore.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
382689e0a7
- moved the FireProj struct into DDukeActor to avoid the rather expensive TMap code.
...
Later this can be moved to a dedicated subclass.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
588f88c9cc
- migrated the actors to DObjects.
...
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
8606045689
- Duke: made gamevars type safe and capable of managing actor pointers.
...
Also a few unrelated changes needed to make it compile again.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
d088ab05a9
- eliminate storage of actors in the sector's hitag for some of Duke's sector effectors.
...
Also demoted Blood's upperLink and lowerLink to DCoreActor pointers and use static_cast for access to avoid savegame problems. The core code cannot safely serialize a DBloodActor anymore.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
122a1f009d
- moved gamevar storage to player and actor objects respectively.
...
For actors this eliminates the need to for sprite indices which was the intended goal. It also properly associates the gamevars with their owners.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
8a2385dd89
- actor clearing cleaned up.
...
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
4cecb6f955
- removed the old actor savegame code and instead implemented a virtual Serialize function.
...
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
f855b1020f
- actor lists refactored.
...
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +01:00
Christoph Oelckers
eaff9e359f
- refactored the owner index in tspritetype.
...
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +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
6600f55543
- separate map loading from actor spawning for the other games, too.
...
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
a3493048e7
- refactoring of spawn code to prepare for the other games.
...
Map hacks do not work in this commit!
2021-12-26 23:09:51 +01:00
Mitchell Richters
0c6e55d1b8
- Silence all the -Wuninitialized
and -Wmaybe-uninitialized
warnings relating to HitInfo
objects passed through to functions by reference.
2021-12-26 23:09:50 +01:00
Mitch Richters
c6774d5efd
- Duke/RR: Re-add micro-movement cancellation for RR's vehicles that was dropped in 466bc84697
.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
2654a19cfd
- got rid of setspritez(x) and moved the implementation to SetActor(Z) without referencing the sprite array.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
5dfc79bdbe
- MarkSectorSeen
2021-12-26 23:09:48 +01:00
Christoph Oelckers
eb0f91e26b
- pass sector pointer to render_camtex.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
34373e9c70
- fixed use of wrong indexing function.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
9213eae606
- deleted unused functions.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
221d9fe28e
- adapted Duke's and Exhumed's sound code to directly work with actors.
...
This was already wrapped so all that needed to be done was removing the wrapper.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
97b19a5cb1
- adapted Blood's sound engine to using actors.
...
Note: Savegames won't work on this commit for the other games!
2021-12-26 23:09:45 +01:00
Christoph Oelckers
75b36cbd1c
- Duke: made player.i a real pointer
...
How could I overlook this one.
2021-12-26 23:09:45 +01:00
Christoph Oelckers
b7a5ea8ef6
- moved some common utilities into the backend.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
bbb860ccf3
- consolidate the iterators in the backend.
...
Using a template class that can adapt to the game specific types.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
6748a39c8f
- deprecate the sector index variant of pushmove
2021-12-26 23:09:43 +01:00
Christoph Oelckers
2aefe4398b
- sector[tspr->sectnum] globally replaced.
2021-12-26 23:09:43 +01:00
Christoph Oelckers
70d7e81f4f
- adapted getzrange to the new interface.
...
This was mainly removing game side solutions in favor of a common one in the backend.
2021-12-26 23:09:42 +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
96b9572905
- moved parts of the HitInfo subclasses into the backend.
...
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
10dce7dd2d
- adapted all hitscan calls in Duke/RR.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
9380819e4e
- initialize actorArray for all games.
...
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a
- added coreactor.h
2021-12-26 23:08:55 +01:00
Christoph Oelckers
33c707c708
- Duke: getangle simplification
2021-12-26 23:08:40 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Christoph Oelckers
109ff8c3cb
- Above and Below
2021-12-25 21:29:01 +01:00
Christoph Oelckers
5e01841f1e
- MoveSector et.al.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
2d1f5fc576
- Exhumed: some cleanup.
2021-12-25 21:28:58 +01:00
Christoph Oelckers
38d64fc437
spritetype::setsector
2021-12-25 21:28:57 +01:00
Christoph Oelckers
4928187b02
- handle the RR geometry hack
2021-12-25 21:28: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
714b5ac872
- movesprite handled
2021-12-25 21:28:56 +01:00
Christoph Oelckers
3bd1272e08
- sectnum removal step
2021-12-25 21:28:56 +01:00
Christoph Oelckers
6aac952658
- started eliminating sectnum
2021-12-25 21:28:56 +01:00
Christoph Oelckers
d1f7269ca8
replaced cursectnum with a cursector pointer
2021-12-25 21:28:56 +01:00
Christoph Oelckers
69a7b4d0bc
- final cleanup before replacement
2021-12-25 21:28:55 +01:00
Christoph Oelckers
fcbf861ad4
- final preparations for changing type of cursectnum
2021-12-25 21:28:55 +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
265abf7fa6
— Duke: Use BFSSectorSearch to handle the hitradius searches without using indices.
...
(and a bit nicer looking loop condition.)
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
2979fb9e03
- new access methods for spritetype and DDukeActor.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
4e30ba339b
- got rid of the tempsector... arrays in Duke's polymost interface.
...
Instead use some of the free parts in sectortype thats needed for the other games.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
c5e45f1021
- use actor->sector() to initialize iterators.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
aada3f3d19
- renamed DDukeActor::getSector.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
cc41f4e7c6
- migrated Duke's added sector properties.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
9ab35816ea
- the crane still stored a sector index in temp_data.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
69c21407a7
- pass a sector pointer to checkcursectnums.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
3ce2375a3e
- LocateTheLocator + related sector storage in temp_data
2021-12-25 21:28:39 +01:00
Christoph Oelckers
64f1029416
- Duke: pass a sector pointer to callsound.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
fa48b740c0
-proper owner storage for Duke.
2021-12-25 21:28:38 +01:00
Christoph Oelckers
771f5e3338
- removed all old savegame handling
2021-12-25 21:28:38 +01:00
Mitch Richters
c6f2aaf1b7
- Miscellaneous fixes to commit to change sector checks over to validSectorIndex()
.
...
* Fix missed changeover in Blood's `actSpawnSprite()`.
* Fix non-negated check on a `validSectorIndex()` call in Blood's `debrisMove()`.
* Removed a superfluous terminator in Duke's `actor.cpp`.
* Fixed bad call to `validSectorIndex()` in Exhumed's `AIAnim::Tick()`.
2021-12-25 21:28:37 +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
7daa501a4d
- removed all #include "compat.h" except the one in build.h
...
Still all compiles fine.
2021-12-14 12:24:10 +01:00
Christoph Oelckers
507dc10e4f
- Duke/RR: Fixed sprite validation checks in animatesprites.
2021-12-11 09:57:02 +01:00
Mitchell Richters
3269d6a398
- Duke: Ensure all weapon variables used for interpolation have the o
values set when CON updates them.
...
* Hasn't been an issue to date but could become one should a mod set these.
* Can't simply back the variable up and set the main one because unless the mod knows we're interpolating, it could have undesirable effects.
2021-12-10 17:31:51 +11:00
Mitchell Richters
ee1ffd2347
- Duke: Fix lotag signedness issue affecting SE10 (door auto-close).
...
* Originated in 01abe7b2ac
while removing a casting to short.
* Fixes #594 .
2021-12-10 17:26:56 +11:00
Mitch Richters
5aa4243327
- Duke: Test tsprite's sector in animatesprites_d()
following crash while noclipping in Duke WT's E5L1. Apply same fix to animatesprites_r()
as well.
2021-12-07 22:55:08 +11:00
Mitch Richters
6aba76cfe5
- Duke/RR: Fix RR crash while operating weapon outside of a sector (noclipping, etc).
2021-12-07 21:42:21 +11:00
Mitchell Richters
af96180123
- Duke/RR; Don't lose the precision of p->MotoSpeed
when calculating p->VBumpTarget
.
2021-12-07 20:02:30 +11:00
Mitch Richters
63a19bbb15
- Port spritetype::insector()
over from develop and use with sector nullptr checks in 6539d72663
.
2021-12-07 19:56:50 +11:00
Mitch Richters
6539d72663
- Duke/RR: Add three sector nullptr checks after receiving crash in Redneck Rampage Route 66 while noclipping.
2021-12-07 19:44:35 +11:00
Mitch Richters
85a2e3bd06
- Duke/RR: Do nullptr test in floorspace_d()
/floorspace_r()
functions to match ceilingspace_*()
functions.
2021-12-07 19:41:25 +11:00
Mitch Richters
a7e99a3bd1
- Duke/RR: Do nullptr test in ceilingspace_r()
after receiving crash in Redneck Rampage Route 66 (do Duke for parity).
2021-12-07 19:41:22 +11:00
Mitch Richters
96867e15d5
- Duke: Apply same nullptr fix in 2e7496888a
to prelevel_r()
, and rename sect
to sectp
for 1:1 match between _d.cpp and _r.cpp files.
2021-12-07 19:41:18 +11:00
Mitch Richters
2e7496888a
- Duke: Re-add lost nullptr check in prelevel_d()
that was causing a crash while loading Duke Nukem's Penthouse Paradise.
2021-12-03 10:14:41 +01:00
Christoph Oelckers
690994ea1e
- Duke: fix missing sectp update in processinput_d.
...
RR version had this correct
2021-11-30 00:20:16 +01:00
Christoph Oelckers
64cad55d73
- fixed updatesector and changed updatesectorz to use the same search algorithm.
...
The initial distance check in updatesectorneighbor had a far too low threshold which would skip the breadth-first search for relatively small distances already.
Exhumed's LEV1 and Duke's Lunatic Fringe were the most obvious candidates where this could cause problems.
Changed to use a mixture of the original updatesector with the revised algorithm so that all immediate neighbors of the start sector will get visited unconditionally.
updatesectorz was still the original function from Shadow Warrior, this also was changed to use the same algorithm as uodatesector.
2021-11-30 00:15:25 +01:00
Christoph Oelckers
71dfe7ecfe
- fixed handling for cl_capfps and cl_nointerpolate to never use any smoothratio value other than 1.0.
2021-11-29 00:57:11 +01:00
Christoph Oelckers
1de9c63d45
- fixed center aligned rendering of 2D content.
...
This calculates the centered pivot point in integer texel coordinate space so for odd numbers it must round down instead of using a fractional position.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
cd3288860a
- fixed automap player drawing for follpw mode off in all games.
2021-11-29 00:56:32 +01:00
Christoph Oelckers
2949361c82
- Duke/RR: added null checks to all spawn() calls
2021-11-29 00:56:32 +01:00
Christoph Oelckers
d5a6be3d96
- cleaned up Duke's spawn code.
...
The paths for initializing a map placed sprite and spawning a new actor at run time are now fully separate aside from the actual initialization of the actor.
2021-11-29 00:56:31 +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
8972dbe5da
- actorstayput
2021-11-29 00:56:31 +01:00
Christoph Oelckers
4a81d45630
- the remaining sector[] stuff in Duke/RR.
...
What remains is either engine interface code or not easily replaced.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
5e66a3331d
- getanimationgoal.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
baf36a321b
- inside, haskey and removed unused processmove functions.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
3970c9a757
- use sector pointers in actors_lava.cpp
2021-11-29 00:56:30 +01:00
Christoph Oelckers
9b6d6eb7f9
- sector[] in render interface
2021-11-29 00:56:30 +01:00
Christoph Oelckers
db96e93adc
- animatesect, setanimation and related stuff.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
b0ced98d5e
- changed main EGS function.
2021-11-29 00:56:29 +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
c57c007010
- do the remaining st handlers.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
2aec8f47d3
- more st functions.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
2a290dec48
- handle_st15 / handle_st16.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
da4df04e7d
- sector[] in handle_st09.
2021-11-29 00:56:28 +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
747fc11eb7
- Duke: use sector pointer in movement code
2021-11-29 00:56:28 +01:00
Christoph Oelckers
931c71a78c
- use sector iterator for cheatUnlock
2021-11-29 00:56:27 +01:00
Christoph Oelckers
a7634c4cad
- Duke: use pointers in interpolation interface.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
0d8b380b05
- use wallsofsector for all remaining iterations over a sector's walls.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
ac5425a545
- extended player_orig.os to full int.
...
This was the last remaining short variable in Duke/RR that holds a sector index.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
a0950081ad
- fixed bad sector use in handle_st18
2021-11-29 00:56:27 +01:00
Christoph Oelckers
5c9327a788
- use pointer variant of nextsectorneighborz.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
0f2f46ec35
- made one_parallax_sectnum a pointer
2021-11-29 00:56:26 +01:00
Christoph Oelckers
bc199d00c7
- made 'clouds' a pointer array.
2021-11-29 00:56:26 +01:00
Christoph Oelckers
7a9e39a96b
- delete some inactive code.
2021-11-29 00:56:26 +01:00
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
53122355fe
- more sectors in spawn.cpp
2021-11-29 00:56:24 +01:00
Christoph Oelckers
c79dace730
- eliminated sector[] in position checkers
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
344041167e
- add setanimation variant taking a wall pointer
...
Mainly to get rid of wallnum()calls elsewhere.
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
6b73a37b56
- made mirrorsector a pointer array
2021-11-29 00:56:23 +01:00
Christoph Oelckers
58cd8bd6b9
- make mirrorwall a pointer array
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
9d8e7ea759
- crane cleanup
...
This now uses its own struct where it can store the needed actor pointer directly.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
d405da9195
- changed furthestcanseepoint return value
...
This does not need to return a sector - the caller merely expects success or failure.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
4823152107
- hitawall
2021-11-29 00:56:22 +01:00
Christoph Oelckers
d45ab528e6
- hitscan in player_r.cpp
2021-11-29 00:56:21 +01:00
Christoph Oelckers
1a11e445c3
- remaining hitscans in player_d.cpp
2021-11-29 00:56:21 +01:00
Christoph Oelckers
b68c66dae6
-Duke/RR: started migrating hitscan to pointer usage.
2021-11-29 00:56:21 +01:00
Christoph Oelckers
09e75ddca2
- change wall parameter of checkhitwall.
2021-11-29 00:56:21 +01:00
Christoph Oelckers
c410b1be45
- glass stuff
2021-11-29 00:56:21 +01:00
Christoph Oelckers
200daacd3c
- checksectors*
2021-11-29 00:56:20 +01:00
Christoph Oelckers
a38fdd2890
-more in spawneffectors
2021-11-29 00:56:20 +01:00
Christoph Oelckers
94d0e9775f
- spawneffectors
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
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
7615a52126
-operatesectors + operateforcefields.
2021-11-29 00:56:19 +01:00
Christoph Oelckers
60f16e8fb8
- handle_st09
2021-11-29 00:56:19 +01:00
Christoph Oelckers
463ce55d0b
- premap
2021-11-29 00:56:19 +01:00
Christoph Oelckers
7a504e27d2
- premap_d
2021-11-29 00:56:19 +01:00
Christoph Oelckers
6b8e7b3fbc
- RR: movement code
2021-11-29 00:56:18 +01:00
Christoph Oelckers
1953f0f599
- delete unused variables.
2021-11-29 00:56:18 +01:00
Christoph Oelckers
aee2668088
- RR shootWeapon
2021-11-29 00:56:18 +01:00
Christoph Oelckers
b97f8706ad
- operateTripBomb
2021-11-29 00:56:18 +01:00
Christoph Oelckers
e88047fc45
- wall[] in shootknee, shootweapon and shootlaser.
2021-11-29 00:56:18 +01:00
Christoph Oelckers
81894fd831
- Duke: shootbloodsplat
2021-11-29 00:56:18 +01:00
Christoph Oelckers
2fa027a686
- RR: deal with wall[] in actor_lava.cpp
2021-11-29 00:56:17 +01:00
Christoph Oelckers
345d9c87b6
- RR: no more wall[] in actors_r.cpp
2021-11-29 00:55:41 +01:00
Christoph Oelckers
00edd16834
- Duke: get rid of the remaining wall[] references in actors_d.cpp
2021-11-29 00:55:41 +01:00
Christoph Oelckers
e0260bc709
- Duke/RR: weaponhitwall cleaned up (both variants)
2021-11-29 00:55:40 +01:00
Christoph Oelckers
5bb805663e
- Duke/RR: cleaned up the rest of hitradius* as well
...
Using wallsofsector iterator plus defining local variables more locally.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
63985ce6be
- Duke/RR: redo the supremely ugly code to access the third point in hitradius*
2021-11-29 00:55:40 +01:00
Christoph Oelckers
68d653efe9
- made the same changes to hitradius_r
...
Also had to do some reformatting to get rid of the goto in there.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
821f341e03
- use BFSSearch in hitradius_d
2021-11-29 00:55:39 +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