1313 lines
37 KiB
Diff
1313 lines
37 KiB
Diff
diff --git a/include/emptime.h b/include/emptime.h
|
|
new file mode 100644
|
|
index 0000000..a83b29d
|
|
--- /dev/null
|
|
+++ b/include/emptime.h
|
|
@@ -0,0 +1,42 @@
|
|
+/*
|
|
+ * Empire - A multi-player, client/server Internet based war game.
|
|
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
|
|
+ * Ken Stevens, Steve McClure
|
|
+ *
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
+ * (at your option) any later version.
|
|
+ *
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * GNU General Public License for more details.
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License
|
|
+ * along with this program; if not, write to the Free Software
|
|
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
+ *
|
|
+ * ---
|
|
+ *
|
|
+ * See files README, COPYING and CREDITS in the root of the source
|
|
+ * tree for related information and legal notices. It is expected
|
|
+ * that future projects/authors will amend these files as needed.
|
|
+ *
|
|
+ * ---
|
|
+ *
|
|
+ * emptime.h: Time functions for regression testing and
|
|
+ * replaying journals.
|
|
+ *
|
|
+ * Known contributors to this file:
|
|
+ * Ron Koenderink, 2008
|
|
+ */
|
|
+
|
|
+#ifndef EMPTIME_H
|
|
+#define EMPTIME_H
|
|
+
|
|
+#include <time.h>
|
|
+
|
|
+#define empire_time(expr) emp_time((expr), __FUNCTION__)
|
|
+extern time_t emp_time(time_t *, const char []);
|
|
+#endif
|
|
diff --git a/include/commands.h b/include/commands.h
|
|
index 594d263..0b22f09 100644
|
|
--- a/include/commands.h
|
|
+++ b/include/commands.h
|
|
@@ -34,6 +34,7 @@
|
|
#ifndef COMMANDS_H
|
|
#define COMMANDS_H
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "player.h"
|
|
diff --git a/src/lib/commands/buy.c b/src/lib/commands/buy.c
|
|
index 7e4daf0..6e244cf 100644
|
|
--- a/src/lib/commands/buy.c
|
|
+++ b/src/lib/commands/buy.c
|
|
@@ -170,7 +170,7 @@ buy(void)
|
|
if (bid > 0.04 + comm.com_price) {
|
|
comm.com_price = bid;
|
|
/* Add five minutes to the time if less than 5 minutes */
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
if (((MARK_DELAY - (now - comm.com_markettime)) < 300) &&
|
|
comm.com_maxbidder != player->cnum) {
|
|
comm.com_markettime += 300;
|
|
@@ -212,7 +212,7 @@ check_market(void)
|
|
for (n = 0; getcomm(n, &comm); n++) {
|
|
if (comm.com_maxbidder == comm.com_owner || comm.com_owner == 0)
|
|
continue;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
tleft = MARK_DELAY / 3600.0 - (now - comm.com_markettime) / 3600.0;
|
|
if (tleft < 0)
|
|
tleft = 0;
|
|
diff --git a/src/lib/commands/coll.c b/src/lib/commands/coll.c
|
|
index 3fcb48f..2183d98 100644
|
|
--- a/src/lib/commands/coll.c
|
|
+++ b/src/lib/commands/coll.c
|
|
@@ -71,7 +71,7 @@ coll(void)
|
|
}
|
|
/* If we got here, we check to see if it's been defaulted on. We
|
|
already know it's owed to this player. */
|
|
- owed = loan_owed(&loan, time(&now));
|
|
+ owed = loan_owed(&loan, empire_time(&now));
|
|
if (now <= loan.l_duedate) {
|
|
pr("There has been no default on loan %d\n", arg);
|
|
return RET_FAIL;
|
|
@@ -124,7 +124,7 @@ coll(void)
|
|
caploss(§, loan.l_lonee, "that was %s's capital!\n");
|
|
putsect(§);
|
|
nreport(player->cnum, N_SEIZE_SECT, loan.l_lonee, 1);
|
|
- owed = loan_owed(&loan, time(&now));
|
|
+ owed = loan_owed(&loan, empire_time(&now));
|
|
if (pay >= owed) {
|
|
loan.l_status = LS_FREE;
|
|
loan.l_ldur = 0;
|
|
@@ -135,7 +135,7 @@ coll(void)
|
|
xyas(sect.sct_x, sect.sct_y, loan.l_lonee), arg);
|
|
pr("That loan is now considered repaid.\n");
|
|
} else {
|
|
- (void)time(&loan.l_lastpay);
|
|
+ (void)empire_time(&loan.l_lastpay);
|
|
owed -= pay;
|
|
loan.l_amtdue = (long)owed;
|
|
pay += loan.l_amtpaid;
|
|
diff --git a/src/lib/commands/cons.c b/src/lib/commands/cons.c
|
|
index d67e64e..30d1ca1 100644
|
|
--- a/src/lib/commands/cons.c
|
|
+++ b/src/lib/commands/cons.c
|
|
@@ -229,7 +229,7 @@ loan_accept(struct ltcomstr *ltcp)
|
|
putnat(lender);
|
|
player->dolcost -= lp->l_amtdue;
|
|
lp->l_amtpaid = 0;
|
|
- (void)time(&lp->l_lastpay);
|
|
+ (void)empire_time(&lp->l_lastpay);
|
|
lp->l_duedate = lp->l_ldur * 86400 + lp->l_lastpay;
|
|
lp->l_status = LS_SIGNED;
|
|
if (!putloan(ltcp->num, lp)) {
|
|
diff --git a/src/lib/commands/dump.c b/src/lib/commands/dump.c
|
|
index 3ad1f21..fa009f0 100644
|
|
--- a/src/lib/commands/dump.c
|
|
+++ b/src/lib/commands/dump.c
|
|
@@ -241,7 +241,7 @@ dump(void)
|
|
|
|
if (player->god)
|
|
pr(" ");
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP SECTOR %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("own ");
|
|
diff --git a/src/lib/commands/fina.c b/src/lib/commands/fina.c
|
|
index a6add31..e458c28 100644
|
|
--- a/src/lib/commands/fina.c
|
|
+++ b/src/lib/commands/fina.c
|
|
@@ -55,7 +55,7 @@ fina(void)
|
|
}
|
|
if (!snxtitem(&ni, EF_LOAN, "*", NULL))
|
|
return RET_SYN;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
pr("\n");
|
|
pr(" -= Empire Financial Status Report =- \n");
|
|
pr(" ");
|
|
diff --git a/src/lib/commands/flash.c b/src/lib/commands/flash.c
|
|
index 787e4a4..8517ccb 100644
|
|
--- a/src/lib/commands/flash.c
|
|
+++ b/src/lib/commands/flash.c
|
|
@@ -122,7 +122,7 @@ sendmessage(struct natstr *us, struct natstr *to, char *message, int verbose)
|
|
int sent = 0;
|
|
struct natstr *wto;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
tm = localtime(&now);
|
|
for (other = player_next(0); other != 0; other = player_next(other)) {
|
|
if (other->state != PS_PLAYING)
|
|
diff --git a/src/lib/commands/head.c b/src/lib/commands/head.c
|
|
index 2b1c148..e0ddb7a 100644
|
|
--- a/src/lib/commands/head.c
|
|
+++ b/src/lib/commands/head.c
|
|
@@ -66,7 +66,7 @@ head(void)
|
|
struct nstr_item nstr;
|
|
int i, n;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
natp = getnatp(player->cnum);
|
|
if (player->argp[1] != 0 && *player->argp[1] != 0) {
|
|
news_per = days(atoi(player->argp[1]));
|
|
diff --git a/src/lib/commands/ldump.c b/src/lib/commands/ldump.c
|
|
index 930810f..16dcf0c 100644
|
|
--- a/src/lib/commands/ldump.c
|
|
+++ b/src/lib/commands/ldump.c
|
|
@@ -157,7 +157,7 @@ ldump(void)
|
|
|
|
if (player->god)
|
|
pr(" ");
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP LAND UNITS %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("own ");
|
|
diff --git a/src/lib/commands/lost.c b/src/lib/commands/lost.c
|
|
index ad76e59..c302f21 100644
|
|
--- a/src/lib/commands/lost.c
|
|
+++ b/src/lib/commands/lost.c
|
|
@@ -51,7 +51,7 @@ lost(void)
|
|
|
|
prdate();
|
|
nlost = 0;
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP LOST ITEMS %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("owner ");
|
|
diff --git a/src/lib/commands/mark.c b/src/lib/commands/mark.c
|
|
index f857444..6ec322d 100644
|
|
--- a/src/lib/commands/mark.c
|
|
+++ b/src/lib/commands/mark.c
|
|
@@ -74,7 +74,7 @@ pr_mark(struct comstr *comm)
|
|
time_t now;
|
|
double tleft;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
tleft = MARK_DELAY / 3600.0 - (now - comm->com_markettime) / 3600.0;
|
|
if (tleft < 0.0)
|
|
tleft = 0.0;
|
|
diff --git a/src/lib/commands/ndump.c b/src/lib/commands/ndump.c
|
|
index 927db4f..d081d13 100644
|
|
--- a/src/lib/commands/ndump.c
|
|
+++ b/src/lib/commands/ndump.c
|
|
@@ -50,7 +50,7 @@ ndump(void)
|
|
prdate();
|
|
if (player->god)
|
|
pr(" ");
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP NUKES %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("own ");
|
|
diff --git a/src/lib/commands/news.c b/src/lib/commands/news.c
|
|
index 0095170..e365be2 100644
|
|
--- a/src/lib/commands/news.c
|
|
+++ b/src/lib/commands/news.c
|
|
@@ -65,7 +65,7 @@ news(void)
|
|
return RET_SYN;
|
|
memset(page_has_news, 0, sizeof(page_has_news));
|
|
memset(sectors_taken, 0, sizeof(sectors_taken));
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
natp = getnatp(player->cnum);
|
|
then = natp->nat_newstim;
|
|
if (player->argp[1]) {
|
|
diff --git a/src/lib/commands/offe.c b/src/lib/commands/offe.c
|
|
index 01570b5..01c40c6 100644
|
|
--- a/src/lib/commands/offe.c
|
|
+++ b/src/lib/commands/offe.c
|
|
@@ -127,7 +127,7 @@ do_treaty(void)
|
|
pr("Bad treaty duration.\n");
|
|
return RET_SYN;
|
|
}
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
snxtitem_all(&nstr, EF_TREATY);
|
|
while (nxtitem(&nstr, &trty)) {
|
|
if (trty.trt_status == TS_FREE) {
|
|
@@ -228,7 +228,7 @@ do_loan(void)
|
|
loan.l_ldur = MIN(dur, 127);
|
|
loan.l_amtpaid = 0;
|
|
loan.l_amtdue = amt;
|
|
- (void)time(&loan.l_lastpay);
|
|
+ (void)empire_time(&loan.l_lastpay);
|
|
loan.l_duedate = loan.l_ldur * SECS_PER_DAY + loan.l_lastpay;
|
|
if (!putloan(nstr.cur, &loan)) {
|
|
logerror("do_loan: can't save loan");
|
|
diff --git a/src/lib/commands/pdump.c b/src/lib/commands/pdump.c
|
|
index 48f0f4d..51578b1 100644
|
|
--- a/src/lib/commands/pdump.c
|
|
+++ b/src/lib/commands/pdump.c
|
|
@@ -119,7 +119,7 @@ pdump(void)
|
|
|
|
if (player->god)
|
|
pr(" ");
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP PLANES %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("own ");
|
|
diff --git a/src/lib/commands/play.c b/src/lib/commands/play.c
|
|
index a4ab28a..eb5c9f6 100644
|
|
--- a/src/lib/commands/play.c
|
|
+++ b/src/lib/commands/play.c
|
|
@@ -96,7 +96,7 @@ play_list(struct player *joe)
|
|
}
|
|
}
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("%-9.9s %3d %32.32s %2d:%02d %4lds",
|
|
cname(joe->cnum),
|
|
joe->cnum,
|
|
diff --git a/src/lib/commands/powe.c b/src/lib/commands/powe.c
|
|
index 2367002..74cf745 100644
|
|
--- a/src/lib/commands/powe.c
|
|
+++ b/src/lib/commands/powe.c
|
|
@@ -87,7 +87,7 @@ powe(void)
|
|
pr("\n power new is disabled, using the last report.\n\n");
|
|
else {
|
|
gen_power(powbuf, save);
|
|
- pow_time = time(NULL);
|
|
+ pow_time = empire_time(NULL);
|
|
power_generated = 1;
|
|
}
|
|
}
|
|
diff --git a/src/lib/commands/rea.c b/src/lib/commands/rea.c
|
|
index 5de2bb2..f9d7c71 100644
|
|
--- a/src/lib/commands/rea.c
|
|
+++ b/src/lib/commands/rea.c
|
|
@@ -76,7 +76,7 @@ rea(void)
|
|
int readit;
|
|
int may_delete = 1; /* may messages be deleted? */
|
|
|
|
- now = time(NULL);
|
|
+ now = empire_time(NULL);
|
|
|
|
if (*player->argp[0] == 'w') {
|
|
kind = "announcement";
|
|
@@ -188,7 +188,7 @@ rea(void)
|
|
(void)fflush(telfp);
|
|
(void)fseek(telfp, (long)size, SEEK_SET);
|
|
size = filelen;
|
|
- now = time(NULL);
|
|
+ now = empire_time(NULL);
|
|
goto more;
|
|
}
|
|
if (*kind == 'a') {
|
|
diff --git a/src/lib/commands/repa.c b/src/lib/commands/repa.c
|
|
index 77a4734..c9b4079 100644
|
|
--- a/src/lib/commands/repa.c
|
|
+++ b/src/lib/commands/repa.c
|
|
@@ -76,7 +76,7 @@ repa(void)
|
|
if (payment <= 0)
|
|
return RET_SYN;
|
|
|
|
- newdue = (long)ceil(loan_owed(&loan, time(&now)) - payment);
|
|
+ newdue = (long)ceil(loan_owed(&loan, empire_time(&now)) - payment);
|
|
if (newdue < 0) {
|
|
pr("You don't owe that much.\n");
|
|
return RET_FAIL;
|
|
diff --git a/src/lib/commands/rese.c b/src/lib/commands/rese.c
|
|
index bfb64d2..7ffcf5d 100644
|
|
--- a/src/lib/commands/rese.c
|
|
+++ b/src/lib/commands/rese.c
|
|
@@ -131,7 +131,7 @@ rese(void)
|
|
return RET_OK;
|
|
}
|
|
comm.com_price = price;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
comm.com_markettime = now;
|
|
if (!putcomm(number_set, &comm)) {
|
|
pr("Problems with the commodities file, Call the Deity\n");
|
|
diff --git a/src/lib/commands/sdump.c b/src/lib/commands/sdump.c
|
|
index 95899e5..f52bcb9 100644
|
|
--- a/src/lib/commands/sdump.c
|
|
+++ b/src/lib/commands/sdump.c
|
|
@@ -143,7 +143,7 @@ sdump(void)
|
|
|
|
if (player->god)
|
|
pr(" ");
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
pr("DUMP SHIPS %ld\n", (long)now);
|
|
if (player->god)
|
|
pr("own ");
|
|
diff --git a/src/lib/commands/sell.c b/src/lib/commands/sell.c
|
|
index e6ad4ea..78dd5fc 100644
|
|
--- a/src/lib/commands/sell.c
|
|
+++ b/src/lib/commands/sell.c
|
|
@@ -143,7 +143,7 @@ sell(void)
|
|
if (comm.com_owner == 0)
|
|
break;
|
|
}
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
ef_blank(EF_COMM, ii, &comm);
|
|
comm.com_type = ip->i_uid;
|
|
comm.com_owner = player->cnum;
|
|
diff --git a/src/lib/commands/set.c b/src/lib/commands/set.c
|
|
index dcda303..e93d7ba 100644
|
|
--- a/src/lib/commands/set.c
|
|
+++ b/src/lib/commands/set.c
|
|
@@ -130,7 +130,7 @@ set(void)
|
|
trade.trd_owner = player->cnum;
|
|
trade.trd_unitid = ni.cur;
|
|
trade.trd_price = price;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
trade.trd_markettime = now;
|
|
trade.trd_maxbidder = player->cnum;
|
|
puttrade(id, &trade);
|
|
diff --git a/src/lib/commands/shark.c b/src/lib/commands/shark.c
|
|
index ec38b3c..bc4af9a 100644
|
|
--- a/src/lib/commands/shark.c
|
|
+++ b/src/lib/commands/shark.c
|
|
@@ -72,7 +72,7 @@ shark(void)
|
|
return RET_FAIL;
|
|
}
|
|
/* If we got here, we check to see if it's been defaulted on. */
|
|
- owed = loan_owed(&loan, time(&now));
|
|
+ owed = loan_owed(&loan, empire_time(&now));
|
|
if (now <= loan.l_duedate) {
|
|
pr("There has been no default on loan %d\n", arg);
|
|
return RET_FAIL;
|
|
diff --git a/src/lib/commands/trad.c b/src/lib/commands/trad.c
|
|
index 5b0af58..e3a440b 100644
|
|
--- a/src/lib/commands/trad.c
|
|
+++ b/src/lib/commands/trad.c
|
|
@@ -97,7 +97,7 @@ trad(void)
|
|
continue;
|
|
};
|
|
pr(" %3d ", ni.cur);
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
tleft =
|
|
TRADE_DELAY / 3600.0 - (now - trade.trd_markettime) / 3600.0;
|
|
if (tleft < 0.0)
|
|
@@ -252,7 +252,7 @@ trad(void)
|
|
}
|
|
if (bid > trade.trd_price) {
|
|
/* Add five minutes to the time if less than 5 minutes left. */
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
if (((TRADE_DELAY - (now - trade.trd_markettime)) < 300) &&
|
|
trade.trd_maxbidder != player->cnum)
|
|
trade.trd_markettime += 300;
|
|
@@ -306,7 +306,7 @@ check_trade(void)
|
|
if (trade.trd_owner == trade.trd_maxbidder)
|
|
continue;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
tleft =
|
|
TRADE_DELAY / 3600.0 - (now - trade.trd_markettime) / 3600.0;
|
|
if (tleft < 0.0)
|
|
diff --git a/src/lib/commands/turn.c b/src/lib/commands/turn.c
|
|
index 640cef8..d5d9c19 100644
|
|
--- a/src/lib/commands/turn.c
|
|
+++ b/src/lib/commands/turn.c
|
|
@@ -74,7 +74,7 @@ turn(void)
|
|
else
|
|
pr("Enter a new message of the day.\n");
|
|
|
|
- time(&tgm.tel_date);
|
|
+ empire_time(&tgm.tel_date);
|
|
tgm.tel_length = getele("The World", msgbuf);
|
|
if (tgm.tel_length < 0) {
|
|
pr("Ignored\n");
|
|
diff --git a/src/lib/commands/upda.c b/src/lib/commands/upda.c
|
|
index 3ba68a1..0508a63 100644
|
|
--- a/src/lib/commands/upda.c
|
|
+++ b/src/lib/commands/upda.c
|
|
@@ -50,7 +50,7 @@ upda(void)
|
|
if (updates_disabled())
|
|
pr("UPDATES ARE DISABLED!\n");
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
next = update_time[0];
|
|
if (next) {
|
|
pr("\nUpdates occur at times specified by the ETU rates.\n\n");
|
|
diff --git a/src/lib/commands/vers.c b/src/lib/commands/vers.c
|
|
index 6e618c0..9e90299 100644
|
|
--- a/src/lib/commands/vers.c
|
|
+++ b/src/lib/commands/vers.c
|
|
@@ -54,7 +54,7 @@ vers(void)
|
|
{
|
|
time_t now;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
pr("%s\n\n", version);
|
|
pr("The following parameters have been set for this game:\n");
|
|
pr("World size is %d by %d.\n", WORLD_X, WORLD_Y);
|
|
diff --git a/src/lib/common/file.c b/src/lib/common/file.c
|
|
index 8b0962f..e289f2f 100644
|
|
--- a/src/lib/common/file.c
|
|
+++ b/src/lib/common/file.c
|
|
@@ -40,6 +40,7 @@
|
|
#include <sys/stat.h>
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "match.h"
|
|
#include "misc.h"
|
|
@@ -424,7 +425,7 @@ do_write(struct empfile *ep, void *buf, int id, int count)
|
|
return -1;
|
|
|
|
if (ep->flags & EFF_TYPED) {
|
|
- now = ep->flags & EFF_NOTIME ? (time_t)-1 : time(NULL);
|
|
+ now = ep->flags & EFF_NOTIME ? (time_t)-1 : empire_time(NULL);
|
|
for (i = 0; i < count; i++) {
|
|
/*
|
|
* TODO Oopses here could be due to bad data corruption.
|
|
diff --git a/src/lib/common/game.c b/src/lib/common/game.c
|
|
index 0800d62..48c5401 100644
|
|
--- a/src/lib/common/game.c
|
|
+++ b/src/lib/common/game.c
|
|
@@ -44,6 +44,7 @@
|
|
#include <config.h>
|
|
|
|
#include <math.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "game.h"
|
|
#include "optlist.h"
|
|
@@ -81,7 +82,7 @@ game_note_bsanct(void)
|
|
struct gamestr *game = getgamep();
|
|
|
|
if (game->game_rt == 0) {
|
|
- game->game_rt = time(NULL);
|
|
+ game->game_rt = empire_time(NULL);
|
|
putgame();
|
|
}
|
|
}
|
|
@@ -130,7 +131,7 @@ game_tick_tick(void)
|
|
double dsecs, s_p_etu;
|
|
int detu;
|
|
|
|
- dsecs = time(NULL) - game->game_rt;
|
|
+ dsecs = empire_time(NULL) - game->game_rt;
|
|
if (CANT_HAPPEN(dsecs < 0))
|
|
dsecs = 0;
|
|
s_p_etu = secs_per_etu(game);
|
|
diff --git a/src/lib/common/wantupd.c b/src/lib/common/wantupd.c
|
|
index 07c3db0..03e3e0a 100644
|
|
--- a/src/lib/common/wantupd.c
|
|
+++ b/src/lib/common/wantupd.c
|
|
@@ -34,6 +34,7 @@
|
|
#include <config.h>
|
|
|
|
#include <time.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "game.h"
|
|
#include "misc.h"
|
|
@@ -102,7 +103,7 @@ demand_check(void)
|
|
int
|
|
demandupdatecheck(void)
|
|
{
|
|
- time_t now = time(NULL);
|
|
+ time_t now = empire_time(NULL);
|
|
|
|
return update_demand == UPD_DEMAND_ASYNC
|
|
&& !updates_disabled()
|
|
diff --git a/src/lib/common/xdump.c b/src/lib/common/xdump.c
|
|
index 5d131c9..2ee5f79 100644
|
|
--- a/src/lib/common/xdump.c
|
|
+++ b/src/lib/common/xdump.c
|
|
@@ -77,6 +77,7 @@
|
|
|
|
#include <ctype.h>
|
|
#include <limits.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "xdump.h"
|
|
@@ -263,7 +264,7 @@ xdhdr(struct xdstr *xd, char *name, int meta)
|
|
} else
|
|
xd->pr("XDUMP %s%s %ld\n",
|
|
meta ? "meta " : "",
|
|
- name, (long)time(NULL));
|
|
+ name, (long)empire_time(NULL));
|
|
}
|
|
|
|
/*
|
|
diff --git a/src/lib/empthread/lwp.c b/src/lib/empthread/lwp.c
|
|
index b55f29b..9440a63 100644
|
|
--- a/src/lib/empthread/lwp.c
|
|
+++ b/src/lib/empthread/lwp.c
|
|
@@ -37,6 +37,7 @@
|
|
#include <signal.h>
|
|
#include <time.h>
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "misc.h"
|
|
|
|
/* Flags that were passed to empth_init() */
|
|
@@ -136,7 +137,7 @@ empth_wait_for_signal(void)
|
|
for (;;) {
|
|
err = lwpSigWait(&set, &sig);
|
|
if (CANT_HAPPEN(err)) {
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
lwpSleepUntil(now + 60);
|
|
continue;
|
|
}
|
|
diff --git a/src/lib/empthread/ntthread.c b/src/lib/empthread/ntthread.c
|
|
index 4056c36..a4c4428 100644
|
|
--- a/src/lib/empthread/ntthread.c
|
|
+++ b/src/lib/empthread/ntthread.c
|
|
@@ -62,6 +62,7 @@
|
|
#include "unistd.h"
|
|
#include "misc.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "prototypes.h"
|
|
#include "server.h"
|
|
|
|
@@ -637,7 +638,7 @@ empth_wakeup(empth_t *pThread)
|
|
int
|
|
empth_sleep(time_t until)
|
|
{
|
|
- long lSec = until - time(0) > 0 ? until - time(0) : 0;
|
|
+ long lSec = until - empire_time(0) > 0 ? until - empire_time(0) : 0;
|
|
empth_t *pThread = TlsGetValue(dwTLSIndex);
|
|
int iReturn = 0;
|
|
|
|
@@ -651,7 +652,7 @@ empth_sleep(time_t until)
|
|
|
|
loc_debug("sleep done. Waiting to run.");
|
|
loc_RunThisThread(NULL);
|
|
- } while (!iReturn && ((lSec = until - time(0)) > 0));
|
|
+ } while (!iReturn && ((lSec = until - empire_time(0)) > 0));
|
|
|
|
return iReturn;
|
|
}
|
|
diff --git a/src/lib/empthread/pthread.c b/src/lib/empthread/pthread.c
|
|
index 3f56fbc..1a1078c 100644
|
|
--- a/src/lib/empthread/pthread.c
|
|
+++ b/src/lib/empthread/pthread.c
|
|
@@ -53,6 +53,7 @@
|
|
|
|
#include "misc.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "prototypes.h"
|
|
|
|
#define EMPTH_KILLED 1
|
|
@@ -378,10 +379,10 @@ empth_sleep(time_t until)
|
|
struct timeval tv;
|
|
int res;
|
|
|
|
- empth_status("going to sleep %ld sec", until - time(0));
|
|
+ empth_status("going to sleep %ld sec", until - empire_time(0));
|
|
pthread_mutex_unlock(&mtx_ctxsw);
|
|
do {
|
|
- tv.tv_sec = until - time(NULL);
|
|
+ tv.tv_sec = until - empire_time(NULL);
|
|
tv.tv_usec = 0;
|
|
res = select(0, NULL, NULL, NULL, &tv);
|
|
} while (res < 0 && ctx->state == 0);
|
|
diff --git a/src/lib/gen/emptime.c b/src/lib/gen/emptime.c
|
|
new file mode 100644
|
|
index 0000000..855de99
|
|
--- /dev/null
|
|
+++ b/src/lib/gen/emptime.c
|
|
@@ -0,0 +1,51 @@
|
|
+/*
|
|
+ * Empire - A multi-player, client/server Internet based war game.
|
|
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
|
|
+ * Ken Stevens, Steve McClure
|
|
+ *
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
+ * (at your option) any later version.
|
|
+ *
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * GNU General Public License for more details.
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License
|
|
+ * along with this program; if not, write to the Free Software
|
|
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
+ *
|
|
+ * ---
|
|
+ *
|
|
+ * See files README, COPYING and CREDITS in the root of the source
|
|
+ * tree for related information and legal notices. It is expected
|
|
+ * that future projects/authors will amend these files as needed.
|
|
+ *
|
|
+ * ---
|
|
+ *
|
|
+ * emptime.c: Time functions for regression testing and
|
|
+ * replaying journals.
|
|
+ *
|
|
+ * Known contributors to this file:
|
|
+ * Ron Koenderink, 2008
|
|
+ */
|
|
+
|
|
+#include <stdio.h>
|
|
+#include <string.h>
|
|
+#include "emptime.h"
|
|
+
|
|
+time_t
|
|
+emp_time(time_t * time_ptr, const char function[])
|
|
+{
|
|
+ static time_t now = (time_t)100L;
|
|
+
|
|
+ if (strcmp(function, "update_main") == 0)
|
|
+ now += 100L;
|
|
+
|
|
+ if (time_ptr != NULL)
|
|
+ *time_ptr = now;
|
|
+
|
|
+ return now;
|
|
+}
|
|
diff --git a/src/lib/gen/log.c b/src/lib/gen/log.c
|
|
index 7f57182..bc78466 100644
|
|
--- a/src/lib/gen/log.c
|
|
+++ b/src/lib/gen/log.c
|
|
@@ -41,6 +41,7 @@
|
|
#include <sys/stat.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
+#include "emptime.h"
|
|
#include "misc.h"
|
|
#include "optlist.h"
|
|
#include "player.h"
|
|
@@ -116,7 +117,7 @@ logerror(char *format, ...)
|
|
p[1] = 0;
|
|
fputs(msg, stderr);
|
|
if (logfd >= 0) {
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
memcpy(buf, ctime(&now), ctime_len);
|
|
buf[ctime_len] = ' ';
|
|
write(logfd, buf, strlen(buf));
|
|
diff --git a/src/lib/lwp/sel.c b/src/lib/lwp/sel.c
|
|
index 2cafa08..988d091 100644
|
|
--- a/src/lib/lwp/sel.c
|
|
+++ b/src/lib/lwp/sel.c
|
|
@@ -39,6 +39,7 @@
|
|
#include <sys/time.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
+#include "emptime.h"
|
|
#include "lwp.h"
|
|
#include "lwpint.h"
|
|
#include "prototypes.h"
|
|
@@ -144,7 +145,7 @@ lwpWakeupSleep(void)
|
|
struct lwpProc *proc;
|
|
|
|
if (LwpDelayq.head) {
|
|
- now = time(NULL);
|
|
+ now = empire_time(NULL);
|
|
save.tail = save.head = 0;
|
|
while (NULL != (proc = lwpGetFirst(&LwpDelayq))) {
|
|
if (now >= proc->runtime) {
|
|
@@ -175,7 +176,7 @@ lwpSleepUntil(time_t until)
|
|
int res;
|
|
|
|
lwpStatus(LwpCurrent, "sleeping for %ld sec",
|
|
- (long)(until - time(NULL)));
|
|
+ (long)(until - empire_time(NULL)));
|
|
LwpCurrent->runtime = until;
|
|
if (LwpMaxfd == 0 && LwpDelayq.head == 0) {
|
|
/* select process is sleeping until first waiter arrives */
|
|
@@ -219,7 +220,7 @@ lwpSelect(void *arg)
|
|
tv.tv_sec = 1000000;
|
|
tv.tv_usec = 0;
|
|
if (LwpDelayq.head) {
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
proc = LwpDelayq.head;
|
|
for (; proc != 0; proc = proc->next) {
|
|
delta = proc->runtime - now;
|
|
diff --git a/src/lib/player/accept.c b/src/lib/player/accept.c
|
|
index 3106849..726b5fc 100644
|
|
--- a/src/lib/player/accept.c
|
|
+++ b/src/lib/player/accept.c
|
|
@@ -45,6 +45,7 @@
|
|
|
|
#include "empio.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "misc.h"
|
|
#include "nat.h"
|
|
@@ -91,7 +92,7 @@ player_new(int s)
|
|
emp_insque(&lp->queue, &Players);
|
|
lp->cnum = NATID_BAD;
|
|
lp->curid = -1;
|
|
- time(&lp->curup);
|
|
+ empire_time(&lp->curup);
|
|
}
|
|
return lp;
|
|
}
|
|
diff --git a/src/lib/player/player.c b/src/lib/player/player.c
|
|
index 0e1c5e3..9773db4 100644
|
|
--- a/src/lib/player/player.c
|
|
+++ b/src/lib/player/player.c
|
|
@@ -40,6 +40,7 @@
|
|
#include "com.h"
|
|
#include "empio.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "journal.h"
|
|
#include "misc.h"
|
|
@@ -64,7 +65,7 @@ player_main(struct player *p)
|
|
|
|
p->state = PS_PLAYING;
|
|
player = p;
|
|
- time(&player->curup);
|
|
+ empire_time(&player->curup);
|
|
update_timeused_login(player->curup);
|
|
show_motd();
|
|
if (init_nats() < 0) {
|
|
@@ -116,7 +117,7 @@ player_main(struct player *p)
|
|
}
|
|
/* #*# I put the following line in to prevent server crash -KHS */
|
|
natp = getnatp(player->cnum);
|
|
- time(&natp->nat_last_logout);
|
|
+ empire_time(&natp->nat_last_logout);
|
|
putnat(natp);
|
|
update_timeused(natp->nat_last_logout);
|
|
enforce_minimum_session_time();
|
|
@@ -175,7 +176,7 @@ status(void)
|
|
if (!(old_nstat & MONEY) && (player->nstat & MONEY))
|
|
pr("You are no longer broke!\n");
|
|
|
|
- time(&player->curup);
|
|
+ empire_time(&player->curup);
|
|
update_timeused(player->curup);
|
|
if (natp->nat_stat == STAT_ACTIVE &&
|
|
natp->nat_timeused > m_m_p_d * 60) {
|
|
diff --git a/src/lib/player/recvclient.c b/src/lib/player/recvclient.c
|
|
index ab4ef69..8934189 100644
|
|
--- a/src/lib/player/recvclient.c
|
|
+++ b/src/lib/player/recvclient.c
|
|
@@ -35,6 +35,7 @@
|
|
#include <config.h>
|
|
|
|
#include "empio.h"
|
|
+#include "emptime.h"
|
|
#include "journal.h"
|
|
#include "player.h"
|
|
#include "prototypes.h"
|
|
@@ -102,7 +103,7 @@ recvclient(char *cmd, int size)
|
|
* check errors; oops once, then slow it down drastically.
|
|
*/
|
|
CANT_HAPPEN(player->recvfail == 256);
|
|
- empth_sleep(time(NULL) + 60);
|
|
+ empth_sleep(empire_time(NULL) + 60);
|
|
}
|
|
return player->eof ? -1 : -2;
|
|
}
|
|
diff --git a/src/lib/subs/disloan.c b/src/lib/subs/disloan.c
|
|
index 9a6c670..9d7b6ba 100644
|
|
--- a/src/lib/subs/disloan.c
|
|
+++ b/src/lib/subs/disloan.c
|
|
@@ -46,6 +46,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "loan.h"
|
|
#include "nat.h"
|
|
@@ -64,7 +65,7 @@ disloan(int n, struct lonstr *loan)
|
|
return 0;
|
|
if (loan->l_loner != player->cnum && loan->l_lonee != player->cnum)
|
|
return 0;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
pr("\nLoan #%d from %s to", n, cname(loan->l_loner));
|
|
pr(" %s\n", cname(loan->l_lonee));
|
|
if (loan->l_status == LS_PROPOSED) {
|
|
diff --git a/src/lib/subs/distrea.c b/src/lib/subs/distrea.c
|
|
index bfb182c..45f80ae 100644
|
|
--- a/src/lib/subs/distrea.c
|
|
+++ b/src/lib/subs/distrea.c
|
|
@@ -33,6 +33,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "player.h"
|
|
@@ -51,7 +52,7 @@ distrea(int n, struct trtstr *tp)
|
|
if (tp->trt_cna != player->cnum &&
|
|
tp->trt_cnb != player->cnum && !player->god)
|
|
return 0;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
if (now > tp->trt_exp) {
|
|
tp->trt_status = TS_FREE;
|
|
if (!puttre(n, tp)) {
|
|
diff --git a/src/lib/subs/journal.c b/src/lib/subs/journal.c
|
|
index 4f553c5..c8bb70c 100644
|
|
--- a/src/lib/subs/journal.c
|
|
+++ b/src/lib/subs/journal.c
|
|
@@ -57,6 +57,7 @@
|
|
#include <time.h>
|
|
#include "misc.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "journal.h"
|
|
#include "optlist.h"
|
|
#include "player.h"
|
|
@@ -83,7 +84,7 @@ journal_entry(char *fmt, ...)
|
|
unsigned char *p;
|
|
|
|
if (journal) {
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
fprintf(journal, "%.24s %10.10s ",
|
|
ctime(&now), empth_name(empth_self()));
|
|
|
|
diff --git a/src/lib/subs/lostsub.c b/src/lib/subs/lostsub.c
|
|
index 2d0d046..8b2ea25 100644
|
|
--- a/src/lib/subs/lostsub.c
|
|
+++ b/src/lib/subs/lostsub.c
|
|
@@ -34,6 +34,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "lost.h"
|
|
#include "misc.h"
|
|
@@ -124,7 +125,7 @@ findlost(short type, natid owner, short id, coord x, coord y, int free)
|
|
void
|
|
delete_old_lostitems(void)
|
|
{
|
|
- time_t expiry_time = time(NULL) - hours(lost_keep_hours);
|
|
+ time_t expiry_time = empire_time(NULL) - hours(lost_keep_hours);
|
|
struct loststr lost;
|
|
int i;
|
|
|
|
diff --git a/src/lib/subs/nreport.c b/src/lib/subs/nreport.c
|
|
index 2e83326..5600a5a 100644
|
|
--- a/src/lib/subs/nreport.c
|
|
+++ b/src/lib/subs/nreport.c
|
|
@@ -36,6 +36,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "news.h"
|
|
@@ -96,7 +97,7 @@ delete_old_news(void)
|
|
struct nwsstr news;
|
|
|
|
/* skip over expired news */
|
|
- expiry_time = time(NULL) - days(news_keep_days);
|
|
+ expiry_time = empire_time(NULL) - days(news_keep_days);
|
|
for (i = 0; getnews(i, &news); i++) {
|
|
if (news.nws_vrb == 0 || news.nws_when >= expiry_time)
|
|
break;
|
|
@@ -156,7 +157,7 @@ ncache(int actor, int event, int victim, int times)
|
|
int i;
|
|
int oldslot;
|
|
time_t oldtime;
|
|
- time_t now = time(NULL);
|
|
+ time_t now = empire_time(NULL);
|
|
|
|
oldslot = -1;
|
|
oldtime = 0x7fffffff;
|
|
diff --git a/src/lib/subs/pr.c b/src/lib/subs/pr.c
|
|
index 628d831..44f03f0 100644
|
|
--- a/src/lib/subs/pr.c
|
|
+++ b/src/lib/subs/pr.c
|
|
@@ -55,6 +55,7 @@
|
|
#include <stdlib.h>
|
|
#include "com.h"
|
|
#include "empio.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "misc.h"
|
|
#include "nat.h"
|
|
@@ -193,7 +194,7 @@ pr_wall(char *format, ...)
|
|
struct player *p;
|
|
va_list ap;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
tm = localtime(&now);
|
|
n = sprintf(buf, "BROADCAST from %s @ %02d:%02d: ",
|
|
getnatp(0)->nat_cnam, tm->tm_hour, tm->tm_min);
|
|
@@ -374,7 +375,7 @@ prmptrd(char *prompt, char *buf, int size)
|
|
pr_id(player, C_FLUSH, "%s\n", prompt);
|
|
if ((r = recvclient(buf, size)) < 0)
|
|
return r;
|
|
- time(&player->curup);
|
|
+ empire_time(&player->curup);
|
|
if (*buf == 0)
|
|
return 1;
|
|
if (player->flags & PF_UTF8)
|
|
@@ -403,7 +404,7 @@ uprmptrd(char *prompt, char *buf, int size)
|
|
pr_id(player, C_FLUSH, "%s\n", prompt);
|
|
if ((r = recvclient(buf, size)) < 0)
|
|
return r;
|
|
- time(&player->curup);
|
|
+ empire_time(&player->curup);
|
|
if (*buf == 0)
|
|
return 1;
|
|
if (player->flags & PF_UTF8)
|
|
@@ -419,7 +420,7 @@ prdate(void)
|
|
{
|
|
time_t now;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
pr(ctime(&now));
|
|
}
|
|
|
|
@@ -479,7 +480,7 @@ PRdate(natid cn)
|
|
{
|
|
time_t now;
|
|
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
PR(cn, ctime(&now));
|
|
}
|
|
|
|
diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c
|
|
index ac3125b..afb0e81 100644
|
|
--- a/src/lib/subs/show.c
|
|
+++ b/src/lib/subs/show.c
|
|
@@ -42,6 +42,7 @@
|
|
#endif
|
|
|
|
#include <math.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "game.h"
|
|
#include "item.h"
|
|
@@ -616,7 +617,7 @@ show_updates(int n)
|
|
int demand = 0;
|
|
int i;
|
|
|
|
- pr("%s, Turn %d, ETU %d\n", fmttime2822(time(NULL)),
|
|
+ pr("%s, Turn %d, ETU %d\n", fmttime2822(empire_time(NULL)),
|
|
game->game_turn, game->game_tick);
|
|
|
|
if (update_time[0]) {
|
|
diff --git a/src/lib/subs/trechk.c b/src/lib/subs/trechk.c
|
|
index e77e2b0..84a78d1 100644
|
|
--- a/src/lib/subs/trechk.c
|
|
+++ b/src/lib/subs/trechk.c
|
|
@@ -41,6 +41,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "news.h"
|
|
@@ -65,7 +66,7 @@ trechk(natid actor, natid victim, int provision)
|
|
|
|
if (!opt_TREATIES)
|
|
return 1;
|
|
- (void)time(&now);
|
|
+ (void)empire_time(&now);
|
|
broken = 0;
|
|
applied = 0;
|
|
for (cn = 0; cn < MAXNOC; cn++)
|
|
diff --git a/src/lib/subs/wu.c b/src/lib/subs/wu.c
|
|
index 5bcce21..c45d024 100644
|
|
--- a/src/lib/subs/wu.c
|
|
+++ b/src/lib/subs/wu.c
|
|
@@ -37,6 +37,7 @@
|
|
#include <stdarg.h>
|
|
#include <sys/uio.h>
|
|
#include <unistd.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "misc.h"
|
|
#include "nat.h"
|
|
@@ -143,7 +144,7 @@ typed_wu(natid from, natid to, char *message, int type)
|
|
}
|
|
memset(&tel, 0, sizeof(tel));
|
|
tel.tel_from = from;
|
|
- (void)time(&tel.tel_date);
|
|
+ (void)empire_time(&tel.tel_date);
|
|
len = strlen(message);
|
|
if (CANT_HAPPEN(len > MAXTELSIZE)) {
|
|
len = MAXTELSIZE;
|
|
diff --git a/src/lib/update/anno.c b/src/lib/update/anno.c
|
|
index f07d441..1daf258 100644
|
|
--- a/src/lib/update/anno.c
|
|
+++ b/src/lib/update/anno.c
|
|
@@ -41,6 +41,7 @@
|
|
#endif
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
+#include "emptime.h"
|
|
#include "tel.h"
|
|
#include "update.h"
|
|
|
|
@@ -60,7 +61,7 @@ delete_old_announcements(void)
|
|
if (anno_keep_days < 0)
|
|
return;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
old = now - days(anno_keep_days);
|
|
logerror("Deleting annos older than %s", ctime(&old));
|
|
|
|
diff --git a/src/lib/update/main.c b/src/lib/update/main.c
|
|
index 32fa059..3ac6ce5 100644
|
|
--- a/src/lib/update/main.c
|
|
+++ b/src/lib/update/main.c
|
|
@@ -38,6 +38,7 @@
|
|
|
|
#include "budg.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "game.h"
|
|
#include "journal.h"
|
|
#include "player.h"
|
|
@@ -64,7 +65,7 @@ update_main(void)
|
|
struct natstr *np;
|
|
|
|
logerror("production update (%d etus)", etu);
|
|
- game_record_update(time(NULL));
|
|
+ game_record_update(empire_time(NULL));
|
|
journal_update(etu);
|
|
|
|
/* First, make sure all mobility is updated correctly. */
|
|
diff --git a/src/lib/update/mobility.c b/src/lib/update/mobility.c
|
|
index 95a81aa..674e999 100644
|
|
--- a/src/lib/update/mobility.c
|
|
+++ b/src/lib/update/mobility.c
|
|
@@ -35,6 +35,7 @@
|
|
|
|
#include <config.h>
|
|
|
|
+#include "emptime.h"
|
|
#include "game.h"
|
|
#include "land.h"
|
|
#include "plane.h"
|
|
@@ -130,7 +131,7 @@ mob_sect(void)
|
|
int n, etus;
|
|
time_t now;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
for (n = 0; NULL != (sp = getsectid(n)); n++) {
|
|
sp->sct_timestamp = now;
|
|
if (opt_MOB_ACCESS)
|
|
@@ -167,7 +168,7 @@ mob_ship(void)
|
|
int n, etus;
|
|
time_t now;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
for (n = 0; NULL != (sp = getshipp(n)); n++) {
|
|
sp->shp_timestamp = now;
|
|
if (opt_MOB_ACCESS)
|
|
@@ -202,7 +203,7 @@ mob_land(void)
|
|
int n, etus;
|
|
time_t now;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
for (n = 0; NULL != (lp = getlandp(n)); n++) {
|
|
lp->lnd_timestamp = now;
|
|
if (opt_MOB_ACCESS)
|
|
@@ -251,7 +252,7 @@ mob_plane(void)
|
|
int n, etus;
|
|
time_t now;
|
|
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
for (n = 0; NULL != (pp = getplanep(n)); n++) {
|
|
pp->pln_timestamp = now;
|
|
if (opt_MOB_ACCESS)
|
|
diff --git a/src/server/main.c b/src/server/main.c
|
|
index 1f66f98..c887868 100644
|
|
--- a/src/server/main.c
|
|
+++ b/src/server/main.c
|
|
@@ -54,6 +54,7 @@
|
|
|
|
#include "empio.h"
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "journal.h"
|
|
#include "land.h"
|
|
@@ -148,7 +149,7 @@ main(int argc, char **argv)
|
|
#endif
|
|
char *config_file = NULL;
|
|
int op, idx, sig;
|
|
- unsigned seed = time(NULL);
|
|
+ unsigned seed = empire_time(NULL);
|
|
|
|
oops_handler = ignore;
|
|
|
|
diff --git a/src/server/marketup.c b/src/server/marketup.c
|
|
index 925c844..f684909 100644
|
|
--- a/src/server/marketup.c
|
|
+++ b/src/server/marketup.c
|
|
@@ -35,6 +35,7 @@
|
|
#include <config.h>
|
|
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "optlist.h"
|
|
#include "player.h"
|
|
@@ -52,7 +53,7 @@ market_update(void *unused)
|
|
player->god = 1;
|
|
|
|
for (;;) {
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
check_market();
|
|
check_trade();
|
|
now += 300; /* Every 5 minutes */
|
|
diff --git a/src/server/shutdown.c b/src/server/shutdown.c
|
|
index 0bf3290..0ad337b 100644
|
|
--- a/src/server/shutdown.c
|
|
+++ b/src/server/shutdown.c
|
|
@@ -36,6 +36,7 @@
|
|
|
|
#include <time.h>
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "nat.h"
|
|
#include "prototypes.h"
|
|
@@ -94,7 +95,7 @@ shutdown_sequence(void *unused)
|
|
|
|
while (shutdown_pending > 0) {
|
|
--shutdown_pending;
|
|
- time(&now);
|
|
+ empire_time(&now);
|
|
if (shutdown_pending <= 1440) { /* one day */
|
|
if (shutdown_pending == 0) {
|
|
shutdwn(0);
|
|
diff --git a/src/server/update.c b/src/server/update.c
|
|
index 28cb077..0521f6f 100644
|
|
--- a/src/server/update.c
|
|
+++ b/src/server/update.c
|
|
@@ -42,6 +42,7 @@
|
|
#endif
|
|
#include <time.h>
|
|
#include "empthread.h"
|
|
+#include "emptime.h"
|
|
#include "game.h"
|
|
#include "misc.h"
|
|
#include "optlist.h"
|
|
@@ -70,7 +71,7 @@ update_init(void)
|
|
struct player *dp;
|
|
int stacksize;
|
|
|
|
- update_schedule_anchor = (time(NULL) + 59) / 60 * 60;
|
|
+ update_schedule_anchor = (empire_time(NULL) + 59) / 60 * 60;
|
|
if (update_get_schedule() < 0)
|
|
exit(1);
|
|
|
|
@@ -98,7 +99,7 @@ update_init(void)
|
|
static int
|
|
update_get_schedule(void)
|
|
{
|
|
- time_t now = time(NULL);
|
|
+ time_t now = empire_time(NULL);
|
|
|
|
if (read_schedule(schedulefil, update_time,
|
|
sizeof(update_time) / sizeof(*update_time),
|
|
@@ -136,10 +137,10 @@ update_sched(void *unused)
|
|
} else {
|
|
logerror("No update scheduled");
|
|
/* want to sleep forever, but empthread doesn't provide that */
|
|
- while (empth_sleep(time(NULL) + (60 * 60 * 24)) >= 0) ;
|
|
+ while (empth_sleep(empire_time(NULL) + (60 * 60 * 24)) >= 0) ;
|
|
}
|
|
|
|
- now = time(NULL);
|
|
+ now = empire_time(NULL);
|
|
if (next_update != 0 && now >= next_update) {
|
|
/* scheduled update time reached */
|
|
if (now >= next_update + 60)
|
|
diff --git a/src/util/empsched.c b/src/util/empsched.c
|
|
index 1ac1cdc..d51694c 100644
|
|
--- a/src/util/empsched.c
|
|
+++ b/src/util/empsched.c
|
|
@@ -36,6 +36,7 @@
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
+#include "emptime.h"
|
|
#include "optlist.h"
|
|
#include "prototypes.h"
|
|
#include "version.h"
|
|
@@ -102,7 +103,7 @@ main(int argc, char *argv[])
|
|
else
|
|
in_file = argv[optind];
|
|
|
|
- anchor = (time(NULL) + 59) / 60 * 60;
|
|
+ anchor = (empire_time(NULL) + 59) / 60 * 60;
|
|
if (read_schedule(in_file, sched, n + 1, 0, anchor) < 0)
|
|
exit(1);
|
|
|
|
diff --git a/src/util/fairland.c b/src/util/fairland.c
|
|
index 77a5a53..ffdc5c5 100644
|
|
--- a/src/util/fairland.c
|
|
+++ b/src/util/fairland.c
|
|
@@ -70,6 +70,7 @@ static int quiet = 0;
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
+#include "emptime.h"
|
|
#include "file.h"
|
|
#include "misc.h"
|
|
#include "nat.h"
|
|
@@ -183,7 +184,7 @@ main(int argc, char *argv[])
|
|
int i = 0;
|
|
|
|
program_name = argv[0];
|
|
- rnd_seed = time(NULL);
|
|
+ rnd_seed = empire_time(NULL);
|
|
|
|
while ((opt = getopt(argc, argv, "ae:hioqR:s:v")) != EOF) {
|
|
switch (opt) {
|