Bring qw's entity-in-solid check into nq's SV_Push.

This commit is contained in:
Bill Currie 2011-12-22 10:24:01 +09:00
parent 7243de0d90
commit b54f0587d1

View file

@ -448,6 +448,15 @@ SV_Push (edict_t *pusher, const vec3_t tmove, const vec3_t amove)
|| c_movetype == MOVETYPE_NOCLIP)
continue;
// If the entity is in another solid, it's not free to move. Make the
// pusher non-solid to ensure it doesn't interfere with the check.
solid_save = SVfloat (pusher, solid);
SVfloat (pusher, solid) = SOLID_NOT;
block = SV_TestEntityPosition (check);
SVfloat (pusher, solid) = solid_save;
if (block)
continue;
// if the entity is standing on the pusher, it will definately be moved
c_flags = SVfloat (check, flags);
c_groundentity = SVentity (check, groundentity);