Commit graph

731 commits

Author SHA1 Message Date
Christoph Oelckers
51518d63a4 - cleanup of mouse input code and removal of all magic factors.
Sensitivity scaling of both axes is now exposed as a raw factor to the user instead of obscuring it behind an unclear 'prescale' boolean.
This also consolidates the coordinate processing code to prevent such discrepancies as were present here from happening again.
Migration code for old config settings is present so that this change does not affect existing configurations.
2020-09-28 21:13:34 +02:00
Christoph Oelckers
348f9ae68c - moved i_net into 'common' to bring it in line with Raze. 2020-09-27 12:30:54 +02:00
Christoph Oelckers
db895b43b2 - copied constexpr declarations plus a few fixed in utility code and fixed a few places where this triggered a compile error now. 2020-09-27 08:36:30 +02:00
Christoph Oelckers
03d25b75da - fixed height fudging for Heretic's sky textures. 2020-09-26 21:13:00 +02:00
Rachael Alexanderson
b11298afd5 - rename 'AlwaysCenterStatusBar' to 'FixUnityStatusBar', original name became a misnomer especially with updates that made it more specific in its use 2020-09-07 23:30:40 -04:00
Rachael Alexanderson
91a4e6aed4 - do unity data status bar correction only if stbar is in an iwad 2020-09-05 06:18:41 -04:00
Rachael Alexanderson
d1a6831f06 - disallow unity iwad status bar adjustment if offset is already set 2020-09-04 21:30:31 -04:00
Rachael Alexanderson
6c514a4cc4 - For status bars for the Unity iwad - only force offsets if the width is greater than 320. 2020-09-04 08:39:01 -04:00
Rachael Alexanderson
0204051381 - add support for the (as of now) newest version of the Unity re-releases 2020-09-03 23:40:00 -04:00
dondiego
560bbf0a9c
- Add the DF2_NO_COOP_THING_SPAWNDM flag to prevent spawning MP things in coop. (#1165) 2020-08-29 15:08:08 -04:00
Rachael Alexanderson
bda49d0bf7 - demote pwad defcvars error to a warning 2020-08-01 06:01:29 -04:00
alexey.lysiuk
18f2cf0fdc - exposed menu blur amount to engine interface
https://forum.zdoom.org/viewtopic.php?t=69056
2020-06-20 12:06:49 +03:00
alexey.lysiuk
0d3134d825 - assigned endoom lump name after mapinfo is parsed
https://forum.zdoom.org/viewtopic.php?t=69032
2020-06-19 10:53:28 +03:00
Christoph Oelckers
712d80006a - split game dependent parts out of menudef.cpp. 2020-06-14 00:27:32 +02:00
Christoph Oelckers
90befff479 - moved out the Doom specific parts from menu.cpp and messagebox.cpp. 2020-06-13 22:43:35 +02:00
Christoph Oelckers
5dfe9918d0 - moved some event related code to 'common'. 2020-06-13 20:31:57 +02:00
Christoph Oelckers
a3c100a2ed - deleted the duplicate start screen class. 2020-06-12 23:10:19 +02:00
Christoph Oelckers
1279ec081a - Strip out any color escape sequences before setting a window title. 2020-06-02 21:49:53 +02:00
Rachael Alexanderson
5c86ad8507 - defcvars: handle values from a version 219 config 2020-05-23 09:08:40 -04:00
Rachael Alexanderson
192882f63a Merge branch 'master' of https://github.com/coelckers/gzdoom into texture_rework 2020-05-07 04:32:46 -04:00
Christoph Oelckers
3fd4d08004 - fixed startup and font init crashes. 2020-05-04 20:06:54 +02:00
PaulyB
a528290b5c Fix single top level filter folder not being read
I have no idea why the missing comma broke it in this particular way...
2020-05-03 11:26:57 +03:00
arookas
6b70cad6e1 Add option to invert mouse x 2020-04-30 08:54:10 +02:00
Christoph Oelckers
808a7d28cf - moved benchmark fps output to the custom part of it because it depends on game data. 2020-04-29 17:44:43 +02:00
Christoph Oelckers
6cf91d3941 - moved the remaining core parts of the GL renderer to 'common'. 2020-04-29 17:19:17 +02:00
Christoph Oelckers
ddef3f7b98 - made video base code game independent 2020-04-28 22:54:53 +02:00
Christoph Oelckers
2196b4fb04 - moved the frame rate drawer out of DFrameBuffer.
Too much of this is not shareable and all it consists of are drawing operations on the 2D drawer.
2020-04-27 23:53:26 +02:00
Christoph Oelckers
5f3e4a5d0e - did a bit of cleanup on DFrameBuffer, most notably taking GetCaps out of it.
With the old softpoly renderer and OpenGL 2.x being gone there is no more need for such complex handling, it is now a single function in d_main.cpp.
2020-04-27 22:24:41 +02:00
Christoph Oelckers
b9e3c9681b - moved a few files from 'rendering' to 'common'. 2020-04-25 21:52:21 +02:00
Christoph Oelckers
10bc37b37e - moved RenderView out of the framebuffer classes to complete the consolidation of the renderer's entry points. 2020-04-25 17:58:26 +02:00
Christoph Oelckers
72533e2f8a - redirect ST_Sound to a callback because the sound code is game specific 2020-04-23 22:33:43 +02:00
Christoph Oelckers
f8e23500c7 - moved Windows platform code as well. 2020-04-23 22:26:30 +02:00
Christoph Oelckers
612bf20809 - moved game state connections of the startup screen out of the backend code. 2020-04-23 00:02:34 +02:00
Christoph Oelckers
4da2351671 - fixed compile errors in POSIX platform code. 2020-04-22 20:42:13 +02:00
Christoph Oelckers
12e69adec3 - system backend cleanup.
This is mainly for running CI on Linux and macOS. Windws is already working.
2020-04-22 19:57:14 +02:00
Christoph Oelckers
b7ea483323 - fixed checkForHacks placement. 2020-04-19 19:52:03 +02:00
Christoph Oelckers
0eb68177ca Merge branch 'master' into texture_rework 2020-04-19 18:07:16 +02:00
Christoph Oelckers
6dfc416b51 - fixed setup of IPK3's where all content is in a subdirectory.
These never received the file name list that was needed to eliminate this directory from internal paths.
2020-04-19 13:04:29 +02:00
Christoph Oelckers
5a2a72fc95 - store the Vulkan descriptor sets in the material - where they belong!
Having them in the base texture object was a major maintenance issue.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
ef8e7a4944 - reworked the multipatch texture builder to reuse the FImageTexture objects. 2020-04-19 10:57:55 +02:00
Christoph Oelckers
718949f74d - moved the texture name to FGameTexture. 2020-04-19 10:57:53 +02:00
Christoph Oelckers
8843761bf8 - moved most of the texture size maintenance to the FGameTexture class. 2020-04-19 10:57:53 +02:00
Christoph Oelckers
70ec20c137 - optimization of texture scaling checks.
The texture dimension checks can be performed up front when the texture is inserted into the texture manager.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
662fa6e667 - removed the conversion helper code and fixed a few places where FMaterial was only used to access the hardware textures in the FTexture class. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
397b1520bc - deal with I_SetCursor 2020-04-19 10:57:48 +02:00
Christoph Oelckers
9099bc8420 - reworking some lower level texture code. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
b9b6a354c7 - changed all texture access in the play code to use FGameTexture and redid Hexen's front sky layer by adding a new texture instead of hacking the existing one. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
9e7094848c - transitioned the 2D drawer to FGameTexture. 2020-04-19 10:57:45 +02:00
Christoph Oelckers
d9928b51a8 - eliminated all cases of calling DrawTexture with an FTexture.
Everything uses FGameTexture now.
2020-04-19 10:57:45 +02:00
alexey.lysiuk
f0ca7fb213 - fixed compilation of Linux targets 2020-04-12 11:03:01 +03: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
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
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
f8e9cb8fbc - major dependency reduction of the texture system. 2020-04-11 20:20:37 +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
50e1efa965 - minor sound code cleanup
# Conflicts:
#	src/sound/backend/oalsound.cpp
2020-04-11 20:20:34 +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
ac610d87e5 - merged FPalette and PaletteContainer. 2020-04-11 20:19:53 +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
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
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
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
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
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
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
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
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
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
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
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
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
Christoph Oelckers
fabe772833 - moved high level code out of i_time.cpp. 2020-03-27 12:39:56 +01:00
alexey.lysiuk
747c6dcbc9 - customized invulnerability colormap does not interfere with Powerup.ColorMap
https://forum.zdoom.org/viewtopic.php?t=66955
2020-01-18 17:27:45 +01:00
Alexander Kromm
7973ab9c6b make nosave standalone CVar flag, alongside server and user 2020-01-16 17:52:58 +01:00
Alexander Kromm
eeddd72458 fix nosave cvar keyword (saved to config, not saved to savegame) 2020-01-06 12:07:07 +01:00
Alexander Kromm
b209fd9572 add "nosave" cvar token
It makes a cvar value not be saved in a save file.
2020-01-05 17:36:44 +01:00
alexey.lysiuk
651dfbc49f - fixed a few compilation warnings
src/d_main.cpp:280:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
src/rendering/r_videoscale.cpp:147:22: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
src/sound/s_reverbedit.cpp:250:18: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
2020-01-04 12:59:26 +02:00
Rachael Alexanderson
2b05bfed68 - implement 'defcvars'
# Conflicts:
#	src/d_main.cpp
2019-12-30 19:07:01 +01:00
alexey.lysiuk
388d800b40 - fixed compilation with GCC and Clang
src/d_main.cpp:3101:37: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
2019-12-25 17:44:57 +02:00
Rachael Alexanderson
2e467bd239 - update window title with current level name 2019-12-25 09:52:57 -05:00
Christoph Oelckers
e82565373f - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
2019-12-16 23:52:39 +01:00
alexey.lysiuk
47305a740f - removed redundant call to S_StopAllChannels()
It's the first thing that S_ClearSoundData() does anyway
2019-12-09 15:40:40 +02:00
Rachael Alexanderson
a3741abbf3
- add cvar 'cl_disableinvertedcolormap' - 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
2019-11-26 07:46:18 -05:00
PaulyB
a74be69371 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 17:34:42 +01:00
Rachael Alexanderson
e55a935220 - implement ccmd 'togglehud' for taking screenshots
- it disables most 2D drawing in order to favor a fullscreen output view for screenshot taking
  - enabling the console or any menu should cancel it
  - it does use several CVARs but their state should be restored when this mode is canceled
2019-11-03 03:51:22 -05:00
alexey.lysiuk
994960627b - added explicit clearing of global VM stask
When exception is thrown from JITed code, VM stask isn't cleared during unwinding
It needs to be clear explicitly to avoid memory leaks and references to destructed objects on shutdown

https://forum.zdoom.org/viewtopic.php?t=66172
2019-10-21 15:54:13 +03:00
alexey.lysiuk
f678b5d4d6 - fixed crash on closing fatal error window
Framebuffer was accessed after its destruction
2019-10-08 12:39:45 +02:00