Commit graph

620 commits

Author SHA1 Message Date
terminx
38fe40abf2 Bump MAXCACHEOBJECTS from 9216 to 16384
This is actually the first time we've increased this limit in the entire time the engine source has been available.

git-svn-id: https://svn.eduke32.com/eduke32@7757 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:19 +02:00
terminx
24b994d952 One of those stupid optimizations you notice the potential for when scrolling through code looking for something
git-svn-id: https://svn.eduke32.com/eduke32@7756 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:17 +02:00
terminx
7a6293ff42 Floating point grouscan() patch from Nuke.YKT, worth a couple of fps in classic mode in slope-heavy scenes
git-svn-id: https://svn.eduke32.com/eduke32@7755 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:08 +02:00
pogokeen
c9014870e3 Improve depth fighting by pushing out the near plane and improve near plane clipping by depth clamping.
Suggest reducing SCISDIST when there's time to debug SCISDIST issues.

git-svn-id: https://svn.eduke32.com/eduke32@7754 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:06 +02:00
Christoph Oelckers
8de0fd35a1 - fixed compilation 2019-09-20 14:32:28 +02:00
pogokeen
2e75437262 If GL_ARB_clip_control & GL_ARB_depth_clamp are available, reflect that in glinfo
git-svn-id: https://svn.eduke32.com/eduke32@7753 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:18:33 +02:00
terminx
72821e7de1 Patch from Nuke.YKT to improve mouse selection in the editor in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7740 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 14:12:27 +02:00
pogokeen
d621023807 polymost.cpp: Fix polymost_domost() issue with COMBINE_STRIPS where in certain cases, merging with the viewport nodes caused accidental reading of sentinel node values.
Additional debug code is included for visualizing the state of the vsp data structure.
Further, fix issue in drawpoly where it would access out of bounds of dpxy if fewer than 3 vertices were passed in and fix issue where multiple calls to polymost_setVisibility() were repeatedly setting the visibility factor to the same value.

git-svn-id: https://svn.eduke32.com/eduke32@7737 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:04:32 +02:00
pogokeen
8cbdf3a0c4 Use stencil buffer in Polymost to restrict mirrors to only render within the region of the screen occupied by the mirror wall.
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.

git-svn-id: https://svn.eduke32.com/eduke32@7736 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/kenbuild/src/game.cpp
2019-09-20 14:04:29 +02:00
pogokeen
1426b3fb4f winlayer.cpp: fix videoBeginDrawing() to return an intptr_t to mirrorBuffer when inpreparemirror
git-svn-id: https://svn.eduke32.com/eduke32@7735 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:22 +02:00
pogokeen
cdd83905ca Fix TROR & skyboxes to work with mirrors in Software & Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7733 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:17 +02:00
pogokeen
281ee3358b Add benchmarkmode cvar which allows putting demo cameras in the map which can be used for automatic benchmarking of performance & correctness testing
git-svn-id: https://svn.eduke32.com/eduke32@7729 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:24 +02:00
Christoph Oelckers
86dcab958d - make it compile again. 2019-09-20 13:30:25 +02:00
terminx
2ce96f67be Patch from Nuke.YKT to add support for the cstat flip bits to voxels in both software and Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7723 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:17:29 +02:00
terminx
c122aa2178 Replace DO_TILE_ANIM() macro with tileUpdatePicnum() function
git-svn-id: https://svn.eduke32.com/eduke32@7722 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/engine_priv.h
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
2019-09-20 13:15:07 +02:00
terminx
3130b51a96 Add SLOPTABLESIZ preprocessor definition
git-svn-id: https://svn.eduke32.com/eduke32@7718 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:42 +02:00
terminx
3cdc20cac1 Patch from Nuke.YKT to increase the size of sloptable[]
git-svn-id: https://svn.eduke32.com/eduke32@7717 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:40 +02:00
terminx
db7a2bd0db Update libdivide from git
git-svn-id: https://svn.eduke32.com/eduke32@7715 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:36 +02:00
terminx
4a09e2a183 Patch from Nuke.YKT to improve the appearance of slopes in software mode
git-svn-id: https://svn.eduke32.com/eduke32@7714 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:34 +02:00
terminx
d5d1f0a0ea Patch from Nuke.YKT to implement q16 angle and horiz in software mode
git-svn-id: https://svn.eduke32.com/eduke32@7713 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:32 +02:00
terminx
fe2fe0c2cf Patch from Fox:
Polymost visibility: compensate for the classic mode "truncating" the lookup shades by moving the fog ramp by the equivalent of 1/2 shade

