Patches from OpenBSD: add verbs "open"/"unlock" (essentially a no-op),
and "verbose"/"brief" (in verbose mode, always show long room descriptions), and synonyms "papaya" for "papayas" and "coconut" for "coconuts".
This commit is contained in:
parent
faf55ac40c
commit
31b523eee5
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: com6.c,v 1.16 2000/09/10 10:51:17 jsm Exp $ */
|
/* $NetBSD: com6.c,v 1.17 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)com6.c 8.2 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)com6.c 8.2 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: com6.c,v 1.16 2000/09/10 10:51:17 jsm Exp $");
|
__RCSID("$NetBSD: com6.c,v 1.17 2000/09/17 23:03:43 jsm Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -248,3 +248,37 @@ light()
|
||||||
} else
|
} else
|
||||||
puts("You're out of matches.");
|
puts("You're out of matches.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
dooropen()
|
||||||
|
{ /* synonyms = {open, unlock} */
|
||||||
|
while(wordtype[++wordnumber] == ADJS)
|
||||||
|
;
|
||||||
|
if (wordnumber <= wordcount && wordtype[wordnumber] == NOUNS
|
||||||
|
&& wordvalue[wordnumber] == DOOR) {
|
||||||
|
switch(position) {
|
||||||
|
case 189:
|
||||||
|
case 231:
|
||||||
|
if (location[189].north == 231)
|
||||||
|
puts("The door is already open.");
|
||||||
|
else
|
||||||
|
puts("The door does not budge.");
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
if (location[30].west == 25)
|
||||||
|
puts("The door is gone.");
|
||||||
|
else
|
||||||
|
puts("The door is locked tight.");
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
puts("That's one immovable door.");
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
puts("The door is already ajar.");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
puts("What door?");
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
puts("That doesn't open.");
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: cypher.c,v 1.13 2000/09/10 10:51:17 jsm Exp $ */
|
/* $NetBSD: cypher.c,v 1.14 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)cypher.c 8.2 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)cypher.c 8.2 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: cypher.c,v 1.13 2000/09/10 10:51:17 jsm Exp $");
|
__RCSID("$NetBSD: cypher.c,v 1.14 2000/09/17 23:03:43 jsm Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -293,6 +293,23 @@ cypher()
|
||||||
lflag = use();
|
lflag = use();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OPEN:
|
||||||
|
if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) {
|
||||||
|
int things;
|
||||||
|
things = 0;
|
||||||
|
for (n = 0; n < NUMOFOBJECTS; n++)
|
||||||
|
if (testbit(inven, n)) {
|
||||||
|
things++;
|
||||||
|
wordvalue[wordnumber + 1] = n;
|
||||||
|
dooropen();
|
||||||
|
}
|
||||||
|
wordnumber += 2;
|
||||||
|
if (!things)
|
||||||
|
puts("Nothing to open!");
|
||||||
|
} else
|
||||||
|
dooropen();
|
||||||
|
break;
|
||||||
|
|
||||||
case LOOK:
|
case LOOK:
|
||||||
if (!notes[CANTSEE] || testbit(inven, LAMPON) ||
|
if (!notes[CANTSEE] || testbit(inven, LAMPON) ||
|
||||||
testbit(location[position].objects, LAMPON)
|
testbit(location[position].objects, LAMPON)
|
||||||
|
@ -387,6 +404,16 @@ cypher()
|
||||||
free(rfilename);
|
free(rfilename);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VERBOSE:
|
||||||
|
verbose = 1;
|
||||||
|
printf("[Maximum verbosity]\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BRIEF:
|
||||||
|
verbose = 0;
|
||||||
|
printf("[Standard verbosity]\n");
|
||||||
|
break;
|
||||||
|
|
||||||
case FOLLOW:
|
case FOLLOW:
|
||||||
lflag = follow();
|
lflag = follow();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: extern.h,v 1.19 2000/09/09 09:37:58 jsm Exp $ */
|
/* $NetBSD: extern.h,v 1.20 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -187,6 +187,9 @@
|
||||||
#define BURY 1050
|
#define BURY 1050
|
||||||
#define JUMP 1051
|
#define JUMP 1051
|
||||||
#define KICK 1052
|
#define KICK 1052
|
||||||
|
#define OPEN 1053
|
||||||
|
#define VERBOSE 1054
|
||||||
|
#define BRIEF 1055
|
||||||
|
|
||||||
/* injuries */
|
/* injuries */
|
||||||
#define ARM 6 /* broken arm */
|
#define ARM 6 /* broken arm */
|
||||||
|
@ -284,6 +287,7 @@ extern unsigned int inven[NUMOFWORDS];
|
||||||
extern unsigned int wear[NUMOFWORDS];
|
extern unsigned int wear[NUMOFWORDS];
|
||||||
extern char beenthere[NUMOFROOMS + 1];
|
extern char beenthere[NUMOFROOMS + 1];
|
||||||
extern char injuries[NUMOFINJURIES];
|
extern char injuries[NUMOFINJURIES];
|
||||||
|
extern int verbose;
|
||||||
|
|
||||||
extern const char *username;
|
extern const char *username;
|
||||||
|
|
||||||
|
@ -317,6 +321,7 @@ int cypher __P((void));
|
||||||
void die __P((void)) __attribute__((__noreturn__));
|
void die __P((void)) __attribute__((__noreturn__));
|
||||||
void diesig __P((int)) __attribute__((__noreturn__));
|
void diesig __P((int)) __attribute__((__noreturn__));
|
||||||
void dig __P((void));
|
void dig __P((void));
|
||||||
|
void dooropen __P((void));
|
||||||
int draw __P((void));
|
int draw __P((void));
|
||||||
void drink __P((void));
|
void drink __P((void));
|
||||||
int drive __P((void));
|
int drive __P((void));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: globals.c,v 1.11 2000/09/09 09:37:58 jsm Exp $ */
|
/* $NetBSD: globals.c,v 1.12 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)globals.c 8.2 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)globals.c 8.2 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: globals.c,v 1.11 2000/09/09 09:37:58 jsm Exp $");
|
__RCSID("$NetBSD: globals.c,v 1.12 2000/09/17 23:03:43 jsm Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -256,6 +256,7 @@ unsigned int inven[NUMOFWORDS];
|
||||||
unsigned int wear[NUMOFWORDS];
|
unsigned int wear[NUMOFWORDS];
|
||||||
char beenthere[NUMOFROOMS + 1];
|
char beenthere[NUMOFROOMS + 1];
|
||||||
char injuries[NUMOFINJURIES];
|
char injuries[NUMOFINJURIES];
|
||||||
|
int verbose = 0;
|
||||||
|
|
||||||
const char *username;
|
const char *username;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: room.c,v 1.9 2000/09/10 10:52:56 jsm Exp $ */
|
/* $NetBSD: room.c,v 1.10 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)room.c 8.2 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)room.c 8.2 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: room.c,v 1.9 2000/09/10 10:52:56 jsm Exp $");
|
__RCSID("$NetBSD: room.c,v 1.10 2000/09/17 23:03:43 jsm Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ writedes()
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
printf("\n\t%s\n", location[position].name);
|
printf("\n\t%s\n", location[position].name);
|
||||||
if (beenthere[position] < ROOMDESC) {
|
if (beenthere[position] < ROOMDESC || verbose) {
|
||||||
compass = NORTH;
|
compass = NORTH;
|
||||||
for (p = location[position].desc; (c = *p++) != 0;)
|
for (p = location[position].desc; (c = *p++) != 0;)
|
||||||
if (c != '-' && c != '*' && c != '+') {
|
if (c != '-' && c != '*' && c != '+') {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: words.c,v 1.7 2000/09/09 18:03:58 jsm Exp $ */
|
/* $NetBSD: words.c,v 1.8 2000/09/17 23:03:43 jsm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1993
|
* Copyright (c) 1983, 1993
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)words.c 8.2 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)words.c 8.2 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: words.c,v 1.7 2000/09/09 18:03:58 jsm Exp $");
|
__RCSID("$NetBSD: words.c,v 1.8 2000/09/17 23:03:43 jsm Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -91,9 +91,11 @@ struct wlist wlist[] = {
|
||||||
{ "match", MATCHES, OBJECT, NULL },
|
{ "match", MATCHES, OBJECT, NULL },
|
||||||
{ "book", MATCHES, OBJECT, NULL },
|
{ "book", MATCHES, OBJECT, NULL },
|
||||||
{ "man", MAN, NOUNS, NULL },
|
{ "man", MAN, NOUNS, NULL },
|
||||||
|
{ "papaya", PAPAYAS, OBJECT, NULL },
|
||||||
{ "papayas", PAPAYAS, OBJECT, NULL },
|
{ "papayas", PAPAYAS, OBJECT, NULL },
|
||||||
{ "pineapple", PINEAPPLE, OBJECT, NULL },
|
{ "pineapple", PINEAPPLE, OBJECT, NULL },
|
||||||
{ "kiwi", KIWI, OBJECT, NULL },
|
{ "kiwi", KIWI, OBJECT, NULL },
|
||||||
|
{ "coconut", COCONUTS, OBJECT, NULL },
|
||||||
{ "coconuts", COCONUTS, OBJECT, NULL },
|
{ "coconuts", COCONUTS, OBJECT, NULL },
|
||||||
{ "mango", MANGO, OBJECT, NULL },
|
{ "mango", MANGO, OBJECT, NULL },
|
||||||
{ "ring", RING, OBJECT, NULL },
|
{ "ring", RING, OBJECT, NULL },
|
||||||
|
@ -173,6 +175,8 @@ struct wlist wlist[] = {
|
||||||
{ "hack", SMITE, VERB, NULL },
|
{ "hack", SMITE, VERB, NULL },
|
||||||
{ "shoot", SHOOT, VERB, NULL },
|
{ "shoot", SHOOT, VERB, NULL },
|
||||||
{ "blast", SHOOT, VERB, NULL },
|
{ "blast", SHOOT, VERB, NULL },
|
||||||
|
{ "open", OPEN, VERB, NULL },
|
||||||
|
{ "unlock", OPEN, VERB, NULL },
|
||||||
{ "on", ON, PREPS, NULL },
|
{ "on", ON, PREPS, NULL },
|
||||||
{ "off", OFF, PREPS, NULL },
|
{ "off", OFF, PREPS, NULL },
|
||||||
{ "time", TIME, VERB, NULL },
|
{ "time", TIME, VERB, NULL },
|
||||||
|
@ -182,6 +186,8 @@ struct wlist wlist[] = {
|
||||||
{ "swim", SWIM, VERB, NULL },
|
{ "swim", SWIM, VERB, NULL },
|
||||||
{ "drink", DRINK, VERB, NULL },
|
{ "drink", DRINK, VERB, NULL },
|
||||||
{ "door", DOOR, NOUNS, NULL },
|
{ "door", DOOR, NOUNS, NULL },
|
||||||
|
{ "verbose", VERBOSE, VERB, NULL },
|
||||||
|
{ "brief", BRIEF, VERB, NULL },
|
||||||
{ "save", SAVE, VERB, NULL },
|
{ "save", SAVE, VERB, NULL },
|
||||||
{ "ride", RIDE, VERB, NULL },
|
{ "ride", RIDE, VERB, NULL },
|
||||||
{ "mount", RIDE, VERB, NULL },
|
{ "mount", RIDE, VERB, NULL },
|
||||||
|
|
Loading…
Reference in New Issue