Meaningful shortnames for RSPEAK messages.
This commit is contained in:
parent
1d37262a16
commit
a141f021d5
6 changed files with 479 additions and 479 deletions
286
actions.c
286
actions.c
|
@ -42,7 +42,7 @@ static int attack(FILE *input, long verb, token_t obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (obj == BIRD) {
|
if (obj == BIRD) {
|
||||||
spk=ARB_137;
|
spk=UNHAPPY_BIRD;
|
||||||
if (game.closed)
|
if (game.closed)
|
||||||
{
|
{
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
|
@ -50,7 +50,7 @@ static int attack(FILE *input, long verb, token_t obj)
|
||||||
}
|
}
|
||||||
DSTROY(BIRD);
|
DSTROY(BIRD);
|
||||||
game.prop[BIRD]=0;
|
game.prop[BIRD]=0;
|
||||||
spk=ARB_45;
|
spk=BIRD_DEAD;
|
||||||
}
|
}
|
||||||
if (obj == VEND) {
|
if (obj == VEND) {
|
||||||
PSPEAK(VEND,game.prop[VEND]+2);
|
PSPEAK(VEND,game.prop[VEND]+2);
|
||||||
|
@ -58,17 +58,17 @@ static int attack(FILE *input, long verb, token_t obj)
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == 0)spk=ARB_44;
|
if (obj == 0)spk=NO_TARGET;
|
||||||
if (obj == CLAM || obj == OYSTER)spk=ARB_150;
|
if (obj == CLAM || obj == OYSTER)spk=SHELL_IMPERVIOUS;
|
||||||
if (obj == SNAKE)spk=ARB_46;
|
if (obj == SNAKE)spk=SNAKE_WARNING;
|
||||||
if (obj == DWARF)spk=ARB_49;
|
if (obj == DWARF)spk=BARE_HANDS_QUERY;
|
||||||
if (obj == DWARF && game.closed) return GO_DWARFWAKE;
|
if (obj == DWARF && game.closed) return GO_DWARFWAKE;
|
||||||
if (obj == DRAGON)spk=ARB_167;
|
if (obj == DRAGON)spk=ALREADY_DEAD;
|
||||||
if (obj == TROLL)spk=ARB_157;
|
if (obj == TROLL)spk=ROCKY_TROLL;
|
||||||
if (obj == OGRE)spk=ARB_203;
|
if (obj == OGRE)spk=OGRE_DOFGE;
|
||||||
if (obj == OGRE && i > 0) {
|
if (obj == OGRE && i > 0) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
RSPEAK(ARB_6);
|
RSPEAK(KNIFE_THROWN);
|
||||||
DSTROY(OGRE);
|
DSTROY(OGRE);
|
||||||
int k=0;
|
int k=0;
|
||||||
for (i=1; i < PIRATE; i++) {
|
for (i=1; i < PIRATE; i++) {
|
||||||
|
@ -82,13 +82,13 @@ static int attack(FILE *input, long verb, token_t obj)
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (obj == BEAR)spk=ARB_165+(game.prop[BEAR]+1)/2;
|
if (obj == BEAR)spk=BEAR_HANDS+(game.prop[BEAR]+1)/2;
|
||||||
if (obj != DRAGON || game.prop[DRAGON] != 0) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (obj != DRAGON || game.prop[DRAGON] != 0) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
/* Fun stuff for dragon. If he insists on attacking it, win!
|
/* Fun stuff for dragon. If he insists on attacking it, win!
|
||||||
* Set game.prop to dead, move dragon to central loc (still
|
* Set game.prop to dead, move dragon to central loc (still
|
||||||
* fixed), move rug there (not fixed), and move him there,
|
* fixed), move rug there (not fixed), and move him there,
|
||||||
* too. Then do a null motion to get new description. */
|
* too. Then do a null motion to get new description. */
|
||||||
RSPEAK(ARB_49);
|
RSPEAK(BARE_HANDS_QUERY);
|
||||||
GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
|
GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
|
||||||
if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
|
if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
|
||||||
return GO_CHECKFOO;
|
return GO_CHECKFOO;
|
||||||
|
@ -115,15 +115,15 @@ static int bigwords(long foo)
|
||||||
* word zips the eggs back to the giant room (unless already there). */
|
* word zips the eggs back to the giant room (unless already there). */
|
||||||
{
|
{
|
||||||
int k=VOCAB(foo,3);
|
int k=VOCAB(foo,3);
|
||||||
int spk=ARB_42;
|
int spk=NOTHING_HAPPENS;
|
||||||
if (game.foobar != 1-k) {
|
if (game.foobar != 1-k) {
|
||||||
if (game.foobar != 0)spk=ARB_151;
|
if (game.foobar != 0)spk=START_OVER;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
} else {
|
} else {
|
||||||
game.foobar=k;
|
game.foobar=k;
|
||||||
if (k != 4) {
|
if (k != 4) {
|
||||||
RSPEAK(ARB_54);
|
RSPEAK(OK_MAN);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
game.foobar=0;
|
game.foobar=0;
|
||||||
|
@ -150,10 +150,10 @@ static int bivalve(token_t verb, token_t obj)
|
||||||
{
|
{
|
||||||
int spk, k=0;
|
int spk, k=0;
|
||||||
if (obj == OYSTER)k=1;
|
if (obj == OYSTER)k=1;
|
||||||
spk=ARB_124+k;
|
spk=PEARL_FALLS+k;
|
||||||
if (TOTING(obj))spk=ARB_120+k;
|
if (TOTING(obj))spk=DROP_CLAM+k;
|
||||||
if (!TOTING(TRIDNT))spk=ARB_122+k;
|
if (!TOTING(TRIDNT))spk=CLAM_OPENER+k;
|
||||||
if (verb == LOCK)spk=ARB_61;
|
if (verb == LOCK)spk=HUH_MAN;
|
||||||
if (spk == 124) {
|
if (spk == 124) {
|
||||||
DSTROY(CLAM);
|
DSTROY(CLAM);
|
||||||
DROP(OYSTER,game.loc);
|
DROP(OYSTER,game.loc);
|
||||||
|
@ -168,7 +168,7 @@ static int blast(void)
|
||||||
{
|
{
|
||||||
if (game.prop[ROD2] < 0 || !game.closed)
|
if (game.prop[ROD2] < 0 || !game.closed)
|
||||||
{
|
{
|
||||||
RSPEAK(ARB_67);
|
RSPEAK(REQUIRES_DYNAMITE);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
game.bonus=133;
|
game.bonus=133;
|
||||||
|
@ -185,15 +185,15 @@ static int vbreak(token_t verb, token_t obj)
|
||||||
/* Break. Only works for mirror in repository and, of course, the vase. */
|
/* Break. Only works for mirror in repository and, of course, the vase. */
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj == MIRROR)spk=ARB_148;
|
if (obj == MIRROR)spk=TOO_FAR;
|
||||||
if (obj == VASE && game.prop[VASE] == 0) {
|
if (obj == VASE && game.prop[VASE] == 0) {
|
||||||
if (TOTING(VASE))DROP(VASE,game.loc);
|
if (TOTING(VASE))DROP(VASE,game.loc);
|
||||||
game.prop[VASE]=2;
|
game.prop[VASE]=2;
|
||||||
game.fixed[VASE]= -1;
|
game.fixed[VASE]= -1;
|
||||||
spk=ARB_198;
|
spk=BREAK_VASE;
|
||||||
} else {
|
} else {
|
||||||
if (obj == MIRROR && game.closed) {
|
if (obj == MIRROR && game.closed) {
|
||||||
RSPEAK(ARB_197);
|
RSPEAK(BREAK_MIRROR);
|
||||||
return GO_DWARFWAKE;
|
return GO_DWARFWAKE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -206,7 +206,7 @@ static int brief(void)
|
||||||
{
|
{
|
||||||
game.abbnum=10000;
|
game.abbnum=10000;
|
||||||
game.detail=3;
|
game.detail=3;
|
||||||
RSPEAK(ARB_156);
|
RSPEAK(BRIEF_CONFIRM);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,18 +225,18 @@ static int carry(token_t verb, token_t obj)
|
||||||
obj=game.atloc[game.loc];
|
obj=game.atloc[game.loc];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TOTING(obj)) {RSPEAK(ARB_24); return GO_CLEAROBJ;}
|
if (TOTING(obj)) {RSPEAK(ALREADY_CARRYING); return GO_CLEAROBJ;}
|
||||||
spk=ARB_25;
|
spk=YOU_JOKING;
|
||||||
if (obj == PLANT && game.prop[PLANT] <= 0)spk=ARB_115;
|
if (obj == PLANT && game.prop[PLANT] <= 0)spk=DEEP_ROOTS;
|
||||||
if (obj == BEAR && game.prop[BEAR] == 1)spk=ARB_169;
|
if (obj == BEAR && game.prop[BEAR] == 1)spk=BEAR_CHAINED;
|
||||||
if (obj == CHAIN && game.prop[BEAR] != 0)spk=ARB_170;
|
if (obj == CHAIN && game.prop[BEAR] != 0)spk=STILL_LOCKED;
|
||||||
if (obj == URN)spk=ARB_215;
|
if (obj == URN)spk=URN_NOBUDGE;
|
||||||
if (obj == CAVITY)spk=ARB_217;
|
if (obj == CAVITY)spk=DOUGHNUT_HOLES;
|
||||||
if (obj == BLOOD)spk=ARB_239;
|
if (obj == BLOOD)spk=FEW_DROPS;
|
||||||
if (obj == RUG && game.prop[RUG] == 2)spk=ARB_222;
|
if (obj == RUG && game.prop[RUG] == 2)spk=RUG_HOVERS;
|
||||||
if (obj == SIGN)spk=ARB_196;
|
if (obj == SIGN)spk=HAND_PASSTHROUGH;
|
||||||
if (obj == MESSAG) {
|
if (obj == MESSAG) {
|
||||||
RSPEAK(ARB_190);
|
RSPEAK(REMOVE_MESSAGE);
|
||||||
DSTROY(MESSAG);
|
DSTROY(MESSAG);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -248,15 +248,15 @@ static int carry(token_t verb, token_t obj)
|
||||||
if (!HERE(BOTTLE) || LIQUID() != obj) {
|
if (!HERE(BOTTLE) || LIQUID() != obj) {
|
||||||
if (TOTING(BOTTLE) && game.prop[BOTTLE] == 1)
|
if (TOTING(BOTTLE) && game.prop[BOTTLE] == 1)
|
||||||
return(fill(verb, BOTTLE));
|
return(fill(verb, BOTTLE));
|
||||||
if (game.prop[BOTTLE] != 1)spk=ARB_105;
|
if (game.prop[BOTTLE] != 1)spk=BOTTLE_FULL;
|
||||||
if (!TOTING(BOTTLE))spk=ARB_104;
|
if (!TOTING(BOTTLE))spk=NO_CONTAINER;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
obj = BOTTLE;
|
obj = BOTTLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
spk=ARB_92;
|
spk=CARRY_LIMIT;
|
||||||
if (game.holdng >= INVLIMIT) {
|
if (game.holdng >= INVLIMIT) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -264,11 +264,11 @@ static int carry(token_t verb, token_t obj)
|
||||||
else if (obj == BIRD && game.prop[BIRD] != 1 && -1-game.prop[BIRD] != 1) {
|
else if (obj == BIRD && game.prop[BIRD] != 1 && -1-game.prop[BIRD] != 1) {
|
||||||
if (game.prop[BIRD] == 2) {
|
if (game.prop[BIRD] == 2) {
|
||||||
DSTROY(BIRD);
|
DSTROY(BIRD);
|
||||||
RSPEAK(ARB_238);
|
RSPEAK(BIRD_CRAP);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (!TOTING(CAGE))spk=ARB_27;
|
if (!TOTING(CAGE))spk=CANNOT_CARRY;
|
||||||
if (TOTING(ROD))spk=ARB_26;
|
if (TOTING(ROD))spk=BIRD_EVADES;
|
||||||
if (spk/2 == 13) { /* FIXME: Arithmetic on message number */
|
if (spk/2 == 13) { /* FIXME: Arithmetic on message number */
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -284,7 +284,7 @@ static int carry(token_t verb, token_t obj)
|
||||||
game.prop[obj]=0;
|
game.prop[obj]=0;
|
||||||
game.prop[CAVITY]=1;
|
game.prop[CAVITY]=1;
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_54);
|
RSPEAK(OK_MAN);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,19 +293,19 @@ static int chain(token_t verb)
|
||||||
{
|
{
|
||||||
int spk;
|
int spk;
|
||||||
if (verb != LOCK) {
|
if (verb != LOCK) {
|
||||||
spk=ARB_171;
|
spk=CHAIN_UNLOCKED;
|
||||||
if (game.prop[BEAR] == 0)spk=ARB_41;
|
if (game.prop[BEAR] == 0)spk=BEAR_BLOCKS;
|
||||||
if (game.prop[CHAIN] == 0)spk=ARB_37;
|
if (game.prop[CHAIN] == 0)spk=ALREADY_UNLOCKED;
|
||||||
if (spk != ARB_171) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (spk != CHAIN_UNLOCKED) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
game.prop[CHAIN]=0;
|
game.prop[CHAIN]=0;
|
||||||
game.fixed[CHAIN]=0;
|
game.fixed[CHAIN]=0;
|
||||||
if (game.prop[BEAR] != 3)game.prop[BEAR]=2;
|
if (game.prop[BEAR] != 3)game.prop[BEAR]=2;
|
||||||
game.fixed[BEAR]=2-game.prop[BEAR];
|
game.fixed[BEAR]=2-game.prop[BEAR];
|
||||||
} else {
|
} else {
|
||||||
spk=ARB_172;
|
spk=CHAIN_LOCKED;
|
||||||
if (game.prop[CHAIN] != 0)spk=ARB_34;
|
if (game.prop[CHAIN] != 0)spk=ALREADY_LOCKED;
|
||||||
if (game.loc != PLAC[CHAIN])spk=ARB_173;
|
if (game.loc != PLAC[CHAIN])spk=NO_LOCKSITE;
|
||||||
if (spk != ARB_172) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (spk != CHAIN_LOCKED) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
game.prop[CHAIN]=2;
|
game.prop[CHAIN]=2;
|
||||||
if (TOTING(CHAIN))DROP(CHAIN,game.loc);
|
if (TOTING(CHAIN))DROP(CHAIN,game.loc);
|
||||||
game.fixed[CHAIN]= -1;
|
game.fixed[CHAIN]= -1;
|
||||||
|
@ -324,21 +324,21 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
|
||||||
if (TOTING(ROD2) && obj == ROD && !TOTING(ROD))obj=ROD2;
|
if (TOTING(ROD2) && obj == ROD && !TOTING(ROD))obj=ROD2;
|
||||||
if (!TOTING(obj)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (!TOTING(obj)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
if (obj == BIRD && HERE(SNAKE)) {
|
if (obj == BIRD && HERE(SNAKE)) {
|
||||||
RSPEAK(ARB_30);
|
RSPEAK(BIRD_ATTACKS);
|
||||||
if (game.closed) return GO_DWARFWAKE;
|
if (game.closed) return GO_DWARFWAKE;
|
||||||
DSTROY(SNAKE);
|
DSTROY(SNAKE);
|
||||||
/* Set game.prop for use by travel options */
|
/* Set game.prop for use by travel options */
|
||||||
game.prop[SNAKE]=1;
|
game.prop[SNAKE]=1;
|
||||||
|
|
||||||
} else if ((GSTONE(obj) && AT(CAVITY) && game.prop[CAVITY] != 0)) {
|
} else if ((GSTONE(obj) && AT(CAVITY) && game.prop[CAVITY] != 0)) {
|
||||||
RSPEAK(ARB_218);
|
RSPEAK(GEM_FITS);
|
||||||
game.prop[obj]=1;
|
game.prop[obj]=1;
|
||||||
game.prop[CAVITY]=0;
|
game.prop[CAVITY]=0;
|
||||||
if (HERE(RUG) && ((obj == EMRALD && game.prop[RUG] != 2) || (obj == RUBY &&
|
if (HERE(RUG) && ((obj == EMRALD && game.prop[RUG] != 2) || (obj == RUBY &&
|
||||||
game.prop[RUG] == 2))) {
|
game.prop[RUG] == 2))) {
|
||||||
spk=ARB_219;
|
spk=RUG_RISES;
|
||||||
if (TOTING(RUG))spk=ARB_220;
|
if (TOTING(RUG))spk=RUG_WIGGLES;
|
||||||
if (obj == RUBY)spk=ARB_221;
|
if (obj == RUBY)spk=RUG_SETTLES;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
if (spk != 220) {
|
if (spk != 220) {
|
||||||
int k = 2-game.prop[RUG];
|
int k = 2-game.prop[RUG];
|
||||||
|
@ -353,12 +353,12 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
|
||||||
PSPEAK(BATTER,0);
|
PSPEAK(BATTER,0);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
} else if (obj == BIRD && AT(DRAGON) && game.prop[DRAGON] == 0) {
|
} else if (obj == BIRD && AT(DRAGON) && game.prop[DRAGON] == 0) {
|
||||||
RSPEAK(ARB_154);
|
RSPEAK(BIRD_BURNT);
|
||||||
DSTROY(BIRD);
|
DSTROY(BIRD);
|
||||||
game.prop[BIRD]=0;
|
game.prop[BIRD]=0;
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
} else if (obj == BEAR && AT(TROLL)) {
|
} else if (obj == BEAR && AT(TROLL)) {
|
||||||
RSPEAK(ARB_163);
|
RSPEAK(TROLL_SCAMPERS);
|
||||||
MOVE(TROLL,0);
|
MOVE(TROLL,0);
|
||||||
MOVE(TROLL+NOBJECTS,0);
|
MOVE(TROLL+NOBJECTS,0);
|
||||||
MOVE(TROLL2,PLAC[TROLL]);
|
MOVE(TROLL2,PLAC[TROLL]);
|
||||||
|
@ -366,7 +366,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
|
||||||
JUGGLE(CHASM);
|
JUGGLE(CHASM);
|
||||||
game.prop[TROLL]=2;
|
game.prop[TROLL]=2;
|
||||||
} else if (obj != VASE || game.loc == PLAC[PILLOW]) {
|
} else if (obj != VASE || game.loc == PLAC[PILLOW]) {
|
||||||
RSPEAK(ARB_54);
|
RSPEAK(OK_MAN);
|
||||||
} else {
|
} else {
|
||||||
game.prop[VASE]=2;
|
game.prop[VASE]=2;
|
||||||
if (AT(PILLOW))game.prop[VASE]=0;
|
if (AT(PILLOW))game.prop[VASE]=0;
|
||||||
|
@ -394,17 +394,17 @@ static int drink(token_t verb, token_t obj)
|
||||||
if (obj == 0 && LIQLOC(game.loc) != WATER && (LIQUID() != WATER || !HERE(BOTTLE)))
|
if (obj == 0 && LIQLOC(game.loc) != WATER && (LIQUID() != WATER || !HERE(BOTTLE)))
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
if (obj != BLOOD) {
|
if (obj != BLOOD) {
|
||||||
if (obj != 0 && obj != WATER)spk=ARB_110;
|
if (obj != 0 && obj != WATER)spk=RIDICULOUS_ATTEMPT;
|
||||||
if (spk != 110 && LIQUID() == WATER && HERE(BOTTLE)) {
|
if (spk != 110 && LIQUID() == WATER && HERE(BOTTLE)) {
|
||||||
game.prop[BOTTLE]=1;
|
game.prop[BOTTLE]=1;
|
||||||
game.place[WATER]=0;
|
game.place[WATER]=0;
|
||||||
spk=ARB_74;
|
spk=BOTTLE_EMPTY;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DSTROY(BLOOD);
|
DSTROY(BLOOD);
|
||||||
game.prop[DRAGON]=2;
|
game.prop[DRAGON]=2;
|
||||||
OBJSND[BIRD]=OBJSND[BIRD]+3;
|
OBJSND[BIRD]=OBJSND[BIRD]+3;
|
||||||
spk=ARB_240;
|
spk=HEAD_BUZZES;
|
||||||
}
|
}
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -419,15 +419,15 @@ static int eat(token_t verb, token_t obj)
|
||||||
if (!HERE(FOOD))
|
if (!HERE(FOOD))
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
DSTROY(FOOD);
|
DSTROY(FOOD);
|
||||||
spk=ARB_72;
|
spk=THANKS_DELICIOUS;
|
||||||
} else {
|
} else {
|
||||||
if (obj == FOOD) {
|
if (obj == FOOD) {
|
||||||
DSTROY(FOOD);
|
DSTROY(FOOD);
|
||||||
spk=ARB_72;
|
spk=THANKS_DELICIOUS;
|
||||||
}
|
}
|
||||||
if (obj == BIRD || obj == SNAKE || obj == CLAM || obj == OYSTER || obj ==
|
if (obj == BIRD || obj == SNAKE || obj == CLAM || obj == OYSTER || obj ==
|
||||||
DWARF || obj == DRAGON || obj == TROLL || obj == BEAR || obj ==
|
DWARF || obj == DRAGON || obj == TROLL || obj == BEAR || obj ==
|
||||||
OGRE)spk=ARB_71;
|
OGRE)spk=LOST_APPETITE;
|
||||||
}
|
}
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -445,15 +445,15 @@ static int extinguish(token_t verb, int obj)
|
||||||
|
|
||||||
if (obj == URN) {
|
if (obj == URN) {
|
||||||
game.prop[URN]=game.prop[URN]/2;
|
game.prop[URN]=game.prop[URN]/2;
|
||||||
spk=ARB_210;
|
spk=URN_DARK;
|
||||||
}
|
}
|
||||||
else if (obj == LAMP) {
|
else if (obj == LAMP) {
|
||||||
game.prop[LAMP]=0;
|
game.prop[LAMP]=0;
|
||||||
RSPEAK(ARB_40);
|
RSPEAK(LAMP_OFF);
|
||||||
spk = DARK(game.loc) ? ARB_16 : ARB_0;
|
spk = DARK(game.loc) ? PITCH_DARK : ARB_0;
|
||||||
}
|
}
|
||||||
else if (obj == DRAGON || obj == VOLCAN)
|
else if (obj == DRAGON || obj == VOLCAN)
|
||||||
spk=ARB_146;
|
spk=BEYOND_POWER;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -464,41 +464,41 @@ static int feed(token_t verb, token_t obj)
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj == BIRD) {
|
if (obj == BIRD) {
|
||||||
RSPEAK(ARB_100);
|
RSPEAK(BIRD_PINING);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
else if (obj == SNAKE || obj == DRAGON || obj == TROLL) {
|
else if (obj == SNAKE || obj == DRAGON || obj == TROLL) {
|
||||||
spk=ARB_102;
|
spk=NOTHING_EDIBLE;
|
||||||
if (obj == DRAGON && game.prop[DRAGON] != 0)spk=ARB_110;
|
if (obj == DRAGON && game.prop[DRAGON] != 0)spk=RIDICULOUS_ATTEMPT;
|
||||||
if (obj == TROLL)spk=ARB_182;
|
if (obj == TROLL)spk=TROLL_VICES;
|
||||||
if (obj == SNAKE && !game.closed && HERE(BIRD)) {
|
if (obj == SNAKE && !game.closed && HERE(BIRD)) {
|
||||||
DSTROY(BIRD);
|
DSTROY(BIRD);
|
||||||
game.prop[BIRD]=0;
|
game.prop[BIRD]=0;
|
||||||
spk = ARB_101;
|
spk = BIRD_DEVOURED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (obj == DWARF) {
|
else if (obj == DWARF) {
|
||||||
if (HERE(FOOD)) {
|
if (HERE(FOOD)) {
|
||||||
game.dflag += 2;
|
game.dflag += 2;
|
||||||
spk = ARB_103;
|
spk = REALLY_MAD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (obj == BEAR) {
|
else if (obj == BEAR) {
|
||||||
if (game.prop[BEAR] == 0)spk=ARB_102;
|
if (game.prop[BEAR] == 0)spk=NOTHING_EDIBLE;
|
||||||
if (game.prop[BEAR] == 3)spk=ARB_110;
|
if (game.prop[BEAR] == 3)spk=RIDICULOUS_ATTEMPT;
|
||||||
if (HERE(FOOD)) {
|
if (HERE(FOOD)) {
|
||||||
DSTROY(FOOD);
|
DSTROY(FOOD);
|
||||||
game.prop[BEAR]=1;
|
game.prop[BEAR]=1;
|
||||||
game.fixed[AXE]=0;
|
game.fixed[AXE]=0;
|
||||||
game.prop[AXE]=0;
|
game.prop[AXE]=0;
|
||||||
spk=ARB_168;
|
spk=BEAR_TAMED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (obj == OGRE) {
|
else if (obj == OGRE) {
|
||||||
if (HERE(FOOD))
|
if (HERE(FOOD))
|
||||||
spk=ARB_202;
|
spk=OGRE_FULL;
|
||||||
} else {
|
} else {
|
||||||
spk=ARB_14;
|
spk=AM_GAME;
|
||||||
}
|
}
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -511,27 +511,27 @@ int fill(token_t verb, token_t obj)
|
||||||
int k;
|
int k;
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj == VASE) {
|
if (obj == VASE) {
|
||||||
spk=ARB_29;
|
spk=ARENT_CARRYING;
|
||||||
if (LIQLOC(game.loc) == 0)spk=ARB_144;
|
if (LIQLOC(game.loc) == 0)spk=FILL_INVALID;
|
||||||
if (LIQLOC(game.loc) == 0 || !TOTING(VASE)) {
|
if (LIQLOC(game.loc) == 0 || !TOTING(VASE)) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_145);
|
RSPEAK(SHATTER_VASE);
|
||||||
game.prop[VASE]=2;
|
game.prop[VASE]=2;
|
||||||
game.fixed[VASE]= -1;
|
game.fixed[VASE]= -1;
|
||||||
return(discard(verb, obj, true));
|
return(discard(verb, obj, true));
|
||||||
}
|
}
|
||||||
else if (obj == URN) {
|
else if (obj == URN) {
|
||||||
spk=ARB_213;
|
spk=FULL_URN;
|
||||||
if (game.prop[URN] != 0) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (game.prop[URN] != 0) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
spk=ARB_144;
|
spk=FILL_INVALID;
|
||||||
k=LIQUID();
|
k=LIQUID();
|
||||||
if (k == 0 || !HERE(BOTTLE)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (k == 0 || !HERE(BOTTLE)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
game.place[k]=0;
|
game.place[k]=0;
|
||||||
game.prop[BOTTLE]=1;
|
game.prop[BOTTLE]=1;
|
||||||
if (k == OIL)game.prop[URN]=1;
|
if (k == OIL)game.prop[URN]=1;
|
||||||
spk=ARB_211+game.prop[URN];
|
spk=WATER_URN+game.prop[URN];
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -541,20 +541,20 @@ int fill(token_t verb, token_t obj)
|
||||||
}
|
}
|
||||||
else if (obj == 0 && !HERE(BOTTLE))
|
else if (obj == 0 && !HERE(BOTTLE))
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
spk=ARB_107;
|
spk=BOTTLED_WATER;
|
||||||
if (LIQLOC(game.loc) == 0)
|
if (LIQLOC(game.loc) == 0)
|
||||||
spk=ARB_106;
|
spk=NO_LIQUID;
|
||||||
if (HERE(URN) && game.prop[URN] != 0)
|
if (HERE(URN) && game.prop[URN] != 0)
|
||||||
spk=ARB_214;
|
spk=URN_NOPOUR;
|
||||||
if (LIQUID() != 0)
|
if (LIQUID() != 0)
|
||||||
spk=ARB_105;
|
spk=BOTTLE_FULL;
|
||||||
if (spk == 107) {
|
if (spk == 107) {
|
||||||
game.prop[BOTTLE]=MOD(COND[game.loc],4)/2*2;
|
game.prop[BOTTLE]=MOD(COND[game.loc],4)/2*2;
|
||||||
k=LIQUID();
|
k=LIQUID();
|
||||||
if (TOTING(BOTTLE))
|
if (TOTING(BOTTLE))
|
||||||
game.place[k]= -1;
|
game.place[k]= -1;
|
||||||
if (k == OIL)
|
if (k == OIL)
|
||||||
spk=ARB_108;
|
spk=BOTTLED_OIL;
|
||||||
}
|
}
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -568,9 +568,9 @@ static int find(token_t verb, token_t obj)
|
||||||
(LIQUID() == obj && AT(BOTTLE)) ||
|
(LIQUID() == obj && AT(BOTTLE)) ||
|
||||||
obj == LIQLOC(game.loc) ||
|
obj == LIQLOC(game.loc) ||
|
||||||
(obj == DWARF && ATDWRF(game.loc) > 0))
|
(obj == DWARF && ATDWRF(game.loc) > 0))
|
||||||
spk=ARB_94;
|
spk=YOU_HAVEIT;
|
||||||
if (game.closed)spk=ARB_138;
|
if (game.closed)spk=NEEDED_NEreplace;
|
||||||
if (TOTING(obj))spk=ARB_24;
|
if (TOTING(obj))spk=ALREADY_CARRYING;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -580,8 +580,8 @@ static int fly(token_t verb, token_t obj)
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj == INTRANSITIVE) {
|
if (obj == INTRANSITIVE) {
|
||||||
if (game.prop[RUG] != 2)spk=ARB_224;
|
if (game.prop[RUG] != 2)spk=RUG_NOTHING2;
|
||||||
if (!HERE(RUG))spk=ARB_225;
|
if (!HERE(RUG))spk=FLAP_ARMS;
|
||||||
if (spk/2 == 112) {
|
if (spk/2 == 112) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -593,13 +593,13 @@ static int fly(token_t verb, token_t obj)
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
spk=ARB_223;
|
spk=RUG_NOTHING1;
|
||||||
if (game.prop[RUG] != 2) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (game.prop[RUG] != 2) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
game.oldlc2=game.oldloc;
|
game.oldlc2=game.oldloc;
|
||||||
game.oldloc=game.loc;
|
game.oldloc=game.loc;
|
||||||
game.newloc=game.place[RUG]+game.fixed[RUG]-game.loc;
|
game.newloc=game.place[RUG]+game.fixed[RUG]-game.loc;
|
||||||
spk=ARB_226;
|
spk=RUG_GOES;
|
||||||
if (game.prop[SAPPH] >= 0)spk=ARB_227;
|
if (game.prop[SAPPH] >= 0)spk=RUG_RETURNS;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_TERMINATE;
|
return GO_TERMINATE;
|
||||||
}
|
}
|
||||||
|
@ -608,19 +608,19 @@ static int inven(token_t obj)
|
||||||
/* Inventory. If object, treat same as find. Else report on current burden. */
|
/* Inventory. If object, treat same as find. Else report on current burden. */
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int spk=ARB_98;
|
int spk=NO_CARRY;
|
||||||
for (i=1; i<=NOBJECTS; i++) {
|
for (i=1; i<=NOBJECTS; i++) {
|
||||||
if (i == BEAR || !TOTING(i))
|
if (i == BEAR || !TOTING(i))
|
||||||
continue;
|
continue;
|
||||||
if (spk == 98)
|
if (spk == 98)
|
||||||
RSPEAK(ARB_99);
|
RSPEAK(NOW_HOLDING);
|
||||||
game.blklin=false;
|
game.blklin=false;
|
||||||
PSPEAK(i,-1);
|
PSPEAK(i,-1);
|
||||||
game.blklin=true;
|
game.blklin=true;
|
||||||
spk=ARB_0;
|
spk=ARB_0;
|
||||||
}
|
}
|
||||||
if (TOTING(BEAR))
|
if (TOTING(BEAR))
|
||||||
spk=ARB_141;
|
spk=TAME_BEAR;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -636,10 +636,10 @@ int light(token_t verb, token_t obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == URN) {
|
if (obj == URN) {
|
||||||
spk=ARB_38;
|
spk=URN_EMPTY;
|
||||||
if (game.prop[URN] == 0)
|
if (game.prop[URN] == 0)
|
||||||
{RSPEAK(spk); return GO_CLEAROBJ;}
|
{RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
spk=ARB_209;
|
spk=URN_LIT;
|
||||||
game.prop[URN]=2;
|
game.prop[URN]=2;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -649,13 +649,13 @@ int light(token_t verb, token_t obj)
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
spk=ARB_184;
|
spk=LAMP_OUT;
|
||||||
if (game.limit < 0) {
|
if (game.limit < 0) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
game.prop[LAMP]=1;
|
game.prop[LAMP]=1;
|
||||||
RSPEAK(ARB_39);
|
RSPEAK(LAMP_ON);
|
||||||
if (game.wzdark)
|
if (game.wzdark)
|
||||||
return GO_TOP;
|
return GO_TOP;
|
||||||
else
|
else
|
||||||
|
@ -667,7 +667,7 @@ static int listen(void)
|
||||||
/* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */
|
/* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */
|
||||||
{
|
{
|
||||||
int i, k;
|
int i, k;
|
||||||
int spk=ARB_228;
|
int spk=ALL_SILENT;
|
||||||
k=LOCSND[game.loc];
|
k=LOCSND[game.loc];
|
||||||
if (k != 0) {
|
if (k != 0) {
|
||||||
RSPEAK(labs(k));
|
RSPEAK(labs(k));
|
||||||
|
@ -692,7 +692,7 @@ static int lock(token_t verb, token_t obj)
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj == INTRANSITIVE) {
|
if (obj == INTRANSITIVE) {
|
||||||
spk=ARB_28;
|
spk=NOTHING_LOCKED;
|
||||||
if (HERE(CLAM))obj=CLAM;
|
if (HERE(CLAM))obj=CLAM;
|
||||||
if (HERE(OYSTER))obj=OYSTER;
|
if (HERE(OYSTER))obj=OYSTER;
|
||||||
if (AT(DOOR))obj=DOOR;
|
if (AT(DOOR))obj=DOOR;
|
||||||
|
@ -706,21 +706,21 @@ static int lock(token_t verb, token_t obj)
|
||||||
* and for chain. */
|
* and for chain. */
|
||||||
if (obj == CLAM || obj == OYSTER)
|
if (obj == CLAM || obj == OYSTER)
|
||||||
return bivalve(verb, obj);
|
return bivalve(verb, obj);
|
||||||
if (obj == DOOR)spk=ARB_111;
|
if (obj == DOOR)spk=RUSTY_DOOR;
|
||||||
if (obj == DOOR && game.prop[DOOR] == 1)spk=ARB_54;
|
if (obj == DOOR && game.prop[DOOR] == 1)spk=OK_MAN;
|
||||||
if (obj == CAGE)spk=ARB_32;
|
if (obj == CAGE)spk=NO_LOCK;
|
||||||
if (obj == KEYS)spk=ARB_55;
|
if (obj == KEYS)spk=CANNOT_UNLOCK;
|
||||||
if (obj == GRATE || obj == CHAIN) {
|
if (obj == GRATE || obj == CHAIN) {
|
||||||
spk=ARB_31;
|
spk=NO_KEYS;
|
||||||
if (HERE(KEYS)) {
|
if (HERE(KEYS)) {
|
||||||
if (obj == CHAIN)
|
if (obj == CHAIN)
|
||||||
return chain(verb);
|
return chain(verb);
|
||||||
if (game.closng) {
|
if (game.closng) {
|
||||||
spk=ARB_130;
|
spk=EXIT_CLOSED;
|
||||||
if (!game.panic)game.clock2=15;
|
if (!game.panic)game.clock2=15;
|
||||||
game.panic=true;
|
game.panic=true;
|
||||||
} else {
|
} else {
|
||||||
spk=ARB_34+game.prop[GRATE]; /* FIXME: Arithmetic on message number */
|
spk=ALREADY_LOCKED+game.prop[GRATE]; /* FIXME: Arithmetic on message number */
|
||||||
game.prop[GRATE]=1;
|
game.prop[GRATE]=1;
|
||||||
if (verb == LOCK)game.prop[GRATE]=0;
|
if (verb == LOCK)game.prop[GRATE]=0;
|
||||||
spk=spk+2*game.prop[GRATE];
|
spk=spk+2*game.prop[GRATE];
|
||||||
|
@ -739,17 +739,17 @@ static int pour(token_t verb, token_t obj)
|
||||||
if (obj == BOTTLE || obj == 0)obj=LIQUID();
|
if (obj == BOTTLE || obj == 0)obj=LIQUID();
|
||||||
if (obj == 0) return GO_UNKNOWN;
|
if (obj == 0) return GO_UNKNOWN;
|
||||||
if (!TOTING(obj)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (!TOTING(obj)) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
spk=ARB_78;
|
spk=CANT_POUR;
|
||||||
if (obj != OIL && obj != WATER) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (obj != OIL && obj != WATER) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
if (HERE(URN) && game.prop[URN] == 0)
|
if (HERE(URN) && game.prop[URN] == 0)
|
||||||
return fill(verb, URN);
|
return fill(verb, URN);
|
||||||
game.prop[BOTTLE]=1;
|
game.prop[BOTTLE]=1;
|
||||||
game.place[obj]=0;
|
game.place[obj]=0;
|
||||||
spk=ARB_77;
|
spk=GROUND_WET;
|
||||||
if (!(AT(PLANT) || AT(DOOR)))
|
if (!(AT(PLANT) || AT(DOOR)))
|
||||||
{RSPEAK(spk); return GO_CLEAROBJ;}
|
{RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
if (!AT(DOOR)) {
|
if (!AT(DOOR)) {
|
||||||
spk=ARB_112;
|
spk=SHAKING_LEAVES;
|
||||||
if (obj != WATER) {RSPEAK(spk); return GO_CLEAROBJ;}
|
if (obj != WATER) {RSPEAK(spk); return GO_CLEAROBJ;}
|
||||||
PSPEAK(PLANT,game.prop[PLANT]+3);
|
PSPEAK(PLANT,game.prop[PLANT]+3);
|
||||||
game.prop[PLANT]=MOD(game.prop[PLANT]+1,3);
|
game.prop[PLANT]=MOD(game.prop[PLANT]+1,3);
|
||||||
|
@ -758,7 +758,7 @@ static int pour(token_t verb, token_t obj)
|
||||||
} else {
|
} else {
|
||||||
game.prop[DOOR]=0;
|
game.prop[DOOR]=0;
|
||||||
if (obj == OIL)game.prop[DOOR]=1;
|
if (obj == OIL)game.prop[DOOR]=1;
|
||||||
spk=ARB_113+game.prop[DOOR];
|
spk=RUSTED_HINGES+game.prop[DOOR];
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -767,7 +767,7 @@ static int pour(token_t verb, token_t obj)
|
||||||
static int quit(FILE *input)
|
static int quit(FILE *input)
|
||||||
/* Quit. Intransitive only. Verify intent and exit if that's what he wants. */
|
/* Quit. Intransitive only. Verify intent and exit if that's what he wants. */
|
||||||
{
|
{
|
||||||
if (YES(input,ARB_22,ARB_54,ARB_54))
|
if (YES(input,REALLY_QUIT,OK_MAN,OK_MAN))
|
||||||
score(1);
|
score(1);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -787,7 +787,7 @@ static int read(FILE *input, token_t verb, token_t obj)
|
||||||
|
|
||||||
if (DARK(game.loc)) {
|
if (DARK(game.loc)) {
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(ARB_256);
|
RSPEAK(NO_SEE);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (OBJTXT[obj] == 0 || game.prop[obj] < 0) {
|
if (OBJTXT[obj] == 0 || game.prop[obj] < 0) {
|
||||||
|
@ -795,7 +795,7 @@ static int read(FILE *input, token_t verb, token_t obj)
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (obj == OYSTER && !game.clshnt) {
|
if (obj == OYSTER && !game.clshnt) {
|
||||||
game.clshnt=YES(input,ARB_192,ARB_193,ARB_54);
|
game.clshnt=YES(input,CLUE_QUERY,WAYOUT_CLUE,OK_MAN);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
PSPEAK(obj,OBJTXT[obj]+game.prop[obj]);
|
PSPEAK(obj,OBJTXT[obj]+game.prop[obj]);
|
||||||
|
@ -806,7 +806,7 @@ static int reservoir(void)
|
||||||
/* Z'ZZZ (word gets recomputed at startup; different each game). */
|
/* Z'ZZZ (word gets recomputed at startup; different each game). */
|
||||||
{
|
{
|
||||||
if (!AT(RESER) && game.loc != game.fixed[RESER]-1) {
|
if (!AT(RESER) && game.loc != game.fixed[RESER]-1) {
|
||||||
RSPEAK(ARB_75);
|
RSPEAK(RUB_NOGO);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
} else {
|
} else {
|
||||||
PSPEAK(RESER,game.prop[RESER]+1);
|
PSPEAK(RESER,game.prop[RESER]+1);
|
||||||
|
@ -814,7 +814,7 @@ static int reservoir(void)
|
||||||
if (AT(RESER)) return GO_CLEAROBJ;
|
if (AT(RESER)) return GO_CLEAROBJ;
|
||||||
game.oldlc2=game.loc;
|
game.oldlc2=game.loc;
|
||||||
game.newloc=0;
|
game.newloc=0;
|
||||||
RSPEAK(ARB_241);
|
RSPEAK(NOT_BRIGHT);
|
||||||
return GO_TERMINATE;
|
return GO_TERMINATE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -824,14 +824,14 @@ static int rub(token_t verb, token_t obj)
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if (obj != LAMP)
|
if (obj != LAMP)
|
||||||
spk=ARB_76;
|
spk=PECULIAR_NOTHING;
|
||||||
if (obj == URN && game.prop[URN] == 2) {
|
if (obj == URN && game.prop[URN] == 2) {
|
||||||
DSTROY(URN);
|
DSTROY(URN);
|
||||||
DROP(AMBER,game.loc);
|
DROP(AMBER,game.loc);
|
||||||
game.prop[AMBER]=1;
|
game.prop[AMBER]=1;
|
||||||
--game.tally;
|
--game.tally;
|
||||||
DROP(CAVITY,game.loc);
|
DROP(CAVITY,game.loc);
|
||||||
spk=ARB_216;
|
spk=URN_GENIES;
|
||||||
}
|
}
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
@ -851,7 +851,7 @@ static int say(void)
|
||||||
WD2=0;
|
WD2=0;
|
||||||
return GO_LOOKUP;
|
return GO_LOOKUP;
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_258);
|
RSPEAK(OKEY_DOKEY);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -876,7 +876,7 @@ static int throw(FILE *cmdin, long verb, token_t obj)
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (obj >= 50 && obj <= MAXTRS && AT(TROLL)) {
|
if (obj >= 50 && obj <= MAXTRS && AT(TROLL)) {
|
||||||
spk=ARB_159;
|
spk=TROLL_SATISFIED;
|
||||||
/* Snarf a treasure for the troll. */
|
/* Snarf a treasure for the troll. */
|
||||||
DROP(obj,0);
|
DROP(obj,0);
|
||||||
MOVE(TROLL,0);
|
MOVE(TROLL,0);
|
||||||
|
@ -897,20 +897,20 @@ static int throw(FILE *cmdin, long verb, token_t obj)
|
||||||
int i=ATDWRF(game.loc);
|
int i=ATDWRF(game.loc);
|
||||||
if (i <= 0) {
|
if (i <= 0) {
|
||||||
if (AT(DRAGON) && game.prop[DRAGON] == 0) {
|
if (AT(DRAGON) && game.prop[DRAGON] == 0) {
|
||||||
spk=ARB_152;
|
spk=DRAGON_SCALES;
|
||||||
return throw_support(spk);
|
return throw_support(spk);
|
||||||
}
|
}
|
||||||
if (AT(TROLL)) {
|
if (AT(TROLL)) {
|
||||||
spk=ARB_158;
|
spk=TROLL_RETURNS;
|
||||||
return throw_support(spk);
|
return throw_support(spk);
|
||||||
}
|
}
|
||||||
if (AT(OGRE)) {
|
if (AT(OGRE)) {
|
||||||
spk=ARB_203;
|
spk=OGRE_DOFGE;
|
||||||
return throw_support(spk);
|
return throw_support(spk);
|
||||||
}
|
}
|
||||||
if (HERE(BEAR) && game.prop[BEAR] == 0) {
|
if (HERE(BEAR) && game.prop[BEAR] == 0) {
|
||||||
/* This'll teach him to throw the axe at the bear! */
|
/* This'll teach him to throw the axe at the bear! */
|
||||||
spk=ARB_164;
|
spk=AXE_LOST;
|
||||||
DROP(AXE,game.loc);
|
DROP(AXE,game.loc);
|
||||||
game.fixed[AXE]= -1;
|
game.fixed[AXE]= -1;
|
||||||
game.prop[AXE]=1;
|
game.prop[AXE]=1;
|
||||||
|
@ -921,14 +921,14 @@ static int throw(FILE *cmdin, long verb, token_t obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (randrange(NDWARVES+1) < game.dflag) {
|
if (randrange(NDWARVES+1) < game.dflag) {
|
||||||
spk=ARB_48;
|
spk=DWARF_DODGES;
|
||||||
return throw_support(spk);
|
return throw_support(spk);
|
||||||
}
|
}
|
||||||
game.dseen[i]=false;
|
game.dseen[i]=false;
|
||||||
game.dloc[i]=0;
|
game.dloc[i]=0;
|
||||||
spk=ARB_47;
|
spk=KILLED_DWARF;
|
||||||
++game.dkill;
|
++game.dkill;
|
||||||
if (game.dkill == 1)spk=ARB_149;
|
if (game.dkill == 1)spk=DWARF_SMOKE;
|
||||||
|
|
||||||
return throw_support(spk);
|
return throw_support(spk);
|
||||||
}
|
}
|
||||||
|
@ -948,7 +948,7 @@ static int wake(token_t verb, token_t obj)
|
||||||
RSPEAK(ACTSPK[verb]);
|
RSPEAK(ACTSPK[verb]);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_199);
|
RSPEAK(PROD_DWARF);
|
||||||
return GO_DWARFWAKE;
|
return GO_DWARFWAKE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -956,19 +956,19 @@ static int wave(token_t verb, token_t obj)
|
||||||
/* Wave. No effect unless waving rod at fissure or at bird. */
|
/* Wave. No effect unless waving rod at fissure or at bird. */
|
||||||
{
|
{
|
||||||
int spk = ACTSPK[verb];
|
int spk = ACTSPK[verb];
|
||||||
if ((!TOTING(obj)) && (obj != ROD || !TOTING(ROD2)))spk=ARB_29;
|
if ((!TOTING(obj)) && (obj != ROD || !TOTING(ROD2)))spk=ARENT_CARRYING;
|
||||||
if (obj != ROD ||
|
if (obj != ROD ||
|
||||||
!TOTING(obj) ||
|
!TOTING(obj) ||
|
||||||
(!HERE(BIRD) && (game.closng || !AT(FISSUR)))) {
|
(!HERE(BIRD) && (game.closng || !AT(FISSUR)))) {
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (HERE(BIRD))spk=ARB_206+MOD(game.prop[BIRD],2);
|
if (HERE(BIRD))spk=FREE_FLY+MOD(game.prop[BIRD],2);
|
||||||
if (spk == 206 && game.loc == game.place[STEPS] && game.prop[JADE] < 0) {
|
if (spk == 206 && game.loc == game.place[STEPS] && game.prop[JADE] < 0) {
|
||||||
DROP(JADE,game.loc);
|
DROP(JADE,game.loc);
|
||||||
game.prop[JADE]=0;
|
game.prop[JADE]=0;
|
||||||
--game.tally;
|
--game.tally;
|
||||||
spk=ARB_208;
|
spk=NECKLACE_FLY;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1024,7 +1024,7 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj)
|
||||||
}
|
}
|
||||||
else if (obj == KNIFE && game.knfloc == game.loc) {
|
else if (obj == KNIFE && game.knfloc == game.loc) {
|
||||||
game.knfloc= -1;
|
game.knfloc= -1;
|
||||||
spk=ARB_116;
|
spk=KNIVES_VANISH;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -1036,7 +1036,7 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj)
|
||||||
/* FALL THROUGH */;
|
/* FALL THROUGH */;
|
||||||
else {
|
else {
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(ARB_256);
|
RSPEAK(NO_SEE);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1058,7 +1058,7 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj)
|
||||||
case 1: /* DROP */ return GO_UNKNOWN;
|
case 1: /* DROP */ return GO_UNKNOWN;
|
||||||
case 2: /* SAY */ return GO_UNKNOWN;
|
case 2: /* SAY */ return GO_UNKNOWN;
|
||||||
case 3: /* UNLOC */ return lock(verb, INTRANSITIVE);
|
case 3: /* UNLOC */ return lock(verb, INTRANSITIVE);
|
||||||
case 4: /* NOTHI */ {RSPEAK(ARB_54); return(GO_CLEAROBJ);}
|
case 4: /* NOTHI */ {RSPEAK(OK_MAN); return(GO_CLEAROBJ);}
|
||||||
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
||||||
case 6: /* LIGHT */ return light(verb, INTRANSITIVE);
|
case 6: /* LIGHT */ return light(verb, INTRANSITIVE);
|
||||||
case 7: /* EXTIN */ return extinguish(verb, INTRANSITIVE);
|
case 7: /* EXTIN */ return extinguish(verb, INTRANSITIVE);
|
||||||
|
@ -1099,7 +1099,7 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj)
|
||||||
case 1: /* DROP */ return discard(verb, obj, false);
|
case 1: /* DROP */ return discard(verb, obj, false);
|
||||||
case 2: /* SAY */ return say();
|
case 2: /* SAY */ return say();
|
||||||
case 3: /* UNLOC */ return lock(verb, obj);
|
case 3: /* UNLOC */ return lock(verb, obj);
|
||||||
case 4: /* NOTHI */ {RSPEAK(ARB_54); return(GO_CLEAROBJ);}
|
case 4: /* NOTHI */ {RSPEAK(OK_MAN); return(GO_CLEAROBJ);}
|
||||||
case 5: /* LOCK */ return lock(verb, obj);
|
case 5: /* LOCK */ return lock(verb, obj);
|
||||||
case 6: /* LIGHT */ return light(verb, obj);
|
case 6: /* LIGHT */ return light(verb, obj);
|
||||||
case 7: /* EXTI */ return extinguish(verb, obj);
|
case 7: /* EXTI */ return extinguish(verb, obj);
|
||||||
|
@ -1134,7 +1134,7 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj)
|
||||||
case unknown:
|
case unknown:
|
||||||
/* Unknown verb, couldn't deduce object - might need hint */
|
/* Unknown verb, couldn't deduce object - might need hint */
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(ARB_255);
|
RSPEAK(WHAT_DO);
|
||||||
return GO_CHECKHINT;
|
return GO_CHECKHINT;
|
||||||
default:
|
default:
|
||||||
BUG(99);
|
BUG(99);
|
||||||
|
|
554
adventure.yaml
554
adventure.yaml
|
@ -746,283 +746,283 @@ locations: !!omap
|
||||||
|
|
||||||
arbitrary_messages: !!omap
|
arbitrary_messages: !!omap
|
||||||
- ARB_0: !!null
|
- ARB_0: !!null
|
||||||
- ARB_1: 'Somewhere nearby is Colossal Cave, where others have found fortunes in\ntreasure and gold, though it is rumored that some who enter are never\nseen again. Magic is said to work in the cave. I will be your eyes\nand hands. Direct me with commands of 1 or 2 words. I should warn\nyou that I look at only the first five letters of each word, so you''ll\nhave to enter "northeast" as "ne" to distinguish it from "north".\nYou can type "help" for some general hints. For information on how\nto end your adventure, scoring, etc., type "info".\n\t\t\t - - -\nThis program was originally developed by Willie Crowther. Most of the\nfeatures of the current program were added by Don Woods. Contact Don\nif you have any questions, comments, etc.'
|
- CAVE_NEARBY: 'Somewhere nearby is Colossal Cave, where others have found fortunes in\ntreasure and gold, though it is rumored that some who enter are never\nseen again. Magic is said to work in the cave. I will be your eyes\nand hands. Direct me with commands of 1 or 2 words. I should warn\nyou that I look at only the first five letters of each word, so you''ll\nhave to enter "northeast" as "ne" to distinguish it from "north".\nYou can type "help" for some general hints. For information on how\nto end your adventure, scoring, etc., type "info".\n\t\t\t - - -\nThis program was originally developed by Willie Crowther. Most of the\nfeatures of the current program were added by Don Woods. Contact Don\nif you have any questions, comments, etc.'
|
||||||
- ARB_2: 'A little dwarf with a big knife blocks your way.'
|
- DWARF_BLOCK: 'A little dwarf with a big knife blocks your way.'
|
||||||
- ARB_3: 'A little dwarf just walked around a corner, saw you, threw a little\naxe at you which missed, cursed, and ran away.'
|
- DWARF_RAN: 'A little dwarf just walked around a corner, saw you, threw a little\naxe at you which missed, cursed, and ran away.'
|
||||||
- ARB_4: 'There are %d threatening little dwarves in the room with you.'
|
- DWARF_PACK: 'There are %d threatening little dwarves in the room with you.'
|
||||||
- ARB_5: 'There is a threatening little dwarf in the room with you!'
|
- DWARF_SINGLE: 'There is a threatening little dwarf in the room with you!'
|
||||||
- ARB_6: 'One sharp nasty knife is thrown at you!'
|
- KNIFE_THROWN: 'One sharp nasty knife is thrown at you!'
|
||||||
- ARB_7: 'A hollow voice says "PLUGH".'
|
- SAYS_PLUGH: 'A hollow voice says "PLUGH".'
|
||||||
- ARB_8: 'It gets you!'
|
- GETS_YOU: 'It gets you!'
|
||||||
- ARB_9: 'It misses!'
|
- MISSES_YOU: 'It misses!'
|
||||||
- ARB_10: 'I am unsure how you are facing. Use compass points or nearby objects.'
|
- UNSURE_FACING: 'I am unsure how you are facing. Use compass points or nearby objects.'
|
||||||
- ARB_11: 'I don''t know in from out here. Use compass points or name something\nin the general direction you want to go.'
|
- NO_INOUT_HERE: 'I don''t know in from out here. Use compass points or name something\nin the general direction you want to go.'
|
||||||
- ARB_12: 'I don''t know how to apply that word here.'
|
- CANT_APPLY: 'I don''t know how to apply that word here.'
|
||||||
- ARB_13: 'You''re quite welcome.'
|
- YOUR_WELCOME: 'You''re quite welcome.'
|
||||||
- ARB_14: 'I''m game. Would you care to explain how?'
|
- AM_GAME: 'I''m game. Would you care to explain how?'
|
||||||
- ARB_15: 'Sorry, but I am not allowed to give more detail. I will repeat the\nlong description of your location.'
|
- NO_MORE_DETAIL: 'Sorry, but I am not allowed to give more detail. I will repeat the\nlong description of your location.'
|
||||||
- ARB_16: 'It is now pitch dark. If you proceed you will likely fall into a pit.'
|
- PITCH_DARK: 'It is now pitch dark. If you proceed you will likely fall into a pit.'
|
||||||
- ARB_17: 'If you prefer, simply type w rather than west.'
|
- W_IS_WEST: 'If you prefer, simply type w rather than west.'
|
||||||
- ARB_18: 'Are you trying to catch the bird?'
|
- BIRD_QUERY: 'Are you trying to catch the bird?'
|
||||||
- ARB_19: 'Something about you seems to be frightening the bird. Perhaps you\nmight figure out what it is.'
|
- SKITTISH_BIRD: 'Something about you seems to be frightening the bird. Perhaps you\nmight figure out what it is.'
|
||||||
- ARB_20: 'Are you trying to somehow deal with the snake?'
|
- SNAKE_QUERY: 'Are you trying to somehow deal with the snake?'
|
||||||
- ARB_21: 'You can''t kill the snake, or drive it away, or avoid it, or anything\nlike that. There is a way to get by, but you don''t have the necessary\nresources right now.'
|
- SNAKE_HINT: 'You can''t kill the snake, or drive it away, or avoid it, or anything\nlike that. There is a way to get by, but you don''t have the necessary\nresources right now.'
|
||||||
- ARB_22: 'Do you really want to quit now?'
|
- REALLY_QUIT: 'Do you really want to quit now?'
|
||||||
- ARB_23: 'You fell into a pit and broke every bone in your body!'
|
- PIT_FALL: 'You fell into a pit and broke every bone in your body!'
|
||||||
- ARB_24: 'You are already carrying it!'
|
- ALREADY_CARRYING: 'You are already carrying it!'
|
||||||
- ARB_25: 'You can''t be serious!'
|
- YOU_JOKING: 'You can''t be serious!'
|
||||||
- ARB_26: 'The bird seemed unafraid at first, but as you approach it becomes\ndisturbed and you cannot catch it.'
|
- BIRD_EVADES: 'The bird seemed unafraid at first, but as you approach it becomes\ndisturbed and you cannot catch it.'
|
||||||
- ARB_27: 'You can catch the bird, but you cannot carry it.'
|
- CANNOT_CARRY: 'You can catch the bird, but you cannot carry it.'
|
||||||
- ARB_28: 'There is nothing here with a lock!'
|
- NOTHING_LOCKED: 'There is nothing here with a lock!'
|
||||||
- ARB_29: 'You aren''t carrying it!'
|
- ARENT_CARRYING: 'You aren''t carrying it!'
|
||||||
- ARB_30: 'The little bird attacks the green snake, and in an astounding flurry\ndrives the snake away.'
|
- BIRD_ATTACKS: 'The little bird attacks the green snake, and in an astounding flurry\ndrives the snake away.'
|
||||||
- ARB_31: 'You have no keys!'
|
- NO_KEYS: 'You have no keys!'
|
||||||
- ARB_32: 'It has no lock.'
|
- NO_LOCK: 'It has no lock.'
|
||||||
- ARB_33: 'I don''t know how to lock or unlock such a thing.'
|
- NOT_LOCKABLE: 'I don''t know how to lock or unlock such a thing.'
|
||||||
- ARB_34: 'It was already locked.'
|
- ALREADY_LOCKED: 'It was already locked.'
|
||||||
- ARB_35: 'The grate is now locked.'
|
- GRATE_LOCKED: 'The grate is now locked.'
|
||||||
- ARB_36: 'The grate is now unlocked.'
|
- GRATE_UNLOCKED: 'The grate is now unlocked.'
|
||||||
- ARB_37: 'It was already unlocked.'
|
- ALREADY_UNLOCKED: 'It was already unlocked.'
|
||||||
- ARB_38: 'The urn is empty and will not light.'
|
- URN_EMPTY: 'The urn is empty and will not light.'
|
||||||
- ARB_39: 'Your lamp is now on.'
|
- LAMP_ON: 'Your lamp is now on.'
|
||||||
- ARB_40: 'Your lamp is now off.'
|
- LAMP_OFF: 'Your lamp is now off.'
|
||||||
- ARB_41: 'There is no way to get past the bear to unlock the chain, which is\nprobably just as well.'
|
- BEAR_BLOCKS: 'There is no way to get past the bear to unlock the chain, which is\nprobably just as well.'
|
||||||
- ARB_42: 'Nothing happens.'
|
- NOTHING_HAPPENS: 'Nothing happens.'
|
||||||
- ARB_43: 'Where?'
|
- WHERE_QUERY: 'Where?'
|
||||||
- ARB_44: 'There is nothing here to attack.'
|
- NO_TARGET: 'There is nothing here to attack.'
|
||||||
- ARB_45: 'The little bird is now dead. Its body disappears.'
|
- BIRD_DEAD: 'The little bird is now dead. Its body disappears.'
|
||||||
- ARB_46: 'Attacking the snake both doesn''t work and is very dangerous.'
|
- SNAKE_WARNING: 'Attacking the snake both doesn''t work and is very dangerous.'
|
||||||
- ARB_47: 'You killed a little dwarf.'
|
- KILLED_DWARF: 'You killed a little dwarf.'
|
||||||
- ARB_48: 'You attack a little dwarf, but he dodges out of the way.'
|
- DWARF_DODGES: 'You attack a little dwarf, but he dodges out of the way.'
|
||||||
- ARB_49: 'With what? Your bare hands?'
|
- BARE_HANDS_QUERY: 'With what? Your bare hands?'
|
||||||
- ARB_50: 'Good try, but that is an old worn-out magic word.'
|
- WORN_OUT: 'Good try, but that is an old worn-out magic word.'
|
||||||
- ARB_51: 'I know of places, actions, and things. Most of my vocabulary\ndescribes places and is used to move you there. To move, try words\nlike forest, building, downstream, enter, east, west, north, south,\nup, or down. I know about a few special objects, like a black rod\nhidden in the cave. These objects can be manipulated using some of\nthe action words that I know. Usually you will need to give both the\nobject and action words (in either order), but sometimes I can infer\nthe object from the verb alone. Some objects also imply verbs; in\nparticular, "inventory" implies "take inventory", which causes me to\ngive you a list of what you''re carrying. Some objects have unexpected\neffects; the effects are not always desirable! Usually people having\ntrouble moving just need to try a few more words. Usually people\ntrying unsuccessfully to manipulate an object are attempting something\nbeyond their (or my!) capabilities and should try a completely\ndifferent tack. One point often confusing to beginners is that, when\nthere are several ways to go in a certain direction (e.g., if there\nare several holes in a wall), choosing that direction in effect\nchooses one of the ways at random; often, though, by specifying the\nplace you want to reach you can guarantee choosing the right path.\nAlso, to speed the game you can sometimes move long distances with a\nsingle word. For example, "building" usually gets you to the building\nfrom anywhere above ground except when lost in the forest. Also, note\nthat cave passages and forest paths turn a lot, so leaving one place\nheading north doesn''t guarantee entering the next from the south.\nHowever (another important point), except when you''ve used a "long\ndistance" word such as "building", there is always a way to go back\nwhere you just came from unless I warn you to the contrary, even\nthough the direction that takes you back might not be the reverse of\nwhat got you here. Good luck, and have fun!'
|
- VOCAB_DESCRIPTION: 'I know of places, actions, and things. Most of my vocabulary\ndescribes places and is used to move you there. To move, try words\nlike forest, building, downstream, enter, east, west, north, south,\nup, or down. I know about a few special objects, like a black rod\nhidden in the cave. These objects can be manipulated using some of\nthe action words that I know. Usually you will need to give both the\nobject and action words (in either order), but sometimes I can infer\nthe object from the verb alone. Some objects also imply verbs; in\nparticular, "inventory" implies "take inventory", which causes me to\ngive you a list of what you''re carrying. Some objects have unexpected\neffects; the effects are not always desirable! Usually people having\ntrouble moving just need to try a few more words. Usually people\ntrying unsuccessfully to manipulate an object are attempting something\nbeyond their (or my!) capabilities and should try a completely\ndifferent tack. One point often confusing to beginners is that, when\nthere are several ways to go in a certain direction (e.g., if there\nare several holes in a wall), choosing that direction in effect\nchooses one of the ways at random; often, though, by specifying the\nplace you want to reach you can guarantee choosing the right path.\nAlso, to speed the game you can sometimes move long distances with a\nsingle word. For example, "building" usually gets you to the building\nfrom anywhere above ground except when lost in the forest. Also, note\nthat cave passages and forest paths turn a lot, so leaving one place\nheading north doesn''t guarantee entering the next from the south.\nHowever (another important point), except when you''ve used a "long\ndistance" word such as "building", there is always a way to go back\nwhere you just came from unless I warn you to the contrary, even\nthough the direction that takes you back might not be the reverse of\nwhat got you here. Good luck, and have fun!'
|
||||||
- ARB_52: 'There is no way to go that direction.'
|
- BAD_DIRECTION: 'There is no way to go that direction.'
|
||||||
- ARB_53: 'Please stick to 1- and 2-word commands.'
|
- TWO_WORDS: 'Please stick to 1- and 2-word commands.'
|
||||||
- ARB_54: 'OK'
|
- OK_MAN: 'OK'
|
||||||
- ARB_55: 'You can''t unlock the keys.'
|
- CANNOT_UNLOCK: 'You can''t unlock the keys.'
|
||||||
- ARB_56: 'You have crawled around in some little holes and wound up back in the\nmain passage.'
|
- FUTILE_CRAWL: 'You have crawled around in some little holes and wound up back in the\nmain passage.'
|
||||||
- ARB_57: 'I don''t know where the cave is, but hereabouts no stream can run on\nthe surface for long. I would try the stream.'
|
- FOLLOW_STREAM: 'I don''t know where the cave is, but hereabouts no stream can run on\nthe surface for long. I would try the stream.'
|
||||||
- ARB_58: 'I need more detailed instructions to do that.'
|
- NEED_DETAIL: 'I need more detailed instructions to do that.'
|
||||||
- ARB_59: 'I can only tell you what you see as you move about and manipulate\nthings. I cannot tell you where remote things are.'
|
- NEreplace: 'I can only tell you what you see as you move about and manipulate\nthings. I cannot tell you where remote things are.'
|
||||||
- ARB_60: 'The ogre snarls and shoves you back.'
|
- OGRE_SNARL: 'The ogre snarls and shoves you back.'
|
||||||
- ARB_61: 'Huh?'
|
- HUH_MAN: 'Huh?'
|
||||||
- ARB_62: 'Are you trying to get into the cave?'
|
- ENTRY_QUERY: 'Are you trying to get into the cave?'
|
||||||
- ARB_63: 'The grate is very solid and has a hardened steel lock. You cannot\nenter without a key, and there are no keys nearby. I would recommend\nlooking elsewhere for the keys.'
|
- HARD_GRATE: 'The grate is very solid and has a hardened steel lock. You cannot\nenter without a key, and there are no keys nearby. I would recommend\nlooking elsewhere for the keys.'
|
||||||
- ARB_64: 'The trees of the forest are large hardwood oak and maple, with an\noccasional grove of pine or spruce. There is quite a bit of under-\ngrowth, largely birch and ash saplings plus nondescript bushes of\nvarious sorts. This time of year visibility is quite restricted by\nall the leaves, but travel is quite easy if you detour around the\nspruce and berry bushes.'
|
- FOREST_LOOK: 'The trees of the forest are large hardwood oak and maple, with an\noccasional grove of pine or spruce. There is quite a bit of under-\ngrowth, largely birch and ash saplings plus nondescript bushes of\nvarious sorts. This time of year visibility is quite restricted by\nall the leaves, but travel is quite easy if you detour around the\nspruce and berry bushes.'
|
||||||
- ARB_65: 'Welcome to Adventure!! Would you like instructions?'
|
- WELCOME_YOU: 'Welcome to Adventure!! Would you like instructions?'
|
||||||
- ARB_66: 'Digging without a shovel is quite impractical. Even with a shovel\nprogress is unlikely.'
|
- DIGGING_FUTILE: 'Digging without a shovel is quite impractical. Even with a shovel\nprogress is unlikely.'
|
||||||
- ARB_67: 'Blasting requires dynamite.'
|
- REQUIRES_DYNAMITE: 'Blasting requires dynamite.'
|
||||||
- ARB_68: 'I''m as confused as you are.'
|
- IM_CONFUSED: 'I''m as confused as you are.'
|
||||||
- ARB_69: 'Mist is a white vapor, usually water, seen from time to time in\ncaverns. It can be found anywhere but is frequently a sign of a deep\npit leading down to water.'
|
- EXPLAIN_MIST: 'Mist is a white vapor, usually water, seen from time to time in\ncaverns. It can be found anywhere but is frequently a sign of a deep\npit leading down to water.'
|
||||||
- ARB_70: 'Your feet are now wet.'
|
- FEET_WET: 'Your feet are now wet.'
|
||||||
- ARB_71: 'I think I just lost my appetite.'
|
- LOST_APPETITE: 'I think I just lost my appetite.'
|
||||||
- ARB_72: 'Thank you, it was delicious!'
|
- THANKS_DELICIOUS: 'Thank you, it was delicious!'
|
||||||
- ARB_73: 'You have taken a drink from the stream. The water tastes strongly of\nminerals, but is not unpleasant. It is extremely cold.'
|
- STREAM_WATER: 'You have taken a drink from the stream. The water tastes strongly of\nminerals, but is not unpleasant. It is extremely cold.'
|
||||||
- ARB_74: 'The bottle of water is now empty.'
|
- BOTTLE_EMPTY: 'The bottle of water is now empty.'
|
||||||
- ARB_75: 'Rubbing the electric lamp is not particularly rewarding. Anyway,\nnothing exciting happens.'
|
- RUB_NOGO: 'Rubbing the electric lamp is not particularly rewarding. Anyway,\nnothing exciting happens.'
|
||||||
- ARB_76: 'Peculiar. Nothing unexpected happens.'
|
- PECULIAR_NOTHING: 'Peculiar. Nothing unexpected happens.'
|
||||||
- ARB_77: 'Your bottle is empty and the ground is wet.'
|
- GROUND_WET: 'Your bottle is empty and the ground is wet.'
|
||||||
- ARB_78: 'You can''t pour that.'
|
- CANT_POUR: 'You can''t pour that.'
|
||||||
- ARB_79: 'Watch it!'
|
- WATCH_IT: 'Watch it!'
|
||||||
- ARB_80: 'Which way?'
|
- WHICH_WAY: 'Which way?'
|
||||||
- ARB_81: 'Oh dear, you seem to have gotten yourself killed. I might be able to\nhelp you out, but I''ve never really done this before. Do you want me\nto try to reincarnate you?'
|
- REINCARNATE_QUERY: 'Oh dear, you seem to have gotten yourself killed. I might be able to\nhelp you out, but I''ve never really done this before. Do you want me\nto try to reincarnate you?'
|
||||||
- ARB_82: 'All right. But don''t blame me if something goes wr......\n --- POOF!! ---\nYou are engulfed in a cloud of orange smoke. Coughing and gasping,\nyou emerge from the smoke and find....'
|
- DONT_BLAME: 'All right. But don''t blame me if something goes wr......\n --- POOF!! ---\nYou are engulfed in a cloud of orange smoke. Coughing and gasping,\nyou emerge from the smoke and find....'
|
||||||
- ARB_83: 'You clumsy oaf, you''ve done it again! I don''t know how long I can\nkeep this up. Do you want me to try reincarnating you again?'
|
- CLUMSY_OAF: 'You clumsy oaf, you''ve done it again! I don''t know how long I can\nkeep this up. Do you want me to try reincarnating you again?'
|
||||||
- ARB_84: 'Okay, now where did I put my orange smoke?.... >POOF!<\nEverything disappears in a dense cloud of orange smoke.'
|
- ORANGE_SMOKE: 'Okay, now where did I put my orange smoke?.... >POOF!<\nEverything disappears in a dense cloud of orange smoke.'
|
||||||
- ARB_85: 'Now you''ve really done it! I''m out of orange smoke! You don''t expect\nme to do a decent reincarnation without any orange smoke, do you?'
|
- SMOKE_OUT: 'Now you''ve really done it! I''m out of orange smoke! You don''t expect\nme to do a decent reincarnation without any orange smoke, do you?'
|
||||||
- ARB_86: 'Okay, if you''re so smart, do it yourself! I''m leaving!'
|
- DOIT_YOURSELF: 'Okay, if you''re so smart, do it yourself! I''m leaving!'
|
||||||
- ARB_87: !!null
|
- GETS_YOU7: !!null
|
||||||
- ARB_88: !!null
|
- GETS_YOU8: !!null
|
||||||
- ARB_89: !!null
|
- GETS_YOU9: !!null
|
||||||
- ARB_90: '>>> messages 81 thru 90 are reserved for "obituaries". <<<'
|
- MISSES_YOU0: '>>> messages 81 thru 90 are reserved for "obituaries". <<<'
|
||||||
- ARB_91: 'Sorry, but I no longer seem to remember how it was you got here.'
|
- FORGOT_PATH: 'Sorry, but I no longer seem to remember how it was you got here.'
|
||||||
- ARB_92: 'You can''t carry anything more. You''ll have to drop something first.'
|
- CARRY_LIMIT: 'You can''t carry anything more. You''ll have to drop something first.'
|
||||||
- ARB_93: 'You can''t go through a locked steel grate!'
|
- GRATE_NOWAY: 'You can''t go through a locked steel grate!'
|
||||||
- ARB_94: 'I believe what you want is right here with you.'
|
- YOU_HAVEIT: 'I believe what you want is right here with you.'
|
||||||
- ARB_95: 'You don''t fit through a two-inch slit!'
|
- DONT_FIT: 'You don''t fit through a two-inch slit!'
|
||||||
- ARB_96: 'I respectfully suggest you go across the bridge instead of jumping.'
|
- CROSS_BRIDGE: 'I respectfully suggest you go across the bridge instead of jumping.'
|
||||||
- ARB_97: 'There is no way across the fissure.'
|
- NO_CROSS: 'There is no way across the fissure.'
|
||||||
- ARB_98: 'You''re not carrying anything.'
|
- NO_CARRY: 'You''re not carrying anything.'
|
||||||
- ARB_99: 'You are currently holding the following:'
|
- NOW_HOLDING: 'You are currently holding the following:'
|
||||||
- ARB_100: 'It''s not hungry (it''s merely pinin'' for the fjords). Besides, you\nhave no bird seed.'
|
- BIRD_PINING: 'It''s not hungry (it''s merely pinin'' for the fjords). Besides, you\nhave no bird seed.'
|
||||||
- ARB_101: 'The snake has now devoured your bird.'
|
- BIRD_DEVOURED: 'The snake has now devoured your bird.'
|
||||||
- ARB_102: 'There''s nothing here it wants to eat (except perhaps you).'
|
- NOTHING_EDIBLE: 'There''s nothing here it wants to eat (except perhaps you).'
|
||||||
- ARB_103: 'You fool, dwarves eat only coal! Now you''ve made him *REALLY* mad!!'
|
- REALLY_MAD: 'You fool, dwarves eat only coal! Now you''ve made him *REALLY* mad!!'
|
||||||
- ARB_104: 'You have nothing in which to carry it.'
|
- NO_CONTAINER: 'You have nothing in which to carry it.'
|
||||||
- ARB_105: 'Your bottle is already full.'
|
- BOTTLE_FULL: 'Your bottle is already full.'
|
||||||
- ARB_106: 'There is nothing here with which to fill the bottle.'
|
- NO_LIQUID: 'There is nothing here with which to fill the bottle.'
|
||||||
- ARB_107: 'Your bottle is now full of water.'
|
- BOTTLED_WATER: 'Your bottle is now full of water.'
|
||||||
- ARB_108: 'Your bottle is now full of oil.'
|
- BOTTLED_OIL: 'Your bottle is now full of oil.'
|
||||||
- ARB_109: 'You can''t fill that.'
|
- CANT_FILL: 'You can''t fill that.'
|
||||||
- ARB_110: 'Don''t be ridiculous!'
|
- RIDICULOUS_ATTEMPT: 'Don''t be ridiculous!'
|
||||||
- ARB_111: 'The door is extremely rusty and refuses to open.'
|
- RUSTY_DOOR: 'The door is extremely rusty and refuses to open.'
|
||||||
- ARB_112: 'The plant indignantly shakes the oil off its leaves and asks, "Water?"'
|
- SHAKING_LEAVES: 'The plant indignantly shakes the oil off its leaves and asks, "Water?"'
|
||||||
- ARB_113: 'The hinges are quite thoroughly rusted now and won''t budge.'
|
- RUSTED_HINGES: 'The hinges are quite thoroughly rusted now and won''t budge.'
|
||||||
- ARB_114: 'The oil has freed up the hinges so that the door will now move,\nalthough it requires some effort.'
|
- OILED_NINGES: 'The oil has freed up the hinges so that the door will now move,\nalthough it requires some effort.'
|
||||||
- ARB_115: 'The plant has exceptionally deep roots and cannot be pulled free.'
|
- DEEP_ROOTS: 'The plant has exceptionally deep roots and cannot be pulled free.'
|
||||||
- ARB_116: 'The dwarves'' knives vanish as they strike the walls of the cave.'
|
- KNIVES_VANISH: 'The dwarves'' knives vanish as they strike the walls of the cave.'
|
||||||
- ARB_117: 'Something you''re carrying won''t fit through the tunnel with you.\nYou''d best take inventory and drop something.'
|
- MUST_DROP: 'Something you''re carrying won''t fit through the tunnel with you.\nYou''d best take inventory and drop something.'
|
||||||
- ARB_118: 'You can''t fit this five-foot clam through that little passage!'
|
- CLAM_BLOCKER: 'You can''t fit this five-foot clam through that little passage!'
|
||||||
- ARB_119: 'You can''t fit this five-foot oyster through that little passage!'
|
- OYSTER_BLOCKER: 'You can''t fit this five-foot oyster through that little passage!'
|
||||||
- ARB_120: 'I advise you to put down the clam before opening it. >STRAIN!<'
|
- DROP_CLAM: 'I advise you to put down the clam before opening it. >STRAIN!<'
|
||||||
- ARB_121: 'I advise you to put down the oyster before opening it. >WRENCH!<'
|
- DROP_OYSTER: 'I advise you to put down the oyster before opening it. >WRENCH!<'
|
||||||
- ARB_122: 'You don''t have anything strong enough to open the clam.'
|
- CLAM_OPENER: 'You don''t have anything strong enough to open the clam.'
|
||||||
- ARB_123: 'You don''t have anything strong enough to open the oyster.'
|
- OYSTER_OPENER: 'You don''t have anything strong enough to open the oyster.'
|
||||||
- ARB_124: 'A glistening pearl falls out of the clam and rolls away. Goodness,\nthis must really be an oyster. (I never was very good at identifying\nbivalves.) Whatever it is, it has now snapped shut again.'
|
- PEARL_FALLS: 'A glistening pearl falls out of the clam and rolls away. Goodness,\nthis must really be an oyster. (I never was very good at identifying\nbivalves.) Whatever it is, it has now snapped shut again.'
|
||||||
- ARB_125: 'The oyster creaks open, revealing nothing but oyster inside. It\npromptly snaps shut again.'
|
- OYSTER_OPENS: 'The oyster creaks open, revealing nothing but oyster inside. It\npromptly snaps shut again.'
|
||||||
- ARB_126: 'You have crawled around in some little holes and found your way\nblocked by a recent cave-in. You are now back in the main passage.'
|
- WAY_BLOCKED: 'You have crawled around in some little holes and found your way\nblocked by a recent cave-in. You are now back in the main passage.'
|
||||||
- ARB_127: 'There are faint rustling noises from the darkness behind you.'
|
- PIRATE_RUSTLES: 'There are faint rustling noises from the darkness behind you.'
|
||||||
- ARB_128: 'Out from the shadows behind you pounces a bearded pirate! "Har, har,"\nhe chortles, "I''ll just take all this booty and hide it away with me\nchest deep in the maze!" He snatches your treasure and vanishes into\nthe gloom.'
|
- PIRATE_POUNCES: 'Out from the shadows behind you pounces a bearded pirate! "Har, har,"\nhe chortles, "I''ll just take all this booty and hide it away with me\nchest deep in the maze!" He snatches your treasure and vanishes into\nthe gloom.'
|
||||||
- ARB_129: 'A sepulchral voice reverberating through the cave, says, "Cave closing\nsoon. All adventurers exit immediately through main office."'
|
- CAVE_CLOSING: 'A sepulchral voice reverberating through the cave, says, "Cave closing\nsoon. All adventurers exit immediately through main office."'
|
||||||
- ARB_130: 'A mysterious recorded voice groans into life and announces:\n "This exit is closed. Please leave via main office."'
|
- EXIT_CLOSED: 'A mysterious recorded voice groans into life and announces:\n "This exit is closed. Please leave via main office."'
|
||||||
- ARB_131: 'It looks as though you''re dead. Well, seeing as how it''s so close to\nclosing time anyway, I think we''ll just call it a day.'
|
- DEATH_CLOSING: 'It looks as though you''re dead. Well, seeing as how it''s so close to\nclosing time anyway, I think we''ll just call it a day.'
|
||||||
- ARB_132: 'The sepulchral voice intones, "The cave is now closed." As the echoes\nfade, there is a blinding flash of light (and a small puff of orange\nsmoke). . . . As your eyes refocus, you look around and find...'
|
- CAVE_CLOSED: 'The sepulchral voice intones, "The cave is now closed." As the echoes\nfade, there is a blinding flash of light (and a small puff of orange\nsmoke). . . . As your eyes refocus, you look around and find...'
|
||||||
- ARB_133: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the dwarves in the rubble. You march through the hole\nand find yourself in the main office, where a cheering band of\nfriendly elves carry the conquering adventurer off into the sunset.'
|
- VICTORY_MESSAGE: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the dwarves in the rubble. You march through the hole\nand find yourself in the main office, where a cheering band of\nfriendly elves carry the conquering adventurer off into the sunset.'
|
||||||
- ARB_134: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the snakes in the rubble. A river of molten lava pours\nin through the hole, destroying everything in its path, including you!'
|
- DEFEAT_MESSAGE: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the snakes in the rubble. A river of molten lava pours\nin through the hole, destroying everything in its path, including you!'
|
||||||
- ARB_135: 'There is a loud explosion, and you are suddenly splashed across the\nwalls of the room.'
|
- SPLATTER_MESSAGE: 'There is a loud explosion, and you are suddenly splashed across the\nwalls of the room.'
|
||||||
- ARB_136: 'The resulting ruckus has awakened the dwarves. There are now several\nthreatening little dwarves in the room with you! Most of them throw\nknives at you! All of them get you!'
|
- DWARVES_AWAKEN: 'The resulting ruckus has awakened the dwarves. There are now several\nthreatening little dwarves in the room with you! Most of them throw\nknives at you! All of them get you!'
|
||||||
- ARB_137: 'Oh, leave the poor unhappy bird alone.'
|
- UNHAPPY_BIRD: 'Oh, leave the poor unhappy bird alone.'
|
||||||
- ARB_138: 'I daresay whatever you want is around here somewhere.'
|
- NEEDED_NEreplace: 'I daresay whatever you want is around here somewhere.'
|
||||||
- ARB_139: 'I don''t know the word "stop". Use "quit" if you want to give up.'
|
- STOP_UNKNOWN: 'I don''t know the word "stop". Use "quit" if you want to give up.'
|
||||||
- ARB_140: 'You can''t get there from here.'
|
- NOT_CONNECTED: 'You can''t get there from here.'
|
||||||
- ARB_141: 'You are being followed by a very large, tame bear.'
|
- TAME_BEAR: 'You are being followed by a very large, tame bear.'
|
||||||
- ARB_142: 'For a summary of the most recent changes to the game, say "news".\nIf you want to end your adventure early, say "quit". To suspend your\nadventure such that you can continue later, say "suspend" (or "pause"\nor "save"). To see how well you''re doing, say "score". To get full\ncredit for a treasure, you must have left it safely in the building,\nthough you get partial credit just for locating it. You lose points\nfor getting killed, or for quitting, though the former costs you more.\nThere are also points based on how much (if any) of the cave you''ve\nmanaged to explore; in particular, there is a large bonus just for\ngetting in (to distinguish the beginners from the rest of the pack),\nand there are other ways to determine whether you''ve been through some\nof the more harrowing sections. If you think you''ve found all the\ntreasures, just keep exploring for a while. If nothing interesting\nhappens, you haven''t found them all yet. If something interesting\n*DOES* happen (incidentally, there *ARE* ways to hasten things along),\nit means you''re getting a bonus and have an opportunity to garner many\nmore points in the Master''s section. I may occasionally offer hints\nif you seem to be having trouble. If I do, I''ll warn you in advance\nhow much it will affect your score to accept the hints. Finally, to\nsave time, you may specify "brief", which tells me never to repeat the\nfull description of a place unless you explicitly ask me to.'
|
- QUICK_START: 'For a summary of the most recent changes to the game, say "news".\nIf you want to end your adventure early, say "quit". To suspend your\nadventure such that you can continue later, say "suspend" (or "pause"\nor "save"). To see how well you''re doing, say "score". To get full\ncredit for a treasure, you must have left it safely in the building,\nthough you get partial credit just for locating it. You lose points\nfor getting killed, or for quitting, though the former costs you more.\nThere are also points based on how much (if any) of the cave you''ve\nmanaged to explore; in particular, there is a large bonus just for\ngetting in (to distinguish the beginners from the rest of the pack),\nand there are other ways to determine whether you''ve been through some\nof the more harrowing sections. If you think you''ve found all the\ntreasures, just keep exploring for a while. If nothing interesting\nhappens, you haven''t found them all yet. If something interesting\n*DOES* happen (incidentally, there *ARE* ways to hasten things along),\nit means you''re getting a bonus and have an opportunity to garner many\nmore points in the Master''s section. I may occasionally offer hints\nif you seem to be having trouble. If I do, I''ll warn you in advance\nhow much it will affect your score to accept the hints. Finally, to\nsave time, you may specify "brief", which tells me never to repeat the\nfull description of a place unless you explicitly ask me to.'
|
||||||
- ARB_143: 'Now let''s see you do it without suspending in mid-Adventure.'
|
- WITHOUT_SUSPENDS: 'Now let''s see you do it without suspending in mid-Adventure.'
|
||||||
- ARB_144: 'There is nothing here with which to fill it.'
|
- FILL_INVALID: 'There is nothing here with which to fill it.'
|
||||||
- ARB_145: 'The sudden change in temperature has delicately shattered the vase.'
|
- SHATTER_VASE: 'The sudden change in temperature has delicately shattered the vase.'
|
||||||
- ARB_146: 'It is beyond your power to do that.'
|
- BEYOND_POWER: 'It is beyond your power to do that.'
|
||||||
- ARB_147: 'I don''t know how.'
|
- NOT_KNOWHOW: 'I don''t know how.'
|
||||||
- ARB_148: 'It is too far up for you to reach.'
|
- TOO_FAR: 'It is too far up for you to reach.'
|
||||||
- ARB_149: 'You killed a little dwarf. The body vanishes in a cloud of greasy\nblack smoke.'
|
- DWARF_SMOKE: 'You killed a little dwarf. The body vanishes in a cloud of greasy\nblack smoke.'
|
||||||
- ARB_150: 'The shell is very strong and is impervious to attack.'
|
- SHELL_IMPERVIOUS: 'The shell is very strong and is impervious to attack.'
|
||||||
- ARB_151: 'What''s the matter, can''t you read? Now you''d best start over.'
|
- START_OVER: 'What''s the matter, can''t you read? Now you''d best start over.'
|
||||||
- ARB_152: 'The axe bounces harmlessly off the dragon''s thick scales.'
|
- DRAGON_SCALES: 'The axe bounces harmlessly off the dragon''s thick scales.'
|
||||||
- ARB_153: 'The dragon looks rather nasty. You''d best not try to get by.'
|
- NASTY_DRAGON: 'The dragon looks rather nasty. You''d best not try to get by.'
|
||||||
- ARB_154: 'The little bird attacks the green dragon, and in an astounding flurry\ngets burnt to a cinder. The ashes blow away.'
|
- BIRD_BURNT: 'The little bird attacks the green dragon, and in an astounding flurry\ngets burnt to a cinder. The ashes blow away.'
|
||||||
- ARB_155: 'On what?'
|
- ON_WHAT: 'On what?'
|
||||||
- ARB_156: 'Okay, from now on I''ll only describe a place in full the first time\nyou come to it. To get the full description, say "look".'
|
- BRIEF_CONFIRM: 'Okay, from now on I''ll only describe a place in full the first time\nyou come to it. To get the full description, say "look".'
|
||||||
- ARB_157: 'Trolls are close relatives with the rocks and have skin as tough as\nthat of a rhinoceros. The troll fends off your blows effortlessly.'
|
- ROCKY_TROLL: 'Trolls are close relatives with the rocks and have skin as tough as\nthat of a rhinoceros. The troll fends off your blows effortlessly.'
|
||||||
- ARB_158: 'The troll deftly catches the axe, examines it carefully, and tosses it\nback, declaring, "Good workmanship, but it''s not valuable enough."'
|
- TROLL_RETURNS: 'The troll deftly catches the axe, examines it carefully, and tosses it\nback, declaring, "Good workmanship, but it''s not valuable enough."'
|
||||||
- ARB_159: 'The troll catches your treasure and scurries away out of sight.'
|
- TROLL_SATISFIED: 'The troll catches your treasure and scurries away out of sight.'
|
||||||
- ARB_160: 'The troll refuses to let you cross.'
|
- TROLL_BLOCKS: 'The troll refuses to let you cross.'
|
||||||
- ARB_161: 'There is no longer any way across the chasm.'
|
- BRIDGE_GONE: 'There is no longer any way across the chasm.'
|
||||||
- ARB_162: 'Just as you reach the other side, the bridge buckles beneath the\nweight of the bear, which was still following you around. You\nscrabble desperately for support, but as the bridge collapses you\nstumble back and fall into the chasm.'
|
- BRIDGE_COLLAPSE: 'Just as you reach the other side, the bridge buckles beneath the\nweight of the bear, which was still following you around. You\nscrabble desperately for support, but as the bridge collapses you\nstumble back and fall into the chasm.'
|
||||||
- ARB_163: 'The bear lumbers toward the troll, who lets out a startled shriek and\nscurries away. The bear soon gives up the pursuit and wanders back.'
|
- TROLL_SCAMPERS: 'The bear lumbers toward the troll, who lets out a startled shriek and\nscurries away. The bear soon gives up the pursuit and wanders back.'
|
||||||
- ARB_164: 'The axe misses and lands near the bear where you can''t get at it.'
|
- AXE_LOST: 'The axe misses and lands near the bear where you can''t get at it.'
|
||||||
- ARB_165: 'With what? Your bare hands? Against *HIS* bear hands??'
|
- BEAR_HANDS: 'With what? Your bare hands? Against *HIS* bear hands??'
|
||||||
- ARB_166: 'The bear is confused; he only wants to be your friend.'
|
- BEAR_CONFUSED: 'The bear is confused; he only wants to be your friend.'
|
||||||
- ARB_167: 'For crying out loud, the poor thing is already dead!'
|
- ALREADY_DEAD: 'For crying out loud, the poor thing is already dead!'
|
||||||
- ARB_168: 'The bear eagerly wolfs down your food, after which he seems to calm\ndown considerably and even becomes rather friendly.'
|
- BEAR_TAMED: 'The bear eagerly wolfs down your food, after which he seems to calm\ndown considerably and even becomes rather friendly.'
|
||||||
- ARB_169: 'The bear is still chained to the wall.'
|
- BEAR_CHAINED: 'The bear is still chained to the wall.'
|
||||||
- ARB_170: 'The chain is still locked.'
|
- STILL_LOCKED: 'The chain is still locked.'
|
||||||
- ARB_171: 'The chain is now unlocked.'
|
- CHAIN_UNLOCKED: 'The chain is now unlocked.'
|
||||||
- ARB_172: 'The chain is now locked.'
|
- CHAIN_LOCKED: 'The chain is now locked.'
|
||||||
- ARB_173: 'There is nothing here to which the chain can be locked.'
|
- NO_LOCKSITE: 'There is nothing here to which the chain can be locked.'
|
||||||
- ARB_174: 'There is nothing here to eat.'
|
- NO_EDIBLES: 'There is nothing here to eat.'
|
||||||
- ARB_175: 'Do you want the hint?'
|
- WANT_HINT: 'Do you want the hint?'
|
||||||
- ARB_176: 'Do you need help getting out of the maze?'
|
- MAZE_HELP: 'Do you need help getting out of the maze?'
|
||||||
- ARB_177: 'You can make the passages look less alike by dropping things.'
|
- DROP_THINGS: 'You can make the passages look less alike by dropping things.'
|
||||||
- ARB_178: 'Are you trying to explore beyond the plover room?'
|
- PLOVER_QUERY: 'Are you trying to explore beyond the plover room?'
|
||||||
- ARB_179: 'There is a way to explore that region without having to worry about\nfalling into a pit. None of the objects available is immediately\nuseful in discovering the secret.'
|
- EXPLORE_HINT: 'There is a way to explore that region without having to worry about\nfalling into a pit. None of the objects available is immediately\nuseful in discovering the secret.'
|
||||||
- ARB_180: 'Do you need help getting out of here?'
|
- HELP_LEAVING: 'Do you need help getting out of here?'
|
||||||
- ARB_181: 'Don''t go west.'
|
- NOGO_WEST: 'Don''t go west.'
|
||||||
- ARB_182: 'Gluttony is not one of the troll''s vices. Avarice, however, is.'
|
- TROLL_VICES: 'Gluttony is not one of the troll''s vices. Avarice, however, is.'
|
||||||
- ARB_183: 'Your lamp is getting dim. You''d best start wrapping this up, unless\nyou can find some fresh batteries. I seem to recall there''s a vending\nmachine in the maze. Bring some coins with you.'
|
- LAMP_DIM: 'Your lamp is getting dim. You''d best start wrapping this up, unless\nyou can find some fresh batteries. I seem to recall there''s a vending\nmachine in the maze. Bring some coins with you.'
|
||||||
- ARB_184: 'Your lamp has run out of power.'
|
- LAMP_OUT: 'Your lamp has run out of power.'
|
||||||
- ARB_185: 'Please answer the question.'
|
- PLEASE_ANSWER: 'Please answer the question.'
|
||||||
- ARB_186: 'There are faint rustling noises from the darkness behind you. As you\nturn toward them, the beam of your lamp falls across a bearded pirate.\nHe is carrying a large chest. "Shiver me timbers!" he cries, "I''ve\nbeen spotted! I''d best hie meself off to the maze to hide me chest!"\nWith that, he vanishes into the gloom.'
|
- PIRATE_SPOTTED: 'There are faint rustling noises from the darkness behind you. As you\nturn toward them, the beam of your lamp falls across a bearded pirate.\nHe is carrying a large chest. "Shiver me timbers!" he cries, "I''ve\nbeen spotted! I''d best hie meself off to the maze to hide me chest!"\nWith that, he vanishes into the gloom.'
|
||||||
- ARB_187: 'Your lamp is getting dim. You''d best go back for those batteries.'
|
- GET_BATTERIES: 'Your lamp is getting dim. You''d best go back for those batteries.'
|
||||||
- ARB_188: 'Your lamp is getting dim. I''m taking the liberty of replacing the\nbatteries.'
|
- REPLACE_BATTERIES: 'Your lamp is getting dim. I''m taking the liberty of replacing the\nbatteries.'
|
||||||
- ARB_189: 'Your lamp is getting dim, and you''re out of spare batteries. You''d\nbest start wrapping this up.'
|
- MISSING_BATTERIES: 'Your lamp is getting dim, and you''re out of spare batteries. You''d\nbest start wrapping this up.'
|
||||||
- ARB_190: 'You sift your fingers through the dust, but succeed only in\nobliterating the cryptic message.'
|
- REMOVE_MESSAGE: 'You sift your fingers through the dust, but succeed only in\nobliterating the cryptic message.'
|
||||||
- ARB_191: 'Do you need help dealing with the ogre?'
|
- OGRE_QUERY: 'Do you need help dealing with the ogre?'
|
||||||
- ARB_192: 'Hmmm, this looks like a clue, which means it''ll cost you 10 points to\nread it. Should I go ahead and read it anyway?'
|
- CLUE_QUERY: 'Hmmm, this looks like a clue, which means it''ll cost you 10 points to\nread it. Should I go ahead and read it anyway?'
|
||||||
- ARB_193: 'It says, "There is a way out of this place. Do you need any more\ninformation to escape? Sorry, but this initial hint is all you get."'
|
- WAYOUT_CLUE: 'It says, "There is a way out of this place. Do you need any more\ninformation to escape? Sorry, but this initial hint is all you get."'
|
||||||
- ARB_194: 'There is nothing the presence of which will prevent you from defeating\nhim; thus it can''t hurt to fetch everything you possibly can.'
|
- OGRE_CLUE: 'There is nothing the presence of which will prevent you from defeating\nhim; thus it can''t hurt to fetch everything you possibly can.'
|
||||||
- ARB_195: 'I''m afraid I don''t understand.'
|
- DONT_UNDERSTAND: 'I''m afraid I don''t understand.'
|
||||||
- ARB_196: 'Your hand passes through it as though it weren''t there.'
|
- HAND_PASSTHROUGH: 'Your hand passes through it as though it weren''t there.'
|
||||||
- ARB_197: 'You strike the mirror a resounding blow, whereupon it shatters into a\nmyriad tiny fragments.'
|
- BREAK_MIRROR: 'You strike the mirror a resounding blow, whereupon it shatters into a\nmyriad tiny fragments.'
|
||||||
- ARB_198: 'You have taken the vase and hurled it delicately to the ground.'
|
- BREAK_VASE: 'You have taken the vase and hurled it delicately to the ground.'
|
||||||
- ARB_199: 'You prod the nearest dwarf, who wakes up grumpily, takes one look at\nyou, curses, and grabs for his axe.'
|
- PROD_DWARF: 'You prod the nearest dwarf, who wakes up grumpily, takes one look at\nyou, curses, and grabs for his axe.'
|
||||||
- ARB_200: 'Is this acceptable?'
|
- THIS_ACCEPTABLE: 'Is this acceptable?'
|
||||||
- ARB_201: 'This adventure is already over. To start a new adventure, or to\nresume an earlier adventure, please run a fresh copy of the program.'
|
- ALREADY_OVER: 'This adventure is already over. To start a new adventure, or to\nresume an earlier adventure, please run a fresh copy of the program.'
|
||||||
- ARB_202: 'The ogre doesn''t appear to be hungry.'
|
- OGRE_FULL: 'The ogre doesn''t appear to be hungry.'
|
||||||
- ARB_203: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack. He seems almost amused by your puny effort.'
|
- OGRE_DOFGE: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack. He seems almost amused by your puny effort.'
|
||||||
- ARB_204: 'The ogre, distracted by your rush, is struck by the knife. With a\nblood-curdling yell he turns and bounds after the dwarves, who flee\nin panic. You are left alone in the room.'
|
- OGRE_PANIC1: 'The ogre, distracted by your rush, is struck by the knife. With a\nblood-curdling yell he turns and bounds after the dwarves, who flee\nin panic. You are left alone in the room.'
|
||||||
- ARB_205: 'The ogre, distracted by your rush, is struck by the knife. With a\nblood-curdling yell he turns and bounds after the dwarf, who flees\nin panic. You are left alone in the room.'
|
- OGRE_PANIC2: 'The ogre, distracted by your rush, is struck by the knife. With a\nblood-curdling yell he turns and bounds after the dwarf, who flees\nin panic. You are left alone in the room.'
|
||||||
- ARB_206: 'The bird flies about agitatedly for a moment.'
|
- FREE_FLY: 'The bird flies about agitatedly for a moment.'
|
||||||
- ARB_207: 'The bird flies agitatedly about the cage.'
|
- CAGE_FLY: 'The bird flies agitatedly about the cage.'
|
||||||
- ARB_208: 'The bird flies about agitatedly for a moment, then disappears through\nthe crack. It reappears shortly, carrying in its beak a jade\nnecklace, which it drops at your feet.'
|
- NECKLACE_FLY: 'The bird flies about agitatedly for a moment, then disappears through\nthe crack. It reappears shortly, carrying in its beak a jade\nnecklace, which it drops at your feet.'
|
||||||
- ARB_209: 'The urn is now lit.'
|
- URN_LIT: 'The urn is now lit.'
|
||||||
- ARB_210: 'The urn is now dark.'
|
- URN_DARK: 'The urn is now dark.'
|
||||||
- ARB_211: 'You empty the bottle into the urn, which promptly ejects the water\nwith uncanny accuracy, squirting you directly between the eyes.'
|
- WATER_URN: 'You empty the bottle into the urn, which promptly ejects the water\nwith uncanny accuracy, squirting you directly between the eyes.'
|
||||||
- ARB_212: 'Your bottle is now empty and the urn is full of oil.'
|
- OIL_URN: 'Your bottle is now empty and the urn is full of oil.'
|
||||||
- ARB_213: 'The urn is already full of oil.'
|
- FULL_URN: 'The urn is already full of oil.'
|
||||||
- ARB_214: 'There''s no way to get the oil out of the urn.'
|
- URN_NOPOUR: 'There''s no way to get the oil out of the urn.'
|
||||||
- ARB_215: 'The urn is far too firmly embedded for your puny strength to budge it.'
|
- URN_NOBUDGE: 'The urn is far too firmly embedded for your puny strength to budge it.'
|
||||||
- ARB_216: 'As you rub the urn, there is a flash of light and a genie appears.\nHis aspect is stern as he advises: "One who wouldst traffic in\nprecious stones must first learn to recognize the signals thereof."\nHe wrests the urn from the stone, leaving a small cavity. Turning to\nface you again, he fixes you with a steely eye and intones: "Caution!"\nGenie and urn vanish in a cloud of amber smoke. The smoke condenses\nto form a rare amber gemstone, resting in the cavity in the rock.'
|
- URN_GENIES: 'As you rub the urn, there is a flash of light and a genie appears.\nHis aspect is stern as he advises: "One who wouldst traffic in\nprecious stones must first learn to recognize the signals thereof."\nHe wrests the urn from the stone, leaving a small cavity. Turning to\nface you again, he fixes you with a steely eye and intones: "Caution!"\nGenie and urn vanish in a cloud of amber smoke. The smoke condenses\nto form a rare amber gemstone, resting in the cavity in the rock.'
|
||||||
- ARB_217: 'I suppose you collect doughnut holes, too?'
|
- DOUGHNUT_HOLES: 'I suppose you collect doughnut holes, too?'
|
||||||
- ARB_218: 'The gem fits easily into the cavity.'
|
- GEM_FITS: 'The gem fits easily into the cavity.'
|
||||||
- ARB_219: 'The persian rug stiffens and rises a foot or so off the ground.'
|
- RUG_RISES: 'The persian rug stiffens and rises a foot or so off the ground.'
|
||||||
- ARB_220: 'The persian rug draped over your shoulder seems to wriggle for a\nmoment, but then subsides.'
|
- RUG_WIGGLES: 'The persian rug draped over your shoulder seems to wriggle for a\nmoment, but then subsides.'
|
||||||
- ARB_221: 'The persian rug settles gently to the ground.'
|
- RUG_SETTLES: 'The persian rug settles gently to the ground.'
|
||||||
- ARB_222: 'The rug hovers stubbornly where it is.'
|
- RUG_HOVERS: 'The rug hovers stubbornly where it is.'
|
||||||
- ARB_223: 'The rug does not appear inclined to cooperate.'
|
- RUG_NOTHING1: 'The rug does not appear inclined to cooperate.'
|
||||||
- ARB_224: 'If you mean to use the persian rug, it does not appear inclined to\ncooperate.'
|
- RUG_NOTHING2: 'If you mean to use the persian rug, it does not appear inclined to\ncooperate.'
|
||||||
- ARB_225: 'Though you flap your arms furiously, it is to no avail.'
|
- FLAP_ARMS: 'Though you flap your arms furiously, it is to no avail.'
|
||||||
- ARB_226: 'You board the persian rug, which promptly whisks you across the chasm.\nYou have time for a fleeting glimpse of a two thousand foot drop to a\nmighty river; then you find yourself on the other side.'
|
- RUG_GOES: 'You board the persian rug, which promptly whisks you across the chasm.\nYou have time for a fleeting glimpse of a two thousand foot drop to a\nmighty river; then you find yourself on the other side.'
|
||||||
- ARB_227: 'The rug ferries you back across the chasm.'
|
- RUG_RETURNS: 'The rug ferries you back across the chasm.'
|
||||||
- ARB_228: 'All is silent.'
|
- ALL_SILENT: 'All is silent.'
|
||||||
- ARB_229: 'The stream is gurgling placidly.'
|
- STREAM_GURGLES: 'The stream is gurgling placidly.'
|
||||||
- ARB_230: 'The wind whistles coldly past your ears.'
|
- WIND_WHISTLES: 'The wind whistles coldly past your ears.'
|
||||||
- ARB_231: 'The stream splashes loudly into the pool.'
|
- STREAM_SPLASHES: 'The stream splashes loudly into the pool.'
|
||||||
- ARB_232: 'You are unable to make anything of the splashing noise.'
|
- NO_MEANING: 'You are unable to make anything of the splashing noise.'
|
||||||
- ARB_233: 'You can hear the murmuring of the beanstalks and the snoring of the\ndwarves.'
|
- MURMURING_SNORING: 'You can hear the murmuring of the beanstalks and the snoring of the\ndwarves.'
|
||||||
- ARB_234: 'A loud hissing emanates from the snake pit.'
|
- SNAKES_HISSING: 'A loud hissing emanates from the snake pit.'
|
||||||
- ARB_235: 'The air is filled with a dull rumbling sound.'
|
- DULL_RUMBLING: 'The air is filled with a dull rumbling sound.'
|
||||||
- ARB_236: 'The roar is quite loud here.'
|
- LOUD_ROAR: 'The roar is quite loud here.'
|
||||||
- ARB_237: 'The roaring is so loud that it drowns out all other sound.'
|
- TOTAL_ROAR: 'The roaring is so loud that it drowns out all other sound.'
|
||||||
- ARB_238: 'The bird eyes you suspiciously and flutters away. A moment later you\nfeel something wet land on your head, but upon looking up you can see\nno sign of the culprit.'
|
- BIRD_CRAP: 'The bird eyes you suspiciously and flutters away. A moment later you\nfeel something wet land on your head, but upon looking up you can see\nno sign of the culprit.'
|
||||||
- ARB_239: 'There are only a few drops--not enough to carry.'
|
- FEW_DROPS: 'There are only a few drops--not enough to carry.'
|
||||||
- ARB_240: 'Your head buzzes strangely for a moment.'
|
- HEAD_BUZZES: 'Your head buzzes strangely for a moment.'
|
||||||
- ARB_241: '(Uh, y''know, that wasn''t very bright.)'
|
- NOT_BRIGHT: '(Uh, y''know, that wasn''t very bright.)'
|
||||||
- ARB_242: 'It''s a pity you took so long about it.'
|
- TOOK_LONG: 'It''s a pity you took so long about it.'
|
||||||
- ARB_243: 'Are you wondering what to do here?'
|
- WONDERING_QUERY: 'Are you wondering what to do here?'
|
||||||
- ARB_244: 'This section is quite advanced. Find the cave first.'
|
- ADVANCED_SECTION: 'This section is quite advanced. Find the cave first.'
|
||||||
- ARB_245: 'Upstream or downstream?'
|
- UPSTREAM_DOWNSTREAM: 'Upstream or downstream?'
|
||||||
- ARB_246: 'Wizards are not to be disturbed by such as you.'
|
- WIZARDS_NODISTURB: 'Wizards are not to be disturbed by such as you.'
|
||||||
- ARB_247: 'Would you like to be shown out of the forest?'
|
- FOREST_QUERY: 'Would you like to be shown out of the forest?'
|
||||||
- ARB_248: 'Go east ten times. If that doesn''t get you out, then go south, then\nwest twice, then south.'
|
- GO_EAST: 'Go east ten times. If that doesn''t get you out, then go south, then\nwest twice, then south.'
|
||||||
- ARB_249: 'The waters are crashing loudly against the shore.'
|
- WATERS_CRASHING: 'The waters are crashing loudly against the shore.'
|
||||||
- ARB_250: '%d of them throw knives at you!'
|
- THROWN_KNIVES: '%d of them throw knives at you!'
|
||||||
- ARB_251: '%d of them get you!'
|
- MULTIPLE_HITS: '%d of them get you!'
|
||||||
- ARB_252: 'One of them gets you!'
|
- ONE_HIT: 'One of them gets you!'
|
||||||
- ARB_253: 'None of them hits you!'
|
- NONE_HIT: 'None of them hits you!'
|
||||||
- ARB_254: 'Sorry, I don''t know the word "%s".'
|
- DONT_KNOW: 'Sorry, I don''t know the word "%s".'
|
||||||
- ARB_255: 'What do you want to do with the %L?'
|
- WHAT_DO: 'What do you want to do with the %L?'
|
||||||
- ARB_256: 'I see no %L here.'
|
- NO_SEE: 'I see no %L here.'
|
||||||
- ARB_257: '%C what?'
|
- DO_WHAT: '%C what?'
|
||||||
- ARB_258: 'Okay, "%s".'
|
- OKEY_DOKEY: 'Okay, "%s".'
|
||||||
- ARB_259: 'You have garnered %d out of a possible %d points, using %d turn%S.'
|
- GARNERED_POINTS: 'You have garnered %d out of a possible %d points, using %d turn%S.'
|
||||||
- ARB_260: 'I can suspend your Adventure for you so that you can resume later, but\nit will cost you 5 points.'
|
- SUSPEND_WARNING: 'I can suspend your Adventure for you so that you can resume later, but\nit will cost you 5 points.'
|
||||||
- ARB_261: 'I am prepared to give you a hint, but it will cost you %d point%S.'
|
- HINT_COST: 'I am prepared to give you a hint, but it will cost you %d point%S.'
|
||||||
- ARB_262: 'You scored %d out of a possible %d, using %d turn%S.'
|
- TOTAL_SCORE: 'You scored %d out of a possible %d, using %d turn%S.'
|
||||||
- ARB_263: 'To achieve the next higher rating, you need %d more point%S.'
|
- NEXT_HIGHER: 'To achieve the next higher rating, you need %d more point%S.'
|
||||||
- ARB_264: 'To achieve the next higher rating would be a neat trick!\nCongratulations!!'
|
- NO_HIGHER: 'To achieve the next higher rating would be a neat trick!\nCongratulations!!'
|
||||||
- ARB_265: 'You just went off my scale!!'
|
- OFF_SCALE: 'You just went off my scale!!'
|
||||||
- ARB_266: 'To resume your Adventure, start a new game and then say "RESUME".'
|
- RESUME_HELP: 'To resume your Adventure, start a new game and then say "RESUME".'
|
||||||
- ARB_267: 'Table space used:\n%d of %d words of messages %d of %d travel options\n%d of %d vocabulary words %d of %d locations\n%d of %d objects %d of %d action verbs\n%d of %d "random" messages %d of %d "class" messages\n%d of %d hints %d of %d turn threshholds'
|
- TABLE_SPACE: 'Table space used:\n%d of %d words of messages %d of %d travel options\n%d of %d vocabulary words %d of %d locations\n%d of %d objects %d of %d action verbs\n%d of %d "random" messages %d of %d "class" messages\n%d of %d hints %d of %d turn threshholds'
|
||||||
- ARB_268: 'To resume an earlier Adventure, you must abandon the current one.'
|
- RESUME_ABANDON: 'To resume an earlier Adventure, you must abandon the current one.'
|
||||||
- ARB_269: 'I''m sorry, but that Adventure was begun using Version%d.%d of the\nprogram, and this is Version%d.%d. You must find the other version\nin order to resume that Adventure.'
|
- VERSION_SKEW: 'I''m sorry, but that Adventure was begun using Version%d.%d of the\nprogram, and this is Version%d.%d. You must find the other version\nin order to resume that Adventure.'
|
||||||
- ARB_270: 'A dark fog creeps in to surround you. From somewhere in the fog you\nhear a stern voice. "This Adventure has been tampered with! You have\nbeen dabbling in magic, knowing not the havoc you might cause thereby.\nLeave at once, before you do irrevocable harm!" The fog thickens,\nuntil at last you can see nothing at all. Your vision then clears,\nand you find yourself back in The Real World.'
|
- DAVE_TAMPERING: 'A dark fog creeps in to surround you. From somewhere in the fog you\nhear a stern voice. "This Adventure has been tampered with! You have\nbeen dabbling in magic, knowing not the havoc you might cause thereby.\nLeave at once, before you do irrevocable harm!" The fog thickens,\nuntil at last you can see nothing at all. Your vision then clears,\nand you find yourself back in The Real World.'
|
||||||
- ARB_271: 'Guess again.'
|
- GUESS_AGAIN: 'Guess again.'
|
||||||
- ARB_272: 'You''re missing only one other treasure. Do you need help finding it?'
|
- MISSING_ONE: 'You''re missing only one other treasure. Do you need help finding it?'
|
||||||
- ARB_273: 'Once you''ve found all the other treasures, it is no longer possible to\nlocate the one you''re now missing.'
|
- NO_LOCATE: 'Once you''ve found all the other treasures, it is no longer possible to\nlocate the one you''re now missing.'
|
||||||
- ARB_274: 'Sorry, but the path twisted and turned so much that I can''t figure\nout which way to go to get back.'
|
- TWIST_TURN: 'Sorry, but the path twisted and turned so much that I can''t figure\nout which way to go to get back.'
|
||||||
- ARB_275: 'Open Adventure is an author-approved open-source release of\nVersion 2.5 with, as yet, no gameplay changes.\nVersion 2.5 was essentially the same as Version II; the cave and the\nhazards therein are unchanged, and top score is still 430 points.\nThere are a few more hints, especially for some of the more obscure\npuzzles. There are a few minor bugfixes and cosmetic changes. You\ncan now save a game and resume it at once (formerly you had to wait a\nwhile first), but it now costs you a few points each time you save the\ngame. Saved games are now stored in much smaller files than before.'
|
- ADVENTURE_NEWS: 'Open Adventure is an author-approved open-source release of\nVersion 2.5 with, as yet, no gameplay changes.\nVersion 2.5 was essentially the same as Version II; the cave and the\nhazards therein are unchanged, and top score is still 430 points.\nThere are a few more hints, especially for some of the more obscure\npuzzles. There are a few minor bugfixes and cosmetic changes. You\ncan now save a game and resume it at once (formerly you had to wait a\nwhile first), but it now costs you a few points each time you save the\ngame. Saved games are now stored in much smaller files than before.'
|
||||||
- ARB_276: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.'
|
- GO_UNNEEDED: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.'
|
||||||
- ARB_277: !!null
|
- CANNOT_CARRY7: !!null
|
||||||
|
|
||||||
class_messages: !!omap
|
class_messages: !!omap
|
||||||
- CLS_0: !!null
|
- CLS_0: !!null
|
||||||
|
|
88
main.c
88
main.c
|
@ -126,7 +126,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
/* Start-up, dwarf stuff */
|
/* Start-up, dwarf stuff */
|
||||||
game.zzword=RNDVOC(3,0);
|
game.zzword=RNDVOC(3,0);
|
||||||
game.novice=YES(stdin, ARB_65,ARB_1,ARB_0);
|
game.novice=YES(stdin, WELCOME_YOU,CAVE_NEARBY,ARB_0);
|
||||||
game.newloc=1;
|
game.newloc=1;
|
||||||
game.loc=1;
|
game.loc=1;
|
||||||
game.limit=330;
|
game.limit=330;
|
||||||
|
@ -244,11 +244,11 @@ static void checkhints(FILE *cmdin)
|
||||||
|
|
||||||
/* Fall through to hint display */
|
/* Fall through to hint display */
|
||||||
game.hintlc[hint]=0;
|
game.hintlc[hint]=0;
|
||||||
if (!YES(cmdin,HINTS[hint][3],ARB_0,ARB_54))
|
if (!YES(cmdin,HINTS[hint][3],ARB_0,OK_MAN))
|
||||||
return;
|
return;
|
||||||
SETPRM(1,HINTS[hint][2],HINTS[hint][2]);
|
SETPRM(1,HINTS[hint][2],HINTS[hint][2]);
|
||||||
RSPEAK(ARB_261);
|
RSPEAK(HINT_COST);
|
||||||
game.hinted[hint]=YES(cmdin,ARB_175,HINTS[hint][4],ARB_54);
|
game.hinted[hint]=YES(cmdin,WANT_HINT,HINTS[hint][4],OK_MAN);
|
||||||
if (game.hinted[hint] && game.limit > 30)
|
if (game.hinted[hint] && game.limit > 30)
|
||||||
game.limit=game.limit+30*HINTS[hint][2];
|
game.limit=game.limit+30*HINTS[hint][2];
|
||||||
}
|
}
|
||||||
|
@ -286,7 +286,7 @@ bool spotted_by_pirate(int i)
|
||||||
}
|
}
|
||||||
/* Force chest placement before player finds last treasure */
|
/* Force chest placement before player finds last treasure */
|
||||||
if (game.tally == 1 && snarfed == 0 && game.place[CHEST] == 0 && HERE(LAMP) && game.prop[LAMP] == 1) {
|
if (game.tally == 1 && snarfed == 0 && game.place[CHEST] == 0 && HERE(LAMP) && game.prop[LAMP] == 1) {
|
||||||
RSPEAK(ARB_186);
|
RSPEAK(PIRATE_SPOTTED);
|
||||||
movechest = true;
|
movechest = true;
|
||||||
}
|
}
|
||||||
/* Do things in this order (chest move before robbery) so chest is listed
|
/* Do things in this order (chest move before robbery) so chest is listed
|
||||||
|
@ -301,10 +301,10 @@ bool spotted_by_pirate(int i)
|
||||||
/* You might get a hint of the pirate's presence even if the
|
/* You might get a hint of the pirate's presence even if the
|
||||||
* chest doesn't move... */
|
* chest doesn't move... */
|
||||||
if (game.odloc[PIRATE] != game.dloc[PIRATE] && PCT(20))
|
if (game.odloc[PIRATE] != game.dloc[PIRATE] && PCT(20))
|
||||||
RSPEAK(ARB_127);
|
RSPEAK(PIRATE_RUSTLES);
|
||||||
}
|
}
|
||||||
if (robplayer) {
|
if (robplayer) {
|
||||||
RSPEAK(ARB_128);
|
RSPEAK(PIRATE_POUNCES);
|
||||||
for (int j=MINTRS; j<=MAXTRS; j++) {
|
for (int j=MINTRS; j<=MAXTRS; j++) {
|
||||||
if (!(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
|
if (!(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
|
||||||
if (AT(j) && game.fixed[j] == 0)
|
if (AT(j) && game.fixed[j] == 0)
|
||||||
|
@ -364,7 +364,7 @@ static bool dwarfmove(void)
|
||||||
game.dloc[i]=DALTLC;
|
game.dloc[i]=DALTLC;
|
||||||
game.odloc[i]=game.dloc[i];
|
game.odloc[i]=game.dloc[i];
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_3);
|
RSPEAK(DWARF_RAN);
|
||||||
DROP(AXE,game.loc);
|
DROP(AXE,game.loc);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -431,13 +431,13 @@ static bool dwarfmove(void)
|
||||||
if (game.dtotal == 0)
|
if (game.dtotal == 0)
|
||||||
return true;
|
return true;
|
||||||
SETPRM(1,game.dtotal,0);
|
SETPRM(1,game.dtotal,0);
|
||||||
RSPEAK(ARB_4+1/game.dtotal); /* FIXME: Arithmetic on message number */
|
RSPEAK(DWARF_PACK+1/game.dtotal); /* FIXME: Arithmetic on message number */
|
||||||
if (attack == 0)
|
if (attack == 0)
|
||||||
return true;
|
return true;
|
||||||
if (game.dflag == 2)game.dflag=3;
|
if (game.dflag == 2)game.dflag=3;
|
||||||
SETPRM(1,attack,0);
|
SETPRM(1,attack,0);
|
||||||
int k=6;
|
int k=6;
|
||||||
if (attack > 1)k=ARB_250;
|
if (attack > 1)k=THROWN_KNIVES;
|
||||||
RSPEAK(k);
|
RSPEAK(k);
|
||||||
SETPRM(1,stick,0);
|
SETPRM(1,stick,0);
|
||||||
RSPEAK(k+1+2/(1+stick)); /* FIXME: Arithmetic on message number */
|
RSPEAK(k+1+2/(1+stick)); /* FIXME: Arithmetic on message number */
|
||||||
|
@ -474,11 +474,11 @@ static void croak(FILE *cmdin)
|
||||||
if (game.closng) {
|
if (game.closng) {
|
||||||
/* He died during closing time. No resurrection. Tally up a
|
/* He died during closing time. No resurrection. Tally up a
|
||||||
* death and exit. */
|
* death and exit. */
|
||||||
RSPEAK(ARB_131);
|
RSPEAK(DEATH_CLOSING);
|
||||||
score(0);
|
score(0);
|
||||||
} else {
|
} else {
|
||||||
/* FIXME: Arithmetic on message numbers */
|
/* FIXME: Arithmetic on message numbers */
|
||||||
if (!YES(cmdin,ARB_79+game.numdie*2,ARB_80+game.numdie*2,ARB_54))
|
if (!YES(cmdin,WATCH_IT+game.numdie*2,WHICH_WAY+game.numdie*2,OK_MAN))
|
||||||
score(0);
|
score(0);
|
||||||
if (game.numdie == MAXDIE)
|
if (game.numdie == MAXDIE)
|
||||||
score(0);
|
score(0);
|
||||||
|
@ -524,8 +524,8 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
game.oldlc2=game.oldloc;
|
game.oldlc2=game.oldloc;
|
||||||
game.oldloc=game.loc;
|
game.oldloc=game.loc;
|
||||||
k2=0;
|
k2=0;
|
||||||
if (motion == game.loc)k2=ARB_91;
|
if (motion == game.loc)k2=FORGOT_PATH;
|
||||||
if (CNDBIT(game.loc,NOBACK))k2=ARB_274;
|
if (CNDBIT(game.loc,NOBACK))k2=TWIST_TURN;
|
||||||
if (k2 == 0) {
|
if (k2 == 0) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
scratchloc=MOD((labs(TRAVEL[kk])/1000),1000);
|
scratchloc=MOD((labs(TRAVEL[kk])/1000),1000);
|
||||||
|
@ -540,7 +540,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
}
|
}
|
||||||
kk=k2;
|
kk=k2;
|
||||||
if (kk == 0) {
|
if (kk == 0) {
|
||||||
RSPEAK(ARB_140);
|
RSPEAK(NOT_CONNECTED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -558,7 +558,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
/* Look. Can't give more detail. Pretend it wasn't dark
|
/* Look. Can't give more detail. Pretend it wasn't dark
|
||||||
* (though it may "now" be dark) so he won't fall into a
|
* (though it may "now" be dark) so he won't fall into a
|
||||||
* pit while staring into the gloom. */
|
* pit while staring into the gloom. */
|
||||||
if (game.detail < 3)RSPEAK(ARB_15);
|
if (game.detail < 3)RSPEAK(NO_MORE_DETAIL);
|
||||||
++game.detail;
|
++game.detail;
|
||||||
game.wzdark=false;
|
game.wzdark=false;
|
||||||
game.abbrev[game.loc]=0;
|
game.abbrev[game.loc]=0;
|
||||||
|
@ -566,7 +566,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
}
|
}
|
||||||
else if (motion == CAVE) {
|
else if (motion == CAVE) {
|
||||||
/* Cave. Different messages depending on whether above ground. */
|
/* Cave. Different messages depending on whether above ground. */
|
||||||
RSPEAK((OUTSID(game.loc) && game.loc != 8) ? ARB_57 : ARB_58);
|
RSPEAK((OUTSID(game.loc) && game.loc != 8) ? FOLLOW_STREAM : NEED_DETAIL);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -583,14 +583,14 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
if (TRAVEL[kk] < 0) {
|
if (TRAVEL[kk] < 0) {
|
||||||
/* Non-applicable motion. Various messages depending on
|
/* Non-applicable motion. Various messages depending on
|
||||||
* word given. */
|
* word given. */
|
||||||
int spk=ARB_12;
|
int spk=CANT_APPLY;
|
||||||
if (motion >= 43 && motion <= 50)spk=ARB_52;
|
if (motion >= 43 && motion <= 50)spk=BAD_DIRECTION;
|
||||||
if (motion == 29 || motion == 30)spk=ARB_52;
|
if (motion == 29 || motion == 30)spk=BAD_DIRECTION;
|
||||||
if (motion == 7 || motion == 36 || motion == 37)spk=ARB_10;
|
if (motion == 7 || motion == 36 || motion == 37)spk=UNSURE_FACING;
|
||||||
if (motion == 11 || motion == 19)spk=ARB_11;
|
if (motion == 11 || motion == 19)spk=NO_INOUT_HERE;
|
||||||
if (verb == FIND || verb == INVENT)spk=ARB_59;
|
if (verb == FIND || verb == INVENT)spk=NEreplace;
|
||||||
if (motion == 62 || motion == 65)spk=ARB_42;
|
if (motion == 62 || motion == 65)spk=NOTHING_HAPPENS;
|
||||||
if (motion == 17)spk=ARB_80;
|
if (motion == 17)spk=WHICH_WAY;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -644,7 +644,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD)))
|
if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD)))
|
||||||
return true;
|
return true;
|
||||||
game.newloc=game.loc;
|
game.newloc=game.loc;
|
||||||
RSPEAK(ARB_117);
|
RSPEAK(MUST_DROP);
|
||||||
return true;
|
return true;
|
||||||
case 2:
|
case 2:
|
||||||
/* Travel 302. Plover transport. Drop the emerald (only use
|
/* Travel 302. Plover transport. Drop the emerald (only use
|
||||||
|
@ -681,7 +681,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
|
||||||
game.newloc=PLAC[TROLL]+FIXD[TROLL]-game.loc;
|
game.newloc=PLAC[TROLL]+FIXD[TROLL]-game.loc;
|
||||||
if (game.prop[TROLL] == 0)game.prop[TROLL]=1;
|
if (game.prop[TROLL] == 0)game.prop[TROLL]=1;
|
||||||
if (!TOTING(BEAR)) return true;
|
if (!TOTING(BEAR)) return true;
|
||||||
RSPEAK(ARB_162);
|
RSPEAK(BRIDGE_COLLAPSE);
|
||||||
game.prop[CHASM]=1;
|
game.prop[CHASM]=1;
|
||||||
game.prop[TROLL]=2;
|
game.prop[TROLL]=2;
|
||||||
DROP(BEAR,game.newloc);
|
DROP(BEAR,game.newloc);
|
||||||
|
@ -756,7 +756,7 @@ static bool closecheck(void)
|
||||||
game.fixed[CHAIN]=0;
|
game.fixed[CHAIN]=0;
|
||||||
game.prop[AXE]=0;
|
game.prop[AXE]=0;
|
||||||
game.fixed[AXE]=0;
|
game.fixed[AXE]=0;
|
||||||
RSPEAK(ARB_129);
|
RSPEAK(CAVE_CLOSING);
|
||||||
game.clock1= -1;
|
game.clock1= -1;
|
||||||
game.closng=true;
|
game.closng=true;
|
||||||
return true;
|
return true;
|
||||||
|
@ -807,7 +807,7 @@ static bool closecheck(void)
|
||||||
DSTROY(i);
|
DSTROY(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
RSPEAK(ARB_132);
|
RSPEAK(CAVE_CLOSED);
|
||||||
game.closed=true;
|
game.closed=true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -830,7 +830,7 @@ static void lampcheck(void)
|
||||||
* if desired. */
|
* if desired. */
|
||||||
if (game.limit<=30 && HERE(BATTER) && game.prop[BATTER]==0 && HERE(LAMP))
|
if (game.limit<=30 && HERE(BATTER) && game.prop[BATTER]==0 && HERE(LAMP))
|
||||||
{
|
{
|
||||||
RSPEAK(ARB_188);
|
RSPEAK(REPLACE_BATTERIES);
|
||||||
game.prop[BATTER]=1;
|
game.prop[BATTER]=1;
|
||||||
if (TOTING(BATTER))
|
if (TOTING(BATTER))
|
||||||
DROP(BATTER,game.loc);
|
DROP(BATTER,game.loc);
|
||||||
|
@ -840,13 +840,13 @@ static void lampcheck(void)
|
||||||
game.limit= -1;
|
game.limit= -1;
|
||||||
game.prop[LAMP]=0;
|
game.prop[LAMP]=0;
|
||||||
if (HERE(LAMP))
|
if (HERE(LAMP))
|
||||||
RSPEAK(ARB_184);
|
RSPEAK(LAMP_OUT);
|
||||||
} else if (game.limit <= 30) {
|
} else if (game.limit <= 30) {
|
||||||
if (!game.lmwarn && HERE(LAMP)) {
|
if (!game.lmwarn && HERE(LAMP)) {
|
||||||
game.lmwarn=true;
|
game.lmwarn=true;
|
||||||
int spk=ARB_187;
|
int spk=GET_BATTERIES;
|
||||||
if (game.place[BATTER] == 0)spk=ARB_183;
|
if (game.place[BATTER] == 0)spk=LAMP_DIM;
|
||||||
if (game.prop[BATTER] == 1)spk=ARB_189;
|
if (game.prop[BATTER] == 1)spk=MISSING_BATTERIES;
|
||||||
RSPEAK(spk);
|
RSPEAK(spk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -909,7 +909,7 @@ static bool do_command(FILE *cmdin)
|
||||||
|
|
||||||
/* Can't leave cave once it's closing (except by main office). */
|
/* Can't leave cave once it's closing (except by main office). */
|
||||||
if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
|
if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
|
||||||
RSPEAK(ARB_130);
|
RSPEAK(EXIT_CLOSED);
|
||||||
game.newloc=game.loc;
|
game.newloc=game.loc;
|
||||||
if (!game.panic)game.clock2=15;
|
if (!game.panic)game.clock2=15;
|
||||||
game.panic=true;
|
game.panic=true;
|
||||||
|
@ -923,7 +923,7 @@ static bool do_command(FILE *cmdin)
|
||||||
for (i=1; i<=NDWARVES-1; i++) {
|
for (i=1; i<=NDWARVES-1; i++) {
|
||||||
if (game.odloc[i] == game.newloc && game.dseen[i]) {
|
if (game.odloc[i] == game.newloc && game.dseen[i]) {
|
||||||
game.newloc=game.loc;
|
game.newloc=game.loc;
|
||||||
RSPEAK(ARB_2);
|
RSPEAK(DWARF_BLOCK);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -945,14 +945,14 @@ static bool do_command(FILE *cmdin)
|
||||||
/* The easiest way to get killed is to fall into a pit in
|
/* The easiest way to get killed is to fall into a pit in
|
||||||
* pitch darkness. */
|
* pitch darkness. */
|
||||||
if (game.wzdark && PCT(35)) {
|
if (game.wzdark && PCT(35)) {
|
||||||
RSPEAK(ARB_23);
|
RSPEAK(PIT_FALL);
|
||||||
game.oldlc2 = game.loc;
|
game.oldlc2 = game.loc;
|
||||||
croak(cmdin);
|
croak(cmdin);
|
||||||
continue; /* back to top of main interpreter loop */
|
continue; /* back to top of main interpreter loop */
|
||||||
}
|
}
|
||||||
msg=arbitrary_messages[16];
|
msg=arbitrary_messages[16];
|
||||||
}
|
}
|
||||||
if (TOTING(BEAR))RSPEAK(ARB_141);
|
if (TOTING(BEAR))RSPEAK(TAME_BEAR);
|
||||||
newspeak(msg);
|
newspeak(msg);
|
||||||
if (FORCED(game.loc)) {
|
if (FORCED(game.loc)) {
|
||||||
if (playermove(cmdin, verb, 1))
|
if (playermove(cmdin, verb, 1))
|
||||||
|
@ -960,7 +960,7 @@ static bool do_command(FILE *cmdin)
|
||||||
else
|
else
|
||||||
continue; /* back to top of main interpreter loop */
|
continue; /* back to top of main interpreter loop */
|
||||||
}
|
}
|
||||||
if (game.loc == 33 && PCT(25) && !game.closng)RSPEAK(ARB_7);
|
if (game.loc == 33 && PCT(25) && !game.closng)RSPEAK(SAYS_PLUGH);
|
||||||
|
|
||||||
listobjects();
|
listobjects();
|
||||||
|
|
||||||
|
@ -1044,11 +1044,11 @@ static bool do_command(FILE *cmdin)
|
||||||
if (WD1 == MAKEWD(23051920)) {
|
if (WD1 == MAKEWD(23051920)) {
|
||||||
++game.iwest;
|
++game.iwest;
|
||||||
if (game.iwest == 10)
|
if (game.iwest == 10)
|
||||||
RSPEAK(ARB_17);
|
RSPEAK(W_IS_WEST);
|
||||||
}
|
}
|
||||||
if (WD1 == MAKEWD( 715) && WD2 != 0) {
|
if (WD1 == MAKEWD( 715) && WD2 != 0) {
|
||||||
if (++igo == 10)
|
if (++igo == 10)
|
||||||
RSPEAK(ARB_276);
|
RSPEAK(GO_UNNEEDED);
|
||||||
}
|
}
|
||||||
L2630:
|
L2630:
|
||||||
i=VOCAB(WD1,-1);
|
i=VOCAB(WD1,-1);
|
||||||
|
@ -1057,7 +1057,7 @@ static bool do_command(FILE *cmdin)
|
||||||
if (fallback_handler(rawbuf))
|
if (fallback_handler(rawbuf))
|
||||||
return true;
|
return true;
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(ARB_254);
|
RSPEAK(DONT_KNOW);
|
||||||
goto L2600;
|
goto L2600;
|
||||||
}
|
}
|
||||||
KMOD=MOD(i,1000);
|
KMOD=MOD(i,1000);
|
||||||
|
@ -1097,12 +1097,12 @@ static bool do_command(FILE *cmdin)
|
||||||
/* Random intransitive verbs come here. Clear obj just in case
|
/* Random intransitive verbs come here. Clear obj just in case
|
||||||
* (see attack()). */
|
* (see attack()). */
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(ARB_257);
|
RSPEAK(DO_WHAT);
|
||||||
obj=0;
|
obj=0;
|
||||||
goto L2600;
|
goto L2600;
|
||||||
case GO_DWARFWAKE:
|
case GO_DWARFWAKE:
|
||||||
/* Oh dear, he's disturbed the dwarves. */
|
/* Oh dear, he's disturbed the dwarves. */
|
||||||
RSPEAK(ARB_136);
|
RSPEAK(DWARVES_AWAKEN);
|
||||||
score(0);
|
score(0);
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
|
|
4
misc.c
4
misc.c
|
@ -196,7 +196,7 @@ bool GETIN(FILE *input,
|
||||||
(junk > 0);
|
(junk > 0);
|
||||||
if (GETTXT(true,true,true) <= 0)
|
if (GETTXT(true,true,true) <= 0)
|
||||||
return true;
|
return true;
|
||||||
RSPEAK(ARB_53);
|
RSPEAK(TWO_WORDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@ long YES(FILE *input, vocab_t x, vocab_t y, vocab_t z)
|
||||||
RSPEAK(z);
|
RSPEAK(z);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_185);
|
RSPEAK(PLEASE_ANSWER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
saveresume.c
12
saveresume.c
|
@ -39,16 +39,16 @@ int saveresume(FILE *input, bool resume)
|
||||||
/* Suspend. Offer to save things in a file, but charging
|
/* Suspend. Offer to save things in a file, but charging
|
||||||
* some points (so can't win by using saved games to retry
|
* some points (so can't win by using saved games to retry
|
||||||
* battles or to start over after learning zzword). */
|
* battles or to start over after learning zzword). */
|
||||||
RSPEAK(ARB_260);
|
RSPEAK(SUSPEND_WARNING);
|
||||||
if (!YES(input,ARB_200,ARB_54,ARB_54)) return GO_CLEAROBJ;
|
if (!YES(input,THIS_ACCEPTABLE,OK_MAN,OK_MAN)) return GO_CLEAROBJ;
|
||||||
game.saved=game.saved+5;
|
game.saved=game.saved+5;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Resume. Read a suspended game back from a file. */
|
/* Resume. Read a suspended game back from a file. */
|
||||||
if (game.loc != 1 || game.abbrev[1] != 1) {
|
if (game.loc != 1 || game.abbrev[1] != 1) {
|
||||||
RSPEAK(ARB_268);
|
RSPEAK(RESUME_ABANDON);
|
||||||
if (!YES(input,ARB_200,ARB_54,ARB_54)) return GO_CLEAROBJ;
|
if (!YES(input,THIS_ACCEPTABLE,OK_MAN,OK_MAN)) return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ int saveresume(FILE *input, bool resume)
|
||||||
save.bivalve = OBJTXT[OYSTER];
|
save.bivalve = OBJTXT[OYSTER];
|
||||||
IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
|
IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
RSPEAK(ARB_266);
|
RSPEAK(RESUME_HELP);
|
||||||
exit(0);
|
exit(0);
|
||||||
} else {
|
} else {
|
||||||
IGNORE(fread(&save, sizeof(struct save_t), 1, fp));
|
IGNORE(fread(&save, sizeof(struct save_t), 1, fp));
|
||||||
|
@ -82,7 +82,7 @@ int saveresume(FILE *input, bool resume)
|
||||||
if (save.version != VRSION) {
|
if (save.version != VRSION) {
|
||||||
SETPRM(1,k/10,MOD(k,10));
|
SETPRM(1,k/10,MOD(k,10));
|
||||||
SETPRM(3,VRSION/10,MOD(VRSION,10));
|
SETPRM(3,VRSION/10,MOD(VRSION,10));
|
||||||
RSPEAK(ARB_269);
|
RSPEAK(VERSION_SKEW);
|
||||||
} else {
|
} else {
|
||||||
memcpy(&game, &save.game, sizeof(struct game_t));
|
memcpy(&game, &save.game, sizeof(struct game_t));
|
||||||
OBJSND[BIRD] = save.bird;
|
OBJSND[BIRD] = save.bird;
|
||||||
|
|
14
score.c
14
score.c
|
@ -96,29 +96,29 @@ void score(long mode)
|
||||||
if(mode < 0) {
|
if(mode < 0) {
|
||||||
SETPRM(1,score,mxscor);
|
SETPRM(1,score,mxscor);
|
||||||
SETPRM(3,game.turns,game.turns);
|
SETPRM(3,game.turns,game.turns);
|
||||||
RSPEAK(ARB_259);
|
RSPEAK(GARNERED_POINTS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* that should be good enough. Let's tell him all about it. */
|
/* that should be good enough. Let's tell him all about it. */
|
||||||
if(score+game.trnluz+1 >= mxscor && game.trnluz != 0)
|
if(score+game.trnluz+1 >= mxscor && game.trnluz != 0)
|
||||||
RSPEAK(ARB_242);
|
RSPEAK(TOOK_LONG);
|
||||||
if(score+game.saved+1 >= mxscor && game.saved != 0)
|
if(score+game.saved+1 >= mxscor && game.saved != 0)
|
||||||
RSPEAK(ARB_143);
|
RSPEAK(WITHOUT_SUSPENDS);
|
||||||
SETPRM(1,score,mxscor);
|
SETPRM(1,score,mxscor);
|
||||||
SETPRM(3,game.turns,game.turns);
|
SETPRM(3,game.turns,game.turns);
|
||||||
RSPEAK(ARB_262);
|
RSPEAK(TOTAL_SCORE);
|
||||||
for (i=1; i<=CLSSES; i++) {
|
for (i=1; i<=CLSSES; i++) {
|
||||||
if(CVAL[i] >= score) {
|
if(CVAL[i] >= score) {
|
||||||
newspeak(class_messages[i]);
|
newspeak(class_messages[i]);
|
||||||
i=CVAL[i]+1-score;
|
i=CVAL[i]+1-score;
|
||||||
SETPRM(1,i,i);
|
SETPRM(1,i,i);
|
||||||
RSPEAK(ARB_263);
|
RSPEAK(NEXT_HIGHER);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RSPEAK(ARB_265);
|
RSPEAK(OFF_SCALE);
|
||||||
RSPEAK(ARB_264);
|
RSPEAK(NO_HIGHER);
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue