Commit graph

189 commits

Author SHA1 Message Date
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
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
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
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
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
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
Christoph Oelckers
8074d8251e - can be compiled again but crashes. 2019-09-19 23:02:57 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Christoph Oelckers
51dc82b6a6 - merged in the changes RedNukem made to the Build code. 2019-09-19 00:19:02 +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
terminx
ff8e54432b "This adds masked texture rendering support for slopes in classic renderer"
git-svn-id: https://svn.eduke32.com/eduke32@7418 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:09:03 +00:00
terminx
7ccbd22013 Move some clipping related stuff out of engine.cpp and into clip.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7417 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:59 +00:00
terminx
25cd73d99a Patch from Nuke.YKT to use the shade tables for distance shading in Polymost
This makes the shading in Polymost more or less 1:1 with classic mode.

git-svn-id: https://svn.eduke32.com/eduke32@7412 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:39 +00:00
terminx
798eaeb980 Allow passing a null pointer to spriteheightofsptr() for the height return value
git-svn-id: https://svn.eduke32.com/eduke32@7405 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:12 +00:00
terminx
f1ea04e7da Another Polymost TROR patch from Nuke.YKT
This one should bring Polymost TROR into parity with classic mode.

git-svn-id: https://svn.eduke32.com/eduke32@7400 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:07:53 +00:00
terminx
e9d53fce0a Optimize nonpow2_mhline and nonpow2_thline by replacing divide operation by cheaper multiplication
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7362 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:05 +00:00
hendricks266
7414f29348 Add buildvfs, abstraction layer for file I/O.
Currently it passes calls through to the system libraries as before.

Also adds an incomplete implementation on PhysFS.

git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
terminx
8433d133b4 Patch from Fox:
Add a FOV option in the menu. Range from 75 to 120 degrees (at 4:3 resolution), default is 90.

New userdef "fov". Equals the FOV in 360 degrees.

Update Polymost projection hack, so it compensates for the FOV or height of the game view.

Fix FOV in Polymer when the full status bar is visible. Now the FOV depends of the width of the game view instead of the height.

git-svn-id: https://svn.eduke32.com/eduke32@7329 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-18 22:02:33 +00:00
terminx
975126edf4 Fix a couple minor issues with 90 degree wall texture rotation
git-svn-id: https://svn.eduke32.com/eduke32@7325 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-02 23:24:32 +00:00
terminx
8e50f47aa4 rotatesprite hack from Fox
git-svn-id: https://svn.eduke32.com/eduke32@7321 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-30 00:19:56 +00:00
terminx
ea86e5520b Revert "engine.cpp/.h: clean up & fix lintersect(). Additionally, add support for finding intersections of collinear line segments."
This reverts r6886.

git-svn-id: https://svn.eduke32.com/eduke32@7290 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:40:31 +00:00
seventyfive
87cf4495bf - Packet code implementation (merge from private c/s repo), world updates are now synced through snapshots. See tag SVN_SyncPoint_Dec2018 on master of the other repo.
- "Scratch pad" sprites implementation, to avoid desyncs in sprite indexes, clients will insert temporary sprites which are cleared out when they receive the next snapshot from the server.
- Patches from Striker which fix player stomping frag counts, the accept button when hosting a game through the menu, and a "noffire" command line parameter.
- Patches from NY00123: t_data sync optimizations to improve some jittery behavior on the client side.

