Commit graph

1691 commits

Author SHA1 Message Date
Christoph Oelckers
9f6d6a0e6d - block y-flipping of slope sprites only if they are actually sloped.
This mirrors Polymost's (buggy) handling.
2022-01-05 09:20:54 +01:00
Christoph Oelckers
d5daa8ee84 - fixed: The bunch drawer's gotwall array was cleared before resizing.
This means that on the first frame of a new map it'd operate on partially uninitialized data.
2022-01-04 17:18:26 +01:00
Christoph Oelckers
227ac0fca6 - RR: address a missing texture in E1L2.
The current texture on this wall is suboptimal but it's still better than glitchy HOM.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
03cad0fe3b - consider slope sprites unavailable in map formats 5 and 6.
Exhumed has several sprites flagged with this combo - they all need to be treated as face sprites.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
bb95f26c5e - removed debug message. 2022-01-04 17:18:24 +01:00
Christoph Oelckers
3494c701ee - Nam/WW2GI: use the console font for the generic message display.
The small font in these games is not usable because it is too small, too ugly and not extendable for localization.
2022-01-04 17:17:59 +01:00
Christoph Oelckers
ac3546bdaa - fixed depth buffer use of slope sprites.
They cannot be treated like perfectly horizontal floor sprites and need to write to the depth buffer in the same pass as the regular pixels.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
e2e3b4482d - do some better sorting of slope sprites.
Splitting by translucent floor plane is essential, splitting by wall not that much - sorting by center point should be sufficient here.
2022-01-03 12:31:54 +01:00
Christoph Oelckers
be92d252ff - fixed signedness issue with slope sprite coefficient. 2022-01-03 09:54:23 +01:00
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