I made a new installer for .21 because I needed a way to move old DLLs and EXEs to an "old-install" folder for the patcher.
I treat that task as a requirement because we're changing the DLL lineup for .21 -- and, with 64-bit on the menu, it's a good idea to separate those binaries from 32-bit.
This creates new Start Menu icons for SRB2, as well as an Uninstaller.
Most importantly, the installer sets the location default as C:\Users\[User]\AppData\Local\SRB2
. This has the following implication:
AppData\Local
or Program Files
, your game data and WADs will be stored in your Windows account user folder: C:\Users\[User]\SRB2
AppData\Local
or Program Files
(hi MI config.cfg
exists in that folder, your data remains in your install folder.This mirrors game behavior that has existed for a while: if config.cfg
is not found AND an SRB2 folder exists in your user profile, the game defaults to that location for data.
It's obscure behavior because nobody on Windows has bothered to make a user profile folder on first startup. However, it's standard practice on Linux and OSX.
Therefore, I made the installer create that folder if you're installing into the standard Program directories.
This is similar to what was done previously.
[repo-root]\windows-installer
with these filenames:
[repo-root]\windows-installer\BuildInstaller.bat
. The EXE installers will generate in that folder.The idea is to preserve the old files that would be overwritten by the install, and leave it up to the user to delete those files. It leaves alone all non-install files, such as addons.
[install-root]\new-install
[install-root]\new-install\staging.bat
MoveOldExesDlls=1
in the script, copy existing *.exe and *.dll into [install-root]\old-install
. Important for .21.new-install
, move that same existing file from [install-root]
to old-install
.new-install
files into [install-root]
new-install
folder.The idea is to remove only the install files, and leave the user's files alone. Show the user those leftover files and leave it up to them whether to delete.
Installer screen:
Patch screen:
Post-install screen:
Program group:
Uninstall screen (does not list all of the install files because I didn't package them for my tests):