Commit graph

18685 commits

Author SHA1 Message Date
Christoph Oelckers
e0b3bdaadc - fixed directory loader. 2023-08-23 22:09:58 +02:00
Christoph Oelckers
c6e2e0add2 - fix compilation 2023-08-23 18:26:42 +02:00
Cacodemon345
7c90ea6b84 - Convert the entire image backend infrastructure to be animation-friendly 2023-08-23 18:18:45 +02:00
Christoph Oelckers
53d8a5bb2c - Reverted JPEG XL support because the project is not really usable on vcpkg. 2023-08-23 18:18:45 +02:00
alexey.lysiuk
79be69ec4a - implemented FS_FullPath() function for POSIX 2023-08-23 14:57:22 +03:00
alexey.lysiuk
bfefc12427 - fixed a bunch of Linux and macOS compilation errors 2023-08-23 12:34:33 +03:00
Christoph Oelckers
e28d3b7f0b - fix directory check in POSIX directory loader. 2023-08-22 23:15:23 +02:00
Christoph Oelckers
be2f9c8660 - added DSDA's passover/nopassover keys to the MAPINFO parser. 2023-08-22 23:15:23 +02:00
Cacodemon345
99fd354dd9 Fix copyright mistake 2023-08-22 23:11:00 +02:00
Cacodemon345
145044ea34 Check if JPEG_XL is enabled instead of just relying on library existence alone 2023-08-22 23:11:00 +02:00
Cacodemon345
44a3bd719c JPEG XL implementation 2023-08-22 23:11:00 +02:00
Christoph Oelckers
5a1b858c0e - added some safety checks for reading empty lumps into a std::vector.
These can trip the internal safety checks, even though nothing gets read in.
2023-08-22 22:59:29 +02:00
Christoph Oelckers
42283f56ab - added a quick header check for WebP before loading the entire file for real identification.
This allows quick rejection of virtually everything that's not a WebP without loading the entire file first.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
1748477086 - use FileData for readinf WebP 2023-08-22 22:54:54 +02:00
Christoph Oelckers
c77ece4922 moved private definitions out of public headers. 2023-08-22 22:54:54 +02:00
Christoph Oelckers
ebb71cebf1 - put the entire filesystem code into a namespace and created some subdirectories. 2023-08-22 22:54:54 +02:00
Christoph Oelckers
94c9ee4593 - got rid of the remaining persistent std::strings in the file system.
This also uses the string pool now.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
929cae2f41 - rename File_Name back. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
8e250abe0a - fix lump name setup. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
54dc687436 - use the string pool for storing resource file names. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
6d2047eef6 - also use the stringpool for the lump names in the filesystem. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
3d673e3f20 - use a string pool to store the filenames in FResourceLump. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
4f8305de5f - use the lump cache directly for FileData.
This was the final puzzle piece to allow using memory mapped files. :)
2023-08-22 22:54:53 +02:00
Christoph Oelckers
2c2bf0265f - refactored all places which treated FileData as zero terminated. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
79e6d068a9 - got rid of the last two TArrays in the filesystem class. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
535eb9a853 - use std::vector in GetFilesInFolder 2023-08-22 22:54:52 +02:00
Christoph Oelckers
2a6fb6da84 - use better hash function.
This is djb2 which is supposedly one of the best string hashing functions around.
Avoids annoying dependencies and is a lot simpler and faster than the alternatives.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
5433430767 - FString is always gone. 2023-08-22 22:54:52 +02:00
Christoph Oelckers
3e3526f1ec - use a local hash function in the file system. 2023-08-22 22:54:52 +02:00
Christoph Oelckers
acd5911cd4 - StringPool class added
This is a specialized stripped doen FMemArena.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
4906d287cb - use std::vector<std::string> to pass the file list to InitMultipleFiles 2023-08-22 22:54:52 +02:00
Christoph Oelckers
a0d679b84b - FileData cleanup and uncoupling from FString.
Work is still needed to allow this to use the lump cache directly because some decisions in the past made this data padded by a zero byte.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
ca1d7fd539 - store longName in a std::string and use std::vector for FileInfo
TArray cannot handle std::string so this must both be changed together.
2023-08-22 22:48:06 +02:00
Christoph Oelckers
8a5d3c096b - return a std::string from GetFileFullPath 2023-08-22 22:18:54 +02:00
Christoph Oelckers
25b7b18c3d - got rid of the two copying variants of fileSystem.GetFileShortName. 2023-08-22 22:18:53 +02:00
Christoph Oelckers
c5b5b2b873 - cleanup. 2023-08-22 22:18:53 +02:00
Christoph Oelckers
eccbafc1bc - let FileData.GetString only return a const char pointer.
Not exposing the implementation will allow a lot more optimization in the backend and we also want to get rid of FString here.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
5398045f7d - got rid of FileSystem::GetFileData.
Using FMemFile is better in all these places.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
21d6eb99eb use std::vector as return value for the FileReader's buffer readers. 2023-08-22 22:18:21 +02:00
Christoph Oelckers
12c7413149 - handle ZLibError 2023-08-22 21:49:56 +02:00
Christoph Oelckers
7f024debfd - clean up includes in 3 files. 2023-08-22 21:49:56 +02:00
Christoph Oelckers
9f45cc0469 - use snprintf for FileWriter::Printf.
pulling in stb_sprintf here may be tricky if the consuming application uses different options, so better not use it here.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
def6bffdfc - use std::vector for the MemoryArrayReader 2023-08-22 21:49:55 +02:00
Christoph Oelckers
2671394961 - only use standard types in WriteZip's API. 2023-08-22 21:49:55 +02:00
Christoph Oelckers
825f92b274 - use std::string in FZipFile::Open 2023-08-22 21:49:55 +02:00
Christoph Oelckers
959d0e93f7 - fixed and cleaned up file_whres.cpp 2023-08-22 21:49:55 +02:00
Christoph Oelckers
f0bbc32bae - add m_swap.h to several files. 2023-08-22 21:49:55 +02:00
Christoph Oelckers
454af06acf - use a local byteswap header in the file system. 2023-08-22 21:49:55 +02:00
Christoph Oelckers
771fa2b51c - rewrote dir CCMD using ScanDirectory and avoiding I_ChDir entirely. 2023-08-22 21:49:55 +02:00
Christoph Oelckers
5f3d25ef44 - use ScanDirectory in all places where the findfile API was used.
This allows to completely hide its implementation details from the rest of the code which only gets a list of file names now.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
566a8f58a7 - disable dir CCMD.
The implementation of this one is garbage, it needs to be redone without I_ChDir.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
219b3fb9f9 - uncoupled directory loader from the rest of the engine. 2023-08-22 21:49:54 +02:00
Christoph Oelckers
5a32f98bde - first stage of uncoupling the file system from the engine.
This replaces several FStrings and TArrays with std::string and std::vector.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
2524ea6b0e - moved linked textures from file system to texture manager. 2023-08-22 21:49:54 +02:00
Christoph Oelckers
1dc47f91c2 - file system error management refactoring. 2023-08-22 21:49:54 +02:00
Cacodemon345
145450a044 WebP image support 2023-08-22 19:14:21 +02:00
alexey.lysiuk
ae2fa11963 - added safeguards against very early access to console variables in Cocoa backend
for an unknown reason, application activation functions can be called way too early during app launch
`S_SetSoundPaused()` function tries to read values of `i_pauseinbackground` and `i_soundinbackground` console variables before their initialization leading to a null pointer dereference

