Commit graph

895 commits

Author SHA1 Message Date
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
d19ac5b260 - separated the game specific Steam code from the pure backend. 2020-04-22 22:56:15 +02:00
Christoph Oelckers
8473be2a0c - some final cleanup. 2020-04-22 22:35:28 +02:00
Christoph Oelckers
3961f708fe - moved refreshfreq variable to a common place. 2020-04-22 22:32:24 +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
397b1520bc - deal with I_SetCursor 2020-04-19 10:57:48 +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
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
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
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
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
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
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
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
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
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
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
drfrag
cfafe65069 - OS detection cleanup. 2020-03-31 09:34:20 +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
Christoph Oelckers
0c04cddd28 - allow specifying full palettes in translation definitions. 2020-03-15 10:22:42 +01:00
drfrag
68f338b134 - Fixed compilation with MinGW and did some cleanup. 2020-02-16 09:39:17 +02:00
Christoph Oelckers
d636acb002 - GAMESIG was never supposed to be used in printed output. Replaced all occurences with GAMENAME. 2020-01-12 09:43:47 +01:00
Rachael Alexanderson
eaee3d6ac5 - fixed softpoly backend unconditionally applying linear scaling 2019-12-31 08:59:38 -05:00
Christoph Oelckers
3530bc5945 - cleanup.
(The Raven license got removed from sc_man after checking that no Raven code is still present here, this file got a nearly complete overhaul over all those years.)
2019-12-29 11:30:37 +01:00
alexey.lysiuk
4fc1b3231a - removed <CR> symbols to fix zdoom.rc being modified after checkout 2019-12-24 10:46:13 +02:00
Rachael Alexanderson
510a121b62 - change IWAD startup dialog to allow selecting between OpenGL, Vulkan, and SoftPoly backends. (windows only) 2019-12-23 20:05:17 -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
194dd3e4cf - fixed debugger visualization for FSoundID 2019-12-10 16:38:37 +02:00
Magnus Norddahl
0f6aec5e99 Some vid_preferbackend compile fixes 2019-12-02 20:12:27 +01:00
Magnus Norddahl
a9e6592feb Switch to the D3DSWAPEFFECT_FLIPEX swap model 2019-12-02 20:05:13 +01:00
Rachael Alexanderson
bdc7329d32 - replace vid_enablevulkan with vid_preferbackend - disabled startup window selector for this (will replace when the startup screen changes are done) 2019-12-01 16:06:36 -05:00
Magnus Norddahl
4a25c9f69b Merge remote-tracking branch 'origin/master' into polybackend 2019-12-01 20:09:19 +01:00
Rachael Alexanderson
20e61ead49 - add Vulkan to the startup box in Windows 2019-11-05 08:57:50 -05:00
alexey.lysiuk
4ae16c27e2 - added Visual Studio debugger visualization for several types 2019-10-23 20:15:55 +02:00
Christoph Oelckers
2e7af1338c - the big cleanup of the exit cleanup is done!
atterm is gone and only a few system-side functions use atexit.
All game side cleanup is performed in D_DoomMain now.
2019-10-07 20:28:55 +02:00
Christoph Oelckers
6f821a9198 - fixed compilation on Windows. 2019-10-07 18:59:18 +02:00
Christoph Oelckers
ff379e7c0c replaced all 'exit's with an ExitEvent exception
The main exits are initiated from code that cannot filter this back to D_DoomMain easily so the exception is the only way to get there.

The 3 main points of exit are:

* quit/exit CCMD
* quitting the menu through ST_Endoom
* receiving a quit message on the main window.
2019-10-07 01:24:51 +02:00
Christoph Oelckers
5d265d2d88 - don't exit from within a window proc.
This should be handled by the message pump evaluating WM_QUIT which is how Windows suggests this to be done.
2019-10-07 01:11:53 +02:00
Christoph Oelckers
96006eb94f - moved all exception handling out of the backends
The main catch is now in D_DoomMain, only calling platform specific functions to handle the output for the error.

As a nice side effect, -norun can now be done without an exception, just by exiting D_DoomMain with a special exit code.
2019-10-07 00:37:56 +02:00
Christoph Oelckers
b5fa08bf15 - consolidated I_FatalError functions
This also removes the handling from thr Posix backend and will not compile on non-Windows.
2019-10-07 00:20:07 +02:00
Christoph Oelckers
cd086ae1da - consolidated the 3 I_Error implementations
Debug output is now being handled by the respective interface functions, not by the Windows I_Error itself.
2019-10-07 00:01:12 +02:00
Christoph Oelckers
b0acfc3ce6 - split up st_start.cpp into one file with the Windows interface code and a second one which only contains platform independent code.
Since this made heavy use of Windows type, those were duplicated to avoid rewriting the entire interface.
This split at least reduces the amount of code needed to refactor for making the screens work on other platforms than Windows.
2019-10-01 23:00:13 +02:00