--- deliantra/server/socket/request.C 2008/06/15 19:34:31 1.132 +++ deliantra/server/socket/request.C 2008/08/01 16:31:58 1.135 @@ -1179,7 +1179,6 @@ if (d > 3) { - int need_send = 0, count; /* This block deals with spaces that are not visible for whatever @@ -1195,11 +1194,11 @@ count = -1; - /* properly clear a previously sent big face */ if (lastcell.faces[0] || lastcell.faces[1] || lastcell.faces[2] || lastcell.stat_hp || lastcell.flags || lastcell.player) need_send = 1; + /* properly clear a previously sent big face */ map_clearcell (&lastcell, count); if ((mask & 0xf) || need_send) @@ -1265,17 +1264,19 @@ && op->stats.maxhp > 0 && (op->type == PLAYER || op->type == DOOR // does not work, have maxhp 0 - || QUERY_FLAG (op, FLAG_MONSTER) || QUERY_FLAG (op, FLAG_ALIVE) || QUERY_FLAG (op, FLAG_GENERATOR))) + || QUERY_FLAG (op, FLAG_MONSTER) + || QUERY_FLAG (op, FLAG_ALIVE) + || QUERY_FLAG (op, FLAG_GENERATOR))) { stat_hp = 255 - (op->stats.hp * 255 + 254) / op->stats.maxhp; stat_width = op->arch->max_x - op->arch->x; //TODO: should be upper-left edge } - if (op->msg && op->msg[0] == '@') + if (op->has_dialogue ()) flags |= 1; - if (op->type == PLAYER && op != ob) - player = op->count; + if (op->type == PLAYER) + player = ob == op ? pl->ob->count : op->count; } if (lastcell.stat_hp != stat_hp)