- qboolean allsolid; // if true, plane is not valid
- qboolean startsolid; // if true, the initial point was in a solid area
- qboolean inopen, inwater;
- float fraction; // time completed, 1.0 = didn't hit anything
- vec3_t endpos; // final position
- plane_t plane; // surface normal at impact
- edict_t *ent; // entity the surface is on
- int startcontents; // if not zero, treats this value as empty, and
- // all others as solid (impact on content change)
- int endcontents; // set to the contents that was hit at the end point
-} trace_t;
+ // for ODE physics engine
+ qbool ode; // if true then ode is activated
+ void *ode_world;
+ void *ode_space;
+ void *ode_contactgroup;
+ // number of constraint solver iterations to use (for dWorldQuickStep)
+ int ode_iterations;
+ // actual step (server frametime / ode_iterations)
+ vec_t ode_step;
+ // time we need to simulate, for constantstep
+ vec_t ode_time;
+ // stats
+ int ode_numobjects; // total objects cound
+ int ode_activeovjects; // active objects count
+ // max velocity for a 1-unit radius object at current step to prevent
+ // missed collisions
+ vec_t ode_movelimit;
+}
+world_physics_t;