git-svn-id: https://svn.eduke32.com/eduke32@7242 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-08 00:40:39 +00:00
terminx
252fb58321 Fix oversight with wall texture rotation on tile 0
git-svn-id: https://svn.eduke32.com/eduke32@7240 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 21:17:59 +00:00
terminx
4861d1fc3d WIP wall texture rotation bit
git-svn-id: https://svn.eduke32.com/eduke32@7226 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:48 +00:00
terminx
6618883d7e Fix crash when attempting to load a corrupt map
git-svn-id: https://svn.eduke32.com/eduke32@7206 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:50 +00:00
terminx
e513e1ceae Cleanup includes
git-svn-id: https://svn.eduke32.com/eduke32@7186 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:09:48 +00:00
terminx
5164ab4a25 More control/input cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7181 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:08:53 +00:00
terminx
336a4650d5 This is supposed to fix some errors with HIGH_PRECISION_SPRITE reported by a static analyzer, wherein 32-bit values were shifted and truncated as 32-bit before being widened to a 64-bit type, which didn't seem like the intended behavior. This is the commit to look at if anything is suddenly fucked up in the classic software renderer.
git-svn-id: https://svn.eduke32.com/eduke32@7167 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:25 +00:00
terminx
a6e60e9723 Move pow2char and pow2long to build.h and make them constexpr
git-svn-id: https://svn.eduke32.com/eduke32@7146 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:05:26 +00:00
hendricks266
de5d358d32 Refresh BUILDLIC copyright headers
git-svn-id: https://svn.eduke32.com/eduke32@7139 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-05 07:28:01 +00:00
terminx
3b782aba60 Add CSTAT_SPRITE_ALIGNMENT_MASK. It's identical to CSTAT_SPRITE_ALIGNMENT_SLAB, but should be used in cases where you're checking either CSTAT_SPRITE_ALIGNMENT_WALL or CSTAT_SPRITE_ALIGNMENT_FLOOR rather than checking for a slab (voxel).
git-svn-id: https://svn.eduke32.com/eduke32@7129 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:32 +00:00
terminx
a6e7f601d3 Fix HIGH_PRECISION_SPRITE, broken when switching to std::min and std::max.
git-svn-id: https://svn.eduke32.com/eduke32@7111 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:31:40 +00:00
terminx
9079beadb4 Remove some dead statements, useless assigments, etc
git-svn-id: https://svn.eduke32.com/eduke32@7086 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:29:38 +00:00
terminx
1f8b23152e Replace remaining instances of regular malloc/calloc/realloc/strdup with our memory error handler versions
git-svn-id: https://svn.eduke32.com/eduke32@7079 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:28:56 +00:00
terminx
9613bbac33 Use std::min and std::max instead of min and max macros.
git-svn-id: https://svn.eduke32.com/eduke32@7078 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:54 +00:00
terminx
2e2731c119 Same sort of thing as the previous commits, but for the engine. Forward declaration cleanup and constification.
git-svn-id: https://svn.eduke32.com/eduke32@7072 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:09 +00:00
pogokeen
4b89c095e2 engine.cpp: fix crash when calling setrendermode 3 where PolymostProcessVoxels would be called before Polymost is initialized.
PolymostProcessVoxels would call videoNextPage during processing which would attempt to render the OSD and lead to a segfault due to Polymost not being properly initialized.

git-svn-id: https://svn.eduke32.com/eduke32@7067 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 21:04:42 +00:00
terminx
bcb1374391 Static analyzer says this condition is never true
git-svn-id: https://svn.eduke32.com/eduke32@7057 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:14:51 +00:00
terminx
15008d7aec Revert r7017. I misread the code mismeasured the result.
git-svn-id: https://svn.eduke32.com/eduke32@7056 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:14:46 +00:00
terminx
eb08f1443e Pass vec2_ts to get_screen_coords() by reference instead of by value
git-svn-id: https://svn.eduke32.com/eduke32@7027 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:22:17 +00:00
terminx
4f590f59c1 Fix potential OOB spriteext[] access when checking SPREXT_NOTMD to determine whether or not to render a sprite's model, if available
git-svn-id: https://svn.eduke32.com/eduke32@7023 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:58 +00:00
terminx
870f1c4dab Oh look, the first 3 arguments passed to parascan() are completely useless
git-svn-id: https://svn.eduke32.com/eduke32@7022 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:53 +00:00
terminx
12a77176e8 Fix overcomputation in the classic renderer due to a bug caused by a previous optimization attempt
git-svn-id: https://svn.eduke32.com/eduke32@7017 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:29 +00:00
pogokeen
1df7127609 Support software renderer upscaling engine-side in sdlayer and sdlayer12 with various scaling factors (beyond just pixel doubling).
When glsurface is available, use GL to upscale the render buffer.
Additionally, fix build issues with sdlayer12 introduced by GLAD changes (r6656).

