Commit graph

14305 commits

Author SHA1 Message Date
Christoph Oelckers
2dd6c14865 - implemented an abstract sound font reader interface for Timidity++.
The only dependency left on the main GZDoom code are the CVars, which will be dealt with next.

# Conflicts:
#	src/sound/mididevices/music_timiditypp_mididevice.cpp
2020-01-04 23:39:48 +01:00
Christoph Oelckers
9d5f4969e7 - thinned out the FSoundFontReader interface a bit more by moving the file open code into the FSoundFontReader class itself. 2020-01-04 23:39:45 +01:00
Christoph Oelckers
e968ef9ded - moved the instrument set maintenance out of the Timidity++ library into the player class.
This removes the dependency on the sound font manager from the low level library, reducing the direct dependencies to FileReader and SoundFontReader.
2020-01-04 23:39:43 +01:00
Christoph Oelckers
64e0b151fb - removed a few dependencies of the Timidity++ code from the main GZDoom code base.
The big issues, i.e. FileReader and SoundFontReader still need to be handled to make this a standalone library.

# Conflicts:
#	src/sound/timiditypp/configfile.cpp
2020-01-04 23:39:39 +01:00
Christoph Oelckers
4d2d143422 - gave libopen the same treatment and made it its own subproject
# Conflicts:
#	src/CMakeLists.txt
#	src/sound/mididevices/music_opnmidi_mididevice.cpp

# Conflicts:
#	src/sound/mididevices/music_opnmidi_mididevice.cpp
2020-01-04 22:59:26 +01:00
Christoph Oelckers
a4f05f5741 - made libadl its own library subproject.
This is to improve compile times because the MSVC compiler tends to become slow with large lists of source files in a single project.
This new project is still our stripped down copy of libadl, not the original, because that project contains a large amount of baggage we do not need.

# Conflicts:
#	src/CMakeLists.txt

# Conflicts:
#	src/sound/mididevices/music_adlmidi_mididevice.cpp
2020-01-04 22:56:56 +01:00
drfrag
bcbf914f5b - Added I_Error prototypes to doomerrors.h. 2020-01-04 21:44:07 +01:00
Christoph Oelckers
c05e3ebf31 Made several classes trivially copyable,
Many had leftover non-default constructors/ assignment operators, and some were initialized, even though the initialized data was never used.

