123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /* BALLOP- BALLOON FUNCTION */
- /*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/
- /* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */
- /* WRITTEN BY R. M. SUPNIK */
- #include "funcs.h"
- #include "vars.h"
- logical ballop_(arg)
- integer arg;
- {
- /* System generated locals */
- logical ret_val;
- ret_val = TRUE_;
- /* !ASSUME WINS. */
- if (arg != 2) {
- goto L200;
- }
- /* !READOUT? */
- if (prsvec_1.prsa != vindex_1.lookw) {
- goto L10;
- }
- /* !ONLY PROCESS LOOK. */
- if (findex_1.binff != 0) {
- goto L50;
- }
- /* !INFLATED? */
- rspeak_(543);
- /* !NO. */
- goto L100;
- L50:
- rspsub_(544, objcts_1.odesc2[findex_1.binff - 1]);
- /* !YES. */
- L100:
- if (findex_1.btief != 0) {
- rspeak_(545);
- }
- /* !HOOKED? */
- return ret_val;
- L200:
- if (arg != 1) {
- goto L500;
- }
- /* !READIN? */
- if (prsvec_1.prsa != vindex_1.walkw) {
- goto L300;
- }
- /* !WALK? */
- if (findxt_(prsvec_1.prso, play_1.here)) {
- goto L250;
- }
- /* !VALID EXIT? */
- rspeak_(546);
- /* !NO, JOKE. */
- return ret_val;
- L250:
- if (findex_1.btief == 0) {
- goto L275;
- }
- /* !TIED UP? */
- rspeak_(547);
- /* !YES, JOKE. */
- return ret_val;
- L275:
- if (curxt_1.xtype != xpars_1.xnorm) {
- goto L10;
- }
- /* !NORMAL EXIT? */
- if ((rooms_1.rflag[curxt_1.xroom1 - 1] & RMUNG) == 0) {
- state_1.bloc = curxt_1.xroom1;
- }
- L10:
- ret_val = FALSE_;
- return ret_val;
- L300:
- if (prsvec_1.prsa != vindex_1.takew || prsvec_1.prso != findex_1.binff) {
- goto L350;
- }
- rspsub_(548, objcts_1.odesc2[findex_1.binff - 1]);
- /* !RECEP CONT TOO HOT. */
- return ret_val;
- L350:
- if (prsvec_1.prsa != vindex_1.putw || prsvec_1.prsi != oindex_1.recep ||
- qempty_(oindex_1.recep)) {
- goto L10;
- }
- rspeak_(549);
- return ret_val;
- L500:
- if (prsvec_1.prsa != vindex_1.unboaw || (rooms_1.rflag[play_1.here - 1] &
- RLAND) == 0) {
- goto L600;
- }
- if (findex_1.binff != 0) {
- cevent_1.ctick[cindex_1.cevbal - 1] = 3;
- }
- /* !HE GOT OUT, START BALLOON. */
- goto L10;
- L600:
- if (prsvec_1.prsa != vindex_1.burnw || objcts_1.ocan[prsvec_1.prso - 1] !=
- oindex_1.recep) {
- goto L700;
- }
- rspsub_(550, objcts_1.odesc2[prsvec_1.prso - 1]);
- /* !LIGHT FIRE IN RECEP. */
- cevent_1.ctick[cindex_1.cevbrn - 1] = objcts_1.osize[prsvec_1.prso - 1] *
- 20;
- objcts_1.oflag1[prsvec_1.prso - 1] |= ONBT + FLAMBT +
- LITEBT & ~ (TAKEBT + READBT);
- if (findex_1.binff != 0) {
- return ret_val;
- }
- if (! findex_1.blabf) {
- newsta_(oindex_1.blabe, 0, 0, oindex_1.ballo, 0);
- }
- findex_1.blabf = TRUE_;
- findex_1.binff = prsvec_1.prso;
- cevent_1.ctick[cindex_1.cevbal - 1] = 3;
- rspeak_(551);
- return ret_val;
- L700:
- if (prsvec_1.prsa == vindex_1.unboaw && findex_1.binff != 0 && (
- rooms_1.rflag[play_1.here - 1] & RLAND) != 0) {
- cevent_1.ctick[cindex_1.cevbal - 1] = 3;
- }
- goto L10;
- } /* ballop_ */
|