https://forum.zdoom.org/viewtopic.php?t=78092
2023-08-22 14:58:06 +03:00
Cacodemon345
22271d146a Switch to vcpkg for library dependencies 2023-08-21 21:12:00 +02:00
Christoph Oelckers
7fee89d1f5 - uncouple the file system from the engine's Printf function.
This is needed to use it in non GZDoom based projects.
2023-08-17 21:36:22 +02:00
Christoph Oelckers
9b790d23a8 - optimization of WideString and FileReader::Printf.
Both now omit the intermediate FString as the target buffer can be directly written to.
WideString was also moved to utf8.cpp/h to uncouple from zstring.
2023-08-17 18:45:33 +02:00
Cacodemon345
a4573b4ad1 Fix QOI image loading 2023-08-17 08:56:50 -04:00
Cacodemon345
2261dde791 Fix for Clang compilers 2023-08-14 19:30:50 +02:00
Cacodemon345
ce8753c6e1 Replace cxx_thread_local check 2023-08-14 19:30:50 +02:00
Cacodemon345
14a3cf8fc2 CMakeLists upgrade to 3.16 and cleanup
* Remove precompiled header hack
* Fixes for compilation on VS2022 Debug configurations
2023-08-14 19:30:50 +02:00
Christoph Oelckers
74b3d8e0a0 - optimized the QOI loader
* removed the intermediate pixel buffer
* instead of calling the file API for each single byte, load it into a buffer and use direct memory access. Using a file API like this can be magnitudes slower, depending on the underlying data.
* don't store the header in the image source object, it is never used again after validatipn.
2023-08-13 19:03:20 +02:00
Cacodemon345
c727e40e6c Add support for QOI image formats 2023-08-13 06:04:15 -04:00
Cacodemon345
fe7beaaf17 Add support for HDR canvas textures
Vulkan only.
2023-08-12 06:46:05 -04:00
Christoph Oelckers
b695e845e1 - eliminated several pointless string copies in network code. 2023-08-12 10:56:34 +02:00
Christoph Oelckers
46473b45da - use an FString to store the source for DHUDMessage 2023-08-12 10:29:04 +02:00
Christoph Oelckers
a675e4add8 - removed unused ReplaceString function. 2023-08-12 10:28:18 +02:00
Christoph Oelckers
16cefb7528 - some angle cleanup
* clean out the angle conversion helpers from basics.h.
* use degrees instead of radians in TMatrix3x3.
2023-08-12 10:10:27 +02:00
Christoph Oelckers
0c9b652583 - moved EStateUseFlags to a more fitting header and deleted unused RAD2BAM inlines 2023-08-12 09:38:41 +02:00
Christoph Oelckers
b5c1237f93 - removed NOVTABLE #define.
This was used on just two small base classes, the overall savings are zero.
2023-08-12 09:31:33 +02:00
Rachael Alexanderson
d99ed7628c - fix: always update psprite scaling 2023-08-10 02:07:31 -04:00
nashmuhandes
1e0309ea10 - block the centerview CCMD if the player has TOTALLYFROZEN. This is deliberately done this way, instead of placing the check inside PlayerPawn::CheckPitch, because there may be other situations where we don't want to block the centering function (APowerFlight::EndEffect being one such case)
- also while I'm in this file, fix code styling for another one of my previous submissions
2023-08-09 09:17:20 -04:00
Christoph Oelckers
a46c0a52b6 - re-added the UTF-8 char formatter which is needed for ZScript. 2023-08-09 11:52:08 +02:00
Christoph Oelckers
fdad3186a6 - replaced zstrformat with stb_sprintf.
The main advantage here is that this allows to get rid of the gdtoa dependency, it is also preferable to have some code here that's being maintained.
Feature-wise both are mostly identical, stb also support MSFT integer size modifiers and hexadecimal floats.
2023-08-09 11:51:46 +02:00
Christoph Oelckers
479795abe2 - fix duplicated variable resulting in an assert on startup.
static definitions in headers are evil! Don't do that!
2023-08-09 10:12:16 +02:00
Christoph Oelckers
d3fa699782 - updated stb_image.h. 2023-08-09 08:25:04 +02:00
Christoph Oelckers
979f4311fa - moved stb_image.h to third party folder. 2023-08-09 08:22:47 +02:00
RaveYard
ea4ffa10e5 A_Chase CHF_DONTLOOKALLAROUND 2023-08-07 11:31:08 -04:00
Rachael Alexanderson
5e5315a9b3 - silence warnings in shadowinlines.h line 88 2023-08-03 13:13:40 -04:00
Ricardo Luís Vaz Silva
1852f14f30 fix rare crash due to null caller 2023-08-02 01:05:24 -04:00
Ricardo Luís Vaz Silva
bcbb85b1dd Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and Weapon::ModifyBobPivotLayer3D 2023-08-02 01:05:24 -04:00
Ricardo Luís Vaz Silva
e6124627e4 allow explicit casts between vectors of different underlying types 2023-08-02 01:05:24 -04:00
Ricardo Luís Vaz Silva
9d0beeaafe Fix formatting for P_BobWeapon3D 2023-08-02 01:05:24 -04:00
Player701
eec08f0e24 - hopefully fixed the "is" operator to work with readonly pointers. 2023-08-02 00:42:40 -04:00
Boondorl
5a74e79b92 Added bounce virtual 2023-08-02 00:42:06 -04:00
Boondorl
fe1acc7f40 Localized fix to its own field 2023-08-02 00:41:39 -04:00
Boondorl
0cbbaece3b Fixed BlockingLine giving erroneous results
Fixed BlockingLine not clearing properly when xy velocity is 0
2023-08-02 00:41:39 -04:00
Ricardo Luís Vaz Silva
0149940a2a Add missing returns for untagged lines/sectors 2023-08-02 00:41:10 -04:00
Ricardo Luís Vaz Silva
793d6af5d1 add CountSectorTags/CountSectorTags/CountLineIDs/GetLineID 2023-08-02 00:41:10 -04:00
Boondorl
239a288a9a Exported reflection functionality
Localized reflection code to a single function. Fixed an error where NOSHIELDREFLECT was being checked on the wrong Actor. Fixed an oversight where MIRRORREFLECT was checking for valid target despite not needing one.
2023-08-02 00:40:01 -04:00
inkoalawetrust
150e893c67 Added ShadowAimFactor and ShadowPenaltyFactor.
These properties allow to specify how much an actors' aim is degraded when shooting at a shadow actor. And how much the shadow actor itself affects the shooters' aim, respectively.
2023-08-02 00:39:35 -04:00
inkoalawetrust
814c6f2188 Added MF9_SHADOWAIMVERT.
This flag causes the vertical aiming of monsters to also be affected when they aim at shadow actors.
2023-08-02 00:39:35 -04:00
inkoalawetrust
c729b831af Added MF9_SHADOWBLOCK.
Actors in the line of fire with this flag trigger the MF_SHADOW aiming penalty. The shooter needs to have MF9_DOSHADOWBLOCK to check for actors with this flag.
2023-08-02 00:39:35 -04:00
inkoalawetrust
162dbf0554 Added MF9_SHADOWAIM.
This flag allows actors with MF6_SEEINVISIBLE to still get an aim penalty by trying to shoot at a shadow actor.
2023-08-02 00:39:35 -04:00
inkoalawetrust
d882a41824 Added a ninth actor flag field. 2023-08-02 00:39:35 -04:00
inkoalawetrust
5b98eade91 Moved all the handling of MF_SHADOW for attacks into its' own file.
Also changed all the individual flag checks into one generic inline function.
2023-08-02 00:39:35 -04:00
inkoalawetrust
a7f76fe8b9 Added damage property to earthquakes.
When this property is set to any value above 0. The earthquake does the exact amount of damage specified, instead of a random amount.
2023-08-02 00:38:24 -04:00
inkoalawetrust
a38b151940 Added damage and thrust multipliers to quakes.
These properties allow for scaling the amount of damage an earthquake does and how much it pushes actors around.
2023-08-02 00:38:24 -04:00
inkoalawetrust
8d95138735 Added QF_DAMAGEFALLOFF.
This flag makes it so that the damage and actor thrusting of earthquakes fades with distance like the screen shake effect does.
2023-08-02 00:38:24 -04:00
inkoalawetrust
194f73a94b Added (XF/RADF)_CIRCULAR.
This flag makes explosions use a spherical radius, instead of a cubic one. Only took almost 30 years.
2023-08-02 00:37:58 -04:00
inkoalawetrust
ca1f3ac580 Added (XF/RADF)_NOALLIES.
This flag allows explosions to not harm any actors that are friendly to its' source.
2023-08-02 00:37:58 -04:00
inkoalawetrust
6489b05db9 Added (XF/RADF)_THRUSTLESS.
This flag allows for explosions that do not thrust any of the actors caught in the blast.
2023-08-02 00:37:58 -04:00
Ricardo Luís Vaz Silva
6164d883c9 Fix Linux compilation 2023-08-02 00:37:24 -04:00
Ricardo Luís Vaz Silva
0192392256 Individual Joystick Enable/Disable Toggles 2023-08-02 00:37:24 -04:00
James Le Cuirot
b95dbaf914 Ensure local headers are used over system headers to avoid breakage
types.h was being picked up from webp rather than locally due to the
`include_directories` call for GTK (and therefore its -I arguments)
coming before the same call for the local sources. webp can be pulled in
via GTK -> gdk-pixbuf -> tiff -> webp.

