Also simplified the sound init decision making. With FMod gone there is no reason to be pedantic here. Even the check of snd_backend for the Null device could be omitted here, its only realistic use is '-nosound'.
- 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
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.
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.
Many had leftover non-default constructors/ assignment operators, and some were initialized, even though the initialized data was never used.
In case of FCycler this even caused a default setting to be overwritten when used inside FDynamicLight.