I could change it to separate it from the rest. But probably i'll need some directions as i'm a newbie.
I would focus first on making it all work. Next would be reorganizing by moving stuff around and once we can see all of the changes together, we could offer make some suggestions from there.
So how one should go to keep everything optional?
Best would be to put all of the logic and functions you need for this into a separate file, much as how the intelligent patching works. Overriding is then as simple as making a dummy file where the functions simply do nothing. There might be other ways to do this, such as some sort of function pointer mechanism.
Using preprocessor #if's to include/exclude code during compilation?
Unless it's something very simple, I would avoid this as it quickly becomes a mess.
-------- Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/