Commit graph

732 commits

Author SHA1 Message Date
hendricks266
284af9f5d9 Fix RENDERTYPE=WIN build
git-svn-id: https://svn.eduke32.com/eduke32@7960 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:04:43 +02:00
hendricks266
01fa02e1c0 Make use of SDL2's Game Controller API.
Thanks to JonoF for his take on this.

git-svn-id: https://svn.eduke32.com/eduke32@7958 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:49 +02:00
hendricks266
56998c4840 Report 16-bit analog axis precision to the game instead of arbitrarily truncating it to ~14.3 bits.
git-svn-id: https://svn.eduke32.com/eduke32@7956 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:45 +02:00
terminx
2ef83e4a71 This can overflow
git-svn-id: https://svn.eduke32.com/eduke32@7949 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:31 +02:00
hendricks266
e7723efcf4 Fix skipping to the end of def blocks
git-svn-id: https://svn.eduke32.com/eduke32@7938 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:06 +02:00
terminx
41ff733fcd Happier try_facespr_intersect()
I'm prejudiced against 30-line functions with statements nested 5 levels deep.

git-svn-id: https://svn.eduke32.com/eduke32@7933 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:56 +02:00
hendricks266
67b7d2408b newgamechoices
git-svn-id: https://svn.eduke32.com/eduke32@7930 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/defs.cpp
2019-09-20 16:02:49 +02:00
pogokeen
284adb6ac6 Fix issue with indexed colour textures where in the case that tiles entered the texcache while !waloff[picnum] & were later (re)loaded, the earlier pth pointing to the tilesheet containing the blank tile would never be properly replaced with an updated gl texture.
git-svn-id: https://svn.eduke32.com/eduke32@7929 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 16:01:54 +02:00
hendricks266
ea79d74953 Revert r7908 because it introduces a race on dabuf
git-svn-id: https://svn.eduke32.com/eduke32@7928 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:27 +02:00
terminx
0d431a390f Reverse the order video modes are sorted in
git-svn-id: https://svn.eduke32.com/eduke32@7922 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:14 +02:00
terminx
32cd1ae4dd Tweak the fatal engine initialization error and game already running dialog boxes a bit
git-svn-id: https://svn.eduke32.com/eduke32@7921 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 16:01:11 +02:00
terminx
b8f668aa9b Polymost projection changes to correct the perspective in widescreen and ultrawide resolutions.
Patch from Nuke.YKT and Fox.

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

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/polymost.cpp
2019-09-20 15:48:55 +02:00
terminx
40e54fdbbb Tweak how the semaphore used to detect multiple running copies of the game is utilized
git-svn-id: https://svn.eduke32.com/eduke32@7912 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:43 +02:00
terminx
c1aff49e4c Improve usage of initprintf mutex
git-svn-id: https://svn.eduke32.com/eduke32@7908 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:35 +02:00
terminx
064516c050 Re-implement our mutex_lock() family of functions using SDL's atomic spinlocks
git-svn-id: https://svn.eduke32.com/eduke32@7907 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:32 +02:00
terminx
9021b885d6 Eliminate pos_as_vec2 from anything that had it
git-svn-id: https://svn.eduke32.com/eduke32@7905 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:46:28 +02:00
terminx
81882aa1a3 Fix issue clipping against sloped ceilings
git-svn-id: https://svn.eduke32.com/eduke32@7903 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:21 +02:00
pogokeen
4d22a44a5d tiles.cpp: backup & restore picsiz, walock, & waloff alongside other per tile arrays in artClearMapArt() and artSetupMapArt()
This fixes an issue with viewscreens as tiles that are setup game-side after a map is loaded could have their sizes reset to 0 while not being properly cleared from walock/waloff

git-svn-id: https://svn.eduke32.com/eduke32@7892 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:58 +02:00
pogokeen
5fad944ed1 engine.cpp: make renderSetTarget() more robust so that passing an xsiz or ysiz <= 0 is not accepted and can't cause a segmentation fault
git-svn-id: https://svn.eduke32.com/eduke32@7890 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:55 +02:00
pogokeen
a844fd4b13 polymost.cpp: Fix issue where tiles whose dimensions had grown would not have their sizes updated in GL and could fail to update their texture data
git-svn-id: https://svn.eduke32.com/eduke32@7888 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 15:42:29 +02:00
terminx
6931d448ff Oops
git-svn-id: https://svn.eduke32.com/eduke32@7884 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:30 +02:00
terminx
7553bb043f Skip drawing invalid polygons in polymost_drawpoly()
git-svn-id: https://svn.eduke32.com/eduke32@7880 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:18 +02:00
terminx
95598e08f9 getwalldist() tweak
git-svn-id: https://svn.eduke32.com/eduke32@7878 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:14 +02:00
terminx
9f9a158946 Replace runtime pow2 calculations with pow2char LUT usage
I don't know that this is any faster, but there's something to be said for standardization and consistency. I will be making most of this stuff use bitmap_set/test/clear() soon.

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

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:34:08 +02:00
terminx
2a3c80f95d Fix issue with sounds being expired from cache
git-svn-id: https://svn.eduke32.com/eduke32@7874 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:33:05 +02:00
terminx
1a0c56f0f1 This adds back in the engine's old automapping feature
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.

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

