/* player flags */
enum {
- PF_UTF8 = bit(0) /* client wants UTF-8 */
+ PF_UTF8 = bit(0), /* client wants UTF-8 */
+ PF_DOWN = bit(1), /* told player game is down */
+ PF_HOURS = bit(2) /* told player hours restriction is on */
};
#endif
extern void update_timeused_login(time_t now);
extern void update_timeused(time_t now);
extern void enforce_minimum_session_time(void);
-extern int may_play_now(struct natstr *natp, time_t current_time,
- int suppress_deity_message);
+extern int may_play_now(struct natstr *, time_t);
/* more under Commands */
/* empmod.c */
/* init_nats.c */
}
int
-may_play_now(struct natstr *natp, time_t now,
- int suppress_deity_message)
+may_play_now(struct natstr *natp, time_t now)
{
if (CANT_HAPPEN(natp->nat_cnum != player->cnum))
return 0;
- if (!gamehours(now)) {
- if (natp->nat_stat != STAT_GOD || !suppress_deity_message)
- pr("Empire hours restriction in force\n");
+ if (gamehours(now)) {
+ if (player->flags & PF_HOURS) {
+ pr("\nEmpire hours restriction lifted\n");
+ player->flags &= ~PF_HOURS;
+ }
+ } else {
+ if (!(player->flags & PF_HOURS)) {
+ pr("\nEmpire hours restriction in force\n");
+ player->flags |= PF_HOURS;
+ }
if (natp->nat_stat != STAT_GOD)
return 0;
}
if (game_play_disabled()) {
- if (natp->nat_stat != STAT_GOD) {
+ if (!(player->flags & PF_DOWN)) {
show_first_tel(downfil);
pr("\nThe game is down\n");
- return 0;
+ player->flags |= PF_DOWN;
}
- if (!suppress_deity_message)
- pr("The game is down\n");
+ if (natp->nat_stat != STAT_GOD)
+ return 0;
}
if ((natp->nat_stat != STAT_GOD && natp->nat_stat != STAT_VIS)
return;
}
natp = getnatp(player->cnum);
- if (!may_play_now(natp, player->curup, 0))
+ if (!may_play_now(natp, player->curup))
return;
if (natp->nat_stat != STAT_VIS
&& natp->nat_last_login
now = time(NULL);
update_timeused(now);
- if (!may_play_now(getnatp(player->cnum), now, 1))
+ if (!player->god && !may_play_now(getnatp(player->cnum), now))
return 0;
if (parse(player->combuf, scanspace, player->argp, player->comtail,
time(&player->curup);
update_timeused(player->curup);
- if (!may_play_now(natp, player->curup, 0))
+ if (!may_play_now(natp, player->curup))
return 0;
if (player->btused) {
natp->nat_btu -= player->btused;