Well thanks to the encouragement of you lot out there, I'm happy and shocked to say that this release is a major stability improvement release. Most if not all CTD's have been removed. This has been done by removing all DCM and IDW references to GlobalDefinesAlt.xml and hardcoding all references in the short term. Basically CTD likelyhood increases with any mod that references XML in C++ using this code technique:
if (GC.getDefineINT("WHATEVER_ENABLED")) {whatever code}.
Why exactly is not clear. IDW 1.1 does not cache it's XML data while DCM 1.5 does yet both techniques still can fail, IDW non caching approach is more likely to fail than a caching approach but even a caching approach is unstable to some degree. It is perhaps that there is a limit to how much global data can be stored in the GC object structure, or that there is some sort of timing error when GC is used in a conditional statement. The recommendation is to study how vanilla BTS and Revolution 1.5 access XML data to better understand this resolved CTD issue. In any case, from my "novice" perspective over using global variables is not a good thing. I think modders may be working GC too hard because it's the easier approach.
I'm sorry for the inability to turn DCM and IDW components on and off via XML. You will notice that GlobalAltDefines.xml is gone. It will not return. In future releases I will study how Jdog5000 accesses external variables and emulate that. I believe the Revolutions mod is doing it correctly and that this code is the absolute state of the art standard for BTS modding. Jaw dropping stuff.
In the meantime, I even think that you will find that the DCM components are now running much more reliably. The nature of the CTD problem using GlobalAltDefines.xml is random and is system resource dependent. Thus it will appear that active defense might not be working, or that opportunity fire is not working, but it is not the logic itself. Dale has done an excellent job there. It is merely the technique of accessing xml that is the question mark.
At least battle effect duration has been halved. Sorry I did not take it out altogether but I like the concept! I really feel that Dale is onto a good thing with DCM. I was forced to take out stack attack because of incompatibility with IDW and I also had to disable one component of IDW because of a rare problem connected with capturing cities. See the readme for more details.
As for me, after running probably 100 full game test runs over the last four days, I'm gunna put my feet up and do some serious RevolutionDCM playing myself instead of endless test runs on two computers (Vista x64 and XP).
After a decent monarch game (which I will probably loose in a couple of days) I will begin working on emulating Jdog5000 Revolution excellence. Unfortunately unless DCM or IDW change the way they access external data, I will have to change it myself in RevolutionDCM which will mean that new version releases will be significantly longer between release intervals.
Cheers.
PS) The BTS and Revolutions code leaves me shaking my head at how a game like civ is possible at all. The rheems of logical constructs down at the coding level are breathtaking. Appreciate this great game.