protected boolean stopFalling(MOB mob)
	{
		final Room R=mob.location();
		if(reversed())
		{
			if(!hitTheCeiling)
			{
				hitTheCeiling=true;
				if(R!=null) R.show(mob,null,CMMsg.MSG_OK_ACTION,_("<S-NAME> hit(s) the ceiling.@x1",CMLib.protocol().msp("splat.wav",50)));
				CMLib.combat().postDamage(mob,mob,this,damageToTake,CMMsg.MASK_ALWAYS|CMMsg.TYP_JUSTICE,-1,null);
			}
			return true;
		}
		hitTheCeiling=false;
		unInvoke();
		if(R!=null)
		{
			if(isAirRoom(R))
				R.show(mob,null,CMMsg.MSG_OK_ACTION,_("<S-NAME> stop(s) falling.@x1",CMLib.protocol().msp("splat.wav",50)));
			else
			if(isWaterSurface(R)||isUnderWater(R))
				R.show(mob,null,CMMsg.MSG_OK_ACTION,_("<S-NAME> hit(s) the water.@x1",CMLib.protocol().msp("splat.wav",50)));
			else
				R.show(mob,null,CMMsg.MSG_OK_ACTION,_("<S-NAME> hit(s) the ground.@x1",CMLib.protocol().msp("splat.wav",50)));
			CMLib.combat().postDamage(mob,mob,this,damageToTake,CMMsg.MASK_ALWAYS|CMMsg.TYP_JUSTICE,-1,null);
		}
		mob.delEffect(this);
		return false;
	}