Fix some issues with negative shade in GL fog.

git-svn-id: https://svn.eduke32.com/eduke32@7712 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:29 +02:00
terminx
29b626fc5d Get rid of DYNALLOC_ARRAYS
It's garbage and the "functionality" it provided is something that will be able to be achieved in a better way in a future commit.

git-svn-id: https://svn.eduke32.com/eduke32@7708 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:20 +02:00
terminx
d2b3691e22 Remove FIXMATH_NO_64BIT
This codebase doesn't work on any platforms where int64_t isn't even a type.

git-svn-id: https://svn.eduke32.com/eduke32@7707 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:17 +02:00
terminx
ccdba037b5 Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.

git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/mdsprite.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx
dc62b986e8 Update miniz from 2.0.8 to 2.1.0--not much of a change
git-svn-id: https://svn.eduke32.com/eduke32@7703 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:41 +02:00
terminx
2f9ca17507 Fix integer overflows in rintersect() and optimize a bit of the logic
Some of the variable initialization ordering may look counterintuitive at first, but it's intended to avoid read-after-write memory access penalties.

git-svn-id: https://svn.eduke32.com/eduke32@7701 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:36 +02:00
terminx
d34224a3de "Fix" editor clipping bug allowing movement into null space
This doesn't so much fix the issue as band-aid over it--it appears to be an OG BUILD bug that has happened since long before I ever began improving the clipping, I don't know what causes it, and I don't want to fuck everything up trying to fix it right now.

git-svn-id: https://svn.eduke32.com/eduke32@7698 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:29 +02:00
terminx
02ef02872a Replace manual casts of sprite and wall pointers to vec2/3_t with use of the anonymous union
git-svn-id: https://svn.eduke32.com/eduke32@7697 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 12:02:26 +02:00
terminx
8141fbd692 Fix alpha blending bug when switching from Polymost to software mode
git-svn-id: https://svn.eduke32.com/eduke32@7696 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:01:39 +02:00
terminx
26a266dfe5 Rename STRUCT_TRACKERS_ENABLED preprocessor definition to USE_STRUCT_TRACKERS
This may also fix a minor performance regression introduced in Polymer sometime after we switched to building as C++, caused by confusion between STRUCT_TRACKERS_ENABLED and UNTRACKED_STRUCTS. UNTRACKED_STRUCTS is now named UNTRACT_STRUCTS__ to dissuade use outside of buildtypes.h.

git-svn-id: https://svn.eduke32.com/eduke32@7695 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
2019-09-20 12:01:36 +02:00
terminx
9d7e5d9970 Rename vec2s_t to vec2_16_t
git-svn-id: https://svn.eduke32.com/eduke32@7694 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 11:28:57 +02:00
hendricks266
ff204ff034 Fix macOS -Wdeprecated-declarations warnings
git-svn-id: https://svn.eduke32.com/eduke32@7688 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	.gitignore
2019-09-20 10:15:10 +02:00
hendricks266
ecf990253b Fix OOB access in polymost_spriteHasTranslucency
git-svn-id: https://svn.eduke32.com/eduke32@7686 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:37 +02:00
hendricks266
3598e79dc7 Fix OOB access in clipmove
git-svn-id: https://svn.eduke32.com/eduke32@7685 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:35 +02:00
pogokeen
f92ec7bb89 polymost.cpp: fix issue where GL_ALPHA_TEST could be enabled in certain instances when executing polymost_drawrooms() and better handle when we are drawing without a texture in polymost_drawpoly()
git-svn-id: https://svn.eduke32.com/eduke32@7682 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 10:14:28 +02:00
pogokeen
9b621c0ef2 Add GL debugging event annotations for Polymost functions
git-svn-id: https://svn.eduke32.com/eduke32@7681 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/mdsprite.cpp
#	source/build/src/polymost.cpp
2019-09-20 10:14:12 +02:00
hendricks266
d2609f07a9 Restore file loading
git-svn-id: https://svn.eduke32.com/eduke32@7679 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:05:34 +02:00
hendricks266
dd5f1338c5 Revert "Improve file loading"
This reverts commit bfc6b7589e.

