phantasia4/
phantasia4/conf/
phantasia4/phantasia/bin/
phantasia4/phantasia/src/utilities/
phantasia4/public_html/cgi-bin/
/*
 * main.c - conversion of the old character file to the new one
 */

#include <sys/time.h>
#include <stdio.h>
#include <errno.h>

typedef char bool;

/* string sizes */
#define SZ_NAME		33	/* player name (incl. trailing null) */
#define SZ_FROM		41	/* ip or dns login (incl. null) */
#define SZ_CLASS_NAME           13      /* longest class name */
#define SZ_HOW_DIED             78

struct scoreboard_t                     /* scoreboard entry */
{
    double      level;                  /* level of player */
    char        class[SZ_CLASS_NAME];   /* character type of player */
    char        name[SZ_NAME];          /* name of player */
    char        from[SZ_FROM];          /* ip or DNS of player */
    char        how_died[SZ_HOW_DIED];  /* description of player's fate */
    time_t      time;                   /* time of death */
};

#define SZ_SCOREBOARD sizeof(struct scoreboard_t)

main(argc, argv)
int     argc;
char    *argv[];
{
    struct scoreboard_t entry;
    FILE *scoreboard_file;
    FILE *new_scoreboard_file;
    char string_buffer[80];
   int firstFlag;

    if (argc != 3) {

	printf("usage: a.out score_file char_name\n");
	printf("This program will instances of char_name from score_file.\n");
	exit(10);
    }

    errno = 0;
    if ((scoreboard_file=fopen(argv[1], "r")) == NULL) {

	printf("fopen of %s failed: %s\n", argv[1], strerror(errno));
	exit(1);
    }

    errno = 0;
    if ((new_scoreboard_file=fopen("scoreboard.new", "w")) == NULL) {

	printf("fopen of scoreboard.new failed: %s\n", strerror(errno));
	exit(1);
    }

    firstFlag = 1;

	/* start reading the characters */
    while (fread((void *)&entry, SZ_SCOREBOARD, 1, scoreboard_file) == 1) {

	if (firstFlag && !strcmp(entry.name, argv[2])) {
            strcpy(entry.class, "Halfling");
	    firstFlag = 0;

/*
	    fwrite((void *)&entry, SZ_SCOREBOARD, 1, new_scoreboard_file);
*/
	}
fwrite((void *)&entry, SZ_SCOREBOARD, 1, new_scoreboard_file);
/*
	if (entry.level < 3000) {

	    fwrite((void *)&entry, SZ_SCOREBOARD, 1, new_scoreboard_file);
	}
*/
    }
}