So, in theory, major upgrade would be implement that deindex detection method, call destructors for AIDS structs without locks before the unit quite disappears, turn the textmacro into a module, and do all this without breaking backwards compatability. The only thing I'm not sure about is if you can use modules without breaking backwards compat, in which case, ironically, the only thing not worth doing, is that.
Have fun!
PS. You may have better luck with AIDS initialisation orders by implementing a module which attaches code to a list which AIDS then fires. That could work. It's actually something JassHelper "broke" sort of by adding modules - because modules init first, then structs, then libs... stupid order. Well, it means you can init the module at struct init time by attaching trigger conds to a trigger which AIDS will fire, in theory. Otherwise, you may break AIDS structs which use libraries that init through a struct initialiser, instead of a module initialiser!! :thup:
Have fun!
PS. You may have better luck with AIDS initialisation orders by implementing a module which attaches code to a list which AIDS then fires. That could work. It's actually something JassHelper "broke" sort of by adding modules - because modules init first, then structs, then libs... stupid order. Well, it means you can init the module at struct init time by attaching trigger conds to a trigger which AIDS will fire, in theory. Otherwise, you may break AIDS structs which use libraries that init through a struct initialiser, instead of a module initialiser!! :thup: