--- deliantra/server/common/map.C 2010/04/16 02:32:25 1.188 +++ deliantra/server/common/map.C 2010/04/18 05:54:18 1.189 @@ -112,7 +112,7 @@ * true. If we get through the entire stack, that must mean * ob is blocking it, so return 0. */ - for (object *tmp = ms.bot; tmp; tmp = tmp->above) + for (object *tmp = ms.top; tmp; tmp = tmp->below) { if (OB_MOVE_BLOCK (ob, tmp)) { @@ -146,12 +146,11 @@ } else { // space does not block the ob, directly, but // anything alive that is not a door still - // blocks anything but wizards. + // blocks anything if (tmp->flag [FLAG_ALIVE] - && tmp->head_ () != ob - && tmp != ob - && tmp->type != DOOR) + && tmp->type != DOOR + && tmp->head_ () != ob) //TODO: maybe move these check up? return 1; } } @@ -160,7 +159,7 @@ } /* - * Returns qthe blocking object if the given object can't fit in the given + * Returns the blocking object if the given object can't fit in the given * spot. This is meant for multi space objects - for single space objecs, * just calling get_map_blocked and checking that against movement type * of object. This function goes through all the parts of the multipart