More use of manifeat constants.

This commit is contained in:
Eric S. Raymond 2017-06-15 11:15:45 -04:00
parent 0dc78b4221
commit 49edca485d
3 changed files with 19 additions and 16 deletions

View file

@ -65,7 +65,7 @@ static int attack(FILE *input, long verb, token_t obj)
if (obj == DWARF && game.closed) return GO_DWARFWAKE; if (obj == DWARF && game.closed) return GO_DWARFWAKE;
if (obj == DRAGON)spk=ALREADY_DEAD; if (obj == DRAGON)spk=ALREADY_DEAD;
if (obj == TROLL)spk=ROCKY_TROLL; if (obj == TROLL)spk=ROCKY_TROLL;
if (obj == OGRE)spk=OGRE_DOFGE; if (obj == OGRE)spk=OGRE_DODGE;
if (obj == OGRE && d > 0) { if (obj == OGRE && d > 0) {
RSPEAK(spk); RSPEAK(spk);
RSPEAK(KNIFE_THROWN); RSPEAK(KNIFE_THROWN);
@ -860,6 +860,7 @@ static int say(void)
if (WD2 > 0) if (WD2 > 0)
WD1=WD2; WD1=WD2;
int wd=VOCAB(WD1,-1); int wd=VOCAB(WD1,-1);
/* FIXME: Magic numbers */
if (wd == 62 || wd == 65 || wd == 71 || wd == 2025 || wd == 2034) { if (wd == 62 || wd == 65 || wd == 71 || wd == 2025 || wd == 2034) {
WD2=0; WD2=0;
return GO_LOOKUP; return GO_LOOKUP;
@ -918,7 +919,7 @@ static int throw(FILE *cmdin, long verb, token_t obj)
return throw_support(spk); return throw_support(spk);
} }
if (AT(OGRE)) { if (AT(OGRE)) {
spk=OGRE_DOFGE; spk=OGRE_DODGE;
return throw_support(spk); return throw_support(spk);
} }
if (HERE(BEAR) && game.prop[BEAR] == 0) { if (HERE(BEAR) && game.prop[BEAR] == 0) {

View file

@ -948,7 +948,7 @@ arbitrary_messages: !!omap
- THIS_ACCEPTABLE: 'Is this acceptable?' - THIS_ACCEPTABLE: 'Is this acceptable?'
- 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.' - 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.'
- OGRE_FULL: 'The ogre doesn''t appear to be hungry.' - OGRE_FULL: 'The ogre doesn''t appear to be hungry.'
- OGRE_DOFGE: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack. He seems almost amused by your puny effort.' - OGRE_DODGE: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack. He seems almost amused by your puny effort.'
- 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.' - 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.'
- 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.' - 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.'
- FREE_FLY: 'The bird flies about agitatedly for a moment.' - FREE_FLY: 'The bird flies about agitatedly for a moment.'

28
main.c
View file

@ -499,7 +499,7 @@ static void croak(FILE *cmdin)
} }
/* Given the current location in "game.loc", and a motion verb number in /* Given the current location in "game.loc", and a motion verb number in
* "K", put the new location in "game.newloc". The current loc is saved * "motion", put the new location in "game.newloc". The current loc is saved
* in "game.oldloc" in case he wants to retreat. The current * in "game.oldloc" in case he wants to retreat. The current
* game.oldloc is saved in game.oldlc2, in case he dies. (if he * game.oldloc is saved in game.oldlc2, in case he dies. (if he
* does, game.newloc will be limbo, and game.oldloc will be what killed * does, game.newloc will be limbo, and game.oldloc will be what killed
@ -556,7 +556,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
} }
else if (motion == LOOK) { else if (motion == LOOK) {
/* 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) if (game.detail < 3)
RSPEAK(NO_MORE_DETAIL); RSPEAK(NO_MORE_DETAIL);
@ -567,7 +567,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) ? FOLLOW_STREAM : NEED_DETAIL); RSPEAK((OUTSID(game.loc) && game.loc != LOC_GRATE) ? FOLLOW_STREAM : NEED_DETAIL);
return true; return true;
} }
else { else {
@ -582,6 +582,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
if (MOD(scratchloc,1000) == 1 || MOD(scratchloc,1000) == motion) if (MOD(scratchloc,1000) == 1 || MOD(scratchloc,1000) == motion)
break; break;
if (TRAVEL[kk] < 0) { if (TRAVEL[kk] < 0) {
/* FIXME: Magic numbers! */
/* Non-applicable motion. Various messages depending on /* Non-applicable motion. Various messages depending on
* word given. */ * word given. */
int spk=CANT_APPLY; int spk=CANT_APPLY;
@ -697,7 +698,8 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
BUG(20); BUG(20);
} }
} while } while
(false); (false);
/* FIXME: Arithmetic on location number, becoming a message number */
RSPEAK(game.newloc-500); RSPEAK(game.newloc-500);
game.newloc=game.loc; game.newloc=game.loc;
return true; return true;
@ -903,8 +905,8 @@ static void listobjects(void)
static bool do_command(FILE *cmdin) static bool do_command(FILE *cmdin)
/* Get and execute a command */ /* Get and execute a command */
{ {
long KQ, verb, V1, V2; long kq, verb, V1, V2;
long i, k, KMOD; long i, k, kmod;
static long igo = 0; static long igo = 0;
static long obj = 0; static long obj = 0;
enum speechpart part; enum speechpart part;
@ -1062,18 +1064,18 @@ static bool do_command(FILE *cmdin)
RSPEAK(DONT_KNOW); RSPEAK(DONT_KNOW);
goto L2600; goto L2600;
} }
KMOD=MOD(i,1000); kmod=MOD(i,1000);
KQ=i/1000+1; kq=i/1000+1;
switch (KQ-1) switch (kq-1)
{ {
case 0: case 0:
if (playermove(cmdin, verb, KMOD)) if (playermove(cmdin, verb, kmod))
return true; return true;
else else
continue; /* back to top of main interpreter loop */ continue; /* back to top of main interpreter loop */
case 1: part=unknown; obj = KMOD; break; case 1: part=unknown; obj = kmod; break;
case 2: part=intransitive; verb = KMOD; break; case 2: part=intransitive; verb = kmod; break;
case 3: RSPEAK(KMOD); goto L2012; case 3: RSPEAK(kmod); goto L2012;
default: BUG(22); default: BUG(22);
} }