home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <conio.h>
- #include <iostream.h>
- #include <string.h>
-
- struct MONSTER {
- char lname;
- char name[60];
- long strength;
- long gold;
- char lweapon;
- char weapon[60];
- long exp_points;
- long hit_points;
- char ldeath;
- char death[100];
- } monster[133];
-
- main(int argc, char *argv[])
- {
- int index, level, lsize;
- char choice, lord_dir[100];
- FILE *f;
- MONSTER *m;
-
- clrscr();
- if(argc<2) {
- fprintf(stderr, "\n\nUSE:\n\nMON <lord directory>\n\n");
- return 1;
- }
- strcpy(lord_dir, argv[1]);
- if(lord_dir[strlen(lord_dir)]=='\\') {
- strcat(lord_dir, "lenemy.dat");
- if((f=fopen(lord_dir,"rb"))==NULL) {
- fprintf(stderr, "Can't find LENEMY.DAT file\n\n");
- return 1;
- }
- }
- else {
- strcat(lord_dir, "\\lenemy.dat");
- if((f=fopen(lord_dir,"rb"))==NULL) {
- fprintf(stderr, "Can't find LENEMY.DAT file\n\n");
- return 1;
- }
- }
- m=monster;
- while(fread(m, sizeof(*m), 1, f))
- m++;
- fclose(f);
- index=level=1;
- m=monster;
-
- main:
- clrscr();
- cout << "\033[32m\nLevel:\t" << level << "\n\n";
- cout << "(1) Name:\t" << m->name << "\n";
- cout << "(2) Strength:\t" << m->strength << "\n";
- cout << "(3) Gold:\t" << m->gold << "\n";
- cout << "(4) Weapon:\t" << m->weapon << "\n";
- cout << "(5) Experience:\t" << m->exp_points << "\n";
- cout << "(6) Hit Points:\t" << m->hit_points << "\n";
- cout << "(7) Death String:\n" << m->death << "\n\n";
- cout << "\033[36m+/- Up or down a level, N/P Next, Previous record, S Save, Q Quit\n";
- cin >> choice;
- switch(choice) {
-
- case '1' : cout << "Name: ";
- gets(m->name);
- break;
- case '2' : cout << "Strength: ";
- cin >> m->strength;
- break;
- case '3' : cout << "Gold: ";
- cin >> m->gold;
- break;
- case '4' : cout << "Weapon: ";
- gets(m->weapon);
- break;
- case '5' : cout << "Experience: ";
- cin >> m->exp_points;
- break;
- case '6' : cout << "Hit Points: ";
- cin >> m->hit_points;
- break;
- case '7' : cout << "Death String:\n";
- gets(m->death);
- break;
- case '=' :
- case '+' : if(level<12) {
- level++;
- m+=11;
- }
- break;
- case '_' :
- case '-' : if(level>1) {
- level--;
- m-=11;
- }
- break;
- case 'n' :
- case 'N' : if(index<11)
- index++;
- else if(level<12) {
- index=1;
- level++;
- }
- m++;
- break;
- case 'p' :
- case 'P' : if(index>1)
- index--;
- else if(level>1) {
- index=11;
- level--;
- }
- m--;
- break;
- case 's' :
- case 'S' : f=fopen(lord_dir,"wb");
- fwrite(monster, sizeof(monster), 1, f);
- fclose(f);
- break;
- case 'q' :
- case 'Q' : clrscr();
- return 0;
- }
- clrscr();
- goto main;
- }
-