Commit graph

12943 commits

Author SHA1 Message Date
Christoph Oelckers
ea752bde90 - fixed: The translucent border draw list must be rendered with depth writing active.
This gets exclusively used by portal borders which means that for walls the setting is irrelevant but for flats it is needed to cover the portal surface so that translucent parts of the outer scene do not bleed through.

(cherry picked from commit d0aacd3ba8)

# Conflicts:
#	src/gl/scene/gl_scene.cpp
2018-06-03 01:22:56 +02:00
Magnus Norddahl
06496c7df7 - fix negative rotation speed not working
(cherry picked from commit 0dbcdc8a9c)
2018-06-02 21:35:00 +02:00
Christoph Oelckers
ff5c488a0f - pass mirroring info to model drawers.
Actual evaluation only implemented in OpenGL. Not tested yet because the bug report had no testable example.

(cherry picked from commit 94d1a73ae8)
2018-06-02 21:31:23 +02:00
Christoph Oelckers
b18d198cf6 - fixed: MF3_DONTSPLASH disabled all terrain effects, not just the splash.
Untested for now because the report came without any example to check it with.

(cherry picked from commit 0c5a47ac90)
2018-06-02 21:30:46 +02:00
Marisa Kirisame
5eebbe0b1a Transform UE1 vertex coords to GZDoom's when importing, rather than leaving it up to the end user.
(cherry picked from commit 58f4af6ded)
2018-06-02 10:07:31 +02:00
alexey.lysiuk
f58dfe3605 - fixed compilation with Clang and GCC
src/gl/scene/gl_flats.cpp:215:3: error: cannot jump from this goto statement to its label
src/r_data/models/models.cpp💯18: error: no member named 'floor' in namespace 'std'

(cherry picked from commit 81f042f08b)

# Conflicts:
#	src/gl/scene/gl_flats.cpp
2018-06-02 10:04:31 +02:00
Christoph Oelckers
6fe5af7c0c - fixed: FxFloatCast must transfer the outer expression's value type to the inner expression if it performs a float->float cast.
This violated an important rule that a cast may not alter the expression's type and led to failed asserts elsewhere.

(cherry picked from commit 7d515e72c2)
2018-06-02 10:03:43 +02:00
Magnus Norddahl
1e65eea77f - fix rotationSpeed being ignored after the model interpolation fix
(cherry picked from commit 359b13b783)
2018-06-01 22:05:13 +02:00
alexey.lysiuk
8d6c4321f2 - limited length of server CVAR name to 63 characters
Due to limitation of network protocol server CVARs with longer names cannot propogate changes of their values properly

https://forum.zdoom.org/viewtopic.php?t=60729
(cherry picked from commit bff2c8cf74)
2018-05-31 11:00:42 +02:00
drfrag666
d6369978b9 - Merged "- fixed Windows XP compatibility for MSVC 2017 targets".
Workaround initially implemented for MSVC 2015 is enabled with all Windows XP compatible toolsets regardless of Visual Studio version
(patch by _mental_)
Still it's a VS bug.
2018-05-31 11:00:19 +02:00
Magnus Norddahl
60929f353f - replace softpoly block drawers with span drawers and make them use blending rules directly from render styles
- add dynlights to softpoly pal mode

(cherry picked from commit 4e6226fc2d)
2018-05-30 11:56:15 +02:00
Magnus Norddahl
1055e45566 - Modify TriBlendMode enum to match the render styles
(cherry picked from commit 190b673890)
2018-05-30 11:55:53 +02:00
Christoph Oelckers
24d0aee2e7 - fixed: When deserializing the object list, the array must be nulled before using it so that a premature abort does not end up working on random data.
(cherry picked from commit ad343892f3)
2018-05-29 23:16:17 +02:00
drfrag666
c656185069 - Extended workaround for the stat not working issue in v140_xp to v141_xp. 2018-05-29 09:51:12 +02:00
alexey.lysiuk
4a0ef2edf1 - restore startup game state on restart
At least values of custom server CVARs were not restored because of this

