From 568b8de5337566bf64677493e7ef92a5b8fd9d46 Mon Sep 17 00:00:00 2001 From: cohrs Date: Tue, 9 Jul 2002 04:21:58 +0000 Subject: [PATCH] kicking and killing an unseen monster reported that kicking [unlike hitting] an unseen monster to death would leave an "I" on the screen. This was due to a missing DEADMONSTER check. I also noticed that code to avoid leaving an extra "I" behind when a monster jumps of of the way was only half right, resulting in an extra "I" anyway. --- doc/fixes34.1 | 1 + src/dokick.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 406583341..fbdb029d3 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -152,6 +152,7 @@ Cancelled while polymorphed and Unchanging should provide feedback stone to flesh on a statue with contents would lose the contents if a monster was on the same location as the statue steed movement would use your speed if walking step by step +kicking a known, unseen monster would sometimes leave behind an extra I symbol Platform- and/or Interface-Specific Fixes diff --git a/src/dokick.c b/src/dokick.c index 5b3fabfb3..ff733cede 100644 --- a/src/dokick.c +++ b/src/dokick.c @@ -214,6 +214,10 @@ doit: } else { mnexto(mon); if(mon->mx != x || mon->my != y) { + if(glyph_is_invisible(levl[x][y].glyph)) { + unmap_object(x, y); + newsym(x, y); + } pline("%s %s, %s evading your %skick.", Monnam(mon), (can_teleport(mon->data) ? "teleports" : is_floater(mon->data) ? "floats" : @@ -715,7 +719,8 @@ dokick() kick_monster(x, y); flags.forcefight = FALSE; /* see comment in attack_checks() */ - if (!canspotmon(mtmp) && + if (!DEADMONSTER(mtmp) && + !canspotmon(mtmp) && /* check x and y; a monster that evades your kick by jumping to an unseen square doesn't leave an I behind */ mtmp->mx == x && mtmp->my == y &&