After some testing, I think I got the basic principle down on how this will work, and even a proof of concept program made which I'll basically make a ton of copies of, all of which performing different modifications probably, with a master program that will run each one individually- or maybe I'll just fit them all into one. Would anyone with adequate Dorf Modding mind helping me with knowing what terms from certain versions in what files need to be changed / removed in general? I suppose I can just experiment, but if so anyone mind suggesting a mod to use as a guinea-pig for my experimentation that is not compatible with the latest version of DF? (And optionally why it does not work.)
The It's The Small Things mod from 0.28.xx.39d might be a good one. It could stand to be updated, and it modifies a good number of raws.
A less outdated but more popular mod that could use an update is the Deeper Dwarven Domestication for Dwarf Fortress v0.34.11. DF v0.34.11 was the latest version for a very long time, so there's probably lots of dead content at this version. This mod only modifies two vanilla objects files.
Edit: Maybe I'll slowly work on the program going by one 0.0x version at a time, or maybe by one 0.x version at a time; depending how well a 0.42 mod can work in 0.43; think the most effective way would probably be either by major modifications or 0.x patch differences though. Hmm..
EditEdit: Actually going to experiment on the Cthulhu Mythos Mod, as someone did suggest it above. Suppose first release of the updater will be 0.31 -> 0.43; if I do allocate enough time to this project, which I may as well seeing as I have no life anyways.
The Cthulhu mod looks like a good choice. It looks like it modifies 36 vanilla files (3 objects files, 2 ogg files, and I think 31 speech files). The Cthulhu mod I'm looking at is a DF v0.34.11 mod, though.
Oh silly me i was looking at the old version of it, alright I'll use Deeper Dwarven Domestication, the 0.34 version of Cthulhu, and the actual 0.34.11 DF game for my testing files and v0.34->0.43 for the first updater file I suppose. (decided to separate each updater into different files managed by one main file) The actual program is running quite beautifully so far by the way, I was right that python is a wonderful language for this; writing it in Eclipse using PyDev.
On a semi-unrelated note, thinking of a name for the program, what do you think of Urist Beard Updater? Just Mod Updater sounds boring, and Urist Beard Updater simplifies down to UBU which sounds great.
The structure I'm thinking will be along the lines of
With the numbers being for each different updater.
And the text inside will be giving you some vague information of what's being done, just for the sake of seeming more magical with things like
Either way I'm pretty happy that it's grabbing the proper number of files starting with whatever type I input into it and editing each one individually exactly how I want it to. Now is just the challenge of knowing WHAT to change and the rest should all fall into place.
Even made a screen for improper file placement, with scrolling text before it violently crashes trying to read a ton of data that does not exist, could put a break instead but I think it does a pretty effective way of stopping itself really.
Anyways, main things can probably be seen pretty easy with sites like
https://www.diffchecker.com/y6pu8ffw I guess, so I'll likely be using this a lot. Like the [START_BIOME:MOUNTAIN] >>>> [EXCLUSIVE_START_BIOME:MOUNTAIN] is something I would have totally missed. Guess I'll have input for setting up settlement biomes. Sheesh it's almost 2am; I should probably consider sleep.
EditEditEditEdit
For things like instrument there, should I remove instruments from the entities list? (Would look nice in the console with like "Breaking drums" 'breaking flute" etc etc
) Don't really understand why they're not in the default entities anymore. Anyways, upgraded my program to auto-detect 'bad' terms that I pre-define, and then to either remove them, their lines, or replace them with more proper terminology. Still working on actually figuring out what needs to be removed and not though.
EditEditEditEditEdit: Oh I see, instruments are replaced with the generation of instruments now I suppose. Easy fix. Also added more flavor text to the MACHIIINNNNEEE!
Edit. I think this is my last update for the night, wrote well over 200 lines of code tonight, and everything is working even better than I had imagined.
It may not look like much but
is accomplishing quite a lot. Not entirely sure if this is an acceptable place to leave entities for now.
https://www.diffchecker.com/uajjdfzg is how it converts to at the moment. I guess there are still some necessary tweaks, such as the fact kobolds are being given settlements currently in the dorf mountain biome upgrade. I suppose the only way to know for sure if stable is to try to make a world in modern DF with the modified old file..
It works! I think at least, no errors, I seem to be able to play just fine. The entity file works just fine it would seem! I guess I'll leave the tweaks for that to a later version, and work on upgrading either body or creature files tomorrow, that's sure to be !FUN!. I'll work out any bugs in the entity modification file after people have tested the program out a bit and have actual feedback.
Also for file structure, I guess I'll have each function of the upgrading version with it's own file:
or else when I start reaching the thousands of lines of code, I'm going to be experiencing utter hell in searching these things.