git-svn-id: https://svn.eduke32.com/eduke32@7678 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:05:31 +02:00
terminx
91b9a605fa "horizon offset should not be affected by projection hack"
git-svn-id: https://svn.eduke32.com/eduke32@7675 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 10:05:22 +02:00
terminx
b0a4b6a1ee Convert loops using unsigned integers as iterators to use regular signed ints instead
https://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html

Doing this as cleanly as possible involved demoting several function parameters concerning object sizes and counts from size_t to int--I'm fine with this change as the functions in question are not actually capable of handling input with sizes larger than what can be stored in a signed 32-bit integer, making the use of size_t here misleading at best.

git-svn-id: https://svn.eduke32.com/eduke32@7673 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/tilepacker.cpp
2019-09-20 10:04:24 +02:00
Christoph Oelckers
61d2e31610 - fixed another bad merge 2019-09-20 09:44:58 +02:00
terminx
5e470e8a5b Neat Polymost y-shearing patch from Nuke.YKT
git-svn-id: https://svn.eduke32.com/eduke32@7656 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 09:43:17 +02:00
Christoph Oelckers
dcc3e2b94e - removed code duplication from last cherry-pick 2019-09-20 09:35:09 +02:00
terminx
410da8a085 Polymost shade table interpolation patch from Nuke.YKT
git-svn-id: https://svn.eduke32.com/eduke32@7650 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 09:32:22 +02:00
terminx
3db7512c69 Templatize bfirst_search_init() and bfirst_search_try() so they can be used with types other than int16_t
git-svn-id: https://svn.eduke32.com/eduke32@7629 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 09:20:14 +02:00
pogokeen
78d08b3ac2 engine.cpp: fix sprite sorting/adjustment issue introduced in r7612 that caused sprites with the same y value at the end of the sorted array to not be adjusted properly
git-svn-id: https://svn.eduke32.com/eduke32@7627 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:39 +02:00
pogokeen
fc636b53ca polymost.cpp: Fix issue where state would not be reset properly in polymost_drawmaskwall() when rendering translucent maskwalls with no texture
git-svn-id: https://svn.eduke32.com/eduke32@7626 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:29 +02:00
pogokeen
40737f44cc polymost.cpp: fix polymost_dorotatesprite() alpha test/blend issue introduced in r7619
git-svn-id: https://svn.eduke32.com/eduke32@7625 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:27 +02:00
pogokeen
775a0de6c1 polymost.cpp: fix issue where floors & ceilings with DAMETH_MASKPROPS were not being blended
git-svn-id: https://svn.eduke32.com/eduke32@7624 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:25 +02:00
Christoph Oelckers
0254bf82d3 - added NBlood source. 2019-09-20 00:42:45 +02:00
Christoph Oelckers
8074d8251e - can be compiled again but crashes. 2019-09-19 23:02:57 +02:00
Christoph Oelckers
dd7ce38cbb - adjustments for the Blood merge. 2019-09-19 22:26:44 +02:00
Christoph Oelckers
53335f20ec - Blood merge
# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/build.cpp
#	source/build/src/engine.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 22:06:49 +02:00
pogokeen
5865d96306 engine.cpp: fix bug in killsprite where sprites were not being removed properly after sorting changes
git-svn-id: https://svn.eduke32.com/eduke32@7623 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 15:03:05 +02:00
pogokeen
d2ebc8a29c Reduce state changes and fix translucent maskwall depth buffer issue
git-svn-id: https://svn.eduke32.com/eduke32@7619 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 15:01:13 +02:00
terminx
968ebdef84 Fix TROR clipping issue
git-svn-id: https://svn.eduke32.com/eduke32@7617 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 15:00:55 +02:00
pogokeen
2228af8658 Fix maskwall array indirection bug and two if conditional oversights from r7612
git-svn-id: https://svn.eduke32.com/eduke32@7615 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:58:14 +02:00
pogokeen
9534bb1578 polymost.cpp: switch from writing gl_FragColor to writing gl_FragData[0] in order to reduce VGPR usage on AMD cards
git-svn-id: https://svn.eduke32.com/eduke32@7613 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 14:58:09 +02:00
pogokeen
2765ebec87 Fix depth buffer issue causing translucent sprites to not render properly in Polymost.
Use polymost_spriteHasTranslucency() and polymost_maskWallHasTranslucency() to determine if a sprite has translucency.
Optimize sprite rendering when in Polymost by only sorting sprites with translucency.