https://forum.zdoom.org/viewtopic.php?t=60711
(cherry picked from commit 36779cf88c)
2018-05-27 18:43:00 +02:00
alexey.lysiuk
94b68e76f6 - garbage collect static event handlers on restart
Remaining object(s) led to a potential crash on the next garbage collection cycle
Assertion failure was triggered during restarting in Debug configuration

(cherry picked from commit e085a8d58a)
2018-05-27 18:42:59 +02:00
Magnus Norddahl
9f698c4fda - add SSE2 version of softpoly span drawer
(cherry picked from commit 9fb34fd8e6)
2018-05-26 21:58:24 +02:00
Magnus Norddahl
09ef233c41 - implement render styles for the softpoly span drawers
(cherry picked from commit 7f908ce75d)
2018-05-26 21:58:24 +02:00
alexey.lysiuk
a2f4579943 - fixed minor issues with new line specials
(cherry picked from commit 91f440378e)
2018-05-26 09:55:37 +02:00
Cacodemon345
726f7e4b03 Add missing line specials.
(cherry picked from commit b02736c705)
2018-05-26 09:55:36 +02:00
alexey.lysiuk
15b28aadd9 - fixed typo in error message
(cherry picked from commit 1634b78280)
2018-05-25 13:05:07 +02:00
Raccoon
853b277781 Add SetAutomapFlags and SetAutomapStyle line specials
(cherry picked from commit 475d3f0829)
2018-05-25 13:04:10 +02:00
Magnus Norddahl
f6e64f5018 - add #include support to TEXTURES lump
(cherry picked from commit cadc4f2a30)

# Conflicts:
#	src/textures/texturemanager.cpp
2018-05-25 12:59:28 +02:00
alexey.lysiuk
c637d32113 - fixed compilation warning with MSVC 2015
src\polyrenderer\scene/poly_portal.cpp(142): warning C4800: 'line_t *': forcing value to bool 'true' or 'false' (performance warning)

(cherry picked from commit 7576068202)
2018-05-24 11:46:43 +02:00
Magnus Norddahl
77071dedcf - add two-sided culling support in software and poly
(cherry picked from commit 8098657cf4)
2018-05-24 10:30:12 +02:00
Magnus Norddahl
3b89db85f2 - forgot to remove the remarked comment
(cherry picked from commit 771931db9f)
2018-05-24 10:28:58 +02:00
Magnus Norddahl
f05b937afa - enable #include support in modeldef files
(cherry picked from commit fb9cf33af6)
2018-05-24 10:28:57 +02:00
alexey.lysiuk
ee86e2e3be - fixed compilation with GCC/Clang
https://forum.zdoom.org/viewtopic.php?f=2&t=60657
(cherry picked from commit 26ebb938c1)
2018-05-24 10:25:43 +02:00
Magnus Norddahl
3f4e257d73 - move modeldef parsing to its own function (ParseModelDefLump)
- rename gl_InitModels to InitModels
- add commented out support for #include in modeldefs (blocked by gene tech having broken #include statements in its modeldef files)

(cherry picked from commit 91aec1689e)
2018-05-24 10:25:42 +02:00
Magnus Norddahl
8de520e9e1 - avoid reusing the same mVBuf pointer for the different renderers as that causes too many problems when switching between them
- remove gl_ prefix for model functions that are no longer GL specific

(cherry picked from commit 31abe3df7e)

# Conflicts:
#	src/gl/models/gl_models.h
#	src/gl/scene/gl_scene.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/hwrenderer/textures/hw_precache.cpp
2018-05-24 10:25:05 +02:00
Christoph Oelckers
12a2dede7e - added CVAR to disable WGL_EXT_swap_control_tear.
At least on faster NVidia hardware, setting this to false and gl_finishbeforeswap to true gives a better experience because it reduces screen tearing - but the same setting will reduce frame rate quite dramatically on Intel and can cause bad stalls on some older GPUs when rendering camera textures.