In case of FCycler this even caused a default setting to be overwritten when used inside FDynamicLight.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
#	src/sound/s_sndseq.cpp
2020-01-04 21:32:10 +01:00
Christoph Oelckers
f09e887a69 - removed redundant include. 2020-01-04 21:32:07 +01:00
alexey.lysiuk
a095ffde39 - fixed compilation of Linux targets
src/../libraries/gdtoa/gdtoa.h:67:19: fatal error: arith.h: No such file or directory
# Conflicts:
#	src/CMakeLists.txt
2020-01-04 21:32:06 +01:00
Christoph Oelckers
1556e6620c - move sound files to sound folder.
# Conflicts:
#	src/CMakeLists.txt
2020-01-04 21:32:04 +01:00
Christoph Oelckers
81d54959af - sorted sound backend code into subdirectories.
# Conflicts:
#	src/CMakeLists.txt
2020-01-04 21:32:02 +01:00
Christoph Oelckers
d9168aeeff - deleted unused mus2midi.cpp file.
# Conflicts:
#	src/sound/i_music.cpp
2020-01-04 21:31:59 +01:00
Christoph Oelckers
040cb17370 - moved third party library projects to a subfolder to reduce size of the root.
# Conflicts:
#	CMakeLists.txt
#	libraries/glslang/OGLCompilersDLL/CMakeLists.txt
#	libraries/glslang/OGLCompilersDLL/InitializeDll.cpp
#	libraries/glslang/OGLCompilersDLL/InitializeDll.h
#	libraries/glslang/glslang/CMakeLists.txt
#	libraries/glslang/glslang/GenericCodeGen/CodeGen.cpp
#	libraries/glslang/glslang/GenericCodeGen/Link.cpp
#	libraries/glslang/glslang/Include/BaseTypes.h
#	libraries/glslang/glslang/Include/Common.h
#	libraries/glslang/glslang/Include/ConstantUnion.h
#	libraries/glslang/glslang/Include/InfoSink.h
#	libraries/glslang/glslang/Include/InitializeGlobals.h
#	libraries/glslang/glslang/Include/PoolAlloc.h
#	libraries/glslang/glslang/Include/ResourceLimits.h
#	libraries/glslang/glslang/Include/ShHandle.h
#	libraries/glslang/glslang/Include/Types.h
#	libraries/glslang/glslang/Include/arrays.h
#	libraries/glslang/glslang/Include/intermediate.h
#	libraries/glslang/glslang/Include/revision.h
#	libraries/glslang/glslang/Include/revision.template
#	libraries/glslang/glslang/MachineIndependent/Constant.cpp
#	libraries/glslang/glslang/MachineIndependent/InfoSink.cpp
#	libraries/glslang/glslang/MachineIndependent/Initialize.cpp
#	libraries/glslang/glslang/MachineIndependent/Initialize.h
#	libraries/glslang/glslang/MachineIndependent/IntermTraverse.cpp
#	libraries/glslang/glslang/MachineIndependent/Intermediate.cpp
#	libraries/glslang/glslang/MachineIndependent/LiveTraverser.h
#	libraries/glslang/glslang/MachineIndependent/ParseContextBase.cpp
#	libraries/glslang/glslang/MachineIndependent/ParseHelper.cpp
#	libraries/glslang/glslang/MachineIndependent/ParseHelper.h
#	libraries/glslang/glslang/MachineIndependent/PoolAlloc.cpp
#	libraries/glslang/glslang/MachineIndependent/RemoveTree.cpp
#	libraries/glslang/glslang/MachineIndependent/RemoveTree.h
#	libraries/glslang/glslang/MachineIndependent/Scan.cpp
#	libraries/glslang/glslang/MachineIndependent/Scan.h
#	libraries/glslang/glslang/MachineIndependent/ScanContext.h
#	libraries/glslang/glslang/MachineIndependent/ShaderLang.cpp
#	libraries/glslang/glslang/MachineIndependent/SymbolTable.cpp
#	libraries/glslang/glslang/MachineIndependent/SymbolTable.h
#	libraries/glslang/glslang/MachineIndependent/Versions.cpp
#	libraries/glslang/glslang/MachineIndependent/Versions.h
#	libraries/glslang/glslang/MachineIndependent/attribute.cpp
#	libraries/glslang/glslang/MachineIndependent/attribute.h
#	libraries/glslang/glslang/MachineIndependent/gl_types.h
#	libraries/glslang/glslang/MachineIndependent/glslang.y
#	libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp
#	libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
#	libraries/glslang/glslang/MachineIndependent/intermOut.cpp
#	libraries/glslang/glslang/MachineIndependent/iomapper.cpp
#	libraries/glslang/glslang/MachineIndependent/iomapper.h
#	libraries/glslang/glslang/MachineIndependent/limits.cpp
#	libraries/glslang/glslang/MachineIndependent/linkValidate.cpp
#	libraries/glslang/glslang/MachineIndependent/localintermediate.h
#	libraries/glslang/glslang/MachineIndependent/parseConst.cpp
#	libraries/glslang/glslang/MachineIndependent/parseVersions.h
#	libraries/glslang/glslang/MachineIndependent/pch.cpp
#	libraries/glslang/glslang/MachineIndependent/pch.h
#	libraries/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.h
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
#	libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h
#	libraries/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
#	libraries/glslang/glslang/MachineIndependent/propagateNoContraction.h
#	libraries/glslang/glslang/MachineIndependent/reflection.cpp
#	libraries/glslang/glslang/MachineIndependent/reflection.h
#	libraries/glslang/glslang/OSDependent/Unix/CMakeLists.txt
#	libraries/glslang/glslang/OSDependent/Unix/ossource.cpp
#	libraries/glslang/glslang/OSDependent/Windows/CMakeLists.txt
#	libraries/glslang/glslang/OSDependent/Windows/main.cpp
#	libraries/glslang/glslang/OSDependent/Windows/ossource.cpp
#	libraries/glslang/glslang/OSDependent/osinclude.h
#	libraries/glslang/glslang/Public/ShaderLang.h
#	libraries/glslang/glslang/updateGrammar
#	libraries/glslang/spirv/CMakeLists.txt
#	libraries/glslang/spirv/GLSL.ext.AMD.h
#	libraries/glslang/spirv/GLSL.ext.EXT.h
#	libraries/glslang/spirv/GLSL.ext.KHR.h
#	libraries/glslang/spirv/GLSL.ext.NV.h
#	libraries/glslang/spirv/GLSL.std.450.h
#	libraries/glslang/spirv/GlslangToSpv.cpp
#	libraries/glslang/spirv/GlslangToSpv.h
#	libraries/glslang/spirv/InReadableOrder.cpp
#	libraries/glslang/spirv/Logger.cpp
#	libraries/glslang/spirv/Logger.h
#	libraries/glslang/spirv/SPVRemapper.cpp
#	libraries/glslang/spirv/SPVRemapper.h
#	libraries/glslang/spirv/SpvBuilder.cpp
#	libraries/glslang/spirv/SpvBuilder.h
#	libraries/glslang/spirv/SpvPostProcess.cpp
#	libraries/glslang/spirv/SpvTools.cpp
#	libraries/glslang/spirv/SpvTools.h
#	libraries/glslang/spirv/bitutils.h
#	libraries/glslang/spirv/disassemble.cpp
#	libraries/glslang/spirv/disassemble.h
#	libraries/glslang/spirv/doc.cpp
#	libraries/glslang/spirv/doc.h
#	libraries/glslang/spirv/hex_float.h
#	libraries/glslang/spirv/spirv.hpp
#	libraries/glslang/spirv/spvIR.h
#	src/CMakeLists.txt
2020-01-04 21:30:08 +01:00
drfrag
bdcb9fcbcd - Version 3.84. 2019-12-16 12:18:17 +01:00
alexey.lysiuk
1ca7786650 - added 'damageonland' property to terrain definition
This property helps to replicate vanilla Hexen behavior of damaging player right after touching lava floor

