Added the ability to change the VASSAL module in a configuration. The game name and the preference file must be the same in the old and new module; this hopefully will prevent people from creating a configuration with a module for game X, then accidentally changing it to a module game Y.
Also ensure that VL creates the "inactive" directory in the extension directory, both where VASSAL uses it and in VL's copies of the extension directories.
Fixed a bug where, if you had a module open and tried to launch a config that uses any version of that module with VL, VL would try to replace the extensions and silently fail (because the module had them open), and not launch the config and game. Now the code catches that it could not replace the extensions and asks if you want to launch without the changed extensions anyway. "Make default" also had this bug; now VL reports failure.
Re-ordered the columns and sorting order. The columns when showing the configurations are now (from left to right) game name, configuration name, module filename, and the rest are unchanged (VASSAL version and launch directory). The configurations are sorted in that order too, first by game, then by config name, etc.
- Added code to confirm deletion of a configuration or a VASSAL version.
- Fixed error when creating a config for an old module that had the extensions in the <name>_ext directory, but that directory didn't exist.
- When launching a .vsav or .vlog file, compare the module name and version in that game file to that of the module in the config, and ask if the user wants to continue if they differ.
This is a minor update.
- After testing I discovered that VASSAL bases the extension directory for old modules on the module's filename, not the game name in the module. That is, if you have a module 18xx.vmod (with the game name of "18xx"), VASSAL assumes its extensions are in 18xx_ext\. If you rename it to My18xx.vmod, VASSAL assumes its extensions are in My18xx_ext\. It doesn't use the game name of "18xx". This made it possible for VASSALlauncher to predict the extensions directory since I don't know how VASSAL gets the game name from the module (I don't want to delve into VASSAL's code). I no longer have to ask the user for the extension directory when creating a config for an old VASSAL module.
- The results line now shows the game file and config VL used when you launch something so you know what VL did.
I added the function to edit the recent games list from my "Edit recent games list" program (also here in resources). Note that this lets you edit only the copy of the game's preferences in the VL configuration you edit. You have to "make default" or launch using the configuration to have the VASSAL module "see" the edits.
I consider VL to be "feature complete" now so this will be the last version unless users request new features or there's a bug.
- Changed "Start" to "Launch" because "Start" can be interpreted as "begin a new thing", but "Launch" implies an existing thing. The buttons are now "Launch Config" and "Launch a Game File
- Consistently capitalize the name as "VASSALlauncher".
- Fixed bug where I was copying incorrectly if the user creates a config with an extensions directory, edits that extensions directory in VASSAL/the game module, the clicks "Update config".
- Record deleted password when you delete a config.
- Edited instructions to give more explanations and examples.
- Get the full path of any command-line argument so you can start it at the command line, e.g. "VASSALlauncher.exe game.vsav". This passes the full path to VASSAL so it can open the game file.
- Fixed a bug where if you edited the name of a config, you might start editing a different one.
- Update the last directory used to open a file when the user uses the File Info button.
- Added an explanation of the display of configurations to the instructions.
I accidentally omitted one changed file. Use this instead of the previous version 1.10
Added "Show VASSALs" button to show the versions of VASSAL you've told VL about.
Internal cleanup: removed InterfaceFuncs.py and import Interface inside functions when necessary. Made minor fixes so VSCode's Pylance no longer detects problems because it's overzealous.
Fixed error when if you tried to edit a config and chose the same name or the same VASSAL version it currently has.
Added "File Info" button to show which VASSAL version and module version a game file was created by.
Replaced tkinter's showinfo box with showerror or showwarning as appropriate.
Fixed bug where I was not activating/inactivating extensions properly.