signed char nat_update; /* Want an update or not. */
unsigned short nat_tgms; /* # of telegrams to be announced */
unsigned short nat_ann; /* # of annos pending */
- unsigned short nat_minused; /* number of minutes used today */
+ int nat_timeused; /* number of seconds used today */
short nat_btu; /* bureaucratic time units */
short nat_access; /* The tick when BTUs were last updated */
long nat_reserve; /* military reserves */
char *argp[128]; /* arguments, ASCII, valid if command */
char *condarg; /* conditional, ASCII, valid if command */
char *comtail[128]; /* start of args in combuf[] */
- time_t lasttime; /* when minleft was last debited */
- int minleft;
+ time_t lasttime; /* when timeleft was last debited */
+ int timeleft;
int btused;
int god;
int owner;
extern void log_last_commands(void);
extern int gamedown(void);
extern void daychange(time_t);
-extern int getminleft(time_t, int);
+extern int gettimeleft(time_t, int);
/* more under Commands */
/* empmod.c */
/* init_nats.c */
pr("Origin <o>: %3s\n",
xyas(np->nat_xorg, np->nat_yorg, player->cnum));
pr("Status <s>: 0x%x\t\t\t", np->nat_stat);
- pr("Min Used <u>: %3d\n", np->nat_minused);
+ pr("Seconds Used <u>: %3d\n", np->nat_timeused);
pr("Technology <T>: %.2f\t\t", np->nat_level[NAT_TLEV]);
pr("Research <R>: %.2f\n", np->nat_level[NAT_RLEV]);
pr("Education <E>: %.2f\t\t", np->nat_level[NAT_ELEV]);
np->nat_stat = errcheck(arg, STAT_UNUSED, STAT_GOD);
break;
case 'u':
- arg = errcheck(arg, 0, m_m_p_d);
- pr("Number of minutes used changed from %d to %d.\n",
- np->nat_minused, arg);
- np->nat_minused = arg;
+ arg = errcheck(arg, 0, m_m_p_d * 60);
+ pr("Number of seconds used changed from %d to %d.\n",
+ np->nat_timeused, arg);
+ np->nat_timeused = arg;
break;
case 'M':
pr("Money changed from %ld to %d\n", np->nat_money, arg);
cname(joe->cnum),
joe->cnum,
player->god || joe->cnum == player->cnum ? praddr(joe) : "",
- natp->nat_minused / 60,
- natp->nat_minused % 60,
+ natp->nat_timeused / 3600,
+ (natp->nat_timeused % 3600) / 60,
(long)(now - joe->curup));
if (player->god) {
{"update", fldoff(nat_update), NSC_CHAR, 0, NULL, EF_BAD, 0},
{"tgms", fldoff(nat_tgms), NSC_USHORT, 0, NULL, EF_BAD, 0},
{"ann", fldoff(nat_ann), NSC_USHORT, 0, NULL, EF_BAD, 0},
- {"minused", fldoff(nat_minused), NSC_USHORT, 0, NULL, EF_BAD, 0},
+ {"timeused", fldoff(nat_timeused), NSC_INT, 0, NULL, EF_BAD, 0},
{"btu", fldoff(nat_btu), NSC_SHORT, 0, NULL, EF_BAD, 0},
{"access", fldoff(nat_access), NSC_SHORT, 0, NULL, EF_BAD, 0},
{"milreserve", fldoff(nat_reserve), NSC_LONG, 0, NULL, EF_BAD, 0},
player_commands_index, player->cnum);
do {
- prprompt(natp->nat_minused, natp->nat_btu);
+ prprompt(natp->nat_timeused / 60, natp->nat_btu);
buf[0] = 0;
if (recvclient(buf, 1024) < 0) {
return -1;
tm = localtime(&now);
if ((tm->tm_yday % 128) != natp->nat_dayno) {
natp->nat_dayno = tm->tm_yday % 128;
- natp->nat_minused = 0;
+ natp->nat_timeused = 0;
}
}
int
-getminleft(time_t now, int mpd)
+gettimeleft(time_t now, int mpd)
{
struct tm *tm;
- int nminleft;
+ int nsecleft;
struct natstr *natp;
int n;
tm = localtime(&now);
natp = getnatp(player->cnum);
- nminleft = mpd - natp->nat_minused;
- n = 60 * 24 - (tm->tm_min + tm->tm_hour * 60);
- if (n < nminleft)
- nminleft = n;
- return nminleft;
+ nsecleft = mpd * 60 - natp->nat_timeused;
+ n = 60 * 60 * 24 - (tm->tm_sec + tm->tm_min * 60 + tm->tm_hour * 3600);
+ if (n < nsecleft)
+ nsecleft = n;
+ return nsecleft;
}
return;
}
daychange(player->curup);
- if ((player->minleft = getminleft(player->curup, m_m_p_d)) <= 0) {
+ if ((player->timeleft = gettimeleft(player->curup, m_m_p_d)) <= 0) {
pr("Time exceeded today\n");
return;
}
*/
time(&natp->nat_last_logout);
secs = MAX(natp->nat_last_logout - player->lasttime, 15);
- natp->nat_minused += secs / 60;
- secs = secs % 60;
- if (chance(secs / 60.0))
- natp->nat_minused += 1;
+ natp->nat_timeused += secs;
putnat(natp);
pr("Bye-bye\n");
journal_logout();
status(void)
{
struct natstr *natp;
- int old_nstat, minute;
+ int old_nstat, second;
char buf[128];
if (player->eof || player->state == PS_SHUTDOWN)
pr("You are no longer broke!\n");
time(&player->curup);
- minute = (player->curup - player->lasttime) / 60;
- if (minute > 0) {
- player->minleft -= minute;
- if (player->minleft <= 0) {
+ second = player->curup - player->lasttime;
+ if (second > 0) {
+ player->timeleft -= second;
+ if (player->timeleft <= 0) {
/*
- * countdown timer "player->minleft" has expired.
+ * countdown timer "player->timeleft" has expired.
* either day change, or hours restriction
*/
daychange(player->curup);
return 0;
}
}
- player->minleft = getminleft(player->curup, m_m_p_d);
+ player->timeleft = gettimeleft(player->curup, m_m_p_d);
}
- player->lasttime += minute * 60;
- natp->nat_minused += minute;
+ player->lasttime += second;
+ natp->nat_timeused += second;
}
- if (natp->nat_stat == STAT_ACTIVE && natp->nat_minused > m_m_p_d) {
+ if (natp->nat_stat == STAT_ACTIVE &&
+ natp->nat_timeused > m_m_p_d * 60) {
pr("Max minutes per day limit exceeded.\n");
player->nstat = (player->nstat & ~NORM) | VIS;
}
}
natp->nat_dayno = 0;
- natp->nat_minused = 0;
+ natp->nat_timeused = 0;
natp->nat_update = 0;
natp->nat_tgms = 0;
- time(&natp->nat_last_logout);
+ empire_time(&natp->nat_last_logout);
secs = MAX(natp->nat_last_logout - player->lasttime, 15);
- natp->nat_minused += secs / 60;
- secs = secs % 60;
+ natp->nat_timeused += secs;
+ putnat(natp);
@@ -182,7 +183,7 @@ status(void)
if (!(old_nstat & MONEY) && (player->nstat & MONEY))
pr("You are no longer broke!\n");
- time(&player->curup);
+ empire_time(&player->curup);
- minute = (player->curup - player->lasttime) / 60;
- if (minute > 0) {
- player->minleft -= minute;
+ second = player->curup - player->lasttime;
+ if (second > 0) {
+ player->timeleft -= second;
diff --git a/src/lib/player/recvclient.c b/src/lib/player/recvclient.c
index ab4ef69..8934189 100644
--- a/src/lib/player/recvclient.c