This can be avoided by specifying `SYSTEM` or `BEFORE` as appropriate
when calling `include_directories`. I have done both for good measure.
2023-08-02 00:22:50 -04:00
RaveYard
98f4beabe8 Ignore UDMF lightmap keywords on sidedef as per ZDRay implementation 2023-08-02 00:22:17 -04:00
alexey.lysiuk
62f37079a7 - fixed compilation with Clang
src/common/scripting/backend/vmbuilder.cpp:869:88: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
src/common/scripting/backend/vmbuilder.cpp:916:85: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
2023-07-22 13:22:53 +03:00
Christoph Oelckers
81fb9a26b2 - backend update from Raze.
* add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings.
* null pointer type checks in the VM added to avoid crash on bad codegen.
2023-07-22 09:55:49 +02:00
Christoph Oelckers
f9a86c595c - fixed getRealLightmode: don't overwrite level->info->lightmode. 2023-07-21 14:55:59 +02:00
Joshua Watt
d2ac72129d posix: sdl: Stop reading STDIN on EOF
If EOF is read on stdin (such as when it is /dev/null), stop calling
select() on it. Otherwise, the code goes into an infinite loop
attempting to read from stdin which is always ready but never has any
data and it never calls the timer callback to progress.
2023-07-17 22:57:28 +02:00
Professor Hastig
4b49d9d185 fixed bad operator 2023-07-17 22:50:05 +02:00
Professor Hastig
666a99f204 lightmode refactor
* make all legacy light modes except 'Doom' MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config.
* user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware.
* MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting. Selecting one will always revert to the user's light mode selection.
2023-07-17 22:50:05 +02:00
nashmuhandes
be2616ca97 Fix missing serialization of LevelLocals' flags3 2023-07-15 20:05:39 +02:00
Jacob Alexander Tice
bcfa43b7d6 Replace .local/share/Steam with .steam/steam
.local/share/Steam doesn't exist on all distros, but .steam/steam does.
2023-07-05 21:40:32 -04:00
Ricardo Luís Vaz Silva
7235058f09 scan secondary library folders on windows 2023-07-05 21:28:42 -04:00
Ricardo Luís Vaz Silva
7e8bb6ea30 fix steamapps folder case 2023-07-05 21:28:42 -04:00
Professor Hastig
602c7c4e24 fix UMAPINFO boss action clearing.
This did not handle the case where the actions were cleared without adding new ones and also did not clear the MBF21 boss action flags.
2023-07-05 09:17:37 -04:00
Ricardo Luís Vaz Silva
71d4eb66f2 Clear Services Map during VM Shutdown 2023-06-28 20:19:43 +02:00
Ricardo Luís Vaz Silva
a8b8de94d6 misc cleanup/fixes 2023-06-26 23:28:26 +02:00
Ricardo Luís Vaz Silva
abcc0421e4 Fix size miscalculation for surfaceSkinIDs 2023-06-26 23:28:26 +02:00
Ricardo Luís Vaz Silva
c6978c23ab Disable FName as a native parameter 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
0e438f10f3 fix CMDL_HideModel 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
49eae74272 assert that FName is a POD and as such is passed directly on registers, so that if it changes to be a non-pod, it won't silently break parameters 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
61d68eb2d6 Rewrite changed model rendering code, and change how model skins are handled 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
b55ffdbfd3 major A_ChangeModel cleanup 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
5b85557ddb add TArray::AppendFill for appending a single value multiple times 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
30e7b30c45 Simplify DirectNativeDesc, allow FName as a native parameter 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
7dda6570ec remove memory leak in A_ChangeModel 2023-06-26 00:36:36 -04:00
Rachael Alexanderson
bc41356b35 - minor formatting fix 2023-06-19 04:38:35 -04:00
l2ksolkov
01dfcc7d95 Fix compilation on FreeBSD
Fixes #2073
Changes get_current_dir_name to functionally equivalent getcwd. Also moves "printf.h" to outside linux ifdef.
2023-06-19 04:31:18 -04:00
Christoph Oelckers
c675d60bac - finish the implementation for nosectionmerge. 2023-06-18 09:44:34 +02:00
Christoph Oelckers
4538236a38 - cleaned i_music.h off external dependencies.
* take I_BuildMIDIMenuList out of it
* pass the command line state to disable music from the init call.
* don't declare internal 'nomusic' variable in the header.
2023-06-17 09:49:15 +02:00
Christoph Oelckers
99c76a3ff5 - BCOMPATF_NOSECTIONMERGE is not safe for the self referencing sector hacks in the Final doom IWADs. 2023-06-16 21:53:42 +02:00
Christoph Oelckers
89d8c7b4fe - minor cleanup of i_soundinternal.h. 2023-06-16 20:51:26 +02:00
Christoph Oelckers
62b9243142 - made some changes to vectors.h so that it can be used without the floating point function replacements.
Using __has_include and providing fallback implementations.
2023-06-16 20:51:25 +02:00
Christoph Oelckers
40679294df - fixed some warnings. 2023-06-16 20:50:48 +02:00
alexey.lysiuk
3ddf72104b - added detection of macOS 14 2023-06-11 12:14:58 +03:00
alexey.lysiuk
170cc8d7ba - reduced string duplication in macOS detection 2023-06-11 12:14:35 +03:00
l2ksolkov
245dac814e Add missing include guards 2023-05-29 07:35:26 +02:00
Christoph Oelckers
acfe82b9a8 - Backend update from Raze. 2023-05-27 09:31:17 +02:00
Ricardo Luís Vaz Silva
1589afb46e Add Voodoo Zombie Compatflag 2023-05-14 08:14:47 +02:00
Chris Cowan
ca0db39027 Fix BUILD_SHARED_LIBS build option on Windows
This commit fixes the build error "unresolved external symbol GetModuleInformation" when the project is built on Windows with BUILD_SHARED_LIBS enabled.

