.FUNCT V-$SCRUB:ANY:0:0 PRINTI "[CO2 scrubbers " ZERO? GL-SCRUBBERS-ON /?PRT4 SET 'GL-SCRUBBERS-ON,0 JUMP ?PRE6 ?PRT4: SET 'GL-SCRUBBERS-ON,1 ?PRE6: ZERO? GL-SCRUBBERS-ON /?CCL3 PRINTI "on" JUMP ?CND1 ?CCL3: PRINTI "off" ?CND1: PRINTI ".] " RETURN 2 .FUNCT V-$AIR:ANY:0:0 SET 'GL-OXYGEN-QTY,K-OXY-NOM SET 'GL-OXYGEN-MSG,K-OXY-NOM SET 'GL-CO2-QTY,K-CO2-NOM SET 'GL-CO2-MSG,K-CO2-NOM SET 'GL-NITROGEN-QTY,K-NIT-NOM SET 'GL-NITROGEN-MSG,K-NIT-NOM SET 'GL-HELIUM-QTY,K-HEL-NOM PRINTI "[Breathing mix returned to nominal.] " RETURN 2 .FUNCT RT-NUM-DIGITS:ANY:1:1,N LESS? N,0 \?CND1 SUB 0,N >N ?CND1: LESS? N,10 /TRUE LESS? N,100 \?CCL8 RETURN 2 ?CCL8: LESS? N,1000 \?CCL10 RETURN 3 ?CCL10: LESS? N,10000 /?CTR11 RETURN 5 ?CTR11: RETURN 4 .FUNCT RT-PRINT-FLOAT:ANY:2:3,F,E,D,N,M ASSIGNED? 'D /?CND1 SET 'D,-1 ?CND1: LESS? E,0 \?CCL5 CALL2 RT-NUM-DIGITS,F SUB 0,STACK >N GRTR? E,N /?CCL8 PRINTI "0." ?PRG9: LESS? E,N \?REP10 PRINTC 48 INC 'E JUMP ?PRG9 ?REP10: PRINTN F RTRUE ?CCL8: SUB 0,N EQUAL? STACK,5 \?CCL16 SET 'M,10000 JUMP ?PRG23 ?CCL16: SUB 0,N EQUAL? STACK,4 \?CCL18 SET 'M,1000 JUMP ?PRG23 ?CCL18: SUB 0,N EQUAL? STACK,3 \?CCL20 SET 'M,100 JUMP ?PRG23 ?CCL20: SUB 0,N EQUAL? STACK,2 \?CCL22 SET 'M,10 JUMP ?PRG23 ?CCL22: SET 'M,1 ?PRG23: DIV F,M MOD STACK,10 PRINTN STACK INC 'N EQUAL? E,N \?CND25 PRINTC 46 ?CND25: DIV M,10 >M ZERO? M \?PRG23 RTRUE ?CCL5: PRINTN F SET 'N,0 ?PRG29: LESS? N,E \TRUE PRINTC 48 INC 'N JUMP ?PRG29 .FUNCT RT-NITROGEN-MSG:ANY:0:0 GRTR? GL-NITROGEN-QTY,GL-NITROGEN-MSG \?CCL3 LESS? GL-NITROGEN-QTY,K-NIT-HIGH-4 /?CCL6 SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTI " The high nitrogen level finally overcomes you and you fall to the floor, unconscious. " CALL1 RT-END-OF-GAME RSTACK ?CCL6: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 /?CCL9 LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " You are beginning to hallucinate." ?CCL9: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 /?CCL14 LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " Your head is beginning to spin." ?CCL14: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 /?CCL19 LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " You are beginning to feel light-headed." ?CCL19: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 \?CCL24 GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " Your hands stop trembling. The nitrogen level must be back to normal." ?CCL24: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 \?CCL29 GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " Most of the trembling in your hands has disappeared." ?CCL29: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 \FALSE GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " The flashes of irritibility cease, but your fingertips are still trembling." ?CCL3: LESS? GL-NITROGEN-QTY,GL-NITROGEN-MSG \FALSE GRTR? GL-NITROGEN-QTY,K-NIT-LOW-4 /?CCL42 SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTI " You slump to the floor, a victim of High Pressure Nervous Syndrome. " CALL1 RT-END-OF-GAME RSTACK ?CCL42: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 /?CCL45 GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " You begin to have flashes of sudden irritibility." ?CCL45: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 /?CCL50 GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " The trembling in your fingertips gets worse." ?CCL50: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 /?CCL55 GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 \FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " Your hands begin to tremble." ?CCL55: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 \?CCL60 LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " You no longer feel dizzy. The nitrogen level must be back to normal." ?CCL60: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 \?CCL65 LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " Your head stops spinning, but you still feel dizzy." ?CCL65: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 \FALSE LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 /FALSE SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY PRINTR " The hallucinations fade, but your head is still spinning." .FUNCT RT-OXYGEN-MSG:ANY:0:0 GRTR? GL-OXYGEN-QTY,GL-OXYGEN-MSG \?CCL3 LESS? GL-OXYGEN-QTY,K-OXY-HIGH-4 /?CCL6 SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTI " The high oxygen level finally overcomes you. You go into convulsions, fall to the floor, and pass out. " CALL1 RT-END-OF-GAME RSTACK ?CCL6: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 /?CCL9 LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " Suddenly, your stomach muscles tighten up and you fight off the urge to vomit." ?CCL9: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 /?CCL14 LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " You begin to feel nauseous." ?CCL14: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 /?CCL19 LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " Suddenly, you feel a twitch in your lower lip." ?CCL19: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 \?CCL24 GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " Your headache disappears. The oxygen level must be back to normal." ?CCL24: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 \?CCL29 GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " You begin to see colors again, but you still have a mild headache." ?CCL29: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 \FALSE GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " Your tunnel vision begins to fade." ?CCL3: LESS? GL-OXYGEN-QTY,GL-OXYGEN-MSG \FALSE GRTR? GL-OXYGEN-QTY,K-OXY-LOW-4 /?CCL42 SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTI " You collapse, a victim of oxygen starvation. " CALL1 RT-END-OF-GAME RSTACK ?CCL42: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 /?CCL45 GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " You notice that your peripheral vision is beginning to disappear." ?CCL45: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 /?CCL50 GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " The colors around you seem to fade." ?CCL50: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 /?CCL55 GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 \FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " Your head begins to ache." ?CCL55: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 \?CCL60 LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " You lip stops twitching. The oxygen level must be back to normal." ?CCL60: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 \?CCL65 LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " You no longer feel nauseous, but your lip still twitches occasionally." ?CCL65: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 \FALSE LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 /FALSE SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY PRINTR " The tension in your stomach disappears, but you still feel slightly nauseous." .FUNCT RT-CO2-MSG:ANY:0:0 GRTR? GL-CO2-QTY,GL-CO2-MSG \?CCL3 LESS? GL-CO2-QTY,K-CO2-HIGH-4 /?CCL6 SET 'GL-CO2-MSG,GL-CO2-QTY PRINTI " You pass out from carbon dioxide poisoning. " CALL1 RT-END-OF-GAME RSTACK ?CCL6: LESS? GL-CO2-QTY,K-CO2-HIGH-3 /?CCL9 LESS? GL-CO2-MSG,K-CO2-HIGH-3 \FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " Suddenly the muscles in your arm begin to spasm." ?CCL9: LESS? GL-CO2-QTY,K-CO2-HIGH-2 /?CCL14 LESS? GL-CO2-MSG,K-CO2-HIGH-2 \FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " Your chest muscles are beginning to ache." ?CCL14: LESS? GL-CO2-QTY,K-CO2-HIGH-1 /FALSE LESS? GL-CO2-MSG,K-CO2-HIGH-1 \FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " You begin to feel a little short of breath." ?CCL3: LESS? GL-CO2-QTY,GL-CO2-MSG \FALSE LESS? GL-CO2-QTY,K-CO2-HIGH-1 \?CCL27 LESS? GL-CO2-MSG,K-CO2-HIGH-1 /FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " You begin to breathe more easily. The carbon dioxide level must have returned to normal." ?CCL27: LESS? GL-CO2-QTY,K-CO2-HIGH-2 \?CCL32 LESS? GL-CO2-MSG,K-CO2-HIGH-2 /FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " Your chest muscles feel better, but you are still short of breath." ?CCL32: LESS? GL-CO2-QTY,K-CO2-HIGH-3 \FALSE LESS? GL-CO2-MSG,K-CO2-HIGH-3 /FALSE SET 'GL-CO2-MSG,GL-CO2-QTY PRINTR " The spasms in your arm have stopped, but your chest muscles still ache." .FUNCT RT-I-GAS-MIX:ANY:0:0 ADD GL-MOVES,1 ICALL RT-QUEUE,RT-I-GAS-MIX,STACK SUB GL-OXYGEN-QTY,4 >GL-OXYGEN-QTY LESS? GL-OXYGEN-QTY,0 \?CND1 SET 'GL-OXYGEN-QTY,0 ?CND1: ZERO? GL-SCRUBBERS-ON /?CCL5 SUB GL-CO2-QTY,340 >GL-CO2-QTY LESS? GL-CO2-QTY,0 \?CND3 SET 'GL-CO2-QTY,0 JUMP ?CND3 ?CCL5: ADD GL-CO2-QTY,340 >GL-CO2-QTY ?CND3: CALL1 RT-OXYGEN-MSG ZERO? STACK \TRUE CALL1 RT-CO2-MSG ZERO? STACK \TRUE RFALSE .FUNCT V-$HEAT:ANY:0:0 PRINTI "[Heaters " ZERO? GL-HEATERS-ON /?PRT4 SET 'GL-HEATERS-ON,0 JUMP ?PRE6 ?PRT4: SET 'GL-HEATERS-ON,1 ?PRE6: ZERO? GL-HEATERS-ON /?CCL3 PRINTI "on" JUMP ?CND1 ?CCL3: PRINTI "off" ?CND1: PRINTI ".] " RETURN 2 .FUNCT RT-TH-THERMOMETER:ANY:0:1,CONTEXT ZERO? CONTEXT \FALSE EQUAL? PRSA,V?EXAMINE,V?READ \FALSE PRINTI " The thermometer says your core temperature is " ICALL RT-PRINT-FLOAT,GL-PLAYER-TEMP,K-TEMP-FACTOR PRINTR " degrees Fahrenheit." .FUNCT RT-TEMP-MSG:ANY:0:0 LESS? GL-PLAYER-TEMP,GL-TEMP-MSG \?CCL3 GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-4 /?CCL6 SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTI " The cold finally overpowers you and you pass out. " CALL1 RT-END-OF-GAME RSTACK ?CCL6: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 /?CCL9 GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You're so cold you can hardly move." ?CCL9: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 /?CCL14 GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " The cold begins to creep into your bones." ?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 /?CCL19 GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You begin to shiver." ?CCL19: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 \?CCL24 LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You stop sweating. Your body temperature must have returned to normal." ?CCL24: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 \?CCL29 LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " Your face is no longer flushed, but you are still sweating." ?CCL29: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 \FALSE LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " Your breathing returns to normal, but your face is still red." ?CCL3: GRTR? GL-PLAYER-TEMP,GL-TEMP-MSG \FALSE LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-4 /?CCL42 SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTI " The heat becomes overpowering and you collapse. " CALL1 RT-END-OF-GAME RSTACK ?CCL42: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 /?CCL45 LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You're so hot you can hardly move. Your breathing speeds up dangerously." ?CCL45: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 /?CCL50 LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " Your face turns red from the heat." ?CCL50: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 /?CCL55 LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 \FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You feel uncomfortably hot and begin to sweat." ?CCL55: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 \?CCL60 GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You stop shivering. Your body temperature must be back to normal." ?CCL60: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 \?CCL65 GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " Your hands and feet tingle as they begin to warm up." ?CCL65: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 \FALSE GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 /FALSE SET 'GL-TEMP-MSG,GL-PLAYER-TEMP PRINTR " You're beginning to thaw out." .FUNCT RT-I-DEEPCORE-TEMP:ANY:0:0 ADD GL-MOVES,1 ICALL RT-QUEUE,RT-I-DEEPCORE-TEMP,STACK ZERO? GL-HEATERS-ON /?CCL3 ADD GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP RFALSE ?CCL3: SUB GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP RFALSE .FUNCT RT-I-TEMP:ANY:0:0,L,D1,D2 LOC CH-PLAYER >L ADD GL-MOVES,1 ICALL RT-QUEUE,RT-I-TEMP,STACK FSET? L,FL-WATER \?CCL3 IN? TH-FBS-SUIT,CH-PLAYER \?PRD8 FSET? TH-FBS-SUIT,FL-WORN /?CTR5 ?PRD8: IN? TH-DRY-SUIT,CH-PLAYER \?CCL6 FSET? TH-DRY-SUIT,FL-WORN \?CCL6 ?CTR5: SUB GL-PLAYER-TEMP,10 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL6: SUB GL-PLAYER-TEMP,500 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL3: LESS? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL14 SUB GL-PLAYER-TEMP,860 GRTR? GL-DEEPCORE-TEMP,STACK \?CCL14 SUB GL-PLAYER-TEMP,860 SUB GL-DEEPCORE-TEMP,STACK >D1 SUB K-TEMP-NOM,GL-PLAYER-TEMP >D2 GRTR? D2,D1 /?CCL19 GRTR? D2,5 /?CCL19 SET 'GL-PLAYER-TEMP,K-TEMP-NOM JUMP ?CND1 ?CCL19: LESS? D1,5 /?CCL23 ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL23: ADD GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL25 SUB GL-PLAYER-TEMP,860 LESS? GL-DEEPCORE-TEMP,STACK \?CCL25 SUB GL-PLAYER-TEMP,860 SUB STACK,GL-DEEPCORE-TEMP >D1 SUB GL-PLAYER-TEMP,K-TEMP-NOM >D2 GRTR? D2,D1 /?CCL30 GRTR? D2,5 /?CCL30 SET 'GL-PLAYER-TEMP,K-TEMP-NOM JUMP ?CND1 ?CCL30: LESS? D1,5 /?CCL34 SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL34: SUB GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL25: ADD GL-PLAYER-TEMP,600 GRTR? GL-DEEPCORE-TEMP,STACK \?CCL36 ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP JUMP ?CND1 ?CCL36: SUB GL-PLAYER-TEMP,1200 LESS? GL-DEEPCORE-TEMP,STACK \?CND1 SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP ?CND1: CALL1 RT-TEMP-MSG RSTACK .ENDI