Commit Graph

1994 Commits

Author SHA1 Message Date
terminx d404f010c9 Fix some undefined behavior
git-svn-id: https://svn.eduke32.com/eduke32@7950 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:33 +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
terminx 0ffc89fbb7 Remove dead declaration
git-svn-id: https://svn.eduke32.com/eduke32@7948 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:28 +02:00
hendricks266 c40a4b26ff Fix how analog axis values are used by the game code, part 2: aiming.
Mouse movement is no longer funneled through analog axis handling.

git-svn-id: https://svn.eduke32.com/eduke32@7947 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:27 +02:00
hendricks266 f1e67616a9 Fix how analog axis values are used by the game code, part 1: movement.
Turning and looking will require me to disentangle CONTROL_GetMouseDelta from the rest of CONTROL_PollDevices.

git-svn-id: https://svn.eduke32.com/eduke32@7946 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:24 +02:00
hendricks266 7338988b5e Fix mouse and joystick menu slider scales
git-svn-id: https://svn.eduke32.com/eduke32@7945 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:21 +02:00
hendricks266 618203489f Blank out old-style joystick defaults because they're irrelevant in 2019.
git-svn-id: https://svn.eduke32.com/eduke32@7944 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:19 +02:00
hendricks266 87c31bbdf5 Fix bugs with unbound mouse and joystick controls not saving properly.
git-svn-id: https://svn.eduke32.com/eduke32@7943 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:17 +02:00
hendricks266 47d8541cf3 Enable joysticks by default because better that than figuring out how to parse settings.cfg multiple times without breaking something.
git-svn-id: https://svn.eduke32.com/eduke32@7942 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:15 +02:00
pogokeen 5c11fc8889 sounds.cpp: fix infinite loop caused by removal of "else" in r7939
git-svn-id: https://svn.eduke32.com/eduke32@7941 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:12 +02:00
terminx 9ee310ce71 Fix sound issue
git-svn-id: https://svn.eduke32.com/eduke32@7940 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:10 +02:00
terminx ef7f4f8a60 Oops
git-svn-id: https://svn.eduke32.com/eduke32@7939 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:08 +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 36366c0c98 M-M-M-MUTEX MADNESS
git-svn-id: https://svn.eduke32.com/eduke32@7937 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:04 +02:00
terminx 6fddd30eaa Remove lockclock from mapstates
git-svn-id: https://svn.eduke32.com/eduke32@7936 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:02 +02:00
terminx 564a68f1a7 Improve frame limiter logic
git-svn-id: https://svn.eduke32.com/eduke32@7935 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:00 +02:00
terminx 0a5cdea62a Run savegame events as myconnectindex instead of screenpeek
This doesn't really matter right now, but it's wrong.

git-svn-id: https://svn.eduke32.com/eduke32@7934 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:58 +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
terminx 3b98ba6561 Attempt to work around odd behavior when attempting to use stuff like wall aligned sprites with the new version of clipmove
The behavior was always "wrong" as clipmove does not handle movement of lines, just movement of clip boxes against lines and face sprite points, but the newer version of clipmove actively bounces sprites away from lines they would otherwise clip into. This was causing wall-aligned sprites that called any functions that ended up calling clipmove to get pushed away from the wall unintentionally.

