Two launcher behaviors vPOD only simulated are now available for real,
matching the pod exactly:
- "Actually set system volume": set_VolumeLevel drives this machine's
master volume through the launcher's own chain — nircmd.exe in the
games root, else Core Audio (Vista+), else winmm. The chain moved out
of TeslaLauncher.cs into Launcher/VolumeControl.cs and is compiled
into both apps as linked source (the MiniZip pattern); launcher
behavior is unchanged. Off by default: the value is stored/echoed
only, as before.
- pre-uninstall.bat now runs before the product directory is deleted on
UninstallApp (working dir, hidden window, 120 s wait, exit code
logged — mirrors CleanupProductDirectory). Gated behind the renamed
"Run package install/uninstall scripts" checkbox (was "Run
postinstall.bat after install"; RunPostInstall -> RunPackageScripts),
closing the asymmetry where install scripts had an opt-in but
uninstall scripts silently never ran.
Verified: 106/106 diff tests; live master-volume set/restore through
vPOD's build of VolumeControl; functional probe of UninstallApp against
an isolated games root with the flag off (script skipped, dir removed)
and on (script ran, then dir removed).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>