(cherry picked from commit cc65490062)
2018-05-23 10:13:35 +02:00
Magnus Norddahl
d7f907f510 - fix model interpolation bug
(cherry picked from commit cc4a09a3d2)
2018-05-21 20:11:29 +02:00
drfrag666
0552c8fbb3 - Revert "- fixed: Change compiled exe version strings to match git repo numbers."
gitinfo.h was still being included with MinGW and it was a waste of time on every commit anyway.
2018-05-21 10:28:23 +02:00
Christoph Oelckers
b0531c7293 - disable shader storage blocks if none get reported for vertex shaders.
(cherry picked from commit 3069b53804)
2018-05-20 11:20:11 +02:00
alexey.lysiuk
13d7b49eeb - added forced automap style to linedef, UDMF only
https://forum.zdoom.org/viewtopic.php?t=59808
(cherry picked from commit c6f7d92c76)
2018-05-19 21:40:46 +02:00
RockstarRaccoon
84f1720ece - added 'revealed on automap' linedef flag, UDMF only
https://forum.zdoom.org/viewtopic.php?t=59808
(cherry picked from commit 90cb0b3215)
2018-05-19 21:40:45 +02:00
Marisa Kirisame
4831b9be65 Cleaned UE1 math by using FVector classes.
Reversed winding order on vertex buffer creation as UE1 uses CCW.

(cherry picked from commit 0c4a08460f)
2018-05-19 21:38:45 +02:00
alexey.lysiuk
8bfdb2aa36 - fixed compilation warnings reported by GCC/Clang
src/r_data/models/models.cpp:418:33: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
src/r_data/models/models.cpp:427:38: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
src/r_data/models/models_ue1.cpp:49:37: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]

(cherry picked from commit 9257c9cc0c)
2018-05-19 21:37:10 +02:00
Rachael Alexanderson
3d86244b61 - define zdoom.rc as a proper Windows text file, stop Git from mismanaging it
# Conflicts:
#	src/win32/zdoom.rc
2018-05-18 14:01:48 +02:00
Christoph Oelckers
4811962acb - silence some warnings.
(cherry picked from commit 2962fe9f08)
2018-05-18 13:46:12 +02:00
drfrag666
986bed0475 - Keep autosaves at the top of the savegame list. 2018-05-18 13:19:53 +02:00
Rachael Alexanderson
98dc10c127 - also remove unused forward declarations
(cherry picked from commit bcadd2bf04)
2018-05-17 13:06:44 +02:00
Rachael Alexanderson
25b281659c - cleaned up vid_scaleto____ code a bit, also set a sane lower limit for vid_scalefactor, removed some code redundancy
(cherry picked from commit 0f36b9d63f)
2018-05-17 13:06:44 +02:00
Rachael Alexanderson
126dcb5a70 - added vid_scaletowidth and vid_scaletoheight to calculate vid_scalefactor to reach a certain value on screen dynamics
(cherry picked from commit 0fae13bab4)
2018-05-17 13:06:43 +02:00
Christoph Oelckers
87121e2936 - fix warnings.
(cherry picked from commit fb876852bb)
2018-05-17 13:01:32 +02:00
Marisa Kirisame
30193423a6 Fix for Unreal meshes that don't have sequential texture numbers
(cherry picked from commit 1bb00ed4f0)
2018-05-17 13:01:31 +02:00
Marisa Kirisame
e2b3dc1c74 Remove unnecessary checks.
(cherry picked from commit 98f279b651)
2018-05-17 13:01:30 +02:00
Marisa Kirisame
91acd10e75 Discarded "UMSH" packed format, now loads _d.3d + _a.3d pairs
(cherry picked from commit ffc12eec29)
2018-05-17 13:01:29 +02:00
Marisa Kirisame
08d15514d2 Add support for packed Unreal Engine 1 vertex mesh format.
(concatenated "UMSH" signature + datafile + anivfile)
This is pretty much 100% functional by now.
Hasn't been tested on platforms other than Linux yet, though.
Code definitely deserves some cleaning.