Gzdoom must be linked against "psapi". When BUILD_SHARED_LIBS is off (default), it gets linked because the discord-rpc library is linked against it and then statically linked into the project. The issue is fixed by making Gzdoom itself explicitly link against "psapi" too.
2023-05-14 07:21:27 +02:00
Chris Cowan
6f964e8d35 add changeskill command 2023-05-14 07:20:09 +02:00
Ricardo Luís Vaz Silva
9ca30826db Fix win32 mouse cursor permanently disappearing 2023-05-14 07:15:41 +02:00
Rachael Alexanderson
a5f0174e07 - addendum to previous commit: forgot one line 2023-04-30 10:50:14 -04:00
Rachael Alexanderson
e5fcb331df - remove vid_gpuswitch and all its handling; it is only as of now useful in old unsupported versions of Windows 7/8/10 which are no longer supported 2023-04-30 10:38:46 -04:00
Ricardo Luís Vaz Silva
86bc9cafd4 Fix value of X = Y when Y is an int constant 2023-04-12 22:57:06 +02:00
Christoph Oelckers
e3f8230035 - fixed handling for Turkish i's.
* islowermap and isuppermap were not set for the new characters.
* special handling for the lowercase dotted i in allcaps fonts returned the wrong character.
2023-04-05 19:01:19 +02:00
Mitchell Richters
f1f6e3a607 - Move invertmouse CVARs into common code.
* Removes duplication of CVAR definitions between Raze and GZDoom.
2023-04-04 17:11:28 +02:00
Mitchell Richters
034202e6f6 - Properly fix default mouse x sensitivity. 2023-04-04 17:08:02 +02:00
Christoph Oelckers
25c984ff6e - fixed crash when checking the extended character list for the current language.
For English this will be null because it got no extended characters.
2023-04-03 17:03:44 +02:00
Christoph Oelckers
15465f0785 - backported RapidJSON fix from Raze. 2023-04-01 12:45:55 +02:00
Christoph Oelckers
7e1982fa65 - adapted font system to properly handle Turkish.
Those i's are really messy, especially when dealing with allcaps or pure lowercase fonts.
2023-03-31 17:40:19 +02:00
Christoph Oelckers
9fbac8f1d4 - moved all service code to 'common'.
This needs to work on Raze as well!
2023-03-26 10:55:09 +02:00
Christoph Oelckers
7537f415ce - update comment on SSBOs. 2023-03-26 10:43:27 +02:00
Christoph Oelckers
cffe67dcee - fixed a few warnings pointed out by GCC. 2023-03-26 10:35:33 +02:00
Christoph Oelckers
72d7a70732 - avoid arithmetics with literal null pointers in ParseCommandLine.
Also avoid using longs.
2023-03-26 09:49:40 +02:00
Christoph Oelckers
c1cb7783a6 - fixed a few more leftover Clang warnings. 2023-03-26 09:27:46 +02:00
Christoph Oelckers
ee5b6e45f8 - made D_WriteUserInfoStrings memory safe.
Its callers are anything but for now but this function was the main blocker for refactoring so it had to come first.
2023-03-26 09:27:26 +02:00
Christoph Oelckers
cbff526cc7 - updated RapidJson library.
This still needed the Nan hotfix to be reapplied. The problem hasn't been addressed yet. :(
2023-03-26 08:48:54 +02:00
Christoph Oelckers
47b76180d6 - fixed several warnings emitted by Clang. 2023-03-26 08:48:54 +02:00
Ricardo Luís Vaz Silva
9e19134016 Fix possible memory corruption in TArray::Delete(index, count) 2023-03-22 18:59:59 +01:00
RaveYard
c041b437e1 Use simpler constructor for TArray in FBlockThingsIterator 2023-03-19 16:11:07 +01:00
RaveYard
9514d1b120 Fix TArray allocating 0 bytes in constructor 2023-03-19 16:11:07 +01:00
CandiceJoy
89fb5d0a92 Fixed incorrect parameter type in A_CheckForResurrection. 2023-03-18 08:47:19 +01:00
John Stebbins
c3d99fa699 Allow GAMEINFO LOAD to load directories
Addresses part of enhancement issue #2011
2023-02-23 18:35:15 +01:00
Christoph Oelckers
7acf23f213 - fixed typo in string label. 2023-02-19 12:47:16 +01:00
Ricardo Luís Vaz Silva
590475a8e3 Improve Services 2023-02-19 08:11:08 +01:00
Magnus Norddahl
b0dfa06201 Add dynamic light support to true color slope drawer 2023-02-19 08:06:49 +01:00
Magnus Norddahl
99f2b5d891 Fix misc bugs for dynamic lights in the pal slope drawer 2023-02-19 08:06:49 +01:00
Magnus Norddahl
18bc384807 Add dynamic lights to pal slope drawer 2023-02-19 08:06:49 +01:00
Christoph Oelckers
087050c201 - use uniform buffers for dynamic lights everywhere.
Branching on SSBO content does not work that well on NVidia so it is better disabled.
So far only implemented for OpenGL - Vulkan needs more work.
2023-02-18 12:22:26 +01:00
Ricardo Luís Vaz Silva
b84bf176e1 Fix Software Slope Rendering for non-1.2 pixel ratios 2023-02-17 14:15:46 -05:00
Rachael Alexanderson
4475240da8 - rename the flags MNOTVISIBLE and VISALWAYSFAIL to MINVISIBLE and MVISBLOCKED respectively, to reflect what they really do 2023-02-15 11:51:48 -05:00
Rachael Alexanderson
ee18123f01 - check VISALWAYSFAIL against SF_IGNOREVISIBILITY 2023-02-15 10:47:31 -05:00
Rachael Alexanderson
45f67bdd50 - add +VISALWAYSFAIL flag 2023-02-14 23:14:35 -05:00
Rachael Alexanderson
8af2f5aaf6 - add +mnotvisible flag as per feature suggestion: https://forum.zdoom.org/viewtopic.php?t=77277 2023-02-13 13:32:44 -05:00
Rachael Alexanderson
ea720605d4 Revert "Fixed an error where implicit pointer casts should've failed but didn't."
This reverts commit 68d3f474ce.

