home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
DOOR
/
APV125.ZIP
/
MONEDIT.ZIP
/
MONEDIT.CPP
next >
Wrap
C/C++ Source or Header
|
1995-08-27
|
3KB
|
130 lines
#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;
}