(cherry picked from commit f285e550d6)
2018-05-17 13:01:28 +02:00
drfrag666
0e25e40deb - Addressed crash on exit with MinGW. This is a hack and i've reported it as a bug in the MinGW C runtime. 2018-05-17 12:06:44 +02:00
alexey.lysiuk
f8dc707edf - fixed seeking end of file in memory reader
https://forum.zdoom.org/viewtopic.php?t=60611
(cherry picked from commit 42668c6a5a)
2018-05-17 11:57:05 +02:00
alexey.lysiuk
86eb6b8f85 - trigger WorldThingDamaged event before WorldThingDied
https://forum.zdoom.org/viewtopic.php?t=60597
(cherry picked from commit fc91827900)
2018-05-17 11:57:04 +02:00
Jonathan Russell
c8a47653bf - added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors
(cherry picked from commit e9050a38b3)
2018-05-17 11:57:03 +02:00
alexey.lysiuk
a66686225d - fixed potential crash on startup, Windows only
At least one version of Windows SDK (10.0.17134.0) has broken _pgmptr/_get_pgmptr()
It points to an empty string for multi-byte character set applications
GetModuleFileName() is now used instead regardless of compiler/toolchain
Added extra guard against unexpected program paths to avoid crashes

https://forum.zdoom.org/viewtopic.php?t=60598
(cherry picked from commit e1e441091d)
2018-05-16 11:58:38 +02:00
drfrag666
cc397295b6 - Fixed bad merge of "- some Transfer_Heights related optimizations". 2018-05-14 23:44:33 +02:00
alexey.lysiuk
4c7261c3b6 - fixed wrong line number in error message
Parser of MAPINFO editor number definitions didn't assign line numbers, so 'Unknown actor class' fatal error displayed some garbage

(cherry picked from commit 751e318c4e)
2018-05-14 18:06:59 +02:00
drfrag666
429bd5d843 - Made VMFrameStack GlobalVMStack a non thread_local variable for MinGW since that helps to prevent crashes on exit. 2018-05-14 12:53:57 +02:00
alexey.lysiuk
c06501d7ca - use map axes in bad sound position/velocity warning
https://forum.zdoom.org/viewtopic.php?t=60578
(cherry picked from commit 8a6ae503be)
2018-05-13 19:14:01 +02:00
drfrag666
9416219ea5 - Fixed bad merge of "- Clean up PolyTriangleDrawer API" 2018-05-13 19:11:29 +02:00
drfrag666
dc8d32cb69 - Changed savegame list order, now they are sorted by reverse slot number instead of alphabetically. 2018-05-13 11:53:47 +02:00
drfrag666
108f0d3fd7 - Give an error message instead of just crashing on non SSE2 cpus. 2018-05-12 14:48:52 +02:00
drfrag
30a606ed6b - Fixed crash with textures larger than those supported by the hardware in the D3D backend.
# Conflicts:
#	src/win32/fb_d3d9.cpp
2018-05-12 14:28:58 +02:00
alexey.lysiuk
a545e7de35 - added end line to various messages
so they don't screw up further output anymore

(cherry picked from commit f17f8c9359)

# Conflicts:
#	src/gl/compatibility/gl_swshader20.cpp
2018-05-12 11:49:10 +02:00
Magnus Norddahl
5ade87d974 - move 3d floor code into functions
(cherry picked from commit 643828f5fa)
2018-05-12 11:41:00 +02:00
Magnus Norddahl
4a390a1c27 - more pointless complexity removal
(cherry picked from commit e4d740e586)
2018-05-12 11:40:59 +02:00
Magnus Norddahl
ba6c4e4c4a - remove pointless code
(cherry picked from commit acf9f55849)
2018-05-12 11:40:57 +02:00
drfrag666
087c3b4c01 - Fixed -iwad parameter working only with VS on Windows. 2018-05-12 11:32:53 +02:00
drfrag666
d60299c740 - Fixed compilation with VS. 2018-05-11 14:22:43 +02:00
Magnus Norddahl
ee5db9963b - fixed sloped drawer crash
(cherry picked from commit b0cc472e85)
2018-05-11 12:40:27 +02:00
landfillbaby
4ad3f2ed2f fix highlighting in snd_listmididevices
(cherry picked from commit ba9a340c1f)
2018-05-10 21:58:56 +02:00
alexey.lysiuk
807820b54b - fixed crash in DECORATE parsing
The case with forward declared class used as a parent must be handled explicitly

