--- deliantra/server/server/player.C 2010/10/16 22:51:52 1.280 +++ deliantra/server/server/player.C 2010/10/18 09:33:11 1.281 @@ -1873,20 +1873,30 @@ if (!mon) { if (op->contr->ns->bumpmsg) - { - op->play_sound (sound_find ("bump_wall")); + for (object *ob = m->at (nx, ny).top; ob; ob = ob->below) + if (op->move_type & ob->move_block) + { + if (ob->move_block == MOVE_ALL) + { + op->play_sound (sound_find ("bump_wall")); - for (object *ob = m->at (nx, ny).top; ob; ob = ob->below) - if (op->move_type & ob->move_block) - { - if (ob->invisible) - op->statusmsg ("You bump into something."); - else - op->statusmsg (format ("You bump into the %s.", query_name (ob))); + op->statusmsg (ob->invisible + ? "You bump into something." + : format ("You bump into the %s.", query_name (ob)) + ); + } + else + { + op->play_sound (sound_find ("blocked_move")); - break; - } - } + op->statusmsg (ob->invisible + ? "Something blocks you." + : format ("Something blocks you from entering the %s.", query_name (ob)) + ); + } + + break; + } return false; }