Skarma:
Not all macros declared were meant to be used in place of a function. The macros used for defining engine-build dependent symbol addresses are one of these. In order to use the addresses in both the assembly and C++ code, a constant was needed which is what I used, an enumeration value.
Also, some data structures needed some rather nasty initialization schemes like declaring custom packets in MessageDefinitions.cpp or in the scripting code. Other uses can be exampled in TStruct which was more of a kludge to accessing engine objects which I didn't have the entire layout of. The fact of the matter is macros aren't just the old C way of declaring "inline" functions, they also help ease the pain of repeated code\data declarations and hiding away rather ugly implementations which you have to use since the code itself is interfacing with an alien system you can't change.
The underscore naming convention was used in the Halo engine so I decided to keep with that when it came down to engine related code. However in my own code I perfer CamelCase. I can't stand java's convention and never understood the point of lowercasing the first letter of the word while uppercasing the rest. IDK, maybe its just my OCD.
Yelo doesn't "hook" into the DX system, it acts as an inceptor with its own definition of the IDirect3DDevice9 interface. From there it forwards calls to the respected DX implementations, while performing any custom code. If Xfire hooks the DX system, it should be retaining the code it replaces. I don't think they would just assume the DX functions they hook into have the same bytes in each version that comes out, so they would have to have a dynamic way of handling the code they overwrite (so that its still executed when they return the IP back to the original code).
If you're not intending to use the source in the projects you make, then I ask that you just note in the code where you referred to OS and include a note in any releases that some of the code is based off OS code. Since you already open source your stuff I have no other qualms with how you use the code.
Bookmarks