actor MyWeapon : Weapon { Weapon.AmmoType "MyBaseAmmo" }
actor MyAmmo : MyBaseAmmo { }
actor MyBaseAmmo : Ammo { }

(cherry picked from commit ef536e7b00)
2018-05-10 21:58:55 +02:00
alexey.lysiuk
82121a0e43 - added end line to recursive sound warning
(cherry picked from commit 821cc2a140)
2018-05-10 21:58:34 +02:00
alexey.lysiuk
91d91ce84f - Cocoa: ability to use drag and drop with custom IWADs
(cherry picked from commit fd5df6e8d1)
2018-05-10 21:57:58 +02:00
alexey.lysiuk
12f1820ea5 - Cocoa: proper defaults in .plist
(cherry picked from commit 23dcc27542)
2018-05-10 21:57:32 +02:00
Magnus Norddahl
14f9c63cd7 - added r_debug_draw that shows how the software renderer composes its scene
(cherry picked from commit 459f748c4e)
2018-05-10 21:57:12 +02:00
Magnus Norddahl
8014b97c3d - 3d floor clipping support for models
(cherry picked from commit b27655db70)
2018-05-10 21:53:46 +02:00
Magnus Norddahl
07b067c218 - GetTimeFloat is not renderer specific
(cherry picked from commit 49c9de350f)
2018-05-10 21:53:31 +02:00
Magnus Norddahl
216ecd7e07 - fix hud model clipping
(cherry picked from commit bfe6bffd33)
2018-05-10 21:53:07 +02:00
alexey.lysiuk
0a5579cdd6 - proper handle pixel format creation errors in Cocoa backend
(cherry picked from commit 78c06554af)
2018-05-10 21:52:50 +02:00
alexey.lysiuk
5f850067b3 - SDL: clear button state when switching from/to GUI input
https://forum.zdoom.org/viewtopic.php?t=60451
(cherry picked from commit 7fcefa2ed1)

# Conflicts:
#	src/posix/sdl/i_input.cpp
2018-05-10 21:51:00 +02:00
alexey.lysiuk
ac73549bd2 - use libc++ for all targets on macOS
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
(cherry picked from commit ce18ff1df3)

# Conflicts:
#	CMakeLists.txt
2018-05-10 21:49:07 +02:00
Magnus Norddahl
5a6eb48690 - fixed missing depth for models
(cherry picked from commit 4642861501)
2018-05-10 21:29:37 +02:00
Magnus Norddahl
2f1c5ee5d2 - fix translucent walls when r_models is enabled
(cherry picked from commit 1d929dd79b)
2018-05-10 21:21:51 +02:00
alexey.lysiuk
a106594b6b - serialize 'spawned' object flag, WorldThingDestroyed event relies on it
https://forum.zdoom.org/viewtopic.php?t=60435
(cherry picked from commit 437b44bafb)
2018-05-10 21:18:21 +02:00
alexey.lysiuk
21ce592771 - skip rendering when application is not active
Use vid_activeinbackground CVAR to override this behavior

(cherry picked from commit 2be84dc636)

# Conflicts:
#	src/gl/system/gl_framebuffer.cpp
#	src/posix/cocoa/i_video.mm
#	src/posix/sdl/gl_sysfb.h
#	src/posix/sdl/sdlglvideo.cpp
#	src/win32/gl_sysfb.h
#	src/win32/win32gliface.cpp
2018-05-10 21:16:38 +02:00
Hisymak
fe4adb849d OPL Synth fix: Double-voice instruments randomly don't play second voice
(cherry picked from commit 583da7f6cf)
2018-05-10 20:54:47 +02:00
Christoph Oelckers
7b822807de - renamed the flag bits for sector_t::MoreFlags, so that they are easier to distinguish from sector_t::Flags.
- precalculate if a sector's floor and ceiling plane overlap. This avoids rechecking this for each single call of hw_FakeFlat.
- vertices must be marked dirty every time they change after map setup. That means that ChangePlaneTexZ must do this as well, because it cannot rely on interpolation taking care of it.
- Having a 'dirty' argument for SetPlaneTexZ's ZScript version makes no sense. If the value changes from the script side the vertices must always be marked to be recalculated.