git-svn-id: https://svn.eduke32.com/eduke32@7612 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 14:56:47 +02:00
terminx
61b3a65e79 Improve check_floor_curb()
This should fix several remaining clipping bugs.

git-svn-id: https://svn.eduke32.com/eduke32@7611 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:41 +02:00
terminx
12eb413f9c Fix SOS check in clipmove()
git-svn-id: https://svn.eduke32.com/eduke32@7610 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:40 +02:00
terminx
60ea578a8c Add support for returning the closest point in the sector to getsectordist()
git-svn-id: https://svn.eduke32.com/eduke32@7609 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:37 +02:00
terminx
8d85e8d934 Add new findwallbetweensectors() function and change sectoradjacent() to use it
git-svn-id: https://svn.eduke32.com/eduke32@7608 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:35 +02:00
terminx
e25a197f3e Piddly fart bullshit changes that don't really do anything
git-svn-id: https://svn.eduke32.com/eduke32@7606 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:31 +02:00
terminx
301ac48ccd Utilize the types added in the previous commit
This patch is a bit large.

git-svn-id: https://svn.eduke32.com/eduke32@7603 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/mdsprite.h
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 14:46:31 +02:00
terminx
ab857c4e8f This should fix updatesector/updatesectorz performance while retaining the benefits of breadth-first search
git-svn-id: https://svn.eduke32.com/eduke32@7601 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:06 +02:00
terminx
a89c260592 Add optional output parameter to getwalldist(), to return the coordinates of the closest point on the wall
git-svn-id: https://svn.eduke32.com/eduke32@7600 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:04 +02:00
terminx
879cb550a6 Whitespace
git-svn-id: https://svn.eduke32.com/eduke32@7598 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:02 +02:00
terminx
1fae340426 Fix a bunch of improperly defined bitmap arrays
git-svn-id: https://svn.eduke32.com/eduke32@7594 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-19 14:36:54 +02:00
terminx
a628b8d9f7 Add bounds checking for renderSetTarget()
I'm not aware of this problem actually occurring anywhere, but too many consecutive calls to renderSetTarget() without the appropriate calls to renderRestoreTarget() between them would overflow 5 different arrays.

git-svn-id: https://svn.eduke32.com/eduke32@7593 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:44 +02:00
terminx
80d77f64cf This version of equation() compiles into fewer instructions
git-svn-id: https://svn.eduke32.com/eduke32@7592 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:42 +02:00
terminx
413d68f1f8 Replace yax_getclosestpointonwall() with getclosestpointonwall_internal() and use it in both yax_walldist() and getwalldist()
This commit also adds a getsectordist() but we aren't using it anywhere yet.

