;Flight Simulator Adventure File
;
;Date Created: 04-23-1993
;
;A Flight from VGT-North Las Vegas to LAS*-McCarran International.
;Generated using the Pilot's Power Tools conversion feature that makes
;Adventure script files from FLIGHT PLANNER Flight Plans.
;
;The Pilot's Power Tools is a authored by Robert M. MacKay of RMM Consulting.
;and published by Mallard Software of Lewisville, Texas 1-800-WEB-FEET.
;
;Required: FS4, AAF
;
;Recommended: A&SD, SGA, Flight Planner, Pilot's Power Tools
;             Leave MAGROT.DRV driver out as it may mess up ILS approaches.
;             Leave FRAME.DRV  driver out as the Transponder is required.
;
;Notes: Clearance Del. Frequency is a default 122.45.
;       Ground         Frequency is a default 121.90.
;       Orig Tower     Frequency is a default 122.85.
;       Orig Departure Frequency is a default 118.55.
;       Center         Frequency is a default 133.20.
;       Dest Approach  Frequency is a default 118.80.
;       Dest Tower     Frequency is a default 120.95.
;       Flight Service Frequency is a default 122.20.
;
;       Variables A-E are used to count seconds passed during timing loops.
;       Variable  F stores a 1/0 to show if downwind leg should be skipped.
;       Variable  G stores a 1/0 to show if base leg should be skipped.
;       Variable  H is used to calculate heading error.
;       Variable  I stores a 1/0 to show if a procedure turn is needed.
;       Variable  J is used to store the cloud cover density.
;       Variable  K is used as a counter for random weather change intervals.
;       Variable  L stores the current facility: 0-Grd 1-Twr 2-Dep 3-Ctr 4-App
;       Variable  M stores the current cleared heading (used by FPAutoPilot).
;       Variable  N stores the current cleared altitude (used by FPAutoPilot).
;       Variable  O is the message # counter fo the randome ATC chatter.
;       Variable  P stores a 1/0 to show if the Flight Plan Auto Pilot is on.
;       Variable  Q stores a 1/0 to show if Approach radar contact made.
;       Variable  R is used to indicate climb, level, or descent (0/1/2).
;       Variable  S is used to track if user has deviated from IFR to VFR.
;       Variables V and T store a 1/0 to indicate whether to use VOC/TXT.
;       Variables W-Z are temporary variables for use in math, etc.
;
;       This adventure works best with aircraft that cruise at 120kts.
;
;       Winds from a Flight Planner flight plan are set at about 3-4000' AGL.
;
;       The FltPln AutoPilot (FPAP) will only climb/descend at 500 FPM.
;       If you are going to use FPAP, be sure your flight plan was created
;       with a plane having climb/descent rates of 500 FPM.
;
;Start adventure at origination.  NOTE:  This is a central point for the
;origination airport.  It may put you in a building, water, etc.  If you
;are crashed every time you start this adventure, then try changing the
;decimal values a little to move away from the object you are hitting.
;The best thing to do is get into FS4 and place yourself manually at the
;location you would like to start at and make a note of the exact N/E
;position.  Then edit this file and place those coordinates in the
;following SETPOSITION statement.
;
SETPOSITION(15939.7795,07212.2196,0)
;
;Set which random chatter message # to start with.
SETVAR(X,22)
Y:=random/X
O:=remainder
;Set misc items.
SETVAR(F,0)
SETVAR(G,0)
SETVAR(I,0)
SETVAR(L,0)
EQU norrot 754
EQU magvar 756
;
;Setup options for Voice/Text/Both.
OPTIONS:
    PRINT"Adventure Setup...Please answer the following questions:"
    WAIT(4)
    PRINT"Press (W) for VOICE only, (E) for TEXT only, or (R) Both."
CHKVT:
    IF KEY("W") THEN
        SETVAR(V,1)
        SETVAR(T,0)
        GOTO INTRO
    ENDIF
    IF KEY("E") THEN
        SETVAR(V,0)
        SETVAR(T,1)
        GOTO INTRO
    ENDIF
    IF KEY("R") THEN
        SETVAR(V,1)
        SETVAR(T,1)
        GOTO INTRO
    ENDIF
    GOTO CHKVT
;
INTRO:
;   Set Winds on Surface and Aloft.
    SETVAR(Y,-256)
    SETVAR(Z,6)
    w0vel:=w0vel&Y|Z
    SETVAR(w0turb,0)
    SETVAR(w0depth,45)
    SETVAR(w0dir,21845)
    SETVAR(Z,0)
    w3vel:=w3vel&Y|Z
    SETVAR(w3dir,0)
    SETVAR(w3turb,0)
    SETVAR(w3top,15000)
    SETVAR(w3bot,2000)
    SETVAR(cloud1cover,0)
    IF VARTEST(V,1,1) THEN
        PLAY"VEGTOUR.V00"
    ENDIF
    IF VARTEST(T,1,1) THEN
        PRINT"Welcome to the flight from North Las Vegas to McCarran International."
        WAIT(4)
        PRINT"A Flight Planner converted Adventure made by the Pilot's Power Tools."
        WAIT(4)
        PRINT"After departing North Las Vegas, the flight heads to Nellis AFB,"
        WAIT(4)
        PRINT"then out to Lake Mead and Boulder Dam, to the VOR at Boulder Municipal,"
        WAIT(4)
        PRINT"and ends with a visual landing at McCarran International Airport."
        WAIT(4)
        PRINT"The flight covers 70 miles and should take approximately 40 minutes."
        WAIT(4) 
        PRINT"Tune in North Las Vegas Clearance Delivery on 122.45 when ready to begin,"
        WAIT(4)
        PRINT"or press X to see some instructions."
        WAIT(4)
        PRINT""
    ENDIF
