- fixed: A_CheckBlock performed item pickup checks which could be done in completely inappropriate spots if this function was used from weapon overlays, for example.

This commit is contained in:
Christoph Oelckers 2017-05-14 11:54:49 +02:00
parent 6dd570c538
commit 1767dd6a42

View file

@ -2763,7 +2763,11 @@ bool P_CheckMove(AActor *thing, const DVector2 &pos, int flags)
FCheckPosition tm;
double newz = thing->Z();
if (!P_CheckPosition(thing, pos, tm))
auto f1 = thing->flags & MF_PICKUP;
thing->flags &= MF_PICKUP;
auto res = P_CheckPosition(thing, pos, tm);
thing->flags |= f1;
if (!res)
{
// Ignore PCM_DROPOFF. Not necessary here: a little later it is.
if (!flags || (!(flags & PCM_NOACTORS) && !(flags & PCM_NOLINES)))