git-svn-id: https://svn.eduke32.com/eduke32@7932 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:53 +02:00
terminx 53cd67b0f2 Add ifdef guard
git-svn-id: https://svn.eduke32.com/eduke32@7931 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:51 +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 0f5f35aa85 Fix build error
git-svn-id: https://svn.eduke32.com/eduke32@7927 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:24 +02:00
terminx 128510a6d9 Change audiolib's SDL driver's mutex stuff to use our implementation
git-svn-id: https://svn.eduke32.com/eduke32@7926 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:22 +02:00
terminx 1413c7fd5c Tiny error message cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7925 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:20 +02:00
hendricks266 ca8f8c0dbd save name in exts
git-svn-id: https://svn.eduke32.com/eduke32@7924 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:18 +02:00
hendricks266 03b63470b9 Add fallthrough__ in gameexec
git-svn-id: https://svn.eduke32.com/eduke32@7923 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:16 +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
Christoph Oelckers 4189e9d287 - Function renaming 2019-09-20 16:00:14 +02:00
terminx 635a929359 Audiolib housekeeping
git-svn-id: https://svn.eduke32.com/eduke32@7918 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/src/multivoc.cpp
2019-09-20 15:50:09 +02:00
terminx 9302e48cef Use a LUT instead of a switch to handle choosing which audiolib mixer function to use for a voice
git-svn-id: https://svn.eduke32.com/eduke32@7917 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:48:58 +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 b7f349cd92 Sound cleanups
git-svn-id: https://svn.eduke32.com/eduke32@7915 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.h
2019-09-20 15:47:13 +02:00
terminx 48f9edf743 New feature: combine SF_GLOBAL and SF_DTAG definesound flags to get Duke3D explosion sound behavior
git-svn-id: https://svn.eduke32.com/eduke32@7914 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:47 +02:00
terminx 789be3cf35 Add S_SetProperties() function to handle repetitious setting of a few sound structure members
git-svn-id: https://svn.eduke32.com/eduke32@7913 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:45 +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 4e0325e0d4 Add FURY checks for some EDUKE32_STANDALONE stuff
git-svn-id: https://svn.eduke32.com/eduke32@7911 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:41 +02:00
terminx 2307160c4a Tweak DirectSound error
git-svn-id: https://svn.eduke32.com/eduke32@7910 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:39 +02:00
terminx 24aba0220d Replace some of the mutex usage in the DirectSound driver with our own implementation
git-svn-id: https://svn.eduke32.com/eduke32@7909 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:37 +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 aec48c73c1 'If' out a couple of instances of g_soundlocks[] manipulation I somehow missed during my first pass
git-svn-id: https://svn.eduke32.com/eduke32@7906 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:30 +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
hendricks266 2e325b0f5b Tweak map start message printed to the log
git-svn-id: https://svn.eduke32.com/eduke32@7902 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:19 +02:00
hendricks266 4523515a33 ext updates
git-svn-id: https://svn.eduke32.com/eduke32@7901 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:17 +02:00
pogokeen 091a2961ab game.cpp: move check for quitevent during start-up so that if start-up is cancelled during definitions parsing, the game won't continue to play in a half-loaded state.
git-svn-id: https://svn.eduke32.com/eduke32@7900 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:15 +02:00
hendricks266 90568878a5 Allow MOUSEINACTIVECONDITIONAL when out of menu. Fixes left clicking screens.
git-svn-id: https://svn.eduke32.com/eduke32@7899 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:13 +02:00
hendricks266 7d96aba66d Add CONTROL_ClearAllButtons
git-svn-id: https://svn.eduke32.com/eduke32@7898 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:12 +02:00
hendricks266 640b1c4461 Remove RTS names from standalone builds
git-svn-id: https://svn.eduke32.com/eduke32@7897 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:10 +02:00
hendricks266 dcdabd30d3 definecheatdescription
git-svn-id: https://svn.eduke32.com/eduke32@7896 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:07 +02:00
hendricks266 ba91dd0120 Move cheat descriptions from menus.cpp to cheats.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7895 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:06 +02:00
hendricks266 29d4a7e634 Add I_GeneralTrigger as a combination of Advance and Return and use it for skipping screens so that Esc works.
git-svn-id: https://svn.eduke32.com/eduke32@7894 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:03 +02:00
pogokeen c80b01cfda gameexec.cpp: allow G_ShowView() to execute regardless of the state of g_screenCapture.
This fixes skyboxes not rendering in TILE_SAVESHOT.

git-svn-id: https://svn.eduke32.com/eduke32@7893 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:00 +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 67522909c5 sector.cpp: ensure that if scripts have told us not to render normally to the tile, that we still handle restoring our target & setting up the tile appropriately for what the script may have rendered
git-svn-id: https://svn.eduke32.com/eduke32@7891 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:56 +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 2126d215ed Fix crashes when passing invalid variable names to a couple of debugging commands in the console
git-svn-id: https://svn.eduke32.com/eduke32@7883 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:26 +02:00
terminx 3c28f6cfc6 Don't attempt to draw TILE_LOADSHOT unless it's already in memory
This works around a flaw in the .ext loading logic that I don't have time to debug right now.

git-svn-id: https://svn.eduke32.com/eduke32@7882 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:23 +02:00
terminx c5dbbe892c Fix automapping not working when looking at the textured map mode
git-svn-id: https://svn.eduke32.com/eduke32@7881 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:21 +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 e9e9067251 Fix warning
git-svn-id: https://svn.eduke32.com/eduke32@7879 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:16 +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 db85a55dfd Use I_AdvanceTrigger() instead of I_CheckAllInput() for the skip condition in Anim_Play()
git-svn-id: https://svn.eduke32.com/eduke32@7877 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:11 +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 9c5db5aac0 Sanitize walock[] usage
git-svn-id: https://svn.eduke32.com/eduke32@7875 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:33:07 +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 6ad445d47b Make most things in screens.cpp use I_AdvanceTrigger() instead of I_CheckAllInput()
git-svn-id: https://svn.eduke32.com/eduke32@7872 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:40 +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 24a53db8f5 I'm not aware of any particular issues this change fixes, but I definitely don't intend this hack to ever affect anything while the player is on the ground
git-svn-id: https://svn.eduke32.com/eduke32@7861 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:02 +02:00
terminx ed40842bad Apply "reset object trackers on savegame load" patch
git-svn-id: https://svn.eduke32.com/eduke32@7860 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:01 +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
terminx 762c3ebbf6 Add sc_Space to I_AdvanceTrigger() and I_AdvanceTriggerClear()
git-svn-id: https://svn.eduke32.com/eduke32@7856 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:50 +02:00
terminx e65fb8ab2a Switch fadepal() and fadepaltile() over to using I_CheckAllInput()/I_ClearAllInput() instead of checking for the spacebar exclusively
git-svn-id: https://svn.eduke32.com/eduke32@7855 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:47 +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
hendricks266 fdaee03dfb ext loading
git-svn-id: https://svn.eduke32.com/eduke32@7850 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:44 +02:00
terminx ae36202ac7 Fix for emerging from TROR water
git-svn-id: https://svn.eduke32.com/eduke32@7848 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:24 +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 56604e5e25 Make it easier to jump into vents
git-svn-id: https://svn.eduke32.com/eduke32@7841 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:55 +02:00
terminx 7c88548074 Remember to delete .esv.ext file when deleting .esv file itself
git-svn-id: https://svn.eduke32.com/eduke32@7840 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:52 +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
terminx 686a906c78 Move RCtrl keybind for gamefunc_Fire to slot 1 instead of 2
git-svn-id: https://svn.eduke32.com/eduke32@7837 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:45 +02:00
terminx bf573ff2c9 Fix issue with the autorun key when resetting controls to defaults, and give gamefunc_Last_Used_Weapon a default key binding of X
git-svn-id: https://svn.eduke32.com/eduke32@7836 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:43 +02:00
terminx 4beaeb5426 Don't check clip objects for sprites in the keepaway() loop in clipmove()
This prevents some hilarious issues with deadly wall decorations. The "side blocker" clip lines that already exist for these sprites should already prevent the kinds of clipping issues this loop is intended to address, anyway.

git-svn-id: https://svn.eduke32.com/eduke32@7835 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:40 +02:00
terminx dad28df269 OK, this is just a bit too restrictive
git-svn-id: https://svn.eduke32.com/eduke32@7834 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:38 +02:00
terminx 6d2ca41b9c Fix clipping issue with jumping
git-svn-id: https://svn.eduke32.com/eduke32@7833 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:36 +02:00
terminx dc7ec3b2fe Fix additional clipmove() issue
git-svn-id: https://svn.eduke32.com/eduke32@7832 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:33 +02:00
terminx 1da1331299 Clean up raytrace() and rename it to cliptrace()
git-svn-id: https://svn.eduke32.com/eduke32@7831 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:31 +02:00
terminx 490b7249a2 Allow reading vec3_whatever_t as vec2 directly
It's a union in a struct in a union in a struct. Oh god, what have I done.

git-svn-id: https://svn.eduke32.com/eduke32@7830 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:28 +02:00
terminx 52db0e37f7 Additional clipmove() reworks
This fixes a LOT of clipping errors but needs thorough testing.

git-svn-id: https://svn.eduke32.com/eduke32@7829 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:25 +02:00
terminx 17d3c302a3 Switch a few iterators in clipmove() from int to native_t
git-svn-id: https://svn.eduke32.com/eduke32@7828 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:23 +02:00
terminx 417318c271 clipmove() patch from Nuke.YKT:
"In some edge cases posx/y might be 'inside' of neighbor sector. I've added double check for this case"

git-svn-id: https://svn.eduke32.com/eduke32@7827 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:20 +02:00
terminx df28860bad Add divscale64()
git-svn-id: https://svn.eduke32.com/eduke32@7826 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:18 +02:00
terminx dc0130625a Minor pushmove() cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7825 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:15 +02:00
terminx ed457895f1 Replace check_floor_curb() with cliptestsector()
git-svn-id: https://svn.eduke32.com/eduke32@7824 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:12 +02:00
terminx 0fb77f8af3 Use corrected slope heights in getzrange() and pushmove()
git-svn-id: https://svn.eduke32.com/eduke32@7823 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:10 +02:00
terminx 2482cddbb5 Add getcorrectzsofslope()
git-svn-id: https://svn.eduke32.com/eduke32@7822 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:08 +02:00
terminx 2bb93967e1 Fix an issue where looping sound effects would play at full volume for a tic after playback began, regardless of distance to the sound
git-svn-id: https://svn.eduke32.com/eduke32@7821 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:05 +02:00
terminx e6b700cf9b Promote divisor argument to tabledivide64 to int64_t and replace a couple of 64-bit divides in rintersect() and inflineintersect()
git-svn-id: https://svn.eduke32.com/eduke32@7820 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:23:03 +02:00
hendricks266 dc87150f2a update esv exts
git-svn-id: https://svn.eduke32.com/eduke32@7817 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:18:01 +02:00
hendricks266 3a1e4a445f new special purpose gamevar flag
git-svn-id: https://svn.eduke32.com/eduke32@7816 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:57 +02:00
hendricks266 66032defbb Don't lock out cheats in skill 4 if FURY
git-svn-id: https://svn.eduke32.com/eduke32@7815 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:53 +02:00
hendricks266 36bde42d8c This may be my worst commit ever.
git-svn-id: https://svn.eduke32.com/eduke32@7814 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:49 +02:00
hendricks266 e49e8f4cd6 Fix warnings in sjson
git-svn-id: https://svn.eduke32.com/eduke32@7813 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:45 +02:00
hendricks266 0cd74a6782 Add sjson to project
git-svn-id: https://svn.eduke32.com/eduke32@7812 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:43 +02:00
terminx 165b320f64 Amend r7805
'Murica.

git-svn-id: https://svn.eduke32.com/eduke32@7811 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:40 +02:00
terminx 763b4b8d7f Throw a warning when attempting to use CON_DEFINESOUND with a sound index that has already been defined
git-svn-id: https://svn.eduke32.com/eduke32@7810 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:37 +02:00
terminx 67dc0cb5f8 Fix mirrors in Polymer
git-svn-id: https://svn.eduke32.com/eduke32@7809 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:34 +02:00
terminx 48f602ae68 Rename IONMAIDEN -> FURY
git-svn-id: https://svn.eduke32.com/eduke32@7808 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:31 +02:00
terminx 43f263fc65 Try walldist + 8 instead of walldist << 1 in clipupdatesector()
git-svn-id: https://svn.eduke32.com/eduke32@7807 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:28 +02:00
terminx 97390c1ff4 Fix another bunch of improperly sized bitmap arrays
git-svn-id: https://svn.eduke32.com/eduke32@7806 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:17:25 +02:00
pogokeen 3d63d1b720 Add updatesectorneighbour() and updatesectorneighbourz() and make them accessible to CON to allow searching for nearby neighbouring sectors from a known sector.
These updatesector counterparts are more performant for tasks that require determining whether nearby sectors exist at a point as they will not exhaustively search the map.
This also leads to more correct behaviour when sectors are disjoint, as queries will breadth-first search neighbouring sectors rather than risk accidentally stumbling first across accomodating disjoint sectors.

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

