terminx
940df04eb6
Make cache1d try a little harder to find a suitable block before bailing with "CACHE SPACE ALL LOCKED UP!"
...
git-svn-id: https://svn.eduke32.com/eduke32@7764 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:34 +02:00
terminx
53000d1f31
Make cacheAgeEntries() do a more consistent amount of work per frame
...
git-svn-id: https://svn.eduke32.com/eduke32@7763 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:32 +02:00
terminx
6f54235b7a
Fix edge case in clipupdatesector()
...
git-svn-id: https://svn.eduke32.com/eduke32@7760 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:26 +02:00
terminx
82c37b78cc
Prevent uninitialized access to hitwalls[] in clipmove()
...
git-svn-id: https://svn.eduke32.com/eduke32@7759 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:24 +02:00
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
f51b2a2cb3
Gump redux
...
git-svn-id: https://svn.eduke32.com/eduke32@7747 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:16:06 +02:00
terminx
3269875e7b
Fix builds on platforms other than win32--oops
...
git-svn-id: https://svn.eduke32.com/eduke32@7746 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/compat.h
2019-09-20 14:16:03 +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
b7f7c5fdc1
libdivide fixup
...
git-svn-id: https://svn.eduke32.com/eduke32@7725 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:17:34 +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
Christoph Oelckers
1c3487444c
- some safety net.
2019-09-20 13:17:19 +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
1e0dd0e534
Templatized linked list functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7720 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:08:34 +02:00
terminx
00222e05f6
Use remove_pointer_t instead of regular std::remove_pointer and add a definition for it for CXX11 builds
...
git-svn-id: https://svn.eduke32.com/eduke32@7719 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:46 +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
d3f93fc00f
EDuke32-specific libdivide customizations
...
git-svn-id: https://svn.eduke32.com/eduke32@7716 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:38 +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
ff4449638e
Use #if DEBUGGINGAIDS>=2 for the assertions in the structure trackers
...
git-svn-id: https://svn.eduke32.com/eduke32@7711 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:27 +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
7f32add116
It looks like this works in MSVC
...
git-svn-id: https://svn.eduke32.com/eduke32@7706 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:14 +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
4ff7ec4a45
Minor pragmas.h cleanups
...
git-svn-id: https://svn.eduke32.com/eduke32@7700 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:33 +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
Christoph Oelckers
f8b17e98f3
- sadly this crap is really needed... :(
2019-09-20 11:26:37 +02:00
terminx
bd80cec462
Add anonymous union between separate coordinate variables and vec2/3_t in basic map structs
...
git-svn-id: https://svn.eduke32.com/eduke32@7693 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/buildtypes.h
2019-09-20 10:42:09 +02:00
terminx
1a4afe09a8
Add missing ifdef
...
git-svn-id: https://svn.eduke32.com/eduke32@7692 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:21 +02:00
terminx
5be379c6b0
This benchmarks as just the tiniest bit faster on my machine
...
git-svn-id: https://svn.eduke32.com/eduke32@7691 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:19 +02:00
terminx
0556fe1738
Simplify map structure tracker overloads
...
Due to less branching, this is actually faster than trying to be clever.
git-svn-id: https://svn.eduke32.com/eduke32@7690 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:17 +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
terminx
9aa1030a09
Promote display_mirror
from char to int32_t and remove GAMEVAR_UINT8PTR handling since nothing else was using it
...
git-svn-id: https://svn.eduke32.com/eduke32@7662 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:31 +02:00
terminx
0becd69e91
Tweak EDUKE32_PRE_XALLOC thing used when DEBUGGINGAIDS is defined
...
git-svn-id: https://svn.eduke32.com/eduke32@7661 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:29 +02:00
terminx
badf4eab6d
Add EDUKE32_PREDICT_TRUE to our *alloc macros and flip the condition around so the true branch is first
...
git-svn-id: https://svn.eduke32.com/eduke32@7660 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:27 +02:00
terminx
6395909290
Add preprocessor check for __OPTIMIZE__ to EDUKE32_PREDICT_TRUE and EDUKE32_PREDICT_FALSE
...
git-svn-id: https://svn.eduke32.com/eduke32@7659 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01: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
terminx
0ff1188b59
Rename Gv_GetVarX() to Gv_GetVar() (overloaded)
...
git-svn-id: https://svn.eduke32.com/eduke32@7652 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:38 +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
be86eb779b
This is a few less instructions
...
git-svn-id: https://svn.eduke32.com/eduke32@7618 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 15:00:57 +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
5948513d76
Introduce a few "new" types for convenience when dealing with pointers to sprites, walls, and sectors that bypass the StructTracker stuff
...
git-svn-id: https://svn.eduke32.com/eduke32@7602 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:07 +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
5052addc67
Remove useless unused "sqr" function
...
git-svn-id: https://svn.eduke32.com/eduke32@7597 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:59 +02:00
terminx
2d01182ef0
Update libdivide.h with a couple of fixes for obscure problems from their git repo
...
git-svn-id: https://svn.eduke32.com/eduke32@7595 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:56 +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
51e5e41830
Remove obsolete "msinttypes" headers
...
git-svn-id: https://svn.eduke32.com/eduke32@7589 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:30:24 +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
7d0faa5752
Reduce MAXCLIPSECTORS to 512
...
git-svn-id: https://svn.eduke32.com/eduke32@7570 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:17 +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
0c7a7e1bd6
compat.h: Factor some repeated conditional_t statements into a new take_sign_t
...
git-svn-id: https://svn.eduke32.com/eduke32@7559 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:32 +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
hendricks266
fb0443db69
Replace #if CXXSTD >= 2011 || EDUKE32_MSVC_PREREQ(1800)
with #ifdef HAVE_CXX11_HEADERS
...
git-svn-id: https://svn.eduke32.com/eduke32@7557 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:29 +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
84c43dc99c
Fix warnings with TrackedType
...
git-svn-id: https://svn.eduke32.com/eduke32@7551 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:22 +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
664c1ed38e
Fix extern "C" error in kplib.h affecting the Build tools
...
git-svn-id: https://svn.eduke32.com/eduke32@7543 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:40 +02:00
hendricks266
c2921abe4a
SW: Address -Woverflow warnings resulting from the struct tracker templates being too restrictive
...
git-svn-id: https://svn.eduke32.com/eduke32@7526 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:59 +02:00
hendricks266
8b3f6b55e3
Dummy functions for mmulti.h for now until OldMP's mmulti is ported
...
Patch from Striker.
git-svn-id: https://svn.eduke32.com/eduke32@7517 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:47 +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
terminx
146fa7e79e
Add simple bitmap manipulation functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7475 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:39 +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