(cherry picked from commit 9bdb0f2e49)
2018-05-10 19:49:02 +02:00
Christoph Oelckers
8a3a293bf8 - use sector_t::GetHeightSec consistently and optimize it.
This was all over the place, with half of it using the function and half doing incomplete checks on the underlying variables.
Also did some optimization on the IGNOREHEIGHTSEC flag: Putting it on the destination sector instead of the model sector makes the check even simpler and allows to precalculate the effect of 3D floors on the heightsec, which previously had to be run on every call and made the function too complex for inlining.

(cherry picked from commit f49c6cbde2)

# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
2018-05-10 19:20:11 +02:00
Christoph Oelckers
e5aca6dfa4 - some Transfer_Heights related optimizations.
* only call hw_CheckViewArea if the result is not known yet.
* check the map up front if it even contains heightsecs. This allows to shortcut the above check entirely for maps without sector transfers and will allow further optimizations.

(cherry picked from commit 3c49804c6c)

# Conflicts:
#	src/gl/scene/gl_bsp.cpp
#	src/gl/scene/gl_fakeflat.cpp
#	src/hwrenderer/scene/hw_fakeflat.h
2018-05-10 18:37:20 +02:00
Christoph Oelckers
84b261d947 - don't force the renderer to remain active in windowed mode when in the background.
It's ok to have this as an option, but not as an unconditional forced feature.

(cherry picked from commit b35213741f)
2018-05-10 14:59:22 +02:00
Christoph Oelckers
4a74c9606a - allow animated title pics.
This also applies to all other images shown in the title loop as well.

(cherry picked from commit af76e9a9c4)
2018-05-10 14:48:45 +02:00
Hisymak
b825b4317f Fix OPL Synth note cutoffs and issues after removal of MusLib
This should fix bug reported in https://forum.zdoom.org/viewtopic.php?
f=104&t=56682.
There were two problems:
1. Algorithm to select a free voice was not appropriate. Changed to a
simple "least-recently-freed voice" algorithm.
2. Sustained voices were treated as used voices and never got replaced.
Now sustained voices are preferentially replaced when there are no free
voices.

(cherry picked from commit 07586af6d1)
2018-05-10 13:59:06 +02:00
Christoph Oelckers
9415b86e37 - fixed a memory leak in the FileReader.
(cherry picked from commit 4d72214fd5)
2018-05-10 13:58:38 +02:00
alexey.lysiuk
56b0e9627c Fixed walkthrough blocker in Sin City 2 via compatibility entry
It was impossible to complete Sin City 2 The Satan Complex without cheating since ZDoom 2.6.0
Change in applying of DeHackEd patches from 77a4b9a29b broke triggering of important linedef that pushes friendly marine to exit switch

https://www.doomworld.com/idgames/levels/doom2/Ports/s-u/satanx
(cherry picked from commit 6d308ca67e)
2018-05-10 13:56:45 +02:00
alexey.lysiuk
b1b45102ef Added startup song definition for custom IWADs
https://forum.zdoom.org/viewtopic.php?t=60314
(cherry picked from commit 2ae8b0c093)
2018-05-10 13:53:14 +02:00
alexey.lysiuk
739ebbb8f1 Fixed crash during line tracing when enter sector is null
https://forum.zdoom.org/viewtopic.php?t=60371
(cherry picked from commit 3111ec97bb)
2018-05-10 13:51:56 +02:00
ZZYZX
407cdc9683 Only call additional LineCheck if there are 3D floors
(cherry picked from commit 3129840a04)
2018-05-10 13:47:30 +02:00
ZZYZX
a39e2c518f Implemented workaround for ZScript LineTrace with 3D floors
(cherry picked from commit 3eef3d7845)
2018-05-10 13:47:28 +02:00
drfrag666
f0542852e6 - Removed some not needed version.h includes. 2018-05-10 13:38:21 +02:00
Magnus Norddahl
5a64f6eb18 - fix softpoly line portals
(cherry picked from commit 45625399dc)
2018-05-10 11:16:26 +02:00