Code simplification.

This commit is contained in:
Eric S. Raymond 2017-06-16 06:44:22 -04:00
parent 7ccef92f7f
commit 1b5ab6c808

View file

@ -70,49 +70,47 @@ static int attack(FILE *input, long verb, token_t obj)
RSPEAK(spk); RSPEAK(spk);
RSPEAK(KNIFE_THROWN); RSPEAK(KNIFE_THROWN);
DSTROY(OGRE); DSTROY(OGRE);
int k=0; int dwarves=0;
for (int i=1; i < PIRATE; i++) { for (int i=1; i < PIRATE; i++) {
if (game.dloc[i] == game.loc) { if (game.dloc[i] == game.loc) {
++k; ++dwarves;
game.dloc[i] = LOC_LONGWEST; game.dloc[i] = LOC_LONGWEST;
game.dseen[i]=false; game.dseen[i]=false;
} }
} }
spk=spk+1+1/k; /* FIXME: Arithmetic on message numbers */ spk=spk+1+1/dwarves; /* FIXME: Arithmetic on message numbers */
RSPEAK(spk);
return GO_CLEAROBJ;
} }
else if (obj == BEAR)
if (obj == BEAR)
/* FIXME: Arithmetic on message numbers */ /* FIXME: Arithmetic on message numbers */
spk = BEAR_HANDS+(game.prop[BEAR]+1)/2; spk = BEAR_HANDS+(game.prop[BEAR]+1)/2;
if (obj != DRAGON || game.prop[DRAGON] != 0) { else if (obj == DRAGON && game.prop[DRAGON] == 0) {
RSPEAK(spk); /* Fun stuff for dragon. If he insists on attacking it, win!
return GO_CLEAROBJ; * Set game.prop to dead, move dragon to central loc (still
* fixed), move rug there (not fixed), and move him there,
* too. Then do a null motion to get new description. */
RSPEAK(BARE_HANDS_QUERY);
GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
return GO_CHECKFOO;
PSPEAK(DRAGON,3);
game.prop[DRAGON]=1;
game.prop[RUG]=0;
int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
MOVE(DRAGON+NOBJECTS,-1);
MOVE(RUG+NOBJECTS,0);
MOVE(DRAGON,k);
MOVE(RUG,k);
DROP(BLOOD,k);
for (obj=1; obj<=NOBJECTS; obj++) {
if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
MOVE(obj,k);
}
game.loc=k;
return GO_MOVE;
} }
/* Fun stuff for dragon. If he insists on attacking it, win!
* Set game.prop to dead, move dragon to central loc (still RSPEAK(spk);
* fixed), move rug there (not fixed), and move him there, return GO_CLEAROBJ;
* too. Then do a null motion to get new description. */
RSPEAK(BARE_HANDS_QUERY);
GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
return GO_CHECKFOO;
PSPEAK(DRAGON,3);
game.prop[DRAGON]=1;
game.prop[RUG]=0;
int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
MOVE(DRAGON+NOBJECTS,-1);
MOVE(RUG+NOBJECTS,0);
MOVE(DRAGON,k);
MOVE(RUG,k);
DROP(BLOOD,k);
for (obj=1; obj<=NOBJECTS; obj++) {
if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
MOVE(obj,k);
}
game.loc=k;
return GO_MOVE;
} }
static int bigwords(long foo) static int bigwords(long foo)