## Link to GitHub Issue, if one exists
#410
## Description of change
When raising fatal errors via `log_fatal`, also show a modal popup.
Update instances of `log_fatal` where the message was too long to fit.
## Testing
Tested various failure conditions.
## Link to GitHub Issue, if one exists
#410
## Description of change
Forcibly minimize all windows before showing the crash dialog. Without
this, the dialog shows "behind" the game when launching multi-monitor
fullscreen games (TDJ, VM)
## Testing
Tested TDJ and VM in fullscreen.
## Link to GitHub Issue, if one exists
#345
## Description of change
Show a MessageBox when signal detects a crash.
## Testing
Tested full screen and windowed games.
## Description of change
Detect and log troubleshooter messages for:
* (early) hook DLL load failure
* data_mods folder without ifs_hook.dll
* spice version (print out current version and add a link to github
download)
## Testing
## Description of change
Finally figured out where the deadlock was coming from - it's because
the `dump_to_logger` was writing `SuperstepSound: Audio device is not
available` to the logger which calls back into the log hook, and then
emits another deferred message, trying to acquire the lock again on the
same stack.
## Testing
Tested the superstep sound failure case again.
## Description of change
Various fixes to deferred logger -
* Rename to "auto troubleshooter"
* Fix potential deadlock
* Reword the error messages to fit in a narrower column
## Testing
tested all the error cases
## Link to GitHub Issue, if one exists
[#390 ](https://github.com/spice2x/spice2x.github.io/pull/390)
## Description of change
Just like the normal logger, deferred logging can be called from any
component at any time, so accessing the vector needs to be guarded.
## Testing
## Link to GitHub Issue, if one exists
#388
## Description of change
Instead of setting flags in `signal` and logging when we crash, create a
class for logging deferred semi-fatal messages, and dump them to the log
immediately before crashing or shutting down.
## Testing
Tested each failure case by injection.