Update and report status even after empty command

When getcommand() reads an empty string, it prints another prompt and
reads another line, without running status().  That's bad:

* nat_timeused is not updated.  Affects the player's prompt, deities'
  nat selector timeused, and commands edit, players, xdump nat.

* Mortal player isn't logged off for game hours, game down, and time
  limit.

* Notifications are delayed: going broke, becoming solvent, new
  telegrams (toggle inform off only), new announcements, capital lost.

Fix by removing the loop.  Callers handle empty input just fine since
4.2.2.

Side effect: empty commands are now recorded in player_commands[].
That's okay.
This commit is contained in:
Markus Armbruster 2011-07-01 19:05:16 +02:00
parent 2bbe648d78
commit 727e6194c8

View file

@ -77,13 +77,9 @@ getcommand(char *combufp)
sprintf(player_commands[player_commands_index], "%3d %3d [prompt]", sprintf(player_commands[player_commands_index], "%3d %3d [prompt]",
player_commands_index, player->cnum); player_commands_index, player->cnum);
do { prprompt(natp->nat_timeused / 60, natp->nat_btu);
prprompt(natp->nat_timeused / 60, natp->nat_btu); if (recvclient(buf, sizeof(buf)) < 0)
buf[0] = 0; return -1;
if (recvclient(buf, sizeof(buf)) < 0) {
return -1;
}
} while (buf[0] == 0);
if (++player_commands_index >= KEEP_COMMANDS) if (++player_commands_index >= KEEP_COMMANDS)
player_commands_index = 0; player_commands_index = 0;