So many of you know that we've been "fixing" Decal lately. Some of you are also aware that we've broken compat with the old version. What very few know, beyond those of us doing the work, is just how extensive this breakage has been. I'll try to further explain the damage we've done, starting with a history lesson.
In Decal 1.x, there were about 4 modules: DenAgent, Inject, DecalNet, and DecalControls. DenAgent is the familiar windows gui everyone uses to configure their plugins. DecalControls is obviously the home for all of the buttons decal shows in-game. DecalNet is our network parser. That leaves behind Inject. While the name implies that it might have something to do with injecting the Decal code into AC, that's only a fraction of what it did. Inject *WAS* Decal. It handled all of the hooking, all of the rendering, all of the input. Every interaction except reading packets passed through Inject in some way.
When Cibo came back and gave us his vision of Decal2, we gained a few more modules: Decal, DecalFilters, and DecalInput. The idea here was to shift core functionality away from Inject and into Decal. For plugins and filters this happened about 50%. Decal now started and stopped "services" which loaded the plugins and filters. Unfortunately, Inject kept a tight grasp on the Rendering and Input code. Even though we now had a module named DecalInput, it only contained services to let plugins generate input, it didn't help process input from AC at all.
So this is where we arrive. We've tried through the years to patch functionality into this model with out breaking it. We have so much legacy code and cross referenced crap to maintain most of us babble code non-sense in our sleep. Finally ToD has given us a chance to fix all of that. With the massive changes to AC's rendering engine, our graphics code died. We've hacked together a temp solution so that we can get the rest of decal working, but we have grand plans indeed for a new one. We've also taken several more functions away from Inject, and will continue to do so until it does little more than... well inject.
Next we'll go over some of the more specific things that have been changed, or maybe give a little more insight into the depths of Decal.