TL;DR: An attempt to bring the mode blazemod (also known as Vehicle Additions) back to being a repo mod by modernization of its content (PR @ https://github.com/CleverRaven/Cataclysm-DDA/pull/37497 )
Hey there guys, I’m known as SouP here and on the devcord and fancord, or Soup-de-Loop on github.
These aren’t snipes at Blaze by the way as the mod itself is fantastic, it just hasn’t aged very well.
I’ve so far made something of an attempt to bring blazemod up to date, and believe me when I say there’s a reason it was on the obsolete list- it was really outdated. In fact, the fact that it worked at all is astounding, given how messy some of the implementation was compared to modern standards and some of the decisions that have aged extremely poorly.
The last point is something I’d like to bring to the table first before I discuss some of the other changes I had planned, because this is the biggest one regarding migration and save-game compatibility. In the eternal wisdom of legacy code, the blazemod turrets that used vanilla guns also use the exact same internal id’s as the guns themselves, except as vehicle parts.
What this means is that, in order to modernize the mod in a way that makes it worthwhile keeping in the repo as a quality mod, we would have to de-link those, giving the turret versions their own internal id’s so that there’s no chance of conflict. As it stands, the migration code, while extremely useful, is not advanced enough to differentiate two different types of items with the same internal id. And it especially can’t handle retroactively modifying save data to updating existing vehicles that have spawned in a world to replace x part with y part. The functionality simply doesn’t exist.
I’m barely initiated in coding c++. I’ve been able to replicate the behaviour of the recycling compactor to make a plastic shredder that does the same thing but for plastic items. But I’m not nearly well versed enough to tinker with migration and save code, so unless someone else does it, we’re stuck with a save-game compatibility break if we want blazemod to become unobsoleted in the foreseeable future.
Beyond that, I’ve already modernized most of the file structure (I think I just have to split the diamond and vortex things up into appropriate file structure) and done some json magic to remove repeat items (that were everywhere once the
turret control unit got merged) and provide some much needed spring cleaning. Blob stuff is properly sorted out and somewhat sane to add, remove or change, and I’m working on a short and sweet guide to explain how to start them off.
Beyond general feedback I’m sort of interested in a few questions for players other than myself who’ve used blazemod in the past (or still do):
- Is a savegame compatibility break acceptable?
- Do people want an outdated blazemod with minor fixes from time to time with all of its baggage on a separate repo to keep a savegame going until it finally croaks?
- Do people use
vortexparts and still want them to be part of the entire mod?
- Do people use
diamondparts and still want them to be part of the entire mod?
- Do people use
solar arrayparts and are they considered overpowered and worthy of rework and/or rebalance?
- Do people who use blazemod want to see some features (such as blob vehicle tiers) being gated behind recipe books, with some minor lore fluff etc?
Anything I’ve overlooked or missed I would be happy to know about in addition to just general feedback about how I’ve gone about things. My PR is messy because the file structure refactor alone makes it difficult to revise compared to previous blazemod, but I personally wanted to get the mod to a square one in one PR. If anyone would care to test it on a fresh world I’d appreciate it.
Thanks in advance!