/* ************************************************************************ * 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; }