Re: ChangeLog Entry: Saving MUD time

From: Zeavon Calatin (
Date: 06/20/01

On Wed, 20 Jun 2001, Peter Ajamian wrote:

> I got to thinking (not a good thing, I know ;) ), why not throw that part
> in a function (say something like save_mud_time) and then call it from
> both init_game() and heartbeat() so that the mud_time file will get
> updated regularily in case of a crash?  Note that separating this into a
> function will also make it easier to update for things like copyover.

I added this to my mud before it got added to the stock Circle code. I
call save_time_to_disk() at the very end of another_hour() since that is
the only place that time gets changed.

Here's the code:
void save_time_to_disk(void)
  FILE *f;

  f = fopen("etc/date", "w");
  fwrite(&time_info, sizeof(time_info_data), 1, f);

At the top of reset_time() in db.c, I have:
  FILE *f;
  long beginning_of_time = 650336715;

  time_info = mud_time_passed(time(0), beginning_of_time);

  if (!(f = fopen("etc/date", "r"))) {
    log("SYSERR: File etc/date not found, mud date reverted to default!");
  else {
    fread(&time_info, sizeof(time_info_data), 1, f);

Zeavon Calatin, Magemaster of the Realms
Spear of Insanity  --  telnet://

   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 12/05/01 PST