Fix strange inside-out organization of the input routines.
[open-adventure.git] / misc.h
diff --git a/misc.h b/misc.h
index 6654ea95983b09f2a05ebcee8183ddd1e12ef948..19612b0c6af0e0dc8e6afe2c78f31a8cb779f8be 100644 (file)
--- a/misc.h
+++ b/misc.h
@@ -1,10 +1,9 @@
-#ifdef __MSDOS__       /* define fopen modes for binary files */
+#include <time.h>
+#include <stdio.h>
+
+/* b is not needed for POSIX but harmless */
 #define READ_MODE "rb"
 #define WRITE_MODE "wb"
-#else
-#define READ_MODE "r"
-#define WRITE_MODE "w"
-#endif
 
 extern void fSPEAK(long);
 #define SPEAK(N) fSPEAK(N)
@@ -18,7 +17,7 @@ extern void fGETIN(long*,long*,long*,long*);
 #define GETIN(WORD1,WORD1X,WORD2,WORD2X) fGETIN(&WORD1,&WORD1X,&WORD2,&WORD2X)
 extern long fYES(long,long,long);
 #define YES(X,Y,Z) fYES(X,Y,Z)
-extern long fGETNUM(long);
+extern long fGETNUM(FILE *);
 #define GETNUM(K) fGETNUM(K)
 extern long fGETTXT(long,long,long,long);
 #define GETTXT(SKIP,ONEWRD,UPPER,HASH) fGETTXT(SKIP,ONEWRD,UPPER,HASH)
@@ -62,7 +61,7 @@ extern long fRNDVOC(long,long);
 #define RNDVOC(CHAR,FORCE) fRNDVOC(CHAR,FORCE)
 extern void fBUG(long);
 #define BUG(NUM) fBUG(NUM)
-extern void fMAPLIN(long);
+extern void fMAPLIN(FILE *);
 #define MAPLIN(FIL) fMAPLIN(FIL)
 extern void fTYPE();
 #define TYPE() fTYPE()
@@ -70,8 +69,7 @@ extern void fMPINIT();
 #define MPINIT() fMPINIT()
 extern void fSAVEIO(long,long,long*);
 #define SAVEIO(OP,IN,ARR) fSAVEIO(OP,IN,ARR)
-extern void fDATIME(long*,long*);
-#define DATIME(D,T) fDATIME(&D,&T)
+#define DATIME(D,T) do {struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); D=ts.tv_sec, T=ts.tv_nsec;} while (0)
 extern long fIABS(long);
 #define IABS(N) fIABS(N)
 extern long fMOD(long,long);