cvar_t sv_wallfriction = {CVAR_NOTIFY, "sv_wallfriction", "1"};
cvar_t sv_newflymove = {CVAR_NOTIFY, "sv_newflymove", "0"};
cvar_t sv_freezenonclients = {CVAR_NOTIFY, "sv_freezenonclients", "0"};
+cvar_t sv_playerphysicsqc = {CVAR_NOTIFY, "sv_playerphysicsqc", "1"};
#define MOVE_EPSILON 0.01
Cvar_RegisterVariable(&sv_wallfriction);
Cvar_RegisterVariable(&sv_newflymove);
Cvar_RegisterVariable(&sv_freezenonclients);
+
+ Cvar_RegisterVariable(&sv_playerphysicsqc);
}
/*
// if the entity is standing on the pusher, it will definitely be moved
if (!(((int)check->fields.server->flags & FL_ONGROUND) && PRVM_PROG_TO_EDICT(check->fields.server->groundentity) == pusher))
+ {
+ // if the entity is not inside the pusher's final position, leave it alone
if (!SV_ClipMoveToEntity(pusher, check->fields.server->origin, check->fields.server->mins, check->fields.server->maxs, check->fields.server->origin).startsolid)
continue;
+ }
if (forward[0] != 1 || left[1] != 1) // quick way to check if any rotation is used
{
// make sure the velocity is sane (not a NaN)
SV_CheckVelocity(ent);
// LordHavoc: QuakeC replacement for SV_ClientThink (player movement)
- if (SV_PlayerPhysicsQC)
+ if (SV_PlayerPhysicsQC && sv_playerphysicsqc.integer)
{
prog->globals.server->time = sv.time;
prog->globals.server->self = PRVM_EDICT_TO_PROG(ent);