-/* $NetBSD: main.c,v 1.7 1999/09/08 21:17:54 jsm Exp $ */
+/* $NetBSD: main.c,v 1.14 2004/04/11 13:35:06 he Exp $ */
/*
* Phantasia 3.3.2 -- Interterminal fantasy game
*/
#include "include.h"
+#undef bool
+#include <curses.h>
-int main __P((int, char **));
+int main(int, char **);
int
main(argc, argv)
if ((Playersfp = fopen(_PATH_PEOPLE, "r+")) == NULL)
error(_PATH_PEOPLE);
/* NOTREACHED */
+ if (fileno(Playersfp) < 3)
+ exit(1);
if ((Monstfp = fopen(_PATH_MONST, "r+")) == NULL)
error(_PATH_MONST);
fclose(fp);
}
/* search for king */
- fseek(Playersfp, 0L, 0);
+ fseek(Playersfp, 0L, SEEK_SET);
while (fread((char *) &Other, SZ_PLAYERSTRUCT, 1, Playersfp) == 1)
if (Other.p_specialtype == SC_KING &&
Other.p_status != S_NOTUSED)
mvaddstr(4, 24, "There is no ruler at this time.");
/* search for valar */
- fseek(Playersfp, 0L, 0);
+ fseek(Playersfp, 0L, SEEK_SET);
while (fread((char *) &Other, SZ_PLAYERSTRUCT, 1, Playersfp) == 1)
if (Other.p_specialtype == SC_VALAR && Other.p_status != S_NOTUSED)
/* found the valar */
break;
}
/* search for council of the wise */
- fseek(Playersfp, 0L, 0);
+ fseek(Playersfp, 0L, SEEK_SET);
Lines = 10;
while (fread((char *) &Other, SZ_PLAYERSTRUCT, 1, Playersfp) == 1)
if (Other.p_specialtype == SC_COUNCIL && Other.p_status != S_NOTUSED)
hiexp = 0.0;
nxtlvl = hilvl = 0;
- fseek(Playersfp, 0L, 0);
+ fseek(Playersfp, 0L, SEEK_SET);
while (fread((char *) &Other, SZ_PLAYERSTRUCT, 1, Playersfp) == 1)
if (Other.p_experience > hiexp && Other.p_specialtype <= SC_KING && Other.p_status != S_NOTUSED)
/* highest found so far */
initscr(); /* turn on curses */
noecho(); /* do not echo input */
- crmode(); /* do not process erase, kill */
+ cbreak(); /* do not process erase, kill */
clear();
refresh();
Windows = TRUE; /* mark the state */
if (Windows) {
move(LINES - 2, 0);
refresh();
- nocrmode();
+ nocbreak();
endwin();
}
- fclose(Playersfp);
- fclose(Monstfp);
- fclose(Messagefp);
- fclose(Energyvoidfp);
+ if (Playersfp)
+ fclose(Playersfp);
+ if (Monstfp)
+ fclose(Monstfp);
+ if (Messagefp)
+ fclose(Messagefp);
+ if (Energyvoidfp)
+ fclose(Energyvoidfp);
if (doexit)
exit(0);