# Conflicts:
#	src/common/scripting/backend/codegen.cpp
2023-02-11 11:30:05 -05:00
Christoph Oelckers
17800f2504 - removed bad #include 2023-02-11 12:37:28 +01:00
Christoph Oelckers
f6bfc48d9f - Backend update from Raze. 2023-02-11 12:05:45 +01:00
CandiceJoy
68d3f474ce Fixed an error where implicit pointer casts should've failed but didn't.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-02-11 00:02:51 -05:00
Emile Belanger
c41b07531a Fixing GLES mode to work on real GLES hardware and OpenGL 2 again 2023-02-10 13:44:11 -05:00
CandiceJoy
a5a7e2d19b Added the rest of the Apple frameworks used.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-02-09 17:42:51 -05:00
CandiceJoy
ef0dcc9956 Easier MacOS Compilation w/Open AL
Added frameworks CoreAudio and AudioUnit for OpenAL on Mac.

Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-02-09 17:42:51 -05:00
Ricardo Luís Vaz Silva
1dcdfcc4d3 Mark const methods as const in pseudo-generics 2023-02-09 17:02:40 +01:00
Ricardo Luís Vaz Silva
569263efe9 Extend pseudo-generics system used by maps to dynarrays 2023-02-09 17:02:40 +01:00
Rachael Alexanderson
e29011ecde - (win32) increase compatibility with indirect renders/inputs - instruct the operating system that the cursor is actually hidden - for some API's this actually gives a hint that the cursor is grabbed, which allows for relative mouse movement. In particular, Parallels and Microsft RDP need this. 2023-02-07 13:47:39 -05:00
Rachael Alexanderson
4ac76d82d8 - redirected maps need to be defined in order to redirect 2023-02-03 20:21:40 -05:00
Ricardo Luís Vaz Silva
b50d7f4db5 Let custom CVar handlers to be called on cloned cvars 2023-02-01 10:35:28 -05:00
Rachael Alexanderson
82b7e93d26 - oops, nullptr check 2023-02-01 10:23:30 -05:00
Rachael Alexanderson
33b217bcc9 - unlatch cvars before checking cvar map redirections 2023-02-01 01:56:10 -05:00
Rachael Alexanderson
04ea28defc - add RedirectCVAR directive for loading alternate maps based on a Bool CVAR setting 2023-02-01 00:06:01 -05:00
Ricardo Luís Vaz Silva
c8f3aa3fd1 ZScript Custom CVars -- ONLY WORKS FROM THE CONSOLE 2023-01-29 14:42:20 -05:00
Ricardo Luís Vaz Silva
8dbe0ae353 Don't change static variable when updating callback for single CVars 2023-01-29 14:42:20 -05:00
Emile Belanger
7349c95623 Fixes bones when using OpenGL 3.3 (UBO bone data) 2023-01-29 20:03:58 +01:00
Emile Belanger
c8bd2deb1e GLES: Fix first wipe 2023-01-29 20:03:05 +01:00
CandiceJoy
4d9e60574d Added scroll bar for wad picker to Linux.
Min height is set to 150 for GTK3, or none for GTK2.

Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-29 04:14:20 -05:00
Christoph Oelckers
ec04a95929 - validate the buffer size in HWViewpointBuffer::Set2D.
This was causing crashes in Dragon Sector when writing past the buffer's end.
2023-01-27 18:25:13 +01:00
CandiceJoy
70d355cfa3 Fixed a bug where calling an invalid virtual function would cause a crash. 2023-01-26 08:52:23 -05:00
Hugo Locurcio
ad49d52b1c Add cvars to sprite shadows progressively according to thing <-> floor distance
This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.

