mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-22 20:11:44 +00:00
added a physics_ode_enable cvar. If set to 0 at qc start, physics will be disabled for that map.
If you don't have an ode library or whatever, it'll be forced to 0 or non-existent, as a way to test to see if its supported+usable: if (cvar("physics_ode_enable")) physicswork(); git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3492 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
77056f58ed
commit
91d856d72e
1 changed files with 15 additions and 1 deletions
|
@ -38,6 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
//#define ODE_DYNAMIC 1
|
//#define ODE_DYNAMIC 1
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
cvar_t physics_ode_enable = SCVAR("physics_ode_enable", "1");
|
||||||
cvar_t physics_ode_quadtree_depth = CVARDP4(0, "physics_ode_quadtree_depth","5", "desired subdivision level of quadtree culling space");
|
cvar_t physics_ode_quadtree_depth = CVARDP4(0, "physics_ode_quadtree_depth","5", "desired subdivision level of quadtree culling space");
|
||||||
cvar_t physics_ode_contactsurfacelayer = CVARDP4(0, "physics_ode_contactsurfacelayer","0", "allows objects to overlap this many units to reduce jitter");
|
cvar_t physics_ode_contactsurfacelayer = CVARDP4(0, "physics_ode_contactsurfacelayer","0", "allows objects to overlap this many units to reduce jitter");
|
||||||
cvar_t physics_ode_worldquickstep = CVARDP4(0, "physics_ode_worldquickstep","1", "use dWorldQuickStep rather than dWorldStep");
|
cvar_t physics_ode_worldquickstep = CVARDP4(0, "physics_ode_worldquickstep","1", "use dWorldQuickStep rather than dWorldStep");
|
||||||
|
@ -1178,6 +1179,7 @@ void World_Physics_Init(void)
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Cvar_Register(&physics_ode_enable, "ODE Physics Library");
|
||||||
Cvar_Register(&physics_ode_quadtree_depth, "ODE Physics Library");
|
Cvar_Register(&physics_ode_quadtree_depth, "ODE Physics Library");
|
||||||
Cvar_Register(&physics_ode_contactsurfacelayer, "ODE Physics Library");
|
Cvar_Register(&physics_ode_contactsurfacelayer, "ODE Physics Library");
|
||||||
Cvar_Register(&physics_ode_worldquickstep, "ODE Physics Library");
|
Cvar_Register(&physics_ode_worldquickstep, "ODE Physics Library");
|
||||||
|
@ -1218,6 +1220,14 @@ void World_Physics_Init(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ODE_DYNAMIC
|
||||||
|
if (!ode_dll)
|
||||||
|
{
|
||||||
|
physics_ode_enable.flags |= CVAR_NOSET;
|
||||||
|
Cvar_ForceSet(&physics_ode_enable, "0");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void World_Physics_Shutdown(void)
|
void World_Physics_Shutdown(void)
|
||||||
|
@ -1239,6 +1249,10 @@ static void World_Physics_EnableODE(world_t *world)
|
||||||
dVector3 center, extents;
|
dVector3 center, extents;
|
||||||
if (world->ode.ode)
|
if (world->ode.ode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!physics_ode_enable.ival)
|
||||||
|
return;
|
||||||
|
|
||||||
#ifdef ODE_DYNAMIC
|
#ifdef ODE_DYNAMIC
|
||||||
if (!ode_dll)
|
if (!ode_dll)
|
||||||
return;
|
return;
|
||||||
|
@ -1554,7 +1568,7 @@ static void World_Physics_Frame_JointFromEntity(world_t *world, wedict_t *ed)
|
||||||
dJointSetHingeAnchor(j, origin[0], origin[1], origin[2]);
|
dJointSetHingeAnchor(j, origin[0], origin[1], origin[2]);
|
||||||
dJointSetHingeAxis(j, forward[0], forward[1], forward[2]);
|
dJointSetHingeAxis(j, forward[0], forward[1], forward[2]);
|
||||||
dJointSetHingeParam(j, dParamFMax, FMax);
|
dJointSetHingeParam(j, dParamFMax, FMax);
|
||||||
dJointSetHingeParam(j, dParamHiStop, Stop);
|
dJointSetHingeParam(j, dParamHiStop, Stop);
|
||||||
dJointSetHingeParam(j, dParamLoStop, -Stop);
|
dJointSetHingeParam(j, dParamLoStop, -Stop);
|
||||||
dJointSetHingeParam(j, dParamStopCFM, CFM);
|
dJointSetHingeParam(j, dParamStopCFM, CFM);
|
||||||
dJointSetHingeParam(j, dParamStopERP, ERP);
|
dJointSetHingeParam(j, dParamStopERP, ERP);
|
||||||
|
|
Loading…
Reference in a new issue