home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fatal Distractions!
/
fataldistractions.bin
/
chap01
/
adventur
/
start.for
< prev
next >
Wrap
Text File
|
1990-11-12
|
2KB
|
66 lines
LOGICAL*4 FUNCTION START(DUMMY)
C CHECK TO SEE IF THIS IS "PRIME TIME". IF SO, ONLY WIZARDS MAY PLAY, THOUGH
C OTHERS MAY BE ALLOWED A SHORT GAME FOR DEMONSTRATION PURPOSES. IF SETUP<0,
C WE'RE CONTINUING FROM A SAVED GAME, SO CHECK FOR SUITABLE LATENCY. RETURN
C TRUE IF THIS IS A DEMO GAME (VALUE IS IGNORED FOR RESTARTS).
IMPLICIT INTEGER*4 (A-Z)
LOGICAL PTIME,SOON,YESM,WIZ
LOGICAL WIZARD
DIMENSION HNAME(4)
COMMON /WIZCOM/ WKDAY,WKEND,HOLID,HBEGIN,HEND,HNAME,
1 SHORT,MAGIC,MAGNM,LATNCY,SAVED,SAVET,SETUP,WIZ
C FIRST FIND OUT WHETHER IT IS PRIME TIME (SAVE IN PTIME) AND, IF RESTARTING,
C WHETHER IT'S TOO SOON (SAVE IN SOON). PRIME-TIME SPECS ARE IN WKDAY, WKEND,
C AND HOLID; SEE MAINT ROUTINE FOR DETAILS. LATNCY IS REQUIRED DELAY BEFORE
C RESTARTING. WIZARDS MAY CUT THIS TO A THIRD.
CALL DATIME(D,T)
PRIMTM=WKDAY
IF(MOD(D,7).LE.1) PRIMTM=WKEND
IF(D.GE.HBEGIN.AND.D.LE.HEND) PRIMTM=HOLID
PTIME=(PRIMTM.AND.SHIFT(1,T/60)).NE.0
SOON=.FALSE.
IF(SETUP.GE.0) GOTO 20
DELAY=(D-SAVED)*1440+(T-SAVET)
IF(DELAY.GE.LATNCY) GOTO 20
WRITE(*,10) DELAY
10 FORMAT(' THIS ADVENTURE GAME WAS SUSPENDED A MERE',I3,
1 ' MINUTES AGO.')
SOON=.TRUE.
IF(DELAY.GE.LATNCY/3) GOTO 20
CALL MSPEAK(2)
STOP
C IF NEITHER TOO SOON NOR PRIME TIME, NO PROBLEM. ELSE SPECIFY WHAT'S WRONG.
20 START=.FALSE.
IF(SOON) GOTO 30
IF(PTIME) GOTO 25
22 SAVED=-1
RETURN
C COME HERE IF NOT RESTARTING TOO SOON (MAYBE NOT RESTARTING AT ALL), BUT IT'S
C PRIME TIME. GIVE OUR HOURS AND SEE IF HE'S A WIZARD. IF NOT, THEN CAN'T
C RESTART, BUT IF JUST BEGINNING THEN WE CAN OFFER A SHORT GAME.
25 CALL MSPEAK(3)
CALL HOURS
CALL MSPEAK(4)
IF(WIZARD(0)) GOTO 22
IF(SETUP.LT.0) GOTO 33
START=YESM(5,7,7)
IF(START) GOTO 22
STOP
C COME HERE IF RESTARTING TOO SOON. IF HE'S A WIZARD, LET HIM GO (AND NOTE
C THAT IT THEN DOESN'T MATTER WHETHER IT'S PRIME TIME). ELSE, TOUGH BEANS.
30 CALL MSPEAK(8)
IF(WIZARD(0)) GOTO 22
33 CALL MSPEAK(9)
STOP
END