Commit graph

257 commits

Author SHA1 Message Date
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
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
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
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
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
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
6c381d4392 - removed sector() method from low level sprite type. 2021-12-30 16:58:48 +01:00
Christoph Oelckers
88e4bb9f79 - moved sectno method to DCoreActor. 2021-12-30 16:39:43 +01:00
Christoph Oelckers
eb00fe52db - more spritetype references eliminated. 2021-12-30 16:11:14 +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
e670cf2786 - re-tabified several files that got mangled by repeated merging 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
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
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
e5c9691166 - fixed clipping issue with sloped walls.
The window was calculated too narrow for this case, it needs to use the lower point of a floor slope and the upper point of a ceiling slope.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
50bad91f14 - handle edge case in clipper where adding a new window will remove the entire clipper's content before adding the new range.
This case would have passed the actual logic but not the asserts.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
9e14b168bb - addressed more shadowed variables in common code. 2021-12-30 09:57:32 +01:00
Christoph Oelckers
3992dfae84 - fixed: When merging clip nodes the redundant one needs to be deleted with RemoveRange.
Calling Free is not enough.
2021-12-30 09:57:29 +01:00
Christoph Oelckers
b00f197be3 - fixed: RemoveClipRange did not shorten the range if it had to split it up. 2021-12-30 09:57:29 +01:00
Christoph Oelckers
5699488bea - get rid of spritetype in inactive code. (Search noise removal) 2021-12-30 09:57:20 +01:00
Christoph Oelckers
40a307650d - the really final parts of the shared code using s() cleaned up. 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
f602cf3806 - deal with s() in shared code.
clip.cpp was left alone, except for the actual call.
2021-12-30 09:57:14 +01:00
Christoph Oelckers
d0143db8fe - got rid of sx() and sm() inlines. 2021-12-30 09:57:13 +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
d9d05e90b5 - globally replaced all occurences of '->s().' with '->spr.' 2021-12-30 09:57:00 +01:00
Christoph Oelckers
beddf1e1ca - add slope sprite support to the new renderer.
Some fudging was needed to avoid positioning problems as the renderer is more sensitive to this than Polymost.
2021-12-30 09:56:55 +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
6608096ea3 - added a bit more debug validation to the new clipper code. 2021-12-30 09:56:53 +01:00
Christoph Oelckers
fd741c4d49 - Disable debug output 2021-12-30 09:56:52 +01:00
Christoph Oelckers
756ed1c14b - removed the workaround to make Lunatic Fringe not glitch. 2021-12-30 09:56:52 +01:00
Christoph Oelckers
c141c89cfd - fixed the clipper.
* must do proper checks for merged ranges when inserting new ones. The checking code assumes that closed ranges are contiguous.
* when discarding parts of overlapping ranges this may not use merged clip values for its checks.
* ranges that have their clip values altered must be released and reinserted to ensure everything is correct.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
f152a4d9b5 - clipper clean up.
The horizontal part of the logic should work now.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
213ed28398 - WindowClipper WIP 2021-12-30 09:56:52 +01:00