}  if (priviledged) { return true;
bool mayWalk( P_CHAR pChar, Coord_cl &pos ){	// Go trough the array top-to-bottom and check	// If we find a tile to walk on	vector< stBlockItem > blockList = getBlockingItems( pChar, pos );	bool found = false;	UINT32 i;		for( i = 0; i < blockList.size(); ++i )	{		stBlockItem item = blockList[i];		INT8 itemTop = ( item.z + item.height );		// If we encounter any object with itemTop <= pos.z which is NOT walkable		// Then we can as well just return false as while falling we would be		// blocked by that object		if( !item.walkable && ( itemTop < pos.z ) )			return false;		// If the top of the item is within our max-climb reach		// then the first check passed. in addition we need to 		// check if the "bottom" of the item is reachable		// I would say 2 is a good "reach" value for the bottom		// of any item		if( item.walkable && ( itemTop <= pos.z + P_M_MAX_Z_CLIMB ) && ( itemTop >= pos.z - P_M_MAX_Z_FALL ) /*&& ( item.z <= pos.z + 2 )*/ )		{			pos.z = itemTop;			found = true;			break;		}	}	// If we're still at the same position	// We didn't find anything to step on	if( !found )		return false;	// Another loop *IS* needed here (at least that's what i think)	for( i = 0; i < blockList.size(); ++i )	{		// So we know about the new Z position we are moving to		// Lets check if there is enough space ABOVE that position (at least 15 z units)		// If there is ANY impassable object between pos.z and pos.z + 15 we can't walk here		stBlockItem item = blockList[i];		INT8 itemTop = ( item.z + item.height );		// Does the top of the item looms into our space		// Like before 15 is the assumed height of ourself		if( ( itemTop > pos.z ) && ( itemTop < pos.z + P_M_MAX_Z_BLOCKS ) )			return false;		// Or the bottom ?		if( ( item.z > pos.z ) && ( item.z < pos.z + P_M_MAX_Z_BLOCKS ) )			return false;		// Or does it spread the whole range ?		if( ( item.z <= pos.z ) && ( itemTop >= pos.z + P_M_MAX_Z_BLOCKS ) )			return false;		// If the Item Tops are already below our current position exit the		// loop, we're sorted by those !		if( itemTop <= pos.z )			break;	}	// All Checks passed	return true;}