Commit graph

1426 commits

Author SHA1 Message Date
Christoph Oelckers
f7e61eeef7 - migrated Blood's portal links into sectortype. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
14907a9a97 - sector extension basics. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
94a37dfcdc - extended walltype to directly manage Blood's XWALL.
Unfortunately this had to be done in the base class so that we can still maintain the walls in a global array.
The tradeoffs of better abstractions would be far too costly here than the added 16 bytes to the wall struct.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
6705e8e51e - moved xsprite into DBloodActor and save all relevant parts of DBloodActor.
This completes Blood's transition.
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
910c0e61ca - Added Raze-specific application data search path for macOS. 2021-12-15 21:30:46 +01:00
Christoph Oelckers
eeabe0fe6d - fixed culling of mirrored voxels for real this time. 2021-12-15 21:19:42 +01:00
Christoph Oelckers
8cb871e5ff - fixed: voxel culling must take sprite flipping into account. 2021-12-14 13:43:24 +01:00
Christoph Oelckers
0c83d299f2 - removed compat.h entirely, all that was left was redundant #includes. 2021-12-14 12:27:41 +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
7e2431ebd8 - replaced the remaining content from compat.h 2021-12-14 10:15:58 +01:00
Christoph Oelckers
016a907c20 - replaced vec2_t with FVector2. 2021-12-14 10:07:06 +01:00
Christoph Oelckers
7546cf3a4b - replaced vec3f_t with FVector3. 2021-12-14 09:58:01 +01:00
Christoph Oelckers
a899055f50 - fixed: in palette emulation mode, assume all textures to be non-translucent.
These need to force an alpha test, which is disabled for textures with translucent texels.
2021-12-13 10:35:03 +01:00
Mitchell Richters
2253a418c7 - Tidy up some of the indentations that were badly resolved in the previous commits merge conflict. 2021-12-13 07:39:01 +11:00
Christoph Oelckers
054d81fc8e - fixed logic for discarding walls in new renderer.
The case being checked here may decide not to add the wall to the clipper but it must still be rendered.
Information for determining visibility is not sufficient in case of sector overlaps which can happen with rotating doors or poorly set up sector objects.

# Conflicts:
#	source/core/rendering/scene/hw_bunchdrawer.cpp
2021-12-12 19:40:17 +01:00
Christoph Oelckers
c2f29b8849 - fixed OOB write in section splitting code. 2021-12-12 09:42:45 +01:00
Christoph Oelckers
387a03c7ee - fixed triangulation via node builder for sectors with invalid walls.
The array indices were not properly adjusted for the missing elements an
2021-12-12 00:23:35 +01:00
Emile Belanger
9501215ef2 Revert "- disabled palette emulation for the GLES backend."
This reverts commit 8d9d3d5f8f.
2021-12-11 13:23:39 +01:00
Christoph Oelckers
10c6fde8d6 - reordered the init calls in engineLoadBoard.
sprite lists must be done after preparing the arrays, otherwise important bits get overwritten.
2021-12-11 12:51:07 +01:00
Mitchell Richters
853aab5513 - Update version.h. 2021-12-10 17:40:18 +11:00
Mitch Richters
cb91e23c75 - Clamp the return value in PitchToHoriz() between the range of an INT32 value, and fix some math in the PitchToBAM() and BAMToPitch() inlines. 2021-12-07 19:59:30 +11:00
Mitch Richters
acf38f7a21 - Make a number of CVARs in gamecvars.cpp saved as part of the global config.
Full list:
* `cl_weaponsway`
* `cl_viewbob`
* `cl_interpolate`
* `cl_slopetilting`
* `cl_showweapon`
* `cl_syncinput`
* `cl_hudinterpolation`
* `cl_loadingscreens`
2021-12-07 19:59:26 +11:00
Christoph Oelckers
c2baa68160 - fixed camera textures breaking in SW when restarting a level.
This was caused by attempting to delete the camera textures when cleaning up the mirror array.
The Build tile manager was not prepared for such a use case and left a broken texture behind.

To allow this to function it now resets the texture replacement type when deleting a tile and to avoid creating new camera textures these will now be stored in a cache and recycled later.
2021-12-02 21:40:43 +01:00
Christoph Oelckers
f765783437 - various small bits of cleanup. 2021-11-29 00:57:11 +01:00
Christoph Oelckers
e59d976691 - added .ssi to the list of known extensions for container files. 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
6cec61683d - fixed incorrectly placed tileUpdatePicnum call in new renderer for sprites.
This was only in the regular sprite call and did not affect models or voxels.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
18d1084f7c - fixed assignment of map hacks with multiple maps assigned.
The parser only ever added the last MD4 but not the others.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
35c2d6d14e - fixed translucent voxel rendering. 2021-11-29 00:57:10 +01:00
Christoph Oelckers
793aaf242c - make upscaling of sky textures depend on the single tile size, not the entire composite texture. 2021-11-29 00:57:10 +01:00
Christoph Oelckers
2d806d415a - clear interpolations when starting a new map. 2021-11-29 00:57:09 +01:00
Mitch Richters
ca0464c139 - Change out of box default of cl_runmode to 0, which allows the bound run key to act like an autorun negator.
* Requested in https://forum.zdoom.org/viewtopic.php?f=342&t=73031.
2021-11-29 00:56:32 +01:00
Mitch Richters
8fefead4e5 - Remove cancellation of quick turn if mouse/keyboard/controller angle input is detected that was introduced in 2129d3b4e7.
* Requested in https://forum.zdoom.org/viewtopic.php?f=342&t=73231
* Neither EDuke32 nor GZDoom do this, so the rationale is we shouldn't either.
2021-11-29 00:56:32 +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
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
baf36a321b - inside, haskey and removed unused processmove functions. 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
a7634c4cad - Duke: use pointers in interpolation interface. 2021-11-29 00:56:27 +01:00
Christoph Oelckers
adf3133fdc - use sectnum and wallnum to get an index from pointers instead of subtracting the array base. 2021-11-29 00:56:26 +01:00
Christoph Oelckers
4e31360fe4 - cleaned up dragpoint
This still contained some code for EDuke32's TROR and used a shared static global array.
It now uses the BFSSearch class to manage its bit array to unlimit the size of its working set and to avoid reallocation.
2021-11-29 00:56:25 +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
c410b1be45 - glass stuff 2021-11-29 00:56:21 +01:00
Christoph Oelckers
7111b2470c - SW: use BFSSearch in TraverseBreakableWalls 2021-11-29 00:55:45 +01:00
Christoph Oelckers
2a51e5eca3 - fixed: BFSSearch did not mark its start sector as added.
As a result it could be added twice.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
6fc43287b3 - redid Exhumed's BelowNear function.
Use BFSSearch, only run one iteration of the search and only run the search if the result is actually used.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
12c26976f0 - GetClosestSpriteSectors: replace distance calculation with proper math.
No need to sample multiple points along the wall if we can just properly calculate the actual distance. :)
2021-11-29 00:55:44 +01:00
Christoph Oelckers
d2f0934726 - Blood: cleaned up GetClosestSpriteSectors
using BFSSearch now and avoiding pointless loop to avoid setting the checked bit.
The entire outcome was just as if the bit was never checked inside the loop, so do just that when not running in compatibility mode.
This simplifies the remaining code quite a lot because it now just needs to run over all walls with no special case considered.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
b685163ab1 - Blood: extend all 16 bit fields holding sector or wall indices to 32 bit. 2021-11-29 00:55:41 +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