git-svn-id: https://svn.eduke32.com/eduke32@7591 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:40 +02:00
terminx
ea826fb117 Move NEXTWALL and POINT2 macros into build.h
git-svn-id: https://svn.eduke32.com/eduke32@7590 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:30:26 +02:00
terminx
e59f8e3b71 Use FORCE_INLINE and CONSTEXPR where appropriate in the Q16 fixed point math library
git-svn-id: https://svn.eduke32.com/eduke32@7588 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj.filters
2019-09-19 14:30:22 +02:00
terminx
e5bd221746 auto/const/constexpr bullshit
git-svn-id: https://svn.eduke32.com/eduke32@7587 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:49 +02:00
terminx
f9e866d32d Rename clipwalldist() to getwalldist() and move both it and sectoradjacent() to engine.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7586 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:48 +02:00
terminx
bb517b73e3 clip.cpp usectortype cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7585 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:45 +02:00
terminx
d04c4203c5 Fix a really stupid bug in r7574
git-svn-id: https://svn.eduke32.com/eduke32@7584 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:43 +02:00
terminx
5a814eb261 Make getceilzofslopeptr/getflorzofslopeptr/getzsofslopeptr not invoke the structure trackers
git-svn-id: https://svn.eduke32.com/eduke32@7583 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:41 +02:00
terminx
b46bc73322 Add a distance check to clipupdatesector() to prevent traversing through portals that are outside the wall distance passed to clipmove()
git-svn-id: https://svn.eduke32.com/eduke32@7582 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:40 +02:00
terminx
76d7fec2ff Expose yax_getclosestpointonwall() for use outside of engine.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7581 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:38 +02:00
terminx
e2be7183b4 Fix addclipsect() accidentally being nested under #ifdef HAVE_CLIPSHAPE_FEATURE
git-svn-id: https://svn.eduke32.com/eduke32@7580 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:36 +02:00
terminx
a32597464f Use uwalltype in inside() to avoid invoking the struct trackers
git-svn-id: https://svn.eduke32.com/eduke32@7578 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:32 +02:00
terminx
bcf8ae4d84 Revert "Clean up clip.cpp struct casting including but not limited to r7466 changes"
git-svn-id: https://svn.eduke32.com/eduke32@7577 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:30 +02:00
hendricks266
f96e1c8e24 Clean up clip.cpp struct casting including but not limited to r7466 changes
git-svn-id: https://svn.eduke32.com/eduke32@7576 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:29 +02:00
hendricks266
cd499b2089 Fix clipshape regression in r7466
git-svn-id: https://svn.eduke32.com/eduke32@7575 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:27 +02:00
terminx
9af816af52 Replace manual search of clipsectorlist[] in clipmove() and friends with a bitmap
git-svn-id: https://svn.eduke32.com/eduke32@7574 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:25 +02:00
terminx
74944c9ed0 Fix clipupdatesector()
git-svn-id: https://svn.eduke32.com/eduke32@7573 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:23 +02:00
terminx
ad59875fa3 Improve warnings spewed by clipmove() when attempting to consider too many things for clipping
git-svn-id: https://svn.eduke32.com/eduke32@7572 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:21 +02:00
terminx
8a68bffdb0 Clean up clip.h and declare a bunch of stuff in clip.cpp static
git-svn-id: https://svn.eduke32.com/eduke32@7571 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:19 +02:00
terminx
c754ac6e62 Limit lastwall() to 'numwalls' iterations instead of MAXWALLS
git-svn-id: https://svn.eduke32.com/eduke32@7569 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:15 +02:00
terminx
c8eb1d0368 Simplify conditions in bfirst_search_try()
git-svn-id: https://svn.eduke32.com/eduke32@7568 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:14 +02:00
terminx
b7d06c0bd8 clipmove/pushmove parameter const correctness
git-svn-id: https://svn.eduke32.com/eduke32@7567 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:12 +02:00
hendricks266
0d277a6210 Fix newly exposed -Wtautological-constant-out-of-range-compare in kplib
git-svn-id: https://svn.eduke32.com/eduke32@7558 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:31 +02:00
pogokeen
71847ec0f1 polymost.cpp: fix fragment shader issue where fullbrights in a texture could affect rendering when u_useColorOnly was enabled
git-svn-id: https://svn.eduke32.com/eduke32@7552 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:23 +02:00
terminx
030f0b7013 Fix crash when passing updatesectorz() an invalid sector number > numsectors and < MAXSECTORS
git-svn-id: https://svn.eduke32.com/eduke32@7549 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:53 +02:00
terminx
7abfcd28be Add clipupdatesector(), a special version of updatesector() that only searches and returns results that are already in clipsectorlist[]
git-svn-id: https://svn.eduke32.com/eduke32@7546 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:47 +02:00
terminx
52ccd82c17 Fucking tabs
git-svn-id: https://svn.eduke32.com/eduke32@7544 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:42 +02:00
hendricks266
2081eff083 Patch from Nuke.YKT to fix TROR rendering in mirrors in Polymost
Includes "Fix screen tilt regression on mirror rendering"

git-svn-id: https://svn.eduke32.com/eduke32@7493 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:42 +02:00
hendricks266
eb5a90b1ef Patch from Nuke.YKT to fix a TROR in Polymost issue
Report by oasiz: It only occurs when you try to sandwich surfaces and kind of punch through. It seems similar to the kind of behavior that the pre-TROR fixes did (where you had to stand on the TROR sector for things to work). This seems to work if the weird wall is punching IN on your sector but not OUT to another.

