]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sv_phys.c
renamed brush model pvs stuff to be in brush struct instead of brushq1 and brushq3...
[xonotic/darkplaces.git] / sv_phys.c
index 82b74882ab9c7c5ec1e7c1b32a632fc83ee84ef8..66eec8e2fe1fdd61094b74ff6597af0842b40d99 100644 (file)
--- a/sv_phys.c
+++ b/sv_phys.c
@@ -703,7 +703,8 @@ void SV_PushMove (edict_t *pusher, float movetime)
                if (check->v->movetype == MOVETYPE_PUSH
                 || check->v->movetype == MOVETYPE_NONE
                 || check->v->movetype == MOVETYPE_FOLLOW
-                || check->v->movetype == MOVETYPE_NOCLIP)
+                || check->v->movetype == MOVETYPE_NOCLIP
+                || check->v->movetype == MOVETYPE_FAKEPUSH)
                        continue;
 
                // if the entity is standing on the pusher, it will definitely be moved
@@ -1287,9 +1288,11 @@ void SV_Physics_Toss (edict_t *ent)
                }
                else if (ent->v->movetype == MOVETYPE_BOUNCE)
                {
+                       float d;
                        ClipVelocity (ent->v->velocity, trace.plane.normal, ent->v->velocity, 1.5);
                        // LordHavoc: fixed grenades not bouncing when fired down a slope
-                       if (trace.plane.normal[2] > 0.7 && DotProduct(trace.plane.normal, ent->v->velocity) < 60)
+                       d = DotProduct(trace.plane.normal, ent->v->velocity);
+                       if (trace.plane.normal[2] > 0.7 && fabs(d) < 60)
                        {
                                ent->v->flags = (int)ent->v->flags | FL_ONGROUND;
                                ent->v->groundentity = EDICT_TO_PROG(trace.ent);
@@ -1413,6 +1416,7 @@ void SV_Physics (void)
                switch ((int) ent->v->movetype)
                {
                case MOVETYPE_PUSH:
+               case MOVETYPE_FAKEPUSH:
                        SV_Physics_Pusher (ent);
                        break;
                case MOVETYPE_NONE: