1 /* 2 * Interface routines for dungeon. 3 * These routines are for functions expected by the game 4 * that are not available in the Unix/f77 library. 5 */ 6 7 #ifdef SYSV 8 #include <stdio.h> 9 #endif 10 11 #include <sys/types.h> 12 13 #ifdef SYSV 14 #include <time.h> 15 #else 16 #include <sys/timeb.h> 17 #include <sys/time.h> 18 #endif 19 20 /* routine to get time in hours minutes and seconds */ 21 22 long time(); 23 struct tm *localtime(); 24 struct tm *tmptr; 25 long timebuf; 26 27 itime_(hrptr,minptr,secptr) 28 29 int *hrptr,*minptr,*secptr; 30 { 31 32 time(&timebuf); 33 tmptr = localtime(&timebuf); 34 35 *hrptr = tmptr->tm_hour; 36 *minptr = tmptr->tm_min; 37 *secptr = tmptr->tm_sec; 38 39 return; 40 } 41 42 #ifdef SYSV 43 /* idate - return day (1-31), month (1-12) and year (AD) */ 44 /* by Dave Newkirk, ihnp4!ihlpm!dcn */ 45 46 idate_( date ) 47 long date[]; 48 { 49 struct tm *t, *localtime(); 50 long time(), *tloc, loc; 51 52 tloc = &loc; /* get pointer to time in seconds */ 53 time(tloc); 54 t = localtime(tloc); /* get time structure filled in */ 55 date[0] = t->tm_mday; 56 date[1] = t->tm_mon + 1; 57 date[2] = t->tm_year + 1900; 58 59 } /* end idate */ 60 #endif 61 62 /* random number initializer */ 63 inirnd_(seedptr) 64 65 int *seedptr; 66 { 67 int seed; 68 69 seed = *seedptr; 70 srand(seed); 71 return; 72 } 73 74 /* random number generator */ 75 rnd_(maxval) 76 77 int *maxval; 78 { 79 /* note: returned random number ranges from 0 to maxval */ 80 81 int rndval; 82 83 rndval = rand(); 84 85 rndval = rndval % *maxval; 86 87 return(rndval); 88 } 89 90 #ifdef SYSV 91 /* thanks to Dave Newkirk, ihnp4!ihlpm!dcn for the following routines */ 92 93 /* getuid - fortran callable getuid */ 94 95 int 96 getuid_() 97 { 98 return (int)getuid(); 99 } 100 101 /* unbuf - make output completely unbuffered */ 102 103 unbuf_() 104 { 105 void setbuf(); 106 107 setbuf(stdout, NULL); 108 } 109 #endif 110