* don't save/cache the achievement icon handle to allow lazy loading
* make the test achievement load either locked or unlocked icon randomly
* don't attempt to load the icon more than once
* allow showing the progress indicator in the achievement notifications, not only in the achievements list
* don't play sound when showing progress notifications
* disable progress notifications if the setting in the .ini was set
* make all popups toggleable, clicking the button another time will show or hide the popup depending on its last state
* reorder the placement of buttons
* convert the animation duration to millisec once during settings parsing
* decrease the notification margin from 10.0 to 5.0, it looked way shifted on larger screens
* pass around instances on std::chrono instead of float, use float in the final stage when processing/operating-on the time (if needed)
* decrease the animation duration to 0.35 sec, looks more swishy!
* added a new button to the overlay `"Test achievement"` which triggeres a test achievement
* added a new overlay appearance option `Achievement_Unlock_Datetime_Format` which allows changing the date/time format of the unlocked achievements
* removed the condition which disabled the overlay sounds when it is shown
* reduce code duplication
* avoid bypassing local_storage when loading sounds
* avoid alloating sound buffers via new-delete, use std::vector
* clear/reset all global objects on destroy
but this avoids having to load the achievement icon during gameplay which causes micro-stutter
* avoid loading and resizing the achievement icon each time it's unlocked
* Local_Storage: avoid allocating buffers unless `stbi_load()` was successfull
* ignore all overlay requests if it's not ready
* when unlocking an achievement, only load it's icon if that was specified in the json
* restore the code for ImGui font builder, this is needed to load the glyphs for all languages
* revert the code which loads the achievements info even if the overlay wasn't ready
* attempt to fix the crash when closing the app, use global object with bigger life time and avoid local states
* attempt to fix usage of invalid/outdated window size when displaying notifications
* lock overlay mutex everywhere to avoid sync problems
* lock global emu mutex in the relevant places when using client APIs
* only change the ImGui ini and round corner settings once
* remove the code which adds custom Windows fonts but keep scaling
* only attempt to load achievements images when hook is ready
* cleanup overlay images on unhook
* free the detector when we get a renderer hook instance
* lock everywhere!
* prefix the debug messages for a cleaner debug log
* remove the now non-compiling (and awful) code which locks the cursor inside the overlay
* workaround for the deprecated ImGui function BeginListBox()
* formatting