git-svn-id: https://svn.eduke32.com/eduke32@6939 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-14 21:36:44 +00:00
pogokeen
1b932fddaf sdlayer.cpp: Don't destroy window resouces if switching between software rendering on glsurface and Polymost/Polymer
git-svn-id: https://svn.eduke32.com/eduke32@6938 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-14 21:36:34 +00:00
pogokeen
a0faeaf8f6 Revert a number of changes from r6929 and r6930 that are no longer necessary.
Fix root causes of issues causing crash and black screen in Mapster32 when switching back and forth between 3D & 2D modes

git-svn-id: https://svn.eduke32.com/eduke32@6931 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-25 14:53:42 +00:00
terminx
bcb7815118 Fix crash in Mapster32 when switching from GL 3d mode to 2d mode.
git-svn-id: https://svn.eduke32.com/eduke32@6929 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-24 00:55:23 +00:00
pogokeen
9d243606d0 When OpenGL is available, prefer using the new glsurface to blit the classic renderer's 8-bit buffer to the screen.
git-svn-id: https://svn.eduke32.com/eduke32@6919 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-13 19:15:16 +00:00
pogokeen
8bf9ad1c31 engine.cpp: fix issue introduced in r6905 where voxels with fractional scaling would not be handled correctly in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@6907 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-30 12:01:42 +00:00
pogokeen
db1220cd11 engine.cpp: fix issue with voxmodel_t voxels not having their scale set properly due to defs being processed before PolymostProcessVoxels()
git-svn-id: https://svn.eduke32.com/eduke32@6905 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 15:04:56 +00:00
pogokeen
5ff4e22eb9 engine.cpp: fix classicDrawVoxel() positioning bugs by:
+avoid adding the pivot's z offset again after it was already added in classicDrawSprite()
+offset the voxel object by half of the voxel object's z size

git-svn-id: https://svn.eduke32.com/eduke32@6904 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 15:04:52 +00:00
pogokeen
d6d078114c engine.cpp/.h: clean up & fix lintersect(). Additionally, add support for finding intersections of collinear line segments.
git-svn-id: https://svn.eduke32.com/eduke32@6886 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-15 16:45:34 +00:00
terminx
87d19d5cde More function name shit
git-svn-id: https://svn.eduke32.com/eduke32@6832 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:04:00 +00:00
terminx
19c43b84b3 Function names
git-svn-id: https://svn.eduke32.com/eduke32@6831 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:47 +00:00
terminx
e5bcc1cf81 More function name cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6830 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:30 +00:00
terminx
1fd209444f Continuing the quest for clearer function names
git-svn-id: https://svn.eduke32.com/eduke32@6829 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:12 +00:00
terminx
0340e3cc0f Engine function name cleanup round 2
git-svn-id: https://svn.eduke32.com/eduke32@6828 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:51 +00:00
terminx
ee63d2c070 Beginnings of baselayer.cpp/.h refactor. This is 99.9% renames.
git-svn-id: https://svn.eduke32.com/eduke32@6827 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:31 +00:00
terminx
4b5b6de13c Remove useless switch/case setup in nextpage()
git-svn-id: https://svn.eduke32.com/eduke32@6813 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-06 01:42:47 +00:00
terminx
1b2ab0edad cache1d changes, also implements lz4compressionlevel cvar to control the speed vs side trade-off for savegame compression
git-svn-id: https://svn.eduke32.com/eduke32@6807 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-05 04:39:30 +00:00