X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=world.h;h=e43ebd142c6ffc99f7fcfa01a5badb0baa86966d;hb=4fa4227c4cadd099125636f085183062a50acf7d;hp=334420fbff9599d29012044e417b139dadf4be51;hpb=8b68ee05515266fdb1b20b06b0c4c04646fdc397;p=xonotic%2Fdarkplaces.git diff --git a/world.h b/world.h index 334420fb..e43ebd14 100644 --- a/world.h +++ b/world.h @@ -46,10 +46,12 @@ typedef struct world_physics_s void *ode_world; void *ode_space; void *ode_contactgroup; - // number of constraint solver iterations to use (for dWorldStepFast) + // 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 @@ -59,12 +61,15 @@ typedef struct world_physics_s } world_physics_t; +struct prvm_prog_s; + typedef struct world_s { // convenient fields char filename[MAX_QPATH]; vec3_t mins; vec3_t maxs; + struct prvm_prog_s *prog; int areagrid_stats_calls; int areagrid_stats_nodechecks; @@ -95,7 +100,7 @@ void World_Init(void); void World_Shutdown(void); /// called after the world model has been loaded, before linking any entities -void World_SetSize(world_t *world, const char *filename, const vec3_t mins, const vec3_t maxs); +void World_SetSize(world_t *world, const char *filename, const vec3_t mins, const vec3_t maxs, struct prvm_prog_s *prog); /// unlinks all entities (used before reallocation of edicts) void World_UnlinkAll(world_t *world); @@ -121,7 +126,7 @@ void World_Physics_Frame(world_t *world, double frametime, double gravity); // change physics properties of entity struct prvm_edict_s; struct edict_odefunc_s; -//void World_Physics_ApplyCmd(prvm_edict_s *ed, edict_odefunc_s *f); +void World_Physics_ApplyCmd(struct prvm_edict_s *ed, struct edict_odefunc_s *f); // remove physics data from entity // this is called by entity removal