fix part of #2629 - feedback for reverse genocide (trunk only)

From a bug report, if reading a cursed scroll of genocide created only
one monster it would give the plural message "Sent in some <monsters>."
Now it will say "Sent in a(n) <monster>." in such case.  (The grammar is
accurate even if you can't see what happened; that situation is unusual
enough that I'm not going to worry about giving information away.)
This commit is contained in:
nethack.rankin
2012-04-06 08:35:00 +00:00
parent d3c59c9e84
commit b3e131e914
2 changed files with 9 additions and 4 deletions

View File

@@ -411,6 +411,7 @@ theft of worn armor with wear/unwear delay would interfere with completion of
#sit while swallowed would give the wrong message
alchemical explosion or evaporation only used up one potion instead of all
the potions being dipped
feedback for reverse-genocide was plural even when just one monster was created
Platform- and/or Interface-Specific Fixes

View File

@@ -1934,7 +1934,7 @@ int how;
kill_genocided_monsters();
update_inventory(); /* in case identified eggs were affected */
} else {
int cnt = 0;
int cnt = 0, census = monster_census(FALSE);
if (!(mons[mndx].geno & G_UNIQ) &&
!(mvitals[mndx].mvflags & (G_GENOD | G_EXTINCT)))
@@ -1945,9 +1945,13 @@ int how;
if (mvitals[mndx].mvflags & G_EXTINCT)
break; /* just made last one */
}
if (cnt)
pline("Sent in some %s.", makeplural(buf));
else
if (cnt) {
/* accumulated 'cnt' doesn't take groups into account;
assume bringing in new mon(s) didn't remove any old ones */
cnt = monster_census(FALSE) - census;
pline("Sent in %s%s.", (cnt > 1) ? "some " : "",
(cnt > 1) ? makeplural(buf) : an(buf));
} else
pline1(nothing_happens);
}
}