diff --git a/src/scripts/nightly/nightlybuild.sh b/src/scripts/nightly/nightlybuild.sh index 97aac3ca..e0984a1d 100755 --- a/src/scripts/nightly/nightlybuild.sh +++ b/src/scripts/nightly/nightlybuild.sh @@ -174,8 +174,22 @@ then echo "Done (patch specific)." echo "" fi - +echo "Apply controlled time patch." +for f in `git-ls-files | grep -E '\.[ch](\.in)?$' | xargs grep -l \>` +do + n=`grep -n '^[ ]*#[ ]*include\>' $f | tail -n 1 | sed 's/:.*//'` +if [ $n ] +then +sed "$n"'a\ +#include "emptime.h"\ +#undef time\ +#define time(timer) emp_time((timer), __FUNCTION__)' $f >$f.patched +mv $f.patched $f +fi +done git add include/emptime.h src/lib/gen/emptime.c +echo "Done applying controlled time patch." +echo "" git pull sh ./bootstrap ./configure --prefix ${BOXDIR}/${WORKDIR}/emp4 ${CONFIGURE_OPTIONS} diff --git a/src/scripts/nightly/patches/All/emptime.c.patch b/src/scripts/nightly/patches/All/emptime.c.patch index c80f2ba0..359eb15e 100644 --- a/src/scripts/nightly/patches/All/emptime.c.patch +++ b/src/scripts/nightly/patches/All/emptime.c.patch @@ -3,7 +3,7 @@ new file mode 100644 index 0000000..a83b29d --- /dev/null +++ b/include/emptime.h -@@ -0,0 +1,42 @@ +@@ -0,0 +1,41 @@ +/* + * Empire - A multi-player, client/server Internet based war game. + * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak, @@ -43,604 +43,8 @@ index 0000000..a83b29d + +#include + -+#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 - #include - #include -+#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 - - #include -+#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 - - #include -+#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 - #include -+#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 - #include - #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 @@ -698,625 +102,3 @@ index 0000000..855de99 + + 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 - #include - #include -+#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 - #include - #include -+#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 811e1d4..d08ac40 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) { -@@ -115,7 +116,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(); -@@ -134,7 +135,7 @@ command(void) - if (getcommand(player->combuf) < 0) - return 0; - -- now = time(NULL); -+ now = empire_time(NULL); - update_timeused(now); - natp = getnatp(player->cnum); - if ((natp->nat_stat == STAT_ACTIVE || natp->nat_stat == STAT_SANCT) -@@ -186,7 +187,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_stat == STAT_SANCT) - && 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 - - #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 - -+#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 - -+#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 - #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 - -+#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 - -+#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 - #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 -+#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 - -+#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 - #include - #include -+#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 - #include -+#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 - -+#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 - - #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 - #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 - #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 - #include - #include -+#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 - #include - #include -+#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) {