Either a code that changed all sets at once when you do a raw change. (which is proposed here quite a lot)
Oops, already wrote a version of this. That's why I've been able to harmonise changes so quickly. If you're working from git, then the
patch-graphics-from-master.pl script will take any changes you've made (but not yet committed) and apply them to all the applicable graphics directories. It requires both perl and git to function. (If you're installing Perl, then I'm fond of
dwimperl.)
Right now it has to run it manually, which I'm not fond of. In theory, one can write a pre-commit hook to detect when it needs to run, and fire it automatically. If anything goes wrong, then it's turned over to a human for assessment.
Getting rid of the different sets. If the GUI, the VB Settings.exe that I include wouldnt replace the files with different files, but instead only opens the files and replaces the tilenumbers... than it would mean only one set of raws. In the long run this would be a lot easier, but I have no idea how to write this.
There's also option 3, which is to have a single set of raws, and have code that generates the graphics files before release. Settings.exe would remain the same. The big question for either of these solutions (graphics raws produced by Settings.exe or templating engine) is how do we represent that data in a human-friendly format?
@Urist McTeellox: Quick work, amazing. I write a bugreport, go to bed, get up, everything fixed. Its weird... what happened? Suddenly I report bugs, and other people fix them? I remember it to be the other way around.
It's nice, isn't it? Most of my "successful projects" these days are simply me curating and integrating changes from other people...
(Hey, I dont want to spoil the party, but the patchlog from the Master Branch says 7 hours ago, fixed tileset inconsistencies, the attributes... while the unified branch says authored 6 hours ago, "Distribute simpler leather patches across all tilesets."... so... ehm... Maybe I misunderstand how Git works, but it seems you had these 2 things that were missing in the tileset versions, and fixed one in each set... if they apply to both sets, just ignore me.)
Unified is master, with 'experimental' branches applied to it (dfhack and simpler leather). So everything you see in 'master' should also show up in 'unified'. Depending upon how they've been merged, the extra experimental branches may show up in different spots in the history. Currently the development tree looks
like this. (You can hover and click on commits to see changes.)
The '
find tileset inconsistencies' patch is
this code which goes through all the tilesets and looks for places where they're potentially out-of-sync (mentioned a couple of posts up). I haven't merged it into the unified branch simply because it's not an end-user visible change. (Don't worry, it'll get merged eventually.)
I'm not sure if that answers your question; if it didn't, let me know.
~ T