[net.games.hack] Genocide scroll fix

arnold@ucsfcgl.UUCP (Ken Arnold%CGL) (06/23/85)

Here is a fix to something which has annoyed the bejezus out of me
ever since we got hack, which is that you can only genocide monsters
whose symbols are letters.  I have had desires to genocide daemons,
for example, but couldn't because the check for validity of input was
not to see if it was a known monster character, but just if it was
an upper or lower case letter or a '@'.  Here is the context diff to
fix it.

----- CUT HERE -----
*** /tmp/,RCSt1007524	Tue Jun 18 16:19:41 1985
--- hack.read.c	Mon May 27 16:45:59 1985
***************
*** 189,195
  		else do {
  	    pline("What monster do you want to genocide (Type the letter)? ");
  			getlin(buf);
! 		} while(strlen(buf) != 1 || !letter(*buf));
  		if(!index(fut_geno, *buf))
  			charcat(fut_geno, *buf);
  		if(!index(genocided, *buf))

--- 189,195 -----
  		else do {
  	    pline("What monster do you want to genocide (Type the letter)? ");
  			getlin(buf);
! 		} while(strlen(buf) != 1 || !monster(*buf));
  		if(!index(fut_geno, *buf))
  			charcat(fut_geno, *buf);
  		if(!index(genocided, *buf))
***************
*** 515,518
  		}
  	if(!on) seehx = 0;
  #endif	QUEST
  }

--- 515,538 -----
  		}
  	if(!on) seehx = 0;
  #endif	QUEST
+ }
+ 
+ monster(ch)
+ register char ch;
+ {
+ 	register struct permonst	*mp;
+ 	extern struct permonst		pm_eel;
+ 
+ 	/*
+ 	 * can't genocide certain monsters
+ 	 */
+ 	if (ch == '1' || ch == '2' || ch == ' ')
+ 		return FALSE;
+ 
+ 	if (ch == pm_eel.mlet)
+ 		return TRUE;
+ 	for (mp = mons; mp < &mons[CMNUM+2]; mp++)
+ 		if (mp->mlet == ch)
+ 			return TRUE;
+ 	return FALSE;
  }

aeb@mcvax.UUCP (Andries Brouwer) (06/25/85)

Several people have complained about the fact that it was (is)
impossible to genocide certain monsters. This is on purpose;
I want to prevent that one, by wishing three times for 3 scrolls
of genocide, can eliminate all the tough monsters.
The distinction letters-nonletters is completely arbitrary, and
if I made an explicit list of nongenocidable monsters it might
look a bit different, but it *would* contain daemons.