Ok, here are more of my plans.
1) The database holding the File verification information will be encrypted.
This will prevent, after inegration with the SFC Direct launcher, a person from modifying the DB to possibly allow some custom file to be loaded while launching SFC.
Using the Mod Chooser as a launching utility, it will effectively prevent any kind of cheating (from edited files) by only allowing certain files to be loaded in order to join the game session. This is further compounded by the fact that even the SFC Direct contains encryption to dissallow poeple to simple find a seesion's IP and joining manually.
2) I have also decided to create this version to switch any file in the OP directory that the Mod Developer chooses, as long as the Developer provides the Mod Switcher with the nessary information. Otherwise, the Mod Chooser will only change more default files, those modable without the source code, and only those that are likely to be modded. It will do this by scanning a preset list of files to see if any are edited.
3)The mod developer will be able to supply information to the Mod Chooser
- The way this will work has not been totally decided yet, but I have in mind that the Dev will simply, using his Mods installer, put a text file with a specific name in the Mod Chooser Directory. The text file will be a list of Files in his Mod, perhaps thier location, and thier CRC or MD5 (Not yet decided which I will use). The Mod chooser will load these file details into its encrypted database, verify the mods integrity according to the file, make the mod available for selection, and erase the txt file the mod developer provided.
Edit:
- I think I will have the program leave the Mod Installer's File Detail list indstead of deleting it. Having one of these with every mod gives an additional way of providing proof of the integrity of a mod. Even if I encrypted the DB, without this file nothing prevents a creative person from making his own Mod with edited files and using the same Mod code as another mod. When the mod chooser imported this mod, it would have false files, but it would not know that.
- Solution: Leave the file detail list provided by the Dev for his mod, and have the the SFC Direct provide this File's MD5 and Mod Code to the Chooser for launching OP. Even if the 'creative person' had edited the mod and kept another mod's Mod Code, he could not escape the fact his installer file has a different MD5. The chooser would have to very the MD5 of the installer file also, so that the 'creative person' did not simply install his own mod, then replace his installer file with the installer file of the genuine mod.
4) This will also depend on the Devs agreeing to a standerd of how they make thier mods. Basically in the location of the files. I propose the following:
--OP DIR
----|
----|-Assets
----|-ect
----|-Modifications
-----------|
-----------|-<Mod>
-----------|-<Mod>
-----------------|
-----------------|-Specs
-----------------|-Models
-----------------|-Strings
-----------------|-MetaAssets
-----------------|-Bitmaps
Of course more or less directories depening on what files a Mod is composed of. Just as long as this pattermn is followed, which almost directly mimics OP's existing directory structure, things are very well organized. I think for the most part, the only thing a Dev would have to adjust is the location if his models and the shiplist ofr that new location. The Mod Chooser will relocate all other files as needed.
I also suggest that the Stock models Folder not be edited Except for the Models.siz file. This is just for data integrety issues, it would take too much room for the mod chooser to back up all those files. Of course, there is no preventing a person from editing his own stock models folder. No data verification will be done on the bitmaps in the Stock models folder, there is no need as long as no mod edits it. Also follows though, that if the adventurist screws up his OP by editing the Stock models, the Mod Chooser can not repair it. The Mod Chooser will however verify that the files EXIST, so that a model for every ship exists and the absence of one can not crash OP. This will also mean that any mod(shiplist) can point to stock models and expect that they will be there.
I think this will make an excellent tool for OP.
Let me know you guys thoughts.