Wowzers!
I haven't even had time to do a real release for BULL yet, so I'm glad to see people are excited about it . . . and
using it.
BTW, BULL's name is pretty much what you said, jdog, though without that much forethought: BUg dLL.
Let me address one thing about BULL: all the changes are to hover text, so BULL without BUG would have no noticeable performance hit. So far in my limited play the biggest payoff to using BULL is that I need to open the city screen a lot less.
As for BUG's performance issues, I have found that the only measurable aspect is from PLE and our added Plot List graphics. If you turn off all the fancy things (upgrade indicator, promotion glow, mission tag, movement bar), it's no slower than stock BTS. Unit Naming takes no time. If you turn off AutoLogger, it takes no extra time. Again, though, you can use BULL without BUG--you'll just be missing a few new hovers because they didn't exist in BTS (e.g. the
hover and some of the hovers on the BUG Finance Advisor).
Okay, with that out of the way, let's get into the technical details. I recently added Minor Annoyance's Global Warming mod to my personal version of BULL, and I did it in such a way that it can be merged in at compiled time. When C++ code is compiled it is run through the C preprocessor that is a language of its own. This language allows you to do conditional compilation: include/exclude code based on a compile-time setting. It's like having an option, but you turn it on/off before you build the DLL.
It looks something like this:
Code:
#ifdef _MOD_GWARM
...new global warming code...
#else
...old global warming code...
#endif
The effect is that I can flip a switch and compile two DLLs, one with GWMod and one without. I can do the merge once and keep adding features to BULL. I'm going to do the same thing with the Unofficial Patch changes that alter gameplay. Currently BULL has all the UP stuff in it, so I'm technically in violation of our mantra, but not for long.
This was pretty easy with the GW mod because the changes were few and the mod is done. I suspect BAI has far more changes throughout many files, and it's in live development, so it would be a bit more work to do. However, perhaps we can work something out along these lines? I only wish I had done the same thing with all the BULL changes from the beginning.
BTW, how often on average do you do BAI releases? I'll go over the latest releases source files and see how much effort I think this will involve.