When enabled, this has two benefits:

- It becomes easier for the player to judge an entity's height since
  the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
  which looked strange.
2023-01-25 17:43:04 -05:00
Boondorl
2d94321887 Added OnEngineInitialize() for static event handlers 2023-01-25 17:41:48 -05:00
Ricardo Luís Vaz Silva
4c7e9c6193 Change CheckValue to multi-return, due to unsupported out int/bool 2023-01-25 17:32:54 +01:00
CandiceJoy
1e39202484 Added check for invalid class on in-VM instantiation
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-24 22:10:34 +01:00
Emanuele Disco
faaf938b18 refactor: add some logs to help understand what is happening during soundfont selection.
It helps understand what soundfont is currently used

refs: https://github.com/ZDoom/ZMusic/pull/44
2023-01-24 07:19:23 -05:00
Ricardo Luís Vaz Silva
b47aa37919 Add missing methods (GetIfExists/CheckValue) to Map pseudo-generics 2023-01-23 17:15:08 +01:00
Hugo Locurcio
2fa88aa5a7 Implement antialiasing for automap lines
This implements a bruteforce approach for 2D line antialiasing.
It's not perfect by any means, but it seems to do its job well enough.
Since it draws 9 lines instead of 1 line per segment, it's significantly
more expensive but should still be usable on modern hardware (except
on very complex maps).

