mirror of
https://github.com/historicalsource/checkpoint
synced 2024-05-31 23:28:16 +03:00
1686 lines
42 KiB
Plaintext
1686 lines
42 KiB
Plaintext
|
|
|
|
.FUNCT GUN-F
|
|
EQUAL? PRSA,V?AIM \?ELS5
|
|
CALL PERFORM,V?SHOW,PRSI,PRSO
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SHOW \FALSE
|
|
EQUAL? PRSI,GUN \FALSE
|
|
CALL2 VISIBLE?,CONDUCTOR
|
|
ZERO? STACK /?ELS14
|
|
CALL ARREST-PLAYER,STR?61,CONDUCTOR,TRUE-VALUE,GUN
|
|
RSTACK
|
|
?ELS14: CALL2 VISIBLE?,GUARD
|
|
ZERO? STACK /?ELS16
|
|
CALL ARREST-PLAYER,STR?61,GUARD,TRUE-VALUE,GUN
|
|
RSTACK
|
|
?ELS16: CALL2 VISIBLE?,WAITER
|
|
ZERO? STACK /FALSE
|
|
CALL ARREST-PLAYER,STR?61,WAITER,TRUE-VALUE,GUN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT START-BAD-SPY,VAL,GT,CAR
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
PUT GT,GOAL-SCRIPT,I-BAD-SPY
|
|
GETP BAD-SPY,P?CAR >CAR
|
|
GRTR? CAR,CAR-MAX \?CND1
|
|
SET 'CAR,CAR-MAX
|
|
?CND1: CALL2 V-REAR,CAR
|
|
CALL MOVE-PERSON,BAD-SPY,STACK >VAL
|
|
PUTP BAD-SPY,P?CAR,CAR
|
|
PUT GT,GOAL-ENABLE,1
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-START,CAR-START
|
|
RETURN VAL
|
|
|
|
|
|
.FUNCT I-BAD-SPY,GARG=0,L,V,BR,BL,RM,VAL=0
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-BAD-SPY:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
CALL2 META-LOC,BRIEFCASE >BR
|
|
LOC BLOOD-SPOT >BL
|
|
EQUAL? GARG,G-ENROUTE \?ELS18
|
|
GETPT L,P?IN
|
|
GET STACK,REXIT >RM
|
|
EQUAL? BR,L,RM \?ELS23
|
|
CALL2 HIDDEN?,BRIEFCASE
|
|
ZERO? STACK \?ELS23
|
|
IN? BRIEFCASE,BAD-SPY /?ELS23
|
|
CALL ESTABLISH-GOAL,BAD-SPY,BR
|
|
RSTACK
|
|
?ELS23: EQUAL? BL,L,RM \?ELS27
|
|
CALL ESTABLISH-GOAL,BAD-SPY,BL
|
|
RSTACK
|
|
?ELS27: ZERO? V \?ELS29
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS29: EQUAL? HERE,BR \?ELS37
|
|
CALL2 HIDDEN?,BRIEFCASE
|
|
ZERO? STACK \?ELS37
|
|
IN? BRIEFCASE,BAD-SPY /?ELS37
|
|
CALL NEW-LDESC,BAD-SPY,30
|
|
SET 'BAD-SPY-DONE-PEEKING,TRUE-VALUE
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-YOU
|
|
SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS37: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS18: EQUAL? VARIATION,3,4 /?ELS55
|
|
EQUAL? GARG,G-REACHED \?ELS55
|
|
CALL NEW-LDESC,BAD-SPY,30
|
|
SET 'BAD-SPY-DONE-PEEKING,TRUE-VALUE
|
|
ZERO? V /?CND58
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " enters, looks around, and "
|
|
?CND58: EQUAL? BL,L \?ELS66
|
|
ZERO? V /?CND67
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-YOU
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-FUNCTION,I-BAD-SPY-W-YOU
|
|
SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE
|
|
PRINTI "sits down."
|
|
CRLF
|
|
?CND67: CALL2 HIDDEN?,BRIEFCASE
|
|
ZERO? STACK \?THN76
|
|
EQUAL? L,BR /?CND64
|
|
?THN76: CALL NEW-LDESC,BAD-SPY,18
|
|
ZERO? IDEBUG /?CND78
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND78: RETURN V
|
|
?ELS66: ZERO? V /?CND64
|
|
PRINTI "pauses a minute."
|
|
CRLF
|
|
?CND64: IN? BRIEFCASE,PLAYER /?THN95
|
|
CALL2 HIDDEN?,BRIEFCASE
|
|
ZERO? STACK \?THN95
|
|
EQUAL? L,BR /?ELS94
|
|
?THN95: CALL QUEUE,I-BAD-SPY,1
|
|
PUT STACK,0,1
|
|
JUMP ?CND92
|
|
?ELS94: CALL1 SPY-TAKES-CASE
|
|
ZERO? V /?CND92
|
|
PRINTI "Then"
|
|
CALL HE-SHE-IT,BAD-SPY,0,STR?288
|
|
CALL2 HIM-HER-IT,BRIEFCASE
|
|
PRINTI " and takes it."
|
|
CRLF
|
|
?CND92: ZERO? IDEBUG /?CND105
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND105: RETURN V
|
|
?ELS55: ZERO? GARG \FALSE
|
|
ADD 1,DINER-CAR
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-1,STACK
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT SPY-TAKES-CASE
|
|
FCLEAR BRIEFCASE,TAKEBIT
|
|
FCLEAR BRIEFCASE,SEENBIT
|
|
FSET? BRIEFCASE,OPENBIT \?CND1
|
|
SET 'BRIEFCASE-WAS-OPEN,TRUE-VALUE
|
|
FCLEAR BRIEFCASE-LATCH,OPENBIT
|
|
FCLEAR BRIEFCASE,OPENBIT
|
|
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1
|
|
?CND1: MOVE BRIEFCASE,BAD-SPY
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-CASE
|
|
CALL QUEUE,I-BAD-SPY-W-CASE,1
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-BAD-SPY-W-CASE,GARG=0,V,L,GT,DR,N
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-BAD-SPY-W-CASE:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-W-CASE
|
|
ZERO? STACK \FALSE
|
|
ZERO? GARG \?CND14
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,PLATFORM-MAX
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: CALL2 VISIBLE?,BAD-SPY >V
|
|
ZERO? V \?CND23
|
|
IN? BRIEFCASE,BAD-SPY \?CND23
|
|
FCLEAR BRIEFCASE,SEENBIT
|
|
?CND23: EQUAL? GARG,G-ENROUTE \?ELS32
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS32: EQUAL? GARG,G-REACHED \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL NEW-LDESC,BAD-SPY,35
|
|
CALL FIND-FLAG-LG,L,DOORBIT >DR
|
|
FSET DR,LOCKED
|
|
ZERO? BRIEFCASE-WAS-OPEN \?CND41
|
|
FSET BRIEFCASE-LATCH,OPENBIT
|
|
FSET BRIEFCASE,OPENBIT
|
|
CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL,1
|
|
?CND41: ZERO? V /?CND44
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " quickly opens"
|
|
CALL2 HIM-HER-IT,BRIEFCASE
|
|
?CND44: EQUAL? VARIATION,2,4 /?THN53
|
|
ZERO? LATCH-TURNED /?ELS52
|
|
?THN53: SET 'LATCH-TURNED,TRUE-VALUE
|
|
SET 'BAD-SPY-OPENED-CASE,TRUE-VALUE
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
IN? MCGUFFIN,BRIEFCASE \?ELS57
|
|
JUMP ?CND55
|
|
?ELS57: IN? SPY-LIST,BRIEFCASE \?ELS59
|
|
SET 'LIST-RUBBED,TRUE-VALUE
|
|
IN? PASSOBJECT,BAD-SPY \?ELS62
|
|
JUMP ?CND55
|
|
?ELS62: EQUAL? PASSOBJECT,KNIFE \?ELS64
|
|
FCLEAR DR,LOCKED
|
|
PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-KNIFE
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR
|
|
JUMP ?CND55
|
|
?ELS64: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?CND55
|
|
FCLEAR DR,LOCKED
|
|
PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-FLOWER
|
|
EQUAL? L,REST-ROOM-REAR-DINER,REST-ROOM-REAR,OTHER-REST-ROOM-REAR /?CND55
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
JUMP ?CND55
|
|
?ELS59: ZERO? BAD-SPY-KNOWS-YOU /?ELS71
|
|
PUT GT,GOAL-SCRIPT,I-BAD-SPY-W-YOU
|
|
FCLEAR DR,LOCKED
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE
|
|
JUMP ?CND55
|
|
?ELS71: ZERO? BRIEFCASE-WAS-OPEN \?CND75
|
|
FCLEAR BRIEFCASE-LATCH,OPENBIT
|
|
FCLEAR BRIEFCASE,OPENBIT
|
|
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1
|
|
?CND75: PUT GT,GOAL-FUNCTION,I-BAD-SPY-IMITATES
|
|
PUT GT,GOAL-SCRIPT,I-BAD-SPY-IMITATES
|
|
?CND55: ZERO? V /?CND50
|
|
PRINTC 46
|
|
CRLF
|
|
JUMP ?CND50
|
|
?ELS52: EQUAL? CAR-HERE,PLATFORM-MAX \?ELS88
|
|
EQUAL? HERE,COMPARTMENT-5 \?CND89
|
|
CALL1 TELL-GAS
|
|
?CND89: MOVE BRIEFCASE,SEAT-5
|
|
JUMP ?CND86
|
|
?ELS88: MOVE BRIEFCASE,OTHER-SEAT-5
|
|
?CND86: FSET BRIEFCASE,TAKEBIT
|
|
FCLEAR BAD-SPY,PERSONBIT
|
|
CALL NEW-LDESC,BAD-SPY,32
|
|
GETP BAD-SPY,P?CAR >N
|
|
?PRG94: CALL FIND-FLAG-CAR,L,N,PERSONBIT >DR
|
|
ZERO? DR /?REP95
|
|
FCLEAR DR,PERSONBIT
|
|
CALL NEW-LDESC,DR,32
|
|
JUMP ?PRG94
|
|
?REP95: SET 'GAS-CAR-RM,COMPARTMENT-5
|
|
SET 'GAS-CAR,PLATFORM-MAX
|
|
ZERO? V /?CND50
|
|
PRINTI " and succumbs to the poison gas."
|
|
CRLF
|
|
?CND50: ZERO? IDEBUG /?CND107
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
?CND107: RETURN V
|
|
|
|
|
|
.FUNCT ARRIVE-AT-STATION-BAD-SPY,GT,X
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
EQUAL? VARIATION,3,4 \?ELS5
|
|
EQUAL? SCENERY-OBJ,STATION-FRBZ,STATION-GOLA \?ELS5
|
|
PUT GT,GOAL-SCRIPT,I-TRAVELER-FINDS-CONTACT
|
|
CALL2 CLEAR-TRAIN-PERSON,BAD-SPY-C
|
|
RSTACK
|
|
?ELS5: EQUAL? VARIATION,3,4 \?ELS9
|
|
EQUAL? SCENERY-OBJ,STATION-KNUT \?ELS9
|
|
IN? PASSOBJECT,BAD-SPY \?ELS9
|
|
ZERO? ON-TRAIN \?ELS16
|
|
LOC BAD-SPY
|
|
CALL2 ON-PLATFORM?,STACK
|
|
ZERO? STACK /?ELS16
|
|
PUT GT,GOAL-FUNCTION,I-TRAVELER-TO-GRNZ
|
|
LOC BAD-SPY
|
|
GETP STACK,P?CAR >X
|
|
PUTP BAD-SPY,P?CAR,X
|
|
CALL2 V-REAR,X
|
|
CALL MOVE-PERSON,BAD-SPY,STACK
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,X
|
|
RSTACK
|
|
?ELS16: PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-TICKET
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
RSTACK
|
|
?ELS9: GET GT,GOAL-SCRIPT
|
|
EQUAL? I-BAD-SPY-IMITATES,STACK \FALSE
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DEPART-FROM-STATION-BAD-SPY
|
|
ZERO? BAD-SPY-KNOWS-YOU /FALSE
|
|
ZERO? GAS-CAR \FALSE
|
|
CALL1 I-BAD-SPY-TO-YOU
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-BAD-SPY-IMITATES,GARG=0,L,V,CAR,X
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-BAD-SPY-IMITATES:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-IMITATES
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
ZERO? V \?CND14
|
|
IN? BRIEFCASE,BAD-SPY \?CND14
|
|
FCLEAR BRIEFCASE,SEENBIT
|
|
?CND14: EQUAL? GARG,G-ENROUTE \?ELS21
|
|
CALL2 ON-PLATFORM?,L
|
|
ZERO? STACK /?CND19
|
|
ZERO? V /?CND19
|
|
CALL2 START-SENTENCE,BAD-SPY
|
|
CALL2 WHERE?,BAD-SPY
|
|
ZERO? STACK /?CND31
|
|
PRINTC 44
|
|
?CND31: PRINTI " searches the crowd."
|
|
CRLF
|
|
JUMP ?CND19
|
|
?ELS21: EQUAL? GARG,G-REACHED \?CND19
|
|
CALL NEW-LDESC,BAD-SPY,10
|
|
GETP BAD-SPY,P?CAR >CAR
|
|
CALL2 V-REAR,CAR
|
|
EQUAL? L,STACK \?ELS42
|
|
GET STATION-ROOMS,CAR
|
|
MOVE BAD-SPY,STACK
|
|
ZERO? V \?THN46
|
|
CALL2 VISIBLE?,BAD-SPY
|
|
ZERO? STACK /?CND43
|
|
?THN46: CALL2 BAD-SPY-LEAVES-BOARDS,STR?339
|
|
?CND43: CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-A
|
|
JUMP ?CND19
|
|
?ELS42: ZERO? CUSTOMS-SWEEP \?THN50
|
|
EQUAL? L,PLATFORM-E \?ELS49
|
|
?THN50: GETP L,P?CAR >X
|
|
CALL2 V-REAR,X
|
|
MOVE BAD-SPY,STACK
|
|
PUTP BAD-SPY,P?CAR,X
|
|
ZERO? V \?THN55
|
|
CALL2 VISIBLE?,BAD-SPY
|
|
ZERO? STACK /?CND52
|
|
?THN55: CALL2 BAD-SPY-LEAVES-BOARDS,STR?340
|
|
?CND52: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,PLATFORM-MAX
|
|
JUMP ?CND19
|
|
?ELS49: EQUAL? L,PLATFORM-A \?CND19
|
|
CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-E
|
|
ZERO? V /?CND40
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " searches the crowd."
|
|
CRLF
|
|
?CND40:
|
|
?CND19: ZERO? IDEBUG /?CND65
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND65: RETURN V
|
|
|
|
|
|
.FUNCT I-BAD-SPY-W-YOU,GARG=0,VAL=0,L,V
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-BAD-SPY-W-YOU:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-W-YOU
|
|
ZERO? STACK \FALSE
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
LOC BAD-SPY >L
|
|
EQUAL? GARG,G-ENROUTE \?ELS16
|
|
ZERO? BAD-SPY-OPENED-CASE \?ELS19
|
|
IN? BRIEFCASE,PLAYER /?ELS19
|
|
CALL2 HIDDEN?,BRIEFCASE
|
|
ZERO? STACK \?ELS19
|
|
CALL2 META-LOC,BRIEFCASE
|
|
EQUAL? L,STACK \?ELS19
|
|
CALL1 SPY-TAKES-CASE
|
|
ZERO? V /?CND14
|
|
SET 'VAL,TRUE-VALUE
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE,STR?288
|
|
CALL2 HIM-HER-IT,BRIEFCASE
|
|
PRINTI " and takes it."
|
|
CRLF
|
|
JUMP ?CND14
|
|
?ELS19: ZERO? V \?CND14
|
|
CALL1 I-BAD-SPY-TO-YOU >VAL
|
|
JUMP ?CND14
|
|
?ELS16: EQUAL? GARG,G-REACHED \?ELS31
|
|
CALL NEW-LDESC,BAD-SPY,30
|
|
CALL QUEUE,I-BAD-SPY-W-YOU,-1
|
|
PUT STACK,0,1
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
GET STACK,GOAL-F
|
|
EQUAL? HERE,STACK \?CND14
|
|
CALL ZMEMQ,HERE,CAR-ROOMS-COMPS
|
|
ZERO? STACK \?THN38
|
|
CALL ZMEMQ,HERE,CAR-ROOMS-COMPS-DINER
|
|
ZERO? STACK /?ELS37
|
|
?THN38: SET 'VAL,TRUE-VALUE
|
|
ZERO? V /?ELS42
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " enters and sits down."
|
|
CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,BAD-SPY
|
|
ZERO? STACK \?CND46
|
|
CALL1 BAD-SPY-GUN-THREAT
|
|
?CND46: CRLF
|
|
JUMP ?CND14
|
|
?ELS42: PRINTI "You hear a knock on the door."
|
|
CRLF
|
|
JUMP ?CND14
|
|
?ELS37: ZERO? V /?CND14
|
|
SET 'VAL,TRUE-VALUE
|
|
CALL NEW-LDESC,BAD-SPY,3
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE,STR?341
|
|
EQUAL? L,HERE \?CND58
|
|
PRINTI " here"
|
|
?CND58: PRINTI "."
|
|
CRLF
|
|
JUMP ?CND14
|
|
?ELS31: ZERO? GARG \?CND14
|
|
ZERO? V /?ELS69
|
|
CALL ZMEMQ,HERE,CAR-ROOMS-COMPS
|
|
ZERO? STACK \?THN72
|
|
CALL ZMEMQ,HERE,CAR-ROOMS-COMPS-DINER
|
|
ZERO? STACK \?THN72
|
|
CALL ZMEMQ,HERE,CAR-ROOMS-REST
|
|
ZERO? STACK /?ELS69
|
|
?THN72: IN? GUN,BAD-SPY \?ELS76
|
|
PRINTI "The sound of the gunshot is not loud enough to be carried beyond this room. But the pain is so great that you don't notice the details."
|
|
CRLF
|
|
CALL1 FINISH
|
|
JUMP ?CND67
|
|
?ELS76: CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,BAD-SPY
|
|
ZERO? STACK \?CND67
|
|
SET 'VAL,TRUE-VALUE
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " peeks into the corridor for a moment."
|
|
CALL1 BAD-SPY-GUN-THREAT
|
|
CRLF
|
|
JUMP ?CND67
|
|
?ELS69: MOVE GUN,OTHER-LIMBO-FWD
|
|
ZERO? V \?CND67
|
|
CALL QUEUE,I-BAD-SPY-W-YOU,0
|
|
CALL1 I-BAD-SPY-TO-YOU >VAL
|
|
?CND67:
|
|
?CND14: ZERO? IDEBUG /?CND88
|
|
PRINTN VAL
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN VAL
|
|
?CND88: RETURN VAL
|
|
|
|
|
|
.FUNCT BAD-SPY-GUN-THREAT
|
|
MOVE GUN,BAD-SPY
|
|
PRINTI " Then"
|
|
CALL2 HE-SHE-IT,BAD-SPY
|
|
PRINTI " displays a gun and motions for you to give"
|
|
CALL2 HIM-HER-IT,BAD-SPY
|
|
PRINTI " something."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-BAD-SPY-TO-YOU,GARG=0,L,STA,V,VAL=0
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-BAD-SPY-TO-YOU:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY
|
|
ZERO? STACK \FALSE
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
LOC BAD-SPY
|
|
CALL ZMEMQ,STACK,STATION-ROOMS >STA
|
|
ZERO? ON-TRAIN /?ELS16
|
|
ZERO? STA /?CND18
|
|
CALL2 V-REAR,CAR-HERE
|
|
MOVE BAD-SPY,STACK
|
|
PUTP BAD-SPY,P?CAR,CAR-HERE
|
|
ZERO? V \?THN25
|
|
CALL2 VISIBLE?,BAD-SPY
|
|
ZERO? STACK \?THN25
|
|
GET STATION-ROOMS,CAR-HERE
|
|
CALL2 VISIBLE?,STACK
|
|
ZERO? STACK /?CND18
|
|
?THN25: SET 'VAL,TRUE-VALUE
|
|
CALL2 BAD-SPY-LEAVES-BOARDS,STR?340
|
|
?CND18: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE
|
|
RETURN VAL
|
|
?ELS16: ZERO? STA \?CND29
|
|
GETP BAD-SPY,P?CAR
|
|
GET STATION-ROOMS,STACK >L
|
|
MOVE BAD-SPY,L
|
|
ZERO? V \?THN35
|
|
CALL2 VISIBLE?,BAD-SPY
|
|
ZERO? STACK /?CND29
|
|
?THN35: SET 'VAL,TRUE-VALUE
|
|
CALL2 BAD-SPY-LEAVES-BOARDS,STR?339
|
|
?CND29: CALL ESTABLISH-GOAL,BAD-SPY,HERE
|
|
RETURN VAL
|
|
|
|
|
|
.FUNCT BAD-SPY-LEAVES-BOARDS,STR
|
|
PRINTI "Out of the corner of your eye, you see"
|
|
CALL2 HIM-HER-IT,BAD-SPY
|
|
PRINTC 32
|
|
PRINT STR
|
|
PRINTR "ing the train."
|
|
|
|
|
|
.FUNCT HIDDEN?,OBJ,L
|
|
LOC OBJ >L
|
|
EQUAL? L,BRIEFCASE \?ELS5
|
|
FSET? BRIEFCASE,OPENBIT \TRUE
|
|
RFALSE
|
|
?ELS5: EQUAL? L,UNDER-SEAT-1,OTHER-UNDER-SEAT-1,POCKET /TRUE
|
|
EQUAL? L,UNDER-SEAT-2,OTHER-UNDER-SEAT-2 /TRUE
|
|
EQUAL? L,UNDER-SEAT-3,OTHER-UNDER-SEAT-3 /TRUE
|
|
EQUAL? L,UNDER-SEAT-4,OTHER-UNDER-SEAT-4 /TRUE
|
|
EQUAL? L,UNDER-SEAT-5,OTHER-UNDER-SEAT-5 /TRUE
|
|
EQUAL? L,UNDER-BOOTH-1,UNDER-BOOTH-2,UNDER-BOOTH-3 /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT PASS-OBJECT?,O=0
|
|
ZERO? O \?CND1
|
|
SET 'O,PASSOBJECT
|
|
?CND1: EQUAL? PRSA,V?GIVE \?ELS8
|
|
EQUAL? PRSO,O /TRUE
|
|
EQUAL? PRSO,NAPKIN \?ELS15
|
|
EQUAL? O,SCARF,TOWEL-WAITER /TRUE
|
|
?ELS15: EQUAL? PRSO,FLOWER-2,FLOWER-1 \FALSE
|
|
EQUAL? O,FLOWER-GLOBAL /TRUE
|
|
?ELS8: EQUAL? PRSA,V?SHOW \FALSE
|
|
EQUAL? PRSI,O /TRUE
|
|
EQUAL? PRSI,NAPKIN \?ELS30
|
|
EQUAL? O,SCARF,TOWEL-WAITER /TRUE
|
|
?ELS30: EQUAL? PRSI,FLOWER-2,FLOWER-1 \FALSE
|
|
EQUAL? O,FLOWER-GLOBAL /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CONTACT-F,ARG=0,X,WON=1
|
|
EQUAL? ARG,M-WINNER \?ELS5
|
|
EQUAL? PRSA,V?$CALL \?ELS10
|
|
EQUAL? PRSO,PASSWORD \?ELS15
|
|
CALL1 GIVE-PASSWORD
|
|
RTRUE
|
|
?ELS15: CALL1 GIVE-WRONG-PASS-X
|
|
RSTACK
|
|
?ELS10: CALL CONTACT-DEFAULT-F,ARG
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS21
|
|
CALL1 GUARD-NOTICES
|
|
CALL1 GIVE-MCGUFFIN? >X
|
|
ZERO? X /?ELS26
|
|
CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTI " quickly inspects"
|
|
CALL2 PRINTT,X
|
|
PRINTI " and then "
|
|
EQUAL? CONTACT,GUARD,CLERK,WAITRESS \?CND29
|
|
EQUAL? X,MCGUFFIN /?ELS34
|
|
PRINTI "says, ""This will not do. We already know what the plan is; you should have obtained the actual "
|
|
PRINTD MCGUFFIN
|
|
PRINTI " so that we could analyze it and find the source of the leak. I'm afraid I'll have to complete your mission myself."""
|
|
CRLF
|
|
CALL1 FINISH
|
|
JUMP ?CND29
|
|
?ELS34: MOVE CONTACT,LIMBO-FWD
|
|
PRINTI "says, ""Excellent work! But there's one more part to your mission. You may have noticed the special car at the end of the train. There's an important defector aboard it, and we intend to capture him back. You must ride this train until you observe a flare shot into the sky. Then you must make the train stop so we can capture him. Good luck!"" Then"
|
|
CALL2 HE-SHE-IT,CONTACT
|
|
PRINTR " vanishes into the crowd."
|
|
?CND29: EQUAL? X,FILM \?CND41
|
|
CALL ZMEMQ,MCGUFFIN,FILM-TBL
|
|
ZERO? STACK \?CND41
|
|
PRINTR "looks at you quizzically."
|
|
?CND41: PRINTI "pumps your hand with obvious gratitude. "
|
|
EQUAL? VARIATION,3,4 /?ELS52
|
|
PRINTI """Only a few people will ever know the great value of the service you've just performed. Probably even you don't know the full implications. But be assured that you deserve the thanks of the whole world."""
|
|
CRLF
|
|
JUMP ?CND50
|
|
?ELS52: CALL1 PRODUCE-GIBBERISH
|
|
?CND50: FSET? X,LOCKED \?CND57
|
|
CRLF
|
|
PRINTI "However, events in the next few days show that"
|
|
CALL2 PRINTT,X
|
|
PRINTI " completely misled those charged with "
|
|
EQUAL? VARIATION,3,4 /?ELS64
|
|
PRINTI "foiling"
|
|
JUMP ?CND62
|
|
?ELS64: PRINTI "carrying out"
|
|
?CND62: PRINTI " the plot. Apparently"
|
|
CALL2 PRINTT,MCGUFFIN
|
|
PRINTI " was altered by some clever hand."
|
|
CRLF
|
|
CRLF
|
|
EQUAL? VARIATION,3,4 /?ELS75
|
|
SET 'WON,FALSE-VALUE
|
|
PRINTI "CONDOLENCES!"
|
|
JUMP ?CND73
|
|
?ELS75: PRINTI "CONGRATULATIONS!"
|
|
?CND73: CRLF
|
|
?CND57: ZERO? WON /?CND82
|
|
EQUAL? VARIATION,2,4 \?CND82
|
|
CALL1 AWARD
|
|
?CND82: CALL1 FINISH
|
|
RSTACK
|
|
?ELS26: CALL1 PASS-OBJECT?
|
|
ZERO? STACK /?ELS88
|
|
IN? MCGUFFIN,LIMBO-REAR \?CND89
|
|
MOVE MCGUFFIN,CONTACT
|
|
?CND89: CALL2 START-SENTENCE,CONTACT
|
|
ZERO? PASSWORD-GIVEN /?ELS96
|
|
CALL1 WHISPER-PLAN
|
|
RTRUE
|
|
?ELS96: SET 'PASSOBJECT-GIVEN,TRUE-VALUE
|
|
CALL2 SAID-TO,CONTACT
|
|
FCLEAR CONTACT,NDESCBIT
|
|
CALL NEW-LDESC,CONTACT,22
|
|
PRINTR " listens to you expectantly."
|
|
?ELS88: CALL1 GIVE-WRONG-PASS-X
|
|
RSTACK
|
|
?ELS21: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-FOR,V?ASK-ABOUT \?ELS105
|
|
EQUAL? PRSI,PASSWORD \?ELS110
|
|
CALL1 GIVE-PASSWORD
|
|
RTRUE
|
|
?ELS110: CALL1 GIVE-WRONG-PASS-X
|
|
RSTACK
|
|
?ELS105: CALL CONTACT-DEFAULT-F,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GIVE-MCGUFFIN?
|
|
ZERO? PASSWORD /?ELS5
|
|
ZERO? PASSWORD-GIVEN /FALSE
|
|
?ELS5: ZERO? PASSOBJECT /?ELS9
|
|
ZERO? PASSOBJECT-GIVEN \?ELS9
|
|
IN? PASSOBJECT,PLAYER \FALSE
|
|
FSET? PASSOBJECT,WORNBIT \FALSE
|
|
?ELS9: EQUAL? PRSA,V?GIVE \FALSE
|
|
EQUAL? PRSO,MCGUFFIN \?ELS17
|
|
RETURN PRSO
|
|
?ELS17: EQUAL? PRSO,FILM /?THN20
|
|
EQUAL? PRSO,CAMERA \FALSE
|
|
IN? FILM,CAMERA \FALSE
|
|
?THN20: RETURN FILM
|
|
|
|
|
|
.FUNCT GIVE-WRONG-PASS-X,N
|
|
INC 'CONTACT-SUSPICION
|
|
CALL NEW-LDESC,CONTACT,1
|
|
CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTI " looks "
|
|
GRTR? 2,CONTACT-SUSPICION \?ELS7
|
|
PRINTI "confused for a moment and says, "
|
|
CALL1 PRODUCE-GIBBERISH
|
|
RSTACK
|
|
?ELS7: GETP HERE,P?CAR >N
|
|
EQUAL? N,PLATFORM-MAX \?ELS14
|
|
DEC 'N
|
|
JUMP ?CND12
|
|
?ELS14: INC 'N
|
|
?CND12: GET STATION-ROOMS,N
|
|
MOVE CONTACT,STACK
|
|
FSET CONTACT,NDESCBIT
|
|
PRINTR "alarmed and vanishes into the crowd."
|
|
|
|
|
|
.FUNCT GIVE-PASSWORD
|
|
SET 'PASSWORD-GIVEN,TRUE-VALUE
|
|
IN? MCGUFFIN,LIMBO-REAR \?CND1
|
|
MOVE MCGUFFIN,CONTACT
|
|
?CND1: CALL1 GUARD-NOTICES
|
|
CALL2 START-SENTENCE,CONTACT
|
|
ZERO? CONTACT-SUSPICION /?CND4
|
|
PRINTI " hesitates for a moment and then"
|
|
?CND4: ZERO? PASSOBJECT-GIVEN \?THN14
|
|
IN? PASSOBJECT,PLAYER \?ELS13
|
|
FSET? PASSOBJECT,WORNBIT \?ELS13
|
|
?THN14: CALL1 WHISPER-PLAN
|
|
RTRUE
|
|
?ELS13: FCLEAR CONTACT,NDESCBIT
|
|
CALL NEW-LDESC,CONTACT,23
|
|
PRINTR " looks at you expectantly."
|
|
|
|
|
|
.FUNCT WHISPER-PLAN
|
|
PRINTI " whispers, "
|
|
EQUAL? VARIATION,3,4 \?ELS5
|
|
CALL2 PRODUCE-GIBBERISH,2
|
|
JUMP ?CND3
|
|
?ELS5: EQUAL? SCENERY-OBJ,STATION-GOLA /?ELS7
|
|
PRINTI """Here too many people. Meet me in restroom."""
|
|
CRLF
|
|
JUMP ?CND3
|
|
?ELS7: CALL NEW-LDESC,CONTACT,26
|
|
PRINTI """I was expecting someone else, but you must be the courier. Please give me the "
|
|
PRINTD MCGUFFIN
|
|
PRINTR " now."""
|
|
?CND3: EQUAL? SCENERY-OBJ,STATION-GOLA /FALSE
|
|
FSET? CONTACT,FEMALE \?ELS21
|
|
MOVE CONTACT,REST-ROOM-WOMEN
|
|
JUMP ?CND19
|
|
?ELS21: MOVE CONTACT,REST-ROOM-MEN
|
|
?CND19: FCLEAR CONTACT,NDESCBIT
|
|
CALL NEW-LDESC,CONTACT,24
|
|
PRINTI "Then"
|
|
CALL2 HE-SHE-IT,CONTACT
|
|
PRINTR " vanishes into the crowd."
|
|
|
|
|
|
.FUNCT WHISPER-PLAN-OTHER,L
|
|
CALL QUEUE,I-TRAVELER-FINDS-CONTACT,0
|
|
FSET? CONTACT,FEMALE \?ELS3
|
|
SET 'L,REST-ROOM-WOMEN
|
|
JUMP ?CND1
|
|
?ELS3: SET 'L,REST-ROOM-MEN
|
|
?CND1: IN? CONTACT,HERE /?THN9
|
|
ZERO? DEBUG /?CND6
|
|
?THN9: IN? CONTACT,HERE /?CND11
|
|
PRINTC 91
|
|
?CND11: CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTI " whispers something to"
|
|
CALL2 HIM-HER-IT,BAD-SPY
|
|
PRINTI " and vanishes into the crowd."
|
|
CRLF
|
|
?CND6: MOVE CONTACT,L
|
|
FCLEAR CONTACT,NDESCBIT
|
|
CALL NEW-LDESC,CONTACT,26
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-ENABLE,1
|
|
CALL ESTABLISH-GOAL,BAD-SPY,L
|
|
IN? CONTACT,HERE /?THN21
|
|
ZERO? DEBUG /TRUE
|
|
?THN21: IN? CONTACT,HERE /?CND23
|
|
PRINTC 91
|
|
?CND23: CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTR " enters and looks around nervously."
|
|
|
|
|
|
.FUNCT I-AGENT-COMES,GARG=0,PER
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-AGENT-COMES:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: RANDOM 3 >PER
|
|
EQUAL? 1,PER \?ELS13
|
|
SET 'PER,GUARD
|
|
JUMP ?CND11
|
|
?ELS13: EQUAL? 2,PER \?ELS15
|
|
SET 'PER,CLERK
|
|
JUMP ?CND11
|
|
?ELS15: SET 'PER,WAITRESS
|
|
?CND11: CALL2 NEW-CONTACT,PER
|
|
CALL NEW-LDESC,PER,26
|
|
SET 'PASSWORD,FALSE-VALUE
|
|
SET 'PASSOBJECT,FALSE-VALUE
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
IN? PER,HERE /?CND20
|
|
MOVE PER,HERE
|
|
PRINTI " appears and"
|
|
?CND20: PRINTI " says, ""I was ordered to contact you here. Please give me the "
|
|
PRINTD MCGUFFIN
|
|
PRINTR " now."""
|
|
|
|
|
|
.FUNCT GUARD-NOTICES
|
|
EQUAL? CONTACT,GUARD /FALSE
|
|
CALL2 ON-PLATFORM?,HERE
|
|
ZERO? STACK /FALSE
|
|
LOC GUARD
|
|
CALL2 ON-PLATFORM?,STACK
|
|
ZERO? STACK /FALSE
|
|
INC 'GUARD-SUSPICION
|
|
FCLEAR GUARD,NDESCBIT
|
|
CALL2 START-SENTENCE,GUARD
|
|
FCLEAR HIM,TOUCHBIT
|
|
EQUAL? 1,GUARD-SUSPICION \?ELS14
|
|
PRINTR " seems to notice your actions."
|
|
?ELS14: GET GESTURE-TABLE,0
|
|
EQUAL? GUARD-SUSPICION,STACK \?CND19
|
|
CALL ARREST-PLAYER,STR?342,GUARD
|
|
PRINTR " throws up her hands and hurries away."
|
|
?CND19: CALL NEW-LDESC,GUARD,26
|
|
IN? GUARD,HERE /?CND24
|
|
MOVE GUARD,HERE
|
|
PRINTI " approaches you and"
|
|
?CND24: PRINTI " makes a gesture"
|
|
EQUAL? 2,GUARD-SUSPICION /?CND31
|
|
GET GESTURE-TABLE,GUARD-SUSPICION
|
|
PRINT STACK
|
|
?CND31: GRTR? 5,GUARD-SUSPICION \?ELS38
|
|
PRINTI ", asking for "
|
|
JUMP ?CND36
|
|
?ELS38: PRINTI ", demanding "
|
|
?CND36: CALL2 THIS-IS-IT,PASSPORT
|
|
PRINTD PASSPORT
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT TRAVELER-F,ARG=0
|
|
CALL BAD-SPY-F,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BAD-SPY-F,ARG=0,GT,X,?TMP1
|
|
EQUAL? ARG,M-WINNER \?ELS5
|
|
CALL BAD-SPY-DEFAULT-F,ARG
|
|
RSTACK
|
|
?ELS5: CALL2 PASS-OBJECT?,MCGUFFIN
|
|
ZERO? STACK /?ELS7
|
|
EQUAL? VARIATION,3,4 /?ELS7
|
|
CALL2 SHOW-MCGUFFIN,BAD-SPY
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?$CALL \?ELS11
|
|
SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
GET GT,GOAL-SCRIPT
|
|
EQUAL? I-BAD-SPY-W-CASE,STACK \FALSE
|
|
CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
GET GT,GOAL-CAR
|
|
LESS? CAR-HERE,STACK \?ELS23
|
|
CALL2 V-REAR,CAR-HERE
|
|
MOVE BAD-SPY,STACK
|
|
PRINTR " hurries away to the rear."
|
|
?ELS23: GET GT,GOAL-CAR
|
|
GRTR? CAR-HERE,STACK \?ELS27
|
|
CALL2 V-FWD,CAR-HERE
|
|
MOVE BAD-SPY,STACK
|
|
PRINTR " hurries away to the front."
|
|
?ELS27: LOC BAD-SPY >?TMP1
|
|
GET GT,GOAL-S >X
|
|
EQUAL? ?TMP1,X \?ELS31
|
|
PRINTR " ignores you."
|
|
?ELS31: MOVE BAD-SPY,X
|
|
PRINTR " hurries away."
|
|
?ELS11: CALL BAD-SPY-DEFAULT-F,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SHOW-MCGUFFIN,P
|
|
CALL HE-SHE-IT,P,TRUE-VALUE
|
|
PRINTI " looks at"
|
|
CALL2 HIM-HER-IT,MCGUFFIN
|
|
PRINTI " and then "
|
|
EQUAL? P,BAD-SPY \?ELS5
|
|
IN? GUN,BAD-SPY \?ELS5
|
|
PRINTI "takes aim at you."
|
|
JUMP ?CND3
|
|
?ELS5: PRINTI "pulls out a gun with a silencer."
|
|
?CND3: PRINTI " Before you can react, pain fills your heart, and it's all over."
|
|
CRLF
|
|
CALL1 FINISH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PAUSE-SCRIPT?,INT,A=0
|
|
ZERO? A \?CND1
|
|
SET 'A,BAD-SPY
|
|
?CND1: ZERO? SUPPRESS-INTERRUPT /?ELS8
|
|
SET 'SUPPRESS-INTERRUPT,FALSE-VALUE
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTR "[PS:SI]"
|
|
?ELS8: FSET? A,PERSONBIT /?ELS16
|
|
CALL QUEUE,INT,0
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTI "[PS:NP "
|
|
PRINTD A
|
|
PRINTR "]"
|
|
?ELS16: FSET? A,MUNGBIT \?ELS24
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTI "[PS:MU "
|
|
PRINTD A
|
|
PRINTR "]"
|
|
?ELS24: CALL IN-MOTION?,A,TRUE-VALUE
|
|
ZERO? STACK /FALSE
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTI "[PS:IM "
|
|
PRINTD A
|
|
PRINTR "]"
|
|
|
|
|
|
.FUNCT I-TRAVELER,V=0,STR,OBJ,GT,L,LC,?TMP1
|
|
CALL2 PAUSE-SCRIPT?,I-TRAVELER
|
|
ZERO? STACK \FALSE
|
|
ZERO? IDEBUG \?THN7
|
|
EQUAL? V,G-DEBUG \?CND4
|
|
?THN7: PRINTI "[I-TRAVELER:"
|
|
EQUAL? V,G-DEBUG /FALSE
|
|
?CND4: ZERO? V \?CND14
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
?CND14: LOC BAD-SPY >L
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
IN? BRIEFCASE,BAD-SPY /?ELS19
|
|
CALL2 META-LOC,BAD-SPY
|
|
IN? BRIEFCASE,STACK \?ELS22
|
|
SET 'STR,STR?343
|
|
SET 'OBJ,BRIEFCASE
|
|
MOVE BRIEFCASE,BAD-SPY
|
|
JUMP ?CND17
|
|
?ELS22: CALL2 META-LOC,BRIEFCASE >?TMP1
|
|
CALL2 META-LOC,BAD-SPY
|
|
EQUAL? ?TMP1,STACK \?ELS24
|
|
SET 'STR,STR?344
|
|
SET 'OBJ,BRIEFCASE
|
|
JUMP ?CND17
|
|
?ELS24: PUT GT,GOAL-SCRIPT,I-BAD-SPY-W-YOU
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE
|
|
JUMP ?CND17
|
|
?ELS19: ZERO? TRAVELER-CHECKED-CASE \?ELS28
|
|
LOC CONDUCTOR >LC
|
|
GETP L,P?STATION
|
|
EQUAL? LC,L,STACK \?ELS31
|
|
FSET? BRIEFCASE,OPENBIT \?ELS34
|
|
SET 'STR,STR?345
|
|
SET 'OBJ,BRIEFCASE
|
|
FCLEAR BRIEFCASE,OPENBIT
|
|
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1
|
|
JUMP ?CND17
|
|
?ELS34: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS31: FSET? BRIEFCASE-LATCH,SEENBIT /?ELS44
|
|
SET 'STR,STR?346
|
|
SET 'OBJ,BRIEFCASE-LATCH
|
|
FSET BRIEFCASE-LATCH,SEENBIT
|
|
JUMP ?CND17
|
|
?ELS44: ZERO? LATCH-TURNED \?ELS46
|
|
ZERO? DEBUG /?CND47
|
|
PRINTI "[1] "
|
|
?CND47: SET 'STR,STR?347
|
|
SET 'OBJ,BRIEFCASE-LATCH
|
|
SET 'LATCH-TURNED,TRUE-VALUE
|
|
JUMP ?CND17
|
|
?ELS46: FSET? BRIEFCASE-LATCH,OPENBIT /?ELS53
|
|
SET 'STR,STR?348
|
|
SET 'OBJ,BRIEFCASE-LATCH
|
|
FSET BRIEFCASE-LATCH,OPENBIT
|
|
JUMP ?CND17
|
|
?ELS53: FSET? BRIEFCASE,OPENBIT /?ELS55
|
|
SET 'STR,STR?348
|
|
SET 'OBJ,BRIEFCASE
|
|
FSET BRIEFCASE,OPENBIT
|
|
CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL,1
|
|
JUMP ?CND17
|
|
?ELS55: FSET? SPY-LIST,SEENBIT /?ELS57
|
|
SET 'STR,STR?346
|
|
SET 'OBJ,SPY-LIST
|
|
FSET SPY-LIST,SEENBIT
|
|
JUMP ?CND17
|
|
?ELS57: IN? MCGUFFIN,BRIEFCASE /?ELS59
|
|
SET 'STR,STR?346
|
|
SET 'OBJ,BRIEFCASE
|
|
SET 'TRAVELER-CHECKED-CASE,TRUE-VALUE
|
|
JUMP ?CND17
|
|
?ELS59: ZERO? PICTURE-NUMBER \?ELS61
|
|
IN? FILM,CAMERA /?ELS64
|
|
IN? CAMERA,BAD-SPY /?ELS67
|
|
SET 'STR,STR?343
|
|
SET 'OBJ,CAMERA
|
|
MOVE CAMERA,BAD-SPY
|
|
JUMP ?CND17
|
|
?ELS67: FSET? CAMERA,SEENBIT /?ELS69
|
|
SET 'STR,STR?346
|
|
SET 'OBJ,CAMERA
|
|
FSET CAMERA,SEENBIT
|
|
JUMP ?CND17
|
|
?ELS69: FSET? CAMERA,OPENBIT /?ELS71
|
|
ZERO? DEBUG /?CND72
|
|
PRINTI "[1] "
|
|
?CND72: SET 'STR,STR?348
|
|
SET 'OBJ,CAMERA
|
|
FSET CAMERA,OPENBIT
|
|
JUMP ?CND17
|
|
?ELS71: FSET? FILM,SEENBIT /?ELS78
|
|
SET 'STR,STR?346
|
|
SET 'OBJ,FILM
|
|
FSET FILM,SEENBIT
|
|
JUMP ?CND17
|
|
?ELS78: SET 'STR,STR?349
|
|
SET 'OBJ,CAMERA
|
|
MOVE FILM,CAMERA
|
|
JUMP ?CND17
|
|
?ELS64: FSET? CAMERA,OPENBIT \?ELS82
|
|
SET 'STR,STR?345
|
|
SET 'OBJ,CAMERA
|
|
FCLEAR CAMERA,OPENBIT
|
|
JUMP ?CND17
|
|
?ELS82: SET 'STR,STR?350
|
|
SET 'OBJ,CAMERA
|
|
INC 'PICTURE-NUMBER
|
|
SET 'CAMERA-COCKED,TRUE-VALUE
|
|
JUMP ?CND17
|
|
?ELS61: CALL ZMEMQ,MCGUFFIN,FILM-TBL
|
|
ZERO? STACK \?ELS89
|
|
SET 'STR,STR?343
|
|
SET 'OBJ,PICTURE-GLOBAL
|
|
CALL2 TAKE-PICTURE,MCGUFFIN
|
|
JUMP ?CND17
|
|
?ELS89: FSET? CAMERA,OPENBIT /?ELS91
|
|
ZERO? DEBUG /?CND92
|
|
PRINTI "[2] "
|
|
?CND92: SET 'STR,STR?348
|
|
SET 'OBJ,CAMERA
|
|
FSET CAMERA,OPENBIT
|
|
JUMP ?CND17
|
|
?ELS91: IN? FILM,CAMERA \?ELS98
|
|
SET 'STR,STR?351
|
|
SET 'OBJ,FILM
|
|
FSET FILM,NDESCBIT
|
|
MOVE FILM,BAD-SPY
|
|
JUMP ?CND17
|
|
?ELS98: SET 'TRAVELER-CHECKED-CASE,TRUE-VALUE
|
|
SET 'STR,STR?352
|
|
SET 'OBJ,CAMERA
|
|
MOVE CAMERA,BRIEFCASE
|
|
JUMP ?CND17
|
|
?ELS28: FSET? BRIEFCASE,OPENBIT \?ELS105
|
|
SET 'STR,STR?345
|
|
SET 'OBJ,BRIEFCASE
|
|
FCLEAR BRIEFCASE,OPENBIT
|
|
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1
|
|
JUMP ?CND17
|
|
?ELS105: FSET? BRIEFCASE-LATCH,OPENBIT \?ELS107
|
|
SET 'STR,STR?345
|
|
SET 'OBJ,BRIEFCASE-LATCH
|
|
FCLEAR BRIEFCASE-LATCH,OPENBIT
|
|
JUMP ?CND17
|
|
?ELS107: EQUAL? VARIATION,2,4 \?ELS109
|
|
ZERO? LATCH-TURNED /?ELS109
|
|
ZERO? DEBUG /?CND112
|
|
PRINTI "[2] "
|
|
?CND112: SET 'STR,STR?347
|
|
SET 'OBJ,BRIEFCASE-LATCH
|
|
SET 'LATCH-TURNED,FALSE-VALUE
|
|
JUMP ?CND17
|
|
?ELS109: CALL QUEUE,I-TRAVELER,0
|
|
IN? PASSOBJECT,BAD-SPY \?ELS121
|
|
JUMP ?CND119
|
|
?ELS121: EQUAL? PASSOBJECT,KNIFE \?ELS123
|
|
PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-KNIFE
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR
|
|
JUMP ?CND119
|
|
?ELS123: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?ELS125
|
|
PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-FLOWER
|
|
EQUAL? L,REST-ROOM-REAR-DINER,REST-ROOM-REAR,OTHER-REST-ROOM-REAR /?CND119
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
JUMP ?CND119
|
|
?ELS125: PUT GT,GOAL-FUNCTION,TRAVELER-FLUSHES-MCGUFFIN
|
|
GETP BAD-SPY,P?CAR
|
|
CALL GENERIC-REST-ROOM-F,0,STACK,L
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
?CND119: SET 'STR,STR?353
|
|
SET 'OBJ,BRIEFCASE
|
|
MOVE BRIEFCASE,BAD-SPY
|
|
?CND17: ZERO? V \?THN136
|
|
ZERO? DEBUG \?THN136
|
|
ZERO? IDEBUG /FALSE
|
|
?THN136: ZERO? V \?CND138
|
|
PRINTC 91
|
|
?CND138: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT TRAVELER-FLUSHES-MCGUFFIN,GARG=0,V,STR,OBJ,GT,L
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
PRINTI "[TRAVELER-FLUSHES-MCGUFFIN:"
|
|
RFALSE
|
|
?CND1: LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \FALSE
|
|
CALL NEW-LDESC,BAD-SPY,4
|
|
EQUAL? L,REST-ROOM-FWD,REST-ROOM-FWD-DINER /?ELS13
|
|
EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER \FALSE
|
|
?ELS13: IN? MCGUFFIN,BAD-SPY \?CND11
|
|
MOVE MCGUFFIN,LIMBO-FWD
|
|
?CND11: CALL NEW-LDESC,BAD-SPY,26
|
|
RFALSE
|
|
|
|
|
|
.FUNCT TRAVELER-FLEES,GARG=0,V,STR,OBJ,GT,L
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
PRINTI "[TRAVELER-FLEES:"
|
|
RFALSE
|
|
?CND1: LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \FALSE
|
|
CALL NEW-LDESC,BAD-SPY,4
|
|
EQUAL? L,REST-ROOM-FWD,REST-ROOM-FWD-DINER /?ELS13
|
|
EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER \FALSE
|
|
?ELS13: IN? BRIEFCASE,BAD-SPY \?CND11
|
|
CALL QUEUE,I-TRAVELER,-1
|
|
PUT STACK,0,1
|
|
?CND11: CALL NEW-LDESC,BAD-SPY,26
|
|
RFALSE
|
|
|
|
|
|
.FUNCT I-TRAVELER-SEEKS-FLOWER,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-SEEKS-FLOWER:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-FLOWER
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
CALL NEW-LDESC,BAD-SPY,26
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS16: ZERO? GARG /?ELS24
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS24: IN? FLOWER-1,BAD-SPY /?ELS32
|
|
IN? FLOWER-2,BAD-SPY /?ELS32
|
|
EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER,OTHER-REST-ROOM-REAR \?ELS37
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL MOVE-PERSON,BAD-SPY,STACK >GT
|
|
CALL QUEUE,I-TRAVELER-SEEKS-FLOWER,-1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /?CND38
|
|
PRINTN GT
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN GT
|
|
?CND38: RETURN GT
|
|
?ELS37: EQUAL? L,VESTIBULE-REAR,VESTIBULE-REAR-DINER /?THN46
|
|
EQUAL? L,OTHER-VESTIBULE-REAR,VESTIBULE-REAR-FANCY \?ELS45
|
|
?THN46: SET 'LEAVE-TRAIN-PERSON,BAD-SPY
|
|
CALL QUEUE,I-LEAVE-TRAIN,1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS45: FSET? FLOWER-1,NDESCBIT \?ELS55
|
|
SET 'STR,STR?354
|
|
SET 'OBJ,FLOWER-1
|
|
MOVE FLOWER-1,BAD-SPY
|
|
FCLEAR FLOWER-1,TAKEBIT
|
|
FCLEAR FLOWER-1,NDESCBIT
|
|
JUMP ?CND14
|
|
?ELS55: FSET? FLOWER-2,NDESCBIT \?CND14
|
|
SET 'STR,STR?354
|
|
SET 'OBJ,FLOWER-2
|
|
MOVE FLOWER-2,BAD-SPY
|
|
FCLEAR FLOWER-2,TAKEBIT
|
|
FCLEAR FLOWER-2,NDESCBIT
|
|
JUMP ?CND14
|
|
?ELS32: EQUAL? L,BESIDE-TRACKS,OTHER-BESIDE-TRACKS \?ELS62
|
|
SET 'LEAVE-TRAIN-PERSON,-1
|
|
CALL QUEUE,I-LEAVE-TRAIN,1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS62: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN82
|
|
ZERO? DEBUG \?THN82
|
|
ZERO? IDEBUG /FALSE
|
|
?THN82: ZERO? V \?CND84
|
|
PRINTC 91
|
|
?CND84: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 PRINTA,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT I-TRAVELER-SEEKS-TICKET,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-SEEKS-TICKET:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-TICKET
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
EQUAL? L,VESTIBULE-REAR,VESTIBULE-REAR-DINER /?THN20
|
|
EQUAL? L,OTHER-VESTIBULE-REAR,VESTIBULE-REAR-FANCY \?ELS19
|
|
?THN20: CALL ESTABLISH-GOAL,BAD-SPY,TICKET-AREA
|
|
SET 'LEAVE-TRAIN-PERSON,BAD-SPY
|
|
CALL QUEUE,I-LEAVE-TRAIN,1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS19: EQUAL? L,TICKET-AREA \?ELS29
|
|
PUTP TICKET-OTHER,P?CAPACITY,STATION-GOLA
|
|
MOVE TICKET-OTHER,BAD-SPY
|
|
FCLEAR TICKET-OTHER,TAKEBIT
|
|
CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-C
|
|
SET 'STR,STR?355
|
|
SET 'OBJ,TICKET-OTHER
|
|
JUMP ?CND14
|
|
?ELS29: CALL NEW-LDESC,BAD-SPY,26
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS16: ZERO? GARG \?ELS39
|
|
EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER,OTHER-REST-ROOM-REAR \?ELS42
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL MOVE-PERSON,BAD-SPY,STACK >GT
|
|
CALL2 I-TRAVELER-SEEKS-TICKET,G-REACHED
|
|
ZERO? STACK /?CND43
|
|
SET 'GT,TRUE-VALUE
|
|
?CND43: ZERO? IDEBUG /?CND46
|
|
PRINTN GT
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN GT
|
|
?CND46: RETURN GT
|
|
?ELS42: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS39: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN73
|
|
ZERO? DEBUG \?THN73
|
|
ZERO? IDEBUG /FALSE
|
|
?THN73: ZERO? V \?CND75
|
|
PRINTC 91
|
|
?CND75: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT I-TRAVELER-PASSED-CUSTOMS,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-PASSED-CUSTOMS:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-PASSED-CUSTOMS
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
EQUAL? L,VESTIBULE-REAR-DINER \?ELS19
|
|
SET 'STR,STR?356
|
|
SET 'OBJ,MACHINE
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-LIGHTER
|
|
PUT GT,GOAL-ENABLE,1
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-FWD,1
|
|
CALL CALL-FOR-PROP,CIGARETTE,BAD-SPY
|
|
JUMP ?CND14
|
|
?ELS19: EQUAL? PASSOBJECT,LIGHTER \?ELS21
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS21: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?ELS29
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
PUT GT,GOAL-SCRIPT,STOP-WALKING-F
|
|
PUT GT,GOAL-ENABLE,1
|
|
GETP BAD-SPY,P?CAR
|
|
CALL2 V-REAR,STACK
|
|
CALL ESTABLISH-GOAL,BAD-SPY,STACK
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS29: CALL NEW-LDESC,BAD-SPY,35
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS16: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN57
|
|
ZERO? DEBUG \?THN57
|
|
ZERO? IDEBUG /FALSE
|
|
?THN57: ZERO? V \?CND59
|
|
PRINTC 91
|
|
?CND59: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT STOP-WALKING-F,GARG=0
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
PRINTI "[STOP-WALKING-F:"
|
|
RFALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,STOP-WALKING-F
|
|
ZERO? STACK \FALSE
|
|
ZERO? GARG /?THN14
|
|
EQUAL? GARG,G-REACHED \FALSE
|
|
?THN14: CALL NEW-LDESC,BAD-SPY,1
|
|
RFALSE
|
|
|
|
|
|
.FUNCT I-TRAVELER-TO-GRNZ,GARG=0
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-TO-GRNZ:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-TO-GRNZ
|
|
ZERO? STACK \FALSE
|
|
ZERO? GARG /?THN16
|
|
EQUAL? GARG,G-REACHED \?CND11
|
|
?THN16: CALL NEW-LDESC,BAD-SPY,1
|
|
CALL QUEUE,I-TRAVELER,-1
|
|
PUT STACK,0,1
|
|
?CND11: ZERO? IDEBUG /FALSE
|
|
PRINTI "0]"
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT I-TRAVELER-SEEKS-LIGHTER,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-SEEKS-LIGHTER:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-LIGHTER
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
CALL2 V-FWD,1
|
|
EQUAL? L,STACK \?ELS19
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR,CAR-MAX
|
|
JUMP ?CND17
|
|
?ELS19: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-FWD,1
|
|
?CND17: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS16: EQUAL? GARG,G-ENROUTE \?CND14
|
|
CALL2 META-LOC,LIGHTER
|
|
EQUAL? L,STACK /?THN33
|
|
ZERO? V \?ELS32
|
|
FSET? L,SEENBIT /?ELS32
|
|
CALL CALL-FOR-PROP,LIGHTER,BAD-SPY
|
|
ZERO? STACK /?ELS32
|
|
?THN33: SET 'STR,STR?357
|
|
SET 'OBJ,LIGHTER
|
|
FCLEAR LIGHTER,TAKEBIT
|
|
MOVE LIGHTER,BAD-SPY
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
PUT GT,GOAL-SCRIPT,STOP-WALKING-F
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR,CAR-MAX
|
|
JUMP ?CND14
|
|
?ELS32: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN50
|
|
ZERO? DEBUG \?THN50
|
|
ZERO? IDEBUG /FALSE
|
|
?THN50: ZERO? V \?CND52
|
|
PRINTC 91
|
|
?CND52: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 PRINTA,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT I-TRAVELER-SEEKS-KNIFE,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-SEEKS-KNIFE:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-KNIFE
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
EQUAL? L,VESTIBULE-REAR-DINER \?ELS19
|
|
SET 'STR,STR?358
|
|
SET 'OBJ,STOP-CORD
|
|
CALL ESTABLISH-GOAL,BAD-SPY,GALLEY
|
|
JUMP ?CND14
|
|
?ELS19: EQUAL? L,GALLEY \?ELS21
|
|
SET 'STR,STR?359
|
|
SET 'OBJ,KNIFE
|
|
FCLEAR KNIFE,TAKEBIT
|
|
MOVE KNIFE,BAD-SPY
|
|
GET GOAL-TABLES,BAD-SPY-C
|
|
PUT STACK,GOAL-FUNCTION,STOP-WALKING-F
|
|
ADD 1,DINER-CAR
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-1,STACK
|
|
JUMP ?CND14
|
|
?ELS21: CALL NEW-LDESC,BAD-SPY,26
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS16: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN41
|
|
ZERO? DEBUG \?THN41
|
|
ZERO? IDEBUG /?CND38
|
|
?THN41: ZERO? V \?CND43
|
|
PRINTC 91
|
|
?CND43: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINTI " appears and"
|
|
PRINT STR
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTC 46
|
|
CRLF
|
|
?CND38: EQUAL? OBJ,STOP-CORD \?CND50
|
|
CALL2 STOP-CORD-F,TRUE-VALUE
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTR "(1)]"
|
|
?CND50: ZERO? IDEBUG /?CND59
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND59: RETURN V
|
|
|
|
|
|
.FUNCT I-TRAVELER-FINDS-CONTACT,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[I-TRAVELER-FINDS-CONTACT:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-FINDS-CONTACT
|
|
ZERO? STACK \FALSE
|
|
LOC BAD-SPY >L
|
|
CALL2 VISIBLE?,BAD-SPY >V
|
|
EQUAL? GARG,G-REACHED \?ELS16
|
|
EQUAL? L,REST-ROOM-MEN,REST-ROOM-WOMEN \?ELS19
|
|
CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-B
|
|
CALL2 REST-ROOM-STATION-F,M-OTHER >V
|
|
ZERO? IDEBUG /?CND20
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND20: RETURN V
|
|
?ELS19: EQUAL? L,PLATFORM-B \?ELS27
|
|
CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-START,CAR-START
|
|
SET 'LEAVE-TRAIN-PERSON,-1
|
|
CALL QUEUE,I-LEAVE-TRAIN,1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS27: GETP COMPARTMENT-START,P?OTHER
|
|
EQUAL? L,COMPARTMENT-START,STACK \?ELS35
|
|
FCLEAR BAD-SPY,TOUCHBIT
|
|
PUTP BAD-SPY,P?LDESC,4
|
|
CALL QUEUE,I-TRAVELER,-1
|
|
PUT STACK,0,1
|
|
ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS35: EQUAL? L,PLATFORM-A \?ELS43
|
|
CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-E
|
|
JUMP ?CND17
|
|
?ELS43: CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-A
|
|
?CND17: CALL2 I-TRAVELER-FINDS-CONTACT,G-ENROUTE >V
|
|
ZERO? IDEBUG /?CND46
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND46: RETURN V
|
|
?ELS16: EQUAL? GARG,G-ENROUTE \?ELS53
|
|
LOC CONTACT
|
|
EQUAL? L,STACK \?ELS56
|
|
FCLEAR CONTACT,NDESCBIT
|
|
SET 'STR,STR?359
|
|
SET 'OBJ,CONTACT
|
|
GET GOAL-TABLES,BAD-SPY-C >GT
|
|
PUT GT,GOAL-ENABLE,0
|
|
CALL QUEUE,I-TRAVELER-FINDS-CONTACT,-1
|
|
PUT STACK,0,1
|
|
JUMP ?CND14
|
|
?ELS56: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?ELS53: ZERO? GARG \?CND14
|
|
ZERO? PASSOBJECT-GIVEN-OTHER \?ELS69
|
|
SET 'PASSOBJECT-GIVEN-OTHER,TRUE-VALUE
|
|
FCLEAR CONTACT,TOUCHBIT
|
|
PUTP CONTACT,P?LDESC,1
|
|
SET 'STR,STR?360
|
|
SET 'OBJ,PASSOBJECT
|
|
JUMP ?CND14
|
|
?ELS69: ZERO? PASSWORD-GIVEN-OTHER \?ELS71
|
|
SET 'PASSWORD-GIVEN-OTHER,TRUE-VALUE
|
|
FCLEAR BAD-SPY,TOUCHBIT
|
|
PUTP BAD-SPY,P?LDESC,1
|
|
SET 'STR,STR?361
|
|
SET 'OBJ,CONTACT
|
|
JUMP ?CND14
|
|
?ELS71: EQUAL? SCENERY-OBJ,STATION-GOLA /?ELS73
|
|
CALL1 WHISPER-PLAN-OTHER
|
|
ZERO? IDEBUG /TRUE
|
|
PRINTR "(1)]"
|
|
?ELS73: IN? FILM,BAD-SPY \?ELS81
|
|
MOVE FILM,CONTACT
|
|
SET 'STR,STR?362
|
|
SET 'OBJ,FILM
|
|
JUMP ?CND14
|
|
?ELS81: ZERO? IDEBUG /FALSE
|
|
PRINTI "(0)]"
|
|
CRLF
|
|
RFALSE
|
|
?CND14: ZERO? V \?THN93
|
|
ZERO? DEBUG \?THN93
|
|
ZERO? IDEBUG /?CND90
|
|
?THN93: ZERO? V \?CND95
|
|
PRINTC 91
|
|
?CND95: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE
|
|
PRINT STR
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTC 46
|
|
CRLF
|
|
EQUAL? OBJ,FILM \?CND90
|
|
CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTI " quickly inspects"
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTI " and then pumps"
|
|
CALL HIM-HER-IT,BAD-SPY,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " hand with obvious gratitude."
|
|
CRLF
|
|
?CND90: EQUAL? OBJ,FILM \?CND107
|
|
PRINTI "(In case you hadn't noticed, I'll tell you that the "
|
|
PRINTD BAD-SPY
|
|
CALL2 THIS-IS-IT,BAD-SPY
|
|
PRINTI " just completed"
|
|
CALL HIM-HER-IT,BAD-SPY,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " mission. There's no point in continuing this story, but better luck next time!)"
|
|
CRLF
|
|
CALL1 FINISH
|
|
?CND107: ZERO? IDEBUG /?CND114
|
|
PRINTN V
|
|
PRINTC 93
|
|
CRLF
|
|
RETURN V
|
|
?CND114: RETURN V
|
|
|
|
|
|
.FUNCT G-FINISH,GARG=0,V,STR,OBJ,GT,L
|
|
ZERO? IDEBUG \?THN4
|
|
EQUAL? GARG,G-DEBUG \?CND1
|
|
?THN4: PRINTI "[G-FINISH:"
|
|
EQUAL? GARG,G-DEBUG /FALSE
|
|
?CND1: CALL PAUSE-SCRIPT?,G-FINISH,CONTACT
|
|
ZERO? STACK \FALSE
|
|
LOC CONTACT >L
|
|
CALL2 VISIBLE?,CONTACT >V
|
|
EQUAL? GARG,G-REACHED \FALSE
|
|
PRINTI "(At this point,"
|
|
CALL2 PRINTT,CONTACT
|
|
CALL2 THIS-IS-IT,CONTACT
|
|
EQUAL? SCENERY-OBJ,STATION-FRBZ \?ELS23
|
|
PRINTI " has given up on passing on"
|
|
CALL2 PRINTT,MCGUFFIN
|
|
PRINTI " as"
|
|
CALL2 HE-SHE-IT,CONTACT
|
|
PRINTI "expected."
|
|
JUMP ?CND21
|
|
?ELS23: PRINTI " has given up on receiving"
|
|
CALL2 PRINTT,MCGUFFIN
|
|
PRINTI " as"
|
|
CALL2 HE-SHE-IT,CONTACT
|
|
PRINTI "expected. "
|
|
CALL HE-SHE-IT,CONTACT,TRUE-VALUE
|
|
PRINTI " is going to contact those who sent"
|
|
CALL2 PRINTT,MCGUFFIN
|
|
PRINTI " in the first place, and they will arrange for an alternate courier, who will, in the end, "
|
|
EQUAL? VARIATION,3,4 \?ELS32
|
|
PRINTI "succeed. In other words, you have, in the end, failed."
|
|
JUMP ?CND21
|
|
?ELS32: PRINTI "fail, just as you have."
|
|
?CND21: PRINTI " Better luck next time!)"
|
|
CRLF
|
|
CALL1 FINISH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FINAL-SCENE,X
|
|
CALL FIND-FLAG-LG,HERE,WINDOWBIT >X
|
|
ZERO? X /?CND1
|
|
PRINTI "You can see two agents leave"
|
|
CALL2 HIM-HER-IT,VEHICLE
|
|
PRINTI " and board the train."
|
|
CRLF
|
|
?CND1: EQUAL? CAR-HERE,FANCY-CAR \?ELS9
|
|
ZERO? X /?ELS12
|
|
PRINTI "They"
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "Two agents"
|
|
?CND10: PRINTI " appear, dispatch"
|
|
CALL2 HIM-HER-IT,THUG
|
|
PRINTI ", and escort"
|
|
CALL2 HIM-HER-IT,DEFECTOR
|
|
JUMP ?CND7
|
|
?ELS9: PRINTI "You hear a commotion to the rear. It must be"
|
|
CALL2 HE-SHE-IT,DEFECTOR
|
|
PRINTI " being escorted"
|
|
?CND7: PRINTI " off the train.
|
|
|
|
CONGRATULATIONS!
|
|
"
|
|
EQUAL? VARIATION,2,4 \?CND28
|
|
CALL1 AWARD
|
|
?CND28: CALL1 FINISH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT AWARD
|
|
PRINTI "
|
|
|
|
You deserve an award for such brilliant work on this mission!
|
|
If you want it printed, please turn on your printer and type YES; otherwise, type NO."
|
|
CALL1 YES?
|
|
ZERO? STACK /?CND3
|
|
GET 0,8
|
|
BOR STACK,1
|
|
PUT 0,8,STACK
|
|
?CND3: PRINTI "
|
|
|
|
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
*** ***
|
|
*** ***
|
|
*** * ******* ******* ****** ******* ****** ********* TM ***
|
|
*** *** ******** ******** ** ** ******** ** ** ********** ***
|
|
*** *** ** ** ** ** ** ** ** ** ** ** ** ***
|
|
*** *** ** ** ******** ** ** ** ** ** ** ** ** ***
|
|
*** *** ** ** ******** ** ** ** ** ** ** ** ** ***
|
|
*** *** ** ** ** ** ** ******** ** ** ** ** ** ***
|
|
*** *** ** ** ** ****** ******* ****** ** ** ** ***
|
|
*** ***
|
|
*** ***
|
|
*** hereby grants this ***
|
|
*** ***
|
|
*** DISTINGUISHED SERVICE AWARD ***
|
|
*** ***
|
|
*** for Doing the Right Thing ***
|
|
*** ***
|
|
*"
|
|
EQUAL? VARIATION,3,4 \?ELS10
|
|
PRINTI "** as an Undercover Agent ***"
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI "** as an Innocent Traveler ***"
|
|
?CND8: PRINTI "
|
|
*** ***
|
|
*** in CHECKPOINT, an interactive story of intrigue ***
|
|
*** ***
|
|
*** Copyright (c) 1985 by Infocom, Inc. All rights reserved. ***
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
"
|
|
RTRUE
|
|
|
|
.ENDI
|