;
;On the ground at VGT receiving clearance.
LOOPC:
    IF COM(122.45) THEN
LOOPCA:
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V01"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 North Las Vegas Clearance."
            WAIT(4)
            PRINT"Cleared to McCarran International Airport as filed."
            WAIT(4)
            PRINT"Climb and maintain 4000.  Expect 5000 10 minutes after departure."
            WAIT(4)
            PRINT"Departure frequency 118.55, Squawk 5531."
            WAIT(6)
            PRINT"Check latest weather report with Flight Service on 122.20."
            WAIT(4)
            PRINT"Contact Ground on 121.90 prior to taxi."
            WAIT(4)
            PRINT""
        ENDIF
        GOSUB CLEARVARS
        GOTO LOOP1
    ENDIF
    IF KEY("R") THEN
        GOTO INTRO
    ENDIF
    IF KEY("X") THEN
        PRINT"Pressing R will repeat the last message."
        WAIT(4)
        PRINT"Pressing W activates FPAP, pressing E de-activates the FPAP."
        WAIT(4)
        PRINT"Pressing J when tuned to FSS gives flt plan summary & weather."
        WAIT(4)
        PRINT"Pressing X when tuned to FSS will toggle request to go VFR/IFR."
        WAIT(4)
        PRINT"Pressing \ will request a complete radar check."
        WAIT(4)
        PRINT"Tune in North Las Vegas Clearance Delivery on 122.45 when ready to begin."
        WAIT(4)
        PRINT""
    ENDIF
    GOTO LOOPC
;
;
;On the ground at VGT awaiting taxi instructions.
LOOP1:
    GOSUB COUNTER
    GOSUB FSS
    IF KEY("R") THEN
        GOTO LOOPCA
    ENDIF
    IF COM(121.90) THEN
LOOP1A:
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V02"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 North Las Vegas Ground."
            WAIT(4)
            PRINT"Taxi to runway 12 and hold short."
            WAIT(4)
            PRINT"Contact Tower on frequency 122.85."
            WAIT(4)
            PRINT""
        ENDIF
        SETVAR(A,0)
LOOP1B:
        IF VARTEST(A,10,9999) THEN
            GOTO LOOP2
        ENDIF
        GOSUB FSS
        WAIT(1)
        ADDVAR(A,1)
        GOTO LOOP1B
    ENDIF
    IF VARTEST(A,10,9999) THEN
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V03"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Contact North Las Vegas Ground on 121.90."
            WAIT(4)
            PRINT""
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP1
;
;Taxi until holding short & squawking 5531
LOOP2:
    IF KEY("R") THEN
        GOTO LOOP1A
    ENDIF
    GOSUB FSS
    IF GROUNDSPEED(0,0) THEN
        IF COM(122.85) THEN
            SETVAR(L,1)
            IF XPNDR(5531) THEN
LOOP2A:
                IF VARTEST(V,1,1) THEN
                    PLAY"VEGTOUR.V04"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 16084 North Las Vegas Tower."
                    WAIT(4)
                    PRINT"Fly runway heading runway 12, cleared for takeoff."
                    WAIT(4)
                    PRINT""
                ENDIF
                GOTO LOOP2B
            ENDIF
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V05"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Please squawk 5531 for radar contact."
                WAIT(4)
            ENDIF
            WAIT(8)
            GOTO LOOP2
        ENDIF
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V06"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Contact North Las Vegas Tower on 122.85."
            WAIT(4)
            PRINT""
        ENDIF
        WAIT(5)
        GOTO LOOP2
    ENDIF
    IF ALTAGL(100,9999) THEN
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V07"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 North Las Vegas Tower."
            WAIT(4)
            PRINT"You have departed before receiving clearance!"
            WAIT(4)
            PRINT"Your license is hereby revoked."
            WAIT(4)
            PRINT"Squawk 7777, tune 121.5, and activate your ELT."
            WAIT(5)
            PRINT"Your aircraft is being set to descend and maintain zero."
            WAIT(4)
            PRINT""
        ENDIF
LOOP2C:
        SETVAR(X,15)
        SETVAR(Y,-256)
        emrgcy:=emrgcy&Y|X
        SETVAR(smoke_enable,1)
        SETVAR(smoke_now,1)
        WAIT(45)
DAMO:
        
        SETVAR(magno,5)
        GOTO DAMO
    ENDIF
    GOTO LOOP2
;
;Check for Takeoff in Wrong Direction
LOOP2B:
    IF KEY("R") THEN
        GOTO LOOP2A
    ENDIF
    IF ALTAGL(100,9999) THEN
        IF HEADING(105,120) THEN
            GOTO LOOP3
        ENDIF
        IF HEADING(120,135) THEN
            GOTO LOOP3
        ENDIF
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V08"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 North Las Vegas Tower."
            WAIT(4)
            PRINT"You have departed on the wrong runway!"
            WAIT(4)
            PRINT"Your license is hereby revoked."
            WAIT(4)
            PRINT"Squawk 7777, tune 121.5, and activate your ELT."
            WAIT(5)
            PRINT"Your aircraft is being set to descend and maintain zero."
            WAIT(4)
            PRINT""
        ENDIF
        GOTO LOOP2C
    ENDIF
    GOTO LOOP2B
;
;Takeoff
LOOP3:
    IF KEY("R") THEN
        GOTO LOOP2A
    ENDIF
    GOSUB FSS
    GOSUB RADARCHK
    IF ALTAGL(500,31999) THEN