git-svn-id: https://svn.eduke32.com/eduke32@7492 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:40 +02:00
terminx
fd5ee7c561 Fix dumbass problem with r7463 that screwed up projectiles
git-svn-id: https://svn.eduke32.com/eduke32@7490 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:35 +02:00
terminx
303d0048ea We probably don't want to be bailing out here when handling a clipshape
git-svn-id: https://svn.eduke32.com/eduke32@7486 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:52:35 +02:00
terminx
0edbd45145 Retire the original naive updatesector() and updatesectorz() in favor of the breadth-first versions
git-svn-id: https://svn.eduke32.com/eduke32@7484 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
2019-09-19 13:52:32 +02:00
terminx
2591c69b44 Add updatesectorbreadthz(), change pushmove() to use updatesectorbreadth(), and modify updatesectorbreadth() to include the early inside_p() return regular updatesector() has
git-svn-id: https://svn.eduke32.com/eduke32@7482 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:55 +02:00
terminx
ae59a46c8b Use updatesectorbreadth() in clipmove()
git-svn-id: https://svn.eduke32.com/eduke32@7480 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:50 +02:00
terminx
8c6ddcc137 Minor cleanup for updatesectorbreadth()
git-svn-id: https://svn.eduke32.com/eduke32@7479 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:48 +02:00
terminx
631863ab67 const correctness for parameters passed to the updatesector family of functions
git-svn-id: https://svn.eduke32.com/eduke32@7478 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:46 +02:00
terminx
83999ee6e4 Minor cleanup of breadth-first search functions
git-svn-id: https://svn.eduke32.com/eduke32@7476 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:41 +02:00
pogokeen
9b0573f0f2 engine.cpp: lintersect(): use klabs() instead of abs()
git-svn-id: https://svn.eduke32.com/eduke32@7474 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:37 +02:00
pogokeen
0bfde1c4d3 Fix issue where swingdoors would refuse to open or close if an enemy was in front of the door in an overlapping but unrelated/disjoint sector
git-svn-id: https://svn.eduke32.com/eduke32@7473 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:35 +02:00
pogokeen
f7f62c4466 engine.cpp: lintersect(): fix integer overflow and negative case issue
git-svn-id: https://svn.eduke32.com/eduke32@7472 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:33 +02:00
pogokeen
a82eb1d6fe Re-introduce earlier lintersect() work that was reverted.
engine.cpp/.h: clean up & fix lintersect().  Additionally, add support for finding intersections of collinear line segments.

This reverts r7290.

git-svn-id: https://svn.eduke32.com/eduke32@7471 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:32 +02:00
terminx
1ea1f525d9 Fix editor clipping issue
git-svn-id: https://svn.eduke32.com/eduke32@7467 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:24:23 +02:00
terminx
25236d3d74 usectortype/uwalltype cleanup in clip.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7466 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:24:17 +02:00
terminx
8cbada19cf Fix crash in editor tile selector
git-svn-id: https://svn.eduke32.com/eduke32@7465 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:24:10 +02:00
terminx
c2e0000b11 Add bounds checking for populating clipsectorlist[], use preprocessor labels for sprite cstats
git-svn-id: https://svn.eduke32.com/eduke32@7464 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:24:04 +02:00
terminx
393e97beec Partially refactor clipmove()
git-svn-id: https://svn.eduke32.com/eduke32@7463 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:23:59 +02:00
terminx
ceaaaf9c0d Reduce MAXCLIPNUM to 2048 again and introduce MAXCLIPSECTORS, with a value of 1024
git-svn-id: https://svn.eduke32.com/eduke32@7459 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:23:36 +02:00
terminx
ddd1d34973 clipmove() improvements
This reverts some of the previous clipmove() changes in favor of implementing explicit rejection of movement in cases where clipping has somehow failed.

git-svn-id: https://svn.eduke32.com/eduke32@7457 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:27:27 +02:00
terminx
decce5bc70 Make updatesectorz() fall back to updatesector() in cases where it would have returned -1
Note that both functions will still return -1 when x or y coordinates are out of bounds.

git-svn-id: https://svn.eduke32.com/eduke32@7456 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:27:25 +02:00
terminx
c8bd436cf8 Additional TROR patch from Nuke
git-svn-id: https://svn.eduke32.com/eduke32@7452 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:25:52 +02:00
terminx
66734e34bf Further clipmove() improvements to better deal with sector-over-sector
There's still something wrong here, but this at least fixes Duke3D E1L2.

