billr@saab.CNA.TEK.COM (Bill Randle) (05/15/91)
Submitted-by: ian@airs.COM
Posting-number: Volume 12, Issue 73
Archive-name: cdungeon/Part06
Environment: Unix, MS-DOS
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 6 (of 12)."
# Contents: objcts.c verbs.c
# Wrapped by billr@saab on Tue May 14 16:27:39 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'objcts.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'objcts.c'\"
else
echo shar: Extracting \"'objcts.c'\" \(24355 characters\)
sed "s/^X//" >'objcts.c' <<'END_OF_FILE'
X/* OAPPLI- OBJECT SPECIAL ACTION ROUTINES */
X
X/*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/
X/* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */
X/* WRITTEN BY R. M. SUPNIK */
X
X#include "funcs.h"
X#include "vars.h"
X
Xlogical oappli_(ri, arg)
Xinteger ri;
Xinteger arg;
X{
X /* Initialized data */
X
X const integer mxsmp = 99;
X
X /* System generated locals */
X integer i__1;
X logical ret_val;
X
X /* Local variables */
X logical f;
X integer flobts, i;
X integer j, av, io, ir, iz;
X integer odi2 = 0, odo2 = 0;
X integer nloc;
X
X if (ri == 0) {
X goto L10;
X }
X/* !ZERO IS FALSE APP. */
X if (ri <= mxsmp) {
X goto L100;
X }
X/* !SIMPLE OBJECT? */
X if (prsvec_1.prso > 220) {
X goto L5;
X }
X if (prsvec_1.prso != 0) {
X odo2 = objcts_1.odesc2[prsvec_1.prso - 1];
X }
XL5:
X if (prsvec_1.prsi != 0) {
X odi2 = objcts_1.odesc2[prsvec_1.prsi - 1];
X }
X av = advs_1.avehic[play_1.winner - 1];
X flobts = FLAMBT + LITEBT + ONBT;
X ret_val = TRUE_;
X
X switch (ri - mxsmp) {
X case 1: goto L2000;
X case 2: goto L5000;
X case 3: goto L10000;
X case 4: goto L11000;
X case 5: goto L12000;
X case 6: goto L15000;
X case 7: goto L18000;
X case 8: goto L19000;
X case 9: goto L20000;
X case 10: goto L22000;
X case 11: goto L25000;
X case 12: goto L26000;
X case 13: goto L32000;
X case 14: goto L35000;
X case 15: goto L39000;
X case 16: goto L40000;
X case 17: goto L45000;
X case 18: goto L47000;
X case 19: goto L48000;
X case 20: goto L49000;
X case 21: goto L50000;
X case 22: goto L51000;
X case 23: goto L52000;
X case 24: goto L54000;
X case 25: goto L55000;
X case 26: goto L56000;
X case 27: goto L57000;
X case 28: goto L58000;
X case 29: goto L59000;
X case 30: goto L60000;
X case 31: goto L61000;
X case 32: goto L62000;
X }
X bug_(6, ri);
X
X/* RETURN HERE TO DECLARE FALSE RESULT */
X
XL10:
X ret_val = FALSE_;
X return ret_val;
X
X/* SIMPLE OBJECTS, PROCESSED EXTERNALLY. */
X
XL100:
X if (ri < 32) {
X ret_val = sobjs_(ri, arg);
X }
X else {
X ret_val = nobjs_(ri, arg);
X }
X return ret_val;
X/* OAPPLI, PAGE 3 */
X
X/* O100-- MACHINE FUNCTION */
X
XL2000:
X if (play_1.here != rindex_1.mmach) {
X goto L10;
X }
X/* !NOT HERE? F */
X ret_val = opncls_(oindex_1.machi, 123, 124);
X/* !HANDLE OPN/CLS. */
X return ret_val;
X
X/* O101-- WATER FUNCTION */
X
XL5000:
X if (prsvec_1.prsa != vindex_1.fillw) {
X goto L5050;
X }
X/* !FILL X WITH Y IS */
X prsvec_1.prsa = vindex_1.putw;
X/* !MADE INTO */
X i = prsvec_1.prsi;
X prsvec_1.prsi = prsvec_1.prso;
X prsvec_1.prso = i;
X/* !PUT Y IN X. */
X i = odi2;
X odi2 = odo2;
X odo2 = i;
XL5050:
X if (prsvec_1.prso == oindex_1.water || prsvec_1.prso == oindex_1.gwate) {
X goto L5100;
X }
X rspeak_(561);
X/* !WATER IS IND OBJ, */
X return ret_val;
X/* !PUNT. */
X
XL5100:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L5400;
X }
X/* !TAKE WATER? */
X if (objcts_1.oadv[oindex_1.bottl - 1] == play_1.winner && objcts_1.ocan[
X prsvec_1.prso - 1] != oindex_1.bottl) {
X goto L5500;
X }
X if (objcts_1.ocan[prsvec_1.prso - 1] == 0) {
X goto L5200;
X }
X/* !INSIDE ANYTHING? */
X if ((objcts_1.oflag2[objcts_1.ocan[prsvec_1.prso - 1] - 1] &
X OPENBT) != 0) {
X goto L5200;
X }
X/* !YES, OPEN? */
X rspsub_(525, objcts_1.odesc2[objcts_1.ocan[prsvec_1.prso - 1] - 1]);
X/* !INSIDE, CLOSED, PUNT. */
X return ret_val;
X
XL5200:
X rspeak_(615);
X/* !NOT INSIDE OR OPEN, */
X return ret_val;
X/* !SLIPS THRU FINGERS. */
X
XL5400:
X if (prsvec_1.prsa != vindex_1.putw) {
X goto L5700;
X }
X/* !PUT WATER IN X? */
X if (av != 0 && prsvec_1.prsi == av) {
X goto L5800;
X }
X/* !IN VEH? */
X if (prsvec_1.prsi == oindex_1.bottl) {
X goto L5500;
X }
X/* !IN BOTTLE? */
X rspsub_(297, odi2);
X/* !WONT GO ELSEWHERE. */
X newsta_(prsvec_1.prso, 0, 0, 0, 0);
X/* !VANISH WATER. */
X return ret_val;
X
XL5500:
X if ((objcts_1.oflag2[oindex_1.bottl - 1] & OPENBT) != 0) {
X goto L5550;
X }
X/* !BOTTLE OPEN? */
X rspeak_(612);
X/* !NO, LOSE. */
X return ret_val;
X
XL5550:
X if (qempty_(oindex_1.bottl)) {
X goto L5600;
X }
X/* !OPEN, EMPTY? */
X rspeak_(613);
X/* !NO, ALREADY FULL. */
X return ret_val;
X
XL5600:
X newsta_(oindex_1.water, 614, 0, oindex_1.bottl, 0);
X/* !TAKE WATER TO BOTTLE. */
X return ret_val;
X
XL5700:
X if (prsvec_1.prsa != vindex_1.dropw && prsvec_1.prsa != vindex_1.pourw &&
X prsvec_1.prsa != vindex_1.givew) {
X goto L5900;
X }
X if (av != 0) {
X goto L5800;
X }
X/* !INTO VEHICLE? */
X newsta_(prsvec_1.prso, 133, 0, 0, 0);
X/* !NO, VANISHES. */
X return ret_val;
X
XL5800:
X newsta_(oindex_1.water, 0, 0, av, 0);
X/* !WATER INTO VEHICLE. */
X rspsub_(296, objcts_1.odesc2[av - 1]);
X/* !DESCRIBE. */
X return ret_val;
X
XL5900:
X if (prsvec_1.prsa != vindex_1.throww) {
X goto L10;
X }
X/* !LAST CHANCE, THROW? */
X newsta_(prsvec_1.prso, 132, 0, 0, 0);
X/* !VANISHES. */
X return ret_val;
X/* OAPPLI, PAGE 4 */
X
X/* O102-- LEAF PILE */
X
XL10000:
X if (prsvec_1.prsa != vindex_1.burnw) {
X goto L10500;
X }
X/* !BURN? */
X if (objcts_1.oroom[prsvec_1.prso - 1] == 0) {
X goto L10100;
X }
X/* !WAS HE CARRYING? */
X newsta_(prsvec_1.prso, 158, 0, 0, 0);
X/* !NO, BURN IT. */
X return ret_val;
X
XL10100:
X newsta_(prsvec_1.prso, 0, play_1.here, 0, 0);
X/* !DROP LEAVES. */
X jigsup_(159);
X/* !BURN HIM. */
X return ret_val;
X
XL10500:
X if (prsvec_1.prsa != vindex_1.movew) {
X goto L10600;
X }
X/* !MOVE? */
X rspeak_(2);
X/* !DONE. */
X return ret_val;
X
XL10600:
X if (prsvec_1.prsa != vindex_1.lookuw || findex_1.rvclr != 0) {
X goto L10;
X }
X rspeak_(344);
X/* !LOOK UNDER? */
X return ret_val;
X
X/* O103-- TROLL, DONE EXTERNALLY. */
X
XL11000:
X ret_val = trollp_(arg);
X/* !TROLL PROCESSOR. */
X return ret_val;
X
X/* O104-- RUSTY KNIFE. */
X
XL12000:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L12100;
X }
X/* !TAKE? */
X if (objcts_1.oadv[oindex_1.sword - 1] == play_1.winner) {
X rspeak_(160);
X }
X/* !PULSE SWORD. */
X goto L10;
X
XL12100:
X if ((prsvec_1.prsa != vindex_1.attacw && prsvec_1.prsa != vindex_1.killw
X || prsvec_1.prsi != oindex_1.rknif) && (prsvec_1.prsa !=
X vindex_1.swingw && prsvec_1.prsa != vindex_1.throww ||
X prsvec_1.prso != oindex_1.rknif)) {
X goto L10;
X }
X newsta_(oindex_1.rknif, 0, 0, 0, 0);
X/* !KILL KNIFE. */
X jigsup_(161);
X/* !KILL HIM. */
X return ret_val;
X/* OAPPLI, PAGE 5 */
X
X/* O105-- GLACIER */
X
XL15000:
X if (prsvec_1.prsa != vindex_1.throww) {
X goto L15500;
X }
X/* !THROW? */
X if (prsvec_1.prso != oindex_1.torch) {
X goto L15400;
X }
X/* !TORCH? */
X newsta_(oindex_1.ice, 169, 0, 0, 0);
X/* !MELT ICE. */
X objcts_1.odesc1[oindex_1.torch - 1] = 174;
X/* !MUNG TORCH. */
X objcts_1.odesc2[oindex_1.torch - 1] = 173;
X objcts_1.oflag1[oindex_1.torch - 1] &= ~ flobts;
X newsta_(oindex_1.torch, 0, rindex_1.strea, 0, 0);
X/* !MOVE TORCH. */
X findex_1.glacrf = TRUE_;
X/* !GLACIER GONE. */
X if (! lit_(play_1.here)) {
X rspeak_(170);
X }
X/* !IN DARK? */
X return ret_val;
X
XL15400:
X rspeak_(171);
X/* !JOKE IF NOT TORCH. */
X return ret_val;
X
XL15500:
X if (prsvec_1.prsa != vindex_1.meltw || prsvec_1.prso != oindex_1.ice) {
X goto L10;
X }
X if ((objcts_1.oflag1[prsvec_1.prsi - 1] & flobts) == flobts) {
X goto L15600;
X }
X rspsub_(298, odi2);
X/* !CANT MELT WITH THAT. */
X return ret_val;
X
XL15600:
X findex_1.glacmf = TRUE_;
X/* !PARTIAL MELT. */
X if (prsvec_1.prsi != oindex_1.torch) {
X goto L15700;
X }
X/* !MELT WITH TORCH? */
X objcts_1.odesc1[oindex_1.torch - 1] = 174;
X/* !MUNG TORCH. */
X objcts_1.odesc2[oindex_1.torch - 1] = 173;
X objcts_1.oflag1[oindex_1.torch - 1] &= ~ flobts;
XL15700:
X jigsup_(172);
X/* !DROWN. */
X return ret_val;
X
X/* O106-- BLACK BOOK */
X
XL18000:
X if (prsvec_1.prsa != vindex_1.openw) {
X goto L18100;
X }
X/* !OPEN? */
X rspeak_(180);
X/* !JOKE. */
X return ret_val;
X
XL18100:
X if (prsvec_1.prsa != vindex_1.closew) {
X goto L18200;
X }
X/* !CLOSE? */
X rspeak_(181);
X return ret_val;
X
XL18200:
X if (prsvec_1.prsa != vindex_1.burnw) {
X goto L10;
X }
X/* !BURN? */
X newsta_(prsvec_1.prso, 0, 0, 0, 0);
X/* !FATAL JOKE. */
X jigsup_(182);
X return ret_val;
X/* OAPPLI, PAGE 6 */
X
X/* O107-- CANDLES, PROCESSED EXTERNALLY */
X
XL19000:
X ret_val = lightp_(oindex_1.candl);
X return ret_val;
X
X/* O108-- MATCHES, PROCESSED EXTERNALLY */
X
XL20000:
X ret_val = lightp_(oindex_1.match);
X return ret_val;
X
X/* O109-- CYCLOPS, PROCESSED EXTERNALLY. */
X
XL22000:
X ret_val = cyclop_(arg);
X/* !CYCLOPS */
X return ret_val;
X
X/* O110-- THIEF, PROCESSED EXTERNALLY */
X
XL25000:
X ret_val = thiefp_(arg);
X return ret_val;
X
X/* O111-- WINDOW */
X
XL26000:
X ret_val = opncls_(oindex_1.windo, 208, 209);
X/* !OPEN/CLS WINDOW. */
X return ret_val;
X
X/* O112-- PILE OF BODIES */
X
XL32000:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L32500;
X }
X/* !TAKE? */
X rspeak_(228);
X/* !CANT. */
X return ret_val;
X
XL32500:
X if (prsvec_1.prsa != vindex_1.burnw && prsvec_1.prsa != vindex_1.mungw) {
X goto L10;
X }
X if (findex_1.onpolf) {
X return ret_val;
X }
X/* !BURN OR MUNG? */
X findex_1.onpolf = TRUE_;
X/* !SET HEAD ON POLE. */
X newsta_(oindex_1.hpole, 0, rindex_1.lld2, 0, 0);
X jigsup_(229);
X/* !BEHEADED. */
X return ret_val;
X
X/* O113-- VAMPIRE BAT */
X
XL35000:
X rspeak_(50);
X/* !TIME TO FLY, JACK. */
X f = moveto_(bats_1.batdrp[rnd_(9)], play_1.winner);
X/* !SELECT RANDOM DEST. */
X f = rmdesc_(0);
X return ret_val;
X/* OAPPLI, PAGE 7 */
X
X/* O114-- STICK */
X
XL39000:
X if (prsvec_1.prsa != vindex_1.wavew) {
X goto L10;
X }
X/* !WAVE? */
X if (play_1.here == rindex_1.mrain) {
X goto L39500;
X }
X/* !ON RAINBOW? */
X if (play_1.here == rindex_1.pog || play_1.here == rindex_1.falls) {
X goto L39200;
X }
X rspeak_(244);
X/* !NOTHING HAPPENS. */
X return ret_val;
X
XL39200:
X objcts_1.oflag1[oindex_1.pot - 1] |= VISIBT;
X findex_1.rainbf = ! findex_1.rainbf;
X/* !COMPLEMENT RAINBOW. */
X i = 245;
X/* !ASSUME OFF. */
X if (findex_1.rainbf) {
X i = 246;
X }
X/* !IF ON, SOLID. */
X rspeak_(i);
X/* !DESCRIBE. */
X return ret_val;
X
XL39500:
X findex_1.rainbf = FALSE_;
X/* !ON RAINBOW, */
X jigsup_(247);
X/* !TAKE A FALL. */
X return ret_val;
X
X/* O115-- BALLOON, HANDLED EXTERNALLY */
X
XL40000:
X ret_val = ballop_(arg);
X return ret_val;
X
X/* O116-- HEADS */
X
XL45000:
X if (prsvec_1.prsa != vindex_1.hellow) {
X goto L45100;
X }
X/* !HELLO HEADS? */
X rspeak_(633);
X/* !TRULY BIZARRE. */
X return ret_val;
X
XL45100:
X if (prsvec_1.prsa == vindex_1.readw) {
X goto L10;
X }
X/* !READ IS OK. */
X newsta_(oindex_1.lcase, 260, rindex_1.lroom, 0, 0);
X/* !MAKE LARGE CASE. */
X i = robadv_(play_1.winner, 0, oindex_1.lcase, 0) + robrm_(
X play_1.here, 100, 0, oindex_1.lcase, 0);
X jigsup_(261);
X/* !KILL HIM. */
X return ret_val;
X/* OAPPLI, PAGE 8 */
X
X/* O117-- SPHERE */
X
XL47000:
X if (findex_1.cagesf || prsvec_1.prsa != vindex_1.takew) {
X goto L10;
X }
X/* !TAKE? */
X if (play_1.winner != aindex_1.player) {
X goto L47500;
X }
X/* !ROBOT TAKE? */
X rspeak_(263);
X/* !NO, DROP CAGE. */
X if (objcts_1.oroom[oindex_1.robot - 1] != play_1.here) {
X goto L47200;
X }
X/* !ROBOT HERE? */
X f = moveto_(rindex_1.caged, play_1.winner);
X/* !YES, MOVE INTO CAGE. */
X newsta_(oindex_1.robot, 0, rindex_1.caged, 0, 0);
X/* !MOVE ROBOT. */
X advs_1.aroom[aindex_1.arobot - 1] = rindex_1.caged;
X objcts_1.oflag1[oindex_1.robot - 1] |= NDSCBT;
X cevent_1.ctick[cindex_1.cevsph - 1] = 10;
X/* !GET OUT IN 10 OR ELSE. */
X return ret_val;
X
XL47200:
X newsta_(oindex_1.spher, 0, 0, 0, 0);
X/* !YOURE DEAD. */
X rooms_1.rflag[rindex_1.cager - 1] |= RMUNG;
X rrand[rindex_1.cager - 1] = 147;
X jigsup_(148);
X/* !MUNG PLAYER. */
X return ret_val;
X
XL47500:
X newsta_(oindex_1.spher, 0, 0, 0, 0);
X/* !ROBOT TRIED, */
X newsta_(oindex_1.robot, 264, 0, 0, 0);
X/* !KILL HIM. */
X newsta_(oindex_1.cage, 0, play_1.here, 0, 0);
X/* !INSERT MANGLED CAGE. */
X return ret_val;
X
X/* O118-- GEOMETRICAL BUTTONS */
X
XL48000:
X if (prsvec_1.prsa != vindex_1.pushw) {
X goto L10;
X }
X/* !PUSH? */
X i = prsvec_1.prso - oindex_1.sqbut + 1;
X/* !GET BUTTON INDEX. */
X if (i <= 0 || i >= 4) {
X goto L10;
X }
X/* !A BUTTON? */
X if (play_1.winner != aindex_1.player) {
X switch (i) {
X case 1: goto L48100;
X case 2: goto L48200;
X case 3: goto L48300;
X }
X }
X jigsup_(265);
X/* !YOU PUSHED, YOU DIE. */
X return ret_val;
X
XL48100:
X i = 267;
X if (findex_1.carozf) {
X i = 266;
X }
X/* !SPEED UP? */
X findex_1.carozf = TRUE_;
X rspeak_(i);
X return ret_val;
X
XL48200:
X i = 266;
X/* !ASSUME NO CHANGE. */
X if (findex_1.carozf) {
X i = 268;
X }
X findex_1.carozf = FALSE_;
X rspeak_(i);
X return ret_val;
X
XL48300:
X findex_1.caroff = ! findex_1.caroff;
X/* !FLIP CAROUSEL. */
X if (! qhere_(oindex_1.irbox, rindex_1.carou)) {
X return ret_val;
X }
X/* !IRON BOX IN CAROUSEL? */
X rspeak_(269);
X/* !YES, THUMP. */
X objcts_1.oflag1[oindex_1.irbox - 1] ^= VISIBT;
X if (findex_1.caroff) {
X rooms_1.rflag[rindex_1.carou - 1] &= ~ RSEEN;
X }
X return ret_val;
X
X/* O119-- FLASK FUNCTION */
X
XL49000:
X if (prsvec_1.prsa == vindex_1.openw) {
X goto L49100;
X }
X/* !OPEN? */
X if (prsvec_1.prsa != vindex_1.mungw && prsvec_1.prsa != vindex_1.throww) {
X
X goto L10;
X }
X newsta_(oindex_1.flask, 270, 0, 0, 0);
X/* !KILL FLASK. */
XL49100:
X rooms_1.rflag[play_1.here - 1] |= RMUNG;
X rrand[play_1.here - 1] = 271;
X jigsup_(272);
X/* !POISONED. */
X return ret_val;
X
X/* O120-- BUCKET FUNCTION */
X
XL50000:
X if (arg != 2) {
X goto L10;
X }
X/* !READOUT? */
X if (objcts_1.ocan[oindex_1.water - 1] != oindex_1.bucke ||
X findex_1.bucktf) {
X goto L50500;
X }
X findex_1.bucktf = TRUE_;
X/* !BUCKET AT TOP. */
X cevent_1.ctick[cindex_1.cevbuc - 1] = 100;
X/* !START COUNTDOWN. */
X newsta_(oindex_1.bucke, 290, rindex_1.twell, 0, 0);
X/* !REPOSITION BUCKET. */
X goto L50900;
X/* !FINISH UP. */
X
XL50500:
X if (objcts_1.ocan[oindex_1.water - 1] == oindex_1.bucke || !
X findex_1.bucktf) {
X goto L10;
X }
X findex_1.bucktf = FALSE_;
X newsta_(oindex_1.bucke, 291, rindex_1.bwell, 0, 0);
X/* !BUCKET AT BOTTOM. */
XL50900:
X if (av != oindex_1.bucke) {
X return ret_val;
X }
X/* !IN BUCKET? */
X f = moveto_(objcts_1.oroom[oindex_1.bucke - 1], play_1.winner);
X/* !MOVE ADVENTURER. */
X f = rmdesc_(0);
X/* !DESCRIBE ROOM. */
X return ret_val;
X/* OAPPLI, PAGE 9 */
X
X/* O121-- EATME CAKE */
X
XL51000:
X if (prsvec_1.prsa != vindex_1.eatw || prsvec_1.prso != oindex_1.ecake ||
X play_1.here != rindex_1.alice) {
X goto L10;
X }
X newsta_(oindex_1.ecake, 273, 0, 0, 0);
X/* !VANISH CAKE. */
X objcts_1.oflag1[oindex_1.robot - 1] &= ~ VISIBT;
X ret_val = moveto_(rindex_1.alism, play_1.winner);
X/* !MOVE TO ALICE SMALL. */
X iz = 64;
X ir = rindex_1.alism;
X io = rindex_1.alice;
X goto L52405;
X
X/* O122-- ICINGS */
X
XL52000:
X if (prsvec_1.prsa != vindex_1.readw) {
X goto L52200;
X }
X/* !READ? */
X i = 274;
X/* !CANT READ. */
X if (prsvec_1.prsi != 0) {
X i = 275;
X }
X/* !THROUGH SOMETHING? */
X if (prsvec_1.prsi == oindex_1.bottl) {
X i = 276;
X }
X/* !THROUGH BOTTLE? */
X if (prsvec_1.prsi == oindex_1.flask) {
X i = prsvec_1.prso - oindex_1.orice + 277;
X }
X/* !THROUGH FLASK? */
X rspeak_(i);
X/* !READ FLASK. */
X return ret_val;
X
XL52200:
X if (prsvec_1.prsa != vindex_1.throww || prsvec_1.prso != oindex_1.rdice ||
X prsvec_1.prsi != oindex_1.pool) {
X goto L52300;
X }
X newsta_(oindex_1.pool, 280, 0, 0, 0);
X/* !VANISH POOL. */
X objcts_1.oflag1[oindex_1.saffr - 1] |= VISIBT;
X return ret_val;
X
XL52300:
X if (play_1.here != rindex_1.alice && play_1.here != rindex_1.alism &&
X play_1.here != rindex_1.alitr) {
X goto L10;
X }
X if (prsvec_1.prsa != vindex_1.eatw && prsvec_1.prsa != vindex_1.throww ||
X prsvec_1.prso != oindex_1.orice) {
X goto L52400;
X }
X newsta_(oindex_1.orice, 0, 0, 0, 0);
X/* !VANISH ORANGE ICE. */
X rooms_1.rflag[play_1.here - 1] |= RMUNG;
X rrand[play_1.here - 1] = 281;
X jigsup_(282);
X/* !VANISH ADVENTURER. */
X return ret_val;
X
XL52400:
X if (prsvec_1.prsa != vindex_1.eatw || prsvec_1.prso != oindex_1.blice) {
X goto L10;
X }
X newsta_(oindex_1.blice, 283, 0, 0, 0);
X/* !VANISH BLUE ICE. */
X if (play_1.here != rindex_1.alism) {
X goto L52500;
X }
X/* !IN REDUCED ROOM? */
X objcts_1.oflag1[oindex_1.robot - 1] |= VISIBT;
X io = play_1.here;
X ret_val = moveto_(rindex_1.alice, play_1.winner);
X iz = 0;
X ir = rindex_1.alice;
X
X/* Do a size change, common loop used also by code at 51000 */
X
XL52405:
X i__1 = objcts_1.olnt;
X for (i = 1; i <= i__1; ++i) {
X/* !ENLARGE WORLD. */
X if (objcts_1.oroom[i - 1] != io || objcts_1.osize[i - 1] == 10000) {
X goto L52450;
X }
X objcts_1.oroom[i - 1] = ir;
X objcts_1.osize[i - 1] *= iz;
XL52450:
X ;
X }
X return ret_val;
X
XL52500:
X jigsup_(284);
X/* !ENLARGED IN WRONG ROOM. */
X return ret_val;
X
X/* O123-- BRICK */
X
XL54000:
X if (prsvec_1.prsa != vindex_1.burnw) {
X goto L10;
X }
X/* !BURN? */
X jigsup_(150);
X/* !BOOM */
X/* ! */
X return ret_val;
X
X/* O124-- MYSELF */
X
XL55000:
X if (prsvec_1.prsa != vindex_1.givew) {
X goto L55100;
X }
X/* !GIVE? */
X newsta_(prsvec_1.prso, 2, 0, 0, aindex_1.player);
X/* !DONE. */
X return ret_val;
X
XL55100:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L55200;
X }
X/* !TAKE? */
X rspeak_(286);
X/* !JOKE. */
X return ret_val;
X
XL55200:
X if (prsvec_1.prsa != vindex_1.killw && prsvec_1.prsa != vindex_1.mungw) {
X goto L10;
X }
X jigsup_(287);
X/* !KILL, NO JOKE. */
X return ret_val;
X/* OAPPLI, PAGE 10 */
X
X/* O125-- PANELS INSIDE MIRROR */
X
XL56000:
X if (prsvec_1.prsa != vindex_1.pushw) {
X goto L10;
X }
X/* !PUSH? */
X if (findex_1.poleuf != 0) {
X goto L56100;
X }
X/* !SHORT POLE UP? */
X i = 731;
X/* !NO, WONT BUDGE. */
X if (findex_1.mdir % 180 == 0) {
X i = 732;
X }
X/* !DIFF MSG IF N-S. */
X rspeak_(i);
X/* !TELL WONT MOVE. */
X return ret_val;
X
XL56100:
X if (findex_1.mloc != rindex_1.mrg) {
X goto L56200;
X }
X/* !IN GDN ROOM? */
X rspeak_(733);
X/* !YOU LOSE. */
X jigsup_(685);
X return ret_val;
X
XL56200:
X i = 831;
X/* !ROTATE L OR R. */
X if (prsvec_1.prso == oindex_1.rdwal || prsvec_1.prso == oindex_1.ylwal) {
X i = 830;
X }
X rspeak_(i);
X/* !TELL DIRECTION. */
X findex_1.mdir = (findex_1.mdir + 45 + (i - 830) * 270) % 360;
X/* !CALCULATE NEW DIR. */
X i__1 = findex_1.mdir / 45 + 695;
X rspsub_(734, i__1);
X/* !TELL NEW DIR. */
X if (findex_1.wdopnf) {
X rspeak_(730);
X }
X/* !IF PANEL OPEN, CLOSE. */
X findex_1.wdopnf = FALSE_;
X return ret_val;
X/* !DONE. */
X
X/* O126-- ENDS INSIDE MIRROR */
X
XL57000:
X if (prsvec_1.prsa != vindex_1.pushw) {
X goto L10;
X }
X/* !PUSH? */
X if (findex_1.mdir % 180 == 0) {
X goto L57100;
X }
X/* !MIRROR N-S? */
X rspeak_(735);
X/* !NO, WONT BUDGE. */
X return ret_val;
X
XL57100:
X if (prsvec_1.prso != oindex_1.pindr) {
X goto L57300;
X }
X/* !PUSH PINE WALL? */
X if (findex_1.mloc == rindex_1.mrc && findex_1.mdir == 180 ||
X findex_1.mloc == rindex_1.mrd && findex_1.mdir == 0 ||
X findex_1.mloc == rindex_1.mrg) {
X goto L57200;
X }
X rspeak_(736);
X/* !NO, OPENS. */
X findex_1.wdopnf = TRUE_;
X/* !INDICATE OPEN. */
X cevent_1.cflag[cindex_1.cevpin - 1] = TRUE_;
X/* !TIME OPENING. */
X cevent_1.ctick[cindex_1.cevpin - 1] = 5;
X return ret_val;
X
XL57200:
X rspeak_(737);
X/* !GDN SEES YOU, DIE. */
X jigsup_(685);
X return ret_val;
X
XL57300:
X nloc = findex_1.mloc - 1;
X/* !NEW LOC IF SOUTH. */
X if (findex_1.mdir == 0) {
X nloc = findex_1.mloc + 1;
X }
X/* !NEW LOC IF NORTH. */
X if (nloc >= rindex_1.mra && nloc <= rindex_1.mrd) {
X goto L57400;
X }
X rspeak_(738);
X/* !HAVE REACHED END. */
X return ret_val;
X
XL57400:
X i = 699;
X/* !ASSUME SOUTH. */
X if (findex_1.mdir == 0) {
X i = 695;
X }
X/* !NORTH. */
X j = 739;
X/* !ASSUME SMOOTH. */
X if (findex_1.poleuf != 0) {
X j = 740;
X }
X/* !POLE UP, WOBBLES. */
X rspsub_(j, i);
X/* !DESCRIBE. */
X findex_1.mloc = nloc;
X if (findex_1.mloc != rindex_1.mrg) {
X return ret_val;
X }
X/* !NOW IN GDN ROOM? */
X
X if (findex_1.poleuf != 0) {
X goto L57500;
X }
X/* !POLE UP, GDN SEES. */
X if (findex_1.mropnf || findex_1.wdopnf) {
X goto L57600;
X }
X/* !DOOR OPEN, GDN SEES. */
X if (findex_1.mr1f && findex_1.mr2f) {
X return ret_val;
X }
X/* !MIRRORS INTACT, OK. */
X rspeak_(742);
X/* !MIRRORS BROKEN, DIE. */
X jigsup_(743);
X return ret_val;
X
XL57500:
X rspeak_(741);
X/* !POLE UP, DIE. */
X jigsup_(743);
X return ret_val;
X
XL57600:
X rspeak_(744);
X/* !DOOR OPEN, DIE. */
X jigsup_(743);
X return ret_val;
X/* OAPPLI, PAGE 11 */
X
X/* O127-- GLOBAL GUARDIANS */
X
XL58000:
X if (prsvec_1.prsa != vindex_1.attacw && prsvec_1.prsa != vindex_1.killw &&
X prsvec_1.prsa != vindex_1.mungw) {
X goto L58100;
X }
X jigsup_(745);
X/* !LOSE. */
X return ret_val;
X
XL58100:
X if (prsvec_1.prsa != vindex_1.hellow) {
X goto L10;
X }
X/* !HELLO? */
X rspeak_(746);
X/* !NO REPLY. */
X return ret_val;
X
X/* O128-- GLOBAL MASTER */
X
XL59000:
X if (prsvec_1.prsa != vindex_1.attacw && prsvec_1.prsa != vindex_1.killw &&
X prsvec_1.prsa != vindex_1.mungw) {
X goto L59100;
X }
X jigsup_(747);
X/* !BAD IDEA. */
X return ret_val;
X
XL59100:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L10;
X }
X/* !TAKE? */
X rspeak_(748);
X/* !JOKE. */
X return ret_val;
X
X/* O129-- NUMERAL FIVE (FOR JOKE) */
X
XL60000:
X if (prsvec_1.prsa != vindex_1.takew) {
X goto L10;
X }
X/* !TAKE FIVE? */
X rspeak_(419);
X/* !TIME PASSES. */
X for (i = 1; i <= 3; ++i) {
X/* !WAIT A WHILE. */
X if (clockd_()) {
X return ret_val;
X }
X/* L60100: */
X }
X return ret_val;
X
X/* O130-- CRYPT FUNCTION */
X
XL61000:
X if (! findex_1.endgmf) {
X goto L45000;
X }
X/* !IF NOT EG, DIE. */
X if (prsvec_1.prsa != vindex_1.openw) {
X goto L61100;
X }
X/* !OPEN? */
X i = 793;
X if ((objcts_1.oflag2[oindex_1.tomb - 1] & OPENBT) != 0) {
X i = 794;
X }
X rspeak_(i);
X objcts_1.oflag2[oindex_1.tomb - 1] |= OPENBT;
X return ret_val;
X
XL61100:
X if (prsvec_1.prsa != vindex_1.closew) {
X goto L45000;
X }
X/* !CLOSE? */
X i = 795;
X if ((objcts_1.oflag2[oindex_1.tomb - 1] & OPENBT) != 0) {
X i = 796;
X }
X rspeak_(i);
X objcts_1.oflag2[oindex_1.tomb - 1] &= ~ OPENBT;
X if (play_1.here == rindex_1.crypt) {
X cevent_1.ctick[cindex_1.cevste - 1] = 3;
X }
X/* !IF IN CRYPT, START EG. */
X return ret_val;
X/* OAPPLI, PAGE 12 */
X
X/* O131-- GLOBAL LADDER */
X
XL62000:
X if (puzzle_1.cpvec[findex_1.cphere] == -2 || puzzle_1.cpvec[
X findex_1.cphere - 2] == -3) {
X goto L62100;
X }
X rspeak_(865);
X/* !NO, LOSE. */
X return ret_val;
X
XL62100:
X if (prsvec_1.prsa == vindex_1.clmbw || prsvec_1.prsa == vindex_1.clmbuw) {
X
X goto L62200;
X }
X rspeak_(866);
X/* !CLIMB IT? */
X return ret_val;
X
XL62200:
X if (findex_1.cphere == 10 && puzzle_1.cpvec[findex_1.cphere] == -2) {
X goto L62300;
X }
X rspeak_(867);
X/* !NO, HIT YOUR HEAD. */
X return ret_val;
X
XL62300:
X f = moveto_(rindex_1.cpant, play_1.winner);
X/* !TO ANTEROOM. */
X f = rmdesc_(3);
X/* !DESCRIBE. */
X return ret_val;
X
X} /* oappli_ */
END_OF_FILE
if test 24355 -ne `wc -c <'objcts.c'`; then
echo shar: \"'objcts.c'\" unpacked with wrong size!
fi
# end of 'objcts.c'
fi
if test -f 'verbs.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'verbs.c'\"
else
echo shar: Extracting \"'verbs.c'\" \(25958 characters\)
sed "s/^X//" >'verbs.c' <<'END_OF_FILE'
X/* VAPPLI- MAIN VERB PROCESSING ROUTINE */
X
X/*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/
X/* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */
X/* WRITTEN BY R. M. SUPNIK */
X
X#include "funcs.h"
X#include "vars.h"
X
Xlogical vappli_(ri)
Xinteger ri;
X{
X /* Initialized data */
X
X const integer mxnop = 39;
X const integer mxsmp = 99;
X
X /* System generated locals */
X integer i__1;
X logical ret_val;
X
X /* Local variables */
X integer melee;
X logical f;
X integer i, j, av;
X integer rmk;
X integer odi2 = 0, odo2 = 0;
X
X ret_val = TRUE_;
X/* !ASSUME WINS. */
X
X if (prsvec_1.prso > 220) {
X goto L5;
X }
X
X if (prsvec_1.prso != 0) {
X odo2 = objcts_1.odesc2[prsvec_1.prso - 1];
X }
X/* !SET UP DESCRIPTORS. */
XL5:
X if (prsvec_1.prsi != 0) {
X odi2 = objcts_1.odesc2[prsvec_1.prsi - 1];
X }
X av = advs_1.avehic[play_1.winner - 1];
X rmk = rnd_(6) + 372;
X/* !REMARK FOR HACK-HACKS. */
X
X if (ri == 0) {
X goto L10;
X }
X/* !ZERO IS FALSE. */
X if (ri <= mxnop) {
X return ret_val;
X }
X/* !NOP? */
X if (ri <= mxsmp) {
X goto L100;
X }
X/* !SIMPLE VERB? */
X switch (ri - mxsmp) {
X case 1: goto L18000;
X case 2: goto L20000;
X case 3: goto L22000;
X case 4: goto L23000;
X case 5: goto L24000;
X case 6: goto L25000;
X case 7: goto L26000;
X case 8: goto L27000;
X case 9: goto L28000;
X case 10: goto L29000;
X case 11: goto L30000;
X case 12: goto L31000;
X case 13: goto L32000;
X case 14: goto L33000;
X case 15: goto L34000;
X case 16: goto L35000;
X case 17: goto L36000;
X case 18: goto L38000;
X case 19: goto L39000;
X case 20: goto L40000;
X case 21: goto L41000;
X case 22: goto L42000;
X case 23: goto L43000;
X case 24: goto L44000;
X case 25: goto L45000;
X case 26: goto L46000;
X case 27: goto L47000;
X case 28: goto L48000;
X case 29: goto L49000;
X case 30: goto L50000;
X case 31: goto L51000;
X case 32: goto L52000;
X case 33: goto L53000;
X case 34: goto L55000;
X case 35: goto L56000;
X case 36: goto L58000;
X case 37: goto L59000;
X case 38: goto L60000;
X case 39: goto L63000;
X case 40: goto L64000;
X case 41: goto L65000;
X case 42: goto L66000;
X case 43: goto L68000;
X case 44: goto L69000;
X case 45: goto L70000;
X case 46: goto L71000;
X case 47: goto L72000;
X case 48: goto L73000;
X case 49: goto L74000;
X case 50: goto L77000;
X case 51: goto L78000;
X case 52: goto L80000;
X case 53: goto L81000;
X case 54: goto L82000;
X case 55: goto L83000;
X case 56: goto L84000;
X case 57: goto L85000;
X case 58: goto L86000;
X case 59: goto L87000;
X case 60: goto L88000;
X }
X bug_(7, ri);
X
X/* ALL VERB PROCESSORS RETURN HERE TO DECLARE FAILURE. */
X
XL10:
X ret_val = FALSE_;
X/* !LOSE. */
X return ret_val;
X
X/* SIMPLE VERBS ARE HANDLED EXTERNALLY. */
X
XL100:
X ret_val = sverbs_(ri);
X return ret_val;
X/* VAPPLI, PAGE 3 */
X
X/* V100-- READ. OUR FIRST REAL VERB. */
X
XL18000:
X if (lit_(play_1.here)) {
X goto L18100;
X }
X/* !ROOM LIT? */
X rspeak_(356);
X/* !NO, CANT READ. */
X return ret_val;
X
XL18100:
X if (prsvec_1.prsi == 0) {
X goto L18200;
X }
X/* !READ THROUGH OBJ? */
X if ((objcts_1.oflag1[prsvec_1.prsi - 1] & TRANBT) != 0) {
X goto L18200;
X }
X rspsub_(357, odi2);
X/* !NOT TRANSPARENT. */
X return ret_val;
X
XL18200:
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & READBT) != 0) {
X goto L18300;
X }
X rspsub_(358, odo2);
X/* !NOT READABLE. */
X return ret_val;
X
XL18300:
X if (! objact_()) {
X rspeak_(objcts_1.oread[prsvec_1.prso - 1]);
X }
X return ret_val;
X
X/* V101-- MELT. UNLESS OBJECT HANDLES, JOKE. */
X
XL20000:
X if (! objact_()) {
X rspsub_(361, odo2);
X }
X return ret_val;
X
X/* V102-- INFLATE. WORKS ONLY WITH BOATS. */
X
XL22000:
X if (! objact_()) {
X rspeak_(368);
X }
X/* !OBJ HANDLE? */
X return ret_val;
X
X/* V103-- DEFLATE. */
X
XL23000:
X if (! objact_()) {
X rspeak_(369);
X }
X/* !OBJ HANDLE? */
X return ret_val;
X/* VAPPLI, PAGE 4 */
X
X/* V104-- ALARM. IF SLEEPING, WAKE HIM UP. */
X
XL24000:
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & SLEPBT) == 0) {
X goto L24100;
X }
X ret_val = objact_();
X/* !SLEEPING, LET OBJ DO. */
X return ret_val;
X
XL24100:
X rspsub_(370, odo2);
X/* !JOKE. */
X return ret_val;
X
X/* V105-- EXORCISE. OBJECTS HANDLE. */
X
XL25000:
X f = objact_();
X/* !OBJECTS HANDLE. */
X return ret_val;
X
X/* V106-- PLUG. LET OBJECTS HANDLE. */
X
XL26000:
X if (! objact_()) {
X rspeak_(371);
X }
X return ret_val;
X
X/* V107-- KICK. IF OBJECT IGNORES, JOKE. */
X
XL27000:
X if (! objact_()) {
X rspsb2_(378, odo2, rmk);
X }
X return ret_val;
X
X/* V108-- WAVE. SAME. */
X
XL28000:
X if (! objact_()) {
X rspsb2_(379, odo2, rmk);
X }
X return ret_val;
X
X/* V109,V110-- RAISE, LOWER. SAME. */
X
XL29000:
XL30000:
X if (! objact_()) {
X rspsb2_(380, odo2, rmk);
X }
X return ret_val;
X
X/* V111-- RUB. SAME. */
X
XL31000:
X if (! objact_()) {
X rspsb2_(381, odo2, rmk);
X }
X return ret_val;
X
X/* V112-- PUSH. SAME. */
X
XL32000:
X if (! objact_()) {
X rspsb2_(382, odo2, rmk);
X }
X return ret_val;
X/* VAPPLI, PAGE 5 */
X
X/* V113-- UNTIE. IF OBJECT IGNORES, JOKE. */
X
XL33000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJECT HANDLE? */
X i = 383;
X/* !NO, NOT TIED. */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & TIEBT) == 0) {
X i = 384;
X }
X rspeak_(i);
X return ret_val;
X
X/* V114-- TIE. NEVER REALLY WORKS. */
X
XL34000:
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & TIEBT) != 0) {
X goto L34100;
X }
X rspeak_(385);
X/* !NOT TIEABLE. */
X return ret_val;
X
XL34100:
X if (! objact_()) {
X rspsub_(386, odo2);
X }
X/* !JOKE. */
X return ret_val;
X
X/* V115-- TIE UP. NEVER REALLY WORKS. */
X
XL35000:
X if ((objcts_1.oflag2[prsvec_1.prsi - 1] & TIEBT) != 0) {
X goto L35100;
X }
X rspsub_(387, odo2);
X/* !NOT TIEABLE. */
X return ret_val;
X
XL35100:
X i = 388;
X/* !ASSUME VILLAIN. */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT) == 0) {
X i = 389;
X }
X rspsub_(i, odo2);
X/* !JOKE. */
X return ret_val;
X
X/* V116-- TURN. OBJECT MUST HANDLE. */
X
XL36000:
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & TURNBT) != 0) {
X goto L36100;
X }
X rspeak_(390);
X/* !NOT TURNABLE. */
X return ret_val;
X
XL36100:
X if ((objcts_1.oflag1[prsvec_1.prsi - 1] & TOOLBT) != 0) {
X goto L36200;
X }
X rspsub_(391, odi2);
X/* !NOT A TOOL. */
X return ret_val;
X
XL36200:
X ret_val = objact_();
X/* !LET OBJECT HANDLE. */
X return ret_val;
X
X/* V117-- BREATHE. BECOMES INFLATE WITH LUNGS. */
X
XL38000:
X prsvec_1.prsa = vindex_1.inflaw;
X prsvec_1.prsi = oindex_1.lungs;
X goto L22000;
X/* !HANDLE LIKE INFLATE. */
X
X/* V118-- KNOCK. MOSTLY JOKE. */
X
XL39000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = 394;
X/* !JOKE FOR DOOR. */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & DOORBT) == 0) {
X i = 395;
X }
X rspsub_(i, odo2);
X/* !JOKE FOR NONDOORS TOO. */
X return ret_val;
X
X/* V119-- LOOK. */
X
XL40000:
X if (prsvec_1.prso != 0) {
X goto L41500;
X }
X/* !SOMETHING TO LOOK AT? */
X ret_val = rmdesc_(3);
X/* !HANDLED BY RMDESC. */
X return ret_val;
X
X/* V120-- EXAMINE. */
X
XL41000:
X if (prsvec_1.prso != 0) {
X goto L41500;
X }
X/* !SOMETHING TO EXAMINE? */
X ret_val = rmdesc_(0);
X/* !HANDLED BY RMDESC. */
X return ret_val;
X
XL41500:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = objcts_1.oread[prsvec_1.prso - 1];
X/* !GET READING MATERIAL. */
X if (i != 0) {
X rspeak_(i);
X }
X/* !OUTPUT IF THERE, */
X if (i == 0) {
X rspsub_(429, odo2);
X }
X/* !OTHERWISE DEFAULT. */
X prsvec_1.prsa = vindex_1.foow;
X/* !DEFUSE ROOM PROCESSORS. */
X return ret_val;
X
X/* V121-- SHAKE. IF HOLLOW OBJECT, SOME ACTION. */
X
XL42000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJECT HANDLE? */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT) == 0) {
X goto L42100;
X }
X rspeak_(371);
X/* !JOKE FOR VILLAINS. */
X return ret_val;
X
XL42100:
X if (qempty_(prsvec_1.prso) || (objcts_1.oflag1[prsvec_1.prso - 1] &
X TAKEBT) == 0) {
X goto L10;
X }
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & OPENBT) != 0) {
X goto L42300;
X }
X/* !OPEN? SPILL. */
X rspsub_(396, odo2);
X/* !NO, DESCRIBE NOISE. */
X return ret_val;
X
XL42300:
X rspsub_(397, odo2);
X/* !SPILL THE WORKS. */
X i__1 = objcts_1.olnt;
X for (i = 1; i <= i__1; ++i) {
X/* !SPILL CONTENTS. */
X if (objcts_1.ocan[i - 1] != prsvec_1.prso) {
X goto L42500;
X }
X/* !INSIDE? */
X objcts_1.oflag2[i - 1] |= TCHBT;
X if (av == 0) {
X goto L42400;
X }
X/* !IN VEHICLE? */
X newsta_(i, 0, 0, av, 0);
X/* !YES, SPILL IN THERE. */
X goto L42500;
X
XL42400:
X newsta_(i, 0, play_1.here, 0, 0);
X/* !NO, SPILL ON FLOOR, */
X if (i == oindex_1.water) {
X newsta_(i, 133, 0, 0, 0);
X }
X/* !BUT WATER DISAPPEARS. */
XL42500:
X ;
X }
X return ret_val;
X
X/* V122-- MOVE. MOSTLY JOKES. */
X
XL43000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = 398;
X/* !ASSUME NOT HERE. */
X if (qhere_(prsvec_1.prso, play_1.here)) {
X i = 399;
X }
X rspsub_(i, odo2);
X/* !JOKE. */
X return ret_val;
X/* VAPPLI, PAGE 6 */
X
X/* V123-- TURN ON. */
X
XL44000:
X f = lit_(play_1.here);
X/* !RECORD IF LIT. */
X if (objact_()) {
X goto L44300;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & LITEBT) != 0 &&
X objcts_1.oadv[prsvec_1.prso - 1] == play_1.winner) {
X goto L44100;
X }
X rspeak_(400);
X/* !CANT DO IT. */
X return ret_val;
X
XL44100:
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & ONBT) == 0) {
X goto L44200;
X }
X rspeak_(401);
X/* !ALREADY ON. */
X return ret_val;
X
XL44200:
X objcts_1.oflag1[prsvec_1.prso - 1] |= ONBT;
X rspsub_(404, odo2);
XL44300:
X if (! f && lit_(play_1.here)) {
X f = rmdesc_(0);
X }
X/* !ROOM NEWLY LIT. */
X return ret_val;
X
X/* V124-- TURN OFF. */
X
XL45000:
X if (objact_()) {
X goto L45300;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & LITEBT) != 0 &&
X objcts_1.oadv[prsvec_1.prso - 1] == play_1.winner) {
X goto L45100;
X }
X rspeak_(402);
X/* !CANT DO IT. */
X return ret_val;
X
XL45100:
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & ONBT) != 0) {
X goto L45200;
X }
X rspeak_(403);
X/* !ALREADY OFF. */
X return ret_val;
X
XL45200:
X objcts_1.oflag1[prsvec_1.prso - 1] &= ~ ONBT;
X rspsub_(405, odo2);
XL45300:
X if (! lit_(play_1.here)) {
X rspeak_(406);
X }
X/* !MAY BE DARK. */
X return ret_val;
X
X/* V125-- OPEN. A FINE MESS. */
X
XL46000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & CONTBT) != 0) {
X goto L46100;
X }
XL46050:
X rspsub_(407, odo2);
X/* !NOT OPENABLE. */
X return ret_val;
X
XL46100:
X if (objcts_1.ocapac[prsvec_1.prso - 1] != 0) {
X goto L46200;
X }
X rspsub_(408, odo2);
X/* !NOT OPENABLE. */
X return ret_val;
X
XL46200:
X if (! ((objcts_1.oflag2[prsvec_1.prso - 1] & OPENBT) != 0)) {
X goto L46225;
X }
X rspeak_(412);
X/* !ALREADY OPEN. */
X return ret_val;
X
XL46225:
X objcts_1.oflag2[prsvec_1.prso - 1] |= OPENBT;
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & TRANBT) != 0 ||
X qempty_(prsvec_1.prso)) {
X goto L46300;
X }
X princo_(prsvec_1.prso, 410);
X/* !PRINT CONTENTS. */
X return ret_val;
X
XL46300:
X rspeak_(409);
X/* !DONE */
X return ret_val;
X
X/* V126-- CLOSE. */
X
XL47000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & CONTBT) == 0) {
X goto L46050;
X }
X if (objcts_1.ocapac[prsvec_1.prso - 1] != 0) {
X goto L47100;
X }
X rspsub_(411, odo2);
X/* !NOT CLOSABLE. */
X return ret_val;
X
XL47100:
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & OPENBT) != 0) {
X goto L47200;
X }
X/* !OPEN? */
X rspeak_(413);
X/* !NO, JOKE. */
X return ret_val;
X
XL47200:
X objcts_1.oflag2[prsvec_1.prso - 1] &= ~ OPENBT;
X rspeak_(414);
X/* !DONE. */
X return ret_val;
X/* VAPPLI, PAGE 7 */
X
X/* V127-- FIND. BIG MEGILLA. */
X
XL48000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = 415;
X/* !DEFAULT CASE. */
X if (qhere_(prsvec_1.prso, play_1.here)) {
X goto L48300;
X }
X/* !IN ROOM? */
X if (objcts_1.oadv[prsvec_1.prso - 1] == play_1.winner) {
X goto L48200;
X }
X/* !ON WINNER? */
X j = objcts_1.ocan[prsvec_1.prso - 1];
X/* !DOWN ONE LEVEL. */
X if (j == 0) {
X goto L10;
X }
X if ((objcts_1.oflag1[j - 1] & TRANBT) == 0 && (! ((
X objcts_1.oflag2[j - 1] & OPENBT) != 0) || (
X objcts_1.oflag1[j - 1] & DOORBT + CONTBT) == 0))
X {
X goto L10;
X }
X i = 417;
X/* !ASSUME IN ROOM. */
X if (qhere_(j, play_1.here)) {
X goto L48100;
X }
X if (objcts_1.oadv[j - 1] != play_1.winner) {
X goto L10;
X }
X/* !NOT HERE OR ON PERSON. */
X i = 418;
XL48100:
X rspsub_(i, objcts_1.odesc2[j - 1]);
X/* !DESCRIBE FINDINGS. */
X return ret_val;
X
XL48200:
X i = 416;
XL48300:
X rspsub_(i, odo2);
X/* !DESCRIBE FINDINGS. */
X return ret_val;
X
X/* V128-- WAIT. RUN CLOCK DEMON. */
X
XL49000:
X rspeak_(419);
X/* !TIME PASSES. */
X for (i = 1; i <= 3; ++i) {
X if (clockd_()) {
X return ret_val;
X }
X/* L49100: */
X }
X return ret_val;
X
X/* V129-- SPIN. */
X/* V159-- TURN TO. */
X
XL50000:
XL88000:
X if (! objact_()) {
X rspeak_(663);
X }
X/* !IF NOT OBJ, JOKE. */
X return ret_val;
X
X/* V130-- BOARD. WORKS WITH VEHICLES. */
X
XL51000:
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VEHBT) != 0) {
X goto L51100;
X }
X rspsub_(421, odo2);
X/* !NOT VEHICLE, JOKE. */
X return ret_val;
X
XL51100:
X if (qhere_(prsvec_1.prso, play_1.here)) {
X goto L51200;
X }
X/* !HERE? */
X rspsub_(420, odo2);
X/* !NO, JOKE. */
X return ret_val;
X
XL51200:
X if (av == 0) {
X goto L51300;
X }
X/* !ALREADY GOT ONE? */
X rspsub_(422, odo2);
X/* !YES, JOKE. */
X return ret_val;
X
XL51300:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X rspsub_(423, odo2);
X/* !DESCRIBE. */
X advs_1.avehic[play_1.winner - 1] = prsvec_1.prso;
X if (play_1.winner != aindex_1.player) {
X objcts_1.ocan[advs_1.aobj[play_1.winner - 1] - 1] = prsvec_1.prso;
X }
X return ret_val;
X
X/* V131-- DISEMBARK. */
X
XL52000:
X if (av == prsvec_1.prso) {
X goto L52100;
X }
X/* !FROM VEHICLE? */
X rspeak_(424);
X/* !NO, JOKE. */
X return ret_val;
X
XL52100:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if ((rooms_1.rflag[play_1.here - 1] & RLAND) != 0) {
X goto L52200;
X }
X rspeak_(425);
X/* !NOT ON LAND. */
X return ret_val;
X
XL52200:
X advs_1.avehic[play_1.winner - 1] = 0;
X rspeak_(426);
X if (play_1.winner != aindex_1.player) {
X newsta_(advs_1.aobj[play_1.winner - 1], 0, play_1.here, 0, 0);
X }
X return ret_val;
X
X/* V132-- TAKE. HANDLED EXTERNALLY. */
X
XL53000:
X ret_val = take_(1);
X return ret_val;
X
X/* V133-- INVENTORY. PROCESSED EXTERNALLY. */
X
XL55000:
X invent_(play_1.winner);
X return ret_val;
X/* VAPPLI, PAGE 8 */
X
X/* V134-- FILL. STRANGE DOINGS WITH WATER. */
X
XL56000:
X if (prsvec_1.prsi != 0) {
X goto L56050;
X }
X/* !ANY OBJ SPECIFIED? */
X if ((rooms_1.rflag[play_1.here - 1] & RWATER + RFILL) !=
X 0) {
X goto L56025;
X }
X rspeak_(516);
X/* !NOTHING TO FILL WITH. */
X prsvec_1.prswon = FALSE_;
X/* !YOU LOSE. */
X return ret_val;
X
XL56025:
X prsvec_1.prsi = oindex_1.gwate;
X/* !USE GLOBAL WATER. */
XL56050:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if (prsvec_1.prsi != oindex_1.gwate && prsvec_1.prsi != oindex_1.water) {
X rspsb2_(444, odi2, odo2);
X }
X return ret_val;
X
X/* V135,V136-- EAT/DRINK */
X
XL58000:
XL59000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if (prsvec_1.prso == oindex_1.gwate) {
X goto L59500;
X }
X/* !DRINK GLOBAL WATER? */
X if (! ((objcts_1.oflag1[prsvec_1.prso - 1] & FOODBT) != 0)) {
X goto L59400;
X }
X/* !EDIBLE? */
X if (objcts_1.oadv[prsvec_1.prso - 1] == play_1.winner) {
X goto L59200;
X }
X/* !YES, ON WINNER? */
XL59100:
X rspsub_(454, odo2);
X/* !NOT ACCESSIBLE. */
X return ret_val;
X
XL59200:
X if (prsvec_1.prsa == vindex_1.drinkw) {
X goto L59300;
X }
X/* !DRINK FOOD? */
X newsta_(prsvec_1.prso, 455, 0, 0, 0);
X/* !NO, IT DISAPPEARS. */
X return ret_val;
X
XL59300:
X rspeak_(456);
X/* !YES, JOKE. */
X return ret_val;
X
XL59400:
X if (! ((objcts_1.oflag1[prsvec_1.prso - 1] & DRNKBT) != 0)) {
X goto L59600;
X }
X/* !DRINKABLE? */
X if (objcts_1.ocan[prsvec_1.prso - 1] == 0) {
X goto L59100;
X }
X/* !YES, IN SOMETHING? */
X if (objcts_1.oadv[objcts_1.ocan[prsvec_1.prso - 1] - 1] != play_1.winner)
X {
X goto L59100;
X }
X if ((objcts_1.oflag2[objcts_1.ocan[prsvec_1.prso - 1] - 1] &
X OPENBT) != 0) {
X goto L59500;
X }
X/* !CONT OPEN? */
X rspeak_(457);
X/* !NO, JOKE. */
X return ret_val;
X
XL59500:
X newsta_(prsvec_1.prso, 458, 0, 0, 0);
X/* !GONE. */
X return ret_val;
X
XL59600:
X rspsub_(453, odo2);
X/* !NOT FOOD OR DRINK. */
X return ret_val;
X
X/* V137-- BURN. COMPLICATED. */
X
XL60000:
X if ((objcts_1.oflag1[prsvec_1.prsi - 1] & FLAMBT +
X LITEBT + ONBT) != FLAMBT +
X LITEBT + ONBT) {
X goto L60400;
X }
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if (objcts_1.ocan[prsvec_1.prso - 1] != oindex_1.recep) {
X goto L60050;
X }
X/* !BALLOON? */
X if (oappli_(objcts_1.oactio[oindex_1.ballo - 1], 0)) {
X return ret_val;
X }
X/* !DID IT HANDLE? */
XL60050:
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & BURNBT) == 0) {
X goto L60300;
X }
X if (objcts_1.oadv[prsvec_1.prso - 1] != play_1.winner) {
X goto L60100;
X }
X/* !CARRYING IT? */
X rspsub_(459, odo2);
X jigsup_(460);
X return ret_val;
X
XL60100:
X j = objcts_1.ocan[prsvec_1.prso - 1];
X/* !GET CONTAINER. */
X if (qhere_(prsvec_1.prso, play_1.here) || av != 0 && j == av) {
X goto L60200;
X }
X if (j == 0) {
X goto L60150;
X }
X/* !INSIDE? */
X if (! ((objcts_1.oflag2[j - 1] & OPENBT) != 0)) {
X goto L60150;
X }
X/* !OPEN? */
X if (qhere_(j, play_1.here) || av != 0 && objcts_1.ocan[j - 1] == av) {
X goto L60200;
X }
XL60150:
X rspeak_(461);
X/* !CANT REACH IT. */
X return ret_val;
X
XL60200:
X rspsub_(462, odo2);
X/* !BURN IT. */
X newsta_(prsvec_1.prso, 0, 0, 0, 0);
X return ret_val;
X
XL60300:
X rspsub_(463, odo2);
X/* !CANT BURN IT. */
X return ret_val;
X
XL60400:
X rspsub_(301, odi2);
X/* !CANT BURN IT WITH THAT. */
X return ret_val;
X/* VAPPLI, PAGE 9 */
X
X/* V138-- MUNG. GO TO COMMON ATTACK CODE. */
X
XL63000:
X i = 466;
X/* !CHOOSE PHRASE. */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT) != 0) {
X goto L66100;
X }
X if (! objact_()) {
X rspsb2_(466, odo2, rmk);
X }
X return ret_val;
X
X/* V139-- KILL. GO TO COMMON ATTACK CODE. */
X
XL64000:
X i = 467;
X/* !CHOOSE PHRASE. */
X goto L66100;
X
X/* V140-- SWING. INVERT OBJECTS, FALL THRU TO ATTACK. */
X
XL65000:
X j = prsvec_1.prso;
X/* !INVERT. */
X prsvec_1.prso = prsvec_1.prsi;
X prsvec_1.prsi = j;
X j = odo2;
X odo2 = odi2;
X odi2 = j;
X prsvec_1.prsa = vindex_1.attacw;
X/* !FOR OBJACT. */
X
X/* V141-- ATTACK. FALL THRU TO ATTACK CODE. */
X
XL66000:
X i = 468;
X
X/* COMMON MUNG/ATTACK/SWING/KILL CODE. */
X
XL66100:
X if (prsvec_1.prso != 0) {
X goto L66200;
X }
X/* !ANYTHING? */
X rspeak_(469);
X/* !NO, JOKE. */
X return ret_val;
X
XL66200:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT) != 0) {
X goto L66300;
X }
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & VICTBT) == 0) {
X rspsub_(470, odo2);
X }
X return ret_val;
X
XL66300:
X j = 471;
X/* !ASSUME NO WEAPON. */
X if (prsvec_1.prsi == 0) {
X goto L66500;
X }
X if ((objcts_1.oflag2[prsvec_1.prsi - 1] & WEAPBT) == 0) {
X goto L66400;
X }
X melee = 1;
X/* !ASSUME SWORD. */
X if (prsvec_1.prsi != oindex_1.sword) {
X melee = 2;
X }
X/* !MUST BE KNIFE. */
X i = blow_(aindex_1.player, prsvec_1.prso, melee, 1, 0);
X/* !STRIKE BLOW. */
X return ret_val;
X
XL66400:
X j = 472;
X/* !NOT A WEAPON. */
XL66500:
X rspsb2_(i, odo2, j);
X/* !JOKE. */
X return ret_val;
X/* VAPPLI, PAGE 10 */
X
X/* V142-- WALK. PROCESSED EXTERNALLY. */
X
XL68000:
X ret_val = walk_();
X return ret_val;
X
X/* V143-- TELL. PROCESSED IN GAME. */
X
XL69000:
X rspeak_(603);
X return ret_val;
X
X/* V144-- PUT. PROCESSED EXTERNALLY. */
X
XL70000:
X ret_val = put_(1);
X return ret_val;
X
X/* V145,V146,V147,V148-- DROP/GIVE/POUR/THROW */
X
XL71000:
XL72000:
XL73000:
XL74000:
X ret_val = drop_(0);
X return ret_val;
X
X/* V149-- SAVE */
X
XL77000:
X if ((rooms_1.rflag[rindex_1.tstrs - 1] & RSEEN) == 0) {
X goto L77100;
X }
X rspeak_(828);
X/* !NO SAVES IN ENDGAME. */
X return ret_val;
X
XL77100:
X savegm_();
X return ret_val;
X
X/* V150-- RESTORE */
X
XL78000:
X if ((rooms_1.rflag[rindex_1.tstrs - 1] & RSEEN) == 0) {
X goto L78100;
X }
X rspeak_(829);
X/* !NO RESTORES IN ENDGAME. */
X return ret_val;
X
XL78100:
X rstrgm_();
X return ret_val;
X/* VAPPLI, PAGE 11 */
X
X/* V151-- HELLO */
X
XL80000:
X if (prsvec_1.prso != 0) {
X goto L80100;
X }
X/* !ANY OBJ? */
X i__1 = rnd_(4) + 346;
X rspeak_(i__1);
X/* !NO, VANILLA HELLO. */
X return ret_val;
X
XL80100:
X if (prsvec_1.prso != oindex_1.aviat) {
X goto L80200;
X }
X/* !HELLO AVIATOR? */
X rspeak_(350);
X/* !NOTHING HAPPENS. */
X return ret_val;
X
XL80200:
X if (prsvec_1.prso != oindex_1.sailo) {
X goto L80300;
X }
X/* !HELLO SAILOR? */
X ++state_1.hs;
X/* !COUNT. */
X i = 351;
X/* !GIVE NORMAL OR */
X if (state_1.hs % 10 == 0) {
X i = 352;
X }
X/* !RANDOM MESSAGE. */
X if (state_1.hs % 20 == 0) {
X i = 353;
X }
X rspeak_(i);
X/* !SPEAK UP. */
X return ret_val;
X
XL80300:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = 354;
X/* !ASSUME VILLAIN. */
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT +
X ACTRBT) == 0) {
X i = 355;
X }
X rspsub_(i, odo2);
X/* !HELLO THERE */
X/* ! */
X return ret_val;
X
X/* V152-- LOOK INTO */
X
XL81000:
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & DOORBT) == 0) {
X goto L81300;
X }
X if (! ((objcts_1.oflag2[prsvec_1.prso - 1] & OPENBT) != 0)) {
X goto L81200;
X }
X/* !OPEN? */
X rspsub_(628, odo2);
X/* !OPEN DOOR- UNINTERESTING. */
X return ret_val;
X
XL81200:
X rspsub_(525, odo2);
X/* !CLOSED DOOR- CANT SEE. */
X return ret_val;
X
XL81300:
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & VEHBT) != 0) {
X goto L81400;
X }
X if ((objcts_1.oflag2[prsvec_1.prso - 1] & OPENBT) != 0 || (
X objcts_1.oflag1[prsvec_1.prso - 1] & TRANBT) != 0) {
X goto L81400;
X }
X if ((objcts_1.oflag1[prsvec_1.prso - 1] & CONTBT) != 0) {
X goto L81200;
X }
X rspsub_(630, odo2);
X/* !CANT LOOK INSIDE. */
X return ret_val;
X
XL81400:
X if (qempty_(prsvec_1.prso)) {
X goto L81500;
X }
X/* !VEH OR SEE IN. EMPTY? */
X princo_(prsvec_1.prso, 573);
X/* !NO, LIST CONTENTS. */
X return ret_val;
X
XL81500:
X rspsub_(629, odo2);
X/* !EMPTY. */
X return ret_val;
X
X/* V153-- LOOK UNDER */
X
XL82000:
X if (! objact_()) {
X rspeak_(631);
X }
X/* !OBJECT HANDLE? */
X return ret_val;
X/* VAPPLI, PAGE 12 */
X
X/* V154-- PUMP */
X
XL83000:
X if (objcts_1.oroom[oindex_1.pump - 1] == play_1.here || objcts_1.oadv[
X oindex_1.pump - 1] == play_1.winner) {
X goto L83100;
X }
X rspeak_(632);
X/* !NO. */
X return ret_val;
X
XL83100:
X prsvec_1.prsi = oindex_1.pump;
X/* !BECOMES INFLATE */
X prsvec_1.prsa = vindex_1.inflaw;
X/* !X WITH PUMP. */
X goto L22000;
X/* !DONE. */
X
X/* V155-- WIND */
X
XL84000:
X if (! objact_()) {
X rspsub_(634, odo2);
X }
X/* !OBJ HANDLE? */
X return ret_val;
X
X/* V156-- CLIMB */
X/* V157-- CLIMB UP */
X/* V158-- CLIMB DOWN */
X
XL85000:
XL86000:
XL87000:
X i = xsrch_1.xup;
X/* !ASSUME UP. */
X if (prsvec_1.prsa == vindex_1.clmbdw) {
X i = xsrch_1.xdown;
X }
X/* !UNLESS CLIMB DN. */
X f = (objcts_1.oflag2[prsvec_1.prso - 1] & CLMBBT) != 0;
X if (f && findxt_(i, play_1.here)) {
X goto L87500;
X }
X/* !ANYTHING TO CLIMB? */
X if (objact_()) {
X return ret_val;
X }
X/* !OBJ HANDLE? */
X i = 657;
X if (f) {
X i = 524;
X }
X/* !VARIETY OF JOKES. */
X if (! f && (prsvec_1.prso == oindex_1.wall || prsvec_1.prso >=
X oindex_1.wnort && prsvec_1.prso <= oindex_1.wnort + 3)) {
X i = 656;
X }
X rspeak_(i);
X/* !JOKE. */
X return ret_val;
X
XL87500:
X prsvec_1.prsa = vindex_1.walkw;
X/* !WALK */
X prsvec_1.prso = i;
X/* !IN SPECIFIED DIR. */
X ret_val = walk_();
X return ret_val;
X
X} /* vappli_ */
X
X/* CLOCKD- CLOCK DEMON FOR INTERMOVE CLOCK EVENTS */
X
X/* DECLARATIONS */
X
Xlogical clockd_()
X{
X /* System generated locals */
X integer i__1;
X logical ret_val;
X
X /* Local variables */
X integer i;
X
X ret_val = FALSE_;
X/* !ASSUME NO ACTION. */
X i__1 = cevent_1.clnt;
X for (i = 1; i <= i__1; ++i) {
X if (! cevent_1.cflag[i - 1] || cevent_1.ctick[i - 1] == 0) {
X goto L100;
X }
X if (cevent_1.ctick[i - 1] < 0) {
X goto L50;
X }
X/* !PERMANENT ENTRY? */
X --cevent_1.ctick[i - 1];
X if (cevent_1.ctick[i - 1] != 0) {
X goto L100;
X }
X/* !TIMER EXPIRED? */
XL50:
X ret_val = TRUE_;
X cevapp_(cevent_1.cactio[i - 1]);
X/* !DO ACTION. */
XL100:
X ;
X }
X return ret_val;
X
X} /* clockd_ */
END_OF_FILE
if test 25958 -ne `wc -c <'verbs.c'`; then
echo shar: \"'verbs.c'\" unpacked with wrong size!
fi
# end of 'verbs.c'
fi
echo shar: End of archive 6 \(of 12\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 12 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0