LOOP3A:
        IF RADIAL(15961,7270,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V09"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 North Las Vegas Tower."
            WAIT(4)
            PRINTVAR(W,"Climbing turn to 4000, heading ")
            WAIT(4)
            PRINT"Contact Departure on 118.55.  Good day."
            WAIT(4)
            PRINT""
        ENDIF
        GOSUB CLEARVARS
        M:=W
        SETVAR(N,4000)
        GOTO LOOP4
    ENDIF
    GOTO LOOP3
;
;Contact Departure
LOOP4:
    IF KEY("R") THEN
        GOTO LOOP3A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(118.55) THEN
        SETVAR(L,2)
        W:=M
        GOSUB CHKHDGDIRECT
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(2800,31999) THEN
LOOP4A:
                IF VARTEST(V,1,1) THEN
                    PLAY"VEGTOUR.V10"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 16084 Departure."
                    WAIT(4)
                    PRINT"Radar contact.  Climb and maintain 5000."
                    WAIT(4)
                ENDIF
                IF GEARDOWN() THEN
                    IF VARMASK(retractable,255) THEN
                        IF VARTEST(V,1,1) THEN
                            PLAY"VEGTOUR.V11"
                        ENDIF
                        IF VARTEST(T,1,1) THEN
                            PRINT"North Las Vegas Tower reports gear still down."
                            WAIT(4)
                        ENDIF
                    ENDIF
                ENDIF
                IF VARTEST(V,1,1) THEN
                    PLAY"VEGTOUR.V12"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Contact Center on 133.20.  See ya."
                    WAIT(4)
                ENDIF
                SETVAR(N,5000)
                GOSUB CLEARVARS
                GOTO LOOP5
            ENDIF
            IF CYLINDER(15940,7212,0,9) THEN
                IF VARTEST(C,15,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V13"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Departure."
                        WAIT(4)
                        PRINT"Please expedite climb to 4000 now!"
                        WAIT(4)
                    ENDIF
                    SETVAR(C,0)
                ENDIF
            ENDIF
            GOTO LOOP4
        ENDIF
        IF VARTEST(B,10,31999) THEN
            IF RADIAL(15961,7270,0,0) THEN
            ENDIF
            W:=RESULT
            GOSUB CORRECTHDGCHK
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V14"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Departure."
                WAIT(4)
                PRINTVAR(W,"Establish a heading of ")
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP4
    ENDIF
    IF VARTEST(A,10,31999) THEN
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V15"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Tower."
            WAIT(4)
                PRINT"Contact Departure on 118.55."
            WAIT(4)
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP4
;
;Direct to Nellis AFB
LOOP5:
    IF KEY("R") THEN
        GOTO LOOP4A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(133.20)
        SETVAR(L,3)
        IF RADIAL(15961,7270,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
LOOP5A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V16"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"Cleared direct to Nellis AFB at 5000."
                WAIT(4)
            ENDIF
            GOSUB CLEARVARS
            GOTO LOOP6
        ENDIF
        IF VARTEST(C,10,31999) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V17"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINTVAR(W,"Establish a heading to Nellis AFB of ")
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(C,0)
        ENDIF
        GOTO LOOP5
    ENDIF
    IF VARTEST(A,5,31999) THEN
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V18"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Departure."
            WAIT(4)
            PRINT"Contact Center on 133.20."
            WAIT(4)
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP5
;
;Waiting to get to Nellis AFB
LOOP6:
    IF KEY("R") THEN
        GOTO LOOP5A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF RADIAL(15892,7423,0,0) THEN
    ENDIF
    W:=RESULT
    GOSUB CORRECTHDGCHK
    IF COM(133.20) THEN
        IF CYLINDER(15961,7270,0,8) THEN
LOOP6A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V19"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"You're cleared direct to Lake Mead."
                WAIT(4)
                IF RADIAL(15892,7423,0,0) THEN
                ENDIF
                W:=RESULT
                GOSUB CORRECTHDGCHK
                PRINTVAR(W,"New heading should be close to ")
                WAIT(4)
                PRINT"Maintain current cleared altitude of 5000."
                WAIT(4)
                SETVAR(R,1)
            ENDIF
            M:=W
            SETVAR(N,5000)
            GOSUB CLEARVARS
            GOTO LOOP7
        ENDIF
        IF RADIAL(15961,7270,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(4800,5200) THEN
                SETVAR(R,1)
                GOTO LOOP6
            ENDIF
            IF VARTEST(R,1,1) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V20"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Please maintain cleared altitude of 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
                GOTO LOOP6
            ENDIF
            IF CYLINDER(15961,7270,0,13.875) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V21"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Expedite your climb to 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
            ENDIF
            GOTO LOOP6
        ENDIF
        IF VARTEST(B,10,31999) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V22"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"Establish and maintain a direct heading to Nellis AFB."
                WAIT(4)
                PRINTVAR(W,"You're heading should be close to ")
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP6
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V23"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Center."
            WAIT(4)
            PRINT"Please remain on frequency 133.20."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP6
;
;Waiting to get to Lake Mead
LOOP7:
    IF KEY("R") THEN
        GOTO LOOP6A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF RADIAL(15811,7319,0,0) THEN
    ENDIF
    W:=RESULT
    GOSUB CORRECTHDGCHK
    IF COM(133.20) THEN
        IF CYLINDER(15892,7423,0,8) THEN
LOOP7A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V24"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"You're cleared direct to Boulder City Municipal VOR."
                WAIT(4)
                IF RADIAL(15811,7319,0,0) THEN
                ENDIF
                W:=RESULT
                GOSUB CORRECTHDGCHK
                PRINTVAR(W,"New heading should be close to ")
                WAIT(4)
                PRINT"Maintain current cleared altitude of 5000."
                WAIT(4)
                SETVAR(R,1)
            ENDIF
            M:=W
            SETVAR(N,5000)
            GOSUB CLEARVARS
            GOTO LOOP8
        ENDIF
        IF RADIAL(15892,7423,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(4800,5200) THEN
                SETVAR(R,1)
                GOTO LOOP7
            ENDIF
            IF VARTEST(R,1,1) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V25"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Please maintain cleared altitude of 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
                GOTO LOOP7
            ENDIF
            IF CYLINDER(15892,7423,0,18.210) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V26"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Please expedite your descent down to 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
            ENDIF
            GOTO LOOP7
        ENDIF
        IF VARTEST(B,10,31999) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V27"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"Establish and maintain a direct heading to Lake Mead."
                WAIT(4)
                PRINTVAR(W,"You're heading should be close to ")
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP7
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V28"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Center."
            WAIT(4)
            PRINT"Please remain on frequency 133.20."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP7
;
;Waiting to get to Boulder City Municipal VOR
LOOP8:
    IF KEY("R") THEN
        GOTO LOOP7A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF RADIAL(15884,7234,0,0) THEN
    ENDIF
    W:=RESULT
    GOSUB CORRECTHDGCHK
    IF COM(133.20) THEN
        IF CYLINDER(15811,7319,0,8) THEN
LOOP8A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V29"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"You're cleared direct to McCarran International."
                WAIT(4)
                IF RADIAL(15884,7234,0,0) THEN
                ENDIF
                W:=RESULT
                GOSUB CORRECTHDGCHK
                PRINTVAR(W,"New heading should be close to ")
                WAIT(4)
                PRINT"Maintain current cleared altitude of 5000."
                WAIT(4)
                SETVAR(R,1)
                PRINT"Reduce speed and contact Approach on 118.80."
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(N,5000)
            GOSUB CLEARVARS
            GOTO LOOP9
        ENDIF
        IF RADIAL(15811,7319,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(4800,5200) THEN
                SETVAR(R,1)
                GOTO LOOP8
            ENDIF
            IF VARTEST(R,1,1) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V30"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Please maintain cleared altitude of 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
                GOTO LOOP8
            ENDIF
            IF CYLINDER(15811,7319,0,15.478) THEN
                IF VARTEST(A,10,31999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V31"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 Center."
                        WAIT(4)
                        PRINT"Please expedite your descent down to 5000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
            ENDIF
            GOTO LOOP8
        ENDIF
        IF VARTEST(B,10,31999) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V32"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Center."
                WAIT(4)
                PRINT"Establish and maintain a direct heading to Boulder City Municipal VOR."
                WAIT(4)
                PRINTVAR(W,"You're heading should be close to ")
                WAIT(4)
                PRINT"Frequency for Boulder City Municipal VOR is 116.70."
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP8
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V33"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Center."
            WAIT(4)
            PRINT"Please remain on frequency 133.20."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP8
;
;Approach to destination airport McCarran International
LOOP9:
;   Set surface winds at destination
    SETVAR(Y,-256)
    SETVAR(Z,7)
    w0vel:=w0vel&Y|Z
    SETVAR(w0turb,0)
    SETVAR(w0depth,45)
    SETVAR(Q,0)
    SETVAR(w0dir,-30947)
LOOP9C:
    IF KEY("R") THEN
        GOTO LOOP8A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(118.80) THEN
        IF VARTEST(Q,0,0) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V34"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Approach."
                WAIT(4)
                PRINT"Radar contact.  Stand by."
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(Q,1)
        ENDIF
        SETVAR(L,4)
;Check for when to turn downwind
        IF CYLINDER(15884,7234,0,9) THEN
;See if approach will require a procedure turn after passing over the runway
            SETVAR(W,10)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-45,45) THEN
                SETVAR(I,1)
            ENDIF
;See if downwind is necessary, if not, go direct to base leg
            SETVAR(W,190)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-45,45) THEN
LOOP9B:
                SETVAR(F,1)
                IF VARTEST(V,1,1) THEN
                    PLAY"VEGTOUR.V35"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 16084 Approach."
                    WAIT(4)
                    PRINT"Descend and maintain 4000."
                    WAIT(4)
                    PRINT"Expect vectors to Final for Visual runway 19R approach."
                    WAIT(4)
                    PRINT""
                ENDIF
                SETVAR(N,4000)
                GOSUB CLEARVARS
                GOTO LOOP10
            ENDIF
LOOP9A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V36"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 Approach."
                WAIT(4)
                PRINT"Turn right for downwind heading 010."
                WAIT(4)
                PRINT"Descend and maintain 4000."
                WAIT(4)
                PRINT"Expect vectors to final for Visual runway 19R approach."
                WAIT(4)
            ENDIF
            SETVAR(M,10)
            SETVAR(N,4000)
            GOSUB CLEARVARS
            GOTO LOOP10
        ENDIF
        GOTO LOOP9C
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V37"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Center."
            WAIT(4)
            PRINT"Please contact Approach on frequency 118.80."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP9C
;
;On the downwind leg
LOOP10:
    IF KEY("R") THEN
        IF VARTEST(F,1,1) THEN
            GOTO LOOP9B
        ENDIF
        GOTO LOOP9A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB COUNTER
    IF COM(118.80) THEN
        IF VARTEST(F,1,1) THEN
            GOTO LOOP10C
        ENDIF
;Check for when to turn base after downwind
        IF CYLINDER(15884,7234,9,9999) THEN
            GOTO LOOP10D
        ENDIF
        GOTO LOOP10
LOOP10C:
;Check for when to turn base if no downwind
        IF CYLINDER(15884,7234,0,9999) THEN
LOOP10D:
;See if procedure turn is required. If so, issue command & go direct to final
            IF VARTEST(I,1,1) THEN
                GOTO LOOP10B
            ENDIF
;See if base is necessary, if not, go direct to final leg
            SETVAR(W,190)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-20,20) THEN
LOOP10B:
                SETVAR(G,1)
                IF VARTEST(V,1,1) THEN
                    IF VARTEST(I,1,1) THEN
                        PLAY"VEGTOUR.V38"
                        IF VARTEST(P,1,1) THEN
                            PLAY"VEGTOUR.V39"
                            SETVAR(P,0)
                            GOSUB FPAPOFF
                        ENDIF
                    ENDIF
                    IF VARTEST(I,0,0) THEN
                        PLAY"VEGTOUR.V40"
                    ENDIF
                ENDIF
                IF VARTEST(T,1,1) THEN
                    IF VARTEST(I,1,1) THEN
                        PRINT"Cessna 16084 Approach."
                        WAIT(4)
                        PRINT"Execute a standard Procedure Turn."
                        WAIT(4)
                        PRINT"Maintain 4000 until established on final."
                        WAIT(4)
                        PRINT"Contact McCarran International Tower on 120.95."
                        WAIT(4)
                        PRINT""
                        IF VARTEST(P,1,1) THEN
                            PRINT"**ATTENTION** The Flight Plan Auto Pilot is about to disengage!"
                            SETVAR(P,0)
                            GOSUB FPAPOFF
                        ENDIF
                    ENDIF
                    IF VARTEST(I,0,0) THEN
                        PRINT"Cessna 16084 Approach."
                        WAIT(4)
                        PRINT"Maintain 4000 until established on final."
                        WAIT(4)
                        PRINT"Contact McCarran International Tower on 120.95."
                        WAIT(4)
                        PRINT""
                    ENDIF
                ENDIF
                SETVAR(N,4000)
                GOSUB CLEARVARS
                GOTO LOOP11
            ENDIF
LOOP10A:
            IF VARTEST(V,1,1) THEN
                IF VARTEST(F,0,0) THEN
                    PLAY"VEGTOUR.V41"
                ENDIF
                IF VARTEST(F,1,1) THEN
                    PLAY"VEGTOUR.V42"
                ENDIF
            ENDIF
            IF VARTEST(T,1,1) THEN
                IF VARTEST(F,0,0) THEN
                    PRINT"Cessna 16084 Approach."
                    WAIT(4)
                    PRINT"Turn left for base heading 280."
                    WAIT(4)
                    PRINT"Maintain 4000 until established on final."
                    WAIT(4)
                    PRINT"Contact McCarran International Tower on 120.95."
                    WAIT(4)
                ENDIF
                IF VARTEST(F,1,1) THEN
                    PRINT"Cessna 16084 Approach."
                    WAIT(4)
                    PRINT"Turn right for base heading 280."
                    WAIT(4)
                    PRINT"Maintain 4000 until established on final."
                    WAIT(4)
                    PRINT"Contact McCarran International Tower on 120.95."
                    WAIT(4)
                ENDIF
            ENDIF
            SETVAR(M,280)
            SETVAR(N,4000)
            GOSUB CLEARVARS
            GOTO LOOP11
        ENDIF
        GOTO LOOP10
    ENDIF
    IF VARTEST(C,20,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V43"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Approach."
            WAIT(4)
            PRINT"Please set radio to Approach frequency 118.80."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP10
;
;On the base leg
LOOP11:
    IF KEY("R") THEN
        IF VARTEST(G,1,1) THEN
            GOTO LOOP10B
        ENDIF
        GOTO LOOP10A
    ENDIF
    IF VARTEST(P,1,1) THEN
        GOSUB FPAPCHK
    ENDIF
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB COUNTER
    IF COM(120.95) THEN
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V44"
        ENDIF
        IF VARTEST(T,1,1) THEN
LOOP11A:
            PRINT"Cessna 16084 McCarran International Tower."
            WAIT(4)
            PRINT"Cleared to land runway 19R, winds 190 at 7."
            WAIT(4)
        ENDIF
        IF VARTEST(G,1,1) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V45"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Observe noise abatement rules in effect."
            ENDIF
        ENDIF
        IF VARTEST(G,0,0) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V46"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Observe noise abatement rules in effect."
            ENDIF
            WAIT(4)
        ENDIF
        IF VARTEST(P,1,1) THEN
            WAIT(10)
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V47"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"**ATTENTION** The Flight Plan Auto Pilot is about to disengage!"
            ENDIF
            SETVAR(P,0)
            GOSUB FPAPOFF
        ENDIF
        GOSUB CLEARVARS
        GOTO LOOP12
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V48"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 Approach."
            WAIT(4)
            PRINT"Contact McCarran International Tower on 120.95."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP11
;
;On final, waiting for touchdown
LOOP12:
    IF KEY("R") THEN
        GOTO LOOP11A
    ENDIF
    GOSUB COUNTER
    IF VARMASK(ground,1) THEN
        GOTO LOOP13
    ENDIF
    IF COM(120.95) THEN
        IF CYLINDER(15884,7234,0,5) THEN
LOOP12A:
            IF GEARUP() THEN
                IF VARTEST(V,1,1) THEN
                    PLAY"VEGTOUR.V49"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 16084 McCarran International Tower."
                    WAIT(4)
                    PRINT"Please check landing gear status."
                    WAIT(4)
                ENDIF
            ENDIF
            IF JETENGINE() THEN
                IF GROUNDSPEED(200,999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V50"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 McCarran International Tower."
                        WAIT(4)
                        PRINT"Reduce speed for final approach."
                        WAIT(4)
                    ENDIF
                ENDIF
            ENDIF
            IF PROPENGINE() THEN
                IF GROUNDSPEED(150,999) THEN
                    IF VARTEST(V,1,1) THEN
                        PLAY"VEGTOUR.V50"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 16084 McCarran International Tower.
                        WAIT(4)
                        PRINT"Reduce speed for final approach."
                        WAIT(4)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
        WAIT(10)
        GOTO LOOP12
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V51"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 McCarran International Tower."
            WAIT(4)
            PRINT"Please keep radio on Tower frequency 120.95."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP12
;
;Touchdown!
LOOP13:
    GOSUB COUNTER
    IF COM(120.95) THEN
        IF VARTEST(A,10,31999) THEN
LOOP13A:
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V52"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 McCarran International Tower."
                WAIT(4)
                PRINT"Turn off active runway on first available taxiway and hold."
                WAIT(4)
                PRINT"Contact McCarran International Ground on 121.90."
                WAIT(4)
            ENDIF
            GOSUB CLEARVARS
            GOTO LOOP14
        ENDIF
        GOTO LOOP13
    ENDIF
    IF VARTEST(C,10,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V53"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 McCarran International Tower."
            WAIT(4)
            PRINT"Please keep radio on Tower frequency 120.95."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP13
;
;Turned off runway and holding
LOOP14:
    IF KEY("R") THEN
        GOTO LOOP13A
    ENDIF
    GOSUB COUNTER
    IF COM(121.90) THEN
        IF GROUNDSPEED(0,0) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"VEGTOUR.V54"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 16084 McCarran International Ground."
                WAIT(4)
                PRINT"Welcome to McCarran International."
                WAIT(4)
                PRINT"Cleared for taxi to terminal area.  So long."
                WAIT(4)
                PRINT"* This concludes the flight from North Las Vegas to McCarran International *"
                WAIT(6)
              ENDIF
            EOF
        ENDIF
        GOTO LOOP14
    ENDIF
    IF VARTEST(C,20,31999)
        IF VARTEST(V,1,1) THEN
            PLAY"VEGTOUR.V55"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 16084 McCarran International Tower."
            WAIT(4)
            PRINT"Please contact McCarran International Ground on 121.90."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP14
;
;***************
;* SUBROUTINES *
;***************
;
COUNTER:
    ADDVAR(A,1)
    ADDVAR(B,1)
    ADDVAR(C,1)
    ADDVAR(D,1)
    ADDVAR(E,1)
    WAIT(1)
    RETURN
;
CLEARVARS:
    SETVAR(A,0)
    SETVAR(B,0)
    SETVAR(C,0)
    SETVAR(D,0)
    SETVAR(E,0)
    RETURN
;
FPAPCHK:
;Parameters: M = Desired Heading
;            N = Desired Altitude
    IF KEY("W") THEN
        SETVAR(P,1)
        SETVAR(heading_lock,1)
        SETVAR(altit_lock,1)
        IF VARTEST(V, 1, 1) THEN
            PLAY"PPT.VYA"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"*** Flight Plan Auto Pilot is now engaged ***"
            WAIT(4)
            PRINT""
        ENDIF
    ENDIF
    IF KEY("E") THEN
FPAPOFF:
        SETVAR(P,0)
        SETVAR(autop_master,0)
        SETVAR(heading_lock,0)
        SETVAR(altit_lock,0)
        IF VARTEST(V, 1, 1) THEN
            PLAY"PPT.VYB"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"*** Flight Plan Auto Pilot is now disengaged ***"
            WAIT(4)
            PRINT""
        ENDIF
    ENDIF
    IF VARTEST(P,1,1) THEN
;       Add MagVar and NorRot to Heading
        SETVAR(X,180)
        SETVAR(Z,32767)
        SETVAR(W,0)
        Y:=norrot+magvar
        IF VARTEST(Y,-32765,-1) THEN
            SETVAR(W,360)
        ENDIF
        Y:=norrot+magvar*X/Z-W+M
        IF VARTEST(Y,361,999) THEN
            Y:=Y-X-X
        ENDIF
        IF VARTEST(Y,-999,-1) THEN
            Y:=Y+X+X
        ENDIF
;       Convert Heading to a WORD
        SETVAR(Z,65534)
        SETVAR(X,360)
        IF VARTEST(Y,0,180) THEN
            head_lock_var:=Y*Z/X
        ENDIF
        IF VARTEST(Y,181,360) THEN
            head_lock_var:=Y*Z/X-Z
        ENDIF
;       Convert Altitude in feet to meters
        SETVAR(Y,305)
        SETVAR(Z,1000)
        X:=N*Y/Z
        altit_lock_var:=X
        SETVAR(autop_master,1)
    ENDIF
    RETURN
;
FSS:
    IF COM(122.20) THEN
        IF KEY("J") THEN
            IF VARTEST(V,1,1) THEN
                PLAY"PPT.VYC"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 16084 Flight Service."
                WAIT(4)
                PRINT"You're routed VGT->NEL->Lake Mead->BLD->LAS at 5000."
                WAIT(4)
                PRINT"Latest weather report showed winds from 0 at 0 above 5000."
                WAIT(4)
                GOSUB WXCOND
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(C,0)
            GOTO FSSDONE
        ENDIF
        IF VARTEST(L,0,1) THEN
            GOTO FSSDONE
        ENDIF
        IF KEY("X") THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"VEGTOUR.VYE"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 16084 Flight Service."
                WAIT(4)
                PRINT"Radar service terminated.  Squawk 1200."
                WAIT(4)
                PRINT"Frequency change approved."
                WAIT(4)
                PRINT"Fly VFR while deviated."
                WAIT(4)
                PRINT"Contact us again when ready to resume flight as filed."
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(S,1)
            SETVAR(E,0)
            GOTO FSSVFR
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO FSSDONE
FSSVFR:
    IF COM(122.20) THEN
        IF KEY("X") THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VYD"
                GOSUB FSSWHOV
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 16084 Flight Service."
                WAIT(4)
                PRINT"Radar service reinstated.  Squawk 5531."
                WAIT(4)
                PRINT"Cleared as filed."
                WAIT(4)
                GOSUB FSSWHOT
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(S,0)
            SETVAR(C,0)
            GOTO FSSDONE
        ENDIF
        GOSUB COUNTER
        IF VARTEST(E,180,9999)
            IF VARTEST(V,1,1) THEN
                PLAY"PPT.VYF"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 16084 Flight Service."
                WAIT(4)
                PRINT"Contact us again when ready to resume flight as filed."
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(E,0)
        ENDIF
    ENDIF
    GOSUB FPAPCHK
    GOTO FSSVFR
FSSDONE:
    RETURN
;
FSSWHOV:
    IF VARTEST(V,1,1) THEN
        IF VARTEST(L,0,0) THEN
            PLAY"VEGTOUR.VYG"
        ENDIF
        IF VARTEST(L,1,1) THEN
            PLAY"VEGTOUR.VYH"
        ENDIF
        IF VARTEST(L,2,2) THEN
            PLAY"VEGTOUR.VYI"
        ENDIF
        IF VARTEST(L,3,3) THEN
            PLAY"VEGTOUR.VYJ"
        ENDIF
        IF VARTEST(L,4,4) THEN
            PLAY"VEGTOUR.VYK"
        ENDIF
    ENDIF
    RETURN
;
FSSWHOT:
    IF VARTEST(T,1,1) THEN
        IF VARTEST(L,0,0) THEN
            PRINT"Contact Ground on 121.90."
        ENDIF
        IF VARTEST(L,1,1) THEN
            PRINT"Contact Tower on 122.85."
        ENDIF
        IF VARTEST(L,2,2) THEN
            PRINT"Contact Departure on 118.55, expect vectors back to plan."
        ENDIF
        IF VARTEST(L,3,3) THEN
            PRINT"Contact Center on 133.20, expect vectors back to plan."
        ENDIF
        IF VARTEST(L,4,4) THEN
            PRINT"Contact Approach on 118.80, navigate back into the pattern."
        ENDIF
    ENDIF
    RETURN
;
WXUPDATE:
    ADDVAR(K,1)
    IF VARTEST(K,0,40) THEN
        GOTO WXEND
    ENDIF
    SETVAR(K,0)
    SETVAR(X,101)
    Y:=random/X
    X:=remainder
    IF VARTEST(X,0,999) THEN
        GOTO WXEND
    ENDIF
    SETVAR(X,101)
    Y:=random/X
    X:=remainder
    IF VARTEST(X,0,0) THEN
        SETVAR(Y,1)
        J:=J-Y
        IF VARTEST(J,-999,-1) THEN
            SETVAR(J,0)
        ENDIF
        IF VARTEST(J,9,999) THEN
            SETVAR(J,8)
        ENDIF
        X:=J
        IF VARTEST(X,-999,-1) THEN
            SETVAR(X,0)
        ENDIF
        IF VARTEST(X,9,999) THEN
            SETVAR(X,8)
        ENDIF
        cloud1cover:=X
    ENDIF
    SETVAR(X,154)
    cloud1top:=cloud1top-X-X
    Y:=cloud1bot+X
    IF VARTEST(Y,-9999,815) THEN
        SETVAR(Y,815)
    ENDIF
    cloud1bot:=Y
WXEND:
    RETURN
;
WXCOND:
    SETVAR(X,328)
    SETVAR(Z,100)
    Y:=cloud1bot/Z*X
    IF VARTEST(cloud1cover,0,0) THEN
        PRINT"Visibility 10 with clear skies."
    ENDIF
    IF VARTEST(cloud1cover,1,4) THEN
        PRINTVAR(Y,"Currently scattered clouds with a measured ceiling of ")
    ENDIF
    IF VARTEST(cloud1cover,5,7) THEN
        PRINTVAR(Y,"Currently broken clouds with a measured ceiling of ")
    ENDIF
    IF VARTEST(cloud1cover,8,8) THEN
        PRINTVAR(Y,"Currently overcast with a measured ceiling of ")
    ENDIF
    RETURN
;
CORRECTHDGCHK:
;
;Parameters: W = Opposite Desired Heading
;Variables : U = Current Heading
;            X,Y,Z = temporary
;Outputs   : W = Required Heading
;            H = Absolute value of Heading error in degrees
;
;   Compute good heading from radial
    SETVAR(X,180)
    W:=W+X
CHKHDGDIRECT:
    SETVAR(X,360)
;   Compute current heading w/wind
    IF COURSE(0,0) THEN
    ENDIF
    Y:=RESULT
;   Compute current heading w/o wind
    IF HEADING(0,0) THEN
    ENDIF
    U:=RESULT
;   Compute wind correction component
    Y:=Y-U
    IF VARTEST(Y,-999,-90) THEN
        Y:=Y+X
    ENDIF
    IF VARTEST(Y,90,999) THEN
        Y:=Y-X
    ENDIF
    W:=W-Y
    IF VARTEST(W,-999,0) THEN
        W:=W+X
    ENDIF
    IF VARTEST(W,361,999) THEN
        W:=W-X
    ENDIF
;   Compute heading error regardless of Curr/Req Hdg values
    H:=U-W
    SETVAR(Y,-1)
    IF VARTEST(H,-999,-1) THEN
        H:=H*Y
    ENDIF
;   Compute heading error depending if Curr or Req heading is greater
    IF VARTEST(H,181,999) THEN
        SETVAR(X,1)
        Z:=W+X
        SETVAR(X,360)
        IF VARTEST(U,Z,999) THEN
            H:=U-W-X
            GOTO CHKHDGCONT
        ENDIF
        H:=U-W+X
    ENDIF
CHKHDGCONT:
    RETURN
;
RADARCHK:
    IF XPNDR(5531) THEN
        GOTO RADARCHKA
    ENDIF
    IF VARTEST(V, 1, 1) THEN
        PLAY"PPT.VYL"
    ENDIF
    IF VARTEST(T, 1, 1) THEN
        PRINT"Cessna 16084 Center."
        WAIT(2)
        PRINT"We have lost you off the radar."
        WAIT(2)
        PRINT"Please squawk 5531 unless told otherwise."
        WAIT(4)
        PRINT""
    ENDIF
    WAIT(10)
    GOTO RADARCHKB
RADARCHKA:
    IF KEY("\") THEN
       GOTO RADARCHKC
    ENDIF
    IF VARTEST(RANDOM,0,300) THEN
RADARCHKC:
        IF VARTEST(V, 1, 1) THEN
            PLAY"PPT.VYM"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"Cessna 16084 Center."
            WAIT(2)
            PRINT"Radar check to follow..."
            WAIT(1)
        ENDIF
        IF ALTITUDE(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Altitude MSL: ")
        WAIT(2)
        IF ALTAGL(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Altitude AGL: ")
        WAIT(2)
        IF HEADING(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Heading: ")
        WAIT(2)
        IF COURSE(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Course: ")
        WAIT(2)
        IF AIRSPEED(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Airspeed: ")
        WAIT(2)
        PRINT ""
        IF VARTEST(V, 1, 1) THEN
            PLAY"PPT.VYN"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"Radar check complete.  Thank you and so long."
            WAIT(2)
            PRINT ""
        ENDIF
    ENDIF
RADARCHKB:
    RETURN
;
;***************
;* ATC CHATTER *
;***************
;
TRAFFICCHK:
    IF VARTEST(RANDOM,0,3000) THEN
        IF VARTEST(O, 0, 0) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZA"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 267 Heavy Center."
                WAIT(4)
                PRINT"Climb to FL340, traffic eastbound at FL320."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 1, 1) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZB"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 1244 Center."
                WAIT(4)
                PRINT"At station passage, resume normal navigation. So Long."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 2, 2) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZC"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 2034 Center."
                WAIT(4)
                PRINT"Descend and Maintain 3000.  Contact Approach Control.  Good day."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 3, 3) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZD"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Yankee Cargo 662 Center."
                WAIT(4)
                PRINT"You're cleared for 12000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 4, 4) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZE"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 3168 Heavy Center."
                WAIT(4)
                PRINT"Reduce speed to 210.  Descend and maintain FL180."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 5, 5) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZF"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 267 Heavy Center."
                WAIT(4)
                PRINT"Please repeat that last request."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 6, 6) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZG"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"US Air Express Center."
                WAIT(4)
                PRINT"Be advised of significant turbulence in the area."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 7, 7) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZH"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American Eagle 2190 Center."
                WAIT(4)
                PRINT"Turn right for downwind.  Expect ILS vectors."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 8, 8) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZI"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Care Flight One Center."
                WAIT(4)
                PRINT"You're cleared on a direct visual."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 9, 9) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZJ"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 2143 Center."
                WAIT(4)
                PRINT"Descend and maintain 7000.  Continue to hold at the marker."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 10, 10) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZK"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Piper 6229 Center."
                WAIT(4)
                PRINT"Turn heading 080.  Maintain current altitude."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 11, 11) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZL"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Grand Tours 215 Center."
                WAIT(4)
                PRINT"Remain under 1000 to continue visual clearance."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 12, 12) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZM"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 447 Center."
                WAIT(4)
                PRINT"Squawk 2831.  Expect radar check."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 13, 13) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZN"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Citation 220 Center."
                WAIT(4)
                PRINT"Climb to 15000.  Watch for traffic westbound."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 14, 14) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZO"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 310 Heavy Center."
                WAIT(4)
                PRINT"Descend to 2500 and contact approach.  So long."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 15, 15) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZP"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Citation 220 Center."
                WAIT(4)
                PRINT"Turn heading 322. Maintain 16000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 16, 16) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZQ"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"US Air 3351 Center."
                WAIT(4)
                PRINT"Expect vectors around storm cell."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 17, 17) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZR"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Continental 1144 Center."
                WAIT(4)
                PRINT"Proceed direct to outer marker and Hold."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 18, 18) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZS"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 337 Heavy Center."
                WAIT(4)
                PRINT"Prepare for handoff to approach when you reach 3000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 19, 19) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZT"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Federal Express 662 Center."
                WAIT(4)
                PRINT"Expedite descent to 8000.  Report fuel status."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 20, 20) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZU"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 449 Center."
                WAIT(4)
                PRINT"Reduce speed to 190.  Contact Approach.  Bye."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 21, 21) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PPT.VZV"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Southwest 1221 Center."
                WAIT(4)
                PRINT"Maintain current heading and altitude."
                WAIT(4)
            ENDIF
        ENDIF
        PRINT""
    ENDIF
    ADDVAR(O,1)
    IF VARTEST(O, 22, 999) THEN
        SETVAR(O,0)
    ENDIF
    RETURN
