Commit graph

1682 commits

Author SHA1 Message Date
Christoph Oelckers
7915fb7ef1 - allow using "Mario" cheat with a space between name and number. 2022-01-03 07:13:34 +01:00
Mitchell Richters
bc6dd4ae3e - Add nullptr check to Interp_Sprite_Z reversion so I can load older saves before this was reverted. 2022-01-03 09:13:11 +11:00
Christoph Oelckers
d0ab13f95a - use GPLv2 in all files dual-licensed with the Doom Source license.
None of this was ever GPLv3, the original id source was released under the GPLv2 so this should be, too.
2022-01-02 12:42:54 +01:00
Christoph Oelckers
daa07b9e55 - an attempt to render "reflection" floor sprites by lifting them up to the floor and drawing them with 33% alpha. 2022-01-01 20:01:36 +01:00
Christoph Oelckers
8c9b810b16 Revert "- removed Interp_Sprite_Z."
Sadly, SW's sprite interpolation is too screwed up to do a better fix on short notice.
It's the same with interpolating sprites attached to SOP's, it is only needed because generally interpolating sprites in SW is problematic.
2022-01-01 19:50:30 +01:00
Christoph Oelckers
6807086f3c - relaxed the FindWall check for wall sprites a bit so that slightly out-of-sector sprites can find a wall to attach to. 2022-01-01 18:55:42 +01:00
Christoph Oelckers
fcb3e43799 - fixed side check for sloped sprites. 2022-01-01 17:27:09 +01:00
Christoph Oelckers
9680ff1863 - ignore y-flipping when rendering slope sprites in the new renderer.
This is what Polymost, and apparently NBlood, do here.
2022-01-01 12:55:28 +01:00
Christoph Oelckers
551ff89778 - fixed signed/unsigned comparison warning. 2022-01-01 11:30:00 +01:00
Mitchell Richters
f1530a051f - Fix two signedness warnings in hw_sections.cpp. 2022-01-01 21:02:00 +11:00
Mitchell Richters
733b6a7367 - Fix GCC warning warning: ‘vec.TVector2<double>::X’ may be used uninitialized [-Wmaybe-uninitialized]. 2022-01-01 20:50:58 +11:00
Christoph Oelckers
17de3a08e8 - deal with bad start sectors.
The engine will now try to find a proper sector in the map loader if there's a mismatch.
2022-01-01 10:39:59 +01:00
Christoph Oelckers
4dbbe892ae - fixed main game resource detection for Blood.
* code did not scan .rff files for content-defined versions.
* code did not check content-defined versions for CRC matches.
2021-12-31 13:04:32 +01:00
Christoph Oelckers
1849fe541e - fixed alignment of sloped sprites.
The offset fields are not valid for them so thwy may not be used for offsetting.
2021-12-31 11:55:25 +01:00
Christoph Oelckers
717dd123e5 - fixed slope sprite flag getting cleared by some leftover code.
Also merged copyfrom into the one single function that called it.
2021-12-31 10:55:55 +01:00
Christoph Oelckers
f679b61a30 - fixed issue with wall sprite angle check.
The resulting value had no sign, so 'abs' did not work. It now uses some bit shifting magic to get a proper sign.
2021-12-30 22:56:33 +01:00
Christoph Oelckers
a9b162b8e9 - moved the tsprite flags from cstat2 to clipdist which was already holding other ones.
cstat2 should only hold flags for game-side sprites.
2021-12-30 19:00:35 +01:00
Christoph Oelckers
552668418a - moved opos and oang to DCoreActor. 2021-12-30 18:21:02 +01:00
Christoph Oelckers
2bb7cecf27 - eliminated spritetype::clear.
Most uses were bad anyway, and the legitimate ones are just clearing the object.
2021-12-30 17:55:17 +01:00
Christoph Oelckers
51abee4351 - eliminated spritetypebase::setpos, which was the last remaining method in this struct. 2021-12-30 17:49:16 +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
Christoph Oelckers
eb00fe52db - more spritetype references eliminated. 2021-12-30 16:11:14 +01:00
Christoph Oelckers
4bc32e2777 - use actors in the sloped sprite utilities. 2021-12-30 16:11:14 +01:00
Christoph Oelckers
50a3089648 - eliminated tspriteptr_t and moved a few polymost-exclusive inlines into polymost.cpp. 2021-12-30 11:51:33 +01:00
Christoph Oelckers
44d2cc1951 - eliminated usectorptr_t. 2021-12-30 11:45:58 +01: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
c61d82cead - made RRRA E1L3 fix a bit more robust by neutralizing the unconnected one of the two walls.
Also fix thw 'warning C4456: declaration of 'i' hides previous local declaration' warning.
2021-12-30 10:09:13 +01:00
Christoph Oelckers
4d8028831b - fixed vertexscan crashing on bad walls. 2021-12-30 09:58:48 +01:00
Christoph Oelckers
69283bfb0c - tabified several Blood source files. 2021-12-30 09:58:47 +01:00
Christoph Oelckers
e670cf2786 - re-tabified several files that got mangled by repeated merging 2021-12-30 09:58:47 +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
d46a7abb0e - better wall sprite handling.
When they are directly on a wall, project their coordinates onto the wall to eliminate the imprecisions from Build's ad-hoc setup.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
1a2b9d43f7 - fixed check for wallsprites on walls.
This completely ignored the case where a wall was flagged as one-sided which was the main reason with that sneaky sign in E2L1.
The problem is not entirely fixed with this but now it will detect that it's on a wall.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
4f8f85c634 - backend update from GZDoom. 2021-12-30 09:58:46 +01:00
Christoph Oelckers
b1d8f92ded - added wall edge splitting for gl_seamless. 2021-12-30 09:58:44 +01:00
Christoph Oelckers
f7e7476010 - hooking up the vertex map with the rest of the engine. 2021-12-30 09:58:44 +01:00
Christoph Oelckers
27ae8d627b - vertex height map creator for precise render mode like in GZDoom. 2021-12-30 09:58:44 +01:00
Christoph Oelckers
3fee8f3c4e - replaced dragpoint (both the generic and the Blood variant) with a newly written vertexscan function.
This is a template allowing to run any task on a set of walls with equivalent start point.
Code was redesigned from scratch to be more clear than the existing variants.

The idea here is to reuse the base algorithm for other things that need to operate on the equivalent set of a given wall's start point.
2021-12-30 09:58:15 +01:00
Christoph Oelckers
a15e5399fa - don't use a full sector backup in the triangulator for comparing changes.
Instead use a smaller struct only containing the relevant data.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
fb53f32603 - handle the remaining write accesses to ceilingz and floorz.
Everything is routed through the wrapper functions now.
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
8710e76a2d - delete voxel models when shutting down 2021-12-30 09:58:10 +01:00
Christoph Oelckers
dc7082f264 - removed duplicate PClass::StaticInit call. 2021-12-30 09:58:10 +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