/****************************************************************************
* ResortMUD Version 5.0 was mainly programmed by Ntanel, Garinan, Josh, *
* Badastaz, Digifuzz, Senir, Kratas, Scion, Shogar and Tagith. *
* ResortMud Version 5.0b programed By Badastaz and Garinan
* ------------------------------------------------------------------------ *
* Copyright (C) 1996 - 2001 Haslage Net Electronics: MudWorld of Lorain, *
* Ohio. ALL RIGHTS RESERVED See /doc/RMLicense.txt for more details. *
****************************************************************************/
#include "mud.h"
/* Reads the actual time file from disk - Samson 1-21-99 */
void fread_timedata(FILE *fp)
{
char *word = NULL;
bool fMatch = FALSE;
for( ; ; )
{
word = feof(fp) ? "End" : fread_word(fp);
fMatch = FALSE;
switch(UPPER(word[0]))
{
case '*':
fMatch = TRUE;
fread_to_eol(fp);
break;
case 'E':
if(!str_cmp(word, "End"))
return;
break;
case 'M':
KEY("Mhour", time_info.hour, fread_number(fp));
KEY("Mday", time_info.day, fread_number(fp));
KEY("Mmonth", time_info.month, fread_number(fp));
KEY("Myear", time_info.year, fread_number(fp));
break;
}
if(!fMatch)
{
bug("Fread_timedata: no match: %s", word);
fread_to_eol(fp);
}
}
return;
}
/* Load time information from saved file - Samson 1-21-99 */
bool load_timedata(void)
{
char filename[MAX_INPUT_LENGTH];
FILE *fp;
bool found;
found = FALSE;
sprintf(filename, "%sbday.dat", SYSTEM_DIR);
if((fp = fopen(filename, "r")) != NULL)
{
found = TRUE;
for( ; ; )
{
char letter = '\0';
char *word = NULL;
letter = fread_letter(fp);
if(letter == '*')
{
fread_to_eol(fp);
continue;
}
if(letter != '#')
{
bug("%s", "Load_timedata: # not found.");
break;
}
word = fread_word(fp);
if(!str_cmp(word, "TIME"))
{
fread_timedata(fp);
break;
}
else if(!str_cmp(word, "END"))
break;
else
{
bug("Load_timedata: bad section - %s.", word);
break;
}
}
fclose(fp);
}
return found;
}
/* Saves the current game world time to disk - Samson 1-21-99 */
void save_timedata(void)
{
FILE *fp;
char filename[MAX_INPUT_LENGTH];
sprintf(filename, "%sbday.dat", SYSTEM_DIR);
if((fp = fopen(filename, "w")) == NULL)
{
bug("%s", "save_timedata: fopen");
perror(filename);
}
else
{
fprintf(fp, "%s", "#TIME\n");
fprintf(fp, "Mhour %d\n", time_info.hour);
fprintf(fp, "Mday %d\n", time_info.day);
fprintf(fp, "Mmonth %d\n", time_info.month);
fprintf(fp, "Myear %d\n", time_info.year);
fprintf(fp, "%s", "End\n\n");
fprintf(fp, "%s", "#END\n");
}
fclose(fp);
return;
}