A couple of things that look problematic to me:
(1) In ecs.cpp this line is ill-formed:
void (u_int id, float rad, float h_rad){
It appears to be missing a function name.
(2) typedef unsigned int u_int;
You may be having an issue with the use of typedef to
define a type that is used in macros. Macros are
processed by the preprocessor before the compiler
takes over. But typedefs are processed by the
compiler. So a typedef won't be effective for
macro use - you need to use a #define instead.
#define u_int unsigned int
- Wayne