From: Markus Armbruster Date: Mon, 21 Nov 2011 19:07:48 +0000 (+0100) Subject: Don't lie "You have a new telegram" after read with inform off X-Git-Tag: v4.3.29~11 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=4d046738fdabf9bc102cb1a42bddb25379184324 Don't lie "You have a new telegram" after read with inform off Here's how telegram notification works with NF_INFORM off: typed_wu() increments the telegram recipient's nat_tgms. status(), running right before command prompts, notifies the player when nat_tgms > 0, and resets it. Thus, we tell the player how many telegrams arrived since the previous command prompt. However, what we really want is something else, namely the number of "new telegrams waiting". That's what the notification message says, after all. Telegrams already printed by read shouldn't count, even when they arrived since the previous command prompt. Make them not count by clearing pending telegrams on read regardless of toggle inform. Same for announcements. --- diff --git a/src/lib/commands/rea.c b/src/lib/commands/rea.c index 22df74e6b..33fcde34c 100644 --- a/src/lib/commands/rea.c +++ b/src/lib/commands/rea.c @@ -132,13 +132,15 @@ rea(void) if (res < 0) pr("\n> Mailbox corrupt, tell the deity.\n"); - if (*kind != 'a') { + if (*kind == 'a') + np->nat_ann = 0; + else { + np->nat_tgms = 0; if (np->nat_flags & NF_INFORM) { pr_inform(player, "\n"); - np->nat_tgms = 0; - putnat(np); } } + putnat(np); if (teles > 0 && player->cnum == num && may_delete) { pr("\n");