# Conflicts:
#	source/build/include/build.h
2019-09-20 15:16:47 +02:00
hendricks266 844ec0bd63 Expose the current episode and skill selection in ud.m_volume_number and ud.m_player_skill while in their respective menus
git-svn-id: https://svn.eduke32.com/eduke32@7804 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:33 +02:00
pogokeen 1ec5547a9c Fix edge case where mirrors & TROR could interact and render over skyboxes in the classic software renderer
git-svn-id: https://svn.eduke32.com/eduke32@7803 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:31 +02:00
hendricks266 83e1a6902d Implement "usermap" music definition slot
git-svn-id: https://svn.eduke32.com/eduke32@7802 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:29 +02:00
hendricks266 ba7c266f89 CON_MUSIC: Accept "." as meaning "do nothing to this slot"
git-svn-id: https://svn.eduke32.com/eduke32@7801 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:27 +02:00
hendricks266 d1b43acc06 Use std::numeric_limits instead of float.h
git-svn-id: https://svn.eduke32.com/eduke32@7799 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:23 +02:00
hendricks266 48b2cfef59 Fix compilation of linklist.h in C++11 mode with clang
git-svn-id: https://svn.eduke32.com/eduke32@7796 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:11:03 +02:00
hendricks266 6b4d64bde5 Tweak previous commit so clipmove takes precedence over getzrange
git-svn-id: https://svn.eduke32.com/eduke32@7795 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:11:01 +02:00
hendricks266 df609ccfbc Fix an OG Duke bug where projectiles would bounce off the tops of sprites instead of registering a hit
git-svn-id: https://svn.eduke32.com/eduke32@7794 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:59 +02:00
pogokeen 12ce6a78fe Fix parallel build by switching to generating .obj files from .glsl files and treat the shader source as an externed global resolved at link time.
Additionally, remove the no longer necessary shader generated headers folder from .gitignore

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

# Conflicts:
#	.gitignore
#	source/build/src/polymost.cpp
2019-09-20 15:10:56 +02:00
terminx 9fde5434f8 Fix translucent masked wall sorting issue in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7792 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:23 +02:00
terminx fe4245dfc3 Voxel fix
git-svn-id: https://svn.eduke32.com/eduke32@7791 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:21 +02:00
terminx 2313e3d374 Rename "autosaves" to "checkpoints" in menu
git-svn-id: https://svn.eduke32.com/eduke32@7790 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:18 +02:00
terminx b4d3a76793 Fix stupid bug with sprite shadows in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7789 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:16 +02:00
terminx f46db45970 Voxel fixes from Nuke
git-svn-id: https://svn.eduke32.com/eduke32@7788 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:14 +02:00
hendricks266 4e04e4a096 Fix issue with shader compilation
git-svn-id: https://svn.eduke32.com/eduke32@7787 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:12 +02:00
hendricks266 616b0c2347 Fix sequential GNUmakefile build
git-svn-id: https://svn.eduke32.com/eduke32@7786 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:09 +02:00
pogokeen 07df3ffc42 osdfuncs.cpp: fix OSD background sometimes not rendering with the correct gl state
git-svn-id: https://svn.eduke32.com/eduke32@7784 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:05 +02:00
pogokeen 1664310159 Support clamping in polymost1Frag.glsl and use it for sprites
git-svn-id: https://svn.eduke32.com/eduke32@7783 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/polymost1Frag.glsl
#	source/build/src/voxmodel.cpp
2019-09-20 15:10:02 +02:00
Christoph Oelckers a55e19ed83 - fixed the shader. 2019-09-20 15:02:49 +02:00
pogokeen f6993940e5 Separate out polymost1Frag and polymost1Vert shaders from polymost.cpp and add rules for building in the GNUmakefile.
Additionally, git ignore the shader's generated headers folder.

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

# Conflicts:
#	.gitignore
#	source/build/src/polymost.cpp
2019-09-20 14:57:42 +02:00
pogokeen fe36034e43 polymost.cpp: Adjust shaders to use texture2DGradARB() if available
git-svn-id: https://svn.eduke32.com/eduke32@7781 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:53:22 +02:00
terminx cfa40f33df Fix volume slider bug introduced in r7773
git-svn-id: https://svn.eduke32.com/eduke32@7780 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:40:17 +02:00
terminx c233d58cf8 QOL change: print save filename to console for manual savegames, too, not just ones generated through the script
git-svn-id: https://svn.eduke32.com/eduke32@7779 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:40:15 +02:00
terminx a075a89304 Voxel fixes from Nuke.YKT
git-svn-id: https://svn.eduke32.com/eduke32@7778 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:40 +02:00
terminx 2882609822 Don't attempt to animate sprites drawn as voxels by picnum
git-svn-id: https://svn.eduke32.com/eduke32@7777 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:10 +02:00
terminx c96ec9d440 This is just syntax and formatting
No functional changes.

