"GOAL for CHECKPOINT Copyright (C) 1985 Infocom, Inc. All rights reserved." "This code is the local T system." )> >> )>)> > ) (<==? .X .DIR> > )> > ) (T >>)> )> >>> > > > ) (<==? .X .DIR> > >>) (T >>)>)> >>> "Rapid Transit Line Definitions and Identifiers" "" "<* 2 ,NUMBER-OF-LINES>" ,TRAIN-LINE) (<==? .LN 2> ,OTHER-LINE) (<==? .LN 3> ,DINER-LINE) (<==? .LN 4> ,PLATF-LINE) (<==? .LN 5> ,STATN-LINE) (<==? .LN 6> ,FANCY-LINE)>> > > > > > > > > > > > ">" > > > > > > > > > > > > "up to 16 corridors (65536)" "CODE" ) GT GOAL FLG (IGOAL <>) X) > > )> > > >) (> )> >>> )> ,LOCKED>)> >)> > > > >)> ) (<==? .HERE .GOAL> >> )> > > ) (>>> ;> )> ; > > > >>> )> > )> > >> >) (T ,LOCKED>)>)> > ) (T >)>)> > .PERSON>>)> > ) "AUX" LINE LOC) > ) (>> )> >>> > ;)> >>> >) (T )>)> > .PERSON>>)> > ) "AUX" LINE (CNT 1) RM (GOAL-FLAG <>) LOC) )> >> ) (>>> > ;> >> ) (T )>)> > >>) (T >>)> ) (<==? .RM .GOAL> )> >>> ; >> ) ( >> ) ( ) (T )>) ( > <==? .THERE >> ) (T >)>) ( > <==? .THERE >> ) (T >)>)> >> > >) (T )>)> > > .HERE> ) (<==? .RM .THERE> )> >> > ; ,COR-1) (<==? .NUM 2> ,COR-2) (<==? .NUM 4> ,COR-4) (<==? .NUM *10*> ,COR-10) (<==? .NUM *20*> ,COR-20) (<==? .NUM *40*> ,COR-40) (<==? .NUM *100*> ,COR-100) (<==? .NUM *200*> ,COR-200) (<==? .NUM *400*> ,COR-400) (<==? .NUM *1000*> ,COR-1000) (<==? .NUM *2000*> ,COR-2000) (<==? .NUM *4000*> ,COR-4000) (<==? .NUM *10000*> ,COR-10000) (<==? .NUM *20000*> ,COR-20000) (T ,COR-40000)>> "Routines to do looking down corridors" <> T>> ) (CAR <>) (GRAB <>) "AUX" C Z COR VAL (FOUND <>)) > >)> > .ITM .CAR .GRAB>) (T > 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (> 0>> ) (T )> > )> > .FOUND)>)>> > ) "AUX" (CNT 2) (PAST 0) (FOUND <>) (RM <>) OBJ DIR (NCAR 0) X (Y <>)) .PAST>> > > )>) ( ) (T )> > .PAST>> >)>) ( > .PAST>> >)>) (T > )>)>) (> ) ( .PAST>> > >) ( > >)> > .PAST>>) (> >> > > > ) (<==? .NCAR .CAR> > )>)>) (>> > >> > >>> > > )> )>) ( T) (T ; )>)> > )>> > )>)> >>> ;> > > )>> )>>> >> )> > > > ) ( )>>> > > > >>> > ) (T >>> ) (T )> )>)> ) ( >> ) (T )> > )>> )>>> > >> ) "AUX" GT L F C) )> > >> ) (.DISABLED-OK ) ;(T )>)> > > >>>> ) (>> )>)>> >> > > > >> "Goal tables for the characters, offset by a constant, which, for a given character, is the P?CHARACTER property of the object." <> <> 1 <> I-PLAYER 5 0 0 I-PLAYER> <> <> 1 <> I-CONDUCTOR 5 0 0 I-CONDUCTOR>
<> <> 1 <> I-WAITER 5 0 0 I-WAITER>
<> <> 1 <> I-COOK 5 0 0 I-COOK>
<> <> 1 <> I-EXTRA 5 0 0 I-EXTRA>
<> <> 1 <> I-BOND 5 0 0 I-BOND>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-GUARD 5 0 0 I-GUARD>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>
<> <> 1 <> I-STAR 5 0 0 STOP-WALKING-F>>> [ "Offsets into GOAL-TABLEs" "final goal" "station of final goal" "intermediate goal (transfer point)" "character can move: 0=no 1=slow 2=fast" "secondary goal to go to when proper car reached" "routine to apply on arrival" "how long character will wait when interrupted" "used to count down from ATTENTION-SPAN to 0" "car number to go with GOAL-QUEUED" "second routine to apply on arrival" ] "Goal-function constants, similar to M-xxx in MAIN" "Movement etc." )> > ; )> > 1> ,GOAL-I-MULTIPLIER> <* <- 1> 2>>> > ;"WALK-TRAIN: 0=normal, 1=continuing walk, 2=finishing walk" >)> >> )> > ,BESIDE-TRACKS ,OTHER-BESIDE-TRACKS> ,STATION-ROOMS>> )> > > > >) (T >)>) (T > > >)>)> > > > > >>> )> ,BOOTH-1 ,BOOTH-2 ,BOOTH-3> ) ( >)>)> > ,G-REACHED>)>> ) (> ) ( ) ( ) ( )>> > ) (T >)>> <==? ,PRSO .PERSON>> ) ( ) (> ) (> ) ( 19 ;"making his rounds">> ) (T )>> ) "AUX" DIR (GT <>) OL COR PCOR CHR OWHERE (DOOR <>) (VAL <>) X CAR NCAR) ;#DECL ((PERSON WHERE) OBJECT) > > >)> > > > > >)>) ( > > >)>)> > > <==? ,DEXIT>> > ; >)>)> > ; >)> >> )>) ( T) ( )>) (<==? .OL ,HERE> ;"un-special the case" )> >> ) (T )> ,TOUCH-CAP?> > )> )> > ) (> ; > )> ) ( > ) (T > )> > )> )>) (<==? .OWHERE ,HERE> >>> > >> )> ;<==? .OWHERE ,HERE> <==? .OL ,LAST-PLAYER-LOC>> ) (T > >)>)> )>)>) (> > > ,FALSE-VALUE ,PLAYER-NOT-FACING> > ) ( > ) ( > ) (T > )> )> )> > ) (T > )> )> > )> ) (T ; ) (<==? .PCOR > ) (T > )> )> )>) (> ,FALSE-VALUE ,PLAYER-NOT-FACING>> ; ; >> )> ; > > ;)> )>)> ) (T >)> )> > ; >> ) (> )>)> ;.OWHERE .WHERE> > >> <==? ,HERE .WHERE ;.OWHERE> >> ; )>) (T ,G-ENROUTE>>)>)> ; ; ")">)> )> )> .VAL> ) P D) > > ) ( ) (T )>) ( >> ) ( >> ) (> >> ) (> >> ) ( >> >> ) ( >> >> )> ) ( )> > ,LOW-DIRECTION> ) (> > ) (T )>)>>> >> )> > <==? .THERE>> ) ;( )>> ) "AUX" (FLG <>) (CNT 0) GT VAL) > )>)> > ,CHARACTER-MAX> ) (> ,GOAL-S> >> ;<0? >>> ; >> > ; )>)>)>> )> .FLG> > >)> > >> > )> ) (T )> )> ) (T )> ;) (T ; ; ,M-ENTER> )>) (<==? .ARG ,G-REACHED> )>> > ; >> )>) (T >> )>)> > )> > >> )>> ) "AUX" (VAL <>) X) > )>)> > )> )> )>) (T >) (T >)> >) ;"? CAR-MAX" (<==? .X ,CAR-HERE> ) (T )> >>) (T >)>)> )> .VAL> > )) > ) (> ,GOAL-FUNCTION>>>> > ) (T > >> )> )>>> ) "AUX" L (VAL <>) P GT) > )>)> > > > )> ;>> ; > > ,I-TRAVELER-FINDS-CONTACT> ; > ) (T)>) ( )> )> ) ( >> > > ,GOAL-SCRIPT ,I-TRAVELER-PASSED-CUSTOMS>)> >) (T ; )>)> )> .VAL> ) "AUX" L CAR CARH FCN (VAL <>) GT GOAL) > )>)> > > > > > >) (<==? .GARG ,G-REACHED> > > > > ; T>> ; >) ( >) (> >)> ) (T 1>)> ;.VAL) ( > > > ; T>> ; >) ( >) (> >)> ) (T 1>)> ;.VAL) (T ; )>)> )> .VAL> > >) (T )> ; > )>)> >> > ) "AUX" DEST NCAR EXTRA L VL VLEL) > )>)> > > > >> ; > )> )> > 3>>> ;"+-1" )> ) ( )> >) (T >)> ") to " D .DEST " (car #" N .NCAR ").]" CR>)> <==? .DEST ,GAS-CAR-RM>> )> ,GOAL-ENABLE 1> )> ) (T )> )> > > )> ) ( .VLEL> )> ) (T )> )>) (<==? .GARG ,G-REACHED> > )> >) (T >)> > >) (T >)> )> .VL)>> ) "AUX" DEST NCAR STAR L VL VLEL) > )>)> > >) (T >)> > > > )> )> >> ) ( >) (T >)> )> ) ( )> >) (T >)> <==? .DEST ,GAS-CAR-RM>> )> ") to " D .DEST " (car #" N .NCAR ").]" CR>)> ,GOAL-ENABLE 1> )> ) (T )> )> > > )> ) ( .VLEL> )> ) (T )> )>) (<==? .GARG ,G-REACHED> > >>)> )> .VL)>> ) (NOT2 <>) "AUX" L CNT X) > > > > ) ( )>>> ) X) > > >> >)> > ) (> ) (> >> ) (> >> ) (> ) ( ) (> ) (> >)>> > ) "AUX" L OBJ DEST X Y) > ;)> )>)> > )> ) (<==? .GARG ,G-REACHED> )> ) (T )> )>) ( > )> ) ( )> )> > )> ) (T )> )>) (<==? .GARG ,G-ENROUTE> >;"need to merge with I-TICKETS-PLEASE" ,GOAL-ENABLE 0> > > ) ( )> >> )> > >)> )> > )>) ( ) (,CUSTOMS-SWEEP ; ) (T ; )> )> )>)> )> )>> ;<==? ,CAR-HERE > <==? .L .RM>> )>> > > > ; >>)> )> ) (T )> >) ( >) (T >)> ) (T >) (T >)> )> )>> > ) "AUX" O (VAL <>) CAR) )> > > <==? .CAR ,CAR-HERE> > >>> ) ( <==? .CAR ,GAS-CAR> >> )> > ) (> >> >> > >>> ) ( )> ,GOAL-ENABLE 0>)>)> >> .VAL> ) "AUX" L) > )>)> > )> )> )> )> ) ( )> ) (T > )> > )> > )> )> )>)>> ) "AUX" (VAL <>) CAR) > ;)> )>)> > >) (<==? 2 ,BOND-CTR> > > > )>) (<==? 3 ,BOND-CTR> >> )>) (<==? 4 ,BOND-CTR> > )>) (<==? 5 ,BOND-CTR> >)> )> .VAL> > > ) "AUX" (VAL <>)) > ;)> )>)> "." CR>) (T )>) (T >)> )> .VAL> ) "AUX" L) > ") 'AUX' L) > ) 'AUX' L) > ) 'AUX' L) > ) 'AUX' L) > ) 'AUX' L) > ) 'AUX' L) >" ) "AUX" L) > ) "AUX" (FLG <>) (CNT 0) ATT GT PER) > )>)> > ,CHARACTER-MAX> )> > > > )> > ) (<0? .ATT> >> ) ( ) (T )> > >> )>) ( ,G-IMPATIENT>> )> > )> .FLG> ) "AUX" (CHR ) GT ATT) > ) ( ) ( 2 ;"snoozing"> ) ( )> > ) (ELSE >)> > >> )> ) (>> )>)> > > > > ) "AUX" L (L1 <>) PER X (VAL <>)) > )>)> > )> )> > > >> >)> > ;"need to merge with I-CONDUCTOR" ,GOAL-ENABLE 0> > > > > >> )> )>) ( > >> )> )>) ( > ) (T > ; " TK=" N ,TICKET-KNOCK "]" CR>)> > ) (T )> )>)> > )> T) (> >) (T )> )> >)> ) (T )> ) (<==? .PER ,PLAYER> ) (T )> )> )> )> .VAL) (T ,GOAL-S> ,GOAL-ENABLE 1>)> > >> ) (T )> )> )>)>) (T ,GOAL-ENABLE 1> > >> ) (T >)>)> >> >)> )> )>> ) (STR <>) "AUX" X) )> > ,HERE> > >>> )>> ) (TELL? <>) (OBJ <>)) )> >)> > > )> )> > >)> ,GOAL-ENABLE 0> ,GOAL-ENABLE 0> >