https://forum.zdoom.org/viewtopic.php?t=66512
2019-12-12 20:35:44 +01:00
Christoph Oelckers
d56e519bc7 - do not allow summon CCMD to spawn abstract classes 2019-12-12 20:35:42 +01:00
drfrag
e4c1b1413e - Replaced the useless 160x200 scale preset with widescreen 356x200. 2019-12-12 12:57:35 +01:00
Fabian Greffrath
78ace538a6 do not expect user input if stdin is redirected
If GZDoom is built on a POSIX system without the GTK frontend and not
run from a KDE session, an IWAD picker is presented on the terminal
and expects the user to select a game wad. However, if stdin is
redirected, this won't work, so start with the default IWAD instead.
2019-12-12 11:44:06 +01:00
drfrag
efb3465921 - Add option to reset controls to defaults. 2019-12-07 22:23:02 +01:00
alexey.lysiuk
73e6da259e - handle mirroring in MNTR sprite renaming
https://forum.zdoom.org/viewtopic.php?t=66583
2019-12-07 19:47:32 +01:00
alexey.lysiuk
d37ebc65f0 - updated xBRZ scaler to 1.8
Removed all C++17 features: std::clamp(), attribute [[likely]], terse static asserts, ...

https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.8.zip/download
2019-12-07 00:42:45 +01:00
Chronos Ouroboros
ab617c3a91 Fixed the JIT's OP_VTBL check not checking if it's already at the start of the code. 2019-12-07 00:42:41 +01:00
alexey.lysiuk
f463cf3e73 - fixed wrong display of Hexen AC for SBARINFO
Do not use BasicArmor's save percentage when no armor present
Applied change from 34c2c65bb6 to old status bar definitions
2019-12-01 10:59:12 +01:00
Christoph Oelckers
fd4473d7d2 - fixed: AActor::Revive did not restore flags8. 2019-12-01 10:59:05 +01:00
ZZYZX
0953f11a04 Normalize mouse events received by the modder through EventHandlers 2019-11-30 15:15:28 +01:00
alexey.lysiuk
e67e6b21c0 - added ability to force internal alternative HUD
Set hud_althud_forceinternal CVAR to disable unwanted HUD customizations
2019-11-26 16:48:08 +01:00
alexey.lysiuk
1a4f62c54f - added ability to set custom alternative HUD
Use GAMEINFO key 'althudclass' to specify own class derived from AltHud

