- // if true, the entire trace was in solid
- qboolean allsolid;
- // if true, the initial point was in solid
- qboolean startsolid;
- // if true, the trace passed through empty somewhere
- qboolean inopen;
- // if true, the trace passed through water somewhere
- qboolean inwater;
- // fraction of the total distance that was traveled before impact
- // (1.0 = did not hit anything)
- double fraction;
- // final position
- double endpos[3];
- // surface normal at impact
- plane_t plane;
- // entity the surface is on
- edict_t *ent;
- // if not zero, treats this value as empty, and all others as solid (impact
- // on content change)
- int startcontents;
- // the contents that was hit at the end or impact point
- int endcontents;
+ // for ODE physics engine
+ qboolean 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;