summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/battlestar/battlestar.639
-rw-r--r--games/battlestar/battlestar.c36
-rw-r--r--games/battlestar/com1.c173
-rw-r--r--games/battlestar/com2.c373
-rw-r--r--games/battlestar/com3.c378
-rw-r--r--games/battlestar/com4.c458
-rw-r--r--games/battlestar/com5.c403
-rw-r--r--games/battlestar/com6.c154
-rw-r--r--games/battlestar/com7.c368
-rw-r--r--games/battlestar/cypher.c729
-rw-r--r--games/battlestar/dayfile.c565
-rw-r--r--games/battlestar/dayobjs.c6
-rw-r--r--games/battlestar/extern.h181
-rw-r--r--games/battlestar/fly.c279
-rw-r--r--games/battlestar/getcom.c39
-rw-r--r--games/battlestar/globals.c92
-rw-r--r--games/battlestar/init.c41
-rw-r--r--games/battlestar/misc.c18
-rw-r--r--games/battlestar/nightfile.c564
-rw-r--r--games/battlestar/nightobjs.c6
-rw-r--r--games/battlestar/parse.c32
-rw-r--r--games/battlestar/room.c274
-rw-r--r--games/battlestar/save.c47
-rw-r--r--games/battlestar/words.c6
24 files changed, 2631 insertions, 2630 deletions
diff --git a/games/battlestar/battlestar.6 b/games/battlestar/battlestar.6
index b0d7f582e47..f6dd66b1bd3 100644
--- a/games/battlestar/battlestar.6
+++ b/games/battlestar/battlestar.6
@@ -1,4 +1,4 @@
-.\" $OpenBSD: battlestar.6,v 1.2 1997/06/30 19:56:28 kstailey Exp $
+.\" $OpenBSD: battlestar.6,v 1.3 1998/09/13 01:30:30 pjanzen Exp $
.\" $NetBSD: battlestar.6,v 1.4 1995/03/21 15:06:42 cgd Exp $
.\"
.\" Copyright (c) 1983, 1993
@@ -41,11 +41,11 @@
.Nm battlestar
.Nd a tropical adventure game
.Sh SYNOPSIS
-.Nm battlestar
-.Op Fl r Em Pq recover a saved game
+.Nm
+.Op -r | saved-file
.Sh DESCRIPTION
-.Nm Battlestar
-is an adventure game in the classic style. However, It's slightly less
+.Nm
+is an adventure game in the classic style. However, it's slightly less
of a
puzzle and more a game of exploration. There are a few magical words
in the game, but on the whole, simple English
@@ -120,12 +120,20 @@ want to take advantage of it. That is, saying "take knife" and then
"drop"
will drop the knife you just took.
.Sh SCORE & INVEN
-The two commands "score" and "inven" will print out your current status
-in the game.
+The two commands
+.Dq score
+and
+.Dq inven
+will print out your current status in the game.
.Sh SAVING A GAME
-The command "save" will save your game in a file called "Bstar." You
-can recover a saved game by using the "-r" option when you start up the
-game.
+The command
+.Dq save
+will save your game in a file called
+.Pa ~/Bstar .
+You can recover a saved game by using the
+.Fl r
+option when you start up the
+game, or by giving the name of the saved file as an argument.
.Sh DIRECTIONS
The compass directions N, S, E, and W can be used if you have a compass.
If you don't have a compass, you'll have to say R, L, A, or B, which
@@ -139,22 +147,19 @@ Most interesting things that happen in the game are hardwired into the
code, so don't send me any hate mail about it!
Instead, enjoy art for art's sake!
.Sh AUTHOR
-David Riggle
+David Riggle (riggle.pa@xerox.arpa)
.Sh INSPIRATION & ASSISTANCE
.Bl -item -compact
.It
-Chris Guthrie
+Chris Guthrie (chris%ucbcory@berkeley.arpa)
.It
Peter Da Silva
.It
Kevin Brown
.It
-Edward Wang
+Edward Wang (edward%ucbarpa@berkeley.arpa)
.It
Ken Arnold & Company
.El
.Sh BUGS
-Countless.
-.Sh FAN MAIL
-Send to edward%ucbarpa@berkeley.arpa, chris%ucbcory@berkeley.arpa,
-riggle.pa@xerox.arpa.
+Finite.
diff --git a/games/battlestar/battlestar.c b/games/battlestar/battlestar.c
index c371997092b..785f3b0d60a 100644
--- a/games/battlestar/battlestar.c
+++ b/games/battlestar/battlestar.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: battlestar.c,v 1.5 1997/08/24 21:55:01 deraadt Exp $ */
+/* $OpenBSD: battlestar.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: battlestar.c,v 1.3 1995/03/21 15:06:47 cgd Exp $ */
/*
@@ -44,7 +44,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "@(#)battlestar.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: battlestar.c,v 1.3 1995/03/21 15:06:47 cgd Exp $";
+static char rcsid[] = "$OpenBSD: battlestar.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -57,33 +57,33 @@ static char rcsid[] = "$NetBSD: battlestar.c,v 1.3 1995/03/21 15:06:47 cgd Exp $
#include "extern.h"
-int main __P((int, char **));
+int main __P((int, char *[]));
int
-main(argc,argv)
-int argc;
-char **argv;
+main(argc, argv)
+ int argc;
+ char **argv;
{
- char mainbuf[LINELENGTH];
- char *next;
+ char mainbuf[LINELENGTH];
+ char *next;
open_score_file();
/* revoke privs. */
- egid = getegid();
setegid(getgid());
+ setgid(getgid());
initialize(argc < 2 || strcmp(argv[1], "-r"));
start:
news();
beenthere[position]++;
if (notes[LAUNCHED])
- crash(); /* decrements fuel & crash */
+ crash(); /* decrements fuel & crash */
if (matchlight) {
puts("Your match splutters out.");
matchlight = 0;
}
- if (!notes[CANTSEE] || testbit(inven,LAMPON) ||
+ if (!notes[CANTSEE] || testbit(inven, LAMPON) ||
testbit(location[position].objects, LAMPON)) {
writedes();
printobjs();
@@ -92,16 +92,16 @@ start:
whichway(location[position]);
run:
next = getcom(mainbuf, sizeof mainbuf, ">-: ",
- "Please type in something.");
+ "Please type in something.");
for (wordcount = 0; next && wordcount < 20; wordcount++)
next = getword(next, words[wordcount], -1);
parse();
switch (cypher()) {
- case -1:
- goto run;
- case 0:
- goto start;
- default:
- exit(1);
+ case -1:
+ goto run;
+ case 0:
+ goto start;
+ default:
+ exit(1);
}
}
diff --git a/games/battlestar/com1.c b/games/battlestar/com1.c
index cfe291c9392..9d88e5481da 100644
--- a/games/battlestar/com1.c
+++ b/games/battlestar/com1.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com1.c,v 1.5 1997/12/16 07:54:21 angelos Exp $ */
+/* $OpenBSD: com1.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: com1.c,v 1.3 1995/03/21 15:06:51 cgd Exp $ */
/*
@@ -38,45 +38,44 @@
#if 0
static char sccsid[] = "@(#)com1.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com1.c,v 1.3 1995/03/21 15:06:51 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com1.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
-#include <unistd.h>
#include "extern.h"
-void convert __P((int));
-
int
move(thataway, token)
-int thataway, token;
+ int thataway, token;
{
wordnumber++;
- if ((!notes[CANTMOVE] && !notes[LAUNCHED]) || testbit(location[position].objects, LAND) || fuel > 0 && notes[LAUNCHED])
+ if ((!notes[CANTMOVE] && !notes[LAUNCHED]) ||
+ testbit(location[position].objects, LAND) ||
+ (fuel > 0 && notes[LAUNCHED])) {
if (thataway) {
position = thataway;
newway(token);
- btime++;
- }
- else {
+ ourtime++;
+ } else {
puts("You can't go this way.");
newway(token);
whichway(location[position]);
- return(0);
+ return (0);
}
- else if (notes[CANTMOVE] && !notes[LAUNCHED])
- puts("You aren't able to move; you better drop something.");
- else
- puts("You are out of fuel; now you will rot in space forever!");
- return(1);
+ } else
+ if (notes[CANTMOVE] && !notes[LAUNCHED])
+ puts("You aren't able to move; you better drop something.");
+ else
+ puts("You are out of fuel; now you will rot in space forever!");
+ return (1);
}
void
-convert(tothis) /* Converts day to night and vice versa. */
-int tothis; /* Day objects are permanent. Night objects are added*/
-{ /* at dusk, and subtracted at dawn. */
- register struct objs *p;
- register unsigned int i, j;
+convert(tothis) /* Converts day to night and vice versa. */
+ int tothis; /* Day objects are permanent. Night objects */
+{ /* are added at dusk, and subtracted at dawn.*/
+ struct objs *p;
+ unsigned int i, j;
if (tothis == TONIGHT) {
for (i = 1; i <= NUMOFROOMS; i++)
@@ -98,27 +97,27 @@ int tothis; /* Day objects are permanent. Night objects are added*/
void
news()
{
- register int n;
- int hurt;
+ int n;
+ int hurt;
- if (btime > 30 && position < 32){
+ if (ourtime > 30 && position < 32) {
puts("An explosion of shuddering magnitude splinters bulkheads and");
puts("ruptures the battlestar's hull. You are sucked out into the");
puts("frozen void of space and killed.");
die(0);
}
- if (btime > 20 && position < 32)
+ if (ourtime > 20 && position < 32)
puts("Explosions rock the battlestar.");
- if (btime > snooze){
+ if (ourtime > snooze) {
puts("You drop from exhaustion...");
zzz();
}
- if (btime > snooze - 5)
+ if (ourtime > snooze - 5)
puts("You're getting tired.");
- if (btime > (rythmn + CYCLE)) {
+ if (ourtime > (rythmn + CYCLE)) {
if (location == nightfile) {
convert(TODAY);
- if (OUTSIDE && btime - rythmn - CYCLE < 10) {
+ if (OUTSIDE && ourtime - rythmn - CYCLE < 10) {
puts("Dew lit sunbeams stretch out from a watery sunrise and herald the dawn.");
puts("You awake from a misty dream-world into stark reality.");
puts("It is day.");
@@ -126,101 +125,101 @@ news()
} else {
convert(TONIGHT);
clearbit(location[POOLS].objects, BATHGOD);
- if (OUTSIDE && btime - rythmn - CYCLE < 10) {
+ if (OUTSIDE && ourtime - rythmn - CYCLE < 10) {
puts("The dying sun sinks into the ocean, leaving a blood stained sunset.");
puts("The sky slowly fades from orange to violet to black. A few stars");
puts("flicker on, and it is night.");
puts("The world seems completly different at night.");
}
}
- rythmn = btime - btime % CYCLE;
+ rythmn = ourtime - ourtime % CYCLE;
}
if (!wiz && !tempwiz)
- if ((testbit(inven,TALISMAN) || testbit(wear,TALISMAN)) && (testbit(inven,MEDALION) || testbit(wear,MEDALION)) && (testbit(inven,AMULET) || testbit(wear,AMULET))){
+ if ((testbit(inven, TALISMAN) || testbit(wear, TALISMAN)) && (testbit(inven, MEDALION) || testbit(wear, MEDALION)) && (testbit(inven, AMULET) || testbit(wear, AMULET))) {
tempwiz = 1;
puts("The three amulets glow and reenforce each other in power.\nYou are now a wizard.");
+ }
+ if (testbit(location[position].objects, ELF)) {
+ printf("%s\n", objdes[ELF]);
+ fight(ELF, rnd(30));
}
- if (testbit(location[position].objects,ELF)){
- printf("%s\n",objdes[ELF]);
- fight(ELF,rnd(30));
- }
- if (testbit(location[position].objects,DARK)){
- printf("%s\n",objdes[DARK]);
- fight(DARK,100);
+ if (testbit(location[position].objects, DARK)) {
+ printf("%s\n", objdes[DARK]);
+ fight(DARK, 100);
}
- if (testbit(location[position].objects,WOODSMAN)){
- printf("%s\n",objdes[WOODSMAN]);
- fight(WOODSMAN,50);
+ if (testbit(location[position].objects, WOODSMAN)) {
+ printf("%s\n", objdes[WOODSMAN]);
+ fight(WOODSMAN, 50);
}
- switch(position){
+ switch (position) {
- case 267:
- case 257: /* entering a cave */
- case 274:
- case 246:
- notes[CANTSEE] = 1;
- break;
- case 160:
- case 216: /* leaving a cave */
- case 230:
- case 231:
- case 232:
- notes[CANTSEE] = 0;
- break;
+ case 267:
+ case 257: /* entering a cave */
+ case 274:
+ case 246:
+ notes[CANTSEE] = 1;
+ break;
+ case 160:
+ case 216: /* leaving a cave */
+ case 230:
+ case 231:
+ case 232:
+ notes[CANTSEE] = 0;
+ break;
}
if (testbit(location[position].objects, GIRL))
meetgirl = 1;
- if (meetgirl && CYCLE * 1.5 - btime < 10){
- setbit(location[GARDEN].objects,GIRLTALK);
- setbit(location[GARDEN].objects,LAMPON);
- setbit(location[GARDEN].objects,ROPE);
+ if (meetgirl && CYCLE * 1.5 - ourtime < 10) {
+ setbit(location[GARDEN].objects, GIRLTALK);
+ setbit(location[GARDEN].objects, LAMPON);
+ setbit(location[GARDEN].objects, ROPE);
}
- if (position == DOCK && (beenthere[position] || btime > CYCLE)){
+ if (position == DOCK && (beenthere[position] || ourtime > CYCLE)) {
clearbit(location[DOCK].objects, GIRL);
- clearbit(location[DOCK].objects,MAN);
+ clearbit(location[DOCK].objects, MAN);
}
- if (meetgirl && btime - CYCLE * 1.5 > 10){
- clearbit(location[GARDEN].objects,GIRLTALK);
- clearbit(location[GARDEN].objects,LAMPON);
- clearbit(location[GARDEN].objects,ROPE);
+ if (meetgirl && ourtime - CYCLE * 1.5 > 10) {
+ clearbit(location[GARDEN].objects, GIRLTALK);
+ clearbit(location[GARDEN].objects, LAMPON);
+ clearbit(location[GARDEN].objects, ROPE);
meetgirl = 0;
}
- if (testbit(location[position].objects,CYLON)){
+ if (testbit(location[position].objects, CYLON)) {
puts("Oh my God, you're being shot at by an alien spacecraft!");
- printf("The targeting computer says we have %d seconds to attack!\n",bclock);
+ printf("The targeting computer says we have %d seconds to attack!\n",
+ ourclock);
fflush(stdout);
sleep(1);
- if (!visual()){
+ if (!visual()) {
hurt = rnd(NUMOFINJURIES);
injuries[hurt] = 1;
puts("Laser blasts sear the cockpit, and the alien veers off in a victory roll.");
puts("The viper shudders under a terrible explosion.");
printf("I'm afraid you have suffered %s.\n", ouch[hurt]);
- }
- else
- clearbit(location[position].objects,CYLON);
+ } else
+ clearbit(location[position].objects, CYLON);
}
- if (injuries[SKULL] && injuries[INCISE] && injuries[NECK]){
+ if (injuries[SKULL] && injuries[INCISE] && injuries[NECK]) {
puts("I'm afraid you have suffered fatal injuries.");
die(0);
}
- for (n=0; n < NUMOFINJURIES; n++)
- if (injuries[n] == 1){
+ for (n = 0; n < NUMOFINJURIES; n++)
+ if (injuries[n] == 1) {
injuries[n] = 2;
if (WEIGHT > 5)
WEIGHT -= 5;
else
WEIGHT = 0;
}
- if (injuries[ARM] == 2){
+ if (injuries[ARM] == 2) {
CUMBER -= 5;
injuries[ARM]++;
}
- if (injuries[RIBS] == 2){
+ if (injuries[RIBS] == 2) {
CUMBER -= 2;
injuries[RIBS]++;
}
- if (injuries[SPINE] == 2){
+ if (injuries[SPINE] == 2) {
WEIGHT = 0;
injuries[SPINE]++;
}
@@ -233,24 +232,25 @@ news()
void
crash()
{
- int hurt1,hurt2;
+ int hurt1, hurt2;
fuel--;
- if (!location[position].flyhere || (testbit(location[position].objects,LAND) && fuel <= 0)){
+ if (!location[position].flyhere ||
+ (testbit(location[position].objects, LAND) && fuel <= 0)) {
if (!location[position].flyhere)
puts("You're flying too low. We're going to crash!");
- else{
+ else {
puts("You're out of fuel. We'll have to crash land!");
- if (!location[position].down){
- puts("Your viper strikes the ground and explodes into firey fragments.");
+ if (!location[position].down) {
+ puts("Your viper strikes the ground and explodes into fiery fragments.");
puts("Thick black smoke billows up from the wreckage.");
die(0);
}
position = location[position].down;
}
notes[LAUNCHED] = 0;
- setbit(location[position].objects,CRASH);
- btime += rnd(CYCLE/4);
+ setbit(location[position].objects, CRASH);
+ ourtime += rnd(CYCLE / 4);
puts("The viper explodes into the ground and you lose consciousness...");
zzz();
hurt1 = rnd(NUMOFINJURIES - 2) + 2;
@@ -259,6 +259,7 @@ crash()
injuries[hurt2] = 1;
injuries[0] = 1; /* abrasions */
injuries[1] = 1; /* lacerations */
- printf("I'm afraid you have suffered %s and %s.\n",ouch[hurt1],ouch[hurt2]);
+ printf("I'm afraid you have suffered %s and %s.\n",
+ ouch[hurt1], ouch[hurt2]);
}
}
diff --git a/games/battlestar/com2.c b/games/battlestar/com2.c
index 061fd9f30f1..3f55fbc9a63 100644
--- a/games/battlestar/com2.c
+++ b/games/battlestar/com2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com2.c,v 1.5 1997/12/16 07:54:22 angelos Exp $ */
+/* $OpenBSD: com2.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: com2.c,v 1.3 1995/03/21 15:06:55 cgd Exp $ */
/*
@@ -38,110 +38,116 @@
#if 0
static char sccsid[] = "@(#)com2.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com2.c,v 1.3 1995/03/21 15:06:55 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com2.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
#include "extern.h"
int
-wearit() /* synonyms = {sheathe, sheath} */
-{
- register int n;
- int firstnumber, value;
+wearit()
+{ /* synonyms = {sheathe, sheath} */
+ int n;
+ int firstnumber, value;
firstnumber = wordnumber;
- while(wordtype[++wordnumber] == ADJS);
- while(wordnumber <= wordcount){
+ while (wordtype[++wordnumber] == ADJS);
+ while (wordnumber <= wordcount) {
value = wordvalue[wordnumber];
- for (n=0; objsht[value][n]; n++);
- switch(value){
-
- case -1:
- puts("Wear what?");
- return(firstnumber);
+ for (n = 0; objsht[value][n]; n++);
+ switch (value) {
- default:
- printf("You can't wear%s%s!\n",(objsht[value][n-1] == 's' ? " " : " a "),objsht[value]);
- return(firstnumber);
+ case -1:
+ puts("Wear what?");
+ return (firstnumber);
- case KNIFE:
- /* case SHIRT: */
- case ROBE:
- case LEVIS: /* wearable things */
- case SWORD:
- case MAIL:
- case HELM:
- case SHOES:
- case PAJAMAS:
- case COMPASS:
- case LASER:
- case AMULET:
- case TALISMAN:
- case MEDALION:
- case ROPE:
- case RING:
- case BRACELET:
- case GRENADE:
+ default:
+ printf("You can't wear%s%s!\n", (objsht[value][n - 1] == 's' ? " " : " a "), objsht[value]);
+ return (firstnumber);
- if (testbit(inven,value)){
- clearbit(inven,value);
- setbit(wear,value);
- carrying -= objwt[value];
- encumber -= objcumber[value];
- btime++;
- printf("You are now wearing %s %s.\n",(objsht[value][n-1] == 's' ? "the" : "a"), objsht[value]);
- }
- else if (testbit(wear,value))
- printf("You are already wearing the %s.\n", objsht[value]);
- else
- printf("You aren't holding the %s.\n", objsht[value]);
- if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
- wordnumber++;
+ case KNIFE:
+ /* case SHIRT: */
+ case ROBE:
+ case LEVIS: /* wearable things */
+ case SWORD:
+ case MAIL:
+ case HELM:
+ case SHOES:
+ case PAJAMAS:
+ case COMPASS:
+ case LASER:
+ case AMULET:
+ case TALISMAN:
+ case MEDALION:
+ case ROPE:
+ case RING:
+ case BRACELET:
+ case GRENADE:
+
+ if (testbit(inven, value)) {
+ clearbit(inven, value);
+ setbit(wear, value);
+ carrying -= objwt[value];
+ encumber -= objcumber[value];
+ ourtime++;
+ printf("You are now wearing %s %s.\n",
+ (objsht[value][n - 1] == 's' ? "the" : "a"),
+ objsht[value]);
+ } else
+ if (testbit(wear, value))
+ printf("You are already wearing the %s.\n",
+ objsht[value]);
else
- return(firstnumber);
- } /* end switch */
- } /* end while */
+ printf("You aren't holding the %s.\n",
+ objsht[value]);
+ if (wordnumber < wordcount - 1 &&
+ wordvalue[++wordnumber] == AND)
+ wordnumber++;
+ else
+ return (firstnumber);
+ } /* end switch */
+ } /* end while */
puts("Don't be ridiculous.");
- return(firstnumber);
+ return (firstnumber);
}
int
-put() /* synonyms = {buckle, strap, tie} */
-{
- if (wordvalue[wordnumber + 1] == ON){
+put()
+{ /* synonyms = {buckle, strap, tie} */
+ if (wordvalue[wordnumber + 1] == ON) {
wordvalue[++wordnumber] = PUTON;
- return(cypher());
+ return (cypher());
}
- if (wordvalue[wordnumber + 1] == DOWN){
+ if (wordvalue[wordnumber + 1] == DOWN) {
wordvalue[++wordnumber] = DROP;
- return(cypher());
+ return (cypher());
}
puts("I don't understand what you want to put.");
- return(-1);
+ return (-1);
}
int
-draw() /* synonyms = {pull, carry} */
-{
- return(take(wear));
+draw()
+{ /* synonyms = {pull, carry} */
+ return (take(wear));
}
int
use()
{
while (wordtype[++wordnumber] == ADJS && wordnumber < wordcount);
- if (wordvalue[wordnumber] == AMULET && testbit(inven,AMULET) && position != FINAL){
+ if (wordvalue[wordnumber] == AMULET && testbit(inven, AMULET) &&
+ position != FINAL) {
puts("The amulet begins to glow.");
- if (testbit(inven,MEDALION)){
+ if (testbit(inven, MEDALION)) {
puts("The medallion comes to life too.");
- if (position == 114){
+ if (position == 114) {
location[position].down = 160;
whichway(location[position]);
puts("The waves subside and it is possible to descend to the sea cave now.");
- btime++;
- return(-1);
+ ourtime++;
+ return (-1);
}
}
puts("A light mist falls over your eyes and the sound of purling water trickles in");
@@ -150,86 +156,91 @@ use()
position = 224;
else
position = 229;
- btime++;
+ ourtime++;
notes[CANTSEE] = 0;
- return(0);
+ return (0);
}
else if (position == FINAL)
puts("The amulet won't work in here.");
- else if (wordvalue[wordnumber] == COMPASS && testbit(inven,COMPASS))
- printf("Your compass points %s.\n",truedirec(NORTH,'-'));
+ else if (wordvalue[wordnumber] == COMPASS && testbit(inven, COMPASS))
+ printf("Your compass points %s.\n", truedirec(NORTH,'-'));
else if (wordvalue[wordnumber] == COMPASS)
puts("You aren't holding the compass.");
else if (wordvalue[wordnumber] == AMULET)
puts("You aren't holding the amulet.");
else
puts("There is no apparent use.");
- return(-1);
+ return (-1);
}
void
murder()
{
- register int n;
+ int n;
- for (n=0; !((n == SWORD || n == KNIFE || n == TWO_HANDED || n == MACE || n == CLEAVER || n == BROAD || n == CHAIN || n == SHOVEL || n == HALBERD) && testbit(inven,n)) && n < NUMOFOBJECTS; n++);
+ for (n = 0; !((n == SWORD || n == KNIFE || n == TWO_HANDED || n == MACE || n == CLEAVER || n == BROAD || n == CHAIN || n == SHOVEL || n == HALBERD) && testbit(inven, n)) && n < NUMOFOBJECTS; n++);
if (n == NUMOFOBJECTS)
puts("You don't have suitable weapons to kill.");
else {
- printf("Your %s should do the trick.\n",objsht[n]);
+ printf("Your %s should do the trick.\n", objsht[n]);
while (wordtype[++wordnumber] == ADJS);
- switch(wordvalue[wordnumber]){
-
- case NORMGOD:
- if (testbit(location[position].objects,BATHGOD)){
- puts("The goddess's head slices off. Her corpse floats in the water.");
- clearbit(location[position].objects,BATHGOD);
- setbit(location[position].objects,DEADGOD);
- power += 5;
- notes[JINXED]++;
- } else if (testbit(location[position].objects,NORMGOD)){
+ switch (wordvalue[wordnumber]) {
+
+ case NORMGOD:
+ if (testbit(location[position].objects, BATHGOD)) {
+ puts("The goddess's head slices off. Her corpse floats in the water.");
+ clearbit(location[position].objects, BATHGOD);
+ setbit(location[position].objects, DEADGOD);
+ power += 5;
+ notes[JINXED]++;
+ } else
+ if (testbit(location[position].objects, NORMGOD)) {
puts("The goddess pleads but you strike her mercilessly. Her broken body lies in a\npool of blood.");
- clearbit(location[position].objects,NORMGOD);
- setbit(location[position].objects,DEADGOD);
+ clearbit(location[position].objects, NORMGOD);
+ setbit(location[position].objects, DEADGOD);
power += 5;
notes[JINXED]++;
if (wintime)
live();
- } else puts("I dont see her anywhere.");
- break;
- case TIMER:
- if (testbit(location[position].objects,TIMER)){
- puts("The old man offers no resistance.");
- clearbit(location[position].objects,TIMER);
- setbit(location[position].objects,DEADTIME);
- power++;
- notes[JINXED]++;
- } else puts("Who?");
- break;
- case NATIVE:
- if (testbit(location[position].objects,NATIVE)){
- puts("The girl screams as you cut her body to shreds. She is dead.");
- clearbit(location[position].objects,NATIVE);
- setbit(location[position].objects,DEADNATIVE);
- power += 5;
- notes[JINXED]++;
- } else puts("What girl?");
- break;
- case MAN:
- if (testbit(location[position].objects,MAN)){
- puts("You strike him to the ground, and he coughs up blood.");
- puts("Your fantasy is over.");
- die(0);
- }
- case -1:
- puts("Kill what?");
- break;
+ } else
+ puts("I dont see her anywhere.");
+ break;
+ case TIMER:
+ if (testbit(location[position].objects, TIMER)) {
+ puts("The old man offers no resistance.");
+ clearbit(location[position].objects, TIMER);
+ setbit(location[position].objects, DEADTIME);
+ power++;
+ notes[JINXED]++;
+ } else
+ puts("Who?");
+ break;
+ case NATIVE:
+ if (testbit(location[position].objects, NATIVE)) {
+ puts("The girl screams as you cut her body to shreds. She is dead.");
+ clearbit(location[position].objects, NATIVE);
+ setbit(location[position].objects, DEADNATIVE);
+ power += 5;
+ notes[JINXED]++;
+ } else
+ puts("What girl?");
+ break;
+ case MAN:
+ if (testbit(location[position].objects, MAN)) {
+ puts("You strike him to the ground, and he coughs up blood.");
+ puts("Your fantasy is over.");
+ die(0);
+ }
+ case -1:
+ puts("Kill what?");
+ break;
- default:
- if (wordtype[wordnumber] != NOUNS)
- puts("Kill what?");
- else
- printf("You can't kill the %s!\n",objsht[wordvalue[wordnumber]]);
+ default:
+ if (wordtype[wordnumber] != NOUNS)
+ puts("Kill what?");
+ else
+ printf("You can't kill the %s!\n",
+ objsht[wordvalue[wordnumber]]);
}
}
}
@@ -238,74 +249,72 @@ void
ravage()
{
while (wordtype[++wordnumber] != NOUNS && wordnumber <= wordcount);
- if (wordtype[wordnumber] == NOUNS && testbit(location[position].objects,wordvalue[wordnumber])){
- btime++;
- switch(wordvalue[wordnumber]){
- case NORMGOD:
- puts("You attack the goddess, and she screams as you beat her. She falls down");
- puts("crying and tries to hold her torn and bloodied dress around her.");
- power += 5;
- pleasure += 8;
- ego -= 10;
- wordnumber--;
- godready = -30000;
- murder();
- win = -30000;
- break;
- case NATIVE:
- puts("The girl tries to run, but you catch her and throw her down. Her face is");
- puts("bleeding, and she screams as you tear off her clothes.");
- power += 3;
- pleasure += 5;
- ego -= 10;
- wordnumber--;
- murder();
- if (rnd(100) < 50){
- puts("Her screams have attracted attention. I think we are surrounded.");
- setbit(location[ahead].objects,WOODSMAN);
- setbit(location[ahead].objects,DEADWOOD);
- setbit(location[ahead].objects,MALLET);
- setbit(location[back].objects,WOODSMAN);
- setbit(location[back].objects,DEADWOOD);
- setbit(location[back].objects,MALLET);
- setbit(location[left].objects,WOODSMAN);
- setbit(location[left].objects,DEADWOOD);
- setbit(location[left].objects,MALLET);
- setbit(location[right].objects,WOODSMAN);
- setbit(location[right].objects,DEADWOOD);
- setbit(location[right].objects,MALLET);
- }
- break;
- default:
- puts("You are perverted.");
+ if (wordtype[wordnumber] == NOUNS && testbit(location[position].objects, wordvalue[wordnumber])) {
+ ourtime++;
+ switch (wordvalue[wordnumber]) {
+ case NORMGOD:
+ puts("You attack the goddess, and she screams as you beat her. She falls down");
+ puts("crying and tries to hold her torn and bloodied dress around her.");
+ power += 5;
+ pleasure += 8;
+ ego -= 10;
+ wordnumber--;
+ godready = -30000;
+ murder();
+ win = -30000;
+ break;
+ case NATIVE:
+ puts("The girl tries to run, but you catch her and throw her down. Her face is");
+ puts("bleeding, and she screams as you tear off her clothes.");
+ power += 3;
+ pleasure += 5;
+ ego -= 10;
+ wordnumber--;
+ murder();
+ if (rnd(100) < 50) {
+ puts("Her screams have attracted attention. I think we are surrounded.");
+ setbit(location[ahead].objects, WOODSMAN);
+ setbit(location[ahead].objects, DEADWOOD);
+ setbit(location[ahead].objects, MALLET);
+ setbit(location[back].objects, WOODSMAN);
+ setbit(location[back].objects, DEADWOOD);
+ setbit(location[back].objects, MALLET);
+ setbit(location[left].objects, WOODSMAN);
+ setbit(location[left].objects, DEADWOOD);
+ setbit(location[left].objects, MALLET);
+ setbit(location[right].objects, WOODSMAN);
+ setbit(location[right].objects, DEADWOOD);
+ setbit(location[right].objects, MALLET);
+ }
+ break;
+ default:
+ puts("You are perverted.");
}
- }
- else
+ } else
puts("Who?");
}
int
follow()
{
- if (followfight == btime){
- puts("The Dark Lord leaps away and runs down secret tunnels and corridoors.");
+ if (followfight == ourtime) {
+ puts("The Dark Lord leaps away and runs down secret tunnels and corridors.");
puts("You chase him through the darkness and splash in pools of water.");
puts("You have cornered him. His laser sword extends as he steps forward.");
position = FINAL;
- fight(DARK,75);
- setbit(location[position].objects,TALISMAN);
- setbit(location[position].objects,AMULET);
- return(0);
- }
- else if (followgod == btime){
- puts("The goddess leads you down a steamy tunnel and into a high, wide chamber.");
- puts("She sits down on a throne.");
- position = 268;
- setbit(location[position].objects,NORMGOD);
- notes[CANTSEE] = 1;
- return(0);
- }
- else
- puts("There is no one to follow.");
- return(-1);
+ fight(DARK, 75);
+ setbit(location[position].objects, TALISMAN);
+ setbit(location[position].objects, AMULET);
+ return (0);
+ } else
+ if (followgod == ourtime) {
+ puts("The goddess leads you down a steamy tunnel and into a high, wide chamber.");
+ puts("She sits down on a throne.");
+ position = 268;
+ setbit(location[position].objects, NORMGOD);
+ notes[CANTSEE] = 1;
+ return (0);
+ } else
+ puts("There is no one to follow.");
+ return (-1);
}
diff --git a/games/battlestar/com3.c b/games/battlestar/com3.c
index f4ced81e6ec..fd8d6aef21a 100644
--- a/games/battlestar/com3.c
+++ b/games/battlestar/com3.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com3.c,v 1.4 1997/12/16 07:54:22 angelos Exp $ */
+/* $OpenBSD: com3.c,v 1.5 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: com3.c,v 1.3 1995/03/21 15:07:00 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)com3.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com3.c,v 1.3 1995/03/21 15:07:00 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com3.c,v 1.5 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,231 +47,226 @@ static char rcsid[] = "$NetBSD: com3.c,v 1.3 1995/03/21 15:07:00 cgd Exp $";
void
dig()
{
- if (testbit(inven,SHOVEL)){
+ if (testbit(inven, SHOVEL)) {
puts("OK");
- btime++;
- switch(position){
- case 144: /* copse near beach */
- if (!notes[DUG]){
- setbit(location[position].objects,DEADWOOD);
- setbit(location[position].objects,COMPASS);
- setbit(location[position].objects,KNIFE);
- setbit(location[position].objects,MACE);
- notes[DUG] = 1;
- }
- break;
+ ourtime++;
+ switch (position) {
+ case 144: /* copse near beach */
+ if (!notes[DUG]) {
+ setbit(location[position].objects, DEADWOOD);
+ setbit(location[position].objects, COMPASS);
+ setbit(location[position].objects, KNIFE);
+ setbit(location[position].objects, MACE);
+ notes[DUG] = 1;
+ }
+ break;
- default:
- puts("Nothing happens.");
+ default:
+ puts("Nothing happens.");
}
- }
- else
+ } else
puts("You don't have a shovel.");
}
int
jump()
{
- register int n;
+ int n;
- switch(position){
- default:
- puts("Nothing happens.");
- return(-1);
+ switch (position) {
+ default:
+ puts("Nothing happens.");
+ return (-1);
- case 242:
- position = 133;
- break;
- case 214:
- case 215:
- case 162:
- case 159:
- position = 145;
- break;
- case 232:
- position = 275;
- break;
- case 3:
- position = 1;
- break;
- case 172:
- position = 201;
+ case 242:
+ position = 133;
+ break;
+ case 214:
+ case 215:
+ case 162:
+ case 159:
+ position = 145;
+ break;
+ case 232:
+ position = 275;
+ break;
+ case 3:
+ position = 1;
+ break;
+ case 172:
+ position = 201;
}
puts("Ahhhhhhh...");
injuries[12] = injuries[8] = injuries[7] = injuries[6] = 1;
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n)){
- clearbit(inven,n);
- setbit(location[position].objects,n);
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n)) {
+ clearbit(inven, n);
+ setbit(location[position].objects, n);
}
carrying = 0;
encumber = 0;
- return(0);
+ return (0);
}
void
bury()
{
- int value;
+ int value;
- if (testbit(inven,SHOVEL)){
- while(wordtype[++wordnumber] != OBJECT && wordtype[wordnumber] != NOUNS && wordnumber < wordcount);
+ if (testbit(inven, SHOVEL)) {
+ while (wordtype[++wordnumber] != OBJECT && wordtype[wordnumber] != NOUNS && wordnumber < wordcount);
value = wordvalue[wordnumber];
- if (wordtype[wordnumber] == NOUNS && (testbit(location[position].objects,value) || value == BODY))
- switch(value){
- case BODY:
- wordtype[wordnumber] = OBJECT;
- if (testbit(inven,MAID) || testbit(location[position].objects,MAID))
- value = MAID;
- if (testbit(inven,DEADWOOD) || testbit(location[position].objects,DEADWOOD))
- value = DEADWOOD;
- if (testbit(inven,DEADGOD) || testbit(location[position].objects,DEADGOD))
- value = DEADGOD;
- if (testbit(inven,DEADTIME) || testbit(location[position].objects,DEADTIME))
- value = DEADTIME;
- if (testbit(inven,DEADNATIVE) || testbit(location[position].objects,DEADNATIVE))
- value = DEADNATIVE;
- break;
+ if (wordtype[wordnumber] == NOUNS && (testbit(location[position].objects, value) || value == BODY))
+ switch (value) {
+ case BODY:
+ wordtype[wordnumber] = OBJECT;
+ if (testbit(inven, MAID) || testbit(location[position].objects, MAID))
+ value = MAID;
+ if (testbit(inven, DEADWOOD) || testbit(location[position].objects, DEADWOOD))
+ value = DEADWOOD;
+ if (testbit(inven, DEADGOD) || testbit(location[position].objects, DEADGOD))
+ value = DEADGOD;
+ if (testbit(inven, DEADTIME) || testbit(location[position].objects, DEADTIME))
+ value = DEADTIME;
+ if (testbit(inven, DEADNATIVE) || testbit(location[position].objects, DEADNATIVE))
+ value = DEADNATIVE;
+ break;
- case NATIVE:
- case NORMGOD:
- puts("She screams as you wrestle her into the hole.");
- case TIMER:
- power += 7;
- ego -= 10;
- case AMULET:
- case MEDALION:
- case TALISMAN:
- wordtype[wordnumber] = OBJECT;
- break;
+ case NATIVE:
+ case NORMGOD:
+ puts("She screams as you wrestle her into the hole.");
+ case TIMER:
+ power += 7;
+ ego -= 10;
+ case AMULET:
+ case MEDALION:
+ case TALISMAN:
+ wordtype[wordnumber] = OBJECT;
+ break;
- default:
- puts("Wha..?");
+ default:
+ puts("Wha..?");
}
- if (wordtype[wordnumber] == OBJECT && position > 88 && (testbit(inven,value) || testbit(location[position].objects,value))){
+ if (wordtype[wordnumber] == OBJECT && position > 88 && (testbit(inven, value) || testbit(location[position].objects, value))) {
puts("Buried.");
- if (testbit(inven,value)){
- clearbit(inven,value);
+ if (testbit(inven, value)) {
+ clearbit(inven, value);
carrying -= objwt[value];
encumber -= objcumber[value];
}
- clearbit(location[position].objects,value);
- switch(value){
- case MAID:
- case DEADWOOD:
- case DEADNATIVE:
- case DEADTIME:
- case DEADGOD:
- ego += 2;
- printf("The %s should rest easier now.\n",objsht[value]);
+ clearbit(location[position].objects, value);
+ switch (value) {
+ case MAID:
+ case DEADWOOD:
+ case DEADNATIVE:
+ case DEADTIME:
+ case DEADGOD:
+ ego += 2;
+ printf("The %s should rest easier now.\n", objsht[value]);
}
- }
- else
+ } else
puts("It doesn't seem to work.");
- }
- else
+ } else
puts("You aren't holding a shovel.");
}
void
drink()
{
- register int n;
+ int n;
- if (testbit(inven,POTION)){
+ if (testbit(inven, POTION)) {
puts("The cool liquid runs down your throat but turns to fire and you choke.");
puts("The heat reaches your limbs and tingles your spirit. You feel like falling");
puts("asleep.");
clearbit(inven, POTION);
WEIGHT = MAXWEIGHT;
CUMBER = MAXCUMBER;
- for (n=0; n < NUMOFINJURIES; n++)
+ for (n = 0; n < NUMOFINJURIES; n++)
injuries[n] = 0;
- btime++;
+ ourtime++;
zzz();
- }
- else
+ } else
puts("I'm not thirsty.");
}
int
shoot()
{
- int firstnumber, value;
- register int n;
+ int firstnumber, value;
+ int n;
- firstnumber = wordcount + 2;
- if (!testbit(inven,LASER))
+ firstnumber = wordnumber;
+ if (!testbit(inven, LASER))
puts("You aren't holding a blaster.");
else {
- firstnumber = wordnumber;
while(wordtype[++wordnumber] == ADJS);
- while(wordnumber<=wordcount && wordtype[wordnumber] == OBJECT){
+ while(wordnumber <= wordcount && wordtype[wordnumber] == OBJECT) {
value = wordvalue[wordnumber];
printf("%s:\n", objsht[value]);
for (n=0; objsht[value][n]; n++);
- if (testbit(location[position].objects,value)){
- clearbit(location[position].objects,value);
- btime++;
- printf("The %s explode%s\n",objsht[value],(objsht[value][n-1]=='s' ? (objsht[value][n-2]=='s' ? "s." : ".") : "s."));
+ if (testbit(location[position].objects, value)) {
+ clearbit(location[position].objects, value);
+ ourtime++;
+ printf("The %s explode%s\n", objsht[value], (objsht[value][n-1]=='s' ? (objsht[value][n-2]=='s' ? "s." : ".") : "s."));
if (value == BOMB)
die(0);
- }
- else
+ } else
printf("I dont see any %s around here.\n", objsht[value]);
if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
wordnumber++;
else
- return(firstnumber);
+ return (firstnumber);
}
- /* special cases with their own return()'s */
+ /* special cases with their own return()'s */
+
+ if (wordnumber <= wordcount && wordtype[wordnumber] == NOUNS) {
+ ourtime++;
+ switch (wordvalue[wordnumber]) {
- if (wordnumber <= wordcount && wordtype[wordnumber] == NOUNS){
- btime++;
- switch(wordvalue[wordnumber]){
-
- case DOOR:
- switch(position){
- case 189:
- case 231:
- puts("The door is unhinged.");
- location[189].north = 231;
- location[231].south = 189;
- whichway(location[position]);
- break;
- case 30:
- puts("The wooden door splinters.");
- location[30].west = 25;
- whichway(location[position]);
- break;
- case 31:
- puts("The laser blast has no effect on the door.");
- break;
- case 20:
- puts("The blast hits the door and it explodes into flame. The magnesium burns");
- puts("so rapidly that we have no chance to escape.");
- die(0);
- default:
- puts("Nothing happens.");
- }
+ case DOOR:
+ switch(position) {
+ case 189:
+ case 231:
+ puts("The door is unhinged.");
+ location[189].north = 231;
+ location[231].south = 189;
+ whichway(location[position]);
break;
+ case 30:
+ puts("The wooden door splinters.");
+ location[30].west = 25;
+ whichway(location[position]);
+ break;
+ case 31:
+ puts("The laser blast has no effect on the door.");
+ break;
+ case 20:
+ puts("The blast hits the door and it explodes into flame. The magnesium burns");
+ puts("so rapidly that we have no chance to escape.");
+ die(0);
+ default:
+ puts("Nothing happens.");
+ }
+ break;
- case NORMGOD:
- if (testbit(location[position].objects,BATHGOD)){
- puts("The goddess is hit in the chest and splashes back against the rocks.");
- puts("Dark blood oozes from the charred blast hole. Her naked body floats in the");
- puts("pools and then off downstream.");
- clearbit(location[position].objects,BATHGOD);
- setbit(location[180].objects,DEADGOD);
- power += 5;
- ego -= 10;
- notes[JINXED]++;
- } else if (testbit(location[position].objects,NORMGOD)){
+ case NORMGOD:
+ if (testbit(location[position].objects, BATHGOD)) {
+ puts("The goddess is hit in the chest and splashes back against the rocks.");
+ puts("Dark blood oozes from the charred blast hole. Her naked body floats in the");
+ puts("pools and then off downstream.");
+ clearbit(location[position].objects, BATHGOD);
+ setbit(location[180].objects, DEADGOD);
+ power += 5;
+ ego -= 10;
+ notes[JINXED]++;
+ } else
+ if (testbit(location[position].objects, NORMGOD)) {
puts("The blast catches the goddess in the stomach, knocking her to the ground.");
puts("She writhes in the dirt as the agony of death taunts her.");
puts("She has stopped moving.");
- clearbit(location[position].objects,NORMGOD);
- setbit(location[position].objects,DEADGOD);
+ clearbit(location[position].objects, NORMGOD);
+ setbit(location[position].objects, DEADGOD);
power += 5;
ego -= 10;
notes[JINXED]++;
@@ -280,46 +275,47 @@ shoot()
break;
} else
puts("I don't see any goddess around here.");
- break;
+ break;
- case TIMER:
- if (testbit(location[position].objects,TIMER)){
- puts("The old man slumps over the bar.");
- power++;
- ego -= 2;
- notes[JINXED]++;
- clearbit(location[position].objects,TIMER);
- setbit(location[position].objects,DEADTIME);
- }
- else puts("What old timer?");
- break;
- case MAN:
- if (testbit(location[position].objects,MAN)){
- puts("The man falls to the ground with blood pouring all over his white suit.");
- puts("Your fantasy is over.");
- die(0);
- }
- else puts("What man?");
- break;
- case NATIVE:
- if (testbit(location[position].objects,NATIVE)){
- puts("The girl is blown backwards several feet and lies in a pool of blood.");
- clearbit(location[position].objects,NATIVE);
- setbit(location[position].objects,DEADNATIVE);
- power += 5;
- ego -= 2;
- notes[JINXED]++;
- } else puts("There is no girl here.");
- break;
- case -1:
- puts("Shoot what?");
- break;
+ case TIMER:
+ if (testbit(location[position].objects, TIMER)) {
+ puts("The old man slumps over the bar.");
+ power++;
+ ego -= 2;
+ notes[JINXED]++;
+ clearbit(location[position].objects, TIMER);
+ setbit(location[position].objects, DEADTIME);
+ } else
+ puts("What old-timer?");
+ break;
+ case MAN:
+ if (testbit(location[position].objects, MAN)) {
+ puts("The man falls to the ground with blood pouring all over his white suit.");
+ puts("Your fantasy is over.");
+ die(0);
+ } else
+ puts("What man?");
+ break;
+ case NATIVE:
+ if (testbit(location[position].objects, NATIVE)) {
+ puts("The girl is blown backwards several feet and lies in a pool of blood.");
+ clearbit(location[position].objects, NATIVE);
+ setbit(location[position].objects, DEADNATIVE);
+ power += 5;
+ ego -= 2;
+ notes[JINXED]++;
+ } else
+ puts("There is no girl here.");
+ break;
+ case -1:
+ puts("Shoot what?");
+ break;
- default:
- printf("You can't shoot the %s.\n",objsht[wordvalue[wordnumber]]);
+ default:
+ printf("You can't shoot the %s.\n", objsht[wordvalue[wordnumber]]);
}
- }
- else puts("You must be a looney.");
+ } else
+ puts("You must be a looney.");
}
- return(firstnumber);
+ return (firstnumber);
}
diff --git a/games/battlestar/com4.c b/games/battlestar/com4.c
index 5d5750d3da1..b923590395f 100644
--- a/games/battlestar/com4.c
+++ b/games/battlestar/com4.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com4.c,v 1.5 1997/12/16 07:54:23 angelos Exp $ */
+/* $OpenBSD: com4.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: com4.c,v 1.3 1995/03/21 15:07:04 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)com4.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com4.c,v 1.3 1995/03/21 15:07:04 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com4.c,v 1.6 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -46,265 +46,262 @@ static char rcsid[] = "$NetBSD: com4.c,v 1.3 1995/03/21 15:07:04 cgd Exp $";
int
take(from)
-unsigned int from[];
+ unsigned int from[];
{
- int firstnumber, heavy, bulky, value;
- register int n;
+ int firstnumber, heavy, bulky, value;
+ int n;
firstnumber = wordnumber;
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == OFF){
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == OFF) {
wordnumber++;
wordvalue[wordnumber] = TAKEOFF;
- return(cypher());
- }
- else {
- while(wordtype[++wordnumber] == ADJS);
- while(wordnumber<=wordcount && wordtype[wordnumber] == OBJECT){
+ return (cypher());
+ } else {
+ while (wordtype[++wordnumber] == ADJS);
+ while (wordnumber <= wordcount && wordtype[wordnumber] == OBJECT) {
value = wordvalue[wordnumber];
printf("%s:\n", objsht[value]);
- for (n=0; objsht[value][n]; n++);
+ for (n = 0; objsht[value][n]; n++);
heavy = (carrying + objwt[value]) <= WEIGHT;
bulky = (encumber + objcumber[value]) <= CUMBER;
- if ((testbit(from,value) || wiz || tempwiz) && heavy && bulky && !testbit(inven,value)){
- setbit(inven,value);
+ if ((testbit(from, value) || wiz || tempwiz) && heavy && bulky && !testbit(inven, value)) {
+ setbit(inven, value);
carrying += objwt[value];
encumber += objcumber[value];
- btime++;
- if (testbit(from,value))
+ ourtime++;
+ if (testbit(from, value))
printf("Taken.\n");
else
printf("Zap! Taken from thin air.\n");
- clearbit(from,value);
+ clearbit(from, value);
if (value == MEDALION)
win--;
- }
- else if (testbit(inven,value))
- printf("You're already holding%s%s.\n", (objsht[value][n-1] == 's' ? " " : " a "),objsht[value]);
- else if (!heavy)
- printf("The %s %s too heavy.\n", objsht[value],(objsht[value][n-1] == 's' ? "are" : "is"));
- else if (!bulky)
- printf("The %s %s too cumbersome to hold.\n", objsht[value],(objsht[value][n-1] == 's' ? "are" : "is"));
- else
- printf("I dont see any %s around here.\n", objsht[value]);
- if (wordnumber < wordcount -1 && wordvalue[++wordnumber] == AND)
+ } else
+ if (testbit(inven, value))
+ printf("You're already holding%s%s.\n", (objsht[value][n-1] == 's' ? " " : " a "), objsht[value]);
+ else if (!heavy)
+ printf("The %s %s too heavy.\n", objsht[value],(objsht[value][n-1] == 's' ? "are" : "is"));
+ else if (!bulky)
+ printf("The %s %s too cumbersome to hold.\n", objsht[value],(objsht[value][n-1] == 's' ? "are" : "is"));
+ else
+ printf("I dont see any %s around here.\n", objsht[value]);
+ if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
wordnumber++;
else
- return(firstnumber);
+ return (firstnumber);
}
}
- /* special cases with their own return()'s */
+ /* special cases with their own return()'s */
if (wordnumber <= wordcount && wordtype[wordnumber] == NOUNS)
- switch(wordvalue[wordnumber]){
-
- case SWORD:
- if (testbit(from, SWORD)){
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- if (testbit(from, TWO_HANDED)){
- wordvalue[wordnumber] = TWO_HANDED;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- wordvalue[wordnumber] = BROAD;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
+ switch (wordvalue[wordnumber]) {
- case BODY:
- if (testbit(from,MAID)){
- wordvalue[wordnumber] = MAID;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- else if (testbit(from,DEADWOOD)){
- wordvalue[wordnumber] = DEADWOOD;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- else if (testbit(from,DEADNATIVE)){
- wordvalue[wordnumber] = DEADNATIVE;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- else if (testbit(from,DEADGOD)){
- wordvalue[wordnumber] = DEADGOD;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- else {
- wordvalue[wordnumber] = DEADTIME;
- wordtype[wordnumber--] = OBJECT;
- return(take(from));
- }
- break;
-
- case AMULET:
- if (testbit(location[position].objects,AMULET)){
- puts("The amulet is warm to the touch, and its beauty catches your breath.");
- puts("A mist falls over your eyes, but then it is gone. Sounds seem clearer");
- puts("and sharper but far away as if in a dream. The sound of purling water reaches");
- puts("you from afar. The mist falls again, and your heart leaps in horror. The gold");
- puts("freezes your hands and fathomless darkness engulfs your soul.");
- }
+ case SWORD:
+ if (testbit(from, SWORD)) {
wordtype[wordnumber--] = OBJECT;
- return(take(from));
-
- case MEDALION:
- if (testbit(location[position].objects, MEDALION)){
- puts("The medallion is warm, and it rekindles your spirit with the warmth of life.");
- puts("Your amulet begins to glow as the medallion is brought near to it, and together\nthey radiate.");
- }
+ return (take(from));
+ }
+ if (testbit(from, TWO_HANDED)) {
+ wordvalue[wordnumber] = TWO_HANDED;
wordtype[wordnumber--] = OBJECT;
- return(take(from));
+ return (take(from));
+ }
+ wordvalue[wordnumber] = BROAD;
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
- case TALISMAN:
- if (testbit(location[position].objects,TALISMAN)){
- puts("The talisman is cold to the touch, and it sends a chill down your spine.");
- }
+ case BODY:
+ if (testbit(from, MAID)) {
+ wordvalue[wordnumber] = MAID;
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+ }
+ else if (testbit(from, DEADWOOD)) {
+ wordvalue[wordnumber] = DEADWOOD;
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+ }
+ else if (testbit(from, DEADNATIVE)) {
+ wordvalue[wordnumber] = DEADNATIVE;
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+ }
+ else if (testbit(from, DEADGOD)) {
+ wordvalue[wordnumber] = DEADGOD;
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+ } else {
+ wordvalue[wordnumber] = DEADTIME;
wordtype[wordnumber--] = OBJECT;
- return(take(from));
-
- case NORMGOD:
- if (testbit(location[position].objects,BATHGOD) && (testbit(wear,AMULET) || testbit(inven,AMULET))){
- puts("She offers a delicate hand, and you help her out of the sparkling springs.");
- puts("Water droplets like liquid silver bedew her golden skin, but when they part");
- puts("from her, they fall as teardrops. She wraps a single cloth around her and");
- puts("ties it at the waist. Around her neck hangs a golden amulet.");
- puts("She bids you to follow her.");
- pleasure++;
- followgod = btime;
- clearbit(location[position].objects,BATHGOD);
- } else if (!testbit(location[position].objects,BATHGOD))
+ return (take(from));
+ }
+ break;
+
+ case AMULET:
+ if (testbit(location[position].objects, AMULET)) {
+ puts("The amulet is warm to the touch, and its beauty catches your breath.");
+ puts("A mist falls over your eyes, but then it is gone. Sounds seem clearer");
+ puts("and sharper but far away as if in a dream. The sound of purling water reaches");
+ puts("you from afar. The mist falls again, and your heart leaps in horror. The gold");
+ puts("freezes your hands and fathomless darkness engulfs your soul.");
+ }
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+
+ case MEDALION:
+ if (testbit(location[position].objects, MEDALION)) {
+ puts("The medallion is warm, and it rekindles your spirit with the warmth of life.");
+ puts("Your amulet begins to glow as the medallion is brought near to it, and together\nthey radiate.");
+ }
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+
+ case TALISMAN:
+ if (testbit(location[position].objects, TALISMAN)) {
+ puts("The talisman is cold to the touch, and it sends a chill down your spine.");
+ }
+ wordtype[wordnumber--] = OBJECT;
+ return (take(from));
+
+ case NORMGOD:
+ if (testbit(location[position].objects, BATHGOD) && (testbit(wear, AMULET) || testbit(inven, AMULET))) {
+ puts("She offers a delicate hand, and you help her out of the sparkling springs.");
+ puts("Water droplets like liquid silver bedew her golden skin, but when they part");
+ puts("from her, they fall as teardrops. She wraps a single cloth around her and");
+ puts("ties it at the waist. Around her neck hangs a golden amulet.");
+ puts("She bids you to follow her.");
+ pleasure++;
+ followgod = ourtime;
+ clearbit(location[position].objects, BATHGOD);
+ } else
+ if (!testbit(location[position].objects, BATHGOD))
puts("You're in no position to take her.");
else
puts("She moves away from you.");
- break;
+ break;
- default:
- puts("It doesn't seem to work.");
+ default:
+ puts("It doesn't seem to work.");
}
else
puts("You've got to be kidding.");
- return(firstnumber);
+ return (firstnumber);
}
int
throw(name)
- char *name;
+ char *name;
{
unsigned int n;
- int deposit = 0;
- int first, value;
+ int deposit = 0;
+ int first, value;
first = wordnumber;
- if (drop(name) != -1){
- switch(wordvalue[wordnumber]){
-
- case AHEAD:
- deposit = ahead;
- break;
-
- case BACK:
- deposit = back;
- break;
-
- case LEFT:
- deposit = left;
- break;
-
- case RIGHT:
- deposit = right;
- break;
-
- case UP:
- deposit = location[position].up * (location[position].access || position == FINAL);
- break;
-
- case DOWN:
- deposit = location[position].down;
- break;
+ if (drop(name) != -1) {
+ switch (wordvalue[wordnumber]) {
+
+ case AHEAD:
+ deposit = ahead;
+ break;
+
+ case BACK:
+ deposit = back;
+ break;
+
+ case LEFT:
+ deposit = left;
+ break;
+
+ case RIGHT:
+ deposit = right;
+ break;
+
+ case UP:
+ deposit = location[position].up * (location[position].access || position == FINAL);
+ break;
+
+ case DOWN:
+ deposit = location[position].down;
+ break;
}
wordnumber = first;
while (wordtype[++wordnumber] == ADJS);
- while (wordnumber <= wordcount){
+ while (wordnumber <= wordcount) {
value = wordvalue[wordnumber];
- if (deposit && testbit(location[position].objects,value)){
- clearbit(location[position].objects,value);
+ if (deposit && testbit(location[position].objects, value)) {
+ clearbit(location[position].objects, value);
if (value != GRENADE)
- setbit(location[deposit].objects,value);
- else{
+ setbit(location[deposit].objects, value);
+ else {
puts("A thundering explosion nearby sends up a cloud of smoke and shrapnel.");
- for (n = 0; n < NUMOFWORDS; n ++)
+ for (n = 0; n < NUMOFWORDS; n++)
location[deposit].objects[n] = 0;
- setbit(location[deposit].objects,CHAR);
+ setbit(location[deposit].objects, CHAR);
}
if (value == ROPE && position == FINAL)
location[position].access = 1;
- switch(deposit){
- case 189:
- case 231:
- puts("The stone door is unhinged.");
- location[189].north = 231;
- location[231].south = 189;
- break;
- case 30:
- puts("The wooden door is blown open.");
- location[30].west = 25;
- break;
- case 31:
- puts("The door is not damaged.");
+ switch (deposit) {
+ case 189:
+ case 231:
+ puts("The stone door is unhinged.");
+ location[189].north = 231;
+ location[231].south = 189;
+ break;
+ case 30:
+ puts("The wooden door is blown open.");
+ location[30].west = 25;
+ break;
+ case 31:
+ puts("The door is not damaged.");
+ }
+ } else
+ if (value == GRENADE && testbit(location[position].objects, value)) {
+ puts("You are blown into shreds when your grenade explodes.");
+ die(0);
}
- }
- else if (value == GRENADE && testbit(location[position].objects,value)){
- puts("You are blown into shreds when your grenade explodes.");
- die(0);
- }
if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
wordnumber++;
else
- return(first);
+ return (first);
}
- return(first);
+ return (first);
}
- return(first);
+ return (first);
}
int
drop(name)
-char *name;
+ char *name;
{
-
- int firstnumber, value;
+
+ int firstnumber, value;
firstnumber = wordnumber;
- while (wordtype[++wordnumber] == ADJS)
- ;
- while (wordnumber<=wordcount && (wordtype[wordnumber] == OBJECT || wordtype[wordnumber] == NOUNS)) {
+ while (wordtype[++wordnumber] == ADJS);
+ while (wordnumber <= wordcount && (wordtype[wordnumber] == OBJECT || wordtype[wordnumber] == NOUNS)) {
value = wordvalue[wordnumber];
printf("%s:\n", objsht[value]);
- if (testbit(inven,value)){
- clearbit(inven,value);
+ if (testbit(inven, value)) {
+ clearbit(inven, value);
carrying -= objwt[value];
encumber -= objcumber[value];
- if (value == BOMB){
+ if (value == BOMB) {
puts("The bomb explodes. A blinding white light and immense concussion obliterate us.");
die(0);
}
if (value != AMULET && value != MEDALION && value != TALISMAN)
- setbit(location[position].objects,value);
+ setbit(location[position].objects, value);
else
tempwiz = 0;
- btime++;
+ ourtime++;
if (*name == 'K')
puts("Drop kicked.");
else
printf("%s.\n", name);
- }
- else {
+ } else {
if (*name != 'K') {
printf("You aren't holding the %s.\n", objsht[value]);
- if (testbit(location[position].objects,value)) {
+ if (testbit(location[position].objects, value)) {
if (*name == 'T')
puts("Kicked instead.");
else if (*name == 'G')
@@ -316,77 +313,76 @@ char *name;
if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
wordnumber++;
else
- return(firstnumber);
+ return (firstnumber);
}
puts("Do what?");
- return(-1);
+ return (-1);
}
int
takeoff()
{
wordnumber = take(wear);
- return(drop("Dropped"));
+ return (drop("Dropped"));
}
int
puton()
{
wordnumber = take(location[position].objects);
- return(wearit());
+ return (wearit());
}
int
eat()
{
- int firstnumber, value;
+ int firstnumber, value;
firstnumber = wordnumber;
- while(wordtype[++wordnumber] == ADJS);
- while(wordnumber <= wordcount){
+ while (wordtype[++wordnumber] == ADJS);
+ while (wordnumber <= wordcount) {
value = wordvalue[wordnumber];
- switch(value){
-
- case -1:
- puts("Eat what?");
- return(firstnumber);
-
- default:
- printf("You can't eat%s%s!\n",
- wordtype[wordnumber] == OBJECT &&
- objsht[value]
- [strlen(objsht[value]) - 1] == 's' ?
- " " : " a ",
- words[wordnumber]);
- return(firstnumber);
-
- case PAPAYAS:
- case PINEAPPLE:
- case KIWI:
- case COCONUTS: /* eatable things */
- case MANGO:
-
- printf("%s:\n",objsht[value]);
- if (testbit(inven,value) && btime > ate - CYCLE && testbit(inven,KNIFE)){
- clearbit(inven,value);
- carrying -= objwt[value];
- encumber -= objcumber[value];
- ate = max(btime,ate) + CYCLE/3;
- snooze += CYCLE/10;
- btime++;
- puts("Eaten. You can explore a little longer now.");
- }
- else if (btime < ate - CYCLE)
- puts("You're stuffed.");
- else if (!testbit(inven,KNIFE))
- puts("You need a knife.");
- else
- printf("You aren't holding the %s.\n", objsht[value]);
- if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
- wordnumber++;
- else
- return(firstnumber);
- } /* end switch */
- } /* end while */
- return(firstnumber);
+ switch (value) {
+
+ case -1:
+ puts("Eat what?");
+ return (firstnumber);
+
+ default:
+ printf("You can't eat%s%s!\n",
+ wordtype[wordnumber] == OBJECT &&
+ objsht[value][strlen(objsht[value]) - 1] == 's' ? " " : " a ",
+ words[wordnumber]);
+ return (firstnumber);
+
+ case PAPAYAS:
+ case PINEAPPLE:
+ case KIWI:
+ case COCONUTS: /* eatable things */
+ case MANGO:
+
+ printf("%s:\n", objsht[value]);
+ if (testbit(inven, value) && ourtime > ate - CYCLE &&
+ testbit(inven, KNIFE)) {
+ clearbit(inven, value);
+ carrying -= objwt[value];
+ encumber -= objcumber[value];
+ ate = max(ourtime, ate) + CYCLE / 3;
+ snooze += CYCLE / 10;
+ ourtime++;
+ puts("Eaten. You can explore a little longer now.");
+ }
+ else if (ourtime < ate - CYCLE)
+ puts("You're stuffed.");
+ else if (!testbit(inven, KNIFE))
+ puts("You need a knife.");
+ else
+ printf("You aren't holding the %s.\n", objsht[value]);
+ if (wordnumber < wordcount - 1 && wordvalue[++wordnumber] == AND)
+ wordnumber++;
+ else
+ return (firstnumber);
+ } /* end switch */
+ } /* end while */
+ return (firstnumber);
}
diff --git a/games/battlestar/com5.c b/games/battlestar/com5.c
index fc9b01bec47..e70321863eb 100644
--- a/games/battlestar/com5.c
+++ b/games/battlestar/com5.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com5.c,v 1.3 1997/08/24 21:55:03 deraadt Exp $ */
+/* $OpenBSD: com5.c,v 1.4 1998/09/13 01:30:30 pjanzen Exp $ */
/* $NetBSD: com5.c,v 1.3 1995/03/21 15:07:07 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)com5.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com5.c,v 1.3 1995/03/21 15:07:07 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com5.c,v 1.4 1998/09/13 01:30:30 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -48,193 +48,192 @@ void
kiss()
{
while (wordtype[++wordnumber] != NOUNS && wordnumber <= wordcount);
- if (wordtype[wordnumber] == NOUNS && testbit(location[position].objects,wordvalue[wordnumber])){
+ if (wordtype[wordnumber] == NOUNS &&
+ testbit(location[position].objects, wordvalue[wordnumber])) {
pleasure++;
printf("Kissed.\n");
- switch (wordvalue[wordnumber]){
- case NORMGOD:
- switch(godready++){
- case 0:
- puts("She squirms and avoids your advances.");
- break;
- case 1:
- puts("She is coming around; she didn't fight it as much.");
- break;
- case 2:
- puts("She's begining to like it.");
- break;
- default:
- puts("She's gone limp.");
-
- }
- break;
- case NATIVE:
- puts("The lips are warm and her body robust. She pulls you down to the ground.");
+ switch (wordvalue[wordnumber]) {
+ case NORMGOD:
+ switch (godready++) {
+ case 0:
+ puts("She squirms and avoids your advances.");
break;
- case TIMER:
- puts("The old man blushes.");
+ case 1:
+ puts("She is coming around; she didn't fight it as much.");
break;
- case MAN:
- puts("The dwarf punches you in the kneecap.");
+ case 2:
+ puts("She's begining to like it.");
break;
default:
- pleasure--;
+ puts("She's gone limp.");
+
+ }
+ break;
+ case NATIVE:
+ puts("The lips are warm and her body robust. She pulls you down to the ground.");
+ break;
+ case TIMER:
+ puts("The old man blushes.");
+ break;
+ case MAN:
+ puts("The dwarf punches you in the kneecap.");
+ break;
+ default:
+ pleasure--;
}
- }
- else puts("I'd prefer not to.");
+ } else
+ puts("I'd prefer not to.");
}
void
love()
{
- register int n;
+ int n;
while (wordtype[++wordnumber] != NOUNS && wordnumber <= wordcount);
- if (wordtype[wordnumber] == NOUNS && testbit(location[position].objects,wordvalue[wordnumber])){
- if (wordvalue[wordnumber] == NORMGOD && !loved)
- if (godready >= 2){
- puts("She cuddles up to you, and her mouth starts to work:\n'That was my sister's amulet. The lovely goddess, Purl, was she. The Empire\ncaptured her just after the Darkness came. My other sister, Vert, was killed\nby the Dark Lord himself. He took her amulet and warped its power.\nYour quest was foretold by my father before he died, but to get the Dark Lord's\namulet you must use cunning and skill. I will leave you my amulet.");
+ if (wordtype[wordnumber] == NOUNS && testbit(location[position].objects, wordvalue[wordnumber])) {
+ if (wordvalue[wordnumber] == NORMGOD && !loved) {
+ if (godready >= 2) {
+ puts("She cuddles up to you, and her mouth starts to work:\n'That was my sister's amulet. The lovely goddess, Purl, was she. The Empire\ncaptured her just after the Darkness came. My other sister, Vert, was killed\nby the Dark Lord himself. He took her amulet and warped its power.\nYour quest was foretold by my father before he died, but to get the Dark Lord's\namulet you must use cunning and skill. I will leave you my amulet,");
puts("which you may use as you wish. As for me, I am the last goddess of the\nwaters. My father was the Island King, and the rule is rightfully mine.'\n\nShe pulls the throne out into a large bed.");
power++;
pleasure += 15;
ego++;
- if (card(injuries, NUMOFINJURIES)){
+ if (card(injuries, NUMOFINJURIES)) {
puts("Her kisses revive you; your wounds are healed.\n");
- for (n=0; n < NUMOFINJURIES; n++)
+ for (n = 0; n < NUMOFINJURIES; n++)
injuries[n] = 0;
WEIGHT = MAXWEIGHT;
CUMBER = MAXCUMBER;
}
printf("Goddess:\n");
if (!loved)
- setbit(location[position].objects,MEDALION);
+ setbit(location[position].objects, MEDALION);
loved = 1;
- btime += 10;
+ ourtime += 10;
zzz();
- }
- else {
+ } else {
puts("You wish!");
return;
}
- if (wordvalue[wordnumber] == NATIVE){
- puts("The girl is easy prey. She peals off her sarong and indulges you.");
+ }
+ if (wordvalue[wordnumber] == NATIVE) {
+ puts("The girl is easy prey. She peels off her sarong and indulges you.");
power++;
pleasure += 5;
printf("Girl:\n");
- btime += 10;
+ ourtime += 10;
zzz();
}
printf("Loved.\n");
- }
- else puts("I't doesn't seem to work.");
+ } else
+ puts("It doesn't seem to work.");
}
int
zzz()
{
- int oldtime;
- register int n;
+ int oldtime;
+ int n;
- oldtime = btime;
- if ((snooze - btime) < (0.75 * CYCLE)){
- btime += 0.75 * CYCLE - (snooze - btime);
+ oldtime = ourtime;
+ if ((snooze - ourtime) < (0.75 * CYCLE)) {
+ ourtime += 0.75 * CYCLE - (snooze - ourtime);
printf("<zzz>");
- for (n = 0; n < btime - oldtime; n++)
+ for (n = 0; n < ourtime - oldtime; n++)
printf(".");
printf("\n");
- snooze += 3 * (btime - oldtime);
- if (notes[LAUNCHED]){
- fuel -= (btime - oldtime);
- if (location[position].down){
+ snooze += 3 * (ourtime - oldtime);
+ if (notes[LAUNCHED]) {
+ fuel -= (ourtime - oldtime);
+ if (location[position].down) {
position = location[position].down;
crash();
- }
- else
+ } else
notes[LAUNCHED] = 0;
}
- if (OUTSIDE && rnd(100) < 50){
+ if (OUTSIDE && rnd(100) < 50) {
puts("You are awakened abruptly by the sound of someone nearby.");
- switch(rnd(4)){
- case 0:
- if (ucard(inven)){
+ switch (rnd(4)) {
+ case 0:
+ if (ucard(inven)) {
+ n = rnd(NUMOFOBJECTS);
+ while (!testbit(inven, n))
n = rnd(NUMOFOBJECTS);
- while(!testbit(inven,n))
- n = rnd(NUMOFOBJECTS);
- clearbit(inven,n);
- if (n != AMULET && n != MEDALION && n != TALISMAN)
- setbit(location[position].objects,n);
- carrying -= objwt[n];
- encumber -= objcumber[n];
- }
- puts("A fiendish little Elf is stealing your treasures!");
- fight(ELF,10);
- break;
- case 1:
- setbit(location[position].objects,DEADWOOD);
- break;
- case 2:
- setbit(location[position].objects,HALBERD);
- break;
- default:
- break;
+ clearbit(inven, n);
+ if (n != AMULET && n != MEDALION && n != TALISMAN)
+ setbit(location[position].objects, n);
+ carrying -= objwt[n];
+ encumber -= objcumber[n];
+ }
+ puts("A fiendish little Elf is stealing your treasures!");
+ fight(ELF, 10);
+ break;
+ case 1:
+ setbit(location[position].objects, DEADWOOD);
+ break;
+ case 2:
+ setbit(location[position].objects, HALBERD);
+ break;
+ default:
+ break;
}
}
- }
- else
- return(0);
- return(1);
+ } else
+ return (0);
+ return (1);
}
void
chime()
{
- if ((btime / CYCLE + 1) % 2 && OUTSIDE)
- switch((btime % CYCLE)/(CYCLE / 7)){
- case 0:
- puts("It is just after sunrise.");
- break;
- case 1:
- puts("It is early morning.");
- break;
- case 2:
- puts("It is late morning.");
- break;
- case 3:
- puts("It is near noon.");
- break;
- case 4:
- puts("It is early afternoon.");
- break;
- case 5:
- puts("It is late afternoon.");
- break;
- case 6:
- puts("It is near sunset.");
- break;
+ if ((ourtime / CYCLE + 1) % 2 && OUTSIDE)
+ switch ((ourtime % CYCLE) / (CYCLE / 7)) {
+ case 0:
+ puts("It is just after sunrise.");
+ break;
+ case 1:
+ puts("It is early morning.");
+ break;
+ case 2:
+ puts("It is late morning.");
+ break;
+ case 3:
+ puts("It is near noon.");
+ break;
+ case 4:
+ puts("It is early afternoon.");
+ break;
+ case 5:
+ puts("It is late afternoon.");
+ break;
+ case 6:
+ puts("It is near sunset.");
+ break;
}
else if (OUTSIDE)
- switch((btime % CYCLE)/(CYCLE / 7)){
- case 0:
- puts("It is just after sunset.");
- break;
- case 1:
- puts("It is early evening.");
- break;
- case 2:
- puts("The evening is getting old.");
- break;
- case 3:
- puts("It is near midnight.");
- break;
- case 4:
- puts("These are the wee hours of the morning.");
- break;
- case 5:
- puts("The night is waning.");
- break;
- case 6:
- puts("It is almost morning.");
- break;
+ switch ((ourtime % CYCLE) / (CYCLE / 7)) {
+ case 0:
+ puts("It is just after sunset.");
+ break;
+ case 1:
+ puts("It is early evening.");
+ break;
+ case 2:
+ puts("The evening is getting old.");
+ break;
+ case 3:
+ puts("It is near midnight.");
+ break;
+ case 4:
+ puts("These are the wee hours of the morning.");
+ break;
+ case 5:
+ puts("The night is waning.");
+ break;
+ case 6:
+ puts("It is almost morning.");
+ break;
}
else
puts("I can't tell the time in here.");
@@ -247,8 +246,8 @@ give()
last1 = last2 = wordcount + 2;
firstnumber = wordnumber;
- while (wordtype[++wordnumber] != OBJECT && wordvalue[wordnumber] != AMULET && wordvalue[wordnumber] != MEDALION && wordvalue[wordnumber] != TALISMAN && wordnumber <= wordcount);
- if (wordnumber <= wordcount){
+ while (wordtype[++wordnumber] != OBJECT && wordvalue[wordnumber] != AMULET && wordvalue[wordnumber] != MEDALION && wordvalue[wordnumber] != TALISMAN && wordnumber <= wordcount);
+ if (wordnumber <= wordcount) {
obj = wordvalue[wordnumber];
if (obj == EVERYTHING)
wordtype[wordnumber] = -1;
@@ -256,82 +255,96 @@ give()
}
wordnumber = firstnumber;
while ((wordtype[++wordnumber] != NOUNS || wordvalue[wordnumber] == obj) && wordnumber <= wordcount);
- if (wordtype[wordnumber] == NOUNS){
+ if (wordtype[wordnumber] == NOUNS) {
person = wordvalue[wordnumber];
last2 = wordnumber;
}
+ /* Setting wordnumber to last1 - 1 looks wrong if last1 is 0, e.g.,
+ * plain `give'. However, detecting this case is liable to detect
+ * `give foo' as well, which would give a confusing error. We
+ * need to make sure the -1 value can cause no problems if it arises.
+ * If in the below we get to the drop("Given") then drop will look
+ * at word 0 for an object to give, and fail, which is OK; then
+ * result will be -1 and we get to the end, where wordnumber gets
+ * set to something more sensible. If we get to "I don't think
+ * that is possible" then again wordnumber is set to something
+ * sensible. The wordnumber we leave with still isn't right if
+ * you include words the game doesn't know in your command, but
+ * that's no worse than what other commands than give do in
+ * the same place. */
wordnumber = last1 - 1;
- if (person && testbit(location[position].objects,person))
+ if (person && testbit(location[position].objects, person)) {
if (person == NORMGOD && godready < 2 && !(obj == RING || obj == BRACELET))
puts("The goddess won't look at you.");
else
result = drop("Given");
- else {
+ } else {
puts("I don't think that is possible.");
- return(0);
+ wordnumber = max(last1, last2) + 1;
+ return (0);
}
- if (result != -1 && (testbit(location[position].objects,obj) || obj == AMULET || obj == MEDALION || obj == TALISMAN)){
- clearbit(location[position].objects,obj);
- btime++;
+ if (result != -1 && (testbit(location[position].objects, obj) || obj == AMULET || obj == MEDALION || obj == TALISMAN)) {
+ clearbit(location[position].objects, obj);
+ ourtime++;
ego++;
- switch(person){
- case NATIVE:
- puts("She accepts it shyly.");
- ego += 2;
- break;
- case NORMGOD:
- if (obj == RING || obj == BRACELET){
- puts("She takes the charm and puts it on. A little kiss on the cheek is");
- puts("your reward.");
- ego += 5;
- godready += 3;
- }
- if (obj == AMULET || obj == MEDALION || obj == TALISMAN){
- win++;
- ego += 5;
- power -= 5;
- if (win >= 3){
- puts("The powers of the earth are now legitimate. You have destroyed the Darkness");
- puts("and restored the goddess to her thrown. The entire island celebrates with");
- puts("dancing and spring feasts. As a measure of her gratitude, the goddess weds you");
- puts("in the late summer and crowns you Prince Liverwort, Lord of Fungus.");
- puts("\nBut, as the year wears on and autumn comes along, you become restless and");
- puts("yearn for adventure. The goddess, too, realizes that the marriage can't last.");
- puts("She becomes bored and takes several more natives as husbands. One evening,");
- puts("after having been out drinking with the girls, she kicks the throne particulary");
- puts("hard and wakes you up. (If you want to win this game, you're going to have to\nshoot her!)");
- clearbit(location[position].objects,MEDALION);
- wintime = btime;
- }
- }
- break;
- case TIMER:
- if (obj == COINS){
- puts("He fingers the coins for a moment and then looks up agape. `Kind you are and");
- puts("I mean to repay you as best I can.' Grabbing a pencil and cocktail napkin...\n");
- printf( "+-----------------------------------------------------------------------------+\n");
- printf( "| xxxxxxxx\\ |\n");
- printf( "| xxxxx\\ CLIFFS |\n");
- printf( "| FOREST xxx\\ |\n");
- printf( "| \\\\ x\\ OCEAN |\n");
- printf( "| || x\\ |\n");
- printf( "| || ROAD x\\ |\n");
- printf( "| || x\\ |\n");
- printf( "| SECRET || ......... |\n");
- printf( "| - + - || ........ |\n");
- printf( "| ENTRANCE || ... BEACH |\n");
- printf( "| || ... E |\n");
- printf( "| || ... | |\n");
- printf( "| // ... N <-- + --- S |\n");
- printf( "| PALM GROVE // ... | |\n");
- printf( "| // ... W |\n");
- printf( "+-----------------------------------------------------------------------------+\n");
- puts("\n`This map shows a secret entrance to the catacombs.");
- puts("You will know when you arrive because I left an old pair of shoes there.'");
+ switch (person) {
+ case NATIVE:
+ puts("She accepts it shyly.");
+ ego += 2;
+ break;
+ case NORMGOD:
+ if (obj == RING || obj == BRACELET) {
+ puts("She takes the charm and puts it on. A little kiss on the cheek is");
+ puts("your reward.");
+ ego += 5;
+ godready += 3;
+ }
+ if (obj == AMULET || obj == MEDALION || obj == TALISMAN) {
+ win++;
+ ego += 5;
+ power -= 5;
+ if (win >= 3) {
+ puts("The powers of the earth are now legitimate. You have destroyed the Darkness");
+ puts("and restored the goddess to her throne. The entire island celebrates with");
+ puts("dancing and spring feasts. As a measure of her gratitude, the goddess weds you");
+ puts("in the late summer and crowns you Prince Liverwort, Lord of Fungus.");
+ puts("\nBut, as the year wears on and autumn comes along, you become restless and");
+ puts("yearn for adventure. The goddess, too, realizes that the marriage can't last.");
+ puts("She becomes bored and takes several more natives as husbands. One evening,");
+ puts("after having been out drinking with the girls, she kicks the throne particularly");
+ puts("hard and wakes you up. (If you want to win this game, you're going to have to\nshoot her!)");
+ clearbit(location[position].objects, MEDALION);
+ wintime = ourtime;
}
- break;
+ }
+ break;
+ case TIMER:
+ if (obj == COINS) {
+ puts("He fingers the coins for a moment and then looks up agape. `Kind you are and");
+ puts("I mean to repay you as best I can.' Grabbing a pencil and cocktail napkin...\n");
+ printf("+-----------------------------------------------------------------------------+\n");
+ printf("| xxxxxxxx\\ |\n");
+ printf("| xxxxx\\ CLIFFS |\n");
+ printf("| FOREST xxx\\ |\n");
+ printf("| \\\\ x\\ OCEAN |\n");
+ printf("| || x\\ |\n");
+ printf("| || ROAD x\\ |\n");
+ printf("| || x\\ |\n");
+ printf("| SECRET || ......... |\n");
+ printf("| - + - || ........ |\n");
+ printf("| ENTRANCE || ... BEACH |\n");
+ printf("| || ... E |\n");
+ printf("| || ... | |\n");
+ printf("| // ... N <-- + --- S |\n");
+ printf("| PALM GROVE // ... | |\n");
+ printf("| // ... W |\n");
+ printf("+-----------------------------------------------------------------------------+\n");
+ puts("\n`This map shows a secret entrance to the catacombs.");
+ puts("You will know when you arrive because I left an old pair of shoes there.'");
+ }
+ break;
}
}
- wordnumber = max(last1,last2);
- return(firstnumber);
+ wordnumber = max(last1, last2) + 1;
+ return (firstnumber);
}
diff --git a/games/battlestar/com6.c b/games/battlestar/com6.c
index 890ebad686e..a4473ab7a6b 100644
--- a/games/battlestar/com6.c
+++ b/games/battlestar/com6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com6.c,v 1.8 1997/12/16 07:54:23 angelos Exp $ */
+/* $OpenBSD: com6.c,v 1.9 1998/09/13 01:30:31 pjanzen Exp $ */
/* $NetBSD: com6.c,v 1.5 1995/04/27 21:30:23 mycroft Exp $ */
/*
@@ -38,57 +38,54 @@
#if 0
static char sccsid[] = "@(#)com6.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com6.c,v 1.5 1995/04/27 21:30:23 mycroft Exp $";
+static char rcsid[] = "$OpenBSD: com6.c,v 1.9 1998/09/13 01:30:31 pjanzen Exp $";
#endif
#endif /* not lint */
-#include <time.h>
#include "extern.h"
#include "pathnames.h"
int
launch()
{
- if (testbit(location[position].objects,VIPER) && !notes[CANTLAUNCH]){
- if (fuel > 4){
- clearbit(location[position].objects,VIPER);
+ if (testbit(location[position].objects, VIPER) && !notes[CANTLAUNCH]) {
+ if (fuel > 4) {
+ clearbit(location[position].objects, VIPER);
position = location[position].up;
notes[LAUNCHED] = 1;
- btime++;
+ ourtime++;
fuel -= 4;
puts("You climb into the viper and prepare for launch.");
puts("With a touch of your thumb the turbo engines ignite, thrusting you back into\nyour seat.");
- return(1);
- }
- else
+ return (1);
+ } else
puts("Not enough fuel to launch.");
- }
- else
+ } else
puts("Can't launch.");
- return(0);
+ return (0);
}
int
land()
{
- if (notes[LAUNCHED] && testbit(location[position].objects,LAND) && location[position].down){
+ if (notes[LAUNCHED] && testbit(location[position].objects, LAND) &&
+ location[position].down) {
notes[LAUNCHED] = 0;
position = location[position].down;
- setbit(location[position].objects,VIPER);
+ setbit(location[position].objects, VIPER);
fuel -= 2;
- btime++;
+ ourtime++;
puts("You are down.");
- return(1);
- }
- else
+ return (1);
+ } else
puts("You can't land here.");
- return(0);
+ return (0);
}
void
-die(sigraised) /* endgame */
-int sigraised;
-{
+die(sigraised)
+ int sigraised;
+{ /* endgame */
printf("bye.\nYour rating was %s.\n", rate());
post(' ');
exit(0);
@@ -104,6 +101,7 @@ live()
static FILE *score_fp;
+void
open_score_file()
{
if ((score_fp = fopen(_PATH_SCORE, "a")) == NULL)
@@ -112,10 +110,10 @@ open_score_file()
void
post(ch)
-char ch;
+ char ch;
{
time_t tv;
- char *date;
+ char *date;
sigset_t sigset, osigset;
sigemptyset(&sigset);
@@ -129,79 +127,77 @@ char ch;
fprintf(score_fp, "%s %8s %c%20s", date, uname, ch, rate());
if (wiz)
fprintf(score_fp, " wizard\n");
- else if (tempwiz)
- fprintf(score_fp, " WIZARD!\n");
else
- fprintf(score_fp, "\n");
+ if (tempwiz)
+ fprintf(score_fp, " WIZARD!\n");
+ else
+ fprintf(score_fp, "\n");
}
-
sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0);
}
-char *
+char *
rate()
{
- int score;
+ int score;
- score = max(max(pleasure,power),ego);
- if (score == pleasure){
+ score = max(max(pleasure, power), ego);
+ if (score == pleasure) {
if (score < 5)
- return("novice");
+ return ("novice");
else if (score < 20)
- return("junior voyeur");
+ return ("junior voyeur");
else if (score < 35)
- return("Don Juan");
- else return("Marquis De Sade");
- }
- else if (score == power){
- if (score < 5)
- return("serf");
- else if (score < 8)
- return("Samurai");
- else if (score < 13)
- return("Klingon");
- else if (score < 22)
- return("Darth Vader");
- else return("Sauron the Great");
- }
- else{
- if (score < 5)
- return("Polyanna");
- else if (score < 10)
- return("philanthropist");
- else if (score < 20)
- return("Tattoo");
- else return("Mr. Roarke");
- }
+ return ("Don Juan");
+ else return ("Marquis De Sade");
+ } else
+ if (score == power) {
+ if (score < 5)
+ return ("serf");
+ else if (score < 8)
+ return ("Samurai");
+ else if (score < 13)
+ return ("Klingon");
+ else if (score < 22)
+ return ("Darth Vader");
+ else return ("Sauron the Great");
+ } else{
+ if (score < 5)
+ return ("Polyanna");
+ else if (score < 10)
+ return ("philanthropist");
+ else if (score < 20)
+ return ("Tattoo");
+ else return ("Mr. Roarke");
+ }
}
int
drive()
{
- if (testbit(location[position].objects,CAR)){
+ if (testbit(location[position].objects, CAR)) {
puts("You hop in the car and turn the key. There is a perceptible grating noise,");
puts("and an explosion knocks you unconscious...");
- clearbit(location[position].objects,CAR);
- setbit(location[position].objects,CRASH);
+ clearbit(location[position].objects, CAR);
+ setbit(location[position].objects, CRASH);
injuries[5] = injuries[6] = injuries[7] = injuries[8] = 1;
- btime += 15;
+ ourtime += 15;
zzz();
- return(0);
- }
- else
+ return (0);
+ } else
puts("There is nothing to drive here.");
- return(-1);
+ return (-1);
}
int
ride()
{
- if (testbit(location[position].objects,HORSE)){
+ if (testbit(location[position].objects, HORSE)) {
puts("You climb onto the stallion and kick it in the guts. The stupid steed launches");
puts("forward through bush and fern. You are thrown and the horse gallups off.");
- clearbit(location[position].objects,HORSE);
- while (!(position = rnd(NUMOFROOMS+1)) || !OUTSIDE || !beenthere[position] || location[position].flyhere);
- setbit(location[position].objects,HORSE);
+ clearbit(location[position].objects, HORSE);
+ while (!(position = rnd(NUMOFROOMS + 1)) || !OUTSIDE || !beenthere[position] || location[position].flyhere);
+ setbit(location[position].objects, HORSE);
if (location[position].north)
position = location[position].north;
else if (location[position].south)
@@ -210,24 +206,24 @@ ride()
position = location[position].east;
else
position = location[position].west;
- return(0);
+ return (0);
}
else puts("There is no horse here.");
- return(-1);
+ return (-1);
}
void
-light() /* synonyms = {strike, smoke} */
-{ /* for matches, cigars */
- if (testbit(inven,MATCHES) && matchcount){
+light()
+{ /* synonyms = {strike, smoke} */
+ if (testbit(inven, MATCHES) && matchcount) {
puts("Your match splutters to life.");
- btime++;
+ ourtime++;
matchlight = 1;
matchcount--;
- if (position == 217){
+ if (position == 217) {
puts("The whole bungalow explodes with an intense blast.");
die(0);
}
- }
- else puts("You're out of matches.");
+ } else
+ puts("You're out of matches.");
}
diff --git a/games/battlestar/com7.c b/games/battlestar/com7.c
index c55ea52bc1f..85b1642556e 100644
--- a/games/battlestar/com7.c
+++ b/games/battlestar/com7.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com7.c,v 1.5 1997/12/16 07:54:24 angelos Exp $ */
+/* $OpenBSD: com7.c,v 1.6 1998/09/13 01:30:31 pjanzen Exp $ */
/* $NetBSD: com7.c,v 1.3 1995/03/21 15:07:12 cgd Exp $ */
/*
@@ -38,237 +38,231 @@
#if 0
static char sccsid[] = "@(#)com7.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: com7.c,v 1.3 1995/03/21 15:07:12 cgd Exp $";
+static char rcsid[] = "$OpenBSD: com7.c,v 1.6 1998/09/13 01:30:31 pjanzen Exp $";
#endif
#endif /* not lint */
#include "extern.h"
int
-fight(enemy,strength)
-int enemy,strength;
+fight(enemy, strength)
+ int enemy, strength;
{
- int lifeline = 0;
- int hurt;
- char auxbuf[LINELENGTH];
- char *next;
- int i;
- int exhaustion;
+ int lifeline = 0;
+ int hurt;
+ char auxbuf[LINELENGTH];
+ char *next;
+ int i;
+ int exhaustion;
fighton:
- btime++;
+ ourtime++;
snooze -= 5;
- if (snooze > btime)
- exhaustion = CYCLE/(snooze - btime);
+ if (snooze > ourtime)
+ exhaustion = CYCLE / (snooze - ourtime);
else {
puts("You collapse exhausted, and he pulverizes your skull.");
die(0);
}
- if (snooze - btime < 20)
+ if (snooze - ourtime < 20)
puts("You look tired! I hope you're able to fight.");
next = getcom(auxbuf, LINELENGTH, "<fight!>-: ", 0);
- for (i=0; next && i < 10; i++)
+ for (i = 0; next && i < 10; i++)
next = getword(next, words[i], -1);
parse();
- switch(wordvalue[wordnumber]){
+ switch (wordvalue[wordnumber]) {
- case KILL:
- case SMITE:
- if (testbit(inven,TWO_HANDED))
- hurt = rnd(70) - 2 * card(injuries,NUMOFINJURIES) - ucard(wear) - exhaustion;
- else if (testbit(inven,SWORD) || testbit(inven, BROAD))
- hurt = rnd(50)%(WEIGHT-carrying)-card(injuries,NUMOFINJURIES)-encumber - exhaustion;
- else if (testbit(inven,KNIFE) || testbit(inven,MALLET) || testbit(inven,CHAIN) || testbit(inven,MACE) || testbit(inven,HALBERD))
- hurt = rnd(15) - card(injuries,NUMOFINJURIES) - exhaustion;
- else
- hurt = rnd(7) - encumber;
- if (hurt < 5)
- switch(rnd(3)){
+ case KILL:
+ case SMITE:
+ if (testbit(inven, TWO_HANDED))
+ hurt = rnd(70) - 2 * card(injuries, NUMOFINJURIES) - ucard(wear) - exhaustion;
+ else if (testbit(inven, SWORD) || testbit(inven, BROAD))
+ hurt = rnd(50) % (WEIGHT - carrying) - card(injuries, NUMOFINJURIES) - encumber - exhaustion;
+ else if (testbit(inven, KNIFE) || testbit(inven, MALLET) || testbit(inven, CHAIN) || testbit(inven, MACE) || testbit(inven, HALBERD))
+ hurt = rnd(15) - card(injuries, NUMOFINJURIES) - exhaustion;
+ else
+ hurt = rnd(7) - encumber;
+ if (hurt < 5)
+ switch (rnd(3)) {
- case 0:
- puts("You swung wide and missed.");
- break;
- case 1:
- puts("He checked your blow. CLASH! CLANG!");
- break;
- case 2:
- puts("His filthy tunic hangs by one less thread.");
- break;
- }
- else if (hurt < 10){
- switch(rnd(3)){
- case 0:
- puts("He's bleeding.");
- break;
- case 1:
- puts("A trickle of blood runs down his face.");
- break;
- case 2:
- puts("A huge purple bruise is forming on the side of his face.");
- break;
- }
- lifeline++;
+ case 0:
+ puts("You swung wide and missed.");
+ break;
+ case 1:
+ puts("He checked your blow. CLASH! CLANG!");
+ break;
+ case 2:
+ puts("His filthy tunic hangs by one less thread.");
+ break;
}
- else if (hurt < 20){
- switch(rnd(3)){
- case 0:
- puts("He staggers back quavering.");
- break;
- case 1:
- puts("He jumps back with his hand over the wound.");
- break;
- case 2:
- puts("His shirt falls open with a swath across the chest.");
- break;
- }
- lifeline += 5;
+ else if (hurt < 10) {
+ switch (rnd(3)) {
+ case 0:
+ puts("He's bleeding.");
+ break;
+ case 1:
+ puts("A trickle of blood runs down his face.");
+ break;
+ case 2:
+ puts("A huge purple bruise is forming on the side of his face.");
+ break;
}
- else if (hurt < 30){
- switch(rnd(3)){
- case 0:
- printf("A bloody gash opens up on his %s side.\n",(rnd(2) ? "left" : "right"));
- break;
- case 1:
- puts("The steel bites home and scrapes along his ribs.");
- break;
- case 2:
- puts("You pierce him, and his breath hisses through clenched teeth.");
- break;
- }
- lifeline += 10;
+ lifeline++;
+ }
+ else if (hurt < 20) {
+ switch (rnd(3)) {
+ case 0:
+ puts("He staggers back quavering.");
+ break;
+ case 1:
+ puts("He jumps back with his hand over the wound.");
+ break;
+ case 2:
+ puts("His shirt falls open with a swath across the chest.");
+ break;
}
- else if (hurt < 40){
- switch(rnd(3)){
- case 0:
- puts("You smite him to the ground.");
- if (strength - lifeline > 20)
- puts("But in a flurry of steel he regains his feet!");
- break;
- case 1:
- puts("The force of your blow sends him to his knees.");
- puts("His arm swings lifeless at his side.");
- break;
- case 2:
- puts("Clutching his blood drenched shirt, he collapses stunned.");
- break;
- }
- lifeline += 20;
+ lifeline += 5;
+ }
+ else if (hurt < 30) {
+ switch (rnd(3)) {
+ case 0:
+ printf("A bloody gash opens up on his %s side.\n",(rnd(2) ? "left" : "right"));
+ break;
+ case 1:
+ puts("The steel bites home and scrapes along his ribs.");
+ break;
+ case 2:
+ puts("You pierce him, and his breath hisses through clenched teeth.");
+ break;
}
- else {
- switch(rnd(3)){
- case 0:
- puts("His ribs crack under your powerful swing, flooding his lungs with blood.");
- break;
- case 1:
- puts("You shatter his upheld arm in a spray of blood. The blade continues deep");
- puts("into his back, severing the spinal cord.");
- lifeline += 25;
- break;
- case 2:
- puts("With a mighty lunge the steel slides in, and gasping, he falls to the ground.");
- lifeline += 25;
- break;
- }
- lifeline += 30;
+ lifeline += 10;
+ }
+ else if (hurt < 40) {
+ switch (rnd(3)) {
+ case 0:
+ puts("You smite him to the ground.");
+ if (strength - lifeline > 20)
+ puts("But in a flurry of steel he regains his feet!");
+ break;
+ case 1:
+ puts("The force of your blow sends him to his knees.");
+ puts("His arm swings lifeless at his side.");
+ break;
+ case 2:
+ puts("Clutching his blood drenched shirt, he collapses stunned.");
+ break;
+ }
+ lifeline += 20;
+ }
+ else {
+ switch (rnd(3)) {
+ case 0:
+ puts("His ribs crack under your powerful swing, flooding his lungs with blood.");
+ break;
+ case 1:
+ puts("You shatter his upheld arm in a spray of blood. The blade continues deep");
+ puts("into his back, severing the spinal cord.");
+ lifeline += 25;
+ break;
+ case 2:
+ puts("With a mighty lunge the steel slides in, and gasping, he falls to the ground.");
+ lifeline += 25;
+ break;
}
- break;
+ lifeline += 30;
+ }
+ break;
- case BACK:
- if (enemy == DARK && lifeline > strength * 0.33){
- puts("He throws you back against the rock and pummels your face.");
- if (testbit(inven,AMULET) || testbit(wear,AMULET)){
- printf("Lifting the amulet from you, ");
- if (testbit(inven,MEDALION) || testbit(wear,MEDALION)){
- puts("his power grows and the walls of\nthe earth tremble.");
- puts("When he touches the medallion, your chest explodes and the foundations of the\nearth collapse.");
- puts("The planet is consumed by darkness.");
- die(0);
- }
- if (testbit(inven,AMULET)){
- clearbit(inven,AMULET);
- carrying -= objwt[AMULET];
- encumber -= objcumber[AMULET];
- }
- else
- clearbit(wear,AMULET);
- puts("he flees down the dark caverns.");
- clearbit(location[position].objects,DARK);
- injuries[SKULL] = 1;
- followfight = btime;
- return (0);
- }
- else{
- puts("I'm afraid you have been killed.");
+ case BACK:
+ if (enemy == DARK && lifeline > strength * 0.33) {
+ puts("He throws you back against the rock and pummels your face.");
+ if (testbit(inven, AMULET) || testbit(wear, AMULET)) {
+ printf("Lifting the amulet from you, ");
+ if (testbit(inven, MEDALION) || testbit(wear, MEDALION)) {
+ puts("his power grows and the walls of\nthe earth tremble.");
+ puts("When he touches the medallion, your chest explodes and the foundations of the\nearth collapse.");
+ puts("The planet is consumed by darkness.");
die(0);
}
+ if (testbit(inven, AMULET)) {
+ clearbit(inven, AMULET);
+ carrying -= objwt[AMULET];
+ encumber -= objcumber[AMULET];
+ } else
+ clearbit(wear, AMULET);
+ puts("he flees down the dark caverns.");
+ clearbit(location[position].objects, DARK);
+ injuries[SKULL] = 1;
+ followfight = ourtime;
+ return (0);
+ } else {
+ puts("I'm afraid you have been killed.");
+ die(0);
}
- else{
- puts("You escape stunned and disoriented from the fight.");
- puts("A victorious bellow echoes from the battlescene.");
- if (back && position != back)
- move(back,BACK);
- else if (ahead &&position != ahead)
- move(ahead,AHEAD);
- else if (left && position != left)
- move(left,LEFT);
- else if (right && position != right)
- move(right,RIGHT);
- else
- move(location[position].down,AHEAD);
- return(0);
- }
+ } else {
+ puts("You escape stunned and disoriented from the fight.");
+ puts("A victorious bellow echoes from the battlescene.");
+ if (back && position != back)
+ move(back, BACK);
+ else if (ahead &&position != ahead)
+ move(ahead, AHEAD);
+ else if (left && position != left)
+ move(left, LEFT);
+ else if (right && position != right)
+ move(right, RIGHT);
+ else
+ move(location[position].down, AHEAD);
+ return (0);
+ }
- case SHOOT:
- if (testbit(inven,LASER)){
- if (strength - lifeline <= 50){
- printf("The %s took a direct hit!\n",objsht[enemy]);
- lifeline += 50;
- }
- else {
- puts("With his bare hand he deflects the laser blast and whips the pistol from you!");
- clearbit(inven,LASER);
- setbit(location[position].objects,LASER);
- carrying -= objwt[LASER];
- encumber -= objcumber[LASER];
- }
+ case SHOOT:
+ if (testbit(inven, LASER)) {
+ if (strength - lifeline <= 50) {
+ printf("The %s took a direct hit!\n", objsht[enemy]);
+ lifeline += 50;
+ } else {
+ puts("With his bare hand he deflects the laser blast and whips the pistol from you!");
+ clearbit(inven, LASER);
+ setbit(location[position].objects, LASER);
+ carrying -= objwt[LASER];
+ encumber -= objcumber[LASER];
}
- else
- puts("Unfortunately, you don't have a blaster handy.");
- break;
+ } else
+ puts("Unfortunately, you don't have a blaster handy.");
+ break;
- case DROP:
- case DRAW:
- cypher();
- btime--;
- break;
-
- default:
- puts("You don't have a chance, he is too quick.");
- break;
+ case DROP:
+ case DRAW:
+ cypher();
+ ourtime--;
+ break;
+
+ default:
+ puts("You don't have a chance; he is too quick.");
+ break;
}
- if (lifeline >= strength){
+ if (lifeline >= strength) {
printf("You have killed the %s.\n", objsht[enemy]);
if (enemy == ELF || enemy == DARK)
puts("A watery black smoke consumes his body and then vanishes with a peal of thunder!");
- clearbit(location[position].objects,enemy);
+ clearbit(location[position].objects, enemy);
power += 2;
notes[JINXED]++;
- return(0);
+ return (0);
}
puts("He attacks...");
- /* some embellisments */
- hurt = rnd(NUMOFINJURIES) - (testbit(inven,SHIELD) != 0) - (testbit(wear,MAIL) != 0) - (testbit(wear,HELM) != 0);
- hurt += (testbit(wear,AMULET) != 0) + (testbit(wear,MEDALION) != 0) + (testbit(wear,TALISMAN) != 0);
+ /* some embellishments */
+ hurt = rnd(NUMOFINJURIES) - (testbit(inven, SHIELD) != 0) - (testbit(wear, MAIL) != 0) - (testbit(wear, HELM) != 0);
+ hurt += (testbit(wear, AMULET) != 0) + (testbit(wear, MEDALION) != 0) + (testbit(wear, TALISMAN) != 0);
hurt = hurt < 0 ? 0 : hurt;
- hurt = hurt >= NUMOFINJURIES ? NUMOFINJURIES -1 : hurt;
- if (!injuries[hurt]){
+ hurt = hurt >= NUMOFINJURIES ? NUMOFINJURIES - 1 : hurt;
+ if (!injuries[hurt]) {
injuries[hurt] = 1;
printf("I'm afraid you have suffered %s.\n", ouch[hurt]);
- }
- else
+ } else
puts("You emerge unscathed.");
- if (injuries[SKULL] && injuries[INCISE] && injuries[NECK]){
+ if (injuries[SKULL] && injuries[INCISE] && injuries[NECK]) {
puts("I'm afraid you have suffered fatal injuries.");
die(0);
}
diff --git a/games/battlestar/cypher.c b/games/battlestar/cypher.c
index a01b94b3fa3..1de4e44fbe0 100644
--- a/games/battlestar/cypher.c
+++ b/games/battlestar/cypher.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cypher.c,v 1.5 1997/12/16 07:54:24 angelos Exp $ */
+/* $OpenBSD: cypher.c,v 1.6 1998/09/13 01:30:31 pjanzen Exp $ */
/* $NetBSD: cypher.c,v 1.3 1995/03/21 15:07:15 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)cypher.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: cypher.c,v 1.3 1995/03/21 15:07:15 cgd Exp $";
+static char rcsid[] = "$OpenBSD: cypher.c,v 1.6 1998/09/13 01:30:31 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,395 +47,394 @@ static char rcsid[] = "$NetBSD: cypher.c,v 1.3 1995/03/21 15:07:15 cgd Exp $";
int
cypher()
{
- register int n;
- int junk;
- int lflag = -1;
- char buffer[10];
+ int n;
+ int junk;
+ int lflag = -1;
+ char buffer[10];
while (wordtype[wordnumber] == ADJS)
wordnumber++;
while (wordnumber <= wordcount) {
- switch(wordvalue[wordnumber]) {
-
- case UP:
- if (location[position].access || wiz || tempwiz) {
- if (!location[position].access)
- puts("Zap! A gust of wind lifts you up.");
- if (!move(location[position].up, AHEAD))
- return(-1);
- } else {
- puts("There is no way up");
- return(-1);
- }
- lflag = 0;
- break;
-
- case DOWN:
- if (!move(location[position].down, AHEAD))
- return(-1);
- lflag = 0;
- break;
-
- case LEFT:
- if (!move(left, LEFT))
- return(-1);
- lflag = 0;
- break;
-
- case RIGHT:
- if (!move(right, RIGHT))
- return(-1);
- lflag = 0;
- break;
-
- case AHEAD:
- if (!move(ahead, AHEAD))
- return(-1);
- lflag = 0;
- break;
-
- case BACK:
- if (!move(back, BACK))
- return(-1);
- lflag = 0;
- break;
-
- case SHOOT:
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(location[position].objects,n) && objsht[n]){
- wordvalue[wordnumber+1] = n;
- wordnumber = shoot();
- }
+ switch (wordvalue[wordnumber]) {
+
+ case UP:
+ if (location[position].access || wiz || tempwiz) {
+ if (!location[position].access)
+ puts("Zap! A gust of wind lifts you up.");
+ if (!move(location[position].up, AHEAD))
+ return (-1);
+ } else {
+ puts("There is no way up");
+ return (-1);
+ }
+ lflag = 0;
+ break;
+
+ case DOWN:
+ if (!move(location[position].down, AHEAD))
+ return (-1);
+ lflag = 0;
+ break;
+
+ case LEFT:
+ if (!move(left, LEFT))
+ return (-1);
+ lflag = 0;
+ break;
+
+ case RIGHT:
+ if (!move(right, RIGHT))
+ return (-1);
+ lflag = 0;
+ break;
+
+ case AHEAD:
+ if (!move(ahead, AHEAD))
+ return (-1);
+ lflag = 0;
+ break;
+
+ case BACK:
+ if (!move(back, BACK))
+ return (-1);
+ lflag = 0;
+ break;
+
+ case SHOOT:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(location[position].objects, n) && objsht[n]) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = shoot();
+ }
wordnumber++;
wordnumber++;
- }
- else
- shoot();
- break;
-
- case TAKE:
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(location[position].objects,n) && objsht[n]){
- wordvalue[wordnumber+1] = n;
- wordtype[wordnumber+1] = OBJECT;
- if ((n == AMULET) || (n == MEDALION) || (n == TALISMAN) || (n == MAN) || (n == TIMER) || (n == NATIVE))
- wordtype[wordnumber+1] = NOUNS;
- wordnumber = take(location[position].objects);
+ } else
+ shoot();
+ break;
+
+ case TAKE:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(location[position].objects, n) && objsht[n]) {
+ wordvalue[wordnumber + 1] = n;
+/* Some objects (type NOUNS) have special treatment in take(). For these
+ * we must set the type to NOUNS. However for SWORD and BODY all it does
+ * is find which of many objects is meant, so we need do nothing here.
+ * BATHGOD must become NORMGOD as well. NOUNS with no special case must be
+ * included here to get the right error. DOOR cannot occur as an object so
+ * need not be included.
+ */
+ switch (n) {
+ case BATHGOD:
+ wordvalue[wordnumber + 1] = NORMGOD;
+ case NORMGOD:
+ case AMULET:
+ case MEDALION:
+ case TALISMAN:
+ case MAN:
+ case TIMER:
+ case NATIVE:
+ wordtype[wordnumber + 1] = NOUNS;
+ break;
+ default:
+ wordtype[wordnumber + 1] = OBJECT;
}
+ wordnumber = take(location[position].objects);
+ }
wordnumber++;
wordnumber++;
- }
- else
- take(location[position].objects);
- break;
-
- case DROP:
-
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n)){
- wordvalue[wordnumber+1] = n;
- wordnumber = drop("Dropped");
- }
+ } else
+ take(location[position].objects);
+ break;
+
+ case DROP:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n)) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = drop("Dropped");
+ }
wordnumber++;
wordnumber++;
- }
- else
- drop("Dropped");
- break;
-
-
- case KICK:
- case THROW:
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n) ||
- testbit(location[position].objects, n) && objsht[n]){
- wordvalue[wordnumber+1] = n;
- wordnumber = throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown");
- }
- wordnumber += 2;
- } else
- throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown");
- break;
-
- case TAKEOFF:
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(wear,n)){
- wordvalue[wordnumber+1] = n;
- wordnumber = takeoff();
- }
- wordnumber += 2;
- }
- else
- takeoff();
- break;
-
-
- case DRAW:
-
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(wear,n)){
- wordvalue[wordnumber+1] = n;
- wordnumber = draw();
- }
- wordnumber += 2;
- }
- else
- draw();
- break;
-
-
- case PUTON:
-
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(location[position].objects,n) && objsht[n]){
- wordvalue[wordnumber+1] = n;
- wordnumber = puton();
- }
- wordnumber += 2;
- }
- else
- puton();
- break;
-
- case WEARIT:
-
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n)){
- wordvalue[wordnumber+1] = n;
- wordnumber = wearit();
- }
- wordnumber += 2;
- }
- else
- wearit();
- break;
-
-
- case EAT:
-
- if (wordnumber < wordcount && wordvalue[wordnumber+1] == EVERYTHING){
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n)){
- wordvalue[wordnumber+1] = n;
- wordnumber = eat();
- }
- wordnumber += 2;
- }
- else
- eat();
- break;
-
-
- case PUT:
- put();
- break;
-
-
- case INVEN:
- if (ucard(inven)){
- puts("You are holding:\n");
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(inven,n))
- printf("\t%s\n", objsht[n]);
- printf("\n= %d kilogram%s (%d%%)\n", carrying, (carrying == 1 ? "." : "s."),(WEIGHT ? carrying*100/WEIGHT : -1));
- printf("Your arms are %d%% full.\n",encumber*100/CUMBER);
- }
- else
- puts("You aren't carrying anything.");
-
- if (ucard(wear)){
- puts("\nYou are wearing:\n");
- for (n=0; n < NUMOFOBJECTS; n++)
- if (testbit(wear,n))
- printf("\t%s\n", objsht[n]);
- }
- else
- puts("\nYou are stark naked.");
- if (card(injuries,NUMOFINJURIES)){
- puts("\nYou have suffered:\n");
- for (n=0; n < NUMOFINJURIES; n++)
- if (injuries[n])
- printf("\t%s\n",ouch[n]);
- printf("\nYou can still carry up to %d kilogram%s\n",WEIGHT,(WEIGHT == 1 ? "." : "s."));
- }
- else
- puts("\nYou are in perfect health.");
- break;
-
- case USE:
- lflag = use();
- break;
-
- case LOOK:
- if (!notes[CANTSEE] || testbit(inven,LAMPON) || testbit(location[position].objects,LAMPON) || matchlight){
- beenthere[position] = 2;
- writedes();
- printobjs();
- if (matchlight){
- puts("\nYour match splutters out.");
- matchlight = 0;
+ } else
+ drop("Dropped");
+ break;
+
+
+ case KICK:
+ case THROW:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n) ||
+ (testbit(location[position].objects, n) && objsht[n])) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown");
+ }
+ wordnumber += 2;
+ } else
+ throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown");
+ break;
+
+ case TAKEOFF:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(wear, n)) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = takeoff();
+ }
+ wordnumber += 2;
+ } else
+ takeoff();
+ break;
+
+ case DRAW:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(wear, n)) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = draw();
}
- } else
- puts("I can't see anything.");
- return(-1);
- break;
+ wordnumber += 2;
+ } else
+ draw();
+ break;
+
+ case PUTON:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(location[position].objects, n) && objsht[n]) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = puton();
+ }
+ wordnumber += 2;
+ } else
+ puton();
+ break;
+
+ case WEARIT:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n)) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = wearit();
+ }
+ wordnumber += 2;
+ } else
+ wearit();
+ break;
+
+ case EAT:
+ if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n)) {
+ wordvalue[wordnumber + 1] = n;
+ wordnumber = eat();
+ }
+ wordnumber += 2;
+ } else
+ eat();
+ break;
+
+ case PUT:
+ put();
+ break;
+
+ case INVEN:
+ if (ucard(inven)) {
+ puts("You are holding:\n");
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(inven, n))
+ printf("\t%s\n", objsht[n]);
+ printf("\n= %d kilogram%s (%d%%)\n", carrying, (carrying == 1 ? "." : "s."), (WEIGHT ? carrying * 100 / WEIGHT : -1));
+ printf("Your arms are %d%% full.\n", encumber * 100 / CUMBER);
+ } else
+ puts("You aren't carrying anything.");
+
+ if (ucard(wear)) {
+ puts("\nYou are wearing:\n");
+ for (n = 0; n < NUMOFOBJECTS; n++)
+ if (testbit(wear, n))
+ printf("\t%s\n", objsht[n]);
+ } else
+ puts("\nYou are stark naked.");
+ if (card(injuries, NUMOFINJURIES)) {
+ puts("\nYou have suffered:\n");
+ for (n = 0; n < NUMOFINJURIES; n++)
+ if (injuries[n])
+ printf("\t%s\n", ouch[n]);
+ printf("\nYou can still carry up to %d kilogram%s\n", WEIGHT, (WEIGHT == 1 ? "." : "s."));
+ } else
+ puts("\nYou are in perfect health.");
+ break;
+
+ case USE:
+ lflag = use();
+ break;
+
+ case LOOK:
+ if (!notes[CANTSEE] || testbit(inven, LAMPON) ||
+ testbit(location[position].objects, LAMPON)
+ || matchlight) {
+ beenthere[position] = 2;
+ writedes();
+ printobjs();
+ if (matchlight) {
+ puts("\nYour match splutters out.");
+ matchlight = 0;
+ }
+ } else
+ puts("I can't see anything.");
+ return (-1);
+ break;
- case SU:
- if (wiz || tempwiz){
+ case SU:
+ if (wiz || tempwiz) {
printf("\nRoom (was %d) = ", position);
- fgets(buffer,10,stdin);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d", &position);
- printf("Time (was %d) = ",btime);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &position);
+ printf("Time (was %d) = ", ourtime);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d", &btime);
- printf("Fuel (was %d) = ",fuel);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &ourtime);
+ printf("Fuel (was %d) = ", fuel);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d", &fuel);
- printf("Torps (was %d) = ",torps);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &fuel);
+ printf("Torps (was %d) = ", torps);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d", &torps);
- printf("CUMBER (was %d) = ",CUMBER);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &torps);
+ printf("CUMBER (was %d) = ", CUMBER);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d", &CUMBER);
- printf("WEIGHT (was %d) = ",WEIGHT);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &CUMBER);
+ printf("WEIGHT (was %d) = ", WEIGHT);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d",&WEIGHT);
- printf("Clock (was %d) = ",bclock);
- fgets(buffer,10,stdin);
+ sscanf(buffer, "%d", &WEIGHT);
+ printf("Clock (was %d) = ", ourclock);
+ fgets(buffer, 10, stdin);
if (*buffer != '\n')
- sscanf(buffer,"%d",&bclock);
- printf("Wizard (was %d, %d) = ",wiz, tempwiz);
- fgets(buffer,10,stdin);
- if (*buffer != '\n'){
- sscanf(buffer,"%d",&junk);
+ sscanf(buffer, "%d", &ourclock);
+ printf("Wizard (was %d, %d) = ", wiz, tempwiz);
+ fgets(buffer, 10, stdin);
+ if (*buffer != '\n') {
+ sscanf(buffer, "%d", &junk);
if (!junk)
tempwiz = wiz = 0;
}
printf("\nDONE.\n");
- return(0);
- }
- else
- puts("You aren't a wizard.");
- break;
-
- case SCORE:
- printf("\tPLEASURE\tPOWER\t\tEGO\n");
- printf("\t%3d\t\t%3d\t\t%3d\n\n",pleasure,power,ego);
- printf("This gives you the rating of %s in %d turns.\n",rate(),btime);
- printf("You have visited %d out of %d rooms this run (%d%%).\n",card(beenthere,NUMOFROOMS),NUMOFROOMS,card(beenthere,NUMOFROOMS)*100/NUMOFROOMS);
- break;
-
- case KNIFE:
- case KILL:
- murder();
- break;
-
- case UNDRESS:
- case RAVAGE:
- ravage();
- break;
-
- case SAVE:
- save();
- break;
-
- case FOLLOW:
- lflag = follow();
- break;
-
- case GIVE:
- give();
- break;
-
- case KISS:
- kiss();
- break;
-
- case LOVE:
- love();
- break;
-
- case RIDE:
- lflag = ride();
- break;
-
- case DRIVE:
- lflag = drive();
- break;
-
- case LIGHT:
- light();
- break;
-
- case LAUNCH:
- if (!launch())
- return(-1);
- else
- lflag = 0;
- break;
-
- case LANDIT:
- if (!land())
- return(-1);
- else
- lflag = 0;
- break;
-
- case TIME:
- chime();
- break;
-
- case SLEEP:
- zzz();
- break;
-
- case DIG:
- dig();
- break;
-
- case JUMP:
- lflag = jump();
- break;
-
- case BURY:
- bury();
- break;
-
- case SWIM:
- puts("Surf's up!");
- break;
-
- case DRINK:
- drink();
- break;
-
- case QUIT:
- die(0);
-
- default:
- puts("How's that?");
- return(-1);
- break;
-
-
+ return (0);
+ } else
+ puts("You aren't a wizard.");
+ break;
+
+ case SCORE:
+ printf("\tPLEASURE\tPOWER\t\tEGO\n");
+ printf("\t%3d\t\t%3d\t\t%3d\n\n", pleasure, power, ego);
+ printf("This gives you the rating of %s in %d turns.\n", rate(), ourtime);
+ printf("You have visited %d out of %d rooms this run (%d%%).\n", card(beenthere, NUMOFROOMS), NUMOFROOMS, card(beenthere, NUMOFROOMS) * 100 / NUMOFROOMS);
+ break;
+
+ case KNIFE:
+ case KILL:
+ murder();
+ break;
+
+ case UNDRESS:
+ case RAVAGE:
+ ravage();
+ break;
+
+ case SAVE:
+ save();
+ break;
+
+ case FOLLOW:
+ lflag = follow();
+ break;
+
+ case GIVE:
+ give();
+ break;
+
+ case KISS:
+ kiss();
+ break;
+
+ case LOVE:
+ love();
+ break;
+
+ case RIDE:
+ lflag = ride();
+ break;
+
+ case DRIVE:
+ lflag = drive();
+ break;
+
+ case LIGHT:
+ light();
+ break;
+
+ case LAUNCH:
+ if (!launch())
+ return (-1);
+ else
+ lflag = 0;
+ break;
+
+ case LANDIT:
+ if (!land())
+ return (-1);
+ else
+ lflag = 0;
+ break;
+
+ case TIME:
+ chime();
+ break;
+
+ case SLEEP:
+ zzz();
+ break;
+
+ case DIG:
+ dig();
+ break;
+
+ case JUMP:
+ lflag = jump();
+ break;
+
+ case BURY:
+ bury();
+ break;
+
+ case SWIM:
+ puts("Surf's up!");
+ break;
+
+ case DRINK:
+ drink();
+ break;
+
+ case QUIT:
+ die(0);
+
+ default:
+ puts("How's that?");
+ return (-1);
+ break;
+
}
if (wordnumber < wordcount && *words[wordnumber++] == ',')
continue;
- else return(lflag);
- }
- return(lflag);
+ else
+ return (lflag);
+ }
+ return (lflag);
}
diff --git a/games/battlestar/dayfile.c b/games/battlestar/dayfile.c
index 06a0021a4a5..8348ce4e0af 100644
--- a/games/battlestar/dayfile.c
+++ b/games/battlestar/dayfile.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dayfile.c,v 1.3 1997/08/24 21:55:06 deraadt Exp $ */
+/* $OpenBSD: dayfile.c,v 1.4 1998/09/13 01:30:31 pjanzen Exp $ */
/* $NetBSD: dayfile.c,v 1.3 1995/03/21 15:07:18 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)dayfile.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: dayfile.c,v 1.3 1995/03/21 15:07:18 cgd Exp $";
+static char rcsid[] = "$OpenBSD: dayfile.c,v 1.4 1998/09/13 01:30:31 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,115 +47,115 @@ static char rcsid[] = "$NetBSD: dayfile.c,v 1.3 1995/03/21 15:07:18 cgd Exp $";
struct room dayfile[] = {
{ 0 },
{ "You are in the main hangar.",
- 5, 2, 9, 3, 3, 1, 0, 0,
+ { 5, 2, 9, 3, 3, 1, 0, 0 },
"This is a huge bay where many fighters and cargo craft lie. Alarms are \n\
sounding and fighter pilots are running to their ships. Above is a gallery\n\
overlooking the bay. The scream of turbo engines is coming from +. The rest\n\
of the hangar is +. There is an exit +.*\n" },
{ "This is the landing bay.",
- 1, 0, 10, 0, 0, 0, 0, 0,
+ { 1, 0, 10, 0, 0, 0, 0, 0 },
"Ships are landing here, some heavily damaged. Enemy fighters continually\n\
-strafe this vulnerable port. The main hangar is +, *\n\
+strafe this vulnerable port. The main hangar is +; *\n\
There is an exit +.*\n" },
{ "You are in the gallery.",
- 4, 0, 0, 0, 0, 0, 1, 0,
+ { 4, 0, 0, 0, 0, 0, 1, 0 },
"From here a view of the entire landing bay reveals that our battlestar\n\
is near destruction. Fires are spreading out of control and laser blasts\n\
lick at the shadows. The control room is +. ***\n" },
{ "You are in the control room.",
- 0, 3, 0, 0, 0, 0, 5, 0,
+ { 0, 3, 0, 0, 0, 0, 5, 0 },
"Several frantic technicians are flipping switches wildly but otherwise\n\
this room seems fairly deserted. A weapons locker has been left open.\n\
A staircase leads down. * There is a way -. ** \n" },
{ "This is the launch room.",
- 6, 1, 7, 0, 4, 1, 0, 0,
+ { 6, 1, 7, 0, 4, 1, 0, 0 },
"From the launch tubes here fighters blast off into space. Only one is left,\n\
and it is guarded by two fierce men. A staircase leads up from here.\n\
There is a cluttered workbench +. From the main hangar come sounds of great\n\
explosions. The main hangar is +. The viper launch tubes are to the -.*\n" },
{ "You are at the workbench.",
- 0, 5, 7, 0, 0, 0, 0, 0,
+ { 0, 5, 7, 0, 0, 0, 0, 0 },
"Strange and unwieldy tools are arranged here including a lunch box \n\
and pneumatic wrenches and turbo sprocket rockets.*\n\
The launch room is +. The remaining viper is +.*\n" },
{ "You are in the viper launch tube.",
- 0, 5, 0, 5, 32, 0, 0, 0,
+ { 0, 5, 0, 5, 32, 0, 0, 0 },
"The two guards are eyeing you warily! ****\n" },
{ "This is a walk in closet.",
- 22, 0, 0, 0, 0, 0, 0, 0,
+ { 22, 0, 0, 0, 0, 0, 0, 0 },
"A wardrobe of immense magnitude greets the eye. Furs and robes of kings\n\
hang on rack after rack. Silken gowns, capes woven with spun gold, and \n\
delicate synthetic fabrics are stowed here. The bedroom is +.***\n" },
{ "You are in a wide hallway leading to the main hangar.",
- 0, 0, 11, 1, 0, 0, 0, 0,
+ { 0, 0, 11, 1, 0, 0, 0, 0 },
"The walls and ceiling here have been blasted through in several places.\n\
It looks as if quite a battle has been fought for possession of the landing bay\n\
Gaping corpses litter the floor.** The hallway continues +.\n\
The main hangar is +.\n" },
{ "You are in a wide hallway leading to the landing bay.",
- 0, 0, 12, 2, 0, 0, 0, 0,
+ { 0, 0, 12, 2, 0, 0, 0, 0 },
"Most of the men and supplies needed in the main hangar come through this\n\
corridor, but the wounded are forced to use it too. It very dank and\n\
crowded here, and the floor is slippery with blood.**\n\
The hallway continues -. The landing bay is +.\n" },
{ "The hallway is very congested with rubble here.",
- 0, 0, 0, 9, 13, 1, 0, 0,
+ { 0, 0, 0, 9, 13, 1, 0, 0 },
"It is too choked with broken steel girders and other debris to continue\n\
on much farther. Above, the ceiling has caved in and it is possible to \n\
climb up. There is not much chance to go -, -, or -.\n\
But the hallway seems clearer +.\n" },
{ "A wide hallway and a more narrow walkway meet here.",
- 14, 15, 0, 10, 0, 0, 0, 0,
+ { 14, 15, 0, 10, 0, 0, 0, 0 },
"The intersection is crowded with the many wounded who have come up\n\
the wide hallway and continued +. The walkway is less crowded +.\n\
The wide hallway goes *-.\n" },
{ "You are in what was once an elegant stateroom.",
- 16, 0, 0, 0, 0, 0, 11, 0,
+ { 16, 0, 0, 0, 0, 0, 11, 0 },
"Whoever lived in this stateroom, he and his female companion\n\
were mercilessly slain in their sleep. Clothes, trinkets and personal\n\
belongings are scattered all across the floor. Through a hole in the\n\
collapsed floor I can see a hallway below. A door is +.***\n" },
{ "You're at the entrance to the sick bay.",
- 17, 12, 18, 0, 0, 0, 0, 0,
+ { 17, 12, 18, 0, 0, 0, 0, 0 },
"The wounded are entering the sick bay in loudly moaning files.\n\
The walkway continues - and +. A doctor is motioning for you to \n\
come to the -. *\n" },
{ "You're in the walkway.",
- 12, 19, 0, 0, 0, 0, 0, 0,
+ { 12, 19, 0, 0, 0, 0, 0, 0 },
"Most of the men and supplies were coming from the armory. The walkway\n\
continues -. The armory is +.**\n" },
{ "These are the executive suites of the battlestar.",
- 20, 13, 21, 22, 23, 1, 24, 0,
+ { 20, 13, 21, 22, 23, 1, 24, 0 },
"Luxurious staterooms carpeted with crushed velvet and adorned with beaten\n\
gold open onto this parlor. A wide staircase with ivory banisters leads\n\
up or down. This parlor leads into a hallway +. The bridal suite is +.\n\
Other rooms lie - and +.\n" },
{ "You're in a long dimly lit hallway.",
- 0, 14, 25, 0, 0, 0, 0, 0,
+ { 0, 14, 25, 0, 0, 0, 0, 0 },
"This part of the walkway is deserted. There is a dead end +. The\n\
entrance to the sickbay is +. The walkway turns sharply -.*\n" },
{ "This is the sick bay.",
- 0, 0, 0, 14, 0, 0, 0, 0,
+ { 0, 0, 0, 14, 0, 0, 0, 0 },
"Sinister nurses with long needles and pitiful aim probe the depths of suffering\n\
here. Only the mortally wounded receive medical attention on a battlestar,\n\
but afterwards they are thrown into the incinerators along with the rest.**\n\
Nothing but death and suffering +. The walkway is +.\n" },
{ "You're in the armory.",
- 15, 26, 0, 0, 0, 0, 0, 0,
+ { 15, 26, 0, 0, 0, 0, 0, 0 },
"An armed guard is stationed here 365 sectars a yarn to protect the magazine.\n\
The walkway is +. The magazine is +.**\n" },
{ "The hallway ends here at the presidential suite.",
- 27, 16, 0, 0, 0, 0, 0, 0,
+ { 27, 16, 0, 0, 0, 0, 0, 0 },
"The door to this suite is made from solid magnesium, and the entryway is\n\
inlaid with diamonds and fire opals. The door is ajar +. The hallway\n\
goes -.**\n" },
{ "This is the maid's utility room.",
- 0, 0, 0, 16, 0, 0, 0, 0,
+ { 0, 0, 0, 16, 0, 0, 0, 0 },
"What a gruesome sight! The maid has been brutally drowned in a bucket of\n\
Pine Sol and repeatedly stabbed in the back with a knife.***\n\
The hallway is +.\n" },
{ "This is a luxurious stateroom.",
- 0, 8, 16, 0, 0, 0, 0, 0,
+ { 0, 8, 16, 0, 0, 0, 0, 0 },
"The floor is carpeted with a soft animal fur and the great wooden furniture\n\
is inlaid with strips of platinum and gold. Electronic equipment built\n\
into the walls and ceiling is flashing wildly. The floor shudders and\n\
@@ -163,1049 +163,1048 @@ the sounds of dull explosions rumble though the room. From a window in\n\
the wall + comes a view of darkest space. There is a small adjoining\n\
room +, and a doorway +.*\n" },
{ "You are at the entrance to the dining hall.",
- 0, 0, 28, 0, 0, 0, 16, 0,
+ { 0, 0, 28, 0, 0, 0, 16, 0 },
"A wide staircase with ebony banisters leads down here.**\n\
The dining hall is to the -.*\n" },
{ "This was once the first class lounge.",
- 0, 0, 29, 0, 16, 1, 0, 0,
+ { 0, 0, 29, 0, 16, 1, 0, 0 },
"There is much rubble and destruction here that was not apparent elsewhere.\n\
The walls and ceilings have broken in in some places. A staircase with\n\
red coral banisters leads up. It is impossible to go - or -.\n\
It seems a little clearer +.*\n" },
{ "You are in a narrow stairwell.",
- 0, 17, 0, 0, 30, 1, 0, 0,
+ { 0, 17, 0, 0, 30, 1, 0, 0 },
"These dusty and decrepit stairs lead up. There is no way -. The\n\
hallway turns sharply -.**\n" },
{ "You are in the magazine.",
- 19, 0, 0, 0, 0, 0, 0, 0,
+ { 19, 0, 0, 0, 0, 0, 0, 0 },
"Rows and rows of neatly stacked ammunition for laser pistols and grenade\n\
launchers are here. The armory is +.***\n" },
{ "You're in the presidential suite.",
- 0, 20, 0, 0, 0, 0, 0, 0,
+ { 0, 20, 0, 0, 0, 0, 0, 0 },
"Apparently the president has been assassinated. A scorched figure lies\n\
face downward on the carpet clutching his chest.*\n\
The hallway leads -.**\n" },
{ "You are in the dining hall.",
- 0, 30, 31, 23, 0, 0, 0, 0,
+ { 0, 30, 31, 23, 0, 0, 0, 0 },
"This was the scene of a mass suicide. Hundreds of ambassadors and assorted\n\
dignitaries sit slumped over their breakfast cereal. I suppose the news\n\
of the cylon attack killed them. There is a strange chill in this room. I\n\
would not linger here. * The kitchen is +. Entrances + and +.\n" },
{ "The debris is very thick here.",
- 0, 11, 0, 24, 0, 0, 0, 0,
+ { 0, 11, 0, 24, 0, 0, 0, 0 },
"Broken furniture, fallen girders, and other rubble block the way.\n\
There is not much chance to continue -, -, or -.\n\
It would be best to go -.\n" },
{ "You are in the kitchen.",
- 28, 0, 0, 0, 0, 0, 0, 0,
+ { 28, 0, 0, 0, 0, 0, 0, 0 },
"This room is full of shining stainless steel and burnished bronze cookware. An \n\
assortment of tropical fruits and vegetables as well as fine meats and cheeses \n\
lies on a sterling platter. The chef, unfortunately, has been skewered like a \n\
side of beef. The dining room is +. ** There is a locked door +.\n" },
{ "You are in an arched entry leading to the dining room.",
- 0, 0, 0, 28, 0, 0, 0, 0,
+ { 0, 0, 0, 28, 0, 0, 0, 0 },
"The door leading out is bolted shut from the outside and is very strong.***\n\
The dining room is +.\n" },
{ "You are in space.",
- 33, 34, 35, 36, 37, 1, 33, 1,
+ { 33, 34, 35, 36, 37, 1, 33, 1 },
"****\n" },
{ "You are in space.",
- 38, 32, 39, 40, 41, 1, 42, 1,
+ { 38, 32, 39, 40, 41, 1, 42, 1 },
"****\n" },
{ "You are in space.",
- 32, 44, 45, 46, 47, 1, 48, 1,
+ { 32, 44, 45, 46, 47, 1, 48, 1 },
"****\n" },
{ "You are in space.",
- 40, 45, 49, 32, 50, 1, 51, 1,
+ { 40, 45, 49, 32, 50, 1, 51, 1 },
"****\n" },
{ "You are in space.",
- 41, 46, 32, 52, 53, 1, 54, 1,
+ { 41, 46, 32, 52, 53, 1, 54, 1 },
"****\n" },
{ "You are in space.",
- 42, 47, 50, 53, 55, 1, 32, 1,
+ { 42, 47, 50, 53, 55, 1, 32, 1 },
"****\n" },
{ "You are in space.",
- 43, 48, 51, 54, 32, 1, 56, 1,
-"****\n" },
+ { 43, 48, 51, 54, 32, 1, 56, 1 }, "****\n" },
{ "You are in space.",
- 57, 33, 40, 41, 42, 1, 43, 1,
+ { 57, 33, 40, 41, 42, 1, 43, 1 },
"****\n" },
{ "You are in space.",
- 39, 35, 57, 33, 58, 1, 59, 1,
+ { 39, 35, 57, 33, 58, 1, 59, 1 },
"****\n" },
{ "You are in space.",
- 39, 36, 33, 59, 60, 1, 61, 1,
+ { 39, 36, 33, 59, 60, 1, 61, 1 },
"****\n" },
{ "You are in space.",
- 39, 37, 58, 60, 62, 1, 33, 1,
+ { 39, 37, 58, 60, 62, 1, 33, 1 },
"****\n" },
{ "You are in space.",
- 39, 38, 59, 61, 33, 1, 63, 1,
+ { 39, 38, 59, 61, 33, 1, 63, 1 },
"****\n" },
{ "You are in space.",
- 34, 64, 45, 46, 47, 1, 48, 1,
+ { 34, 64, 45, 46, 47, 1, 48, 1 },
"****\n" },
{ "You are in space.",
- 35, 44, 49, 34, 50, 1, 51, 1,
+ { 35, 44, 49, 34, 50, 1, 51, 1 },
"****\n" },
{ "You are in space.",
- 36, 44, 34, 52, 53, 1, 54, 1,
+ { 36, 44, 34, 52, 53, 1, 54, 1 },
"****\n" },
{ "You are in space.",
- 37, 44, 50, 53, 55, 1, 34, 1,
+ { 37, 44, 50, 53, 55, 1, 34, 1 },
"****\n" },
{ "You are in space.",
- 38, 44, 51, 54, 34, 1, 56, 1,
+ { 38, 44, 51, 54, 34, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 49, 49, 52, 35, 49, 1, 49, 1,
+ { 49, 49, 52, 35, 49, 1, 49, 1 },
"****\n" },
{ "You are in space.",
- 58, 47, 49, 37, 55, 1, 35, 1,
+ { 58, 47, 49, 37, 55, 1, 35, 1 },
"****\n" },
{ "You are in space.",
- 59, 48, 49, 38, 35, 1, 56, 1,
+ { 59, 48, 49, 38, 35, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 52, 52, 36, 49, 52, 1, 52, 1,
+ { 52, 52, 36, 49, 52, 1, 52, 1 },
"****\n" },
{ "You are in space.",
- 60, 46, 37, 52, 55, 1, 36, 1,
+ { 60, 46, 37, 52, 55, 1, 36, 1 },
"****\n" },
{ "You are in space.",
- 61, 48, 38, 52, 36, 1, 56, 1,
+ { 61, 48, 38, 52, 36, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 62, 55, 55, 55, 56, 1, 37, 1,
+ { 62, 55, 55, 55, 56, 1, 37, 1 },
"****\n" },
{ "You are in space.",
- 56, 56, 56, 56, 38, 1, 55, 1,
+ { 56, 56, 56, 56, 38, 1, 55, 1 },
"****\n" },
{ "You are in space.",
- 65, 39, 57, 57, 57, 1, 57, 1,
+ { 65, 39, 57, 57, 57, 1, 57, 1 },
"****\n" },
{ "You are in space.",
- 39, 50, 49, 42, 62, 1, 40, 1,
+ { 39, 50, 49, 42, 62, 1, 40, 1 },
"****\n" },
{ "You are in space.",
- 39, 51, 49, 43, 40, 1, 63, 1,
+ { 39, 51, 49, 43, 40, 1, 63, 1 },
"****\n" },
{ "You are in space.",
- 39, 53, 43, 59, 62, 1, 41, 1,
+ { 39, 53, 43, 59, 62, 1, 41, 1 },
"****\n" },
{ "You are in space.",
- 39, 54, 43, 59, 41, 1, 56, 1,
+ { 39, 54, 43, 59, 41, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 39, 55, 62, 62, 56, 1, 42, 1,
+ { 39, 55, 62, 62, 56, 1, 42, 1 },
"****\n" },
{ "You are in space.",
- 39, 56, 35, 36, 43, 1, 55, 1,
+ { 39, 56, 35, 36, 43, 1, 55, 1 },
"****\n" },
{ "You are in space.",
- 44, 66, 66, 66, 66, 1, 66, 1,
+ { 44, 66, 66, 66, 66, 1, 66, 1 },
"****\n" },
{ "You are in space.",
- 67, 57, 67, 67, 67, 1, 67, 1,
+ { 67, 57, 67, 67, 67, 1, 67, 1 },
"****\n" },
{ "You are in space.",
- 64, 68, 68, 68, 68, 1, 68, 1,
+ { 64, 68, 68, 68, 68, 1, 68, 1 },
"****\n" },
{ "You are orbiting a small blue planet.",
- 67, 67, 67, 67, 65, 1, 69, 1,
+ { 67, 67, 67, 67, 65, 1, 69, 1 },
"****\n" },
{ "You are orbiting a tropical planet.",
- 68, 68, 68, 68, 66, 1, 70, 1,
+ { 68, 68, 68, 68, 66, 1, 70, 1 },
"****\n" },
{ "You are flying through a dense fog.",
- 69, 69, 69, 69, 69, 1, 69, 1,
+ { 69, 69, 69, 69, 69, 1, 69, 1 },
"A cold grey sea of mist is swirling around the windshield and water droplets\n\
are spewing from the wingtips. Ominous shadows loom in the darkness and it\n\
feels as if a trap is closing around us. I have lost all sense of direction.\n\
****\n" },
{ "You are approaching an island.",
- 71, 72, 73, 74, 68, 1, 0, 1,
+ { 71, 72, 73, 74, 68, 1, 0, 1 },
"Coconut palms, sword ferns, orchids, and other lush vegetation drape this\n\
jagged island carved seemingly from pure emerald and set in a turquoise\n\
sea. The land rises sharply +. There is a nice beach* +.*\n" },
{ "You are flying over a mountainous region.",
- 75, 73, 76, 77, 68, 1, 0, 1,
+ { 75, 73, 76, 77, 68, 1, 0, 1 },
"Below is a magnificent canyon with deep gorges, high pinnacles and\n\
waterfalls plummeting hundreds of feet into mist. Everything in sight\n\
is carpeted with a tropical green.* The ocean is +.**\n" },
{ "You are flying over the ocean.",
- 74, 78, 78, 78, 68, 1, 0, 1,
+ { 74, 78, 78, 78, 68, 1, 0, 1 },
"You bank over the water and your wingtips dip low to the green waves. The\n\
sea is very shallow here and the white coral beds beneath us teem with \n\
colorful fish.****\n" },
{ "You are flying over the beach.",
- 71, 72, 79, 74, 68, 1, 80, 1,
+ { 71, 72, 79, 74, 68, 1, 80, 1 },
"A warm gentle surf caresses the white coral beach here. The land rises\n\
sharply +.* The beach is lost in low cliffs and rocks +.*\n" },
{ "You are flying over a large lagoon.",
- 81, 72, 73, 82, 68, 1, 0, 1,
+ { 81, 72, 73, 82, 68, 1, 0, 1 },
"Encircled by a coral reef, the palms and ferns in this sheltered spot\n\
have grown down to the water's very brink which winds tortuously inland.\n\
There looks like a small village +.***\n" },
{ "You are flying over a gently sloping plane.",
- 83, 71, 84, 85, 68, 1, 0, 1,
+ { 83, 71, 84, 85, 68, 1, 0, 1 },
"This is where several alluvial fans and ancient lava flows have run\n\
together forming a fertile plane choked with vegetation. It would be\n\
impossible to land safely here.* The terrain is more rugged +.**\n" },
{ "You are flying through a gorge.",
- 0, 0, 86, 71, 68, 1, 102, 1,
+ { 0, 0, 86, 71, 68, 1, 102, 1 },
"This narrow, steep sided canyon is lined with waving ferns. The floor is of\n\
light gravel with many freshets pouring from the walls and running along it.\n\
The gorge leads to the sea** +, and to a tumultuous origin +.\n" },
{ "You are flying over a plantation.",
- 85, 81, 71, 88, 68, 1, 89, 1,
+ { 85, 81, 71, 88, 68, 1, 89, 1 },
"Rows of palms, papayas, mangoes, kiwi, as well as smaller fields of sugar\n\
cane and pineapple are growing here. It might be possible to land here, but\n\
I wouldn't advise it.* There looks like two small settlements + \n\
and *+.\n" },
{ "You are over the ocean.",
- 72, 78, 79, 74, 68, 1, 0, 1,
+ { 72, 78, 79, 74, 68, 1, 0, 1 },
"The deep green swells foam and roll into the shore **+*.\n" },
{ "You are flying along the coast.",
- 86, 72, 90, 73, 68, 1, 91, 1,
+ { 86, 72, 90, 73, 68, 1, 91, 1 },
"The coastline here is very rocky with little or no sand. The surf in some\n\
places is violent and explodes in a shower of sparkling spray.\n\
There is a winding road below which closely follows the shore. ****\n" },
{ "This is a beautiful coral beach.",
- 106, 0, 107, 108, 73, 0, 0, 0,
+ { 106, 0, 107, 108, 73, 0, 0, 0 },
"Fine silver sand kissed lightly by warm tropical waters stretches at least\n\
30 meters here from the ocean to under gently swaying palms +.***\n" },
{ "You are flying over a small fishing village.",
- 77, 74, 71, 82, 68, 1, 92, 1,
+ { 77, 74, 71, 82, 68, 1, 92, 1 },
"A few thatched huts a short distance from the water and row of more modern\n\
bungalows on either side of a dirt road are all that is here. The road\n\
continues on ***+.\n" },
{ "You are flying over a clearing.",
- 88, 72, 74, 87, 68, 1, 93, 1,
+ { 88, 72, 74, 87, 68, 1, 93, 1 },
"There is a dock here (big enough for a seaplane) leading to a grassy\n\
meadow and a road. Some people are having a party down there. Below is\n\
a good landing site. ****\n" },
{ "You are flying over the shore.",
- 94, 75, 95, 96, 68, 1, 0, 1,
+ { 94, 75, 95, 96, 68, 1, 0, 1 },
"Rocky lava flows or coarse sandy beaches are all that is here except for\n\
sparse herbs and weeds.****\n" },
{ "You are flying in a wide valley.",
- 95, 97, 86, 75, 68, 1, 98, 1,
+ { 95, 97, 86, 75, 68, 1, 98, 1 },
"This is a shallow valley yet the floor is obscured by a thick mist.\n\
The valley opens to the sea +. The mist grows thicker +.**\n" },
{ "You are flying near the shore.",
- 96, 77, 75, 99, 68, 1, 0, 1,
+ { 96, 77, 75, 99, 68, 1, 0, 1 },
"Very tall palm trees growing in neatly planted rows march off from the \n\
water here towards the hills and down to the flat lands *+.*\n\
There is a nice beach +.\n" },
{ "You are flying around the very tip of the island.",
- 95, 79, 90, 84, 68, 1, 0, 1,
+ { 95, 79, 90, 84, 68, 1, 0, 1 },
"There is no beach here for sheer cliffs rise several hundred feet\n\
to a tree covered summit. Far below, the blue sea gnaws voraciously at\n\
the roots of these cliffs. The island bends around +** and +.\n" },
{ "You are flying along the coastline.",
- 99, 82, 88, 100, 68, 1, 101, 1,
+ { 99, 82, 88, 100, 68, 1, 101, 1 },
"There is a narrow strip of sand here lined with ferns and shrubs, but very\n\
few trees. The beach is barley wide enough to land on. The beach continues\n\
on -.* There are some buildings +.*\n" },
{ "You are flying over several cottages and buildings",
- 99, 82, 77, 87, 68, 1, 103, 1,
+ { 99, 82, 77, 87, 68, 1, 103, 1 },
"The grounds here are landscaped with palm trees, ferns, orchids, and beds of\n\
flowering plumeria and antheriums. Directly below is a small ornate white\n\
house with a belltower, a lush green lawn, and a spurting fountain.\n\
Small dirt roads go + and +.**\n" },
{ "You are in a field of sugar cane.",
- 109, 110, 111, 112, 77, 0, 0, 0,
+ { 109, 110, 111, 112, 77, 0, 0, 0 },
"These strong, thick canes give little shelter but many cuts and scrapes.\n\
There are some large trees ***+.\n" },
{ "You are flying over the ocean.",
- 95, 78, 90, 86, 68, 1, 0, 1,
+ { 95, 78, 90, 86, 68, 1, 0, 1 },
"The water is a placid turquoise and so clear that fish and sharks\n\
many fathoms below are clearly visible.****\n" },
{ "You are on the coast road.",
- 113, 114, 115, 116, 79, 0, 0, 0,
+ { 113, 114, 115, 116, 79, 0, 0, 0 },
"The road winds close to the shore here and the sound of crashing surf is\n\
deafening.* The water is +. The road continues - and -.\n" },
{ "You are on the main street of the village.",
- 117, 118, 119, 120, 81, 0, 0, 0,
+ { 117, 118, 119, 120, 81, 0, 0, 0 },
"Thatched roofs and outrigger canoes, palm trees and vacation bungalows, and\n\
comely natives in a tropical paradise all make this a fantasy come true.\n\
There is an open bungalow +.* The road continues - and -.\n" },
{ "You are at the sea plane dock.",
- 121, 122, 123, 124, 82, 0, 0, 0,
+ { 121, 122, 123, 124, 82, 0, 0, 0 },
"Native girls with skin of gold, clad only in fragrant leis and lavalavas,\n\
-line the dockside to greet you. A couple of ukulele plucking islanders and a\n\
+line the dockside to greet you. A couple of ukulele-plucking islanders and a\n\
keyboard player are adding appropriate music. A road crosses the clearing \n\
+*. There are some tables set up +.*\n" },
{ "You are flying over the ocean.",
- 94, 83, 95, 96, 68, 1, 0, 1,
+ { 94, 83, 95, 96, 68, 1, 0, 1 },
"Sea weeds and kelp surge in the waves off shore here. The ocean becomes \n\
much deeper +.***\n" },
{ "You are flying along the coast.",
- 94, 84, 86, 83, 68, 1, 0, 1,
+ { 94, 84, 86, 83, 68, 1, 0, 1 },
"The land is very low here with a river running into the sea +. There\n\
is a wide valley opening up +. The very tip of the island is +.*\n" },
{ "You are flying along the coast.",
- 94, 85, 83, 99, 68, 1, 0, 1,
+ { 94, 85, 83, 99, 68, 1, 0, 1 },
"There are some secluded sandy stretches of beach here, but too many rocky\n\
outcroppings of lava to land. There is a nicer beach ***+.\n" },
{ "You are lost in a sea of fog.",
- 97, 104, 97, 97, 97, 1, 0, 1,
+ { 97, 104, 97, 97, 97, 1, 0, 1 },
"What have you gotten us into?\n\
I can't see a thing! ****\n" },
{ "You are on a gravel wash.",
- 125, 126, 127, 128, 84, 0, 0, 0,
+ { 125, 126, 127, 128, 84, 0, 0, 0 },
"The sound of cascading water is the background for a diluted chorus of \n\
gurgling, splashing, and enchantingly delicate singing. Great billows\n\
of steam are rising *+.**\n" },
{ "You are flying over a wide beach.",
- 96, 88, 85, 87, 68, 1, 105, 1,
+ { 96, 88, 85, 87, 68, 1, 105, 1 },
"Unlike the leeward beaches, few coconut palms grow here but a well groomed\n\
lawn and garden with traipsing stone walks leads down to the sand.*\n\
There are some buildings +. Some trees are growing +.*\n" },
{ "You are flying over the ocean.",
- 100, 100, 87, 100, 68, 1, 0, 1,
+ { 100, 100, 87, 100, 68, 1, 0, 1 },
"The sea is a perfectly clear blue with a white sandy bottom. No coral\n\
grows underwater here, but the force of the waves is broken by the steep\n\
incline.****\n" },
{ "You are on a narrow strip of sand.",
- 129, 130, 131, 0, 87, 0, 0, 0,
+ { 129, 130, 131, 0, 87, 0, 0, 0 },
"Rather coarse sand makes this beach very steep and only a few meters wide.\n\
A fresh ocean breeze is rustling the ferns **+.*\n" },
{ "This is Fern Canyon.",
- 0, 0, 132, 133, 76, 0, 0, 0,
+ { 0, 0, 132, 133, 76, 0, 0, 0 },
"Delicate waving ferns flourish here, suckled by warm water dripping from \n\
every fissure and crevice in the solid rock walls.\n\
The canyon winds **-, and -.\n" },
{ "This is the front lawn.",
- 134, 135, 136, 137, 88, 0, 0, 0,
+ { 134, 135, 136, 137, 88, 0, 0, 0 },
"There is a small fountain here where the driveway meets the lawn.\n\
Across the driveway, +, is an ornate white house with and elegant \n\
woodworking. The bargeboards are carved with fylfots, the ancient \n\
symbols of luck. Even a bell tower has been built here.* There is a \n\
road + which turns into the driveway.*\n" },
{ "You have just crossed the crest of a mountain.",
- 97, 79, 86, 71, 68, 1, 0, 1,
+ { 97, 79, 86, 71, 68, 1, 0, 1 },
"The fog vanished mysteriously as we flew over the crest.*\n\
Far + I can see the ocean.**\n" },
{ "You are on a sandy beach.",
- 138, 139, 140, 0, 99, 0, 0, 0,
+ { 138, 139, 140, 0, 99, 0, 0, 0 },
"This is the only good beach on the weather side of the island. Fine coral\n\
sand, a fresh sea breeze, and dramatic surf add to its appeal.**\n\
Stone steps lead to the gardens +.*\n" },
{ "You are among palm trees near the shore.",
- 141, 80, 142, 143, 73, 0, 0, 0,
+ { 141, 80, 142, 143, 73, 0, 0, 0 },
"Arching coconut palms laden with fruit provide a canopy for the glistening\n\
white sand and sparse grasses growing here. The forest grows denser +.\n\
The ocean is +.**\n" },
{ "You are walking along the beach.",
- 144, 0, 145, 80, 73, 0, 0, 0,
+ { 144, 0, 145, 80, 73, 0, 0, 0 },
"The warm tropical waters nuzzle your ankles as you walk. Above is a fiercely\n\
blue sky. The slope of the sand is so gentle that two hundred meters\n\
offshore the water is only knee deep.** There are some rocks +.*\n" },
{ "You are walking along the beach.",
- 146, 0, 80, 147, 73, 0, 0, 0,
+ { 146, 0, 80, 147, 73, 0, 0, 0 },
"Many beautiful shells have been washed up here including bright yellow \n\
-cowries, chocolate colored murex, orange conchs, striped tritons and the\n\
+cowries, chocolate colored murex, orange conches, striped tritons and the\n\
deadly cone shells.****\n" },
{ "You are in a papaya grove.",
- 148, 89, 149, 150, 77, 0, 0, 0,
+ { 148, 89, 149, 150, 77, 0, 0, 0 },
"Green slender trees no taller than three meters bulge with their\n\
orange succulent fruit. There are some tall trees +.***\n" },
{ "You are in a field of pineapple.",
- 89, 151, 152, 153, 77, 0, 0, 0,
+ { 89, 151, 152, 153, 77, 0, 0, 0 },
"The sharp dagger like pineapple leaves can pierce the flesh and hold fast\n\
a skewered victim with tiny barbs.* The field ends +.**\n" },
{ "You are in a field of kiwi plants.",
- 149, 154, 155, 89, 77, 0, 0, 0,
+ { 149, 154, 155, 89, 77, 0, 0, 0 },
"Round hairy fruit hang from staked vines here. There are some trees +\n\
and +. The field ends in a dirt road +.*\n" },
{ "You are in a large grove of coconuts.",
- 150, 153, 89, 156, 77, 0, 0, 0,
+ { 150, 153, 89, 156, 77, 0, 0, 0 },
"These trees are much taller than any growing near the shore plus the fat,\n\
juicy coconuts have been selectively cultivated. The grove continues\n\
+, +, *and +.\n" },
{ "You are in the woods.",
- 157, 91, 158, 116, 79, 0, 0, 0,
+ { 157, 91, 158, 116, 79, 0, 0, 0 },
"Tropical undergrowth makes the going rough here. Sword ferns give no strong\n\
foot hold and the dangling vines would gladly throttle one. Strange cackling\n\
noises are coming from somewhere +.***\n" },
{ "You are at the shore.",
- 91, 0, 159, 145, 79, 0, 0, 0,
+ { 91, 0, 159, 145, 79, 0, 0, 0 },
"Explosions of surf jetting out of underwater tunnels here make it\n\
impossible to climb down to a small cave entrance below. Only at rare\n\
minus tides would it be possible to enter.*** The beach is better +.\n" },
{ "You are on the coast road.",
- 158, 161, 162, 91, 79, 0, 0, 0,
+ { 158, 161, 162, 91, 79, 0, 0, 0 },
"The road is beginning to turn inland.* I can hear the surf +. The road\n\
continues +.*\n" },
{ "The road winds deeper into the trees.",
- 163, 142, 91, 164, 79, 0, 0, 0,
+ { 163, 142, 91, 164, 79, 0, 0, 0 },
"Only narrow sunbeams filter through the foliage above. The moist rich earth\n\
has nurtured a myriad of trees, shrubs, and flowers to grow here. The\n\
road continues - and *- from here.*\n" },
{ "This is the front porch of the bungalow.",
- 165, 92, 0, 0, 81, 0, 0, 0,
+ { 165, 92, 0, 0, 81, 0, 0, 0 },
"These wooden steps and porch are very bucolic. A little woven mat on the \n\
doorstep reads \"Don't Tread on Me\". The open front door is +.\n\
A stone walk leads to the main street +.**\n" },
{ "You are on a path leading to the lagoon.",
- 92, 166, 167, 168, 81, 0, 0, 0,
+ { 92, 166, 167, 168, 81, 0, 0, 0 },
"This path trampled fern, grass, sapling, and anything else that got in its\n\
way.* The water is +.**\n" },
{ "This is a dirt road.",
- 169, 118, 170, 92, 81, 0, 0, 0,
+ { 169, 118, 170, 92, 81, 0, 0, 0 },
"**The road continues on - here for some distance. A village is +.\n" },
{ "You are on a dirt road.",
- 171, 118, 92, 172, 81, 0, 0, 0,
+ { 171, 118, 92, 172, 81, 0, 0, 0 },
"**There is a small village +. The road continues +.\n" },
{ "You are on a dirt road.",
- 173, 93, 174, 175, 82, 0, 0, 0,
+ { 173, 93, 174, 175, 82, 0, 0, 0 },
"The light tan soil of the road contrasts artistically with the lush green\n\
-vegetation and seering blue sky.* There is a clearing and many people +.\n\
+vegetation and searing blue sky.* There is a clearing and many people +.\n\
The road continues - and -.\n" },
{ "You are at the seaplane dock.",
- 93, 0, 176, 177, 82, 0, 0, 0,
+ { 93, 0, 176, 177, 82, 0, 0, 0 },
"Several muscular, bronze skinned men greet you warmly as you pass under\n\
a thatched shelter above the dock here. Polynesian hospitality.\n\
There is a clearing +.* A trail runs around the lagoon + and +.\n" },
{ "There are some tables on the lawn here.",
- 121, 122, 123, 93, 82, 0, 0, 0,
+ { 121, 122, 123, 93, 82, 0, 0, 0 },
"Hors d'oeuvres, canapes, mixed drinks, and various narcotic drugs along with\n\
cartons of Di Gel fill the tables to overflowing. Several other guests are\n\
conversing and talking excitedly****.\n" },
{ "You are nosing around in the bushes.",
- 124, 124, 93, 124, 82, 0, 0, 0,
+ { 124, 124, 93, 124, 82, 0, 0, 0 },
"There is little here but some old beer cans. You are making fools out of\n\
us in front of the other guests.** It would be best to go -.*\n" },
{ "You are walking in a dry stream bed.",
- 178, 98, 179, 0, 84, 0, 0, 0,
+ { 178, 98, 179, 0, 84, 0, 0, 0 },
"The large cobblestones are difficult to walk on. No sunlight reaches\n\
below a white canopy of fog seemingly generated from *+. A dirt path \n\
along the wash is +. A high bank is impossible to climb +.\n" },
{ "You are at the thermal pools.",
- 98, 0, 180, 181, 84, 0, 0, 0,
+ { 98, 0, 180, 181, 84, 0, 0, 0 },
"Several steaming fumaroles and spluttering geysers drenched by icy mountain\n\
waters from a nearby waterfall heat half a dozen natural pools to a\n\
delicious 42 degrees. Enchantingly beautiful singing seems to flow from the\n\
water itself as it tumbles down the falls.*** There is a mossy entrance\n\
to a cave +.\n" },
{ "You are in the woods.",
- 127, 180, 182, 98, 84, 0, 0, 0,
+ { 127, 180, 182, 98, 84, 0, 0, 0 },
"Coniferous trees girded by wild huckleberries, elderberries, salmonberries\n\
and thimbleberries enjoy a less tropical climate here in the high mountains.\n\
*The sound of rushing water is coming from +.**\n" },
{ "You are on a dirt trail.",
- 179, 181, 98, 0, 84, 0, 0, 0,
+ { 179, 181, 98, 0, 84, 0, 0, 0 },
"The trail seems to start here and head -.** High cliffs border the \n\
trail +.\n" },
{ "You are walking along the beach.",
- 183, 101, 184, 0, 87, 0, 0, 0,
+ { 183, 101, 184, 0, 87, 0, 0, 0 },
"A rather unnerving surf explodes onto the beach here and dashes itself into\n\
spray on the steep incline. The beach continues + and +.**\n" },
{ "You are walking along the beach.",
- 101, 185, 186, 0, 87, 0, 0, 0,
+ { 101, 185, 186, 0, 87, 0, 0, 0 },
"This is not a very nice beach. The coarse sand hurts my feet.****\n" },
{ "You are walking through some ferns.",
- 184, 186, 187, 101, 87, 0, 0, 0,
+ { 184, 186, 187, 101, 87, 0, 0, 0 },
"This is a wide field growing only ferns and small shrubs.** The \n\
ocean is *+.\n" },
{ "You are in a narrow canyon.",
- 0, 0, 188, 102, 76, 0, 0, 0,
+ { 0, 0, 188, 102, 76, 0, 0, 0 },
"The steep sides here squeeze a little freshet through a gauntlet like\n\
series of riffles and pools.****\n" },
{ "The canyon is much wider here.",
- 0, 0, 102, 189, 76, 0, 0, 0,
+ { 0, 0, 102, 189, 76, 0, 0, 0 },
"The sheer rock walls rise 10 meters to the forest above. A slender \n\
waterfall careens away from the face of the rock high above and showers\n\
the gravel floor with sparkling raindrops.** The canyon continues -\n\
and -.\n" },
{ "You are on the front porch of the cottage.",
- 190, 103, 0, 0, 0, 0, 0, 0,
+ { 190, 103, 0, 0, 0, 0, 0, 0 },
"Several giggling native girls came running down the steps as you approached\n\
and headed on down the road. On the fern rimmed porch is a small table with\n\
matching white wrought iron chairs cushioned with red velvet. The front\n\
door leads -. The lawn and fountain are +.**\n" },
{ "You are in a palm grove.",
- 103, 191, 192, 105, 88, 0, 0, 0,
+ { 103, 191, 192, 105, 88, 0, 0, 0 },
"****\n" },
{ "You are on a dirt road.",
- 193, 192, 245, 103, 88, 0, 0, 0,
+ { 193, 192, 245, 103, 88, 0, 0, 0 },
"There is a large village +. The road cleaves a coconut plantation +.\n\
A small dirt road goes -, and a drive way peals off +.\n" },
{ "You are in a field of small shrubs.",
- 184, 186, 103, 187, 88, 0, 0, 0,
+ { 184, 186, 103, 187, 88, 0, 0, 0 },
"**Pine and other coniferous saplings have been planted here. The rich brown\n\
soil is well tilled and watered. Across a large lawn, there is a small\n\
cottage +. I can feel a delicious sea breeze blowing from +.\n" },
{ "The beach is pretty rocky here.",
- 194, 105, 195, 0, 96, 0, 0, 0,
+ { 194, 105, 195, 0, 96, 0, 0, 0 },
"Dangerous surf and lava outcroppings make this a treacherous strand.\n\
The beach is nicer* +.**\n" },
{ "The beach is almost 10 meters wide here.",
- 105, 183, 196, 0, 99, 0, 0, 0,
+ { 105, 183, 196, 0, 99, 0, 0, 0 },
"The sand has become more coarse and the beach steeper.* It gets \n\
worse +.**\n" },
{ "You are in the gardens.",
- 195, 196, 197, 105, 99, 0, 0, 0,
+ { 195, 196, 197, 105, 99, 0, 0, 0 },
"Lush green lawns studded with palms and benches stretch as far as the eye\n\
can see.** A path leads -. Stone steps lead down to the beach +.\n" },
{ "You are on the coast road.",
- 198, 106, 163, 199, 73, 0, 0, 0,
+ { 198, 106, 163, 199, 73, 0, 0, 0 },
"The forest is dense on either side and conceals the road from anyone\n\
approaching it.** The road continues - and -.\n" },
{ "You are in the forest.",
- 116, 107, 91, 106, 73, 0, 0, 0,
+ { 116, 107, 91, 106, 73, 0, 0, 0 },
"There are trees and ferns all around.****\n" },
{ "You are in the forest.",
- 199, 108, 106, 146, 73, 0, 0, 0,
+ { 199, 108, 106, 146, 73, 0, 0, 0 },
"There are trees and ferns all around.****\n" },
{ "You are in a copse.",
- 142, 107, 145, 80, 0, 0, 0, 0,
+ { 142, 107, 145, 80, 0, 0, 0, 0 },
"This is a secret hidden thicket only noticeable from the beach. Someone\n\
has been digging here recently.****\n" },
{ "You are at the tide pools.",
- 91, 0, 114, 107, 79, 0, 0, 0,
+ { 91, 0, 114, 107, 79, 0, 0, 0 },
"These rocks and pools are the home for many sea anemones and crustaceans.\n\
**The surf is very rough +. There is a nice beach +.\n" },
{ "You are in the forest.",
- 199, 108, 143, 0, 73, 0, 0, 0,
+ { 199, 108, 143, 0, 73, 0, 0, 0 },
"This is a shallow depression sheltered from the wind by a thick growth of \n\
thorny shrubs. It looks like someone has camped here. There is a fire pit\n\
with some dry sticks and grass nearby.* The beach is +.* The thorny\n\
shrubs block the way -.\n" },
{ "You are at the mouth of the lagoon.",
- 200, 0, 108, 201, 74, 0, 0, 0,
+ { 200, 0, 108, 201, 74, 0, 0, 0 },
"The beach ends here where the coral reef rises to form a wide lagoon\n\
bending inland. A path winds around the lagoon to the -.*\n\
The beach continues on -. Only water lies +.\n" },
{ "You are in a breadfruit grove.",
- 202, 109, 203, 204, 77, 0, 0, 0,
+ { 202, 109, 203, 204, 77, 0, 0, 0 },
"The tall trees bend leisurely in the breeze, holding many round breadfruits\n\
close to their large serrated leaves. There are coconut palms +,\n\
*+, and +.\n" },
{ "You are in a grove of mango trees.",
- 203, 111, 205, 109, 77, 0, 0, 0,
+ { 203, 111, 205, 109, 77, 0, 0, 0 },
"The juicy yellow red fruits are nearly ripe on the trees here. There are\n\
some coconut palms +. There are some vines +. There is a road +.*\n" },
{ "You are in a grove of coconut palms.",
- 204, 112, 109, 206, 77, 0, 0, 0,
+ { 204, 112, 109, 206, 77, 0, 0, 0 },
"All I can see around us are palm trees.****\n" },
{ "You are in a coconut grove.",
- 110, 207, 208, 209, 77, 0, 0, 0,
+ { 110, 207, 208, 209, 77, 0, 0, 0 },
"There are countless trees here.****\n" },
{ "You are in a field of pineapple.",
- 154, 208, 210, 110, 77, 0, 0, 0,
+ { 154, 208, 210, 110, 77, 0, 0, 0 },
"The sharp leaves are cutting me to ribbons. There is a road **+.\n\
More pineapple +.\n" },
{ "You are in a coconut grove.",
- 112, 209, 110, 211, 77, 0, 0, 0,
+ { 112, 209, 110, 211, 77, 0, 0, 0 },
"There is a field of pineapple **+.*\n" },
{ "You are on the edge of a kiwi and pineapple field.",
- 111, 152, 155, 110, 77, 0, 0, 0,
+ { 111, 152, 155, 110, 77, 0, 0, 0 },
"An irrigation ditch separates the two fields here. There is a road **+.*\n" },
{ "This is a dirt road.",
- 205, 210, 212, 111, 77, 0, 0, 0,
+ { 205, 210, 212, 111, 77, 0, 0, 0 },
"The road runs - and - here.**\n" },
{ "You are in a palm grove.",
- 206, 211, 112, 213, 77, 0, 0, 0,
+ { 206, 211, 112, 213, 77, 0, 0, 0 },
"There are palm trees all around us.****\n" },
{ "You are on the edge of a small clearing.",
- 157, 113, 157, 157, 79, 0, 0, 0,
+ { 157, 113, 157, 157, 79, 0, 0, 0 },
"The ground is rather marshy here and darting in and out of the many tussocks\n\
is a flock of wild chicken like fowl.****\n" },
{ "You are in the woods.",
- 158, 115, 215, 113, 79, 0, 0, 0,
+ { 158, 115, 215, 113, 79, 0, 0, 0 },
"You have walked a long way and found only trees. ****\n" },
{ "You are walking along the shore.",
- 115, 0, 214, 114, 86, 0, 0, 0,
+ { 115, 0, 214, 114, 86, 0, 0, 0 },
"You are now about 10 meters above the surf on a gently rising cliffside.**\n\
The land rises +. There is a beach far +.\n" },
{ "You are just inside the entrance to the sea cave.",
- 246, 114, 0, 0, 114, 1, 0, 0,
+ { 246, 114, 0, 0, 114, 1, 0, 0 },
"The sound of water dripping in darkness and the roar of the ocean just outside\n\
create a very unwelcoming atmosphere inside this cave. Only on rare occasions\n\
such as this is it possible to enter the forbidden catacombs... The cave\n\
continues -.***\n" },
{ "You are in a secret nook beside the road.",
- 115, 159, 162, 91, 79, 0, 0, 0,
+ { 115, 159, 162, 91, 79, 0, 0, 0 },
"Hidden from all but the most stalwart snoopers are some old clothes, empty\n\
beer cans and a trash baggie full of used Huggies and ordure. Lets get\n\
back to the road +.***\n" },
{ "You are on the coast road.",
- 215, 214, 0, 115, 86, 0, 0, 0,
+ { 215, 214, 0, 115, 86, 0, 0, 0 },
"The road turns abruptly - here, avoiding the cliffs near the shore\n\
+ and +.*\n" },
{ "You are on a dirt road.",
- 216, 116, 113, 141, 79, 0, 0, 0,
+ { 216, 116, 113, 141, 79, 0, 0, 0 },
"The roadside is choked with broad leaved plants fighting for every breath of\n\
sunshine. The palm trees are taller than at the shore yet bend over the road \n\
forming a canopy. The road continues *- and *-.\n" },
{ "You have discovered a hidden thicket near the road.",
- 163, 142, 116, 106, 73, 0, 0, 0,
+ { 163, 142, 116, 106, 73, 0, 0, 0 },
"Stuffed into a little bundle here is a bloody silken robe and many beer cans.\n\
*Some droplets of blood and a major spill sparkle farther +.\n\
The road is +.*\n" },
{ "You are in the living room.",
- 0, 117, 217, 218, 0, 0, 0, 0,
+ { 0, 117, 217, 218, 0, 0, 0, 0 },
"A decorative entry with fresh flowers and wall to wall carpeting leads into\n\
the living room here where a couch and two chairs converse with an end table.\n\
*The exit is +.* The bedroom is +.\n" },
{ "You are at the lagoon.",
- 118, 0, 167, 168, 81, 0, 0, 0,
+ { 118, 0, 167, 168, 81, 0, 0, 0 },
"There are several outrigger canoes pulled up on a small beach here and a\n\
catch of colorful fish is drying in the sun. There are paths leading \n\
off -*, -, and -.\n" },
{ "You are at the lagoon.",
- 118, 0, 170, 166, 81, 0, 0, 0,
-"This is a grassy little spot near the water. A sightly native girl is frolicing\n\
+ { 118, 0, 170, 166, 81, 0, 0, 0 },
+"This is a grassy little spot near the water. A sightly native girl is frolicking\n\
in the water close to shore here.** The path continues - and -. \n" },
{ "You are at the lagoon.",
- 118, 0, 166, 172, 81, 0, 0, 0,
+ { 118, 0, 166, 172, 81, 0, 0, 0 },
"The path meanders through tussocks of grass, ferns, and thorny bushes here\n\
and continues on **- and -.\n" },
{ "You are in the woods.",
- 219, 119, 220, 92, 81, 0, 0, 0,
+ { 219, 119, 220, 92, 81, 0, 0, 0 },
"There are plenty of ferns and thorny bushes here! ****\n" },
{ "You are on a dirt road.",
- 220, 167, 199, 119, 74, 0, 0, 0,
+ { 220, 167, 199, 119, 74, 0, 0, 0 },
"The road winds rather close to a large lagoon here and many sedges and tall\n\
grasses line the shoulder *+. The road continues - and -.\n" },
{ "You are in the woods beside the road.",
- 221, 120, 92, 222, 81, 0, 0, 0,
+ { 221, 120, 92, 222, 81, 0, 0, 0 },
"The forest grows darker +. The road is +.**\n" },
{ "The road crosses the lagoon here.",
- 222, 0, 120, 174, 81, 0, 0, 0,
+ { 222, 0, 120, 174, 81, 0, 0, 0 },
"Coursing through the trees, the road at this point bridges a watery finger\n\
of the lagoon.* The water is +. The road continues - and -.\n" },
{ "You are in a coconut palm grove.",
- 223, 121, 224, 225, 82, 0, 0, 0,
+ { 223, 121, 224, 225, 82, 0, 0, 0 },
"The tall palms are planted about 30 feet apart with a hardy deep green grass\n\
filling the spaces in between. There are tire tracks through the grass. The\n\
grove continues -. There is a road +.**\n" },
{ "You are walking along a dirt road.",
- 224, 176, 172, 121, 82, 0, 0, 0,
+ { 224, 176, 172, 121, 82, 0, 0, 0 },
"You are nearing the lagoon.** The road continues - and -.\n" },
{ "You are on a dirt road.",
- 225, 177, 121, 226, 82, 0, 0, 0,
+ { 225, 177, 121, 226, 82, 0, 0, 0 },
"The road turns abruptly - here, entering a grove of palm trees.* The road\n\
also continues - toward the lagoon.*\n" },
{ "You are on a trail running around the lagoon.",
- 172, 0, 0, 122, 82, 0, 0, 0,
+ { 172, 0, 0, 122, 82, 0, 0, 0 },
"The dark waters brush the trail here and the path crosses a bridge +.\n\
There is deep water + and +. The trail continues -.\n" },
{ "This is the mouth of the lagoon.",
- 175, 0, 122, 227, 82, 0, 0, 0,
+ { 175, 0, 122, 227, 82, 0, 0, 0 },
"The coral reef wraps around a natural bay here to create a wide lagoon which\n\
winds tortuously inland.** A trail goes around the lagoon +. The beach\n\
is +.\n" },
{ "You are in a dry stream bed.",
- 0, 125, 0, 0, 84, 0, 0, 0,
+ { 0, 125, 0, 0, 84, 0, 0, 0 },
"The dry wash drains over a tall precipice here into a turbid morass below. The\n\
most noisome stench imaginable is wafting up to defile our nostrils. Above,\n\
the lurid sun glows brown through a strange mist.* The only direction \n\
I'm going is -.**\n" },
{ "You are on a dirt path along the wash.",
- 0, 128, 125, 228, 84, 0, 0, 0,
+ { 0, 128, 125, 228, 84, 0, 0, 0 },
"This path looks more like a deer trail. It scampers away ***+.\n" },
{ "The thermal pools flow into a stream here.",
- 127, 0, 229, 126, 84, 0, 0, 0,
+ { 127, 0, 229, 126, 84, 0, 0, 0 },
"The gurgling hot waters pour over boulders into a swiftly flowing\n\
stream **+. The pools are +.\n" },
{ "You are at the entrance to a cave.",
- 128, 230, 126, 0, 84, 0, 0, 0,
+ { 128, 230, 126, 0, 84, 0, 0, 0 },
"A tall narrow fissure in the rock cliffs here has become a well traveled\n\
passage way. A hoof beaten dirt path leads directly into it. A curl of\n\
steam is trailing from a corner of the fissure's gaping mouth. The path\n\
leads - and -. The pools are +.*\n" },
{ "You are in the woods.",
- 182, 229, 182, 127, 84, 0, 0, 0,
+ { 182, 229, 182, 127, 84, 0, 0, 0 },
"Wild berry bushes plump with fruit and thorns tangle your every effort to\n\
proceed.* The sound of rushing water is +.**\n" },
{ "You are walking along the beach.",
- 139, 129, 184, 0, 99, 0, 0, 0,
+ { 139, 129, 184, 0, 99, 0, 0, 0 },
"Some dunes here progress inland and make it impossible to get very far in that\n\
direction. The beach continues - and -.* The ocean is +.\n" },
{ "You are in the dunes.",
- 183, 101, 184, 129, 87, 0, 0, 0,
+ { 183, 101, 184, 129, 87, 0, 0, 0 },
"The endless rolling and pitching sand dunes are enough to make one very queasy!\n\
The only way I'm going is ***+.\n" },
{ "This is a lousy beach.",
- 130, 0, 0, 0, 87, 0, 0, 0,
+ { 130, 0, 0, 0, 87, 0, 0, 0 },
"Volcanic and viciously sharp bitted grains of sand here bite like cold steel\n\
into my tender feet. I refuse to continue on. Let's get out of here. The\n\
beach is better +.***\n" },
{ "You are in a field of sparse ferns.",
- 131, 185, 187, 130, 87, 0, 0, 0,
+ { 131, 185, 187, 130, 87, 0, 0, 0 },
"The lava rock outcroppings here will support few plants. There is more \n\
vegetation +. There is a nice beach +.* The ocean is +.\n" },
{ "You are in the woods.",
- 131, 131, 137, 131, 87, 0, 0, 0,
+ { 131, 131, 137, 131, 87, 0, 0, 0 },
"Young trees and tall shrubs grow densely together at this distance from the \n\
shore.** The trees grow thicker +.*\n" },
{ "The canyon is no wider than a foot here.",
- 0, 0, 0, 132, 0, 0, 0, 0,
+ { 0, 0, 0, 132, 0, 0, 0, 0 },
"The freshet is gushing through the narrow trough, but the canyon has grown\n\
too narrow to follow it any farther.*** I guess we'll have to go -.\n" },
{ "You are in a narrow part of the canyon.",
- 0, 0, 133, 232, 76, 0, 0, 0,
+ { 0, 0, 133, 232, 76, 0, 0, 0 },
"The two sheer sides are no more than a few meters apart here. There is a stone\n\
door in the wall +. The gravelly floor runs with tiny rivulets seeping \n\
from the ground itself.* The canyon continues - and -.\n" },
{ "You are in the drawing room.",
- 0, 134, 0, 0, 0, 0, 0, 0,
+ { 0, 134, 0, 0, 0, 0, 0, 0 },
"Exquisitely decorated with plants and antique furniture of superb\n\
craftsmanship, the parlor reflects its owners impeccable taste. The tropical\n\
sun is streaming in through open shutters *+. There doesn't seem \n\
to be anybody around. A large immaculate oaken desk is visible in the\n\
study and it even has a old fashioned telephone to complete the decor.**\n" },
{ "You are in a palm grove.",
- 135, 191, 233, 191, 88, 0, 0, 0,
+ { 135, 191, 233, 191, 88, 0, 0, 0 },
"Grassy rows of palms stretch as far as I can see.** There is a road +.*\n" },
{ "You are on a dirt road.",
- 136, 233, 234, 135, 88, 0, 0, 0,
+ { 136, 233, 234, 135, 88, 0, 0, 0 },
"The road winds through a coconut palm grove here. It continues on - \n\
and -.**\n" },
{ "The road leads to several large buildings here.",
- 235, 136, 236, 237, 88, 0, 0, 0,
+ { 235, 136, 236, 237, 88, 0, 0, 0 },
"There is a clubhouse +,* a large barn and stable +, and a garage of \n\
similar construct to the barn +.\n" },
{ "This part of the beach is impassable.",
- 0, 138, 0, 0, 96, 0, 0, 0,
+ { 0, 138, 0, 0, 96, 0, 0, 0 },
"The huge rocks and thunderous surf here would pound our frail bodies to pulp\n\
in an instant.* The only direction I'm going is -.**\n" },
{ "You are in the gardens.",
- 195, 140, 197, 138, 96, 0, 0, 0,
+ { 195, 140, 197, 138, 96, 0, 0, 0 },
"So much green grass is a pleasure to the eyes.****\n" },
{ "You are in the gardens.",
- 140, 183, 197, 139, 99, 0, 0, 0,
+ { 140, 183, 197, 139, 99, 0, 0, 0 },
"Beautiful flowers and shrubs surround a little goldfish pond.****\n" },
{ "You are on a stone walk in the garden.",
- 195, 196, 238, 140, 99, 0, 0, 0,
+ { 195, 196, 238, 140, 99, 0, 0, 0 },
"The walk leads to a road **+.*\n" },
{ "You are in the forest near the road.",
- 198, 141, 216, 198, 73, 0, 0, 0,
+ { 198, 141, 216, 198, 73, 0, 0, 0 },
"There are many thorny bushes here!****\n" },
{ "You are at a fork in the road.",
- 239, 146, 141, 170, 73, 0, 0, 0,
+ { 239, 146, 141, 170, 73, 0, 0, 0 },
"Two roads come together in the forest here. One runs -,* the other \n\
runs - and -.\n" },
{ "You are on a dirt path around the lagoon.",
- 170, 147, 146, 0, 74, 0, 0, 0,
+ { 170, 147, 146, 0, 74, 0, 0, 0 },
"The still waters reflect bending palms and a cloudless sky. It looks like\n\
the path runs into a clearing +. The path continues -.**\n" },
{ "You are drowning in the lagoon.",
- 201, 201, 147, 201, 74, 0, 0, 0,
+ { 201, 201, 147, 201, 74, 0, 0, 0 },
"I suggest you get out before you become waterlogged.****\n" },
{ "You are in a coconut palm grove.",
- 202, 148, 203, 204, 77, 0, 0, 0,
+ { 202, 148, 203, 204, 77, 0, 0, 0 },
"****\n" },
{ "You are in a palm grove.",
- 202, 149, 205, 148, 77, 0, 0, 0,
+ { 202, 149, 205, 148, 77, 0, 0, 0 },
"****\n" },
{ "You are in a palm grove.",
- 202, 150, 148, 206, 77, 0, 0, 0,
+ { 202, 150, 148, 206, 77, 0, 0, 0 },
"****\n" },
{ "You are on a dirt road.",
- 203, 155, 212, 149, 77, 0, 0, 0,
+ { 203, 155, 212, 149, 77, 0, 0, 0 },
"*This road ends here at a palm grove but continues on - for quite\n\
some way.**\n" },
{ "You are in a coconut palm grove.",
- 204, 156, 150, 213, 77, 0, 0, 0,
+ { 204, 156, 150, 213, 77, 0, 0, 0 },
"****\n" },
{ "You are in a coconut grove.",
- 151, 219, 208, 209, 77, 0, 0, 0,
+ { 151, 219, 208, 209, 77, 0, 0, 0 },
"*The grove ends +.**\n" },
{ "You are in a coconut grove.",
- 152, 207, 239, 151, 77, 0, 0, 0,
+ { 152, 207, 239, 151, 77, 0, 0, 0 },
"**There is a dirt road +.*\n" },
{ "You are in a coconut grove.",
- 153, 207, 151, 211, 77, 0, 0, 0,
+ { 153, 207, 151, 211, 77, 0, 0, 0 },
"****\n" },
{ "This is a dirt road.",
- 205, 239, 212, 154, 77, 0, 0, 0,
+ { 205, 239, 212, 154, 77, 0, 0, 0 },
"The road continues - and -.**\n" },
{ "You are in a coconut grove.",
- 153, 209, 153, 213, 77, 0, 0, 0,
+ { 153, 209, 153, 213, 77, 0, 0, 0 },
"****\n" },
{ "You are in the woods near the road.",
- 205, 210, 212, 155, 77, 0, 0, 0,
+ { 205, 210, 212, 155, 77, 0, 0, 0 },
"There are many thorny bushes here!****\n" },
{ "You are in a coconut grove.",
- 213, 213, 156, 234, 88, 0, 0, 0,
+ { 213, 213, 156, 234, 88, 0, 0, 0 },
"***The grove ends in a clearing +.\n" },
{ "You are walking along some high cliffs.",
- 162, 0, 0, 159, 86, 0, 0, 0,
+ { 162, 0, 0, 159, 86, 0, 0, 0 },
"The island bends sharply + here with high cliffs -\n\
and -. The cliffs are lower +.\n" },
{ "You are at the coast road turn around.",
- 0, 162, 0, 158, 90, 0, 0, 0,
+ { 0, 162, 0, 158, 90, 0, 0, 0 },
"The coast road ends here in a lookout with a view of 100 kilometers of blue\n\
sea and 100 meters of rugged cliff. Far below the waves crash against rocks.\n\
****\n" },
{ "You are in the woods near the road.",
- 216, 163, 216, 198, 79, 0, 257, 0,
+ { 216, 163, 216, 198, 79, 0, 257, 0 },
"These thorny bushes are killing me.****\n" },
{ "You are in the kitchen.",
- 0, 0, 0, 165, 0, 0, 0, 0,
+ { 0, 0, 0, 165, 0, 0, 0, 0 },
"A small gas stove and a refrigerator are all the only appliances here. The\n\
gas oven has been left on and the whole room is reeking with natural gas.\n\
One spark from a match and.... The door out is ***+.\n" },
{ "You are in the bedroom.",
- 0, 0, 165, 0, 0, 0, 0, 0,
+ { 0, 0, 165, 0, 0, 0, 0, 0 },
"A soft feather comforter on top of layers of Answer blankets make this a very\n\
luxurious place to sleep indeed. There are also some end tables and a dresser\n\
here.** The living room is +.*\n" },
{ "You are in the woods.",
- 207, 169, 220, 221, 81, 0, 0, 0,
+ { 207, 169, 220, 221, 81, 0, 0, 0 },
"There seems to be a clearing +.***\n" },
{ "You are in the woods near the road.",
- 219, 170, 239, 169, 81, 0, 0, 0,
+ { 219, 170, 239, 169, 81, 0, 0, 0 },
"*As far as I can tell, there are two roads + and +.*\n" },
{ "You are in the woods.",
- 207, 171, 219, 222, 81, 0, 0, 0,
+ { 207, 171, 219, 222, 81, 0, 0, 0 },
"The forest is clearer +.***\n" },
{ "You are on the lagoon's inland finger.",
- 0, 172, 171, 172, 81, 0, 0, 0,
+ { 0, 172, 171, 172, 81, 0, 0, 0 },
"It is impossible to follow the lagoon any farther inland because of sharp\n\
and very painful sedges.* The road is +.**\n" },
{ "You are in a grassy coconut grove.",
- 240, 173, 224, 241, 82, 0, 0, 0,
+ { 240, 173, 224, 241, 82, 0, 0, 0 },
"The tall palms provide a perfect canopy for the lush green grass.***\n\
There is a road +.\n" },
{ "You are near the lagoon's inland finger.",
- 0, 174, 0, 173, 82, 0, 0, 0,
+ { 0, 174, 0, 173, 82, 0, 0, 0 },
"Very sharp sedges make it impossible to follow the lagoon any farther inland.\n\
*There is a road +.**\n" },
{ "You are on a dirt road.",
- 241, 175, 173, 226, 82, 0, 0, 0,
+ { 241, 175, 173, 226, 82, 0, 0, 0 },
"The road winds through a coconut grove here and continues - and -.**\n" },
{ "You are in the woods near the road.",
- 226, 226, 175, 226, 82, 0, 0, 0,
+ { 226, 226, 175, 226, 82, 0, 0, 0 },
"**The road is +.*\n" },
{ "This is a beach?",
- 227, 227, 177, 0, 82, 0, 0, 0,
+ { 227, 227, 177, 0, 82, 0, 0, 0 },
"Hard jagged rocks that pierce with every footstep hardly comprise a beach.**\n\
Let's go -.*\n" },
{ "The trail is lost in the woods here.",
- 241, 241, 179, 241, 84, 0, 0, 0,
+ { 241, 241, 179, 241, 84, 0, 0, 0 },
"I suppose the animals that use this trail all depart in different directions\n\
when they get this far into the woods.** The trail goes -.*\n" },
{ "You are on the bank of a stream.",
- 182, 0, 242, 180, 84, 0, 0, 0,
+ { 182, 0, 242, 180, 84, 0, 0, 0 },
"The stream falls over several small boulders here and continues on **-.*\n" },
{ "You are just inside the cave.",
- 181, 267, 0, 0, 0, 0, 0, 0,
+ { 181, 267, 0, 0, 0, 0, 0, 0 },
"A steamy hot breath is belching from the depths of the earth within.* The\n\
cave continues -.**\n" },
{ "You are just inside the cave entrance.",
- 274, 0, 0, 0, 0, 0, 0, 0,
+ { 274, 0, 0, 0, 0, 0, 0, 0 },
"The air is hot and sticky inside. The cave continues -. There is a \n\
stone door in the wall +. A wooden sign in the dust reads in old elven\n\
runes, \"GSRF KDIRE NLVEMP!\".**\n" },
{ "You are at the edge of a huge chasm.",
- 0, 0, 189, 0, 76, 0, 0, 0,
+ { 0, 0, 189, 0, 76, 0, 0, 0 },
"Several hundred feet down I can see the glimmer of placid water. The\n\
rivulets drain over the edge and trickle down into the depths. It is \n\
impossible to climb down without a rope.** The canyon continues -.*\n" },
{ "You are on a dirt road.",
- 192, 241, 240, 191, 88, 0, 0, 0,
+ { 192, 241, 240, 191, 88, 0, 0, 0 },
"The road winds through a coconut grove here. The road continues on -\n\
and -.**\n" },
{ "You are in a coconut palm grove near the road.",
- 193, 233, 213, 192, 88, 0, 0, 0,
+ { 193, 233, 213, 192, 88, 0, 0, 0 },
"***The road is +.\n" },
{ "You are at the clubhouse.",
- 0, 193, 0, 0, 0, 0, 0, 0,
+ { 0, 193, 0, 0, 0, 0, 0, 0 },
"The clubhouse is built over the most inland part of the lagoon. Tropical\n\
bananas and fragrant frangipani grow along the grassy shore. Walking across\n\
the short wooden bridge, we enter. Along one wall is a bar with only a few\n\
people seated at it. The restaurant and dance floor are closed off with\n\
a 2 inch nylon rope. ****\n" },
{ "You are in the stables.",
- 0, 0, 0, 193, 0, 0, 0, 0,
+ { 0, 0, 0, 193, 0, 0, 0, 0 },
"Neighing horses snacking on hay and oats fill the stalls on both sides of\n\
the barn. It is rather warm in here but that is not the most offensive\n\
part. The old boards of the barn part just enough to let in dust laden\n\
shafts of light. Flies swarm overhead and strafe the ground for dung.\n\
My nose is beginning to itch. ****\n" },
{ "You are in the old garage.",
- 0, 0, 193, 0, 0, 0, 0, 0,
+ { 0, 0, 193, 0, 0, 0, 0, 0 },
"This is an old wooden building of the same vintage as the stables. Beneath\n\
a sagging roof stand gardening tools and greasy rags. Parked in the center\n\
is an underpowered Plymouth Volare' with a red and white striped golf cart\n\
roof. ****\n" },
{ "You are on a dirt road.",
- 197, 197, 243, 197, 85, 0, 0, 0,
+ { 197, 197, 243, 197, 85, 0, 0, 0 },
"The road leads to a beautiful formal garden laced with stone walks and tropical\n\
flowers and trees.** The road continues -. A walk leads -.\n" },
{ "You are on a dirt road.",
- 210, 199, 198, 220, 73, 0, 0, 0,
+ { 210, 199, 198, 220, 73, 0, 0, 0 },
"The road runs - and -.**\n" },
{ "You are in a coconut grove near the road.",
- 234, 223, 234, 233, 88, 0, 0, 0,
+ { 234, 223, 234, 233, 88, 0, 0, 0 },
"***The road is +.\n" },
{ "You are on a dirt road.",
- 233, 225, 223, 226, 82, 0, 0, 0,
+ { 233, 225, 223, 226, 82, 0, 0, 0 },
"The road continues - and -.**\n" },
{ "The stream plummets over a cliff here.",
- 182, 0, 0, 229, 84, 0, 0, 0,
+ { 182, 0, 0, 229, 84, 0, 0, 0 },
"Falling 10 agonizing meters into spray, only droplets of the stream are\n\
left to dance off the floor below. I thought I saw a sparkle of gold\n\
at the bottom of the falls, but now it is gone. There is no way down,\n\
even with a strong rope. ****\n" },
{ "You are on a dirt road.",
- 0, 0, 244, 238, 85, 0, 0, 0,
+ { 0, 0, 244, 238, 85, 0, 0, 0 },
"**The road continues - and -.\n" },
{ "You are on a dirt road.",
- 0, 245, 0, 243, 88, 0, 0, 0,
+ { 0, 245, 0, 243, 88, 0, 0, 0 },
"*The road continues -* and -.\n" },
{ "You are on a dirt road.",
- 244, 234, 213, 136, 88, 0, 0, 0,
+ { 244, 234, 213, 136, 88, 0, 0, 0 },
"The road goes -* and *-.\n" },
{ "You are in a low passage.",
- 247, 160, 0, 0, 0, 0, 0, 0,
+ { 247, 160, 0, 0, 0, 0, 0, 0 },
"The passage is partially flooded here and it may be hazardous to proceed.\n\
Water is surging from the tunnel and heading out to sea. Strange moaning\n\
noises rise above the rushing of the water. They are as thin as a whispering\n\
wind yet penetrate to my very soul. I think we have come too far...\n\
The passage continues -.***\n" },
{ "The walls are very close together here.",
- 248, 0, 0, 0, 0, 0, 0, 0,
+ { 248, 0, 0, 0, 0, 0, 0, 0 },
"I can barely squeeze through the jagged opening. Slimy sea weeds provide\n\
no footing at all. This tunnel seems to be an ancient lava tube. There is\n\
a large room -.***\n" },
{ "You are in the cathedral room.",
- 249, 251, 249, 251, 0, 0, 0, 0,
+ { 249, 251, 249, 251, 0, 0, 0, 0 },
"Your light casts ghostly shadows on the walls but cannot pierce the \n\
engulfing darkness overhead. The sound of water dripping echoes in the void.\n\
*I can see no passages leading out of this room. We have definitely\n\
come too far.*** \n" },
{ "You are walking through a very round tunnel.",
- 252, 0, 0, 0, 252, 1, 0, 0,
+ { 252, 0, 0, 0, 252, 1, 0, 0 },
"The round walls of this tunnel are amazingly smooth to the touch. A little\n\
trickle of water flows down the center. The tunnel climbs steadily +.\n\
The cave is beginning to flood again! Let's get out of here! ***\n" },
{ "You are in the cathedral anteroom.",
- 0, 0, 0, 248, 253, 1, 0, 0,
+ { 0, 0, 0, 248, 253, 1, 0, 0 },
"This small chamber with a flat stone floor is to one side of the cathedral \n\
room. We appear to be at the bottom of a tall narrow shaft. There are many \n\
puddles of water here. A staircase hewn from solid rock and black lava \n\
leads up.*** The cathedral room is +.\n" },
{ "You are in a wide chamber.",
- 0, 0, 248, 254, 0, 0, 0, 0,
+ { 0, 0, 248, 254, 0, 0, 0, 0 },
"Water is sprinkling from the ceiling here. A shallow pool populated by a \n\
myriad of blind white creatures sparkles in your light. Tiny shrimp and\n\
crabs scurry away, frightened by the blinding rays.** The cave \n\
continues - and -.\n" },
{ "You are at the top of a sloping passage.",
- 0, 0, 255, 256, 257, 1, 0, 0,
+ { 0, 0, 255, 256, 257, 1, 0, 0 },
"There is much algae growing here, both green and brown specimens. \n\
Water from an underground sea surges and splashes against the slope of\n\
the rock. The walls glisten with shiny minerals. High above, light\n\
filters in through a narrow shaft.** A hallway here runs -\n\
and -.\n" },
{ "You are in an elaborately tiled room.",
- 0, 0, 258, 0, 0, 0, 250, 0,
+ { 0, 0, 258, 0, 0, 0, 250, 0 },
"Large colorful tiles plate the floor and walls. The ceiling is a mosaic\n\
of gems set in gold. Hopefully it is only our footsteps that are echoing in\n\
this hollow chamber.** The room continues -. A stone staircase\n\
leads down.*\n" },
{ "You are at a dead end.",
- 0, 0, 251, 0, 0, 0, 0, 0,
+ { 0, 0, 251, 0, 0, 0, 0, 0 },
"The walls here are alive with dark mussels. They click their shells menacingly\n\
if we disturb them. ** The only exit is +.*\n" },
{ "The tunnel is very low here.",
- 0, 0, 259, 252, 0, 0, 0, 0,
+ { 0, 0, 259, 252, 0, 0, 0, 0 },
"I practically have to crawl on my knees to pass through this opening. The\n\
air is stiflingly damp, but I can't hear any sounds of water dripping.**\n\
The crawlspace continues -. The tunnel seems wider +.\n" },
{ "This is the supply room.",
- 0, 0, 252, 0, 0, 0, 0, 0,
+ { 0, 0, 252, 0, 0, 0, 0, 0 },
"Picks and shovels line the walls here, as well as hard hats, boxes of\n\
dynamite, and a cartload of very high grade gold and silver ore.** \n\
A tunnel leads off +.*\n" },
{ "You have found a secret entrance to the catacombs.",
- 0, 0, 0, 0, 216, 1, 252, 0,
+ { 0, 0, 0, 0, 216, 1, 252, 0 },
"I have a sickening feeling that we should not have entered the catacombs.\n\
Below is a wet, seaweed covered floor. Above is a way out. ****\n" },
{ "You are in the catacombs.",
- 0, 0, 260, 253, 0, 0, 0, 0,
+ { 0, 0, 260, 253, 0, 0, 0, 0 },
"Ornate tombs and piles of treasure line the walls. Long spears with many\n\
blades, fine swords and coats of mail, heaps of coins, jewelry, pottery, \n\
and golden statues are tribute of past kings and queens.** The catacombs\n\
continue - and -.\n" },
{ "You are crawling on your stomach.",
- 0, 0, 261, 255, 0, 0, 0, 0,
+ { 0, 0, 261, 255, 0, 0, 0, 0 },
"The passage is quite narrow and jagged, but the rock is no longer lava.\n\
It appears to be a form of granite.** The crawlspace continues -, \n\
but I would just as soon go -.\n" },
{ "You are in the Sepulcher.",
- 0, 0, 0, 258, 0, 0, 0, 0,
+ { 0, 0, 0, 258, 0, 0, 0, 0 },
"A single tomb is here. Encrusted with diamonds and opals, and secured with \n\
straps of a very hard, untarnished silver, this tomb must be of a great king.\n\
Vases overflowing with gold coins stand nearby. A line of verse on the wall\n\
reads, \"Three he made and gave them to his daughters.\"****\n" },
{ "The passage is wider here.",
- 0, 0, 0, 259, 0, 0, 0, 0,
+ { 0, 0, 0, 259, 0, 0, 0, 0 },
"You are at the top of a flooded shaft. About a meter below the edge,\n\
dark water rises and falls to the rhythm of the sea. A ladder goes\n\
down into water here.*** A small crawlspace goes -.\n" },
{ "You are at the bottom of a ladder.",
- 0, 0, 0, 0, 261, 1, 263, 0,
+ { 0, 0, 0, 0, 261, 1, 263, 0 },
"This is a narrow platform to rest on before we continue either up or down this\n\
rickety wooden ladder.****\n" },
{ "You are standing in several inches of water.",
- 264, 0, 265, 266, 262, 1, 0, 0,
+ { 264, 0, 265, 266, 262, 1, 0, 0 },
"This seems to be a working mine. Many different tunnels wander off following\n\
glowing veins of precious metal. The floor is flooded here since we must\n\
be nearly at sea level. A ladder leads up. ****\n" },
{ "The tunnel here is blocked by broken rocks.",
- 0, 263, 0, 0, 0, 0, 0, 0,
+ { 0, 263, 0, 0, 0, 0, 0, 0 },
"The way is blocked, but if you had some dynamite, we might be able to blast our\n\
way through.* The passage goes -.**\n" },
{ "The tunnel is too flooded to proceed.",
- 0, 0, 0, 263, 0, 0, 0, 0,
+ { 0, 0, 0, 263, 0, 0, 0, 0 },
"Hidden shafts could swallow us if we tried to continue on down this tunnel.\n\
The flooding is already up to my waist. Large crystals overhead shimmer\n\
rainbows of reflected light.*** Let's go -.\n" },
{ "The mine is less flooded here.",
- 0, 0, 263, 0, 0, 0, 0, 0,
+ { 0, 0, 263, 0, 0, 0, 0, 0 },
"A meandering gold laden vein of quartz and blooming crystals of diamonds\n\
and topaz burst from the walls of the cave. A passage goes -.***\n" },
{ "You are inside the cave.",
- 230, 268, 0, 0, 0, 0, 0, 0,
+ { 230, 268, 0, 0, 0, 0, 0, 0 },
"A hot steam swirls around our heads, and the walls are warm to the touch.\n\
The trail winds + and +.**\n" },
{ "You are in a rather large chamber.",
- 267, 0, 0, 269, 0, 0, 269, 0,
+ { 267, 0, 0, 269, 0, 0, 269, 0 },
"Beds of ferns and palm leaves make several cozy nests along the walls. In the\n\
center of the room is a throne of gold and silver which pulls out into a bed\n\
of enormous size.*** A passageway leads down to the -.\n" },
{ "You are walking along the edge of a huge abyss.",
- 0, 0, 268, 0, 268, 1, 270, 0,
+ { 0, 0, 268, 0, 268, 1, 270, 0 },
"Steam is rising in great clouds from the immeasurable depths. A very narrow\n\
trail winds down.** There is a tunnel +.*\n" },
{ "You are on the edge of a huge abyss.",
- 0, 0, 0, 0, 269, 1, 271, 0,
+ { 0, 0, 0, 0, 269, 1, 271, 0 },
"The trail winds farther down.****\n" },
{ "You are winding your way along the abyss.",
- 0, 0, 0, 0, 270, 1, 272, 0,
+ { 0, 0, 0, 0, 270, 1, 272, 0 },
"The trail continues up and down.****\n" },
{ "You are on a wide shelf near the steamy abyss.",
- 0, 273, 0, 0, 271, 1, 0, 0,
+ { 0, 273, 0, 0, 271, 1, 0, 0 },
"The stifling hot cave seems even hotter to me, staring down into this misty \n\
abyss. A trail winds up.* A passageway leads -.**\n" },
{ "You are in a wide tunnel leading to a fuming abyss.",
- 272, 274, 0, 0, 0, 0, 0, 0,
+ { 272, 274, 0, 0, 0, 0, 0, 0 },
"The passageway winds through many beautiful formations of crystals and\n\
sparkling minerals. The tunnel continues - and -.**\n" },
{ "You are in a tunnel.",
- 273, 231, 0, 0, 0, 0, 0, 0,
+ { 273, 231, 0, 0, 0, 0, 0, 0 },
"It is very warm in here. The smell of steam and hot rocks permeates the place.\n\
The cave continues - and -.**\n" },
{ "You are at the bottom of a pit.",
- 0, 0, 0, 0, 232, 0, 0, 0,
+ { 0, 0, 0, 0, 232, 0, 0, 0 },
"I can see daylight far up at the mouth of the pit. A cool draft wafts down.\n\
There doesn't seem to be any way out, and I don't remember how we came in.\n\
If you had a rope it might be possible to climb out. ****\n" },
diff --git a/games/battlestar/dayobjs.c b/games/battlestar/dayobjs.c
index 9ee3c58e465..26bc307e2a5 100644
--- a/games/battlestar/dayobjs.c
+++ b/games/battlestar/dayobjs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dayobjs.c,v 1.3 1997/08/24 21:55:06 deraadt Exp $ */
+/* $OpenBSD: dayobjs.c,v 1.4 1998/09/13 01:30:31 pjanzen Exp $ */
/* $NetBSD: dayobjs.c,v 1.3 1995/03/21 15:07:22 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)dayobjs.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: dayobjs.c,v 1.3 1995/03/21 15:07:22 cgd Exp $";
+static char rcsid[] = "$OpenBSD: dayobjs.c,v 1.4 1998/09/13 01:30:31 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -141,5 +141,5 @@ struct objs dayobjs[] = {
{ 130, BRACELET },
{ 93, GIRL },
{ 268, LAMPON },
- 0
+ { 0 }
};
diff --git a/games/battlestar/extern.h b/games/battlestar/extern.h
index ea65f0a4285..c5b976bafe8 100644
--- a/games/battlestar/extern.h
+++ b/games/battlestar/extern.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: extern.h,v 1.3 1997/12/16 07:54:25 angelos Exp $ */
+/* $OpenBSD: extern.h,v 1.4 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: extern.h,v 1.5 1995/04/24 12:22:18 cgd Exp $ */
/*
@@ -36,38 +36,35 @@
* @(#)extern.h 8.1 (Berkeley) 5/31/93
*/
-/*
- * sigh -- this program thinks "time" is an int. It's easier to not load
- * <time.h> than try and fix it.
- */
-#define _KERNEL
#include <sys/time.h>
-#undef _KERNEL
+#include <ctype.h>
#include <err.h>
#include <errno.h>
#include <limits.h>
+#include <pwd.h>
#include <signal.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
#define BITS (8 * sizeof (int))
#define OUTSIDE (position > 68 && position < 246 && position != 218)
-#define rnd(x) (rand() % (x))
+#define rnd(x) (random() % (x))
#define max(a,b) ((a) < (b) ? (b) : (a))
#define testbit(array, index) (array[index/BITS] & (1 << (index % BITS)))
#define setbit(array, index) (array[index/BITS] |= (1 << (index % BITS)))
#define clearbit(array, index) (array[index/BITS] &= ~(1 << (index % BITS)))
- /* well known rooms */
+ /* well known rooms */
#define FINAL 275
#define GARDEN 197
#define POOLS 126
#define DOCK 93
- /* word types */
+ /* word types */
#define VERB 0
#define OBJECT 1
#define NOUNS 2
@@ -75,8 +72,8 @@
#define ADJS 4
#define CONJ 5
- /* words numbers */
-#define KNIFE 0
+ /* words numbers */
+#define KNIFE 0
#define SWORD 1
#define LAND 2
#define WOODSMAN 3
@@ -140,7 +137,7 @@
#define BAR 62
#define BLOCK 63
#define NUMOFOBJECTS 64
- /* non-objects below */
+ /* non-objects below */
#define UP 1000
#define DOWN 1001
#define AHEAD 1002
@@ -191,11 +188,11 @@
#define RIDE 1047
#define DRIVE 1048
#define SCORE 1049
-#define BURY 1050
+#define BURY 1050
#define JUMP 1051
#define KICK 1052
- /* injuries */
+ /* injuries */
#define ARM 6 /* broken arm */
#define RIBS 7 /* broken ribs */
#define SPINE 9 /* broken back */
@@ -204,16 +201,16 @@
#define NECK 12 /* broken NECK */
#define NUMOFINJURIES 13
- /* notes */
+ /* notes */
#define CANTLAUNCH 0
#define LAUNCHED 1
#define CANTSEE 2
-#define CANTMOVE 3
+#define CANTMOVE 3
#define JINXED 4
#define DUG 5
#define NUMOFNOTES 6
- /* fundamental constants */
+ /* fundamental constants */
#define NUMOFROOMS 275
#define NUMOFWORDS ((NUMOFOBJECTS + BITS - 1) / BITS)
#define LINELENGTH 81
@@ -222,15 +219,15 @@
#define TONIGHT 1
#define CYCLE 100
- /* initial variable values */
+ /* initial variable values */
#define TANKFULL 250
#define TORPEDOES 10
#define MAXWEIGHT 60
#define MAXCUMBER 10
struct room {
- char *name;
- int link[8];
+ char *name;
+ int link[8];
#define north link[0]
#define south link[1]
#define east link[2]
@@ -239,30 +236,83 @@ struct room {
#define access link[5]
#define down link[6]
#define flyhere link[7]
- char *desc;
+ char *desc;
unsigned int objects[NUMOFWORDS];
};
extern struct room dayfile[];
extern struct room nightfile[];
struct room *location;
- /* object characteristics */
-extern char *objdes[NUMOFOBJECTS];
-extern char *objsht[NUMOFOBJECTS];
-extern char *ouch[NUMOFINJURIES];
-extern int objwt[NUMOFOBJECTS];
-extern int objcumber[NUMOFOBJECTS];
+ /* object characteristics */
+extern char *objdes[NUMOFOBJECTS];
+extern char *objsht[NUMOFOBJECTS];
+extern char *ouch[NUMOFINJURIES];
+extern int objwt[NUMOFOBJECTS];
+extern int objcumber[NUMOFOBJECTS];
+
+ /* current input line */
+#define NWORD 20 /* words per line */
+char words[NWORD][15];
+int wordvalue[NWORD];
+int wordtype[NWORD];
+int wordcount, wordnumber;
+
+ /* state of the game */
+time_t ourtime;
+int position;
+int direction;
+int left, right, ahead, back;
+int ourclock, fuel, torps;
+int carrying, encumber;
+int rythmn;
+extern int followfight;
+int ate;
+int snooze;
+int meetgirl;
+extern int followgod;
+int godready;
+extern int win;
+int wintime;
+int wiz;
+int tempwiz;
+int matchlight;
+extern int matchcount;
+int loved;
+int pleasure, power, ego;
+extern int WEIGHT;
+extern int CUMBER;
+int notes[NUMOFNOTES];
+unsigned int inven[NUMOFWORDS];
+unsigned int wear[NUMOFWORDS];
+char beenthere[NUMOFROOMS+1];
+char injuries[NUMOFINJURIES];
+
+char uname[9];
+
+struct wlist {
+ char *string;
+ int value, article;
+ struct wlist *next;
+};
+#define HASHSIZE 256
+#define HASHMUL 81
+#define HASHMASK (HASHSIZE - 1)
+struct wlist *hashtab[HASHSIZE];
+extern struct wlist wlist[];
- /* current input line */
-#define NWORD 20 /* words per line */
-char words[NWORD][15];
-int wordvalue[NWORD];
-int wordtype[NWORD];
-int wordcount, wordnumber;
+struct objs {
+ short room;
+ short obj;
+};
+extern struct objs dayobjs[];
+extern struct objs nightobjs[];
+void blast __P((void));
void bury __P((void));
int card __P((char *, int));
+int checkout __P((char *));
void chime __P((void));
+void convert __P((int));
void crash __P((void));
int cypher __P((void));
void die __P((int));
@@ -272,23 +322,30 @@ void drink __P((void));
int drive __P((void));
int drop __P((char *));
int eat __P((void));
+void endfly __P((void));
int fight __P((int, int));
int follow __P((void));
char *getcom __P((char *, int, char *, char *));
char *getword __P((char *, char *, int));
+void getutmp __P((char *));
int give __P((void));
+int hash __P((char *));
void initialize __P((char));
+void install __P((struct wlist *));
int jump __P((void));
void kiss __P((void));
int land __P((void));
int launch __P((void));
void light __P((void));
void live __P((void));
+struct wlist *lookup __P((char *));
void love __P((void));
int move __P((int, int));
+void moveenemy __P((int));
void murder __P((void));
void news __P((void));
void newway __P((int));
+void notarget __P((void));
void parse __P((void));
void post __P((char));
void printobjs __P((void));
@@ -299,9 +356,12 @@ void ravage __P((void));
void restore __P((void));
int ride __P((void));
void save __P((void));
+void screen __P((void));
int shoot __P((void));
+void succumb __P((int));
int take __P((unsigned int[]));
int takeoff __P((void));
+void target __P((void));
int throw __P((char *));
char *truedirec __P((int, char));
int ucard __P((unsigned int *));
@@ -309,58 +369,9 @@ int use __P((void));
int visual __P((void));
int wearit __P((void));
void whichway __P((struct room));
+int wizard __P((char *));
void wordinit __P((void));
void writedes __P((void));
int zzz __P((void));
- /* state of the game */
-int btime;
-int position;
-int direction;
-int left, right, ahead, back;
-int bclock, fuel, torps;
-int carrying, encumber;
-int rythmn;
-extern int followfight;
-int ate;
-int snooze;
-int meetgirl;
-extern int followgod;
-int godready;
-extern int win;
-int wintime;
-int wiz;
-int tempwiz;
-int matchlight;
-extern int matchcount;
-int loved;
-int pleasure, power, ego;
-extern int WEIGHT;
-extern int CUMBER;
-int notes[NUMOFNOTES];
-unsigned int inven[NUMOFWORDS];
-unsigned int wear[NUMOFWORDS];
-char beenthere[NUMOFROOMS+1];
-char injuries[NUMOFINJURIES];
-
-char uname[9];
-
-struct wlist {
- char *string;
- int value, article;
- struct wlist *next;
-};
-#define HASHSIZE 256
-#define HASHMUL 81
-#define HASHMASK (HASHSIZE - 1)
-struct wlist *hashtab[HASHSIZE];
-extern struct wlist wlist[];
-
-struct objs {
- short room;
- short obj;
-};
-extern struct objs dayobjs[];
-extern struct objs nightobjs[];
-
gid_t egid;
diff --git a/games/battlestar/fly.c b/games/battlestar/fly.c
index 1139e80fe02..b40034b1da3 100644
--- a/games/battlestar/fly.c
+++ b/games/battlestar/fly.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fly.c,v 1.5 1997/12/16 07:54:25 angelos Exp $ */
+/* $OpenBSD: fly.c,v 1.6 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: fly.c,v 1.3 1995/03/21 15:07:28 cgd Exp $ */
/*
@@ -38,11 +38,10 @@
#if 0
static char sccsid[] = "@(#)fly.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: fly.c,v 1.3 1995/03/21 15:07:28 cgd Exp $";
+static char rcsid[] = "$OpenBSD: fly.c,v 1.6 1998/09/13 01:30:32 pjanzen Exp $";
#endif
#endif /* not lint */
-#include <unistd.h>
#include "extern.h"
#undef UP
#include <curses.h>
@@ -51,24 +50,17 @@ static char rcsid[] = "$NetBSD: fly.c,v 1.3 1995/03/21 15:07:28 cgd Exp $";
#define MIDR (LINES/2 - 1)
#define MIDC (COLS/2 - 1)
-int row, column;
-int dr = 0, dc = 0;
-char destroyed;
-int bclock = 120; /* time for all the flights in the game */
-char cross = 0;
-sig_t oldsig;
-
-void blast __P((void));
-void endfly __P((void));
-void moveenemy __P((int));
-void notarget __P((void));
-void screen __P((void));
-void succumb __P((int));
-void target __P((void));
+int row, column;
+int dr = 0, dc = 0;
+char destroyed;
+int ourclock = 120; /* time for all the flights in the game */
+char cross = 0;
+sig_t oldsig;
+
void
succumb(sigraised)
-int sigraised;
+ int sigraised;
{
if (oldsig == SIG_DFL) {
endfly();
@@ -84,105 +76,103 @@ int
visual()
{
destroyed = 0;
- if(initscr() == NULL){
+ if (initscr() == NULL) {
puts("Whoops! No more memory...");
- return(0);
+ return (0);
}
oldsig = signal(SIGINT, succumb);
crmode();
noecho();
screen();
- row = rnd(LINES-3) + 1;
- column = rnd(COLS-2) + 1;
+ row = rnd(LINES - 3) + 1;
+ column = rnd(COLS - 2) + 1;
moveenemy(0);
for (;;) {
- switch(getchar()){
-
- case 'h':
- case 'r':
- dc = -1;
- fuel--;
- break;
-
- case 'H':
- case 'R':
- dc = -5;
- fuel -= 10;
- break;
-
- case 'l':
- dc = 1;
- fuel--;
- break;
-
- case 'L':
- dc = 5;
- fuel -= 10;
- break;
-
- case 'j':
- case 'u':
- dr = 1;
- fuel--;
- break;
-
- case 'J':
- case 'U':
- dr = 5;
- fuel -= 10;
- break;
-
- case 'k':
- case 'd':
- dr = -1;
- fuel--;
- break;
-
- case 'K':
- case 'D':
- dr = -5;
- fuel -= 10;
- break;
-
- case '+':
- if (cross){
- cross = 0;
- notarget();
- }
- else
- cross = 1;
- break;
-
- case ' ':
- case 'f':
- if (torps){
- torps -= 2;
- blast();
- if (row == MIDR && column - MIDC < 2 && MIDC - column < 2){
- destroyed = 1;
- alarm(0);
- }
+ switch (getchar()) {
+
+ case 'h':
+ case 'r':
+ dc = -1;
+ fuel--;
+ break;
+
+ case 'H':
+ case 'R':
+ dc = -5;
+ fuel -= 10;
+ break;
+
+ case 'l':
+ dc = 1;
+ fuel--;
+ break;
+
+ case 'L':
+ dc = 5;
+ fuel -= 10;
+ break;
+
+ case 'j':
+ case 'u':
+ dr = 1;
+ fuel--;
+ break;
+
+ case 'J':
+ case 'U':
+ dr = 5;
+ fuel -= 10;
+ break;
+
+ case 'k':
+ case 'd':
+ dr = -1;
+ fuel--;
+ break;
+
+ case 'K':
+ case 'D':
+ dr = -5;
+ fuel -= 10;
+ break;
+
+ case '+':
+ if (cross) {
+ cross = 0;
+ notarget();
+ } else
+ cross = 1;
+ break;
+
+ case ' ':
+ case 'f':
+ if (torps) {
+ torps -= 2;
+ blast();
+ if (row == MIDR && column - MIDC < 2 && MIDC - column < 2) {
+ destroyed = 1;
+ alarm(0);
}
- else
- mvaddstr(0,0,"*** Out of torpedoes. ***");
- break;
+ } else
+ mvaddstr(0, 0, "*** Out of torpedoes. ***");
+ break;
- case 'q':
- endfly();
- return(0);
+ case 'q':
+ endfly();
+ return (0);
- default:
- mvaddstr(0,26,"Commands = r,R,l,L,u,U,d,D,f,+,q");
- continue;
+ default:
+ mvaddstr(0, 26, "Commands = r,R,l,L,u,U,d,D,f,+,q");
+ continue;
- case EOF:
- break;
+ case EOF:
+ break;
}
- if (destroyed){
+ if (destroyed) {
endfly();
- return(1);
+ return (1);
}
- if (bclock <= 0){
+ if (ourclock <= 0) {
endfly();
die(0);
}
@@ -192,63 +182,63 @@ visual()
void
screen()
{
- register int r,c,n;
- int i;
+ int r, c, n;
+ int i;
clear();
i = rnd(100);
- for (n=0; n < i; n++){
- r = rnd(LINES-3) + 1;
+ for (n = 0; n < i; n++) {
+ r = rnd(LINES - 3) + 1;
c = rnd(COLS);
mvaddch(r, c, '.');
}
- mvaddstr(LINES-1-1,21,"TORPEDOES FUEL TIME");
+ mvaddstr(LINES - 1 - 1, 21, "TORPEDOES FUEL TIME");
refresh();
}
void
target()
{
- register int n;
+ int n;
- move(MIDR,MIDC-10);
+ move(MIDR, MIDC - 10);
addstr("------- + -------");
- for (n = MIDR-4; n < MIDR-1; n++){
- mvaddch(n,MIDC,'|');
- mvaddch(n+6,MIDC,'|');
+ for (n = MIDR - 4; n < MIDR - 1; n++) {
+ mvaddch(n, MIDC, '|');
+ mvaddch(n + 6, MIDC, '|');
}
}
void
notarget()
{
- register int n;
+ int n;
- move(MIDR,MIDC-10);
+ move(MIDR, MIDC - 10);
addstr(" ");
- for (n = MIDR-4; n < MIDR-1; n++){
- mvaddch(n,MIDC,' ');
- mvaddch(n+6,MIDC,' ');
+ for (n = MIDR - 4; n < MIDR - 1; n++) {
+ mvaddch(n, MIDC, ' ');
+ mvaddch(n + 6, MIDC, ' ');
}
}
void
blast()
{
- register int n;
+ int n;
alarm(0);
- move(LINES-1, 24);
+ move(LINES - 1, 24);
printw("%3d", torps);
- for(n = LINES-1-2; n >= MIDR + 1; n--){
- mvaddch(n, MIDC+MIDR-n, '/');
- mvaddch(n, MIDC-MIDR+n, '\\');
+ for(n = LINES - 1 - 2; n >= MIDR + 1; n--) {
+ mvaddch(n, MIDC + MIDR - n, '/');
+ mvaddch(n, MIDC - MIDR + n, '\\');
refresh();
}
- mvaddch(MIDR,MIDC,'*');
- for(n = LINES-1-2; n >= MIDR + 1; n--){
- mvaddch(n, MIDC+MIDR-n, ' ');
- mvaddch(n, MIDC-MIDR+n, ' ');
+ mvaddch(MIDR, MIDC, '*');
+ for (n = LINES - 1 - 2; n >= MIDR + 1; n--) {
+ mvaddch(n, MIDC + MIDR - n, ' ');
+ mvaddch(n, MIDC - MIDR + n, ' ');
refresh();
}
alarm(1);
@@ -256,38 +246,39 @@ blast()
void
moveenemy(sigraised)
-int sigraised;
+ int sigraised;
{
- double d;
- int oldr, oldc;
+ double d;
+ int oldr, oldc;
oldr = row;
oldc = column;
- if (fuel > 0){
- if (row + dr <= LINES-3 && row + dr > 0)
+ if (fuel > 0) {
+ if (row + dr <= LINES - 3 && row + dr > 0)
row += dr;
- if (column + dc < COLS-1 && column + dc > 0)
+ if (column + dc < COLS - 1 && column + dc > 0)
column += dc;
- } else if (fuel < 0){
- fuel = 0;
- mvaddstr(0,60,"*** Out of fuel ***");
- }
- d = (double) ((row - MIDR)*(row - MIDR) + (column - MIDC)*(column - MIDC));
- if (d < 16){
+ } else
+ if (fuel < 0) {
+ fuel = 0;
+ mvaddstr(0, 60, "*** Out of fuel ***");
+ }
+ d = (double) ((row - MIDR) * (row - MIDR) + (column - MIDC) * (column - MIDC));
+ if (d < 16) {
row += (rnd(9) - 4) % (4 - abs(row - MIDR));
column += (rnd(9) - 4) % (4 - abs(column - MIDC));
}
- bclock--;
+ ourclock--;
mvaddstr(oldr, oldc - 1, " ");
if (cross)
target();
mvaddstr(row, column - 1, "/-\\");
- move(LINES-1, 24);
+ move(LINES - 1, 24);
printw("%3d", torps);
- move(LINES-1, 42);
+ move(LINES - 1, 42);
printw("%3d", fuel);
- move(LINES-1, 57);
- printw("%3d", bclock);
+ move(LINES - 1, 57);
+ printw("%3d", ourclock);
refresh();
signal(SIGALRM, moveenemy);
alarm(1);
@@ -298,7 +289,7 @@ endfly()
{
alarm(0);
signal(SIGALRM, SIG_DFL);
- mvcur(0,COLS-1,LINES-1,0);
+ mvcur(0, COLS - 1, LINES - 1, 0);
endwin();
setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
signal(SIGTSTP, SIG_DFL);
diff --git a/games/battlestar/getcom.c b/games/battlestar/getcom.c
index 2635a1b2e15..5a25a42c5c2 100644
--- a/games/battlestar/getcom.c
+++ b/games/battlestar/getcom.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getcom.c,v 1.4 1997/09/01 18:13:18 millert Exp $ */
+/* $OpenBSD: getcom.c,v 1.5 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: getcom.c,v 1.3 1995/03/21 15:07:30 cgd Exp $ */
/*
@@ -38,23 +38,25 @@
#if 0
static char sccsid[] = "@(#)getcom.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: getcom.c,v 1.3 1995/03/21 15:07:30 cgd Exp $";
+static char rcsid[] = "$OpenBSD: getcom.c,v 1.5 1998/09/13 01:30:32 pjanzen Exp $";
#endif
#endif /* not lint */
-#include <stdio.h>
-#include <ctype.h>
#include "extern.h"
-char *
+char *
getcom(buf, size, prompt, error)
- char *buf;
- int size;
- char *prompt, *error;
+ char *buf;
+ int size;
+ char *prompt, *error;
{
for (;;) {
fputs(prompt, stdout);
if (fgets(buf, size, stdin) == 0) {
+ if (feof(stdin)) {
+ printf("user closed input stream, quitting...\n");
+ exit(0);
+ }
clearerr(stdin);
continue;
}
@@ -73,10 +75,10 @@ getcom(buf, size, prompt, error)
* shifts to UPPERCASE if flag > 0, lowercase if flag < 0,
* and leaves it unchanged if flag = 0
*/
-char *
+char *
getword(buf1, buf2, flag)
- register char *buf1, *buf2;
- register int flag;
+ char *buf1, *buf2;
+ int flag;
{
while (isspace(*buf1))
buf1++;
@@ -86,18 +88,19 @@ getword(buf1, buf2, flag)
return (0);
}
while (*buf1 && !isspace(*buf1) && *buf1 != ',')
- if (flag < 0)
+ if (flag < 0) {
if (isupper(*buf1))
*buf2++ = tolower(*buf1++);
else
*buf2++ = *buf1++;
- else if (flag > 0)
- if (islower(*buf1))
- *buf2++ = toupper(*buf1++);
- else
+ } else
+ if (flag > 0) {
+ if (islower(*buf1))
+ *buf2++ = toupper(*buf1++);
+ else
+ *buf2++ = *buf1++;
+ } else
*buf2++ = *buf1++;
- else
- *buf2++ = *buf1++;
} else
*buf2++ = *buf1++;
*buf2 = 0;
diff --git a/games/battlestar/globals.c b/games/battlestar/globals.c
index 92152582670..7e0edec8195 100644
--- a/games/battlestar/globals.c
+++ b/games/battlestar/globals.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: globals.c,v 1.3 1997/08/24 21:55:09 deraadt Exp $ */
+/* $OpenBSD: globals.c,v 1.4 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: globals.c,v 1.3 1995/03/21 15:07:32 cgd Exp $ */
/*
@@ -38,21 +38,21 @@
#if 0
static char sccsid[] = "@(#)globals.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: globals.c,v 1.3 1995/03/21 15:07:32 cgd Exp $";
+static char rcsid[] = "$OpenBSD: globals.c,v 1.4 1998/09/13 01:30:32 pjanzen Exp $";
#endif
#endif /* not lint */
#include "extern.h"
-int WEIGHT = MAXWEIGHT;
-int CUMBER = MAXCUMBER;
+int WEIGHT = MAXWEIGHT;
+int CUMBER = MAXCUMBER;
-char *objdes[NUMOFOBJECTS] = {
+char *objdes[NUMOFOBJECTS] = {
"There is a knife here",
- "There is an exquisitely crafted sword and scabbard here.",
- 0, /* can land from here */
+ "There are an exquisitely crafted sword and scabbard here.",
+ 0, /* can land from here */
"There is a fierce woodsman here brandishing a heavy mallet.",
- "There is an unweildly two-handed sword here.",
+ "There is an unwieldy two-handed sword here.",
"There is a bloody meat cleaver here.",
"A rusty broadsword is lying here.",
"There is an ancient coat of finely woven mail here.",
@@ -62,7 +62,7 @@ char *objdes[NUMOFOBJECTS] = {
"There is a Viper ready for launch here.",
"A kerosene lantern is burning luridly here.",
"An old pair of shoes has been discarded here.",
- 0, /* cylon */
+ 0, /* cylon */
"There is a pair of pajamas here.",
"A kingly robe of royal purple and spun gold is draped here.",
"There is a strange golden amulet on the floor here.",
@@ -71,7 +71,7 @@ char *objdes[NUMOFOBJECTS] = {
"A dead woodsman has fallen here. He was savagely murdered.",
"A heavy wooden mallet lies nearby.",
"There is a laser pistol here.",
- "A flower-like young goddess is bathing in the hot mineral pools. She is \nwatching you, but continues to steep and sing softly.",
+ "A flower-like young goddess is bathing in the hot mineral pools. She is \nwatching you, but continues to steep and sing softly.",
"The goddess is reclining on a bed of ferns and studying you intently.",
"There is a grenade here",
"There is a length of heavy chain here.",
@@ -86,36 +86,36 @@ char *objdes[NUMOFOBJECTS] = {
"I think I hear footsteps behind us.",
"There are a few coins here.",
"There are some matches here.",
- "An unctuous man in a white suit and a dwarf are standing here.",
- "There are some ripe papayas here.",
- "There is a ripe pineapple here.",
- "There are some kiwi fruit here.",
- "There are some coconuts here.",
- "There is a ripe mango here.",
- "There is a sparkling diamond ring here.",
- "There is a colorful pink potion in a small crystal vial here.",
- "A gold bracelet is on the ground here.",
- "A swarthy woman with stern features pulls you aside from the crowd,\n'I must talk to you -- but not here. Meet me at midnight in the gardens.'",
- "The swarthy woman has been awaiting you anxiousy. 'I must warn you that the\nIsland has anticipated your Quest. You will not be welcomed. The Darkness is\nstrong where you must search. Seek not the shadows save only at night, for\nthen are they the weakest. In the mountains far from here a canyon winds\nwith ferns and streams and forgotten vines. There you must go. Take this\nrope.'",
- "Out from the shadows a figure leaps! His black cape swirls around, and he\nholds a laser sword at your chest. 'So, you have come to fulfill the Quest.\nHa! Your weapons are no match for me!'",
- "An old timer with one eye missing and no money for a drink sits at the bar.",
- "You are flying through an asteroid field!",
- "A planet is nearby.",
- "The ground is charred here.",
- "There is a thermonuclear warhead here.",
- "The fragile, beautiful young goddess lies here. You murdered her horribly.",
- "The old timer is lying here. He is dead.",
- "The native girl's body is lying here.",
- "A native girl is sitting here.",
- "A gorgeous white stallion is standing here.",
- "The keys are in the ignition.",
- "A pot of pearls and jewels is sitting here.",
- "A bar of solid gold is here.",
- "There is a 10 kilogram diamond block here."
+ "An unctuous man in a white suit and a dwarf are standing here.",
+ "There are some ripe papayas here.",
+ "There is a ripe pineapple here.",
+ "There are some kiwi fruit here.",
+ "There are some coconuts here.",
+ "There is a ripe mango here.",
+ "There is a sparkling diamond ring here.",
+ "There is a colorful pink potion in a small crystal vial here.",
+ "A gold bracelet is on the ground here.",
+ "A swarthy woman with stern features pulls you aside from the crowd,\n'I must talk to you -- but not here. Meet me at midnight in the gardens.'",
+ "The swarthy woman has been awaiting you anxiously. 'I must warn you that the\nIsland has anticipated your Quest. You will not be welcomed. The Darkness is\nstrong where you must search. Seek not the shadows save only at night, for\nthen are they the weakest. In the mountains far from here a canyon winds\nwith ferns and streams and forgotten vines. There you must go. Take this\nrope.'",
+ "Out from the shadows a figure leaps! His black cape swirls around, and he\nholds a laser sword at your chest. 'So, you have come to fulfill the Quest.\nHa! Your weapons are no match for me!'",
+ "An old-timer with one eye missing and no money for a drink sits at the bar.",
+ "You are flying through an asteroid field!",
+ "A planet is nearby.",
+ "The ground is charred here.",
+ "There is a thermonuclear warhead here.",
+ "The fragile, beautiful young goddess lies here. You murdered her horribly.",
+ "The old-timer is lying here. He is dead.",
+ "The native girl's body is lying here.",
+ "A native girl is sitting here.",
+ "A gorgeous white stallion is standing here.",
+ "The keys are in the ignition.",
+ "A pot of pearls and jewels is sitting here.",
+ "A bar of solid gold is here.",
+ "There is a 10 kilogram diamond block here."
};
-char *objsht[NUMOFOBJECTS] = {
+char *objsht[NUMOFOBJECTS] = {
"knife",
"fine sword",
0,
@@ -172,7 +172,7 @@ char *objsht[NUMOFOBJECTS] = {
0,
"warhead",
"goddess's body",
- "old timer's body",
+ "old-timer's body",
"girl's body",
0,
"stallion",
@@ -182,7 +182,7 @@ char *objsht[NUMOFOBJECTS] = {
"diamond block"
};
-char *ouch[NUMOFINJURIES] = {
+char *ouch[NUMOFINJURIES] = {
"some minor abrasions",
"some minor lacerations",
"a minor puncture wound",
@@ -193,12 +193,12 @@ char *ouch[NUMOFINJURIES] = {
"a few broken ribs",
"a broken leg and torn ligaments",
"a broken back and ruptured spleen",
- "some deep incisions and a loss of blood",
+ "some deep incisions and a loss of blood",
"a fractured skull and mashed face",
"a broken neck"
};
-int objwt[NUMOFOBJECTS] = {
+int objwt[NUMOFOBJECTS] = {
1, 5, 0, 10, 15, 2, 10, 10,
3, 5, 50, 2500, 2, 1, 100, 1,
2, 1, 1, 1, 60, 10, 5, 0,
@@ -209,7 +209,7 @@ int objwt[NUMOFOBJECTS] = {
50, 45, 45, 100, 2000, 30, 20, 10
};
-int objcumber[NUMOFOBJECTS] = {
+int objcumber[NUMOFOBJECTS] = {
1, 5, 0, 150, 10, 1, 5, 2,
2, 1, 5, 10, 1, 1, 10, 1,
1, 1, 1, 1, 7, 5, 4, 0,
@@ -220,7 +220,7 @@ int objcumber[NUMOFOBJECTS] = {
10, 8, 8, 10, 10, 3, 1, 2
};
-int win = 1;
-int matchcount = 20;
-int followgod = -1;
-int followfight = -1;
+int win = 1;
+int matchcount = 20;
+int followgod = -1;
+int followfight = -1;
diff --git a/games/battlestar/init.c b/games/battlestar/init.c
index 4dc79b982f1..73cfcc3fc6f 100644
--- a/games/battlestar/init.c
+++ b/games/battlestar/init.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: init.c,v 1.4 1997/09/01 18:13:19 millert Exp $ */
+/* $OpenBSD: init.c,v 1.5 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: init.c,v 1.4 1995/03/21 15:07:35 cgd Exp $ */
/*
@@ -38,35 +38,28 @@
#if 0
static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: init.c,v 1.4 1995/03/21 15:07:35 cgd Exp $";
+static char rcsid[] = "$OpenBSD: init.c,v 1.5 1998/09/13 01:30:32 pjanzen Exp $";
#endif
#endif /* not lint */
-#include <unistd.h>
-#include <sys/types.h>
#include "extern.h"
-#include <pwd.h>
-
-int checkout __P((char *));
-void getutmp __P((char *));
-int wizard __P((char *));
void
initialize(startup)
- char startup;
+ char startup;
{
- register struct objs *p;
+ struct objs *p;
puts("Version 4.2, fall 1984.");
puts("First Adventure game written by His Lordship, the honorable");
puts("Admiral D.W. Riggle\n");
- srand(getpid());
+ location = dayfile;
+ srandom(getpid());
getutmp(uname);
wordinit();
if (startup) {
- location = dayfile;
direction = NORTH;
- btime = 0;
+ ourtime = 0;
snooze = CYCLE * 1.5;
position = 22;
setbit(wear, PAJAMAS);
@@ -82,7 +75,7 @@ initialize(startup)
void
getutmp(uname)
- char *uname;
+ char *uname;
{
struct passwd *ptr;
@@ -90,7 +83,7 @@ getutmp(uname)
strcpy(uname, ptr ? ptr->pw_name : "");
}
-char *list[] = { /* hereditary wizards */
+char *list[] = { /* hereditary wizards */
"riggle",
"chris",
"edward",
@@ -101,7 +94,7 @@ char *list[] = { /* hereditary wizards */
0
};
-char *badguys[] = {
+char *badguys[] = {
"wnj",
"root",
"ted",
@@ -110,20 +103,20 @@ char *badguys[] = {
int
wizard(uname)
- char *uname;
+ char *uname;
{
- char flag;
+ int flag;
- if (flag = checkout(uname))
+ if ((flag = checkout(uname)) != 0)
printf("You are the Great wizard %s.\n", uname);
return flag;
}
int
checkout(uname)
- register char *uname;
+ char *uname;
{
- register char **ptr;
+ char **ptr;
for (ptr = list; *ptr; ptr++)
if (strcmp(*ptr, uname) == 0)
@@ -131,11 +124,11 @@ checkout(uname)
for (ptr = badguys; *ptr; ptr++)
if (strcmp(*ptr, uname) == 0) {
printf("You are the Poor anti-wizard %s. Good Luck!\n",
- uname);
+ uname);
if (location != NULL) {
CUMBER = 3;
WEIGHT = 9; /* that'll get him! */
- bclock = 10;
+ ourclock = 10;
setbit(location[7].objects, WOODSMAN); /* viper room */
setbit(location[20].objects, WOODSMAN); /* laser " */
setbit(location[13].objects, DARK); /* amulet " */
diff --git a/games/battlestar/misc.c b/games/battlestar/misc.c
index 230bacdd85a..8b933850b32 100644
--- a/games/battlestar/misc.c
+++ b/games/battlestar/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.3 1997/08/24 21:55:10 deraadt Exp $ */
+/* $OpenBSD: misc.c,v 1.4 1998/09/13 01:30:32 pjanzen Exp $ */
/* $NetBSD: misc.c,v 1.3 1995/03/21 15:07:37 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: misc.c,v 1.3 1995/03/21 15:07:37 cgd Exp $";
+static char rcsid[] = "$OpenBSD: misc.c,v 1.4 1998/09/13 01:30:32 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -46,11 +46,11 @@ static char rcsid[] = "$NetBSD: misc.c,v 1.3 1995/03/21 15:07:37 cgd Exp $";
int
card(array, size) /* for beenthere, injuries */
- register char *array;
- int size;
+ char *array;
+ int size;
{
- register char *end = array + size;
- register int i = 0;
+ char *end = array + size;
+ int i = 0;
while (array < end)
if (*array++)
@@ -60,12 +60,12 @@ card(array, size) /* for beenthere, injuries */
int
ucard(array)
- register unsigned *array;
+ unsigned int *array;
{
- register int j = 0, n;
+ int j = 0, n;
for (n = 0; n < NUMOFOBJECTS; n++)
if (testbit(array, n))
- j++;
+ j++;
return (j);
}
diff --git a/games/battlestar/nightfile.c b/games/battlestar/nightfile.c
index b67216795a6..ee149ad0c83 100644
--- a/games/battlestar/nightfile.c
+++ b/games/battlestar/nightfile.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nightfile.c,v 1.3 1997/08/24 21:55:11 deraadt Exp $ */
+/* $OpenBSD: nightfile.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $ */
/* $NetBSD: nightfile.c,v 1.3 1995/03/21 15:07:41 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)nightfile.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: nightfile.c,v 1.3 1995/03/21 15:07:41 cgd Exp $";
+static char rcsid[] = "$OpenBSD: nightfile.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,115 +47,115 @@ static char rcsid[] = "$NetBSD: nightfile.c,v 1.3 1995/03/21 15:07:41 cgd Exp $"
struct room nightfile[] = {
{ 0 },
{ "You are in the main hangar.",
- 5, 2, 9, 3, 3, 1, 0, 0,
+ { 5, 2, 9, 3, 3, 1, 0, 0 },
"This is a huge bay where many fighters and cargo craft lie. Alarms are \n\
sounding and fighter pilots are running to their ships. Above is a gallery\n\
overlooking the bay. The scream of turbo engines is coming from +. The rest\n\
of the hangar is +. There is an exit +.*\n" },
{ "This is the landing bay.",
- 1, 0, 10, 0, 0, 0, 0, 0,
+ { 1, 0, 10, 0, 0, 0, 0, 0 },
"Ships are landing here, some heavily damaged. Enemy fighters continually\n\
strafe this vulnerable port. The main hangar is +, *\n\
There is an exit +.*\n" },
{ "You are in the gallery.",
- 4, 0, 0, 0, 0, 0, 1, 0,
+ { 4, 0, 0, 0, 0, 0, 1, 0 },
"From here a view of the entire landing bay reveals that our battlestar\n\
is near destruction. Fires are spreading out of control and laser blasts\n\
lick at the shadows. The control room is +. ***\n" },
{ "You are in the control room.",
- 0, 3, 0, 0, 0, 0, 5, 0,
+ { 0, 3, 0, 0, 0, 0, 5, 0 },
"Several frantic technicians are flipping switches wildly but otherwise\n\
this room seems fairly deserted. A weapons locker has been left open.\n\
A staircase leads down. * There is a way -. ** \n" },
{ "This is the launch room.",
- 6, 1, 7, 0, 4, 1, 0, 0,
+ { 6, 1, 7, 0, 4, 1, 0, 0 },
"From the launch tubes here fighters blast off into space. Only one is left,\n\
and it is guarded by two fierce men. A staircase leads up from here.\n\
There is a cluttered workbench +. From the main hangar come sounds of great\n\
explosions. The main hangar is +. The viper launch tubes are to the -.*\n" },
{ "You are at the workbench.",
- 0, 5, 7, 0, 0, 0, 0, 0,
+ { 0, 5, 7, 0, 0, 0, 0, 0 },
"Strange and unwieldy tools are arranged here including a lunch box \n\
and pneumatic wrenches and turbo sprocket rockets.*\n\
The launch room is +. The remaining viper is +.*\n" },
{ "You are in the viper launch tube.",
- 0, 5, 0, 5, 32, 0, 0, 0,
+ { 0, 5, 0, 5, 32, 0, 0, 0 },
"The two guards are eyeing you warily! ****\n" },
{ "This is a walk in closet.",
- 22, 0, 0, 0, 0, 0, 0, 0,
+ { 22, 0, 0, 0, 0, 0, 0, 0 },
"A wardrobe of immense magnitude greets the eye. Furs and robes of kings\n\
hang on rack after rack. Silken gowns, capes woven with spun gold, and \n\
delicate synthetic fabrics are stowed here. The bedroom is +.***\n" },
{ "You are in a wide hallway leading to the main hangar.",
- 0, 0, 11, 1, 0, 0, 0, 0,
+ { 0, 0, 11, 1, 0, 0, 0, 0 },
"The walls and ceiling here have been blasted through in several places.\n\
It looks as if quite a battle has been fought for possession of the landing bay\n\
Gaping corpses litter the floor.** The hallway continues +.\n\
The main hangar is +.\n" },
{ "You are in a wide hallway leading to the landing bay.",
- 0, 0, 12, 2, 0, 0, 0, 0,
+ { 0, 0, 12, 2, 0, 0, 0, 0 },
"Most of the men and supplies needed in the main hangar come through this\n\
corridor, but the wounded are forced to use it too. It very dank and\n\
crowded here, and the floor is slippery with blood.**\n\
The hallway continues -. The landing bay is +.\n" },
{ "The hallway is very congested with rubble here.",
- 0, 0, 0, 9, 13, 1, 0, 0,
+ { 0, 0, 0, 9, 13, 1, 0, 0 },
"It is too choked with broken steel girders and other debris to continue\n\
on much farther. Above, the ceiling has caved in and it is possible to \n\
climb up. There is not much chance to go -, -, or -.\n\
But the hallway seems clearer +.\n" },
{ "A wide hallway and a more narrow walkway meet here.",
- 14, 15, 0, 10, 0, 0, 0, 0,
+ { 14, 15, 0, 10, 0, 0, 0, 0 },
"The intersection is crowded with the many wounded who have come up\n\
the wide hallway and continued +. The walkway is less crowded +.\n\
The wide hallway goes *-.\n" },
{ "You are in what was once an elegant stateroom.",
- 16, 0, 0, 0, 0, 0, 11, 0,
+ { 16, 0, 0, 0, 0, 0, 11, 0 },
"Whoever lived in this stateroom, he and his female companion\n\
were mercilessly slain in their sleep. Clothes, trinkets and personal\n\
belongings are scattered all across the floor. Through a hole in the\n\
collapsed floor I can see a hallway below. A door is +.***\n" },
{ "You're at the entrance to the sick bay.",
- 17, 12, 18, 0, 0, 0, 0, 0,
+ { 17, 12, 18, 0, 0, 0, 0, 0 },
"The wounded are entering the sick bay in loudly moaning files.\n\
The walkway continues - and +. A doctor is motioning for you to \n\
come to the -. *\n" },
{ "You're in the walkway.",
- 12, 19, 0, 0, 0, 0, 0, 0,
+ { 12, 19, 0, 0, 0, 0, 0, 0 },
"Most of the men and supplies were coming from the armory. The walkway\n\
continues -. The armory is +.**\n" },
{ "These are the executive suites of the battlestar.",
- 20, 13, 21, 22, 23, 1, 24, 0,
+ { 20, 13, 21, 22, 23, 1, 24, 0 },
"Luxurious staterooms carpeted with crushed velvet and adorned with beaten\n\
gold open onto this parlor. A wide staircase with ivory banisters leads\n\
up or down. This parlor leads into a hallway +. The bridal suite is +.\n\
Other rooms lie - and +.\n" },
{ "You're in a long dimly lit hallway.",
- 0, 14, 25, 0, 0, 0, 0, 0,
+ { 0, 14, 25, 0, 0, 0, 0, 0 },
"This part of the walkway is deserted. There is a dead end +. The\n\
entrance to the sickbay is +. The walkway turns sharply -.*\n" },
{ "This is the sick bay.",
- 0, 0, 0, 14, 0, 0, 0, 0,
+ { 0, 0, 0, 14, 0, 0, 0, 0 },
"Sinister nurses with long needles and pitiful aim probe the depths of suffering\n\
here. Only the mortally wounded receive medical attention on a battlestar,\n\
but afterwards they are thrown into the incinerators along with the rest.**\n\
Nothing but death and suffering +. The walkway is +.\n" },
{ "You're in the armory.",
- 15, 26, 0, 0, 0, 0, 0, 0,
+ { 15, 26, 0, 0, 0, 0, 0, 0 },
"An armed guard is stationed here 365 sectars a yarn to protect the magazine.\n\
The walkway is +. The magazine is +.**\n" },
{ "The hallway ends here at the presidential suite.",
- 27, 16, 0, 0, 0, 0, 0, 0,
+ { 27, 16, 0, 0, 0, 0, 0, 0 },
"The door to this suite is made from solid magnesium, and the entryway is\n\
inlaid with diamonds and fire opals. The door is ajar +. The hallway\n\
goes -.**\n" },
{ "This is the maid's utility room.",
- 0, 0, 0, 16, 0, 0, 0, 0,
+ { 0, 0, 0, 16, 0, 0, 0, 0 },
"What a gruesome sight! The maid has been brutally drowned in a bucket of\n\
Pine Sol and repeatedly stabbed in the back with a knife.***\n\
The hallway is +.\n" },
{ "This is a luxurious stateroom.",
- 0, 8, 16, 0, 0, 0, 0, 0,
+ { 0, 8, 16, 0, 0, 0, 0, 0 },
"The floor is carpeted with a soft animal fur and the great wooden furniture\n\
is inlaid with strips of platinum and gold. Electronic equipment built\n\
into the walls and ceiling is flashing wildly. The floor shudders and\n\
@@ -163,1021 +163,1021 @@ the sounds of dull explosions rumble though the room. From a window in\n\
the wall + comes a view of darkest space. There is a small adjoining\n\
room +, and a doorway +.*\n" },
{ "You are at the entrance to the dining hall.",
- 0, 0, 28, 0, 0, 0, 16, 0,
+ { 0, 0, 28, 0, 0, 0, 16, 0 },
"A wide staircase with ebony banisters leads down here.**\n\
The dining hall is to the -.*\n" },
{ "This was once the first class lounge.",
- 0, 0, 29, 0, 16, 1, 0, 0,
+ { 0, 0, 29, 0, 16, 1, 0, 0 },
"There is much rubble and destruction here that was not apparent elsewhere.\n\
The walls and ceilings have broken in in some places. A staircase with\n\
red coral banisters leads up. It is impossible to go - or -.\n\
It seems a little clearer +.*\n" },
{ "You are in a narrow stairwell.",
- 0, 17, 0, 0, 30, 1, 0, 0,
+ { 0, 17, 0, 0, 30, 1, 0, 0 },
"These dusty and decrepit stairs lead up. There is no way -. The\n\
hallway turns sharply -.**\n" },
{ "You are in the magazine.",
- 19, 0, 0, 0, 0, 0, 0, 0,
+ { 19, 0, 0, 0, 0, 0, 0, 0 },
"Rows and rows of neatly stacked ammunition for laser pistols and grenade\n\
launchers are here. The armory is +.***\n" },
{ "You're in the presidential suite.",
- 0, 20, 0, 0, 0, 0, 0, 0,
+ { 0, 20, 0, 0, 0, 0, 0, 0 },
"Apparently the president has been assassinated. A scorched figure lies\n\
face downward on the carpet clutching his chest.*\n\
The hallway leads -.**\n" },
{ "You are in the dining hall.",
- 0, 30, 31, 23, 0, 0, 0, 0,
+ { 0, 30, 31, 23, 0, 0, 0, 0 },
"This was the scene of a mass suicide. Hundreds of ambassadors and assorted\n\
dignitaries sit slumped over their breakfast cereal. I suppose the news\n\
of the cylon attack killed them. There is a strange chill in this room. I\n\
would not linger here. * The kitchen is +. Entrances + and +.\n" },
{ "The debris is very thick here.",
- 0, 11, 0, 24, 0, 0, 0, 0,
+ { 0, 11, 0, 24, 0, 0, 0, 0 },
"Broken furniture, fallen girders, and other rubble block the way.\n\
There is not much chance to continue -, -, or -.\n\
It would be best to go -.\n" },
{ "You are in the kitchen.",
- 28, 0, 0, 0, 0, 0, 0, 0,
+ { 28, 0, 0, 0, 0, 0, 0, 0 },
"This room is full of shining stainless steel and burnished bronze cookware. An \n\
assortment of tropical fruits and vegetables as well as fine meats and cheeses \n\
lies on a sterling platter. The chef, unfortunately, has been skewered like a \n\
side of beef. The dining room is +. ** There is a locked door +.\n" },
{ "You are in an arched entry leading to the dining room.",
- 0, 0, 0, 28, 0, 0, 0, 0,
+ { 0, 0, 0, 28, 0, 0, 0, 0 },
"The door leading out is bolted shut from the outside and is very strong.***\n\
The dining room is +.\n" },
{ "You are in space.",
- 33, 34, 35, 36, 37, 1, 33, 1,
+ { 33, 34, 35, 36, 37, 1, 33, 1 },
"****\n" },
{ "You are in space.",
- 38, 32, 39, 40, 41, 1, 42, 1,
+ { 38, 32, 39, 40, 41, 1, 42, 1 },
"****\n" },
{ "You are in space.",
- 32, 44, 45, 46, 47, 1, 48, 1,
+ { 32, 44, 45, 46, 47, 1, 48, 1 },
"****\n" },
{ "You are in space.",
- 40, 45, 49, 32, 50, 1, 51, 1,
+ { 40, 45, 49, 32, 50, 1, 51, 1 },
"****\n" },
{ "You are in space.",
- 41, 46, 32, 52, 53, 1, 54, 1,
+ { 41, 46, 32, 52, 53, 1, 54, 1 },
"****\n" },
{ "You are in space.",
- 42, 47, 50, 53, 55, 1, 32, 1,
+ { 42, 47, 50, 53, 55, 1, 32, 1 },
"****\n" },
{ "You are in space.",
- 43, 48, 51, 54, 32, 1, 56, 1,
+ { 43, 48, 51, 54, 32, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 57, 33, 40, 41, 42, 1, 43, 1,
+ { 57, 33, 40, 41, 42, 1, 43, 1 },
"****\n" },
{ "You are in space.",
- 39, 35, 57, 33, 58, 1, 59, 1,
+ { 39, 35, 57, 33, 58, 1, 59, 1 },
"****\n" },
{ "You are in space.",
- 39, 36, 33, 59, 60, 1, 61, 1,
+ { 39, 36, 33, 59, 60, 1, 61, 1 },
"****\n" },
{ "You are in space.",
- 39, 37, 58, 60, 62, 1, 33, 1,
+ { 39, 37, 58, 60, 62, 1, 33, 1 },
"****\n" },
{ "You are in space.",
- 39, 38, 59, 61, 33, 1, 63, 1,
+ { 39, 38, 59, 61, 33, 1, 63, 1 },
"****\n" },
{ "You are in space.",
- 34, 64, 45, 46, 47, 1, 48, 1,
+ { 34, 64, 45, 46, 47, 1, 48, 1 },
"****\n" },
{ "You are in space.",
- 35, 44, 49, 34, 50, 1, 51, 1,
+ { 35, 44, 49, 34, 50, 1, 51, 1 },
"****\n" },
{ "You are in space.",
- 36, 44, 34, 52, 53, 1, 54, 1,
+ { 36, 44, 34, 52, 53, 1, 54, 1 },
"****\n" },
{ "You are in space.",
- 37, 44, 50, 53, 55, 1, 34, 1,
+ { 37, 44, 50, 53, 55, 1, 34, 1 },
"****\n" },
{ "You are in space.",
- 38, 44, 51, 54, 34, 1, 56, 1,
+ { 38, 44, 51, 54, 34, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 49, 49, 52, 35, 49, 1, 49, 1,
+ { 49, 49, 52, 35, 49, 1, 49, 1 },
"****\n" },
{ "You are in space.",
- 58, 47, 49, 37, 55, 1, 35, 1,
+ { 58, 47, 49, 37, 55, 1, 35, 1 },
"****\n" },
{ "You are in space.",
- 59, 48, 49, 38, 35, 1, 56, 1,
+ { 59, 48, 49, 38, 35, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 52, 52, 36, 49, 52, 1, 52, 1,
+ { 52, 52, 36, 49, 52, 1, 52, 1 },
"****\n" },
{ "You are in space.",
- 60, 46, 37, 52, 55, 1, 36, 1,
+ { 60, 46, 37, 52, 55, 1, 36, 1 },
"****\n" },
{ "You are in space.",
- 61, 48, 38, 52, 36, 1, 56, 1,
+ { 61, 48, 38, 52, 36, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 62, 55, 55, 55, 56, 1, 37, 1,
+ { 62, 55, 55, 55, 56, 1, 37, 1 },
"****\n" },
{ "You are in space.",
- 56, 56, 56, 56, 38, 1, 55, 1,
+ { 56, 56, 56, 56, 38, 1, 55, 1 },
"****\n" },
{ "You are in space.",
- 65, 39, 57, 57, 57, 1, 57, 1,
+ { 65, 39, 57, 57, 57, 1, 57, 1 },
"****\n" },
{ "You are in space.",
- 39, 50, 49, 42, 62, 1, 40, 1,
+ { 39, 50, 49, 42, 62, 1, 40, 1 },
"****\n" },
{ "You are in space.",
- 39, 51, 49, 43, 40, 1, 63, 1,
+ { 39, 51, 49, 43, 40, 1, 63, 1 },
"****\n" },
{ "You are in space.",
- 39, 53, 43, 59, 62, 1, 41, 1,
+ { 39, 53, 43, 59, 62, 1, 41, 1 },
"****\n" },
{ "You are in space.",
- 39, 54, 43, 59, 41, 1, 56, 1,
+ { 39, 54, 43, 59, 41, 1, 56, 1 },
"****\n" },
{ "You are in space.",
- 39, 55, 62, 62, 56, 1, 42, 1,
+ { 39, 55, 62, 62, 56, 1, 42, 1 },
"****\n" },
{ "You are in space.",
- 39, 56, 35, 36, 43, 1, 55, 1,
+ { 39, 56, 35, 36, 43, 1, 55, 1 },
"****\n" },
{ "You are in space.",
- 44, 66, 66, 66, 66, 1, 66, 1,
+ { 44, 66, 66, 66, 66, 1, 66, 1 },
"****\n" },
{ "You are in space.",
- 67, 57, 67, 67, 67, 1, 67, 1,
+ { 67, 57, 67, 67, 67, 1, 67, 1 },
"****\n" },
{ "You are in space.",
- 64, 68, 68, 68, 68, 1, 68, 1,
+ { 64, 68, 68, 68, 68, 1, 68, 1 },
"****\n" },
{ "You are orbiting a small blue planet.",
- 67, 67, 67, 67, 65, 1, 69, 1,
+ { 67, 67, 67, 67, 65, 1, 69, 1 },
"****\n" },
{ "You are orbiting a tropical planet.",
- 68, 68, 68, 68, 66, 1, 70, 1,
+ { 68, 68, 68, 68, 66, 1, 70, 1 },
"****\n" },
{ "You are flying through a dense fog.",
- 69, 69, 69, 69, 69, 1, 69, 1,
+ { 69, 69, 69, 69, 69, 1, 69, 1 },
"A cold grey sea of mist is swirling around the windshield and water droplets\n\
are spewing from the wingtips. Ominous shadows loom in the darkness and it\n\
feels as if a trap is closing around us. I have lost all sense of direction.\n\
****\n" },
{ "You are approaching an island.",
- 71, 72, 73, 74, 68, 1, 0, 1,
+ { 71, 72, 73, 74, 68, 1, 0, 1 },
"Feather palms outlined by mellow moonlight and a silvery black ocean line\n\
the perimeter of the island. Mighty mountains of emerald and amethyst rise\n\
like jagged teeth from black gums. The land rises sharply +. The shore\n\
line stretches on *+.*\n" },
{ "You are flying over a mountainous region.",
- 75, 73, 76, 77, 68, 1, 0, 1,
-"Below is a shadow filled canyon with luminous waterfalls plummeting down beyond sight and looming spires and pinnacles. **The ocean is +.*\n" },
+ { 75, 73, 76, 77, 68, 1, 0, 1 },
+"Below is a shadow-filled canyon with luminous waterfalls plummeting down beyond sight and looming spires and pinnacles. **The ocean is +.*\n" },
{ "You are flying over the ocean.",
- 74, 78, 78, 78, 68, 1, 0, 1,
+ { 74, 78, 78, 78, 68, 1, 0, 1 },
"You bank over the water and your wingtips dip low to the green waves. The\n\
sea is very shallow here and the white coral beds beneath us teem with \n\
shadowy fish.****\n" },
{ "You are flying over the beach.",
- 71, 72, 79, 74, 68, 1, 80, 1,
+ { 71, 72, 79, 74, 68, 1, 80, 1 },
"A warm gentle surf caresses the beach here. The land rises\n\
sharply +.* The beach is lost in low cliffs +.*\n" },
{ "You are flying over a large lagoon.",
- 81, 72, 73, 82, 68, 1, 0, 1,
+ { 81, 72, 73, 82, 68, 1, 0, 1 },
"The water's brink winds tortuously inland. There are some lights +.***\n" },
{ "You are flying over a gently sloping plane.",
- 83, 71, 84, 85, 68, 1, 0, 1,
+ { 83, 71, 84, 85, 68, 1, 0, 1 },
"The ground appears to be choked with vegetation.* The terrain is more\n\
rugged +.**\n" },
{ "You are flying through a gorge.",
- 0, 0, 86, 71, 68, 1, 102, 1,
+ { 0, 0, 86, 71, 68, 1, 102, 1 },
"This is a narrow, steep sided canyon lined with plants. The stars above\n\
glisten through the over hanging trees. The gorge leads to the\n\
sea** +, and to a tumultuous origin +.\n" },
{ "You are flying over a plantation.",
- 85, 81, 71, 88, 68, 1, 89, 1,
+ { 85, 81, 71, 88, 68, 1, 89, 1 },
"It might be possible to land here, but not in the dark.* There are some lights\n\
+ and *+.\n" },
{ "You are over the ocean.",
- 72, 78, 79, 74, 68, 1, 0, 1,
+ { 72, 78, 79, 74, 68, 1, 0, 1 },
"The deep green swells foam and roll into the shore **+*.\n" },
{ "You are flying along the coast.",
- 86, 72, 90, 73, 68, 1, 91, 1,
+ { 86, 72, 90, 73, 68, 1, 91, 1 },
"The coastline here is very rocky. The surf in some places is violent\n\
and explodes in a shower of sparkling, moonlit spray. ****\n" },
{ "This is a beautiful coral beach.",
- 106, 0, 107, 108, 73, 0, 0, 0,
+ { 106, 0, 107, 108, 73, 0, 0, 0 },
"Fine silver sand kissed lightly by warm tropical waters and illuminated\n\
by a huge tropical moon stretches at least 30 meters inland.\n\
Gently swaying palm trees are +.***\n" },
{ "You are flying over a small fishing village.",
- 77, 74, 71, 82, 68, 1, 92, 1,
+ { 77, 74, 71, 82, 68, 1, 92, 1 },
"A few thatched huts lit with torches and bonfires line a road below.\n\
The road continues on ***+.\n" },
{ "You are flying over a clearing.",
- 88, 72, 74, 87, 68, 1, 93, 1,
+ { 88, 72, 74, 87, 68, 1, 93, 1 },
"There is a dock here (big enough for a seaplane) leading to a clearing.\n\
The still waters of the lagoon reflects our orange turbo thrusters.****\n" },
{ "You are flying over the shore.",
- 94, 75, 95, 96, 68, 1, 0, 1,
+ { 94, 75, 95, 96, 68, 1, 0, 1 },
"Rocky lava flows have overtaken the beach here.****\n" },
{ "You are flying in a wide valley.",
- 95, 97, 86, 75, 68, 1, 98, 1,
+ { 95, 97, 86, 75, 68, 1, 98, 1 },
"This is a shallow valley yet the floor is obscured by a thick mist.\n\
The valley opens into blackness +. The mist grows thicker +.**\n" },
{ "You are flying near the shore.",
- 96, 77, 75, 99, 68, 1, 0, 1,
+ { 96, 77, 75, 99, 68, 1, 0, 1 },
"Very tall trees growing in neatly planted rows march off from the \n\
water here towards the hills and down to the flat lands *+.**\n" },
{ "You are flying around the very tip of the island.",
- 95, 79, 90, 84, 68, 1, 0, 1,
+ { 95, 79, 90, 84, 68, 1, 0, 1 },
"Sheer cliffs rise several hundred feet to a tree covered summit. Far below,\n\
the grey sea gnaws voraciously at the roots of these cliffs. The island bends\n\
around +** and +.\n" },
{ "You are flying along the coastline.",
- 99, 82, 88, 100, 68, 1, 101, 1,
+ { 99, 82, 88, 100, 68, 1, 101, 1 },
"This is a narrow strip of sand lined with very few trees. The stars above\n\
flicker through wisps of clouds. The beach continues on -.* There\n\
are some lights +.*\n" },
{ "You are flying over several cottages and buildings",
- 99, 82, 77, 87, 68, 1, 103, 1,
+ { 99, 82, 77, 87, 68, 1, 103, 1 },
"Directly below is small ornate house lit up with spot lights and decorative\n\
bulbs. A bell tower and a spurting fountain are nearby. Small dirt roads go\n\
+ and +.**\n" },
{ "You are in a field of sugar cane.",
- 109, 110, 111, 112, 77, 0, 0, 0,
+ { 109, 110, 111, 112, 77, 0, 0, 0 },
"These strong, thick canes give little shelter but many cuts and scrapes.\n\
There are some large trees ***+.\n" },
{ "You are flying over the ocean.",
- 95, 78, 90, 86, 68, 1, 0, 1,
+ { 95, 78, 90, 86, 68, 1, 0, 1 },
"The water is a placid ebony.****\n" },
{ "You are on the coast road.",
- 113, 114, 115, 116, 79, 0, 0, 0,
+ { 113, 114, 115, 116, 79, 0, 0, 0 },
"The road winds close to the shore here. The trees on either side press close\n\
in the darkness and seem to be watching us.** The road continues -\n\
and -.\n" },
{ "You are on the main street of the village.",
- 117, 118, 119, 120, 81, 0, 0, 0,
+ { 117, 118, 119, 120, 81, 0, 0, 0 },
"The natives are having a festive luau here. Beautiful dancers gyrate in the\n\
torchlight to the rhythm of wooden drums. A suckling pig is sizzling in a\n\
bed of coals and ti leaves are spread with poi and tropical fruits. Several\n\
natives have come over to you and want you to join in the festivities.\n\
There is a light burning in a bungalow +.***\n" },
{ "You are at the sea plane dock.",
- 121, 122, 123, 124, 82, 0, 0, 0,
+ { 121, 122, 123, 124, 82, 0, 0, 0 },
"The clearing is deserted. The grass is wet with the evening dew +.*\n\
There is something set up +.*\n" },
{ "You are flying over the ocean.",
- 94, 83, 95, 96, 68, 1, 0, 1,
+ { 94, 83, 95, 96, 68, 1, 0, 1 },
"The black waves surge off shore here. The ocean becomes much calmer +.***\n" },
{ "You are flying along the coast.",
- 94, 84, 86, 83, 68, 1, 0, 1,
+ { 94, 84, 86, 83, 68, 1, 0, 1 },
"The land is very low here with a river running into the sea +. There\n\
is a wide valley opening up +, but a strange mist is flowing out of it.\n\
The very tip of the island is +.*\n" },
{ "You are flying along the coast.",
- 94, 85, 83, 99, 68, 1, 0, 1,
+ { 94, 85, 83, 99, 68, 1, 0, 1 },
"The coast here is cluttered with rocky outcroppings.****\n" },
{ "You are lost in a sea of fog.",
- 97, 104, 97, 97, 97, 1, 0, 1,
+ { 97, 104, 97, 97, 97, 1, 0, 1 },
"What have you gotten us into?\n\
I can't see a thing! ****\n" },
{ "You are on a gravel wash.",
- 125, 126, 127, 128, 84, 0, 0, 0,
+ { 125, 126, 127, 128, 84, 0, 0, 0 },
"It is very dark here. A cool breeze is blowing from +. No moonlight can\n\
reach below a thick canopy of fog above. The sound of cascading water is\n\
coming from +.**\n" },
{ "You are flying over a wide beach.",
- 96, 88, 85, 87, 68, 1, 105, 1,
+ { 96, 88, 85, 87, 68, 1, 105, 1 },
"There are some lighted buildings *+. Some trees are growing +.*\n" },
{ "You are flying over the ocean.",
- 100, 100, 87, 100, 68, 1, 0, 1,
+ { 100, 100, 87, 100, 68, 1, 0, 1 },
"The black waves surge and splash against the rocky shore.****\n" },
{ "You are on a narrow strip of sand.",
- 129, 130, 131, 0, 87, 0, 0, 0,
+ { 129, 130, 131, 0, 87, 0, 0, 0 },
"Rather coarse sand makes this beach very steep and only a few meters wide.\n\
A fresh ocean breeze is rustling the ferns **+.*\n" },
{ "This is Fern Canyon.",
- 0, 0, 132, 133, 76, 0, 0, 0,
+ { 0, 0, 132, 133, 76, 0, 0, 0 },
"Delicate waving ferns flourish here, suckled by warm water dripping from \n\
every fissure and crevice in the solid rock walls. The stars above sparkle\n\
through a thin mist. The canyon winds **-, and -.\n" },
{ "This is the front lawn.",
- 134, 135, 136, 137, 88, 0, 0, 0,
+ { 134, 135, 136, 137, 88, 0, 0, 0 },
"There is a small fountain lighted with green and yellow bulbs here where\n\
the driveway meets the lawn. Across the driveway, +, is an ornate white\n\
house lit with gas lamps. A bell tower here is awash in pale blue.* There\n\
is a road + which turns into the driveway.*\n" },
{ "You have just crossed the crest of a mountain.",
- 97, 79, 86, 71, 68, 1, 0, 1,
+ { 97, 79, 86, 71, 68, 1, 0, 1 },
"The fog vanished mysteriously as we flew over the crest.*\n\
Far + I can see the ocean sparkling in the moonlight.**\n" },
{ "You are on a sandy beach.",
- 138, 139, 140, 0, 99, 0, 0, 0,
+ { 138, 139, 140, 0, 99, 0, 0, 0 },
"Fine coral sand, a fresh sea breeze, and dramatic surf add to this beach's\n\
appeal.** Stone steps lead to a lighted path in the gardens +.*\n" },
{ "You are among palm trees near the shore.",
- 141, 80, 142, 143, 73, 0, 0, 0,
+ { 141, 80, 142, 143, 73, 0, 0, 0 },
"Arching coconut palms laden with fruit provide a canopy for the glistening\n\
white sand and sparse, dew covered grasses growing here. The forest grows\n\
denser +. Crickets are chirping loudly here. The ocean is +.**\n" },
{ "You are walking along the beach.",
- 144, 0, 145, 80, 73, 0, 0, 0,
+ { 144, 0, 145, 80, 73, 0, 0, 0 },
"The warm tropical waters nuzzle your ankles as you walk. Above is a gorgeous\n\
starscape. The battlestar must be up there somewhere. The slope of the sand\n\
is so gentle that the surf only slides up the sand.** There are some rocks\n\
+.*\n" },
{ "You are walking along the beach.",
- 146, 0, 80, 147, 73, 0, 0, 0,
+ { 146, 0, 80, 147, 73, 0, 0, 0 },
"The tide is out very far tonight, and it is possible to explore hidden rocks\n\
and caves not ordinarily accessible. Rich beds of seaweed have been exposed\n\
to the cool night air.****\n" },
{ "You are in a papaya grove.",
- 148, 89, 149, 150, 77, 0, 0, 0,
+ { 148, 89, 149, 150, 77, 0, 0, 0 },
"Slender trees with their large seven lobed leaves bulge with succulent fruit.\n\
There are some tall trees +.***\n" },
{ "You are in a field of pineapple.",
- 89, 151, 152, 153, 77, 0, 0, 0,
+ { 89, 151, 152, 153, 77, 0, 0, 0 },
"The sharp dagger like pineapple leaves can pierce the flesh and hold fast\n\
a skewered victim with tiny barbs.* The field ends +.**\n" },
{ "You are in a field of kiwi plants.",
- 149, 154, 155, 89, 77, 0, 0, 0,
+ { 149, 154, 155, 89, 77, 0, 0, 0 },
"Round hairy fruit hang from staked vines here. There are some trees +\n\
and +. The field ends in a road +.*\n" },
{ "You are in a large grove of coconuts.",
- 150, 153, 89, 156, 77, 0, 0, 0,
+ { 150, 153, 89, 156, 77, 0, 0, 0 },
"These trees are much taller than any growing near the shore and the shadows\n\
are also deeper. It's hard to keep my sense of direction.****\n" },
{ "You are in the woods.",
- 157, 91, 158, 116, 79, 0, 0, 0,
+ { 157, 91, 158, 116, 79, 0, 0, 0 },
"Tropical undergrowth makes the going rough here. Sword ferns give no strong\n\
foot hold and the dangling vines would gladly throttle one. The darkness is\n\
so intense here that we stand in utter blackness.****\n" },
{ "You are at the shore.",
- 91, 0, 159, 145, 79, 0, 160, 0,
+ { 91, 0, 159, 145, 79, 0, 160, 0 },
"The low minus tide tonight might make it possible to climb down to a\n\
small cave entrance below. Large rocks would usually churn the waves\n\
asunder.*** The beach goes -.\n" },
{ "You are on the coast road.",
- 158, 161, 162, 91, 79, 0, 0, 0,
+ { 158, 161, 162, 91, 79, 0, 0, 0 },
"The road is beginning to turn slightly -. I can hear the surf +. The road\n\
continues into the dark forest +.*\n" },
{ "The road winds deeper into the trees.",
- 163, 142, 91, 164, 79, 0, 0, 0,
+ { 163, 142, 91, 164, 79, 0, 0, 0 },
"Only narrow moonbeams filter through the dense foliage above. The moist rich\n\
earth has nurtured a myriad of slugs, snakes, and spiders to grow here. The\n\
road continues - and *- into the shadows.*\n" },
{ "This is the front porch of the bungalow.",
- 165, 92, 0, 0, 81, 0, 0, 0,
+ { 165, 92, 0, 0, 81, 0, 0, 0 },
"The veranda is lit by a small yellow bug light. The door leads -.\n\
The stone walk down to the luau is lined with burning torches +. That\n\
roast pig smells good.**\n" },
{ "You are on a path leading to the lagoon.",
- 92, 166, 167, 168, 81, 0, 0, 0,
+ { 92, 166, 167, 168, 81, 0, 0, 0 },
"This path winds through the underbrush and towards the lagoon *+. The\n\
broad faced moon peeps though the branches above. The sound of drums echos\n\
in the woods.**\n" },
{ "This is a dirt road.",
- 169, 118, 170, 92, 81, 0, 0, 0,
+ { 169, 118, 170, 92, 81, 0, 0, 0 },
"**The road continues on - here for some distance. A bonfire and party light\n\
up the night sky +.\n" },
{ "You are on a dirt road.",
- 171, 118, 92, 172, 81, 0, 0, 0,
+ { 171, 118, 92, 172, 81, 0, 0, 0 },
"**There is a village +. A huge bonfire licks at the trees, and a celebration\n\
of some sort is going on there. The smell of luscious cooking is tantalizing\n\
my flared nostrils. The road continues +.\n" },
{ "You are on a dirt road.",
- 173, 93, 174, 175, 82, 0, 0, 0,
+ { 173, 93, 174, 175, 82, 0, 0, 0 },
"This is a wide grassy clearing bedewed with droplets of evening mist. The\n\
trees alongside the road moan and whisper as we pass. They seem annoyed at\n\
our presence. **The road continues - and -.\n" },
{ "You are at the seaplane dock.",
- 93, 0, 176, 177, 82, 0, 0, 0,
+ { 93, 0, 176, 177, 82, 0, 0, 0 },
"Not a living thing stirs the calm surface of the lagoon. The wooden planks\n\
creak unnaturally as we tread on them. The dock reaches a clearing +.\n\
A dark trail leads around the lagoon **+.\n" },
{ "There are some tables on the lawn here.",
- 121, 122, 123, 93, 82, 0, 0, 0,
+ { 121, 122, 123, 93, 82, 0, 0, 0 },
"Some tables are strewn on the wet lawn.****\n" },
{ "You are nosing around in the bushes.",
- 124, 124, 93, 124, 82, 0, 0, 0,
+ { 124, 124, 93, 124, 82, 0, 0, 0 },
"There is little here but some old beer cans. It is damp and dirty in here.\n\
I think I stepped in something unpleasant. It would be best to go **-.*\n" },
{ "You are walking in a dry stream bed.",
- 178, 98, 179, 0, 84, 0, 0, 0,
+ { 178, 98, 179, 0, 84, 0, 0, 0 },
"The large cobblestones are difficult to walk on. No starlight reaches\n\
below a black canopy of fog seemingly engulfing the whole island. A dirt\n\
path along the wash is **+. The high bank is impossible to climb +.\n" },
{ "You are at the thermal pools.",
- 98, 0, 180, 181, 84, 0, 0, 0,
+ { 98, 0, 180, 181, 84, 0, 0, 0 },
"Odd spluttering and belching water splashes up around the rocks here.\n\
A spectacular waterfall nearby tumbles down as a river of effervescent\n\
bubbles. The air is quite warm and a cave entrance ***+ spews steam.\n" },
{ "You are in the woods.",
- 127, 180, 182, 98, 84, 0, 0, 0,
+ { 127, 180, 182, 98, 84, 0, 0, 0 },
"It is pitch black in the forest here and my pant leg is caught on something.\n\
There may be poison oak here. What was that? A lantern just flickered by in\n\
the dark! The sound of rushing water is coming from *+.**\n" },
{ "You are on a dirt trail.",
- 179, 181, 98, 0, 84, 0, 0, 0,
+ { 179, 181, 98, 0, 84, 0, 0, 0 },
"The trail seems to start here and head towards the forest +.** High, dark\n\
cliffs border the trail +. Some crickets are chirping noisily.\n" },
{ "You are walking along the beach.",
- 183, 101, 184, 0, 87, 0, 0, 0,
+ { 183, 101, 184, 0, 87, 0, 0, 0 },
"The surf is rather tame tonight. The beach continues + and +.**\n" },
{ "You are walking along the beach.",
- 101, 185, 186, 0, 87, 0, 0, 0,
+ { 101, 185, 186, 0, 87, 0, 0, 0 },
"This is not a very nice beach. The coarse sand hurts my feet.****\n" },
{ "You are walking through some ferns.",
- 184, 186, 187, 101, 87, 0, 0, 0,
+ { 184, 186, 187, 101, 87, 0, 0, 0 },
"This is a wide field growing only ferns and small shrubs.** In the dark\n\
it would be all to easy to stumble into a venomous snake. The ocean is\n\
*+.\n" },
{ "You are in a narrow canyon.",
- 0, 0, 188, 102, 76, 0, 0, 0,
+ { 0, 0, 188, 102, 76, 0, 0, 0 },
"The steep sides here squeeze a little freshet through a gauntlet like\n\
series of riffles and pools. The cool mountain air is refreshing.****\n" },
{ "The canyon is much wider here.",
- 0, 0, 102, 189, 76, 0, 0, 0,
+ { 0, 0, 102, 189, 76, 0, 0, 0 },
"The sheer rock walls rise 10 meters into darkness. A slender waterfall\n\
careens away from the face of the rock high above and showers the gravel\n\
floor with sparkling raindrops.** The canyon continues -\n\
and -.\n" },
{ "You are on the front porch of the cottage.",
- 190, 103, 0, 0, 0, 0, 0, 0,
+ { 190, 103, 0, 0, 0, 0, 0, 0 },
"The veranda is deserted. A table and chair are the only things on the porch.\n\
Inside the house is a parlor lighted with an elegant chandelier. The door\n\
leads -. The lawn and fountain are +.**\n" },
{ "You are in a palm grove.",
- 103, 191, 192, 105, 88, 0, 0, 0,
+ { 103, 191, 192, 105, 88, 0, 0, 0 },
"Crickets are chirping in the cool night air.****\n" },
{ "You are on a dirt road.",
- 193, 192, 245, 103, 88, 0, 0, 0,
+ { 193, 192, 245, 103, 88, 0, 0, 0 },
"There are many bright lights +. The road cleaves the darkness +.\n\
A small dirt road goes -, and a drive way peals off +.\n" },
{ "You are in a field of small shrubs.",
- 184, 186, 103, 187, 88, 0, 0, 0,
+ { 184, 186, 103, 187, 88, 0, 0, 0 },
"**Pine and other coniferous saplings are growing here. The rich brown\n\
soil is well watered. Across a large lawn +, there is a small cottage lighted\n\
with spot lights and gas lamps. A cool land breeze is blowing.*\n" },
{ "The beach is pretty rocky here.",
- 194, 105, 195, 0, 96, 0, 0, 0,
+ { 194, 105, 195, 0, 96, 0, 0, 0 },
"The tide is very low tonight. The beach is nicer *+.**\n" },
{ "The beach is almost 10 meters wide here.",
- 105, 183, 196, 0, 99, 0, 0, 0,
+ { 105, 183, 196, 0, 99, 0, 0, 0 },
"The sand has become more coarse and the beach steeper.****\n" },
{ "You are in the gardens.",
- 195, 196, 197, 105, 99, 0, 0, 0,
+ { 195, 196, 197, 105, 99, 0, 0, 0 },
"Shadowy expanses of lawn and leaf have been groomed and manicured here.\n\
The night sky is glowing with a full moon.** A lighted path leads -.\n\
Stone steps lead down to the beach +.\n" },
{ "You are on the coast road.",
- 198, 106, 163, 199, 73, 0, 0, 0,
+ { 198, 106, 163, 199, 73, 0, 0, 0 },
"The forest is dense on either side. The trees seem to be actually squeezing\n\
-together to keep us from passing. A feeling of emnity is in the air.**\n\
+together to keep us from passing. A feeling of enmity is in the air.**\n\
The road continues - and -.\n" },
{ "You are in the forest.",
- 116, 107, 91, 106, 73, 0, 0, 0,
+ { 116, 107, 91, 106, 73, 0, 0, 0 },
"I suppose there are trees and ferns all around, but it is too dark to see.****\n" },
{ "You are in the forest.",
- 199, 108, 106, 146, 73, 0, 0, 0,
+ { 199, 108, 106, 146, 73, 0, 0, 0 },
"There are shadowy trees and ferns all around.****\n" },
{ "You are in a copse.",
- 142, 107, 145, 80, 0, 0, 0, 0,
+ { 142, 107, 145, 80, 0, 0, 0, 0 },
"This is a secret hidden thicket only noticeable from the beach. In the\n\
moonlight, I can tell that someone has been digging here recently.****\n" },
{ "You are at the tide pools.",
- 91, 0, 114, 107, 79, 0, 0, 0,
+ { 91, 0, 114, 107, 79, 0, 0, 0 },
"These rocks and pools are the home for many sea anemones and crustaceans.\n\
They are exposed because of the low tide. There is a beach ***+.\n" },
{ "You are in the forest.",
- 199, 108, 143, 0, 73, 0, 0, 0,
+ { 199, 108, 143, 0, 73, 0, 0, 0 },
"This is a shallow depression sheltered from the wind by a thick growth of \n\
thorny shrubs. It looks like someone is camping here. There is a fire pit\n\
with warm, crackling flames and coals here.* The beach is +.* The thorny\n\
shrubs block the way -.\n" },
{ "You are at the mouth of the lagoon.",
- 200, 0, 108, 201, 74, 0, 0, 0,
+ { 200, 0, 108, 201, 74, 0, 0, 0 },
"The beach ends here where the coral reef rises to form a wide lagoon.\n\
A path winds around the lagoon to the -.* The beach continues\n\
on -. Only water lies +.\n" },
{ "You are in a breadfruit grove.",
- 202, 109, 203, 204, 77, 0, 0, 0,
+ { 202, 109, 203, 204, 77, 0, 0, 0 },
"The tall trees bend leisurely in the breeze, holding many round breadfruits\n\
close to their large serrated leaves. There are coconut palms +,\n\
*+, and +.\n" },
{ "You are in a grove of mango trees.",
- 203, 111, 205, 109, 77, 0, 0, 0,
+ { 203, 111, 205, 109, 77, 0, 0, 0 },
"The trees are not tall enough to obscure the view and the bright moonlight\n\
makes it fairly easy to see.****\n" },
{ "You are in a grove of coconut palms.",
- 204, 112, 109, 206, 77, 0, 0, 0,
+ { 204, 112, 109, 206, 77, 0, 0, 0 },
"All I can see around us are trees and ominous shapes darting in and out of the\n\
shadows.****\n" },
{ "You are in a coconut grove.",
- 110, 207, 208, 209, 77, 0, 0, 0,
+ { 110, 207, 208, 209, 77, 0, 0, 0 },
"There are countless trees here.****\n" },
{ "You are in a field of pineapple.",
- 154, 208, 210, 110, 77, 0, 0, 0,
+ { 154, 208, 210, 110, 77, 0, 0, 0 },
"The sharp leaves are cutting me to ribbons. There is a road **+.*\n" },
{ "You are in a coconut grove.",
- 112, 209, 110, 211, 77, 0, 0, 0,
+ { 112, 209, 110, 211, 77, 0, 0, 0 },
"There is a field of something **+.*\n" },
{ "You are on the edge of a kiwi and pineapple field.",
- 111, 152, 155, 110, 77, 0, 0, 0,
+ { 111, 152, 155, 110, 77, 0, 0, 0 },
"An irrigation ditch separates the two fields here. There is a road **+.*\n" },
{ "This is a dirt road.",
- 205, 210, 212, 111, 77, 0, 0, 0,
+ { 205, 210, 212, 111, 77, 0, 0, 0 },
"The road runs - and - here. It is very dark in the forest.**\n" },
{ "You are in a palm grove.",
- 206, 211, 112, 213, 77, 0, 0, 0,
+ { 206, 211, 112, 213, 77, 0, 0, 0 },
"There are trees all around us.****\n" },
{ "You are on the edge of a small clearing.",
- 157, 113, 157, 157, 79, 0, 0, 0,
+ { 157, 113, 157, 157, 79, 0, 0, 0 },
"The ground is rather marshy here and the darkness is intense. A swarm of\n\
ravenous mosquitoes has descended upon you and has sent you quaking to your\n\
knees.****\n" },
{ "You are in the woods.",
- 158, 115, 215, 113, 79, 0, 0, 0,
+ { 158, 115, 215, 113, 79, 0, 0, 0 },
"You have walked a long way and found only spider webs. ****\n" },
{ "You are walking along the shore.",
- 115, 0, 214, 114, 86, 0, 0, 0,
+ { 115, 0, 214, 114, 86, 0, 0, 0 },
"You are now about 10 meters above the surf on a gently rising cliffside.**\n\
The land rises +. There is a beach far +.\n" },
{ "You are just inside the entrance to the sea cave.",
- 246, 114, 0, 0, 114, 1, 0, 0,
+ { 246, 114, 0, 0, 114, 1, 0, 0 },
"The sound of water dripping in darkness and the roar of the ocean just outside\n\
create a very unwelcoming atmosphere inside this cave. Only on rare occasions\n\
such as this is it possible to enter the forbidden catacombs... The cave\n\
continues -.***\n" },
{ "You are in a secret nook beside the road.",
- 115, 159, 162, 91, 79, 0, 0, 0,
+ { 115, 159, 162, 91, 79, 0, 0, 0 },
"This little thicket is hidden from the road in the shadows of the forest.\n\
From here we have a clear view of any traffic along the road. A great hollow\n\
tree stuffed with something is nearby. The road is +.***\n" },
{ "You are on the coast road.",
- 215, 214, 0, 115, 86, 0, 0, 0,
+ { 215, 214, 0, 115, 86, 0, 0, 0 },
"The road turns abruptly - here, wandering deeper into the black forest.***\n" },
{ "You are on a dirt road.",
- 216, 116, 113, 141, 79, 0, 0, 0,
+ { 216, 116, 113, 141, 79, 0, 0, 0 },
"We are walking through a tunnel of unfriendly trees and shrubs. The tall\n\
ones bend over the roadway and reach down with their branches to grab us.\n\
Broad leafed plants at the roadside whisper in the darkness. Something\n\
just darted across the road and into the bushes *+. Let's go *-.\n" },
{ "You have discovered a hidden thicket near the road.",
- 163, 142, 116, 106, 73, 0, 0, 0,
+ { 163, 142, 116, 106, 73, 0, 0, 0 },
"I would think it best to stay n the road. The forest seems very unfriendly\n\
at night. The road is **+.*\n" },
{ "You are in the living room.",
- 0, 117, 217, 218, 0, 0, 0, 0,
+ { 0, 117, 217, 218, 0, 0, 0, 0 },
"A decorative entry with fresh flowers and wall to wall carpeting leads into\n\
the living room here where a couch and two chairs converse with an end table.\n\
*The exit is +.* The bedroom is +.\n" },
{ "You are at the lagoon.",
- 118, 0, 167, 168, 81, 0, 0, 0,
+ { 118, 0, 167, 168, 81, 0, 0, 0 },
"A small beach here is deserted except for some fishing nets. It is very\n\
peaceful at the lagoon at night. The sound of native drums is carried on\n\
the night breeze. There are paths leading off into darkness +,\n\
*+, and +.\n" },
{ "You are at the lagoon.",
- 118, 0, 170, 166, 81, 0, 0, 0,
+ { 118, 0, 170, 166, 81, 0, 0, 0 },
"The grass near the water is moist with the refreshing evening dew. Far away,\n\
drums reverberate in the forest.** The path continues + and +.\n" },
{ "You are at the lagoon.",
- 118, 0, 166, 172, 81, 0, 0, 0,
+ { 118, 0, 166, 172, 81, 0, 0, 0 },
"The path meanders through shadows of tussocks of grass, ferns, and thorny\n\
bushes here and continues on **- and -.\n" },
{ "You are in the woods.",
- 219, 119, 220, 92, 81, 0, 0, 0,
+ { 219, 119, 220, 92, 81, 0, 0, 0 },
"There are plenty of ferns and thorny bushes here! Spider webs and probing\n\
branches snare us as we stumble along in the pitch black night.****\n" },
{ "You are on a dirt road.",
- 220, 167, 199, 119, 74, 0, 0, 0,
+ { 220, 167, 199, 119, 74, 0, 0, 0 },
"The road winds rather close to a large lagoon here and many sedges and tall\n\
loom in the darkness *+. The road continues - and -.\n" },
{ "You are in the woods beside the road.",
- 221, 120, 92, 222, 81, 0, 0, 0,
+ { 221, 120, 92, 222, 81, 0, 0, 0 },
"The forest grows darker +. The road is +.**\n" },
{ "The road crosses the lagoon here.",
- 222, 0, 120, 174, 81, 0, 0, 0,
+ { 222, 0, 120, 174, 81, 0, 0, 0 },
"Strange mists rising from the water engulf a rickety old enclosed bridge here.\n\
Spider webs catch our hair as we pass through its rotting timbers. I felt\n\
something drop on my neck. The road delves into the accursed forest\n\
**+ and +.\n" },
{ "You are in a coconut palm grove.",
- 223, 121, 224, 225, 82, 0, 0, 0,
-"The tall palms are planted about 30 feet apart and the stary sky is clearly\n\
+ { 223, 121, 224, 225, 82, 0, 0, 0 },
+"The tall palms are planted about 30 feet apart and the starry sky is clearly\n\
visible above. A low growing grass carpets the ground all around. The grove\n\
continues +.***\n" },
{ "You are walking along a dirt road.",
- 224, 176, 172, 121, 82, 0, 0, 0,
+ { 224, 176, 172, 121, 82, 0, 0, 0 },
"You are near misty patch of the roadway **+. The road continues -.\n" },
{ "You are on a dirt road.",
- 225, 177, 121, 226, 82, 0, 0, 0,
+ { 225, 177, 121, 226, 82, 0, 0, 0 },
"The road turns abruptly - here, splitting a grove of palm trees.* In the\n\
starlight I can also discern that the road continues - toward the lagoon.*\n" },
{ "You are on a trail running around the lagoon.",
- 172, 0, 0, 122, 82, 0, 0, 0,
+ { 172, 0, 0, 122, 82, 0, 0, 0 },
"The dark waters brush the trail here and the path crosses an old bridge\n\
+. There is deep water + and +. The trail continues -.\n" },
{ "This is the mouth of the lagoon.",
- 175, 0, 122, 227, 82, 0, 0, 0,
+ { 175, 0, 122, 227, 82, 0, 0, 0 },
"The coral reef wraps around a natural bay here to create a wide lagoon which\n\
winds tortuously inland.** A trail goes around the lagoon +.\n\
The beach is -.\n" },
{ "You are in a dry stream bed.",
- 0, 125, 0, 0, 84, 0, 0, 0,
+ { 0, 125, 0, 0, 84, 0, 0, 0 },
"The dry wash drains over a tall precipice here into a turbid morass below. The\n\
most noisome stench imaginable is wafting up to defile our nostrils. Above,\n\
the blackness is intense and a strange mist engulfs the island.* Let's go\n\
-.**\n" },
{ "You are on a dirt path along the wash.",
- 0, 128, 125, 228, 84, 0, 0, 0,
+ { 0, 128, 125, 228, 84, 0, 0, 0 },
"The trail winds along the gravel wash and delves into the forest ***+.\n" },
{ "The thermal pools flow into a stream here.",
- 127, 0, 229, 126, 84, 0, 0, 0,
+ { 127, 0, 229, 126, 84, 0, 0, 0 },
"The gurgling hot waters pour over boulders into a swiftly flowing\n\
stream **+. The pools are +.\n" },
{ "You are at the entrance to a cave.",
- 128, 230, 126, 0, 84, 0, 0, 0,
+ { 128, 230, 126, 0, 84, 0, 0, 0 },
"A torch lights the entrance to the cave. Deep inside I can see shadows moving.\n\
A path goes + from here. The entrance is +.**\n" },
{ "You are in the woods.",
- 182, 229, 182, 127, 84, 0, 0, 0,
+ { 182, 229, 182, 127, 84, 0, 0, 0 },
"Thorns tangle your every effort to proceed.* The sound of rushing water is\n\
+.**\n" },
{ "You are walking along the beach.",
- 139, 129, 184, 0, 99, 0, 0, 0,
+ { 139, 129, 184, 0, 99, 0, 0, 0 },
"Some dunes here progress inland and make it impossible to get very far in that\n\
direction. The beach continues - and -.* The ocean is +.\n" },
{ "You are in the dunes.",
- 183, 101, 184, 129, 87, 0, 0, 0,
+ { 183, 101, 184, 129, 87, 0, 0, 0 },
"The endless rolling and pitching sand dunes are enough to make one very queasy!\n\
The sand is cool and the stars are bright at the ocean. The only way I'm going\n\
is ***+.\n" },
{ "This is a lousy beach.",
- 130, 0, 0, 0, 87, 0, 0, 0,
+ { 130, 0, 0, 0, 87, 0, 0, 0 },
"Volcanic and viciously sharp bitted grains of sand here bite like cold steel\n\
into my tender feet. I refuse to continue on. Let's get out of here. The\n\
beach is better +.***\n" },
{ "You are in a field of sparse ferns.",
- 131, 185, 187, 130, 87, 0, 0, 0,
+ { 131, 185, 187, 130, 87, 0, 0, 0 },
"The lava rock outcroppings here will support few plants. There is more \n\
vegetation +.** The ocean is +.\n" },
{ "You are in the woods.",
- 131, 131, 137, 131, 87, 0, 0, 0,
+ { 131, 131, 137, 131, 87, 0, 0, 0 },
"Young trees and tall shrubs grow densely together here.\n\
They grow thicker **+.*\n" },
{ "The canyon is no wider than a foot here.",
- 0, 0, 0, 132, 0, 0, 0, 0,
+ { 0, 0, 0, 132, 0, 0, 0, 0 },
"The freshet is gushing through the narrow trough, but the canyon has grown\n\
too narrow to follow it any farther.*** I guess we'll have to go -.\n" },
{ "You are in a narrow part of the canyon.",
- 0, 0, 133, 232, 76, 0, 0, 0,
+ { 0, 0, 133, 232, 76, 0, 0, 0 },
"The two sheer sides are no more than a few meters apart here. There is a stone\n\
door in the wall +. The gravelly floor runs with tiny rivulets seeping \n\
from the ground itself.* The canyon continues - and -.\n" },
{ "You are in the drawing room.",
- 0, 134, 0, 0, 0, 0, 0, 0,
+ { 0, 134, 0, 0, 0, 0, 0, 0 },
"Exquisitely decorated with plants and antique furniture of superb\n\
craftsmanship, the parlor reflects its owners impeccable taste. The tropical\n\
night air pours in through open shutters *+. There doesn't seem \n\
to be anybody around. A large immaculate oaken desk is visible in the\n\
study and it even has a old fashioned telephone to complete the decor.**\n" },
{ "You are in a palm grove.",
- 135, 191, 233, 191, 88, 0, 0, 0,
+ { 135, 191, 233, 191, 88, 0, 0, 0 },
"Grassy rows of dew covered palms stretch as far as I can see.**\n\
There is a road +.*\n" },
{ "You are on a dirt road.",
- 136, 233, 234, 135, 88, 0, 0, 0,
+ { 136, 233, 234, 135, 88, 0, 0, 0 },
"The road winds through a coconut palm grove here. It continues on - \n\
and -.**\n" },
{ "The road leads to several large buildings here.",
- 235, 136, 236, 237, 88, 0, 0, 0,
+ { 235, 136, 236, 237, 88, 0, 0, 0 },
"There is a lighted clubhouse +,* a large barn and stable +, and a\n\
garage of similar construct to the barn +.\n" },
{ "This part of the beach is impassable.",
- 0, 138, 0, 0, 96, 0, 0, 0,
+ { 0, 138, 0, 0, 96, 0, 0, 0 },
"The see is calm tonight. The beach goes *-.**\n" },
{ "You are in the gardens.",
- 195, 140, 197, 138, 96, 0, 0, 0,
+ { 195, 140, 197, 138, 96, 0, 0, 0 },
"Dew beaded grass sparkles in the moonlight. Tiny lamps beside the path light\n\
the way to the ocean ***+.\n" },
{ "You are in the gardens.",
- 140, 183, 197, 139, 99, 0, 0, 0,
+ { 140, 183, 197, 139, 99, 0, 0, 0 },
"Beautiful flowers and shrubs surround a lighted goldfish pond.****\n" },
{ "You are on a stone walk in the garden.",
- 195, 196, 238, 140, 99, 0, 0, 0,
+ { 195, 196, 238, 140, 99, 0, 0, 0 },
"The walk leads to a road **+.*\n" },
{ "You are in the forest near the road.",
- 198, 141, 216, 198, 73, 0, 0, 0,
+ { 198, 141, 216, 198, 73, 0, 0, 0 },
"There are many thorny bushes here!****\n" },
{ "You are at a fork in the road.",
- 239, 146, 141, 170, 73, 0, 0, 0,
+ { 239, 146, 141, 170, 73, 0, 0, 0 },
"Two roads come together in the darkness here. One runs -,* the other \n\
runs - and -.\n" },
{ "You are on a dirt path around the lagoon.",
- 170, 147, 146, 0, 74, 0, 0, 0,
-"The still waters reflect bending palms and a stary sky. It looks like\n\
+ { 170, 147, 146, 0, 74, 0, 0, 0 },
+"The still waters reflect bending palms and a starry sky. It looks like\n\
the path runs into a clearing +. The path continues -.**\n" },
{ "You are drowning in the lagoon.",
- 201, 201, 147, 201, 74, 0, 0, 0,
+ { 201, 201, 147, 201, 74, 0, 0, 0 },
"I suggest you get out before you become waterlogged.****\n" },
{ "You are in a coconut palm grove.",
- 202, 148, 203, 204, 77, 0, 0, 0,
+ { 202, 148, 203, 204, 77, 0, 0, 0 },
"****\n" },
{ "You are in a palm grove.",
- 202, 149, 205, 148, 77, 0, 0, 0,
+ { 202, 149, 205, 148, 77, 0, 0, 0 },
"****\n" },
{ "You are in a palm grove.",
- 202, 150, 148, 206, 77, 0, 0, 0,
+ { 202, 150, 148, 206, 77, 0, 0, 0 },
"****\n" },
{ "You are on a dirt road.",
- 203, 155, 212, 149, 77, 0, 0, 0,
+ { 203, 155, 212, 149, 77, 0, 0, 0 },
"*This road ends here at a palm grove but continues on - for quite\n\
some way.**\n" },
{ "You are in a coconut palm grove.",
- 204, 156, 150, 213, 77, 0, 0, 0,
+ { 204, 156, 150, 213, 77, 0, 0, 0 },
"****\n" },
{ "You are in a coconut grove.",
- 151, 219, 208, 209, 77, 0, 0, 0,
+ { 151, 219, 208, 209, 77, 0, 0, 0 },
"*The grove ends +.**\n" },
{ "You are in a coconut grove.",
- 152, 207, 239, 151, 77, 0, 0, 0,
+ { 152, 207, 239, 151, 77, 0, 0, 0 },
"**There is a dirt road +.*\n" },
{ "You are in a coconut grove.",
- 153, 207, 151, 211, 77, 0, 0, 0,
+ { 153, 207, 151, 211, 77, 0, 0, 0 },
"****\n" },
{ "This is a dirt road.",
- 205, 239, 212, 154, 77, 0, 0, 0,
+ { 205, 239, 212, 154, 77, 0, 0, 0 },
"The road continues - and -.**\n" },
{ "You are in a coconut grove.",
- 153, 209, 153, 213, 77, 0, 0, 0,
+ { 153, 209, 153, 213, 77, 0, 0, 0 },
"****\n" },
{ "You are in the woods near the road.",
- 205, 210, 212, 155, 77, 0, 0, 0,
+ { 205, 210, 212, 155, 77, 0, 0, 0 },
"There are many thorny bushes here!****\n" },
{ "You are in a coconut grove.",
- 213, 213, 156, 234, 88, 0, 0, 0,
+ { 213, 213, 156, 234, 88, 0, 0, 0 },
"***The grove ends in a clearing +.\n" },
{ "You are walking along some high cliffs.",
- 162, 0, 0, 159, 86, 0, 0, 0,
+ { 162, 0, 0, 159, 86, 0, 0, 0 },
"The island bends sharply + here with high cliffs -\n\
and -. The cliffs are lower +.\n" },
{ "You are at the coast road turn around.",
- 0, 162, 0, 158, 90, 0, 0, 0,
+ { 0, 162, 0, 158, 90, 0, 0, 0 },
"The coast road ends here in a lookout with a view of the ocean.\n\
Far below, the waves crash against the rocks.\n\
****\n" },
{ "You are in the woods near the road.",
- 216, 163, 216, 198, 79, 0, 257, 0,
+ { 216, 163, 216, 198, 79, 0, 257, 0 },
"These thorny bushes are killing me.****\n" },
{ "You are in the kitchen.",
- 0, 0, 0, 165, 0, 0, 0, 0,
+ { 0, 0, 0, 165, 0, 0, 0, 0 },
"A small gas stove and a refrigerator are all the only appliances here. The\n\
gas oven has been left on and the whole room is reeking with natural gas.\n\
One spark from a match and.... The door out is ***+.\n" },
{ "You are in the bedroom.",
- 0, 0, 165, 0, 0, 0, 0, 0,
+ { 0, 0, 165, 0, 0, 0, 0, 0 },
"A soft feather comforter on top of layers of Answer blankets make this a very\n\
luxurious place to sleep indeed. There are also some end tables and a dresser\n\
here.** The living room is +.*\n" },
{ "You are in the woods.",
- 207, 169, 220, 221, 81, 0, 0, 0,
+ { 207, 169, 220, 221, 81, 0, 0, 0 },
"The darkness is intense, but there seems to be a clearing +.***\n" },
{ "You are in the woods near the road.",
- 219, 170, 239, 169, 81, 0, 0, 0,
+ { 219, 170, 239, 169, 81, 0, 0, 0 },
"*As far as I can tell, there are two roads + and +.*\n" },
{ "You are in the woods.",
- 207, 171, 219, 222, 81, 0, 0, 0,
+ { 207, 171, 219, 222, 81, 0, 0, 0 },
"The spider webs thin out and the forest is clearer +.***\n" },
{ "You are on the lagoon's inland finger.",
- 0, 172, 171, 172, 81, 0, 0, 0,
+ { 0, 172, 171, 172, 81, 0, 0, 0 },
"It is impossible to follow the lagoon any farther inland because of sharp\n\
and very painful sedges.* The road is +.**\n" },
{ "You are in a grassy coconut grove.",
- 240, 173, 224, 241, 82, 0, 0, 0,
+ { 240, 173, 224, 241, 82, 0, 0, 0 },
"The tall palms provide a ghostly canopy for the sandy ground covering.****\n" },
{ "You are near the lagoon's inland finger.",
- 0, 174, 0, 173, 82, 0, 0, 0,
+ { 0, 174, 0, 173, 82, 0, 0, 0 },
"Very sharp sedges make it impossible to follow the lagoon any farther inland.\n\
*There is a road +.**\n" },
{ "You are on a dirt road.",
- 241, 175, 173, 226, 82, 0, 0, 0,
+ { 241, 175, 173, 226, 82, 0, 0, 0 },
"The road winds through a coconut grove here and continues - and -.**\n" },
{ "You are in the woods near the road.",
- 226, 226, 175, 226, 82, 0, 0, 0,
+ { 226, 226, 175, 226, 82, 0, 0, 0 },
"**The road is +.*\n" },
{ "This is a beach?",
- 227, 227, 177, 0, 82, 0, 0, 0,
+ { 227, 227, 177, 0, 82, 0, 0, 0 },
"Hard jagged rocks that pierce with every footstep hardly comprise a beach.**\n\
Let's go -.*\n" },
{ "The trail is lost in the woods here.",
- 241, 241, 179, 241, 84, 0, 0, 0,
+ { 241, 241, 179, 241, 84, 0, 0, 0 },
"The trail goes **-.*\n" },
{ "You are on the bank of a stream.",
- 182, 0, 242, 180, 84, 0, 0, 0,
+ { 182, 0, 242, 180, 84, 0, 0, 0 },
"The stream falls over several small boulders here and continues on **-.*\n" },
{ "You are just inside the cave.",
- 181, 267, 0, 0, 0, 0, 0, 0,
+ { 181, 267, 0, 0, 0, 0, 0, 0 },
"A steamy hot breath is belching from the depths of the earth within.* The\n\
cave continues -.**\n" },
{ "You are just inside the cave entrance.",
- 274, 0, 0, 0, 0, 0, 0, 0,
+ { 274, 0, 0, 0, 0, 0, 0, 0 },
"The air is hot and sticky inside. The cave continues -. There is a \n\
stone door in the wall +. A wooden sign in the dust warns in old elven\n\
runes, \"GSRF KDIRE NLVEMP!\".**\n" },
{ "You are at the edge of a huge chasm.",
- 0, 0, 189, 0, 76, 0, 0, 0,
+ { 0, 0, 189, 0, 76, 0, 0, 0 },
"Several hundred feet down I can see the glimmer of placid water. The\n\
rivulets drain over the edge and trickle down into the depths. It is \n\
impossible to climb down.** The canyon continues -.*\n" },
{ "You are on a dirt road.",
- 192, 241, 240, 191, 88, 0, 0, 0,
+ { 192, 241, 240, 191, 88, 0, 0, 0 },
"The road winds through a coconut grove here. The road continues on into the\n\
shadows - and -.**\n" },
{ "You are in a coconut palm grove near the road.",
- 193, 233, 213, 192, 88, 0, 0, 0,
+ { 193, 233, 213, 192, 88, 0, 0, 0 },
"***The road is +.\n" },
{ "You are at the clubhouse.",
- 0, 193, 0, 0, 0, 0, 0, 0,
+ { 0, 193, 0, 0, 0, 0, 0, 0 },
"The clubhouse is built over the most inland part of the lagoon. Tropical\n\
bananas and fragrant frangipani grow along the grassy shore. Walking across\n\
the short wooden bridge, we enter. Along one wall is a bar crowded with people.\n\
The restaurant and disco dance floor are filled to capacity. A rock group\n\
electrocutes itself to the satisfaction of the audience.****\n" },
{ "You are in the stables.",
- 0, 0, 0, 193, 0, 0, 0, 0,
+ { 0, 0, 0, 193, 0, 0, 0, 0 },
"Neighing horses snacking on hay and oats fill the stalls on both sides of\n\
the barn. It is rather warm in here but that is not the most offensive\n\
part.****\n" },
{ "You are in the old garage.",
- 0, 0, 193, 0, 0, 0, 0, 0,
+ { 0, 0, 193, 0, 0, 0, 0, 0 },
"This is an old wooden building of the same vintage as the stables. Beneath\n\
a sagging roof stand gardening tools and greasy rags. Parked in the center\n\
is an underpowered Plymouth Volare' with a red and white striped golf cart\n\
roof. ****\n" },
{ "You are on a dirt road.",
- 197, 197, 243, 197, 85, 0, 0, 0,
+ { 197, 197, 243, 197, 85, 0, 0, 0 },
"The road leads to a formal garden laced with lighted stone walks and tropical\n\
flowers and trees.** The road continues -. A walk leads -.\n" },
{ "You are on a dirt road.",
- 210, 199, 198, 220, 73, 0, 0, 0,
+ { 210, 199, 198, 220, 73, 0, 0, 0 },
"The road runs - and -.**\n" },
{ "You are in a coconut grove near the road.",
- 234, 223, 234, 233, 88, 0, 0, 0,
+ { 234, 223, 234, 233, 88, 0, 0, 0 },
"***The road is +.\n" },
{ "You are on a dirt road.",
- 233, 225, 223, 226, 82, 0, 0, 0,
+ { 233, 225, 223, 226, 82, 0, 0, 0 },
"The road continues - and -.**\n" },
{ "The stream plummets over a cliff here.",
- 182, 0, 0, 229, 84, 0, 0, 0,
+ { 182, 0, 0, 229, 84, 0, 0, 0 },
"Falling 10 agonizing meters into darkness, only droplets of the stream must\n\
be left to dance off the floor below. There is no way down, even with a\n\
strong rope. ****\n" },
{ "You are on a dirt road.",
- 0, 0, 244, 238, 85, 0, 0, 0,
+ { 0, 0, 244, 238, 85, 0, 0, 0 },
"**The road continues - and -.\n" },
{ "You are on a dirt road.",
- 0, 245, 0, 243, 88, 0, 0, 0,
+ { 0, 245, 0, 243, 88, 0, 0, 0 },
"*The road continues -* and -.\n" },
{ "You are on a dirt road.",
- 244, 234, 213, 136, 88, 0, 0, 0,
+ { 244, 234, 213, 136, 88, 0, 0, 0 },
"The road goes -* and *-.\n" },
{ "You are in a low passage.",
- 247, 160, 0, 0, 0, 0, 0, 0,
-"The ceiling here sparkles with iridiscent gems and minerals. Colorful starfish\n\
+ { 247, 160, 0, 0, 0, 0, 0, 0 },
+"The ceiling here sparkles with iridescent gems and minerals. Colorful starfish\n\
and sea anemones cling to the slippery walls and floor. The passage continues\n\
+.***\n" },
{ "The walls are very close together here.",
- 248, 246, 0, 0, 0, 0, 0, 0,
+ { 248, 246, 0, 0, 0, 0, 0, 0 },
"I can barely squeeze through the jagged opening. Slimy sea weeds provide\n\
no footing at all. This tunnel seems to be an ancient lava tube. There is\n\
a large room +.***\n" },
{ "You are in the cathedral room.",
- 249, 247, 250, 251, 0, 0, 0, 0,
+ { 249, 247, 250, 251, 0, 0, 0, 0 },
"Your light casts ghostly shadows on the walls but cannot pierce the \n\
engulfing darkness overhead. The sound of water dripping echoes in the void.\n\
*I can see no passages leading out of this room.*** \n" },
{ "You are walking through a very round tunnel.",
- 252, 248, 0, 0, 252, 1, 0, 0,
+ { 252, 248, 0, 0, 252, 1, 0, 0 },
"The round walls of this tunnel are amazingly smooth to the touch. A little\n\
trickle of water flows down the center. The tunnel climbs steadily +.\n\
There is a large room +.**\n" },
{ "You are in the cathedral anteroom.",
- 0, 0, 0, 248, 253, 1, 0, 0,
+ { 0, 0, 0, 248, 253, 1, 0, 0 },
"This small chamber with a flat stone floor is to one side of the cathedral \n\
room. We appear to be at the bottom of a tall narrow shaft. There are many \n\
puddles of water here. A staircase hewn from solid rock and black lava \n\
leads up.*** The cathedral room is -.\n" },
{ "You are in a wide chamber.",
- 0, 0, 248, 254, 0, 0, 0, 0,
+ { 0, 0, 248, 254, 0, 0, 0, 0 },
"Water is sprinkling from the ceiling here. A shallow pool populated by a \n\
myriad of blind white creatures sparkles in your light. Tiny shrimp and\n\
crabs scurry away, frightened by the blinding rays.** The cave \n\
continues + and +.\n" },
{ "You are at the top of a sloping passage.",
- 0, 249, 255, 256, 257, 1, 249, 0,
+ { 0, 249, 255, 256, 257, 1, 249, 0 },
"There is much algae growing here, both green and brown specimens. I suspect\n\
that we are near the high tide zone, but no light can get in here. The walls\n\
glisten with shiny minerals.** A hallway here runs + and -.\n" },
{ "You are in an elaborately tiled room.",
- 0, 0, 258, 0, 0, 0, 250, 0,
+ { 0, 0, 258, 0, 0, 0, 250, 0 },
"Large colorful tiles plate the floor and walls. The ceiling is a mosaic\n\
of gems set in gold. Hopefully it is only our footsteps that are echoing in\n\
this hollow chamber.** The room continues -. A stone staircase leads\n\
down.*\n" },
{ "You are at a dead end.",
- 0, 0, 251, 0, 0, 0, 0, 0,
+ { 0, 0, 251, 0, 0, 0, 0, 0 },
"The walls here are alive with dark mussels. They click their shells menacingly\n\
if we disturb them.** The only exit is +.*\n" },
{ "The tunnel is very low here.",
- 0, 0, 259, 252, 0, 0, 0, 0,
+ { 0, 0, 259, 252, 0, 0, 0, 0 },
"You practically have to crawl on your knees to pass through this opening. The\n\
air is stiflingly damp, but you can't hear any sounds of water dripping.**\n\
The crawlspace continues -. The tunnel seems wider +.\n" },
{ "This is the supply room.",
- 0, 0, 252, 0, 0, 0, 0, 0,
+ { 0, 0, 252, 0, 0, 0, 0, 0 },
"Picks and shovels line the walls here, as well as hard hats, boxes of\n\
dynamite, and a cartload of very high grade gold and silver ore.** \n\
A tunnel leads off +.*\n" },
{ "You have found a secret entrance to the catacombs",
- 0, 0, 0, 0, 216, 1, 252, 0,
+ { 0, 0, 0, 0, 216, 1, 252, 0 },
"Below is a wet, seaweed covered floor. Above is a way out.****\n" },
{ "You are in the catacombs.",
- 0, 0, 260, 253, 0, 0, 0, 0,
+ { 0, 0, 260, 253, 0, 0, 0, 0 },
"Ornate tombs and piles of treasure line the walls. Long spears with many\n\
blades, fine swords and coats of mail, heaps of coins, jewelry, pottery, \n\
and golden statues are tribute past kings and queens.** The catacombs\n\
continue - and -.\n" },
{ "You are crawling on your stomach.",
- 0, 0, 261, 255, 0, 0, 0, 0,
+ { 0, 0, 261, 255, 0, 0, 0, 0 },
"The passage is quite narrow and jagged, but the rock is no longer lava.\n\
It appears to be a form of granite.** The crawlspace continues -, \n\
but I would just as soon go -.\n" },
{ "You are in the Sepulcher.",
- 0, 0, 0, 258, 0, 0, 0, 0,
+ { 0, 0, 0, 258, 0, 0, 0, 0 },
"A single tomb is here. Encrusted with diamonds and opals, and secured with \n\
straps of a very hard, untarnished silver, this tomb must be of a great king.\n\
Vases overflowing with gold coins stand nearby. A line of verse on the wall\n\
reads, \"Three he made and gave them to his daughters.\"****\n" },
{ "The passage is wider here.",
- 0, 0, 0, 259, 0, 0, 262, 0,
+ { 0, 0, 0, 259, 0, 0, 262, 0 },
"A ladder goes down into darkness here.*** A small crawlspace goes -.\n" },
{ "You are at the bottom of a ladder.",
- 0, 0, 0, 0, 261, 1, 263, 0,
+ { 0, 0, 0, 0, 261, 1, 263, 0 },
"This is a narrow platform to rest on before we continue either up or down this\n\
rickety wooden ladder.****\n" },
{ "You are standing in several inches of water.",
- 264, 0, 265, 266, 262, 1, 0, 0,
+ { 264, 0, 265, 266, 262, 1, 0, 0 },
"This seems to be a working mine. Many different tunnels wander off following\n\
glowing veins of precious metal. The floor is flooded here since we must\n\
be nearly at sea level. A ladder leads up.****\n" },
{ "The tunnel here is blocked by broken rocks.",
- 0, 263, 0, 0, 0, 0, 0, 0,
+ { 0, 263, 0, 0, 0, 0, 0, 0 },
"The way is blocked, but if you had some dynamite, we might be able to blast our\n\
way through.* The passage goes -.**\n" },
{ "The tunnel is too flooded to proceed.",
- 0, 0, 0, 263, 0, 0, 0, 0,
+ { 0, 0, 0, 263, 0, 0, 0, 0 },
"Hidden shafts could swallow us if we tried to continue on down this tunnel.\n\
The flooding is already up to my waist. Large crystals overhead shimmer\n\
rainbows of reflected light.*** Let's go -.\n" },
{ "The mine is less flooded here.",
- 0, 0, 263, 0, 0, 0, 0, 0,
+ { 0, 0, 263, 0, 0, 0, 0, 0 },
"A meandering gold laden vein of quartz and blooming crystals of diamonds\n\
and topaz burst from the walls of the cave. A passage goes -.***\n" },
{ "You are inside the cave.",
- 230, 268, 0, 0, 0, 0, 0, 0,
+ { 230, 268, 0, 0, 0, 0, 0, 0 },
"A hot steam swirls around our heads, and the walls are warm to the touch.\n\
The trail winds - and -.**\n" },
{ "You are in a rather large chamber.",
- 267, 0, 0, 269, 0, 0, 269, 0,
+ { 267, 0, 0, 269, 0, 0, 269, 0 },
"Beds of ferns and palm leaves make several cozy nests along the walls. In the\n\
center of the room is a throne of gold and silver.*** A passageway leads\n\
down and +.\n" },
{ "You are walking along the edge of a huge abyss.",
- 0, 0, 268, 0, 268, 1, 270, 0,
+ { 0, 0, 268, 0, 268, 1, 270, 0 },
"Steam is rising in great clouds from the immeasurable depths. A very narrow\n\
trail winds down.** There is a tunnel -.*\n" },
{ "You are on the edge of a huge abyss.",
- 0, 0, 0, 0, 269, 1, 271, 0,
+ { 0, 0, 0, 0, 269, 1, 271, 0 },
"The trail winds farther down.****\n" },
{ "You are winding your way along the abyss.",
- 0, 0, 0, 0, 270, 1, 272, 0,
+ { 0, 0, 0, 0, 270, 1, 272, 0 },
"The trail continues up and down.****\n" },
{ "You are on a wide shelf near the steamy abyss.",
- 0, 273, 0, 0, 271, 1, 0, 0,
+ { 0, 273, 0, 0, 271, 1, 0, 0 },
"The stifling hot cave seems even hotter to me, staring down into this misty \n\
abyss. A trail winds up.* A passageway leads -.**\n" },
{ "You are in a wide tunnel leading to a fuming abyss.",
- 272, 274, 0, 0, 0, 0, 0, 0,
+ { 272, 274, 0, 0, 0, 0, 0, 0 },
"The passageway winds through many beautiful formations of crystals and\n\
sparkling minerals. The tunnel continues - and -.**\n" },
{ "You are in a tunnel.",
- 273, 231, 0, 0, 0, 0, 0, 0,
+ { 273, 231, 0, 0, 0, 0, 0, 0 },
"It is very warm in here. The smell of steam and hot rocks permeates the place.\n\
The cave continues - and -.**\n" },
{ "You are at the bottom of a pit.",
- 0, 0, 0, 0, 232, 0, 0, 0,
+ { 0, 0, 0, 0, 232, 0, 0, 0 },
"At the top of the pit, a single star can be seen in the night sky. There\n\
doesn't appear to be any way to get out without a rope. I don't remember\n\
how we got here.****\n" },
diff --git a/games/battlestar/nightobjs.c b/games/battlestar/nightobjs.c
index ecb7a42a660..4243a6b1b13 100644
--- a/games/battlestar/nightobjs.c
+++ b/games/battlestar/nightobjs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nightobjs.c,v 1.3 1997/08/24 21:55:12 deraadt Exp $ */
+/* $OpenBSD: nightobjs.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $ */
/* $NetBSD: nightobjs.c,v 1.3 1995/03/21 15:07:46 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)nightobjs.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: nightobjs.c,v 1.3 1995/03/21 15:07:46 cgd Exp $";
+static char rcsid[] = "$OpenBSD: nightobjs.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -103,5 +103,5 @@ struct objs nightobjs[] = {
{ 249, FOOT },
{ 250, FOOT },
{ 93, PAPAYAS },
- 0
+ { 0 }
};
diff --git a/games/battlestar/parse.c b/games/battlestar/parse.c
index 12092b62601..3d39c239924 100644
--- a/games/battlestar/parse.c
+++ b/games/battlestar/parse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.c,v 1.4 1997/08/24 21:55:12 deraadt Exp $ */
+/* $OpenBSD: parse.c,v 1.5 1998/09/13 01:30:33 pjanzen Exp $ */
/* $NetBSD: parse.c,v 1.3 1995/03/21 15:07:48 cgd Exp $ */
/*
@@ -38,20 +38,16 @@
#if 0
static char sccsid[] = "@(#)parse.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: parse.c,v 1.3 1995/03/21 15:07:48 cgd Exp $";
+static char rcsid[] = "$OpenBSD: parse.c,v 1.5 1998/09/13 01:30:33 pjanzen Exp $";
#endif
#endif /* not lint */
#include "extern.h"
-int hash __P((char *));
-void install __P((struct wlist *));
-struct wlist *lookup __P((char *));
-
void
wordinit()
{
- register struct wlist *w;
+ struct wlist *w;
for (w = wlist; w->string; w++)
install(w);
@@ -59,9 +55,9 @@ wordinit()
int
hash(s)
- register char *s;
+ char *s;
{
- register hashval = 0;
+ int hashval = 0;
while (*s) {
hashval += *s++;
@@ -73,9 +69,9 @@ hash(s)
struct wlist *
lookup(s)
- char *s;
+ char *s;
{
- register struct wlist *wp;
+ struct wlist *wp;
for (wp = hashtab[hash(s)]; wp != NULL; wp = wp->next)
if (*s == *wp->string && strcmp(s, wp->string) == 0)
@@ -85,9 +81,9 @@ lookup(s)
void
install(wp)
- register struct wlist *wp;
+ struct wlist *wp;
{
- int hashval;
+ int hashval;
if (lookup(wp->string) == NULL) {
hashval = hash(wp->string);
@@ -100,17 +96,17 @@ install(wp)
void
parse()
{
- register struct wlist *wp;
- register n;
+ struct wlist *wp;
+ int n;
- wordnumber = 0; /* for cypher */
+ wordnumber = 0; /* for cypher */
for (n = 0; n <= wordcount; n++) {
if ((wp = lookup(words[n])) == NULL) {
wordvalue[n] = -1;
wordtype[n] = -1;
} else {
- wordvalue[n] = wp -> value;
- wordtype[n] = wp -> article;
+ wordvalue[n] = wp->value;
+ wordtype[n] = wp->article;
}
}
}
diff --git a/games/battlestar/room.c b/games/battlestar/room.c
index 5efd65943b1..94467523bd4 100644
--- a/games/battlestar/room.c
+++ b/games/battlestar/room.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: room.c,v 1.3 1997/08/24 21:55:13 deraadt Exp $ */
+/* $OpenBSD: room.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $ */
/* $NetBSD: room.c,v 1.3 1995/03/21 15:07:54 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)room.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: room.c,v 1.3 1995/03/21 15:07:54 cgd Exp $";
+static char rcsid[] = "$OpenBSD: room.c,v 1.4 1998/09/13 01:30:33 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,14 +47,14 @@ static char rcsid[] = "$NetBSD: room.c,v 1.3 1995/03/21 15:07:54 cgd Exp $";
void
writedes()
{
- int compass;
- register char *p;
- register c;
+ int compass;
+ char *p;
+ int c;
printf("\n\t%s\n", location[position].name);
if (beenthere[position] < 3) {
compass = NORTH;
- for (p = location[position].desc; c = *p++;)
+ for (p = location[position].desc; (c = *p++);)
if (c != '-' && c != '*' && c != '+')
putchar(c);
else {
@@ -68,8 +68,8 @@ writedes()
void
printobjs()
{
- register unsigned int *p = location[position].objects;
- register n;
+ unsigned int *p = location[position].objects;
+ int n;
printf("\n");
for (n = 0; n < NUMOFOBJECTS; n++)
@@ -79,159 +79,159 @@ printobjs()
void
whichway(here)
-struct room here;
+ struct room here;
{
- switch(direction) {
-
- case NORTH:
- left = here.west;
- right = here.east;
- ahead = here.north;
- back = here.south;
- break;
-
- case SOUTH:
- left = here.east;
- right = here.west;
- ahead = here.south;
- back = here.north;
- break;
-
- case EAST:
- left = here.north;
- right = here.south;
- ahead = here.east;
- back = here.west;
- break;
-
- case WEST:
- left = here.south;
- right = here.north;
- ahead = here.west;
- back = here.east;
- break;
+ switch (direction) {
+
+ case NORTH:
+ left = here.west;
+ right = here.east;
+ ahead = here.north;
+ back = here.south;
+ break;
+
+ case SOUTH:
+ left = here.east;
+ right = here.west;
+ ahead = here.south;
+ back = here.north;
+ break;
+
+ case EAST:
+ left = here.north;
+ right = here.south;
+ ahead = here.east;
+ back = here.west;
+ break;
+
+ case WEST:
+ left = here.south;
+ right = here.north;
+ ahead = here.west;
+ back = here.east;
+ break;
}
}
-char *
+char *
truedirec(way, option)
-int way;
-char option;
+ int way;
+ char option;
{
- switch(way) {
+ switch (way) {
+ case NORTH:
+ switch (direction) {
case NORTH:
- switch(direction) {
- case NORTH:
- return("ahead");
- case SOUTH:
- return(option == '+' ? "behind you" : "back");
- case EAST:
- return("left");
- case WEST:
- return("right");
- }
+ return ("ahead");
+ case SOUTH:
+ return (option == '+' ? "behind you" : "back");
+ case EAST:
+ return ("left");
+ case WEST:
+ return ("right");
+ }
+ case SOUTH:
+ switch (direction) {
+ case NORTH:
+ return (option == '+' ? "behind you" : "back");
case SOUTH:
- switch(direction) {
- case NORTH:
- return(option == '+' ? "behind you" : "back");
- case SOUTH:
- return("ahead");
- case EAST:
- return("right");
- case WEST:
- return("left");
- }
+ return ("ahead");
+ case EAST:
+ return ("right");
+ case WEST:
+ return ("left");
+ }
+ case EAST:
+ switch (direction) {
+ case NORTH:
+ return ("right");
+ case SOUTH:
+ return ("left");
case EAST:
- switch(direction) {
- case NORTH:
- return("right");
- case SOUTH:
- return("left");
- case EAST:
- return("ahead");
- case WEST:
- return(option == '+' ? "behind you" : "back");
- }
+ return ("ahead");
+ case WEST:
+ return (option == '+' ? "behind you" : "back");
+ }
+ case WEST:
+ switch (direction) {
+ case NORTH:
+ return ("left");
+ case SOUTH:
+ return ("right");
+ case EAST:
+ return (option == '+' ? "behind you" : "back");
case WEST:
- switch(direction) {
- case NORTH:
- return("left");
- case SOUTH:
- return("right");
- case EAST:
- return(option == '+' ? "behind you" : "back");
- case WEST:
- return("ahead");
- }
+ return ("ahead");
+ }
- default:
- printf("Error: room %d. More than four directions wanted.", position);
- return("!!");
- }
+ default:
+ printf("Error: room %d. More than four directions wanted.", position);
+ return ("!!");
+ }
}
void
newway(thisway)
-int thisway;
+ int thisway;
{
- switch(direction){
+ switch (direction) {
- case NORTH:
- switch(thisway){
- case LEFT:
- direction = WEST;
- break;
- case RIGHT:
- direction = EAST;
- break;
- case BACK:
- direction = SOUTH;
- break;
- }
+ case NORTH:
+ switch (thisway) {
+ case LEFT:
+ direction = WEST;
break;
- case SOUTH:
- switch(thisway){
- case LEFT:
- direction = EAST;
- break;
- case RIGHT:
- direction = WEST;
- break;
- case BACK:
- direction = NORTH;
- break;
- }
+ case RIGHT:
+ direction = EAST;
break;
- case EAST:
- switch(thisway){
- case LEFT:
- direction = NORTH;
- break;
- case RIGHT:
- direction = SOUTH;
- break;
- case BACK:
- direction = WEST;
- break;
- }
+ case BACK:
+ direction = SOUTH;
break;
- case WEST:
- switch(thisway){
- case LEFT:
- direction = SOUTH;
- break;
- case RIGHT:
- direction = NORTH;
- break;
- case BACK:
- direction = EAST;
- break;
- }
+ }
+ break;
+ case SOUTH:
+ switch (thisway) {
+ case LEFT:
+ direction = EAST;
+ break;
+ case RIGHT:
+ direction = WEST;
+ break;
+ case BACK:
+ direction = NORTH;
+ break;
+ }
+ break;
+ case EAST:
+ switch (thisway) {
+ case LEFT:
+ direction = NORTH;
+ break;
+ case RIGHT:
+ direction = SOUTH;
break;
- }
+ case BACK:
+ direction = WEST;
+ break;
+ }
+ break;
+ case WEST:
+ switch (thisway) {
+ case LEFT:
+ direction = SOUTH;
+ break;
+ case RIGHT:
+ direction = NORTH;
+ break;
+ case BACK:
+ direction = EAST;
+ break;
+ }
+ break;
+ }
}
diff --git a/games/battlestar/save.c b/games/battlestar/save.c
index a0ca3ae6984..b5a3b623937 100644
--- a/games/battlestar/save.c
+++ b/games/battlestar/save.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: save.c,v 1.6 1997/09/01 18:13:20 millert Exp $ */
+/* $OpenBSD: save.c,v 1.7 1998/09/13 01:30:33 pjanzen Exp $ */
/* $NetBSD: save.c,v 1.3 1995/03/21 15:07:57 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)save.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: save.c,v 1.3 1995/03/21 15:07:57 cgd Exp $";
+static char rcsid[] = "$OpenBSD: save.c,v 1.7 1998/09/13 01:30:33 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -47,11 +47,11 @@ static char rcsid[] = "$NetBSD: save.c,v 1.3 1995/03/21 15:07:57 cgd Exp $";
void
restore()
{
- char *home;
- char home1[PATH_MAX];
- register int n;
- int tmp;
- register FILE *fp;
+ char *home;
+ char home1[PATH_MAX];
+ int n;
+ int tmp;
+ FILE *fp;
home = getenv("HOME");
if (strlen(home) + 6 < sizeof(home1)) {
@@ -61,16 +61,13 @@ restore()
fprintf(stderr, "%s: %s\n", home1, strerror(ENAMETOOLONG));
return;
}
- setegid(egid);
if ((fp = fopen(home1, "r")) == NULL) {
- warn("can't open %s for reading", home1);
- setegid(getgid());
+ err(1, "can't open %s for reading", home1);
return;
}
- setegid(getgid());
fread(&WEIGHT, sizeof WEIGHT, 1, fp);
fread(&CUMBER, sizeof CUMBER, 1, fp);
- fread(&bclock, sizeof bclock, 1, fp);
+ fread(&ourclock, sizeof ourclock, 1, fp);
fread(&tmp, sizeof tmp, 1, fp);
location = tmp ? dayfile : nightfile;
for (n = 1; n <= NUMOFROOMS; n++) {
@@ -83,7 +80,7 @@ restore()
fread(notes, sizeof notes, 1, fp);
fread(&direction, sizeof direction, 1, fp);
fread(&position, sizeof position, 1, fp);
- fread(&btime, sizeof btime, 1, fp);
+ fread(&ourtime, sizeof ourtime, 1, fp);
fread(&fuel, sizeof fuel, 1, fp);
fread(&torps, sizeof torps, 1, fp);
fread(&carrying, sizeof carrying, 1, fp);
@@ -102,18 +99,20 @@ restore()
fread(&loved, sizeof loved, 1, fp);
fread(&pleasure, sizeof pleasure, 1, fp);
fread(&power, sizeof power, 1, fp);
- fread(&ego, sizeof ego, 1, fp);
+ /* Check the final read in case file was truncated */
+ if (fread(&ego, sizeof ego, 1, fp) < 1)
+ errx(1, "save file %s is truncated", home1);
fclose(fp);
}
void
save()
{
- char *home;
- char home1[PATH_MAX];
- register int n;
- int tmp;
- FILE *fp;
+ char *home;
+ char home1[PATH_MAX];
+ int n;
+ int tmp;
+ FILE *fp;
home = getenv("HOME");
if (strlen(home) + 6 < sizeof(home1)) {
@@ -123,17 +122,14 @@ save()
fprintf(stderr, "%s/Bstar: %s\n", home, strerror(ENAMETOOLONG));
return;
}
- setegid(egid);
if ((fp = fopen(home1, "w")) == NULL) {
warn("can't open %s for writing", home1);
- setegid(getgid());
return;
}
- setegid(getgid());
printf("Saved in %s.\n", home1);
fwrite(&WEIGHT, sizeof WEIGHT, 1, fp);
fwrite(&CUMBER, sizeof CUMBER, 1, fp);
- fwrite(&bclock, sizeof bclock, 1, fp);
+ fwrite(&ourclock, sizeof ourclock, 1, fp);
tmp = location == dayfile;
fwrite(&tmp, sizeof tmp, 1, fp);
for (n = 1; n <= NUMOFROOMS; n++) {
@@ -146,7 +142,7 @@ save()
fwrite(notes, sizeof notes, 1, fp);
fwrite(&direction, sizeof direction, 1, fp);
fwrite(&position, sizeof position, 1, fp);
- fwrite(&btime, sizeof btime, 1, fp);
+ fwrite(&ourtime, sizeof ourtime, 1, fp);
fwrite(&fuel, sizeof fuel, 1, fp);
fwrite(&torps, sizeof torps, 1, fp);
fwrite(&carrying, sizeof carrying, 1, fp);
@@ -166,5 +162,8 @@ save()
fwrite(&pleasure, sizeof pleasure, 1, fp);
fwrite(&power, sizeof power, 1, fp);
fwrite(&ego, sizeof ego, 1, fp);
+ fflush(fp);
+ if (ferror(fp))
+ warn("fwrite %s", home1);
fclose(fp);
}
diff --git a/games/battlestar/words.c b/games/battlestar/words.c
index 09fa97e8d76..7ed4bec783f 100644
--- a/games/battlestar/words.c
+++ b/games/battlestar/words.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: words.c,v 1.3 1997/08/24 21:55:14 deraadt Exp $ */
+/* $OpenBSD: words.c,v 1.4 1998/09/13 01:30:34 pjanzen Exp $ */
/* $NetBSD: words.c,v 1.3 1995/03/21 15:08:00 cgd Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)words.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: words.c,v 1.3 1995/03/21 15:08:00 cgd Exp $";
+static char rcsid[] = "$OpenBSD: words.c,v 1.4 1998/09/13 01:30:34 pjanzen Exp $";
#endif
#endif /* not lint */
@@ -209,5 +209,5 @@ struct wlist wlist[] = {
{ "move", 0, ADJS },
{ "make", 0, ADJS },
{ "to", 0, ADJS },
- 0
+ { 0 }
};