git-svn-id: https://svn.eduke32.com/eduke32@7450 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:24:16 +02:00
terminx
5986dbf6e1 Fix crash in situations where rendering a scene would overrun all of the MAXBUNCHES sized arrays in both classic and polymost
git-svn-id: https://svn.eduke32.com/eduke32@7447 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:24:11 +02:00
terminx
3b271fb7bb Fix issue where controls intentionally bound to no keys would be reset to default at startup
git-svn-id: https://svn.eduke32.com/eduke32@7442 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:14:50 +02:00
terminx
fb36b256de Fix "spriteshadow" on voxels in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7441 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:14:48 +02:00
terminx
37a8c98c2c Replace some individual assignments of structure members with whole structure assignments
git-svn-id: https://svn.eduke32.com/eduke32@7434 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 12:12:41 +02:00
terminx
dba335c7dd Adjust projection matrix depending on SCISDIST
git-svn-id: https://svn.eduke32.com/eduke32@7432 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:09:13 +02:00
terminx
3220b1e4f9 Hoist comparison of const variable outside of loop in getzrange()
git-svn-id: https://svn.eduke32.com/eduke32@7427 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:06:38 +02:00
Christoph Oelckers
95c9dba9df - deactivated the no-fog-calculation checks again.
The high level code should have no business deciding that - this must later be done in the backend.
Performance-wise this is really a non-issue so in the end this constitutes an optimization that only creates mess but np gain.
The commit was only cherry-picked for the remaining changes.
2019-09-19 12:04:06 +02:00
terminx
8a6ce26b57 Don't bother with fog calculations for things without hightile replacements
git-svn-id: https://svn.eduke32.com/eduke32@7424 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
2019-09-19 11:56:04 +02:00
terminx
35efbccfa3 Fix r_polygonmode cvar
git-svn-id: https://svn.eduke32.com/eduke32@7422 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 11:48:58 +02:00
terminx
bf7ee94a2d Clean up polymost.cpp includes
git-svn-id: https://svn.eduke32.com/eduke32@7421 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 11:48:56 +02:00
Christoph Oelckers
e1e8b835db - make it compile again. 2019-09-19 11:43:11 +02:00
Christoph Oelckers
8f6f979fa5 - do not force the tile shades mode for now without re_adding the removed variable.
Much of this needs to be abstracted out but until that part is done this still needs to work properly.
2019-09-19 11:02:05 +02:00
terminx
a5965e2562 Remove r_usetileshades--GLOBAL_NO_GL_TILESHADES flag for DN64 not affected
This also locks the texture filtering options in the menu behind ifdef guards until they're fixed.

git-svn-id: https://svn.eduke32.com/eduke32@7420 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/duke3d/src/menus.cpp
2019-09-19 10:50:18 +02:00
Christoph Oelckers
412f3a0b32 - proper npot checks for RedNukem's sky calculations. 2019-09-19 00:37:12 +02:00
Christoph Oelckers
51dc82b6a6 - merged in the changes RedNukem made to the Build code. 2019-09-19 00:19:02 +02:00
Christoph Oelckers
3a90d21661 - consolidated the redundant texture coordinates.
They were all the same, so no point recalculating them, the copies weren't even correct.
2019-09-19 00:06:12 +02:00
Christoph Oelckers
30dac6be74 - deleted the tilepacker. 2019-09-18 22:16:56 +02:00
Christoph Oelckers
e0f823a492 - refactored texture setup to use an intermediate layer. 2019-09-18 22:16:15 +02:00
Christoph Oelckers
155f093bd5 - stuff 2019-09-17 20:57:45 +02:00
Christoph Oelckers
13832eebc2 - removed assembly files. 2019-09-17 20:22:12 +02:00
Christoph Oelckers
1ad3b39e70 - removed the editor code. 2019-09-17 20:19:11 +02:00
Christoph Oelckers
d63cf04e06 - removed the compressed texture cache.
This is a pointless relic from the past and makes zero sense with modern graphics hardware.
2019-09-17 20:18:18 +02:00
Christoph Oelckers
b1763a8f4a - hooked up the texture management.
Not in active use yet!
2019-09-17 19:03:42 +02:00
Christoph Oelckers
cb2e2cc222 - count correctly. 2019-09-16 22:14:44 +02:00
Christoph Oelckers
0359602159 - some missed parts. 2019-09-16 21:27:07 +02:00
Christoph Oelckers
6536d910b3 - all drawing is being routed through the interface layer, all vertex buffers are gone.
No big loss here, none of them made much sense performance wise.
2019-09-16 21:08:42 +02:00
Christoph Oelckers
318009fd69 - added a centralized drawer and converted the main geometry drawer to use it. 2019-09-16 19:35:04 +02:00
Christoph Oelckers
2a20eb9287 - deleted vertex buffer drawing and used immediate mode instead.
This served no benefit and made cleanup harder than necessary.
2019-09-16 18:12:16 +02:00