I'd like to ask why defs.h was removed from the source code. Here is a link to the file as is found in the Allacrost repository:
http://allacrost.svn.sourceforge.net/vi ... iew=markup
As you can see, the only thing this file did was to declare the name of classes in their appropriate namespaces, along with a few function names used by defs.cpp. Defs.h was not dependent (did not include) any other file. At all. The reason why defs.h was so great was that in all the other code, you didn't have to manually declare each class that was used (eg. class AudioEngine; class VideoEngine; etc). All you had to include was defs.h, and all the declarations you could possibly need are in place. The disadvantage to this approach was that you couldn't look at the top of the file and see all of the classes that is actually used through the declarations list, although you could still guess what they were likely to use by seeing which namespaces were being used. But this list often became misleading or outdated, especially in code that is under extensive development, as sometimes classes are used initially, only to be unused at a later date and the programmer forgot to remove the class declaration 100% of the time. I heard that there was concern about defs.h increasing the compile time. The only time it would increase compile time is if you are modifying defs.h, because then nearly the entire game would have to recompile. But the only time you need to modify defs.h is when you are adding or removing classes. This is not a frequent occurence, especially with how mature the code base is, so I don't really see it as a problem.
I'd really like to see defs.h return to use, but I'm open for listening to reasons why it should be done away with. Here's a list of the advantages and disadvantages of having this file, as I understand it:
Using defs.h:
+ No need to declare classes in other headers and source files
+ Easy to read list of nearly every shared class in the game
- Adding/removing classes or otherwise modifying defs.h requires nearly the entire game to re-compile
- Have to always remember to update defs.h when creating/removing classes anywhere in the source code
- Can't see which external classes a file explicitly uses
Not using defs.h:
+ Can see every external class declaration that a file uses
+ Don't have to continually update defs.h with new classes
- Have to declare external classes for every single source and header file
- Class declaration lists can become outdated as the code changes