From f1d89514a59843f86c3d2b99f186ede2f3a771c6 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 8 Feb 2009 14:16:57 +0100 Subject: [PATCH] Move update_timeused() from may_play_now() back to callers This backs out a small part of commit d1ff2a60, for clarity. While there, oops when may_play_now() is called with incorrect natp argument. --- src/lib/player/empdis.c | 3 ++- src/lib/player/player.c | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/player/empdis.c b/src/lib/player/empdis.c index e8df9a38..0ae85156 100644 --- a/src/lib/player/empdis.c +++ b/src/lib/player/empdis.c @@ -273,7 +273,8 @@ int may_play_now(struct natstr *natp, time_t now, int suppress_deity_message) { - update_timeused(now); + if (CANT_HAPPEN(natp->nat_cnum != player->cnum)) + return 0; if (!gamehours(now)) { if (natp->nat_stat != STAT_GOD || !suppress_deity_message) diff --git a/src/lib/player/player.c b/src/lib/player/player.c index 7c47e727..72271157 100644 --- a/src/lib/player/player.c +++ b/src/lib/player/player.c @@ -120,11 +120,14 @@ command(void) { char *redir; /* UTF-8 */ char scanspace[1024]; + time_t now; if (getcommand(player->combuf) < 0) return 0; - if (!may_play_now(getnatp(player->cnum), time(NULL), 1)) + now = time(NULL); + update_timeused(now); + if (!may_play_now(getnatp(player->cnum), now, 1)) return 0; if (parse(player->combuf, scanspace, player->argp, player->comtail, @@ -171,6 +174,7 @@ status(void) pr("You are no longer broke!\n"); time(&player->curup); + update_timeused(player->curup); if (!may_play_now(natp, player->curup, 0)) return 0; if (player->btused) {