https://forum.zdoom.org/viewtopic.php?t=66422
2019-11-26 16:47:54 +01:00
Rachael Alexanderson
ed654150eb - add cvar 'cl_customizeinvulmap' - changes the invulnerability… (#972)
* - add cvar 'cl_disableinvertedcolormap' - changes the invulnerability sphere to instead be a regular desaturated colormap that transitions from deep blue to pale yellow

* - add menu option for cl_disableinvertedcolormap

* - added customization for invulnerability colormap

* - fixed custom colormap being calculated incorrectly

* - disable custom invulnerability map before the main game loop

# Conflicts:
#	src/d_main.cpp
2019-11-26 14:53:19 +01:00
alexey.lysiuk
7160219b63 - exported several Wads.GetLump...() methods to ZScript
* GetLumpName() returns 8-characters lump name
* GetLumpFullName() returns full name with path and extension
* GetLumpNamespace() returns lump's namespace
* GetNumLumps() returns total number of lumps

https://forum.zdoom.org/viewtopic.php?t=66285
2019-11-25 18:16:42 +01:00
Player701
d7542a8cd9 - Implemented scale parameter for BaseStatusBar::DrawString
# Conflicts:
#	src/g_statusbar/shared_sbar.cpp

# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-11-25 12:10:58 +01:00
drfrag
0228a596de - Allow joystick input in the background by default. It's always allowed for XInput controllers and they work as DInput ones with DInput support disabled.
Besides on SDL1 they always worked like that.
2019-11-22 19:44:22 +01:00
alexey.lysiuk
21079752ba - fixed missing checks for function calls from DECORATE
State functions could call ZScript code with incompatible self pointer, e.g. weapon's function could be called with self pointed to player pawn
DECORATE scripts that contain such errors are no longer accepted

https://forum.zdoom.org/viewtopic.php?t=66429
2019-11-21 18:04:03 +01:00
drfrag
4977e6af1f - add native FlipLineSideRefs(line)
- FlipLineSideRefs should only work on single-sided lines
(patch by Rachael)
2019-11-16 14:01:47 +01:00
drfrag
74aa1763e6 Revert "- no, we do not want to use global variables to pass parameters around..."
This reverts commit 26a782031c.

Not applicable and caused lighting problems with models.
2019-11-16 13:35:23 +01:00
PaulyB
787f06d7f3 Added 'NoKeyboardCheats' option to IWADINFO
This is useful for IWADs that do not want to use the hardcoded engine cheats. This can still be overriden with the 'allcheats' CVAR
2019-11-13 19:34:44 +01:00
Rachael Alexanderson
3c030527af - cl_blockcheats added to 'nocheat' check 2019-11-13 19:34:41 +01:00
Rachael Alexanderson
4878da381b - new zscript function 'SetLineVertexes(line, v1, v2)'
- scriptify 'FlipLine' completely using new function, remove native version

# Conflicts:
#	src/maploader/postprocessor.cpp
2019-11-13 19:34:39 +01:00
3saster
7b454ef6c2 Added 'nocheats' CVAR (#969)
This CVAR disables all classic cheats (i.e. keyboard cheats). This prevents keypresses from being eaten due to attempting to read cheats
2019-11-13 19:34:34 +01:00
drfrag
44aeb56932 - add 'FlipLine' to 'LevelPostProcessor'
(patch by Rachael)
2019-11-13 19:34:28 +01:00
alexey.lysiuk
05f36cafc8 - extended level post-processing with special string arguments
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:26 +01:00
alexey.lysiuk
dca15d56c8 - extended level post-processing with thing IDs
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:23 +01:00
alexey.lysiuk
814483f5b8 - level post-processor cleanup
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:21 +01:00
alexey.lysiuk
7f1166e833 - level post-processor can now add new things
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:18 +01:00
alexey.lysiuk
05f0b76f8e - extended level post-processing with specials and arguments
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:16 +01:00
alexey.lysiuk
09e7fe5fb4 - extended level post-processing with editor numbers and angles
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:13 +01:00
alexey.lysiuk
20098ca90b - added things related getters to level post-processing
New functions cover existing interface only
Unsigned integers are now used instead signed for indices and bitfields

# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:11 +01:00
drfrag
91859bc6fa - added generic level post-processing script class
It was extracted from LevelCompatibility class, and native code was moved accordingly
(original patch by _mental_)

# Conflicts:
#	src/compatibility.cpp
2019-11-13 19:33:49 +01:00
drfrag
033f0ca43e Revert "- add 'flipline' function to levelcompatibility"
This reverts commit 1a85206983.

Revert "- implement the following functions under LevelCompatibility:"

This reverts commit 6537eca669.
2019-11-13 19:31:42 +01:00
alexey.lysiuk
29e4f34de6 - improved handling of return value mismatches
Prohibit returning more values than declared in function
The exception is a void function returning one value, but only for compatibility with old scripts

https://forum.zdoom.org/viewtopic.php?t=66341
2019-11-13 19:29:45 +01:00