git-svn-id: https://svn.eduke32.com/eduke32@7776 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:09 +02:00
terminx fa5ff547c8 Rename stupid structure member I probably named when I was high
git-svn-id: https://svn.eduke32.com/eduke32@7775 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:06 +02:00
terminx 19e54dc1ad Stop trying to make CTRL-ALT-DEL happen
It's not going to happen.

git-svn-id: https://svn.eduke32.com/eduke32@7774 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:03 +02:00
terminx 027afc2347 Patch from Nuke.YKT to replace audiolib's volume table with floating point calculations
This fixes an issue where rapidly changing the player's angle could result in the audio "popping" due to the sudden change to a new position in the volume table, and the resulting difference in volume between one sample and the next. This also fixes a DC offset issue when applying the volume level to certain sample types.

git-svn-id: https://svn.eduke32.com/eduke32@7773 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:01 +02:00
terminx cf7ac8f16e Untie EVENT_ALTFIRE from the conditions required to trigger EVENT_FIRE
git-svn-id: https://svn.eduke32.com/eduke32@7772 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:54 +02:00
terminx 4c290ab4ec Add gamefunc_Alt_Weapon and EVENT_ALTWEAPON back in
git-svn-id: https://svn.eduke32.com/eduke32@7771 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:50 +02:00
terminx dc9c7bc7b0 Make shadows on voxels in Polymost look like they do in classic
git-svn-id: https://svn.eduke32.com/eduke32@7770 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:47 +02:00
terminx bf94922b27 Even more minor fix to previous commit
git-svn-id: https://svn.eduke32.com/eduke32@7769 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:45 +02:00
terminx 8e8a1334e9 Minor fix to last commit
git-svn-id: https://svn.eduke32.com/eduke32@7768 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:42 +02:00
terminx 7e7f19b5fd Add tilehasmodelorvoxel() function and fix instances where voxels for multi-sided sprites would get flipped based on the viewing angle
git-svn-id: https://svn.eduke32.com/eduke32@7767 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:40 +02:00
terminx 31f66f7de4 Fix audio position updating in automap mode
git-svn-id: https://svn.eduke32.com/eduke32@7766 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:38 +02:00
terminx 465403a199 Prevent addlogvar from accepting constants, which causes a crash
git-svn-id: https://svn.eduke32.com/eduke32@7765 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:36 +02:00
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 5cfcb96768 Swap indexes for gamefunc_AutoRun and gamefunc_Alt_Fire
Normally I wouldn't be in favor of changing indexes that are already exposed to scripts around, but gamefunc_AutoRun is a locally handled key that doesn't have any script events associated with it, and gamefunc_Alt_Fire is pretty important to have up near the top wherever gamefuncs are listed.

git-svn-id: https://svn.eduke32.com/eduke32@7762 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:30 +02:00
terminx 4e81b4e2f0 Replace gamefunc_Alt_Weapon with a gamefunc_Alt_Fire that works as expected
git-svn-id: https://svn.eduke32.com/eduke32@7761 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:28 +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 130649b017 Move cacheAllSounds() out of G_CacheMapData() and into G_Startup()
git-svn-id: https://svn.eduke32.com/eduke32@7758 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:21 +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
pogokeen 13615565fd game.cpp: temporarily limit A_Spawn() owner changes from r7738 to locators
git-svn-id: https://svn.eduke32.com/eduke32@7751 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:17:57 +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 c1d261965f Clarify incompatible savegame log message
git-svn-id: https://svn.eduke32.com/eduke32@7745 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:15: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 458124a237 actors.cpp: Change demo camera path following behaviour to search for locators based on a hitag channel to avoid locator lotag contention.
Now, destination and subject locators should be assigned one hitag channel.  Destination locators will be visited starting from lotag 0 and counting upward.
Subject locators can have any lotag within the same hitag channel, and may also be a destination if the lotag is not separated from the destination locator ids.
Destination locators must now specify their subject locator in their owner field by lotag.

