The message macros defined in error.h (PLAYER_ERROR, PLAYER_WARN, etc.) would be much nicer if they had variable numbers of arguments instead of using multiple macros with different numbers of arguments (PLAYER_ERROR1, PLAYER_ERROR2, etc.).
This can be done by like this:
#define PLAYER_ERROR(msg, ...) ErrorPrint(PLAYER_ERR_ERR, 0, __FILE__, __LINE__, "error : " msg "\n" , ## __VA_ARGS__)
I know this is supported for newer versions of gcc (http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html) but I don't know about other compilers.