games-request@tekred.TEK.COM (07/24/87)
Submitted by: "J.D. McDonald " <mcdonald@uxe.cso.uiuc.edu> Comp.sources.games: Volume 1, Issue 104 Archive-name: world/Part05 #! /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 5 (of 7)." # Contents: demons.c vtext.dat.ac world.c # Wrapped by billr@tekred on Thu Jul 23 17:17:59 1987 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f demons.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"demons.c\" else echo shar: Extracting \"demons.c\" \(9434 characters\) sed "s/^X//" >demons.c <<'END_OF_demons.c' X#include "parame.inc" X#include "variab.h" X#include "arrays.h" X X/* World C Version 1.00 copyright 1987 J.D.McDonald X Use as you like for non-commercial purposes, but please X leave this note, and document any changes you make as yours */ X Xmdemon() X{ X X int qtim, z, i, kkwr; X /* X * subroutine to care for comings and goings of martians X */ X X qtim = (turns % 100) < 75; X /* X * the player must have entered mars once in the day and once at night, X * and then wait 4 turns before they come close X */ X X if (martim < 7) { X if (loc == 27 || loc == 50 || loc == 41) { X oldloc = 0; X speak(152); X } X if (loc >= 26 && loc <= 50) { X if (qtim && (martim == 0 || martim == 2)) X martim |= 1; X if (!qtim && (martim == 0 || martim == 1)) X martim |= 2; X if (martim >= 3) X martim += 1; X } X } X if (qtim) X return; X /* X * they will appear at once if he falls in their hockey rink X */ X X if (loc == 38 && !marflg[5]) { X marflg[5] = 1; X martim = 7; X speak(169); X return; X } X for (i = 0; i < 5; i++) X marflg[i] = 0; X z = (turns % 100); X /* wont come close if martim < 7 */ X X if (martim < 7) { X if (loc != 51) X speak(141); X goto lab60; X } X if (z > 75 && z < 99) X marflg[4] = 1; X if (z > 76 && z < 98) X marflg[0] = 1; X if (z > 78 && z < 95) X marflg[3] = 1; X if (z > 78 && z < 96) X marflg[2] = 1; X if (z > 77 && z < 97 && obloc[HPUCK] == 38) X marflg[1] = 1; X /* announce the goings on of the martians */ X X if (marflg[5] && z == 75 && loc != 38) X speak(154); X if (marflg[5] && z == 99 && loc != 38) X speak(155); X /* the first time they come close */ X X if (!marflg[5] && loc < 51) { X marflg[5] = 1; X speak(142); X } X if (loc == 28) { X if (marflg[3]) X speak(143); X } else if (loc >= 43 && loc <= 45) { X if (marflg[4]) X speak(144); X } X /* at home */ X X else if (loc == 42 || loc == 30) { X if (marflg[0]) { X if (!marflg[6] || pct(20)) { X speak(145); X marflg[6] = 1; X } else X speak(146); X } X } X /* the hockey game */ X X else if (loc == 29 || (loc >= 31 && loc <= 38)) { X if (marflg[1]) { X if (!marflg[7] || pct(20)) { X speak(147); X marflg[7] = 1; X } else X speak(148); X } X } else if (loc == 40) { X if (marflg[2]) X speak(149); X } else; X if (((loc == 42 && marflg[0]) || (loc == 38)) && !deadf) { X /* oops! he ran inot one and got fried */ X X if (loc == 42) X speak(150); X if (loc == 38) { X if (marflg[1]) X speak(151); X else X speak(171); X for (i = 32; i <= 37; i++) X locdat[i] |= 16384; X } X vdead(); X oldlc2 = 0; X oldloc = 0; X } X /* move his belongings to the dump */ X Xlab60: X for (i = 1; i <= MOVMAX; i++) { X if (obloc[i] == loc || (obloc[i] == 48 && loc == 49) || obloc[i] < 27 || X obloc[i] > 50) X continue; X if (i == ZWIRE) { X if (obloc[i] == 1000 || wirelc[0] == 1000 || wirelc[5] X == 1000 || wirelc[0] == loc || wirelc[1] == loc X || wirelc[2] == loc || wirelc[3] == loc X || wirelc[4] == loc || wirelc[5] == loc) X continue; X obimpr[ZWIRE] = (obimpr[ZWIRE] & ~56) + 8; X /* ~56=177707 octal */ X X for (kkwr = 0; kkwr < 6; kkwr++) X wirelc[kkwr] = 0; X } X if (obloc[i] >= 27 && obloc[i] <= 50) X obloc[i] = 40; X if (i == HPUCK) X obloc[i] = 38; X if (i == ZDIAMO) { X obimpr[i] = (obimpr[i] & ~56) + 8; X obloc[i] = 49; X } X if (i == RBOULD) X obloc[i] = 27; X } X return; X} X Xwdemon() X{ X int i, n, i2, vloc; X /* X * take care of playing out and taking in the wire take it in X */ X X if (wirelc[5] == 1000) { X for (i = 1; i <= 4; i++) { X n = 5 - i; X if (wirelc[n] == oldloc && wirelc[n - 1] == loc) { X wirelc[n] = 1000; X speak(216); X if (wirelc[1] == 1000 && obloc[ZWIRE] == 1000 && wirelc[0] == loc) { X for (i2 = 0; i2 < 5; i2++) X wirelc[i2] = 0; X speak(219); X } X return; X } X } X if (wirelc[1] == 1000 && wirelc[0] == oldloc && obloc[ZWIRE] X == loc) { X wirelc[0] = 1000; X speak(216); X return; X } X /* play it out */ X X if (loc >= 32 && loc <= 38) { X speak(257); X if (oldloc == 31 || oldloc == 32) X vloc = 32; X else X vloc = 37; X for (i = 0; i < 6; i++) X if (wirelc[i] == 1000) X wirelc[i] = vloc; X return; X } X for (i = 0; i < 4; i++) { X if (wirelc[i] == oldloc && wirelc[i + 1] == 1000) { X wirelc[i + 1] = loc; X speak(217); X return; X } X } X if (wirelc[0] == 1000 && obloc[ZWIRE] == oldloc) { X wirelc[0] = loc; X speak(217); X return; X } X /* out of wire */ X X if (wirelc[4] == oldloc) { X speak(218); X wirelc[5] = wirelc[4]; X return; X } X } else; X} X X Xtimer(xloc) X int xloc; X{ X int bplce, cplce, gplce, iplce, objen, qq, i; X X /* prevent him from being outside the valley at sunset */ X X if (loc <= 3 && loc * 15 < turns) { X speak(255); X oldlc2 = oldloc; X oldloc = loc; X loc += 1; X } X /* X * daytim=1 if it is intrinsically light here (i.e. lights are always on X * or it is outside and the sun is up or he is carrying sphere or bead X */ X X if ((locdat[loc] & 17) != 0 || ((locdat[loc] & 8) != 0 X && (turns % 100) < 75) || obloc[GSPHER] == 1000 X || obloc[GSPHER] == loc || obloc[ZBEAD] == 1000 || X obloc[ZBEAD] == loc) X daytim = 1; X else X daytim = 0; X /* he is killed if on tower in daytime */ X X if (loc == 49 && daytim == 1 && !deadf) { X speak(166); X oldlc2 = 0; X oldloc = 0; X loc = 48; X vdead(); X } X /* announce rising and setting of both suns */ X X if ((locdat[loc] & 8) != 0) { X if (daytim == 0) X speak(124); X else if ((turns % 100) >= 72 && (turns % 100) < 75) X speak(125); X else if ((turns % 100) < 3 && turns > 4) X speak(126); X else; X } X /* X * check to see if he is not wearing shoes or boots if too long without X * them, he dies X */ X X if ((obloc[CSHOES] != 3000 && obloc[HBOOTS] != 3000) && X !deadf && (loc != 16 && loc < 153)) { X noshoe -= 1; X if (noshoe == 0) X speak(99); X else if (noshoe < -6 && pct(10 * (-6 - noshoe))) { X speak(100); X vdead(); X } X } X /* fish need water to live! */ X X if (obloc[DFISH] == 0) { X if (obloc[CFISH] != 16 && !(obloc[CFISH] == (2000 + PLBAG) X && (((obimpr[PLBAG] / 512) % 8) == 5))) { X fshlif -= 1; X if (fshlif == 0) { X obloc[DFISH] = obloc[CFISH]; X obloc[CFISH] = 0; X obimpr[CFISH] = 0; X obimpr[DFISH] = 137; X } X } X } X /* check on status of bug repellent */ X X if (obimpr[ZDEET] >= 4096) X obimpr[ZDEET] -= 4096; X /* check on radioactive exposure of film in camera */ X X itsher(ZBEAD, &bplce); X itsher(GSPHER, &gplce); X if (oextim < 8000) { X itsher(ICAMER, &iplce); X if (obloc[GSPHER] == obloc[ICAMER]) X oextim += 1; X else { X if (iplce != 0 && gplce != 0) X oextim += 1; X } X if (obloc[ZBEAD] == obloc[ICAMER]) X oextim += 7; X else { X if (iplce != 0 && bplce != 0) X oextim += 4; X } X } X /* check on radiation poisoning */ X X if (!deadf && bplce != 0 && obloc[ZBEAD] != 2000 + ZSINK) { X rdietm = (rdietm / 5) * 5; X rdietm += 5; X if (rdietm > 0 && (rdietm % 10) == 0) X speak(rdietm / 10 + 320); X } else { X rdietm -= 1; X if (rdietm <= 0) X rdietm = 0; X if (rdietm == 36) X speak(326); X if (rdietm == 24) X speak(327); X if (rdietm == 12) X speak(328); X } X /* check on changing of loc 89 */ X X if (easttm == 1) X speak(376); X if (easttm == 15) X speak(377); X if (easttm == 50) X speak(378); X if (easttm >= 1 && easttm <= 50) X easttm += 1; X if (!deadf) X eattim += 1; X if (eattim == 170) X speak(367); X if (eattim == 240) X speak(368); X if (eattim == 270) X speak(369); X if (eattim == 300) { X speak(384); X vdead(); X } X /* exposing the x-ray film */ X X itsher(ZCASSE, &cplce); X if (obloc[ZCASSE] == 2000 + ZRACK && obloc[ZBEAD] == 2000 + ZTRAY) { X objen = 0; X for (i = 0; i <= MOVMAX; i++) { X if (obloc[i] == ZENLAR + 2000) { X if (fimage != 0 && fimage != i) X filmst = 1; X qq = i; X objen += 1; X } X } X if (objen > 1) X filmst = 1; X if (objen == 0) X filmtm += 10; X if (objen >= 1) { X filmtm += 1; X fimage = qq; X } X } else if (obloc[ZBEAD] == obloc[ZCASSE] || (obloc[ZBEAD] != ZSINK X + 2000 && bplce != 0 && cplce != 0)) X filmtm += 1000; X else; X if (filmtm > 3000) X filmtm = 3000; X /* X * dispersing of the cloud from the seed we are using obimpr(zseed) as a X * clock; this is ok since it no longer exists ( o.e. obloc(zseed)=0 ) X * despite this being stupid X */ X X if (obloc[ZSEED] == 0 && obimpr[ZSEED] > 0) { X if ((loc == 99 || loc == 131) && obimpr[ZSEED] == 1) X speak(406); X obimpr[ZSEED] -= 1; X } X if (screef > 0) X screef -= 1; X /* the chase is on!!!! */ X X if (chaset != 0) { X if (adverb == QUICKL) X chaser += 1; X if (chaset <= 8) { X if (xloc == loc || loc == oldlc2 || loc == 174 || loc == 166) { X if (chaset != 1) { X speak(557); X vdead(); X } else X speak(554); X } else if (chaset >= 5 && chaser < 3) X speak(556); X else X speak(555); X } else if (chaset == 9) { X if (chaser >= 3) { X speak(558); X guardl = loc; X } else { X speak(557); X vdead(); X } X } else if ((chaset > 9 && chaset < 18) && loc == guardl) { X speak(563); X vdead(); X } else if (loc < 176 && chaset == 18) { X if (!(loc == 175 && (obimpr[BDOOR] & 2) != 0)) { X speak(560); X vdead(); X } X } X chaset += 1; X if (chaset == 19) X chaset = 0; X } X} END_OF_demons.c if test 9434 -ne `wc -c <demons.c`; then echo shar: \"demons.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f vtext.dat.ac -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"vtext.dat.ac\" else echo shar: Extracting \"vtext.dat.ac\" \(31391 characters\) sed "s/^X//" >vtext.dat.ac <<'END_OF_vtext.dat.ac' X2001 Steep trail X2002 Near top of the pass X2003 Top of the pass X2004 Branch in the trail X2005 East shore of the lake X2006 Gravel beach X2007 Forest X2008 Forest X2009 Forest X2010 Forest X2011 Forest X2012 Base of the spire X2013 Halfway up the spire X2014 Top of the spire X2015 Sandy beach X2016 Swimming at the coral beds X2017 North end of the lake X2018 Vein of minerals X2019 Southwest of a chasm X2020 Step-like rock strata X2021 Northeast of the chasm X2022 Bottom of a chasm X2023 Fern-filled ravine X2024 Beautiful waterfall X2025 Behind some horsetails X2026 Southwest of the Mars-like area X2027 Red rocks X2028 Red hill X2029 West of a deep bowl X2030 North of a small building X2031 Southwest of a deep bowl X2032 Southwest lip of the bowl X2033 South lip of the bowl X2034 Southeast lip of the bowl X2035 Northeast lip of the bowl X2036 North lip of the bowl X2037 Northwest lip of the bowl X2038 Center of the bowl X2039 South to west trail X2040 Dump X2041 Door leading into the ground X2042 Inside a small building X2043 West edge of town X2044 East edge of town X2045 South of town X2046 North-southwest trail X2047 South of a large building X2048 Bottom of a tower X2049 Top of the tower X2050 South of the Mars-jungle boundary X2051 Inside large Martian building X2052 Center of a ledge X2053 East end of the ledge X2054 West end of the ledge X2055 Precarious position X2056 Under an overhang X2057 West end of a ravine X2058 Northwest-southeast ridge X2059 Northeast-southwest path X2060 Leaf covered clearing X2061 Stone monument X2062 Forest, jungle, and green-air junction X2063 Open field X2064 Muddy jungle X2065 Jungle with rubbery trees X2066 Up a rubber tree X2067 Jungle path X2068 West of greenhouse X2069 Antenna site X2070 Greenhouse north X2071 Greenhouse center X2072 Greenhouse south X2073 Vegetable garden X2074 Fruit garden X2075 Top of spiral ramp X2076 Center of aviary roof X2077 Half way up ramp X2078 Aviary entrance X2079 Aviary center X2080 Half way up pole X2081 East of greenhouse X2082 Cacti X2083 Staircase top X2084 Staircase middle X2085 Staircase bottom X2086 Field of flowers X2087 Beehives X2088 Toolshed X2089 West of barrier X2090 (90 to 95 are never reached) X2091 X2092 X2093 X2094 X2095 X2096 Bottomless pit X2097 Bottom of pit X2098 Back of cave X2099 Sculptors' studio X2100 Artist's cavern X2101 Maze X2102 Maze X2103 Maze X2104 Maze X2105 Maze X2106 Maze X2107 Maze X2108 Maze X2109 Maze X2110 Maze X2111 Maze X2112 Maze X2113 Maze X2114 Maze X2115 Maze X2116 Maze X2117 Dark tunnel X2118 Mushroom farm X2119 Round tunnel X2120 Curving passage X2121 Wet cave X2122 Underground pool X2123 Underwater X2124 Dead end X2125 Dead end X2126 Tight squeeze X2127 Dead end X2128 Gold mine X2129 Damp crawlway X2130 Large hall X2131 Ferret home X2132 Ferret nursery X2133 East-west hall X2134 Metal chamber X2135 East end of hall X2136 North end of hall X2137 Hall X2138 Hall X2139 Hall junction X2140 Hall X2141 Hall X2142 South end of hall X2143 Darkroom X2144 Library X2145 Office X2146 Control room X2147 Chemical storage X2148 Electronic storage X2149 Storage room X2150 Tool room X2151 Mine Entrance X2152 Top of mine shaft X2153 Teleportation booth X2154 Center of great hall X2155 North wall of hall X2156 Northeast corner of hall X2157 East wall of hall X2158 Southeast corner of hall X2159 South wall of hall X2160 Southwest corner of hall X2161 West wall of hall X2162 Northwest corner of hall X2163 Hallway X2164 Hallway X2165 Large anteroom X2166 Giant ship X2167 Hallway X2168 Viewing room X2169 Outer office X2170 Secret corridor X2171 Office complex X2172 Hallway X2173 Airlock door X2174 Airlock X2175 Small ship in dock X2176 Orbiting Altair X2177 Orbiting Cygnus X2178 Orbiting Vega X2179 Orbiting Deneb X2180 Orbiting Auriga X2181 In ship on Cygnus X2182 Cygnan landing site X2183 Cygnan sea-shore X2184 In ship on Auriga X2185 Aurigan landing site X2186 Aurigan control center X2187 In ship on Deneb X2188 Deneb landing platform X2189 Doorway X2190 Sitting room X3001 Chrome key X4001 Dangling from the nest on a red string is a chrome key. X4002 There is a chrome key on a string here. X3002 Blue sapphire X4001 At the end of one vein is a huge blue sapphire! X4002 There is a huge blue sapphire here. X3003 Colorful fish X4001 Swimming blissfully around, eating the tiny polyps, is a large X4001 particularly colorful fish. X4002 There is a colorful fish here. X4003 It is a very colorful fish indeed, with long fins and a long X4003 snout, suitable for eating the tiny polyps. The zoologists at X4003 your camp might like to examine it. X3004 Dead fish X4001 There is a smelly dead fish here. X4002 It is now dead and beginning to decompose. You shouldn't have X4002 kept it out of the water so long. X3005 Knapsack X4001 There is a knapsack here. X4002 It is a large red canvas backpack, with lots of room and many X4002 pockets. You could easily carry many kilograms in it. X4003 The knapsack is empty. X4004 The knapsack contains: X3006 Red shirt X4001 Lying on the ground is a red shirt. X3007 Green shirt X4001 There is a dark green shirt here. X3008 Pair of heavy boots X4001 There is a pair of heavy boots here. X4002 They are for heavy duty hiking. X3009 Canvas shoes X4001 There is a pair of light canvas shoes here. X4002 They are for rock climbing. X3010 Blue pants X4001 Lying on the ground is a pair of dark blue pants. X3011 Tan pants X4001 There is a pair of light tan pants here. X3012 Butterfly net X4001 There is a butterfly net here. X4002 The net is empty. X4003 The net contains: X3013 Plastic tube X4001 There is something which looks like a tube of toothpaste here. X4002 The label says: "Berry's Bug Dope" X4002 Repels blackflies, bees, gnats and chiggers. Not for use X4002 against worms or sharks. Ingredients: DEET (C12H17NO) X4002 23%, active ingredient. Inert ingredients: X4002 Alcohol (C2H6O) 76%, perfume 1%. X4002 The tube is empty. X3014 Instant camera X4001 There is an instant-picture camera here. X4002 It is a space-patrol issue picture-in-a-minute camera, model X4002 AN/MQ 30045-9812-773R. It's so automatic that all you have to do X4002 is say "shoot" and it will take a picture of the most X4002 interesting object around. This little beauty cost the Patrol X4002 $6,345,003.00. X4002 (Just between you and me, it's a Polaroid Snapshooter X4002 worth $49.95.) X3015 Plastic bag X4001 There is a plastic bag here. X4002 It is a collecting bag, for preserving living specimens. It is X4002 watertight but can "breathe" so living animals can be carried X4002 in it. X4003 The plastic bag is empty. X4004 The plastic bag contains: X4005 The bag is full of water. X4006 The water-filled bag contains: X3016 Crablike fossil X4001 Sticking out of the rocks is a huge crablike fossil! X4002 There is a large fossil here. X3017 Photograph of tiny pterodactyls X4001 There is a photograph of some tiny pterodactyls here. X4002 There's nothing particularly interesting about the small X4002 critters themselves (except to see how sharp their teeth are), X4002 but, behind the horsetails seems to be a cave! X3018 Photograph of Martians X4001 There is a photograph of some "Martians" here. X4002 It's a photo of those odd energy creatures. The scene is what X4002 must be a bar. One of them is getting a "charge" from an odd X4002 electrical device. X4003 The photo is of those odd electrical "Martians" playing their X4003 variant of hockey. X3019 Huge diamond X4001 One of the diamonds is loose. X4002 There is a huge diamond here. X3020 Hockey puck X4001 Lying on the ground is a hockey puck. X4002 It look like an ordinary hockey puck, about 10 centimeters in X4002 diameter. Hmmmmmmmmmmm... It seems, however, to be metallic X4002 rather than the usual plastic. It is bright and silvery. X4002 Closer scrutiny shows that it is SOLID PLATINUM! X3021 Red boulder X4001 Lying on the ground is barely liftable boulder. X3022 Green moss X4001 Lying on the ground is a large piece of soft green moss. X4002 Moss is moss is moss. It's a beautiful dark green and very X4002 soft and squishy. X3023 Glass plate X4001 A large piece of glass is lying on the ground. X4002 It's a plate of glass, about 80 centimeters in diameter, and one X4002 centimeter thick, apparently cut out of a larger piece by some X4002 inept glasscutter. It's very sturdy. X3024 Piece of wire X4001 Lying on the ground is a long piece of wire. X4002 It's very heavily insulated, except for the very ends, X4002 which are stripped clean. X4003 The wire is attached to the tower. X4004 The wire is tied to the knob in the stool. X3025 Glowing sphere X4001 Lying on the ground is a glowing sphere. X4002 The sphere is about ten centimeters in diameter. It is hollow, X4002 with rather thick walls. Inside is a smaller sphere, about one X4002 centimeter in diameter. The glow seems to emanate from the X4002 whole inner wall it, but is brighter near where the small sphere X4002 rests. It is extremely heavy for its size. X3026 Gooey latex X4001 Flowing from the bark of the tree is a large quantity of gooey X4001 latex. It flows down the tree making a rubbery coating. If you X4001 had a bucket you could collect a large quantity. X4002 There is a puddle of congealed latex here. X4003 A sticky layer of rubber covers the pole. X4004 It is a mildly viscous, very sticky liquid, with a faint X4004 turpentine-like odor. If spread in a thin layer on something X4004 it soon congeals into a smooth, pliable, and only faintly sticky X4004 coating. X4005 It seems to have congealed into a solid mass. X3027 Damaged cable X4001 There is a damaged microwave cable here. X4002 It is a green cable about one meter long with connectors on each X4002 end. The middle has been chewed almost through by a rodent. X3028 Good cable X4001 There is a good microwave cable here. X4002 It is a green cable about one meter long with connectors on X4002 each end. It is in good condition. X3029 Beautiful orchid X4001 Sitting on the bench is a potted orchid. X4002 There is a beautiful orchid here. X4003 It is violet, white and magenta, about 20 cm across, and a X4003 striking example of the evolutionary similarity of this planet X4003 and the earth. X3030 Venus flytrap X4001 Sitting on the bench is a potted Venus flytrap plant. X4002 There is a Venus flytrap here. X4003 It is green and nasty. It is obviously carnivorous, although X4003 the resemblance to it's earthly namesake is tenuous. X3031 Large cassette X4001 Lying on the ground is a large cassette for film. X4002 It is about 30 centimeters square and 1 cm thick. An indicator X4002 shows that it is properly loaded with film. X3032 Overexposed photograph X4001 There is an overexposed photograph here. X4002 Something, probably radioactive, has caused this photo to be X4002 so overexposed as to be unusable. X3033 Tomato X4001 There is a tomato here. X4002 It looks like a delicious red tomato. X3034 Lettuce X4001 There is a head of lettuce here. X4002 Lettuce is lettuce. It is not very nutritious. X3035 Cabbage X4001 There is a head of cabbage here. X4002 Cabbage is cabbage. X3036 Strawberry X4001 There is a giant strawberry here. X4002 It is 10 centimeters across and red, like a strawberry. X3037 Grapes X4001 A large bunch of grapes grows on a vine here. X4002 The is a bunch of grapes here. X4003 They are green and look good enough to eat. X3038 Sunflower seed X4001 Growing on one of the plants is a full-grown seed. X4002 There is a large sunflower seed here. X4003 It is a black seed with a metallic sheen, about 10 cm across. X4003 It is shaped like a large peach pit, with deep grooves in the X4003 sides. X3039 Bucket X4001 There is a bucket here. X4002 The bucket is full of water. X4003 The bucket is empty X4004 The bucket contains: X3040 Pitchfork X4001 There is a pitchfork here. X3041 Shovel X4001 There is a shovel here. X3042 Robot X4001 There is a robot here. X4002 There is a slightly corroded robot here. X4003 The robot is about one and a half meters tall. It is almost X4003 spherical, sitting on four lightly sprung wheels. On top is X4003 what looks like a car antenna. Beneath that is a rotating TV X4003 camera. It has two arms, one of which is a rather delicate- X4003 looking clasping device. The other is a swivel-mounted hose X4003 arrangement obviously designed for it's primary purpose of X4003 watering plants. In the control section beneath the TV eye are X4003 a microphone and a speaker. X4004 The robot is empty-handed. X4005 The robot holds: X3043 Statue X4001 There is a small statue here X4002 It is a carving of a ferret. The ferret is holding a small star. X4002 It must be some sort of religious object. X3044 Mushroom X4001 There is a huge mushroom here. X3045 Gold nugget X4001 Lying on the ground is a large nugget of gold. X3046 Photograph of wall paintings. X4001 There is a photograph of some wall paintings here. X4002 You recognize the paintings made be the ferret-artist. X3047 Photograph of ferret family X4001 There is a photo of some ferrets here. X4002 It is a typical boring family photo, not some artistic wonder. X4002 What more did you expect? X3048 Black cat X4001 Sitting on the platform is a very unhappy black cat. X4002 There is a large black cat purring contentedly here. X3049 Container of DEET X4001 There is a supply of DEET here. X4002 It is a slightly viscous, colorless, slightly sweet liquid. X3050 Container of nvglo X4001 There is a supply of nvglo here. X4002 It is a pale pink powder. It's dust makes you sneeze. X3051 Container of sbkl X4001 There is a supply of sbkl here. X4002 It consists of large white crystals. X3052 "Terran" cartridge X4001 There is a plug-in cartridge marked "Gviizm-Terran" here. X4002 It looks like it would plug into a computer. X3053 Knife X4001 There is a knife here. X3054 Hammer X4001 There is a hammer here. X3055 Screwdriver X4001 There is a screwdriver here. X3056 "Cygnan" cartridge X4001 There is a plug-in cartridge marked "Xbtmzm-Cygnan" here. X4002 It looks like it would plug into a computer. X3057 Glowing bead X4001 There is a glowing glass bead here. X4002 It is about a centimeter in diameter, glowing brightly X4002 and quite hot. X3058 Silicon "Insect" X4001 Basking in the heat of the fire is a tiny silicon insect. X4002 There is a tiny silicon insect here. X4003 It looks like a small metallic grasshopper. The body is made X4003 of a gray semi-metallic substance which looks like silicon. X4003 The wings are a transparent red, as if made of some zinc or X4003 arsenic mineral. The eyes are bright iridescent blue-green. X4003 The thing is obviously a bit cold away from the fiery pit, X4003 but not in severe distress. The whole effect is as if some piece X4003 of precious jewelry had come to life. X3059 Piece of Xray film X4001 There is a piece of used xray film here. X4002 The xray film contains no useful image. X4003 The xray film, though not well exposed, contains the image of a X4004 The xray film, though showing an image, is all jumbled up and X4004 unusable. X4005 The xray film appears to have been improperly processed. X4005 Perhaps you didn't get the chemicals in the proper places. X3060 Magnesium box X4001 There is a magnesium box here. X4002 It is a medium sized lock-box. The lock mechanism consists of X4002 a left dial and a right dial, each of which reads from 0 to 999. X4003 The box is empty. X4004 The box contains: X3061 Good disc X4001 There is a good silicon disc here. X4002 It is a round piece of silicon, with gold contact pads around X4002 the edge. It might be some sort of computer memory chip. X4002 However, due to the presence of some sort of plastic coating X4002 appearing in places on it, it clearly is not fully processed. X3062 Broken disc X4001 There is a broken silicon disc here. X4002 It is a round piece of silicon, with gold contact pads around X4002 the edge. It might be some sort of computer memory chip. X4002 It looks ready to use, except that a small piece is broken X4002 off of one corner. X3063 Violet crystal X4001 Lying on the ground is a beautiful large violet crystal. X4002 It is a large crystal, very light for its size, with a pale X4002 violet hue. It is probably spodumene, a mineral valuable for X4002 its content of lithium, which is used in your ship's drive. X3064 Chocolate egg X4001 Sitting in the doll house is a chocolate egg. X4002 There is a chocolate egg here. X3065 Silver coin X4001 There is a silver coin here. X4002 The coin has a likeness of a reptile on one side and the X4002 notation &100 on the other. X3066 Brass coin X4001 There is a brass coin here. X4002 It is marked &50. X3067 Nickel coin X4001 There is a nickel coin here. X4002 It is marked &25. X3068 Copper coin X4001 There is a copper coin here. X4002 It is marked &75. X3069 Platinum coin X4001 There is a platinum coin here. X4002 It is marked &300. X3070 Map X4001 There is a map here. X4002 The map is a star map, showing the coordinates of the stars in X4002 the vicinity. Some stars are described in script which you X4002 cannot read. X4003 This appears to be a souvenir map of the galaxy. Among prominent X4003 locations are the following: X4003 Location Right ascension Declination X4003 Altair 0556 2331 X4003 Cygnus 2445 4293 X4003 Vega 7552 2204 X4003 Deneb 1105 6339 X4003 Auriga 3111 3325 X3071 Red ball X4001 There is a small red ball here. X3072 Newspaper X4001 There is a newspaper here. X4002 The writing is unintelligible. X4003 A banner at the top of the paper says "EXTRA". X4003 A subtitle says "Teleporter to Test Site #6 Reactivated". X4003 The gist of the article is that the teleportation link to X4003 the planet known as Test Site #6, which recently failed, X4003 causing district administrator Glathryx to arrive at the X4003 space station minus his third and fourth leg sets, and then X4003 became totally inoperative, has come back in operation. X4003 It seems that an intruder into the test site is suspected X4003 of causing these recent events. All persons are requested X4003 to be on the lookout for at strange alien, whose description X4003 more or less fits you. X3073 Yellow rod X4001 There is a yellow rod here. X3074 Written note X4001 There is a piece of paper with a note on it here. X4002 The note is unintelligible. X4003 The note is partly obliterated by coffee stains, but you can X4003 just make out X4003 Do it twice X4003 Door combinations .... X4003 Small ship 99 ?? ?? X5001 Volcanic spire X4001 %%%% X4002 The spire, although steep, has many small rock flakes X4002 on which a person could stand if he had the right kind of shoes. X4003 Why not try to take a mountain. It's just as easy. X5002 Tiny pterodactyls X4001 They are rather cute but nasty creatures, with greenish-gray X4001 skin, venomous red eyes and long razorlike tails. X4002 That's not wise. They are vicious creatures and would bite you X4002 The bite of most animals here is fatal. X5003 Ceramic stool X4001 As you reach over to look at the stool, a spark jumps out from X4001 the knob in the center and shocks you. X4002 It's too heavy to lift. X5004 Metal knob X4001 As you get near the knob it gives you a painful but harmless X4001 electrical shock. X4002 The knob is permanently attached to its base, which is attached X4002 forever to the ground. X5005 Round window X4001 The window is about 1 meter in diameter, with plate glass. X4002 The window in the building seems to have been vandalized. X4003 The glass is quite permanently set in its frame. X5006 Round door X4001 In the front of the building is a round door which is closed. X4002 In the front of the building is a round door which is open. X4003 In the center of the door is a small metal dimple. X4004 It is attached to unreachable and unbreakable hinges. X5007 Tower X4001 X4002 Have you eaten a hallucinogenic drug? X5008 Metal dimple X4001 X4002 Silly! X5009 Stone cube X4001 The inscription on the monument reads: X4001 (translated into English) X4001 X4001 Site of first landing party X4001 Year 21007 X4001 X4002 If you wish me to give you a hernia, please say so directly. X5010 Horsetails X4001 Horsetails are primitive plants, which live today on earth X4001 in wet cool forests. Today they are rather small, but X4001 millions of years ago there were ones several meters tall. X4001 On this planet the large ones are still common. Here they X4001 form a line to the sides of the waterfall, where the spray X4001 keeps them wet. The pterodactyls seem to live somewhere X4001 behind them. X4002 Horsetails are used only to scour pans, which you don't have. X5011 Metal door X4001 The door is closed. X4002 The door is open. X4003 Why would you wish to carry that around? X5012 Glass door X4001 The door is closed. X4002 The door is open. X4003 You can't take that. It's to big to get anywhere. X5013 Rabbit hole X4001 In the ground is a small hole, probably the entrance to a X4001 rabbit warren. X4002 In the ground is the gaping entrance of a bottomless pit. X4003 A hole is the absence of something. You can't take air. X5014 Louver X4001 Someone has ransacked the louver. A gaping hole remains. X4002 Why bother? X5015 Grape vines X4001 Growing here in great profusion are grape vines. X4002 There are some shriveled-up grape vines here. X4003 Useless. Useless. X5016 Slot X4001 The slot is empty. X4002 The slot contains: X4003 How can you take that, stupid? X5017 Square button X4001 Silly! X5018 Square button X4001 Not bloody likely. X5019 Round button X4001 Not until you reach Nirvana. X5020 Hexagonal button X4001 You take the little plastic cover off the button, but X4001 the underlying mechanism still works. X5021 Video screen X4001 The video screen is blank. X4002 The video screen shows the view taken by the robot's camera. X4003 It is permanently mounted on the wall. X5022 Sink X4001 The sink is empty. X4002 The sink contains: X5023 Microwave antenna X4001 The antenna is an ordinary satellite dish. It is 5 meters in X4001 diameter, white, and has a horn collector attached to the base X4001 by a cable. The cable seems to have been damaged. X4002 The antenna is an ordinary satellite dish. It is 5 meters in X4002 diameter, white, and has a horn collector attached to the base X4002 by a cable. The cable is in working order. X4003 The antenna is an ordinary satellite dish. The feed cable is X4003 missing. X4004 It weighs 4 tons! X5024 Enlarger X4001 Nothing is sitting on the enlarger base X4002 Sitting on the enlarger is: X4003 It is bolted to the wall. X5025 Rack X4001 It has vertical partitions suitable for holding things like film X4001 cassettes in a vertical position. X4002 The rack is empty. X4003 The rack contains: X4004 It is attached to the bench. X5026 Tray. X4001 The tray is empty. X4002 The tray contains: X4003 It is a molded part of the bench. X5027 Hopper X4001 The hopper is empty. X4002 The hopper contains: X4003 It can't me moved. X5028 Left funnel X4001 Silly! X5029 Middle funnel X4001 You must be suffering from a mind-scrambling drug. X5030 Right funnel X4001 That's useless. X5031 Red button X4001 It's part of a machine which is too heavy to move. X5032 Desk X4001 The desk is empty. X4002 The desk contains: X4003 It's too heavy to carry. X5033 Level indicator X4001 The level indicator shows too little water. X4002 The water level is just about right. X4003 Don't kid me! X5034 Red light X4001 The red light is on. X4002 The red light is off. X4003 The red light comes off in your hand. (Sorry, just kidding.) X5035 Green light X4001 The green light is off. X4002 The green light is on. X4003 You're getting tiring, trying to take immovable objects. X5036 Acid flow X4001 There is nothing sitting in the acid. X4002 Sitting in the acid is: X4003 The robot can't bend over far enough. X5037 Fiery pit X4001 Silly! X5038 Sulfurous mud X4001 The robot can't bend over to reach it. X5039 Violet button X4001 You can't take it. X5040 Orange button X4002 It is fixed in the wall. X5041 White button X4001 You remove it. A large Jack-in-the-box jumps out. You are so X4001 embarrassed that you carefully put the whole affair back. X5042 Blue button X4001 As you unscrew it, you notice that your nose falls off also. X4001 The switch it operated remains operational. X5043 Round recess X4001 The recess is empty. X4002 The recess contains: X4003 Take the air! X5044 Red vapor X4001 There is nothing near the red vapor. X4002 Surrounded by the red vapor is: X4003 The robot has no suitable container. X5045 Green vapor X4001 There is nothing in the green vapor. X4002 Sitting in the green vapor is: X4003 The robot has no suitable container. X5046 Frogs X4001 These are quite ordinary frogs. They are green, a bit slimy, and X4001 make a hollow krrooooookkking sound. If you could converse with X4001 them (which you can't), you would discover that their favorite X4001 topic of conversation is sex. X4002 Taken. ....... but X4002 After a few moments the frog emits a foul-smelling slimy liquid X4002 which runs down your arm and begins to itch. You drop the poor X4002 creature. X5047 Red birds X4001 They seem to be parrots. X4002 They fly amongst the highest branches of the trees, far above X4002 your reach. X5048 Beautiful birds X4001 There are dozens of birds of all colors and sizes here. They X4001 seem to like the most inaccessible branches of the small trees. X4002 They are well above your head. You can't climb the trees, as X4002 their trunks are much too weak. X5049 Beautiful birds X4001 There are several different species: big red ones, little green X4001 ones, ones with violet backs and white and yellow heads, and X4001 many others. They seems to like the highest branches of the X4001 trees. X4002 The birds are on the trees, not on the walkway where you stand. X5050 Beautiful birds. X4001 The birds are hidden by the top branches of the trees. X4002 They aren't nearby; they are out of reach in the trees. X5051 Bees X4001 Any attempt to get close to the bees results in your getting X4001 painful stings. X5052 Cactus X4001 They are much too big and prickly. X5053 Doll house X4001 It is large and ornate, about 2 meters tall, with four stories. X4001 There are the usual windows and doors through which the ferret X4001 children put their dolls. X4002 It is too big to get out the door. X5054 Waterfall X4001 Sorry, there is no pot of gold at the end of the rainbow. There X4001 isn't even any rainbow, just lots of water. X4002 Have you perhaps been eating cactus hallucinogenic drugs? X5055 Vending machine X4001 There is a vending machine here. X4002 It looks exactly like the machines used on earth to dispense X4002 candy. The contents look like red balls about one centimeter X4002 in diameter. The label says "Ozmtfztv Krooh". It has a slot X4002 labeled &300. X4003 It looks exactly like the machines used on earth to dispense X4003 candy. The contents look like red balls about one centimeter X4003 in diameter. The label says "Language Pills". It has a slot X4003 labeled &300. X4004 It is fastened to the wall. X5056 Slot X4001 Fat chance. X5057 Vending machine X4001 There is a vending machine here. X4002 It looks exactly like the machines used on earth to dispense X4002 newspapers. Inside is a supply of papers. The money slot is X4002 labeled &25. X4003 It is fastened to the wall. X5058 Slot X4001 Fat chance. X5059 Vending machine X4001 There is a vending machine here. X4002 It is a slot machine. That is, it has a slot for any size X4002 coin and three windows through which can be seen images of X4002 various fruits and occasionally a pot of money. It does X4002 seem to be missing the lever necessary to make it a X4002 "One armed bandit". X4003 You think perhaps to take it to a quiet place and blow it X4003 open? Sorry, it won't budge. X5060 Slot X4001 Fat chance X5061 Vending machine X4001 There is a vending machine here. X4002 It appears to be offering maps for sale. A slot in it is X4002 marked &75. X4003 It is attached to the wall. X5062 Slot X4001 Fat chance. X5063 Large machine X4001 Read the room description for information. X4002 It is too heavy X5064 Orange door X4001 The orange door is shut. X4002 The orange door is open. X4003 Silly! X5065 Pink door X4001 The pink door is shut. X4002 Fat chance! X5066 Blue door X4001 The blue door is shut. X4002 The blue door is open. X4003 It's fixed top the ship. X5067 Orange clip X4001 The orange clip is empty. X4002 The orange clip contains: X4003 No way. X5068 Violet clip X4001 The violet clip is empty. X4002 The violet clip holds: X4003 Silly! X5069 Yellow clip X4001 The yellow clip is empty. X4002 The yellow clip contains: X4003 Not in this life! X5070 Blue clip X4001 The blue clip is empty. X4002 The blue clip holds: X4003 You break your fingernail but not the clip. X5071 File cabinet X4001 The file cabinet holds useless papers. X4002 In addition to junk the cabinet holds: X4003 It is glued to the floor. X5072 Green button X4001 Behind the file cabinets is a green button. X4002 Silly! X5073 Large mural X4001 The south wall of the room is completely filled with a large X4001 mural. X4002 The mural has slid partially aside to reveal a secret passage X4002 leading south. X4003 The mural shows a picture of one of the large star clusters X4003 visible out the viewing ports. You notice that the left side X4003 is somewhat scuffed up. X4004 You might as well take the air. X5074 Dummy X4001 **** X5075 **** X9999 END_OF_vtext.dat.ac if test 31391 -ne `wc -c <vtext.dat.ac`; then echo shar: \"vtext.dat.ac\" unpacked with wrong size! fi # end of overwriting check fi if test -f world.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"world.c\" else echo shar: Extracting \"world.c\" \(10850 characters\) sed "s/^X//" >world.c <<'END_OF_world.c' X X#include "parame.inc" X#include "variab.h" X#include "locdat.inc" X#include "objdat.inc" X#include "objdes.inc" X#include "gtext.inc" X X/* World C Version 1.00 copyright 1987 J.D.McDonald X Use as you like for non-commercial purposes, but please X leave this note, and document any changes you make as yours */ X Xstatic int i, xloc, mxscor, succes, mloc, ikk, verb, vretrn; Xstatic int scor, xretn, yretn, h, errflg; X Xmain() X{ X X rdinit(); X wwflag = 0; X nomor = 0; X speak(29); X linout(" ", 1); X slflag = 0; X speak(gtext[1] + 1); X xindnt = 0; X for (i = 0; i < 9; i++) X marflg[i] = 0; X for (i = 0; i < 6; i++) X wirelc[i] = 0; X brfflg = 1; X deadf = 0; X dirty = 0; X turns = 0; X more = 0; X diesc = 0; X horflg = 0; X nonext = 0; X screef = 0; X spcloc = 0; X oldloc = 1; X oldlc2 = 1; X loc = 1; X xloc = 0; X oextim = 0; X rdietm = 0; X rvtim = 0; X gvtim = 0; X eattim = 0; X easttm = 0; X filmtm = 0; X filmst = 0; X machst = 0; X fimage = 0; X dial1x = -1; X dial2x = -1; X dial1 = 0; X dial2 = 0; X eastsc = 0; X cactsc = 0; X mxscor = 450; X bonus = 0; X jackpo = 0; X lpill = 0; X pbstat = 0; X dcombi = -1; X chaset = 0; X chaser = 0; X fshlif = 8; X noshoe = 8; X guardl = 0; X eolflg = 1; X linout(" ", 1); X /* the main command loop!!!!! */ X Xlab1: X if (eolflg) { X getln(); X dotflg = 0; X clause = 1; X actor = 1; X lptr = 0; X } X succes = scan(); X if (!succes) X eolflg = 1; X if (!succes) X goto lab1; X succes = parse(); X clause += 1; X if (!succes) X eolflg = 1; X if (!succes) X goto lab1; X errflg = 0; X /****** for "tell someone" or "ask someone" */ X X if (actor != 1) { X X otheract(); /* perform verbs for other than player */ X X X timer(xloc); X /* this goto is for permanent death due to radiation poisoning */ X X { X if (rdietm == 50) X goto lab9000; X nonext = 1; X goto lab3000; X } X } X /******/ X X X X X verb = wrdnum[0]; X X playerv(); /* this does all the verbs for player */ X X X if (errflg == 1) X goto lab9000; X if (errflg == 2) X goto lab9990; X { X if (deadf && loc >= 153) X goto lab9000; X } X timer(xloc); X /* X * this goto is for permanent death due to radiation poisoning or death X * in endgame X */ X X { X if (rdietm == 50 || (loc >= 153 && deadf)) X goto lab9000; X } X h = 0; X { X if (loc != xloc) { X /* get out of any special locations (like on glass) */ X X if (!(loc == 187 || loc == 184 || (loc >= 175 X && loc <= 181))) X spcloc = 0; X if (wirelc[5] == 1000 || obloc[ZWIRE] == 1000) X wdemon(); X h = 1; X } X } X /* announce new location */ X X { X if (!nonext || (loc >= 7 && loc <= 11) || X (loc >= 100 && loc <= 116)) { X linout(" ", 1); X if (loc >= 7 && loc <= 11) X h = 1; X vlocat(0, h); X } X if (loc >= 26 && loc <= 51) { X linout(" ", 1); X mdemon(); X } X } X X /* cat function */ X Xlab3000: X { X if (obloc[ZCAT] == 1000 || (obloc[ZCAT] == (2000 + ZKNAPS) && X (obloc[ZKNAPS] == 3000 || obloc[ZKNAPS] == loc))) { X if (loc == 149 && obloc[ZCART] == 0) { X speak(290); X obloc[ZCAT] = loc; X obloc[ZCART] = loc; X } else if (obloc[ZCAT] == 2000 + ZKNAPS && obloc[ZKNAPS] == 3000 X && pct(5)) { X speak(287); X obloc[ZCAT] = 1000; X } else if (pct(3)) X speak(288); X else if (pct(3)) X speak(289); X } X } X /* robot activation */ X X { X if ((obimpr[RSLOT] & 8192) == 8192) { X obimpr[RSLOT] -= 8192; X if (obloc[ZCART] == 2000 + RSLOT) X speak(310); X else X speak(365); X } X } X /* give bonus for reaching cygnus or deneb */ X X { X if (loc == 183) { X if ((locdat[183] & 16384) == 0) { X speak(549); X bonus += 5; X } else if (xloc != loc) X speak(550); X } else if (loc == 186) { X if ((locdat[186] & 16384) == 0) X speak(547); X else if (xloc != loc) X speak(548); X } else if (loc == 190) { X speak(551); X bonus += 5; X goto lab9000; X } X } X { X if (loc == xloc && loc == 171) { X speak(557); X vdead(); X goto lab9000; X } X } X xloc = loc; X turns += 1; X nonext = 0; X /* we have visited this location */ X X locdat[loc] |= 16384; X linout(" ", 1); X goto lab1; Xlab9000: X linout(" ", 1); X scor = scorng() + bonus * 5; X scorpt(scor, mxscor); X goto lab9999; Xlab9990: X endsl(); Xlab9999: X ; X} X X/* end of main program */ X X Xotheract() X{ X static int actok; X X if (actor == MARTIA) { X if (martim == 7 && loc >= 27 && loc <= 51) X speak(167); X else X speak(168); X } else if (actor == ROBOT) { X { X if (chgact == 1) X actok = 1; X } X /* test to see if robot can "hear" */ X X if (chgact == 1 && obloc[CCART] == (2000 + RSLOT) && X (loc == 146 || obloc[ZROBOT] == loc)) { X speak(366); X actok = 0; X } else if (chgact == 1 && !((loc == obloc[ZROBOT] || X loc == 146) && obloc[ZCART] == (2000 + RSLOT))) { X speak(314); X actok = 0; X } else if (chgact == 0 && actok == 0); X else if (wrdnum[0] == GO) { X mloc = obloc[ZROBOT]; X vgo(); X { X if (obloc[ZROBOT] == 90) X obimpr[ZROBOT] = 2257; X } X { X if (rmove == 1 && (loc == mloc)) X speak(316); X else if (rmove == 1 && mloc != loc && obloc[ZROBOT] == loc) X speak(317); X else if (rmove == 1 && loc == 146) X robdsc(); X } X { X if (obloc[ZROBOT] == 90) { X if (obloc[ZORCHI] == 2000 + ZROBOT) X obloc[ZORCHI] = 0; X else if (obloc[ZFLYTR] == 2000 + ZROBOT) X obloc[ZFLYTR] = 0; X } X } X } else if (wrdnum[0] == TAKE || wrdnum[0] == DROP || X wrdnum[0] == PUT || wrdnum[0] == IS || wrdnum[0] == X TRANSL || wrdnum[0] == WASH || wrdnum[0] == QWATER X || wrdnum[0] == HOLD || wrdnum[0] == GIVE) X vrobot(); X else X speak(315); X } else if (actor == FERRET) { X if (loc != 131 && loc != 99 && loc != 100) X speak(435); X else X speak(436); X } else if (actor == CACTUS) { X if (loc != 82) X speak(437); X else if (cactsc != 3) X speak(438); X /* cactus freezing scree sclope */ X X else if ((wrdnum[0] == HOLD || wrdnum[0] == FREEZE) && X dobjs[0] == GRAVEL) { X screef = 4; X speak(441); X } else X speak(237); X } else if (actor == GUARD) { X if (loc == guardl || loc == 171 || (chaset != 0 && X chaset <= 9)) X speak(562); X else X speak(561); X } else X speak(251); X} X Xplayerv() X{ X if (verb < TAKE) { X vretrn = 1; X { X if (verb == RUN) X vretrn = vrun(); X else if (verb == CRAWL) X vretrn = vcrawl(); X else if (verb == CROSS) X vretrn = vcross(); X else if (verb == JUMP) X vretrn = vjump(); X else if (verb == ASCEND) { X prepdo = UP; X vretrn = vclimb(); X } else if (verb == DESCEN) { X prepdo = DOWN; X vretrn = vclimb(); X } else if (verb == CLIMB) X vretrn = vclimb(); X else if (verb == SWIM) X vretrn = vswim(); X } X X /* X * if vretrn=0, then the action is complete if vretrn=1, then a X * translation to "go" occured or the verb was actually "go" X */ X X { X if (vretrn == 1) X vgo(); X } X } else if (verb == QUIT) { X if (yesx(101)) X errflg = 1; /* out after scoring */ X X } else if (verb == DAMN) X dirty += 1; X else if (verb == SUSPEN) X if (chaset == 0) X vsuspe(0); X else X speak(559); X else if (verb == RESTOR) { X if (vsuspe(1)) { X eolflg = 1; X nonext = 0; X actor = 1; X xloc = loc; X } X } else if (verb == BRIEF) X brfflg = 1; X else if (verb == VERBOS) X brfflg = 2; X else if (verb == SUPERB) X brfflg = 0; X else if (verb == QMORE) X nomor = 0; X else if (verb == NOMORE) X nomor = 1; X else if (verb == SCORE) { X scor = scorng() + bonus * 5; X scorpt(scor, mxscor); X } else if (verb == HELP) X vhelp(); X else if (verb == RETREA) X vretre(); X else if (verb == PRAY) { X if (!deadf || loc != 61) X speak(44); X else { X deadf = 0; X speak(45); X nonext = 1; X noshoe = 8; X } X } else if (verb == DEBUG) X dbg(); X else if (verb == LOCATE) { X vlocat(1, 1); X nonext = 1; X } else if (!deadf) { X if (verb == TAKE || verb == REMOVE || verb == CARRY || X verb == HOLD) X vtake(); X else if (verb == DROP) X vdrop(); X else if (verb == THROW) { X if (!vthrow()) X vdrop(); X } else if (verb == SIT) X vsit(); X else if (verb == STAND) X vstand(); X else if (verb == GET) { X xretn = vget(); X { X if (xretn == 1) X vtake(); X } X } else if (verb == SHOOT) X vshoot(); X else if (verb == OPEN) X vopen(); X else if (verb == SHUT) X vshut(); X else if (verb == LAND || verb == ACTIVA) X vship(); X else if (verb == SCRATC) X vscrat(); X else if (verb == TRANSL) X speak(71); X else if (verb == ATTACH) X vattac(); X else if (verb == POUR || verb == QWATER) { X if (vpour() == 1) X vput(); X } else if (verb == WASH) X vwash(); X else if (verb == EAT) X veat(); X else if (verb == DRINK) X vdrink(); X else if (verb == FILL) { X if (vfill() == 1) X vpour(); X } else if (verb == IGNITE) X speak(39); X else if (verb == TURN) X vturn(); X else if (verb == READ) X vread(); X else if (verb == BREAK) X vbreak(); X else if (verb == FREEZE) X speak(442); X else if (verb == PICK) { X xretn = vpick(); X { X if (xretn == 1) X vtake(); X } X } else if (verb == WEAR) X vwear(); X else if (verb == PUT) { X xretn = vput(); X { X if (xretn == 1) X vwear(); X if (xretn == 2) X vdrop(); X if (xretn == 3) X vpour(); X } X } else if (verb == LOCK || verb == UNLOCK) X vlocks(); X else if (verb == LOOK || verb == EXAMIN) X vlooks(); X else if (verb == PUSH || verb == KISS) { X { X if (verb == KISS) X yretn = vkiss(); X } X if (yretn == 1 || verb == PUSH) { X xretn = vpush(); X /* oops! the nova button */ X X if (xretn == 1) X errflg = 2; /* instant out */ X X else if (xretn > 1) { X bonus = xretn * 2; X { X if (xretn < 5) X errflg = 1; /* out after scoring */ X X } X /* change to the "endgame" */ X X scor = scorng(); X bonus += scor / 5; X loc = 153; X oldloc = 0; X oldlc2 = 0; X { X for (ikk = 1; ikk <= SCOIN; ikk++) X if (obloc[ikk] != 1000 && obloc[ikk] != 3000) X obloc[ikk] = 0; X } X obloc[ZKNAPS] = 0; X } X } X } else if (verb == PUNCH) { X if (vpunch() == 1) X vbreak(); X } else if (verb == ATTACK) X vattak(); X else if (verb == DIG) X vdig(); X else if (verb == GIVE || verb == FEED) X vgive(); X else if (verb == IS) X speak(467); X else if (verb == FUCK) { X dirty += 1; X vfuck(); X } else if (loc == 127 && (verb == SHIT || verb == EXHALE X || verb == PISS)) { X loc = 126; X oldloc = 0; X oldlc2 = 0; X speak(312); X } else if (verb == EXHALE) X speak(313); X else if (verb == PISS) X vpiss(); X else if (verb == SHIT) X vshit(); X else if (verb == INVENT) X vinven(); X else; X } X else speak(46); X X} END_OF_world.c if test 10850 -ne `wc -c <world.c`; then echo shar: \"world.c\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of archive 5 \(of 7\). cp /dev/null ark5isdone MISSING="" for I in 1 2 3 4 5 6 7 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 7 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. eximine