Mod List Loader Done, Starting Override
I managed to get the mod list loader working today, after some pesky load order bugs.
As of this afternoon, I had a separate mod folder called "DanMod." Inside that folder, I had data for a new item, some new images, and the rest of the data pointed to base game data. I was able to load the base game data, and then load this mod from the separate folder, remapping IDs and linking as needed.
I also now have a getmods.php file that lists which mods should be loaded, in what order, and from where.
The test seemed to work. My new item was a skill, and it got remapped to the next available skill ID, and correctly used new images and old data refs (condition IDs, treasure IDs, etc.). I was able to see the test skill on the skill select screen, and use it normally.
There are some minor glitches that need fixing (I noticed a bug in the scavenge results UI, for example), but things seemed functional.
My next task is to setup some means of overriding base game data, for mods that need to. It will still be possible to directly edit the base neogame.xml, of course. However, for modders wishing to make mods that work well combined with others, it would help to have their base data changes isolated somehow (either for editing or merging with other mods in the desired load order).
I'm thinking that there will be a special folder name (probably "0") which will signal to the game that any data in here must override base game data. Internally, the game will know that this "0" data folder contains updated data, and will replace them in memory.
Once that's working, players and modders should be able to easily see which base data changes each mod needs, and whether they conflict or can just be merged into the same file.
So far, I've got almost half of the data types setup for overriding, and will continue on that Monday. Have a good weekend, all!