M-d dip dip an object into something
M-e enhance show weapon and spell skills, can improve them if eligible
M-f force force a lock
+M-g genocided list genocided and extinct monster types, if any
M-i invoke invoke an object's special powers
M-j jump jump to another location
M-l loot loot a box on the floor
Force a lock.
Autocompletes.
Default key is \(oqM-f\(cq.
+.lp #genocided
+List any monster types which have been genocided or become extinct.
+Autocompletes.
+Default key is \(oqM-g\(cq.
.lp "#glance "
Show what type of thing a map symbol corresponds to.
Default key is \(oq;\(cq.
#enhance
.lp M-f
#force
+.lp M-g
+#genocided
.lp M-i
#invoke
.lp M-j
\item[\tb{\#force}]
Force a lock. Autocompletes. Default key is `{\tt M-f}'.
%.lp
+\item[\tb{\#genocided}]
+List any monster types which have been genocided or become extinct.
+Autocompletes.
+Default key is `{\tt M-g}'.
+%.lp
\item[\tb{\#glance}]
Show what type of thing a map symbol corresponds to. Default key is `{\tt ;}'.
%.lp
\item[\tb{M-f}]
{\tt\#force}
%.lp
+\item[\tb{M-g}]
+{\tt\#genocided}
+%.lp
\item[\tb{M-i}]
{\tt\#invoke}
%.lp
extern void list_vanquished(char, boolean);
extern int num_genocides(void);
extern void list_genocided(char, boolean);
+extern int dogenocided(void);
extern const char *align_str(aligntyp);
extern char *piousness(boolean, const char *);
extern void mstatusline(struct monst *);
extern int dothrow(void); /**/
extern int doeat(void); /**/
extern int done2(void); /**/
-extern int vanquished(void); /**/
+extern int dovanquished(void); /**/
extern int doengrave(void); /**/
extern int dopickup(void); /**/
extern int ddoinv(void); /**/
doforce, AUTOCOMPLETE, NULL },
{ ';', "glance", "show what type of thing a map symbol corresponds to",
doquickwhatis, IFBURIED | GENERALCMD, NULL },
+ { M('g'), "genocided",
+ "list monsters that have been genocided or become extinct",
+ dogenocided, IFBURIED | AUTOCOMPLETE, NULL },
{ '?', "help", "give a help message",
dohelp, IFBURIED | GENERALCMD, NULL },
{ '\0', "herecmdmenu", "show menu of commands you can do here",
* which needs putstr() and past tense.
*/
} else if (!gp.program_state.gameover) {
- /* #dovanquished rather than final disclosure, so pline() is ok */
+ /* #vanquished rather than final disclosure, so pline() is ok */
pline("No creatures have been vanquished.");
#ifdef DUMPLOG
} else if (dumping) {
return n;
}
+/* return a count of the number of extinct species */
static int
num_extinct(void)
{
return n;
}
+/* show genocided and extinct monster types for final disclosure/dumplog
+ or for the #genocided command */
void
list_genocided(char defquery, boolean ask)
{
display_nhwindow(klwin, TRUE);
destroy_nhwindow(klwin);
}
+
+ /* See the comment for similar code near the end of list_vanquished(). */
+ } else if (!gp.program_state.gameover) {
+ /* #genocided rather than final disclosure, so pline() is ok */
+ pline("No creatures have been genocided or become extinct.");
#ifdef DUMPLOG
} else if (dumping) {
putstr(0, 0, "No species were genocided or became extinct.");
}
}
+/* M-g - #genocided command */
+int
+dogenocided(void)
+{
+ list_genocided('y', FALSE);
+ return ECMD_OK;
+}
+
/*
* align_str(), piousness(), mstatusline() and ustatusline() once resided
* in pline.c, then got moved to priest.c just to be out of there. They