Commit graph

16662 commits

Author SHA1 Message Date
Christoph Oelckers
7c46dace03 - this still doesn't work on Vulkan. :( 2020-04-19 10:57:44 +02:00
Christoph Oelckers
dd5de4ce51 - removed test code that forced all textures being warped. 2020-04-19 10:57:43 +02:00
Christoph Oelckers
8381092cce - major shader rework
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.

Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
alexey.lysiuk
b5c88957f0 - fixed detection of standalone IWADs
https://forum.zdoom.org/viewtopic.php?t=68218
2020-04-17 12:29:46 +03:00
Rachael Alexanderson
c1421b70cf Revert "- fixed: player spawn code should now always use defaults for the currently selected player class, not current flags"
This reverts commit 8dda7c02c9.
2020-04-15 07:02:58 -04:00
Rachael Alexanderson
8dda7c02c9 - fixed: player spawn code should now always use defaults for the currently selected player class, not current flags 2020-04-15 06:58:27 -04:00
Christoph Oelckers
3e02121822 - fixed setup of content ID in CreateTexBuffer. 2020-04-13 14:55:16 +02:00
Christoph Oelckers
e92be97f33 - let FSkybox inherit from FImageTexture to simplify the redirection of the base image for the software renderer. 2020-04-13 14:23:57 +02:00
Christoph Oelckers
9a3b663e04 - fixed text size calculations in the status bar.
To avoid errors, all spacing calculations have been added to FFont::StringWidth which already performs proper escape filtering.
2020-04-13 12:11:14 +02:00
Christoph Oelckers
17df95d69e - fixed startup-time setup of serverinfo CVARs.
Looks I completely forgot this part when refactoring the interface - it must account for the callbacks not doing anything due to the network code not being operational yet.
2020-04-13 11:53:08 +02:00
Christoph Oelckers
6722b64ac0 - fixed: Setting 'noallies' on the level cleared the player's friendly flag.
The check was for mobj->player, which at this point wasn't set yet so the check failed.
2020-04-13 10:54:40 +02:00
Christoph Oelckers
4b5c74f856 - reactivated saving of sounds by name, not by index. 2020-04-13 10:32:46 +02:00
alexey.lysiuk
d29c6a55eb - fix autoseg registration by moving start/end files back to src directory
Link order was wrong when building via Xcode project because CMake generator sorts files by paths
This made most of classes missing from corresponding segments, and the game crashes right after launch
2020-04-13 10:14:07 +03:00
Major Cooke
a56177f178 Begin TICRATE conversion.
- Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
2020-04-12 22:43:33 +02:00
alexey.lysiuk
9c23c0ac59 - fixed compilation with GCC 5 2020-04-12 11:50:11 +03:00
alexey.lysiuk
5a56f209d3 - fixed conditions with SND_PlayerReserve flag
src/sound/s_advsound.cpp:953:9: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
src/sound/s_advsound.cpp:1264:20: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
src/sound/s_advsound.cpp:1426:6: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
2020-04-12 11:49:47 +03:00
alexey.lysiuk
72c8df530f - fixed compilation of optimized GCC and Clang targets 2020-04-12 11:03:25 +03:00
alexey.lysiuk
f0ca7fb213 - fixed compilation of Linux targets 2020-04-12 11:03:01 +03:00
alexey.lysiuk
91914b728b - fixed compilation of Cocoa backend 2020-04-12 11:02:28 +03:00
alexey.lysiuk
2b1ef5f4f2 - common fixes for compilation with GCC and Clang 2020-04-12 11:02:05 +03:00
alexey.lysiuk
f5a98ed7fa - fixed CMake configuration
CMake Error at src/CMakeLists.txt:1188 (add_executable): Cannot find source file: gamedata/textures/bitmap.cpp
2020-04-12 10:59:09 +03:00
Christoph Oelckers
ab8d2ef62d - fixed serializer.
All includes of RapidJSON *must*(!!!) have the same #defines, otherwise incompatible code will be generated without any hint of a warning.
2020-04-11 22:53:26 +02:00
Christoph Oelckers
07e303f99b - fixed compilation. 2020-04-11 22:23:09 +02:00
Christoph Oelckers
8f8aed5ee3 - moved bitmap.cpp to 'common' and remove the duplicate IceRemap. 2020-04-11 20:23:26 +02:00
Christoph Oelckers
9dce6d88fa - use 'override' qualifier. 2020-04-11 20:21:00 +02:00
Christoph Oelckers
0cb2a1b8e9 - moved gl_load to common. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
295fa1e73f - header cleanup in gl_interface.cpp 2020-04-11 20:20:59 +02:00
Christoph Oelckers
1e40b745d5 - added some things from Raze to allow using the same code in both projects. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
5fe22c70b5 - moved the 2D drawer to 'common'. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
def123823b - cleanup of 2D code. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
ce4c2be3c7 - use the 2d drawer's size where appropriate. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
b18faacab0 - 2D drawer cleanup. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
ac1f4b8f11 - initialize native functions before the first query. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
932f5c64c2 - moved stats.cpp to common. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
fa99fc5346 - added global variants of the main 2D-draw functions taking an F2DDrawer as their first parameter.
This is a preparation for refactoring the calls to these so that they no longer require a 'screen' parameter.
2020-04-11 20:20:57 +02:00
Christoph Oelckers
3bf7686cfb - moved v_text.cpp to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
2e5bc3e962 - moved compiler frontend to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
466ed4e8f2 - separated the Doom specific parts of the ZScript parser from the core into a subclass. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
2838f5792c - moved all FString exports from vmthunks to stringformat.cpp. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
a28182fe35 - moved the script compiler's backend to 'common'. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
3454314bb1 - separated the Doom specific parts from the compiler backend into a separate file, these parts now get invoked via callback hooks. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
64dc9ac456 - moved around some bits of code. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
ef8b4c7d5e - put the state pointer serializer in a virtual function so that types.cpp can operate without any knowledge of Doom states. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
1ce11ff02a - dictionary can also go to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
f6bd2e4f76 - moved serializer to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
7b292cca57 - split the serializer in two to keep the Doom specific parts out of the main file. 2020-04-11 20:20:53 +02:00
Christoph Oelckers
f74efcf721 - split the TObjPtr serializers into a separate file to avoid polluting everything that needs to use the serializer.
To use these it is necessary to include dobject.h and all its dependencies, so this should not be done unless necessary.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
f02c5c0a56 - took InitializeDefaults out of PClass and moved it to PClassActor.
Like so many other parts, this created a hard dependency of the low level code on very invasive game content.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
74c5f83658 - moved most of the root marking out of the garbage collector, replacing it with callbacks.
Yet another place where low level code was tied too tightly to the game instead of providing a proper interface.
2020-04-11 20:20:52 +02:00
Christoph Oelckers
933c1f6403 - moved dumpactors CCMD out of dobject.cpp. 2020-04-11 20:20:52 +02:00
Christoph Oelckers
cf51508ce6 - moved around some pieces of code to make sharing with Raze easier. 2020-04-11 20:20:52 +02:00
Christoph Oelckers
f8ac9a2662 - moved DObject and core parts of the VM to 'common'.
# Conflicts:
#	src/common/objects/dobject.h
2020-04-11 20:20:51 +02:00
Christoph Oelckers
1a0ace4f88 - palette related fixes. 2020-04-11 20:20:40 +02:00
Christoph Oelckers
940f1dc9a2 - move font code to 'common'.
- fix use of translation slot 0, used for internal translations.
2020-04-11 20:20:40 +02:00
Christoph Oelckers
32300f7d26 - use translation slot 0 for reserved content, like font translations. 2020-04-11 20:20:39 +02:00
Christoph Oelckers
2dcf63c57d - backport some fixes from Raze - mostly redundant includes. 2020-04-11 20:20:39 +02:00
Christoph Oelckers
d586ffa79c - const-ified the palette pointers in the texture creation code.
- fixed includes.
2020-04-11 20:20:39 +02:00
Christoph Oelckers
65f15e1147 - moved the material class to 'common' as well. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
580e463498 - moved texture code to 'common'. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
5bde737be9 - split buildtexture.cpp in two.
The texture itself is 'common', but the setup is not.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
2ff93b4635 - added the missing blend modes to FRenderStyle. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
3e285d2261 - moved renderstyle and colortables code to 'common'. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
f8e9cb8fbc - major dependency reduction of the texture system. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
ab77416ddc - set transparent color 0 in the proper place. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
1ed170d955 - moved some data needed by the texture system into palettecontainer.cpp. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
be24023722 - split animation management out of the texture manager into a separate class. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
7d192decc7 - some cleanup of the texture code
* removed unneeded includes
* moved global brightmap to GPalette
* took Build tile init code out of the FTextureManager class, because this code is not compatible with how real Build games need to go about it, making the texture manager not shareable.
* removed dependency on higher level info from the Image class.
2020-04-11 20:20:35 +02:00
Christoph Oelckers
a13c7bd053 - moved sound code to "common". 2020-04-11 20:20:35 +02:00
Christoph Oelckers
018794f1dd - moved game specific data out of the sound backend.
In Raze I already had a user data array for that so this gets used here, too, now.
Also copied a few other fixes.
2020-04-11 20:20:35 +02:00
Christoph Oelckers
50e1efa965 - minor sound code cleanup
# Conflicts:
#	src/sound/backend/oalsound.cpp
2020-04-11 20:20:34 +02:00
Christoph Oelckers
cd9e2d3795 - moved music code to "common". 2020-04-11 20:19:55 +02:00
Christoph Oelckers
7d36af8840 - put things in their proper place. 2020-04-11 20:19:55 +02:00
Christoph Oelckers
00bbc48e70 - music.cpp include cleanup
- use a TMap to store music volume settings instead of using a homegrown linked list.
2020-04-11 20:19:54 +02:00
Christoph Oelckers
f0534afde6 - separated the game-dependent music lookup parts from the core player. 2020-04-11 20:19:54 +02:00
Christoph Oelckers
4af96bab47 - some cleanup on music code.
* change the license of the main file because there is no more id-based code here licensed under the GPL.
* moved VM interface definition out of the implementation.
* moved idmus CCMD out of implementation because it is dependent on Doom level definitions.
* moved s_music.cpp into the music folder with the rest of the music code.
2020-04-11 20:19:54 +02:00
Christoph Oelckers
56f2b2ac56 - reduce backend's dependency on game state by using callbacks. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
721b857e5e - minor FTexture cleanup. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
b4e9c3f20d - missed two things that need to be 'common'. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
ac610d87e5 - merged FPalette and PaletteContainer. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
f94e4a908c - m_png is common. 2020-04-11 20:19:52 +02:00
Christoph Oelckers
7243495b16 - moved special color maps to utilities.
The default tables are needed by the texture compositor which should be universal, so this needs to be, too.
2020-04-11 20:19:52 +02:00
Christoph Oelckers
db62aeb671 - c_cmds is not 'common'. 2020-04-11 20:19:52 +02:00
Christoph Oelckers
777f2ee7c6 - moved stringtable to 'common'. 2020-04-11 20:19:51 +02:00
Christoph Oelckers
b3c7b81893 - decoupled the string table from game implementation details.
Using callbacks now to query needed game state.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
c3a381ed92 - moved most of the console code to 'common'.
The main console.cpp file cannot be done yet, but the rest is ready to go.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
a712866219 - split out non-game specific CCMDs into their own file. 2020-04-11 20:19:51 +02:00
Christoph Oelckers
8dacdf2951 - use an array to store the buttons.
This puts a lot less knowledge about the game's features into the low level code.
2020-04-11 20:19:50 +02:00
Christoph Oelckers
0e7480b4ed - moved the file lookup functions to utilities.
# Conflicts:
#	src/common/utility/findfile.cpp
2020-04-11 20:19:50 +02:00
Christoph Oelckers
5dd89541fe - made console notification scrolling independent of the global game ticker variable. 2020-04-11 20:19:25 +02:00
Christoph Oelckers
d7a9bdc858 - moved key definitions to their own header.
- moved VM hooks to vmthunks.cpp.
- header cleanup for c_bind.h to avoid including high level game definitions.
2020-04-11 20:19:25 +02:00
Christoph Oelckers
756a743974 - uncouple console's cursor blinking from the game ticker.
This is now done in real time by the drawer.
2020-04-11 20:19:25 +02:00
Christoph Oelckers
31fbff85f4 - c_dispatch header cleanup and splitting of gamestate into a separate header, to avoid polluting low level code with game specific headers. 2020-04-11 20:19:25 +02:00
Christoph Oelckers
b7ff7302e5 - copied some CCMD improvements from Raze
* no longer uses copystring function.
* ability to dynamically register CCMDs.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
d63a6baa5d - removed the 'caller' parameter from the CCMD dispatcher.
This can never be anything but players[consoleplayer].mo, so there is no need to pass it through the interface.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
603ad755ab - separated the button code from c_dispatch.
Two separate features justify two separate files.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
4a50f78bfe - more work on console code. 2020-04-11 20:19:24 +02:00
alexey.lysiuk
0d420a75b7 - fixed compilation for Linux and macOS 2020-04-11 20:36:36 +03:00
Christoph Oelckers
76db26ee0b - split off the console's command line class into its own file. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
e425615770 - moved the V_GetColor family of functions to the global palette utilities. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
1479e3a1c3 - CVAR cleanup, in particular decoupling from game internals, which now get handled via callbacks. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
05239c63f9 - moved some palette related code into the 'common' folder. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
c713850dac - moved sc_man and palettecontainer to the 'common' folder. 2020-04-11 14:00:21 +02:00
Christoph Oelckers
98472d999b - moved name.cpp to 'common'.
Still got to find a way to handle namedef.h without polluting the low level code with game content.
2020-04-11 14:00:21 +02:00
Christoph Oelckers
a00c976245 - removed a large batch of unused names. 2020-04-11 14:00:21 +02:00
Christoph Oelckers
5ac88ebce2 - added some Raze-specific file system utilities so that both can work with the same code. 2020-04-11 14:00:21 +02:00
Christoph Oelckers
05d8856fe0 - moved file system implementation to 'common'. 2020-04-11 14:00:20 +02:00
Christoph Oelckers
80c6d5b276 - renamed more stuff and also moved the Strife teaser voice handling out of the file system. 2020-04-11 14:00:19 +02:00
Christoph Oelckers
c1bb7de23a - more file system refactoring.
* moved the sprite renaming out of the file system entirely into a caller-provided callback.
* renamed several functions to closer match the terms of a file system.
* moved the VM interface out of the implementation.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
6bccde3b51 - renamed the file system related classes to actually use the term "FileSystem". 2020-04-11 14:00:18 +02:00
Christoph Oelckers
83befa7686 - moved the "??? lumps" messages out of the single resource file handlers into the calling function and did a bit of include cleanup. 2020-04-11 14:00:18 +02:00
Christoph Oelckers
7d83dfa03a - moved the file names used for deciding to remove the root directory of zips out of the resource file management.
Yet again too much dependencies on game specifics in low level code.
2020-04-11 14:00:18 +02:00
Christoph Oelckers
135f159927 - pass lump filters as parameter when initializing the file system to reduce dependencies on high level state in the low level code. 2020-04-11 14:00:17 +02:00
Christoph Oelckers
d12a9bb77a - renamed the caching functions of FResourceLump. 2020-04-11 14:00:17 +02:00
Christoph Oelckers
510fc2d549 - added handler for Witchaven's sound resource files.
Useful for loading these to play the MIDIs. Since these files have no named directory, the content just gets inserted into a subdirectory named after the file with each entry given a 4 digit hex number as a name.
2020-04-11 14:00:17 +02:00
Christoph Oelckers
1574799683 - moved most parts of the Doom specific lump setup out of the file format implementations into the main class.
This is to keep as much higher level logic out of these as possible. The presentation of the data should be a concern of the file system, not the data containers.
2020-04-11 14:00:16 +02:00
Christoph Oelckers
ef300a9ea8 - lump flags cleanup. 2020-04-11 14:00:16 +02:00
Christoph Oelckers
025e80b74a - moved NeedFileStart out of the lump flag word into an empty part of the FZipLump structure. 2020-04-11 14:00:16 +02:00
Christoph Oelckers
a38633aa22 - moved the file name management out of the single resource lumps.
This is now being managed by the main file system class. The single lumps should only concern themselves with the actual data they manage, not with how the file system presents them to the outside.
The IWAD detection code was also switched to use a file system wrapper instead of looking at the single files directly.
2020-04-11 14:00:16 +02:00
Christoph Oelckers
89fb479c19 - moved the linkedTexture pointer up one level out of the resource descriptor into the file system record. 2020-04-11 14:00:15 +02:00
Christoph Oelckers
2e258e8cdb - include cleanup in Win32 folder. 2020-04-11 14:00:15 +02:00
Christoph Oelckers
fdc14ca805 - renamed fullscreen CVar internally to vid_fullscreen to make searching for it easier.
The word 'fullscreen' appears a bit too frequently in the source.
2020-04-11 14:00:15 +02:00
Christoph Oelckers
d523da1313 - make DumpCPUInfo return a string instead of letting it print the info itself. Also consolidated I_Init, because both existing versions were identical. 2020-04-11 14:00:15 +02:00
Christoph Oelckers
76352dd9b3 - moved the last remaining utilities. 2020-04-11 14:00:14 +02:00
Christoph Oelckers
5a1c4693de - moved SFMT to 'common'.
Now it is third party code with no hooks into higher level dependencies.
2020-04-11 14:00:14 +02:00
Christoph Oelckers
9ef6b15bfa - moved more stuff and split FRandom in two so that the high level baggage does not need to be pulled in to use the RNG. 2020-04-11 14:00:14 +02:00
Christoph Oelckers
fb1a7679ec - moved most basic utility code without any dependencies on the rest of the engine to 'common' directory.
Again the objective is easier sharing with Raze.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
ace3e29473 - removed the implicit conversion operators from FName.
These were creating dangerous interdependencies. It is better to do explicit conversions when needed.
As an added plus, this means that zstring.h no longer depends on name.h which was very annoying.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
e230420f88 - moved all character set utilities to utf8.cpp.
- moved matrix class to 'common'.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
669e8fbe48 - started some reorganization of low level utility code by moving all third party dependencies to a separate place. 2020-04-11 14:00:12 +02:00
Christoph Oelckers
820fe8b3f9 - split off the container for the translation data into its own file. 2020-04-11 14:00:11 +02:00
Christoph Oelckers
66a837f983 - took the translation slot definition out of the container and use a dynamic array to store the data. 2020-04-11 14:00:11 +02:00
Christoph Oelckers
cf757ba834 - made the translation container a class.
This also splits off some Doom-specific implementation details into higher level headers.
2020-04-11 14:00:11 +02:00
Christoph Oelckers
520a96033b - minimalized the interface to the translation tables to a small set of functions.
Now the internals can be refactored without affecting all using code.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
0a7344e432 - abstract the external translation interface.
The translation table array now only gets accessed from within r_translate.cpp.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
d00ad60437 - fixed a few issues pointed out by the assert in the TArray [] operator. 2020-04-11 14:00:10 +02:00
Christoph Oelckers
77c4a57c51 - allocate FRemapTable's content statically.
first step of organizing this data more renderer-friendly.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
b0ecb02d6b - move SuperFastHash to its own set of files, instead of having this tied to the console.
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
003294e598 - added printf.h header to avoid including more dirty ones for the console printing functions. 2020-04-11 14:00:09 +02:00
Christoph Oelckers
1fe667c6a0 - cleaned up the includes in m_png.h, this file had far too many and far too broad dependencies. 2020-04-11 14:00:09 +02:00
Christoph Oelckers
cc48f18303 - moved the dictionary implementation into the 'scripting' folder where it really belongs. 2020-04-11 14:00:09 +02:00
Christoph Oelckers
40e380f2c0 - updated m_argv.cpp from Raze. 2020-04-11 14:00:08 +02:00
Christoph Oelckers
6847ea027d - updated files.cpp with some new features from Raze.
Not really needed for GZDoom but it's convenient to have the files being identical.
2020-04-11 14:00:08 +02:00
Christoph Oelckers
c623b04170 - copied some fixes for overlong config entries from Raze.
- renamed basictypes.h to basics.h to keep the file name in line with Raze and make comparisons easier.
2020-04-11 14:00:08 +02:00
Christoph Oelckers
58afc3d5b2 - added some utilities to cmdlib.cpp and changed its license to BSD, because no original Quake code is left here. 2020-04-11 14:00:08 +02:00
Christoph Oelckers
3113c6b69b - removed 2 redundant string copies in CCMD code. 2020-04-11 14:00:08 +02:00
Christoph Oelckers
3db56651f4 - avoid using plain char pointers to store script data for FraggleScript. 2020-04-11 14:00:07 +02:00
Christoph Oelckers
5865c4dcca - use FString to manage strings in bot code. 2020-04-11 14:00:07 +02:00
Christoph Oelckers
6bfdf904b9 - removed use of copystring in Dehacked code and cleaned up the list of includes in cmdlib.cpp 2020-04-11 14:00:07 +02:00
Blue
52f1c8a0d1 Added $OPTVAL_MBFSTRICT to menudef.txt, and added corresponding case 7 to the compatmode cvar in d_main.cpp 2020-04-08 18:51:38 +02:00
Magnus Norddahl
0d7eb9da58 Revert "- Fix legacy input state getting out of sync when raw mouse input grabs or releases the events"
This reverts commit b4424b2d4d.
2020-04-08 16:21:16 +02:00
Lucy Phipps
2c1a42ae55
remove gl_texture_usehires since it's unused now
GLTEXMNU_ENABLEHIRES in language.csv is unused too
2020-04-05 13:22:32 +01:00
Christoph Oelckers
5490ffcd77 - removed the obsolete Doomsday 1.8-style texture pack support.
This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
2020-04-04 12:55:24 +02:00
drfrag
8336e80f48 - Fixed sprites sunk into water on Carmack with HQ resize modes. 2020-04-01 14:25:10 +02:00
dondiego
4bfb0e937f
- Fixed tutti-frutti and crash with liquid warp effects on the Carmack renderer when texture resizing was disabled. (#1063) 2020-03-31 19:17:41 -04:00
dondiego
cc0594df2e
- Use g_sin for the SoftPoly warp effects as Graf suggested. (#1061) 2020-03-31 10:25:46 -04:00
drfrag
cfafe65069 - OS detection cleanup. 2020-03-31 09:34:20 +02:00
Major Cooke
09a5771ad4 - Fixed: SPECTRAL flag didn't check for DMG_FORCED before aborting DamageMobj. 2020-03-30 12:16:16 +02:00
Magnus Norddahl
b4424b2d4d - Fix legacy input state getting out of sync when raw mouse input grabs or releases the events
- Remove the need to center the mouse by specifying RIDEV_INPUTSINK (RIDEV_CAPTUREMOUSE does not take effect unless it is also an input sink)
2020-03-29 07:48:58 +02:00
alexey.lysiuk
43eb262571 - fixed compilation of Cocoa backend
src/utility/i_time.h:6:15: error: redefinition of 'TimeScale' as different kind of symbol
2020-03-28 15:38:45 +02:00
alexey.lysiuk
51b46f1408 - removed detection of unsupported macOS versions 2020-03-28 15:38:05 +02:00
Christoph Oelckers
fabe772833 - moved high level code out of i_time.cpp. 2020-03-27 12:39:56 +01:00
Rachael Alexanderson
6049e806d1 - amend previous commit: add softpoly fix 2020-03-26 17:53:32 +01:00
Rachael Alexanderson
7c9d8a0b99 - fix nullptr crash in player.camera reference when player.camera is nullptr 2020-03-26 17:53:32 +01:00
nashmuhandes
f954df7a00 Don't draw weapon tags when player tries to switch weapons while they're dead 2020-03-25 14:44:41 +01:00
Rachael Alexanderson
ecb3ff0977 - add warp2 shader to softpoly2 2020-03-24 14:05:39 -04:00
Magnus Norddahl
175b697ba2 Implement warp effect 2020-03-24 17:49:21 +01:00
nashmuhandes
cb6514cc05 Added Actor.CopyBloodColor to copy another existing actor's blood color. 2020-03-23 21:04:59 +01:00
nashmuhandes
74db8b7684 Move the opaqueBlood member definition so that object size remains unchanged 2020-03-23 12:50:17 +01:00
nashmuhandes
dd0769de80 Opaque blood decals must be defined with 'OpaqueBlood' keyword in DECALDEF 2020-03-23 12:50:17 +01:00
nashmuhandes
8facd5f3f3 Colorize opaque decals using the bleeding actor's blood color, if the 'Shaded' keyword is omitted from the DECALDEF. 2020-03-23 12:50:17 +01:00
Rachael Alexanderson
5e262c6145 -- revert last 2 commits 2020-03-22 07:29:22 -04:00
Rachael Alexanderson
442bead31b - undo the change from last commit for 5:4 monitors - turns out the scale is calculated differently for 1280x1024 and needs the buggy version to work correctly. 2020-03-22 07:23:13 -04:00
Rachael Alexanderson
e7bad7218f - fix status bar scaling: use a fractional that takes full advantage of the precision type, rather than a static numerical constant. (this fixes rendering in very odd resolutions such as 1440x847) 2020-03-22 07:12:08 -04:00
Rachael Alexanderson
aa0df7479e - remove assumption in DFrameBuffer::FillBorder that ultrawide screens will stretch an image, since it is no longer the case. 2020-03-22 06:47:34 -04:00
Magnus Norddahl
d19527cf87 Fix compile error when using std::sort with Visual Studio 16.5.0 2020-03-18 21:11:44 +01:00
Christoph Oelckers
d32e0b91c2 - clear the screen before drawing content, not afterward.
The intermission screens got it wrong and drew the black border over the image.
2020-03-17 08:50:00 +01:00
Christoph Oelckers
15d4fb8fcd - fixed file existence check in TRNSLATE parser. 2020-03-17 07:57:59 +01:00
Christoph Oelckers
828cba13a1 - changed translation management so that the fonts also use translation IDs. 2020-03-16 17:23:30 +01:00
Christoph Oelckers
b7970ed763 - block StaticPointerSubstitution for non-player objects.
The only safe use of this function is to swap out PlayerPawns for morphing or respawning.
2020-03-16 09:21:37 +01:00
Christoph Oelckers
16ae7e3124 - fixed typo. 2020-03-15 12:19:22 +01:00
Christoph Oelckers
0c04cddd28 - allow specifying full palettes in translation definitions. 2020-03-15 10:22:42 +01:00
Christoph Oelckers
27b8284881 - forgot to remove the test settings for the fullscreen feature. 2020-03-15 10:02:19 +01:00
Christoph Oelckers
db5efddf12 - implemented better aspect ratio control for fullscreen images.
Due to backwards compatibility needs and for flexibility this needs to be controlled by a gameinfo setting (fullscreenautoaspect):

0: Treat all images as having an aspect ratio of 4:3, this is the default for compatibility reasons
1: Scale all images to fit the screen, i.e. either pillarbox or letterbox them.
2: Scale all images to fill the screen.
3: Scale all images so that the center 4:3 area is always fully visible. This is the recommended mode for 16:9 images designed to be shown with the sides being cropped on narrower displays.

A new DTA_ tag - DTA_FullscreenEx also exists which allows specifying the scale mode directly
2020-03-15 09:27:02 +01:00
Nash Muhandes
2edbbac759
Print weapon name tag when switching with "slot" command (#1048) 2020-03-14 14:17:04 +02:00
alexey.lysiuk
f46e80e2b4 - fixed FLineTraceData scripting definition
https://forum.zdoom.org/viewtopic.php?t=67795
2020-03-14 12:51:06 +02:00
alexey.lysiuk
b9d4ce052b - replaced assert() in ZScript fields compilation code
Field pointer can be null if error occurred while compiling its definition
2020-03-14 12:50:10 +02:00
alexey.lysiuk
13e6ea7796 - added line break to 'No GENMIDI lump' message
'ST_Init: Init startup screen.' is no longer concatenated with the given line
2020-03-13 13:33:11 +02:00
Christoph Oelckers
a638cfbd6e - fixed: player_t::GetPSprite cannot guarantee success
As a consequence it must return null in the failure case instead of asserting and all calls to this function must check for the failure case.
2020-03-11 00:56:29 +01:00
Christoph Oelckers
8613e47899 - default terrain's DamageTimeMask to a reasonable value.
Use 31, which is the default for damaging floor specials instead of 0.
2020-03-11 00:32:11 +01:00
Magnus Norddahl
920b322d72 Add missing segment clipping clamps for decals, sprites and wall sprites 2020-03-11 02:18:43 +01:00
Alexander Kromm
9daec9dc46 bring minimal save version back, as most of the savegames load fine 2020-03-08 18:46:37 +01:00
Alexander Kromm
b038c168c6 aggregate TMap into Dictionary instead of deriving from it 2020-03-08 18:46:37 +01:00
Alexander Kromm
3607ffaf66 fix Dictionary and DictionaryIterator memory leaks 2020-03-08 18:46:37 +01:00
alexey.lysiuk
fcf004ec39 - fixed infinite loop reporting '... before first state' errors
https://forum.zdoom.org/viewtopic.php?t=67729
2020-03-05 11:01:33 +02:00
Rachael Alexanderson
178cf40428 - fix debug assertion, cleanup vestigial A_PlaySound addition 2020-03-03 22:50:01 -05:00
Rachael Alexanderson
9e5444f8ae - fixed: removed startTime from the wrong function internally. 2020-03-02 22:15:37 +01:00
Rachael Alexanderson
3d3a29979b - remove addition from deprecated A_PlaySound 2020-03-02 22:15:37 +01:00
Rachael Alexanderson
5dfdac62ab - add checking in S_StartSound for startTime length 2020-03-02 22:15:37 +01:00
Rachael Alexanderson
1b80b7bf2f - ported over Nash's startTime for A_StartSound 2020-03-02 22:15:37 +01:00
Major Cooke
4cf7c6351d Added A_StopSounds(int chanmin, int chanmax).
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 19:42:21 +01:00
Major Cooke
55284d46bf Added A_StopAllSounds. 2020-02-29 19:19:51 +01:00
Christoph Oelckers
3a2eaf2bfd - fixed: Windows must call the wide version of _mkdir for Unicode support. 2020-02-25 18:51:42 +01:00
alexey.lysiuk
5d6a490846 - prohibit core shaders overriding for OpenGL renderer
https://forum.zdoom.org/viewtopic.php?t=67519
2020-02-25 15:57:50 +02:00
alexey.lysiuk
56311b765e - stop all sounds after exiting level regardless of intermission screen
https://forum.zdoom.org/viewtopic.php?t=67521
2020-02-23 16:16:23 +02:00
alexey.lysiuk
359e7927de - fixed comparison with uninitialized data in MAPINFO parser
This issue was reported by Valgrind
2020-02-23 13:43:47 +02:00
Rachael Alexanderson
04ce0b6ec6 - use GAMENAMELOWERCASE macro for music config defaults 2020-02-23 08:12:41 +01:00
alexey.lysiuk
45617043f8 - fixed arguments order for ZMusic_Start() function 2020-02-22 13:08:10 +02:00
johannes hanika
5ee864ab5b vid: remove explicit bit depth gl calls
this makes gzdoom start on xorg configured with 30bit/pixel deep
colour modes, too. it seems these explicit calls are not required,
and detection via SDL_GetWindowPixelFormat does not yet work with
extended bit depths, so detection + setting size to 8 or 10 depending
on the result is unreliable too (as of SDL 2.0.1).
2020-02-21 11:08:29 +02:00
Christoph Oelckers
5391382807 - removed CD audio support.
Mainly because this is an ancient deprecated feature on the system side that serves no good purpose anymore.
2020-02-18 21:53:30 +01:00
alexey.lysiuk
78bae1f166 - fixed wrong name assigned to dummy texture with zero ID
Texture created with image and name set to nullptr's is named after the very first lump, it's ALTHUDCF currenty
2020-02-17 15:37:56 +02:00
Christoph Oelckers
8ff888422e - force Greek to use the standard font in Heretic and Hexen.
Unlike the other games where only 7 characters need to be added to their all caps fonts, for the Raven games' lowercase fonts all Greek characters need to be entirely redone which right now is entirely unrealistic.
This can be changed back once a workable font exists.
2020-02-16 13:52:44 +01:00
Christoph Oelckers
653336de24 - fix character substitution for mixed case fonts and text update. 2020-02-16 13:51:31 +01:00
Christoph Oelckers
7a6b133e93 - Greek letters for Strife's Big and Mini fonts. 2020-02-16 12:44:16 +01:00
Christoph Oelckers
f4edfa23dc - reformattede getAlternative for compactness. 2020-02-16 08:58:57 +01:00
drfrag
68f338b134 - Fixed compilation with MinGW and did some cleanup. 2020-02-16 09:39:17 +02:00
Christoph Oelckers
e6aaab3c32 - remap accented Greek uppercase letters to their base variant instead of directly to the Latin/Cyrillic replacement. 2020-02-16 08:26:03 +01:00
Christoph Oelckers
9644e26ce3 - removed accented Greek characters from BigUpper font as well.
I think the same applies as for allcaps fonts, and aside from that the form of accents being used here is not correct for Greek anyway.
2020-02-16 00:04:22 +01:00
dondiego
e13e034cc4
SoftPoly only worked with Vulkan support on POSIX platforms (#1036)
* - CMake: fix wrong filename.

* - Fixed: SoftPoly only worked with Vulkan support on POSIX platforms.
2020-02-15 17:41:52 -05:00
Christoph Oelckers
7a86e7f043 - fix for Greek uppercase-only fonts.
In Greek for all-caps text there *must* not be any accents. As such, all accented characters now contain a default remap to the unaccented version and the accented characters in the already converted Doom Small and BigFont have been removed as these are all-caps fonts. Doom BigUpper still requires investigation how Smallcaps fonts need to be handled.
2020-02-15 23:32:52 +01:00
Magnus Norddahl
08e86b5bcc - fix vulkan crash when there are no textures in player's view 2020-02-15 10:42:46 +01:00
Christoph Oelckers
c485256c74 Merge remote-tracking branch 'remotes/origin/zmusic_dll' 2020-02-15 10:22:45 +01:00
Christoph Oelckers
85ff05c0b2 - missed these in the last commit. 2020-02-15 10:16:38 +01:00
Magnus Norddahl
dd2d9f4182 - Fix vk_hdr looking for the wrong colorspace 2020-02-15 09:46:24 +01:00
Christoph Oelckers
6aed119403 - backported a few sound code fixes from Raze. 2020-02-15 09:32:05 +01:00
Christoph Oelckers
617b6cd987 - use floats for sprite depth sorting in the hardware renderer.
Fixed point is clearly insufficient here.
2020-02-15 09:22:30 +01:00
Chronos Ouroboros
6486380dd1 Fixed a crash when trying to include a missing mixin. 2020-02-14 22:26:30 -03:00
Danilo Spinella
bd216695cc Add missing time.h include in cmdlib.h 2020-02-14 19:07:24 +01:00
alexey.lysiuk
2bde2d8268 - fixed 32-bit Linux build with SSE support enabled 2020-02-13 15:29:48 +02:00
alexey.lysiuk
c80bfcf9f6 - added missing #include
src/sound/music/i_soundfont.cpp:121:12: error: no viable overloaded '='
src/sound/music/i_soundfont.cpp:127:12: error: no viable overloaded '='
src/sound/music/i_soundfont.cpp:140:14: error: implicit instantiation of undefined template 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >'
2020-02-11 12:29:20 +02:00
Major Cooke
39a9a48ad6 Added source, inflictor and damage flags to AbsorbDamage. 2020-02-09 19:07:52 +01:00
alexey.lysiuk
a1b5ab6e9b - added ZMusic library detection to CMake configuration 2020-02-09 15:51:50 +02:00
Christoph Oelckers
2dd3c28d05 - transitioned engine to use ZMusic as a DLL. 2020-02-09 08:56:49 +01:00
Chronos Ouroboros
d22a4c835c Mixins now perform a deep copy of the AST. (Fixes default blocks in mixins) 2020-02-08 16:48:15 -03:00
Major Cooke
e13d43a576 Fixed colorization not being applicable to bottom wall textures. 2020-02-07 22:56:46 -06:00
Christoph Oelckers
77ed5b1fe8 - let freelook default to true. 2020-02-03 21:41:52 +01:00
Braden Obrzut
62e9e0cbbb - Change updaterevision to a CMake script
The benefit to this is fairly small, but it does mean a little less work needs
to be done in the build scripts for cross compiling. The C version wasn't
especially concise so it was not obviously better in any way.
2020-02-02 11:43:36 +01:00
alexey.lysiuk
d527866e6d - moved showing of start window banner to proper location in Cocoa backend 2020-02-02 11:29:17 +02:00
Christoph Oelckers
2817bc5508 - backported fix for loading VOC files.
In NAM there is one that needed a bit of extra treatment.
2020-02-01 17:34:06 +01:00
Chris Robinson
5b4c9eb7f6 Remove FSoundLoadBuffer since it wasn't doing anything 2020-02-01 17:11:26 +01:00
Chris Robinson
3c975f18bc Remove LoadSoundBuffered since its no longer called 2020-02-01 17:11:26 +01:00
Chris Robinson
30bdd0c2d4 Get rid of the LoadSound3D method
It no longer does anything since there's no separate buffer for 3D sfx.
2020-02-01 17:11:26 +01:00
Chris Robinson
d823091446 Update a couple comments about monoized sounds 2020-02-01 17:11:26 +01:00
Chris Robinson
e88b1039a3 Stop sources immediately when the sound is forced to stop
The reason for the previous delay was to allow OpenAL Soft to fade the sound to
silence and avoid a sudden amplitude change, which can cause a "click" or "pop"
noise. However, with OpenAL Soft 1.20, this is a built-in feature of the mixer
so the extra complexity is unnecessary.
2020-02-01 17:11:26 +01:00
Chris Robinson
c095872b0a Remove the 'monoize' option from sound loading
Unnecessary with the AL_SOFT_source_spatialize extension, which has been
available for over a year.
2020-02-01 17:11:26 +01:00
Chris Robinson
42fd84a09d Remove the fallback for lack of AL_EXT_SOURCE_RADIUS
It's been available in OpenAL Soft for years and the fallback method wasn't very good.
2020-02-01 17:11:26 +01:00
alexey.lysiuk
c58e98cc7f - fixed usage of floor sound with Plat_DownWaitUpStayLip special
https://forum.zdoom.org/viewtopic.php?t=67126
2020-01-31 13:21:14 +02:00
alexey.lysiuk
dd54c14380 - fixed code generation for very special if+switch combination
CheckReturn() must be called before emitting code, otherwise it will always return false for switch statements
Redundant jump instruction added because of that will point right after the end of function's code when if statement is the last one in the given function
This wasn't a problem for VM because bytecode in question was unreachable
JIT compiler tries to generate native code for a bogus jump destination, and this leads to out-of-bounds read from labels array

https://forum.zdoom.org/viewtopic.php?t=67149
2020-01-30 18:01:52 +02:00
alexey.lysiuk
f9906ae6cd - fixed I_FindAttr() to handle symlinks on POSIX platforms 2020-01-26 11:04:06 +02:00
alexey.lysiuk
d425d8d9ca - put common POSIX system code to a separate file 2020-01-26 11:01:13 +02:00