git-svn-id: https://svn.eduke32.com/eduke32@7739 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:04:38 +02:00
pogokeen cfa0ea2a65 game.cpp: When A_Spawn() is spawning from an already existing sprite, do not reset the owner field if it has been overridden from the default.
git-svn-id: https://svn.eduke32.com/eduke32@7738 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:04:36 +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 c2340dd409 Add EVENT_RESETGOTPICS which gives scripts the chance to reset gotpics (and similar effects trackers) for effects that run in EVENT_DISPLAYROOMS.
EVENT_RESETGOTPICS is called after the last call to EVENT_DISPLAYROOMS in a frame, but before any engine-side calls to renderDrawRoomsQ16()

git-svn-id: https://svn.eduke32.com/eduke32@7734 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:20 +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 2c85a0a53c game.cpp: fix issue where tilt angle was not being reset to 0 at times when it should have been disabled
git-svn-id: https://svn.eduke32.com/eduke32@7732 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:14 +02:00
Christoph Oelckers ceceb63b5e - adjustments for frame rate limiting copied from Duke3D project. 2019-09-20 13:54:27 +02:00
pogokeen b014ae4d54 game.cpp: improve G_FPSLimit() to be more stable with regard to floating point precision.
Additionally, prefer rendering early and compensating with a late frame due to clock precision rather than the other way around so that we are more consistently within a target vblank period.

git-svn-id: https://svn.eduke32.com/eduke32@7731 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:29 +02:00
pogokeen 19c2c690d3 Fix latency issue introduced by G_FPSLimit() handling of videoNextPage() that was causing frames to be delayed presentation until after the next frame is prepared.
videoNextPage() is now called immediately after preparing the frame for drawing, outside of G_FPSLimit() but on the condition that its return value is true.

git-svn-id: https://svn.eduke32.com/eduke32@7730 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:27 +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
pogokeen 87d3af7204 game.cpp: change camera sprite yvel limits to clamp to min/max angle when beyond the min/max rather than when beyond 0 and 199
git-svn-id: https://svn.eduke32.com/eduke32@7728 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:21 +02:00
pogokeen 0cc6ff2e48 actors.cpp: Add additional demo camera behaviours.
Allow the demo camera to be used while not playing back a recorded demo.
Add the ability for the camera to follow paths specified by locators.

git-svn-id: https://svn.eduke32.com/eduke32@7727 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:14 +02:00
terminx 876627136a Player duct walking sound fix
git-svn-id: https://svn.eduke32.com/eduke32@7726 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:12 +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 7a4a80552c Call S_PauseSounds(false) from Menu_Close()
git-svn-id: https://svn.eduke32.com/eduke32@7724 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:17:31 +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 a7d4df8072 Use default argument values of -1 for the sprite and player indexes passed to VM_OnEvent()
git-svn-id: https://svn.eduke32.com/eduke32@7721 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:08:36 +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 2114abcedd Don't force APLAYER to have the default action when shown through a viewscreen in EDUKE32_STANDALONE builds
git-svn-id: https://svn.eduke32.com/eduke32@7710 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:24 +02:00
terminx cf915a142c Cosmetic change
git-svn-id: https://svn.eduke32.com/eduke32@7709 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:22 +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 87b136eb79 Fix bug with sprite heights and autoaim targeting
git-svn-id: https://svn.eduke32.com/eduke32@7702 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:38 +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 126088f035 Remove ifdef'd out Gv_DivVar() generation with VM_GAMEVAR_OPERATOR macro because LIBDIVIDE_ALWAYS is going away
git-svn-id: https://svn.eduke32.com/eduke32@7699 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:31 +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
Christoph Oelckers 33b122d88a - renamed remaining vec2s_t's. 2019-09-20 11:47:21 +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
terminx dd2e35eab3 EDUKE32_STANDALONE crap
git-svn-id: https://svn.eduke32.com/eduke32@7689 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:14 +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 5fc9868c6a Add support for E0LXY to game defs music token
git-svn-id: https://svn.eduke32.com/eduke32@7687 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:40 +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