home *** CD-ROM | disk | FTP | other *** search
/ Fatal Distractions! / fataldistractions.bin / chap01 / adventur / start.for < prev    next >
Text File  |  1990-11-12  |  2KB  |  66 lines

  1.       LOGICAL*4 FUNCTION START(DUMMY)
  2.       
  3. C  CHECK TO SEE IF THIS IS "PRIME TIME".  IF SO, ONLY WIZARDS MAY PLAY, THOUGH
  4. C  OTHERS MAY BE ALLOWED A SHORT GAME FOR DEMONSTRATION PURPOSES.  IF SETUP<0,
  5. C  WE'RE CONTINUING FROM A SAVED GAME, SO CHECK FOR SUITABLE LATENCY.  RETURN
  6. C  TRUE IF THIS IS A DEMO GAME (VALUE IS IGNORED FOR RESTARTS).
  7.  
  8.       IMPLICIT INTEGER*4 (A-Z)
  9.       LOGICAL PTIME,SOON,YESM,WIZ
  10.       LOGICAL WIZARD
  11.       DIMENSION HNAME(4)
  12.       COMMON /WIZCOM/ WKDAY,WKEND,HOLID,HBEGIN,HEND,HNAME,
  13.      1        SHORT,MAGIC,MAGNM,LATNCY,SAVED,SAVET,SETUP,WIZ
  14.      
  15. C  FIRST FIND OUT WHETHER IT IS PRIME TIME (SAVE IN PTIME) AND, IF RESTARTING,
  16. C  WHETHER IT'S TOO SOON (SAVE IN SOON).  PRIME-TIME SPECS ARE IN WKDAY, WKEND,
  17. C  AND HOLID; SEE MAINT ROUTINE FOR DETAILS.  LATNCY IS REQUIRED DELAY BEFORE
  18. C  RESTARTING.  WIZARDS MAY CUT THIS TO A THIRD.
  19.  
  20.       CALL DATIME(D,T)
  21.       PRIMTM=WKDAY
  22.       IF(MOD(D,7).LE.1) PRIMTM=WKEND
  23.       IF(D.GE.HBEGIN.AND.D.LE.HEND) PRIMTM=HOLID
  24.       PTIME=(PRIMTM.AND.SHIFT(1,T/60)).NE.0
  25.       SOON=.FALSE.
  26.       IF(SETUP.GE.0) GOTO 20
  27.       DELAY=(D-SAVED)*1440+(T-SAVET)
  28.       IF(DELAY.GE.LATNCY) GOTO 20
  29.       WRITE(*,10) DELAY
  30.    10 FORMAT(' THIS ADVENTURE GAME WAS SUSPENDED A MERE',I3,
  31.      1       ' MINUTES AGO.')
  32.       SOON=.TRUE.
  33.       IF(DELAY.GE.LATNCY/3) GOTO 20
  34.       CALL MSPEAK(2)
  35.       STOP
  36.       
  37. C  IF NEITHER TOO SOON NOR PRIME TIME, NO PROBLEM.  ELSE SPECIFY WHAT'S WRONG.
  38.  
  39.    20 START=.FALSE.
  40.       IF(SOON) GOTO 30
  41.       IF(PTIME) GOTO 25
  42.    22 SAVED=-1
  43.       RETURN
  44.       
  45. C  COME HERE IF NOT RESTARTING TOO SOON (MAYBE NOT RESTARTING AT ALL), BUT IT'S
  46. C  PRIME TIME.  GIVE OUR HOURS AND SEE IF HE'S A WIZARD.  IF NOT, THEN CAN'T
  47. C  RESTART, BUT IF JUST BEGINNING THEN WE CAN OFFER A SHORT GAME.
  48.  
  49.    25 CALL MSPEAK(3)
  50.       CALL HOURS
  51.       CALL MSPEAK(4)
  52.       IF(WIZARD(0)) GOTO 22
  53.       IF(SETUP.LT.0) GOTO 33
  54.       START=YESM(5,7,7)
  55.       IF(START) GOTO 22
  56.       STOP
  57.       
  58. C  COME HERE IF RESTARTING TOO SOON.  IF HE'S A WIZARD, LET HIM GO (AND NOTE
  59. C  THAT IT THEN DOESN'T MATTER WHETHER IT'S PRIME TIME).  ELSE, TOUGH BEANS.
  60.  
  61.    30 CALL MSPEAK(8)
  62.       IF(WIZARD(0)) GOTO 22
  63.    33 CALL MSPEAK(9)
  64.       STOP
  65.       END
  66.