/* ************************************************************************
* 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 <stdio.h>
#include <string.h>
#include "../structures.h"
void show(char *filename, char *search)
{
char sexname;
char classname[10];
FILE * fl;
struct char_file_u player;
int num = 0;
if (!(fl = fopen(filename, "r+"))) {
perror("error opening playerfile");
exit(1);
}
for (; ; ) {
fread(&player, sizeof(struct char_file_u ), 1, fl);
if (feof(fl)) {
fclose(fl);
exit(1);
}
if (search && !strstr(player.name, search))
continue;
switch (player.cls) {
case CLASS_THIEF :
strcpy(classname, "Thi");
break;
case CLASS_WARRIOR :
strcpy(classname, "War");
break;
case CLASS_WARLOCK:
strcpy(classname, "Wlk");
break;
case CLASS_MAGE :
strcpy(classname, "Mag");
break;
case CLASS_CLERIC :
strcpy(classname, "Cle");
break;
case CLASS_RANGER :
strcpy(classname, "Ran");
break;
case CLASS_BARD :
strcpy(classname, "Brd");
break;
case CLASS_SHAMAN :
strcpy(classname, "Sha");
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.saved.idnum, sexname, player.level,
classname, player.name, player.points.gold,
player.points.bank_gold);
}
}
int main(int argc, char *argv[])
{
switch(argc) {
case 2:
show(argv[1], NULL);
case 3:
show(argv[1], argv[2]);
default:
printf("Usage: %s playerfile-name <searchstring>\n", argv[0]);
}
return 1;
}