Automap line antialiasing is disabled by default and can be enabled
with the `am_lineantialiasing 1` cvar.
2023-01-21 11:40:25 -05:00
Ricardo Luís Vaz Silva
a397a93c25 Add Missing Read Barriers to Map Get Functions 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
fed2d11be5 Fix iterator invalidation for Map::Get 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
decba68225 Map::GetIfExists and Map::CheckValue 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
ed6384edc6 Add internal variable support to files outside gzdoom.pk3 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
d4e9438273 rename CheckWritable to IsWritable, and invert its output since it's always negated 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
da06212134 Add mDefFileNo to Fields 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
5ba1e96d29 Add mDefFileNo to Classes/Structs 2023-01-20 22:34:26 +01:00
Boondorl
f6128f0e9e Fixed global TerrainDef array not being exported correctly 2023-01-20 22:33:12 +01:00
Rachael Alexanderson
20eb821acb - indicate in the startup window title when GZDoom is compiled for ARM64 Windows 2023-01-17 02:36:21 -05:00
Sally Coolatta
45796505de Fix two different portable names
M_GetConfigPath uses GAMENAMELOWERCASE_portable.ini, but IsPortable() checks for GAMENAME_portable.ini. Doesn't have much of an impact on base GZDoom since it's case-insensitive, but can matter for engine forks -- IMO it should just be consistent either way.
2023-01-16 23:22:36 -05:00
Marisa Heit
258f4b6786 Check all ACS functions for minimum number of arguments.
Also fixes SpawnForced not respecting the minimum declared in zspecial.acs. (https://forum.zdoom.org/viewtopic.php?t=77027)
2023-01-16 16:53:10 +01:00
Boondorl
dd7cb8649f Exported LinePortals
Added helper functions for lines related to portals
2023-01-15 22:01:37 +01:00
Christoph Oelckers
3ea49a66d1 - cleaned up the pitch management in the sound backend.
This now treats all pitch methods equally instead of the preferential treatment of Doom's original pitch hack. Most importantly, the sound channel now stores the pitch as a floating point value instead of 9.7 fixed point.
snd_pitched now also gets checked in the sound engine, not the low level interface.
2023-01-15 14:01:37 +01:00
Christoph Oelckers
5b7826f68b - set lightblendmode to 0 when setting up a 2D viewpoint.
2D never uses dynamic lights so this should always be 0 - and eliminates another place in the backend referencing game data.
2023-01-15 09:21:01 +01:00
Christoph Oelckers
1561616498 - pass colormap to MakeGoodRemap as parameter.
Removes a Doom dependency and avoids double reading of the COLORMAP lump.
2023-01-15 08:34:32 +01:00
Christoph Oelckers
bafd6be342 - removed backend dependencies on game data. 2023-01-15 08:23:26 +01:00
Christoph Oelckers
c8b3d95d6f - backend update from Raze. 2023-01-15 08:23:26 +01:00
Kevin Caccamo
26518f8660 Fix Y position of characters in monospace fonts
The issue was either a typo, or a false assumption that all monospace font characters would be in squares on the sheet. Fixes #1937
2023-01-15 07:41:54 +01:00
Ricardo Luís Vaz Silva
5e464d3e93 expose WallMask and ignore actor, allow disabling Actor Tracing for LineTracer::Trace 2023-01-14 11:33:22 -05:00
inkoalawetrust
458142eb8b Added flags to SetPlayerProperty.
Added all of the missing player cheats to the SetPlayerProperty special.
2023-01-14 11:32:21 -05:00
inkoalawetrust
6f4a29b5e5 Added APROP_WaterDepth. 2023-01-14 11:31:22 -05:00
Major Cooke
aed72f58f3 Converted A_Quake(Ex) intensity parameters from ints to doubles. 2023-01-14 11:30:00 -05:00
Ricardo Luís Vaz Silva
9468ff85a2 Add missing error for mapinfo tonemap 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
1ebd4f0d41 Add Tonemap support for Unclamped lighting mode 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
8e7897233e Add Alternate Light Blending Options 2023-01-14 11:29:12 -05:00
Rachael Alexanderson
aa061562cd - manually reimplement pull request #1850 2023-01-14 11:23:10 -05:00
yqco
e0275df931 CCMD listmaps: Colorize maps loaded from pwads in blue text
Colorize maps added from pwads differently so they stand out better
2023-01-14 07:58:16 +01:00
Ricardo Luís Vaz Silva
80d1c61714 Fix MapIterator<X, String>::GetValue 2023-01-14 00:30:43 +01:00
Boondorl
3dce874621 Exported bounce functions 2023-01-12 17:44:28 +01:00
CandiceJoy
955a841884 Fixed a bug where static events would fail to halt propagation.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-12 17:43:09 +01:00
Marisa the Magician
81e7d77b44 Fix diffuse-only material shaders not applying. 2023-01-12 17:01:59 +01:00
Rachael Alexanderson
cb3662dc24 - fix nullptr crash 2023-01-11 13:33:02 -05:00
Boondorl
769796800d Minor tweaks to no player clipping 2023-01-09 12:31:08 -05:00
Rachael Alexanderson
af0f84183a - fix a few errors in last commit 2023-01-09 12:02:41 -05:00
Rachael Alexanderson
5aba0c144c - optimize P_ShouldPassThroughPlayer checks - move down in the check list, move thing->player check out of the function 2023-01-09 11:53:24 -05:00
Rachael Alexanderson
9777cfd500 - change P_ShouldPassThroughPlayer to static inline to improve performance on repeated calls 2023-01-08 22:12:37 -05:00
nashmuhandes
2fa2533982 - enable DM support for sv_noplayerclip
- fixed voodoo dolls with sv_noplayerclip
- fixed autoaim working incorrectly with sv_noplayerclip
2023-01-08 22:55:10 +08:00
nashmuhandes
3d6cc47dc1 Add sv_noplayerclip to allow players to walk through and shoot each other (only in coop) 2023-01-08 19:10:49 +08:00
Christoph Oelckers
aceafecce6 - optimized sheet font texture generation.
Instead of reloading the base image over and over again, let's cache it so that less time is needed for each single character.
2023-01-07 19:12:19 +01:00
Christoph Oelckers
4c751db489 - silence some warnings. 2023-01-07 18:35:30 +01:00
Christoph Oelckers
1a0aa95ff4 - changed return value of CreatePalettedPixels.
The new struct will allpw return of static pixel data without reallocation and copying.
2023-01-07 17:55:55 +01:00