/* ************************************************************************
* file: showplay.c Part of CircleMud *
* Usage: list a diku playerfile *
* Copyright (C) 1990, 1991 - see 'license.doc' for complete information. *
* All Rights Reserved *
************************************************************************* */
#include "conf.h"
#include "sysdep.h"
#include "structs.h"
void show(char *filename)
{
char sexname;
char classname[10];
FILE *fl;
struct char_file_u player;
int num = 0;
long size;
if (!(fl = fopen(filename, "r+"))) {
perror("error opening playerfile");
exit(1);
}
fseek(fl, 0L, SEEK_END);
size = ftell(fl);
rewind(fl);
if (size % sizeof(struct char_file_u)) {
fprintf(stderr, "\aWARNING: File size does not match structure, recompile showplay.\n");
fclose(fl);
exit(1);
}
for (;;) {
fread(&player, sizeof(struct char_file_u), 1, fl);
if (feof(fl)) {
fclose(fl);
exit(0);
}
switch (player.chclass) {
case CLASS_THIEF:
strcpy(classname, "Th");
break;
case CLASS_WARRIOR:
strcpy(classname, "Wa");
break;
case CLASS_MAGIC_USER:
strcpy(classname, "Mu");
break;
case CLASS_CLERIC:
strcpy(classname, "Cl");
break;
default:
strcpy(classname, "--");
break;
}
switch (player.sex) {
case SEX_FEMALE:
sexname = 'F';
break;
case SEX_MALE:
sexname = 'M';
break;
case SEX_NEUTRAL:
sexname = 'N';
break;
default:
sexname = '-';
break;
}
printf("%5d. ID: %5ld (%c) [%2d %s] %-16s %9dg %9db\n", ++num,
player.char_specials_saved.idnum, sexname, player.level,
classname, player.name, player.points.gold,
player.points.bank_gold);
}
}
int main(int argc, char **argv)
{
if (argc != 2)
printf("Usage: %s playerfile-name\n", argv[0]);
else
show(argv[1]);
return (0);
}