# Conflicts:
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:32:13 +02:00
terminx
1a83ec15e4 Fix silly branching logic in engineLoadBoard()
git-svn-id: https://svn.eduke32.com/eduke32@7871 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:38 +02:00
terminx
c7e403619b Don't blow away wall cstat bit 14 for use as a temp flag in the editor
Patch from Nuke.YKT.

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

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:29:35 +02:00
terminx
a949665f26 Work around an issue with far plane clipping with voxels without mipmaps in software mode
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7869 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:20 +02:00
terminx
9335b339b0 Emulate slope overflow in Polymost in order to match the rest of the engine's slope algorithms
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7868 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:19 +02:00
terminx
0f4ccaf970 Hopefully work around more Polymost polygon leakages
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7867 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:17 +02:00
terminx
acc0b527a9 Cache the distrecip[] table
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7866 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:15 +02:00
terminx
0091acc858 "Another dumb polymost optimization. Probably worth few fps in heavy scenes"
Patch from Nuke.YKT

git-svn-id: https://svn.eduke32.com/eduke32@7865 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:12 +02:00
terminx
0652b5b6d6 Make ksgn() return int instead of int32_t
git-svn-id: https://svn.eduke32.com/eduke32@7864 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:09 +02:00
terminx
26272f6755 if 0 out our klabs() function and just define it as abs()
The compiler generates much better code for this now.

git-svn-id: https://svn.eduke32.com/eduke32@7863 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:06 +02:00
terminx
752cf77887 Untabify a couple of headers
git-svn-id: https://svn.eduke32.com/eduke32@7862 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:05 +02:00
terminx
f84e161e52 Wahhh, I'm MSVC and I cry about applying unary negation to a boolean
git-svn-id: https://svn.eduke32.com/eduke32@7859 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:59 +02:00
terminx
751b734795 Fix issue rendering TROR when the camera's z coordinate is right on the portal
git-svn-id: https://svn.eduke32.com/eduke32@7858 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:57 +02:00
terminx
6e4951bdb6 Another clipping fix
git-svn-id: https://svn.eduke32.com/eduke32@7857 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:53 +02:00
pogokeen
a0231cf90c polymost_scansector(): avoid using a culling method not designed for voxels when handling 1-sided wall aligned sprites that have voxel replacements
git-svn-id: https://svn.eduke32.com/eduke32@7854 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:45 +02:00
pogokeen
83e863422a Fix mixing offscreenrendering (render targets) and mirrors. Don't allow recursing beyond 1 level of mirroring through multiple levels of render targets.
git-svn-id: https://svn.eduke32.com/eduke32@7853 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:42 +02:00
pogokeen
5377b128a9 Fix rendering skyboxes to a tile by altering renderSetTarget() & renderRestoreTarget() to set & reset xdim & ydim so that G_ShowView() can render while a render target is set,
and additionally modifying G_SetupCamTile() to call EVENT_DISPLAYROOMSCAMERATILE after calling renderSetTarget()

git-svn-id: https://svn.eduke32.com/eduke32@7852 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:41 +02:00
terminx
e0e517aaed Revise r7838 again
git-svn-id: https://svn.eduke32.com/eduke32@7847 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:22 +02:00
terminx
f3e4dd4463 Patch from Nuke.YKT to work around precision-based inaccuracy problems in Polymost TROR
git-svn-id: https://svn.eduke32.com/eduke32@7846 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:31 +02:00
terminx
1d14991acc Add MERGE_NODES macro for Polymost... this will be used in the following commit
git-svn-id: https://svn.eduke32.com/eduke32@7845 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:28 +02:00
terminx
ee92304087 Patch from Nuke.YKT to clip bunches to screen boundaries in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7844 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:24 +02:00
terminx
47fa1eccd4 Patch from Nuke.YKT to fix sloped floor and ceiling textures wiggling around in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7843 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 15:24:54 +02:00
terminx
a3b6d0e70b Revise r7838: one less dumbass typo
git-svn-id: https://svn.eduke32.com/eduke32@7842 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:57 +02:00
terminx
28c778c8a3 Automatic source file dependency generation for GNUmakefile
This automatically saves the dependencies used for a given object file during the first compilation, then uses the generated data for each subsequent compile to determine if the object needs to be rebuilt. Why? Because if I see one more warning about the C++ One Definition Rule, I'm going to fucking snap.

git-svn-id: https://svn.eduke32.com/eduke32@7839 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:50 +02:00
terminx
565383e1d2 Revise r7835: instead of not testing wall sprites, we'll just ignore the side blockers
git-svn-id: https://svn.eduke32.com/eduke32@7838 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:47 +02:00