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) {