1 /* SCCS Id: @(#)do_name.c 3.4 2003/01/14 */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed. See license for details. */
9 STATIC_DCL
void do_oname(struct obj
*);
10 static void getpos_help(BOOLEAN_P
,const char *);
12 extern const char what_is_an_unknown_object
[]; /* from pager.c */
14 /* the response for '?' help request in getpos() */
16 getpos_help(force
, goal
)
21 boolean doing_what_is
;
22 winid tmpwin
= create_nhwindow(NHW_MENU
);
24 sprintf(sbuf
, "Use [%s] to move the cursor to %s.",
25 iflags
.num_pad
? "2468" : "hjkl", goal
);
26 putstr(tmpwin
, 0, sbuf
);
27 putstr(tmpwin
, 0, "Use [HJKL] to move the cursor 8 units at a time.");
28 putstr(tmpwin
, 0, "Or enter a background symbol (ex. <).");
29 /* disgusting hack; the alternate selection characters work for any
30 getpos call, but they only matter for dowhatis (and doquickwhatis) */
31 doing_what_is
= (goal
== what_is_an_unknown_object
);
32 sprintf(sbuf
, "Type a .%s when you are at the right place.",
33 doing_what_is
? " or , or ; or :" : "");
34 putstr(tmpwin
, 0, sbuf
);
36 putstr(tmpwin
, 0, "Type Space or Escape when you're done.");
38 putstr(tmpwin
, 0, "Press Escape when you're done.");
39 putstr(tmpwin
, 0, "");
40 display_nhwindow(tmpwin
, TRUE
);
41 destroy_nhwindow(tmpwin
);
53 boolean msg_given
= TRUE
; /* clear message window by default */
54 static const char pick_chars
[] = ".,;:";
57 if(iflags
.num_pad
) sdp
= ndir
; else sdp
= sdir
; /* DICE workaround */
60 pline("(For instructions type a ?)");
67 if (!isok(cx
, cy
) && isok(u
.ux
, u
.uy
)) {
78 lock_mouse_cursor(TRUE
);
81 c
= nh_poskey(&tx
, &ty
, &sidx
);
84 msg_given
= TRUE
; /* force clear */
89 if (!isok(tx
, ty
)) continue;
90 /* a mouse click event, just assign and return */
95 if ((cp
= index(pick_chars
, c
)) != 0) {
96 /* '.' => 0, ',' => 1, ';' => 2, ':' => 3 */
97 result
= cp
- pick_chars
;
100 for (i
= 0; i
< 8; i
++) {
104 /* a normal movement letter or digit */
107 } else if (sdir
[i
] == lowc((char)c
)) {
108 /* a shifted movement letter */
114 /* truncate at map edge; diagonal moves complicate this... */
116 dy
-= sgn(dy
) * (1 - (cx
+ dx
));
117 dx
= 1 - cx
; /* so that (cx+dx == 1) */
118 } else if (cx
+ dx
> COLNO
-1) {
119 dy
+= sgn(dy
) * ((COLNO
-1) - (cx
+ dx
));
123 dx
-= sgn(dx
) * (0 - (cy
+ dy
));
124 dy
= 0 - cy
; /* so that (cy+dy == 0) */
125 } else if (cy
+ dy
> ROWNO
-1) {
126 dx
+= sgn(dx
) * ((ROWNO
-1) - (cy
+ dy
));
135 getpos_help(force
, goal
);
137 if (!index(quitchars
, c
)) {
138 char matching
[MAXPCHARS
];
139 int pass
, lo_x
, lo_y
, hi_x
, hi_y
, k
= 0;
140 (void)memset((void *)matching
, 0, sizeof matching
);
141 for (sidx
= 1; sidx
< MAXPCHARS
; sidx
++)
142 if (c
== defsyms
[sidx
].sym
|| c
== (int)showsyms
[sidx
])
143 matching
[sidx
] = (char) ++k
;
145 for (pass
= 0; pass
<= 1; pass
++) {
146 /* pass 0: just past current pos to lower right;
147 pass 1: upper left corner to current pos */
148 lo_y
= (pass
== 0) ? cy
: 0;
149 hi_y
= (pass
== 0) ? ROWNO
- 1 : cy
;
150 for (ty
= lo_y
; ty
<= hi_y
; ty
++) {
151 lo_x
= (pass
== 0 && ty
== lo_y
) ? cx
+ 1 : 1;
152 hi_x
= (pass
== 1 && ty
== hi_y
) ? cx
: COLNO
- 1;
153 for (tx
= lo_x
; tx
<= hi_x
; tx
++) {
154 k
= glyph_at(tx
, ty
);
155 if (glyph_is_cmap(k
) &&
156 matching
[glyph_to_cmap(k
)]) {
159 clear_nhwindow(WIN_MESSAGE
);
167 pline("Can't find dungeon feature '%c'.", c
);
171 pline("Unknown direction: '%s' (%s).",
174 iflags
.num_pad
? "use 2468 or ." : "use hjkl or .");
176 if (flags
.moreforced
&& !MessagesSuppressed
) display_nhwindow(WIN_MESSAGE
, TRUE
); /* --More-- */
177 } /* k => matching */
179 if (force
&& !(c
== 32) ) goto nxtc
;
181 msg_given
= FALSE
; /* suppress clear */
184 result
= 0; /* not -1 */
185 if (c
== 32) result
= -1;
196 lock_mouse_cursor(FALSE
);
198 if (msg_given
) clear_nhwindow(WIN_MESSAGE
);
207 christen_monst(mtmp
, name
)
215 /* dogname & catname are PL_PSIZ arrays; object names have same limit */
216 lth
= *name
? (int)(strlen(name
) + 1) : 0;
219 name
= strncpy(buf
, name
, PL_PSIZ
- 1);
220 buf
[PL_PSIZ
- 1] = '\0';
222 if (lth
== mtmp
->mnamelth
) {
223 /* don't need to allocate a new monst struct */
224 if (lth
) strcpy(NAME(mtmp
), name
);
227 mtmp2
= newmonst(mtmp
->mxlth
+ lth
);
229 (void) memcpy((void *)mtmp2
->mextra
,
230 (void *)mtmp
->mextra
, mtmp
->mxlth
);
231 mtmp2
->mnamelth
= lth
;
232 if (lth
) strcpy(NAME(mtmp2
), name
);
243 register struct monst
*mtmp
;
246 if (UncalledEffect
|| u
.uprops
[UNCALLED_EFFECT
].extrinsic
|| have_uncalledstone()) return 0;
249 You("would never recognize it anyway.");
254 if (getpos(&cc
, FALSE
, "the monster you want to name") < 0 ||
259 if (cx
== u
.ux
&& cy
== u
.uy
) {
260 if (u
.usteed
&& canspotmon(u
.usteed
))
263 pline("This %s creature is called %s and cannot be renamed.",
264 ACURR(A_CHA
) > 14 ? (flags
.female
? "beautiful" : "handsome") : "ugly", playeraliasname
);
270 if (!mtmp
|| (!sensemon(mtmp
) &&
271 (!(cansee(cx
,cy
) || see_with_infrared(mtmp
)) || mtmp
->mundetected
272 || mtmp
->m_ap_type
== M_AP_FURNITURE
273 || mtmp
->m_ap_type
== M_AP_OBJECT
275 || (mtmp
->minvis
&& (!See_invisible
|| (!StrongSee_invisible
&& !mtmp
->seeinvisble
) ) )))) {
276 pline("I see no monster there.");
279 /* special case similar to the one in lookat() */
280 (void) distant_monnam(mtmp
, ARTICLE_THE
, buf
);
281 sprintf(qbuf
, "What do you want to call %s?", buf
);
283 if(!*buf
|| *buf
== '\033') return(0);
284 /* strip leading and trailing spaces; unnames monster if all spaces */
285 (void)mungspaces(buf
);
288 pline("You wouldn't recognize it again anyway!");
289 else if ( mtmp
->data
== &mons
[PM_HIGH_PRIEST
] || mtmp
->data
== &mons
[PM_DNETHACK_ELDER_PRIEST_TM_
] )
290 pline("Abusing the astral call bug, huh, cheater? That's not gonna work anymore! --Amy");
291 else if (mtmp
->data
->geno
& G_UNIQ
)
292 pline("%s doesn't like being called names!", Monnam(mtmp
));
293 else if (mtmp
->mnamelth
&& !mtmp
->mtame
)
294 pline("%s doesn't like you enough to allow you to rename %s!", Monnam(mtmp
), mhim(mtmp
));
295 else if (!(strcmpi(buf
, "Glorious Dead") ) )
296 pline("That is an invalid name.");
297 else if (!(strcmpi(buf
, "Satan's Secret Storage") ) )
298 pline("That is an invalid name.");
299 else if (!(strcmpi(buf
, "Main Container") ) )
300 pline("That is an invalid name.");
301 else if (!(strcmpi(buf
, "Arti Lockbox") ) )
302 pline("That is an invalid name.");
303 else if (!(strcmpi(buf
, "Hoards of Treasure") ) )
304 pline("That is an invalid name.");
305 else if (!(strcmpi(buf
, "Emergency Cash") ) )
306 pline("That is an invalid name.");
307 else if (!(strcmpi(buf
, "Whoa-Acid") ) )
308 pline("That is an invalid name.");
309 else if (!(strcmpi(buf
, "Burnup") ) )
310 pline("That is an invalid name.");
311 else if (!(strcmpi(buf
, "Somnus Mortus") ) )
312 pline("That is an invalid name.");
313 else if (!(strcmpi(buf
, "Ylva Blimp") ) )
314 pline("That is an invalid name.");
315 else if (!(strcmpi(buf
, "Veryfirm") ) )
316 pline("That is an invalid name.");
317 else if (!(strcmpi(buf
, "Goodshock") ) )
318 pline("That is an invalid name.");
319 else if (!(strcmpi(buf
, "Emergency Assistance") ) )
320 pline("That is an invalid name.");
321 else if (!(strcmpi(buf
, "Nymphism") ) )
322 pline("That is an invalid name.");
323 else if (!(strcmpi(buf
, "Tengu Shuffle") ) )
324 pline("That is an invalid name.");
325 else if (!(strcmpi(buf
, "Eyes Everywhere") ) )
326 pline("That is an invalid name.");
327 else if (!(strcmpi(buf
, "Radar Up!") ) )
328 pline("That is an invalid name.");
329 else if (!(strcmpi(buf
, "Let's Go On A Hunt") ) )
330 pline("That is an invalid name.");
331 else if (!(strcmpi(buf
, "Stalk-me") ) )
332 pline("That is an invalid name.");
333 else if (!(strcmpi(buf
, "found it.") ) )
334 pline("That is an invalid name.");
335 else if (!(strcmpi(buf
, "Lying Novel Cerium") ) )
336 pline("That is an invalid name.");
337 else if (!(strcmpi(buf
, "Not Gonna Die") ) )
338 pline("That is an invalid name.");
339 else if (!(strcmpi(buf
, "Mysteriumtart") ) )
340 pline("That is an invalid name.");
341 else if (!(strcmpi(buf
, "Feel The Living") ) )
342 pline("That is an invalid name.");
343 else if (!(strcmpi(buf
, "Dueueueueueuei") ) )
344 pline("That is an invalid name.");
345 else if (!(strcmpi(buf
, "Oh, well...") ) )
346 pline("That is an invalid name.");
347 else if (!(strcmpi(buf
, "You Badass Enough?") ) )
348 pline("That is an invalid name.");
349 else if (!(strcmpi(buf
, "Ice Snack") ) )
350 pline("That is an invalid name.");
351 else if (!(strcmpi(buf
, "Redeye") ) )
352 pline("That is an invalid name.");
353 else if (!(strcmpi(buf
, "Luke's Little Snack") ) )
354 pline("That is an invalid name.");
355 else if (!(strcmpi(buf
, "Mindbonuses For You") ) )
356 pline("That is an invalid name.");
357 else if (!(strcmpi(buf
, "Nose-Up") ) )
358 pline("That is an invalid name.");
359 else if (!(strcmpi(buf
, "Blue-blue-blue...") ) )
360 pline("That is an invalid name.");
361 else if (!(strcmpi(buf
, "The 'u' command") ) )
362 pline("That is an invalid name.");
363 else if (!(strcmpi(buf
, "MFer") ) )
364 pline("That is an invalid name.");
365 else if (!(strcmpi(buf
, "Wizardlunch") ) )
366 pline("That is an invalid name.");
368 (void) christen_monst(mtmp
, buf
);
373 * This routine changes the address of obj. Be careful not to call it
374 * when there might be pointers around in unknown places. For now: only
375 * when obj is in the inventory.
380 register struct obj
*obj
;
382 char buf
[BUFSZ
], qbuf
[QBUFSZ
];
386 sprintf(qbuf
, "What do you want to name %s %s?",
387 is_plural(obj
) ? "these" : "this", xname(obj
));
389 if(!*buf
|| *buf
== '\033') return;
390 /* strip leading and trailing spaces; unnames item if all spaces */
391 (void)mungspaces(buf
);
393 if (obj
->oartifact
) {
394 pline_The("artifact seems to resist the attempt.");
398 /* relax restrictions over proper capitalization for artifacts */
399 if ((aname
= artifact_name(buf
, &objtyp
)) != 0 && /*objtyp == obj->otyp*/ (restrict_name(obj
, aname
) || exist_artifact(obj
->otyp
, aname
)) )
402 if (obj
->fakeartifact
) {
403 /* It was lame to be able to sort out fake artifacts by naming them, and besides, I made up so many beautiful
404 * names for all the fake artifacts! You're not supposed to overwrite them with some gibberish! --Amy */
405 pline_The("artifact seems to resist the attempt.");
407 } else if (obj
->otyp
== AMULET_OF_YENDOR
|| obj
->otyp
== FAKE_AMULET_OF_YENDOR
) {
408 pline("You cannot rename such a powerful object.");
410 } else if (restrict_name(obj
, buf
) || exist_artifact(obj
->otyp
, buf
)) {
411 int n
= rn2((int)strlen(buf
));
412 register char c1
, c2
;
415 do c2
= 'a' + rn2('z'-'a'); while (c1
== c2
);
416 buf
[n
] = (buf
[n
] == c1
) ? c2
: highc(c2
); /* keep same case */
417 pline("While engraving your %s slips.", body_part(HAND
));
418 display_nhwindow(WIN_MESSAGE
, FALSE
);
419 You("engrave: \"%s\".",buf
);
421 obj
= oname(obj
, buf
);
425 * Allocate a new and possibly larger storage space for an obj.
428 realloc_obj(obj
, oextra_size
, oextra_src
, oname_size
, name
)
430 int oextra_size
; /* storage to allocate for oextra */
432 int oname_size
; /* size of name string + 1 (null terminator) */
437 otmp
= newobj(oextra_size
+ oname_size
);
438 *otmp
= *obj
; /* the cobj pointer is copied to otmp */
441 (void) memcpy((void *)otmp
->oextra
, oextra_src
,
444 otmp
->oattached
= OATTACHED_NOTHING
;
446 otmp
->oxlth
= oextra_size
;
448 otmp
->onamelth
= oname_size
;
449 otmp
->timed
= 0; /* not timed, yet */
450 otmp
->lamplit
= 0; /* ditto */
451 /* __GNUC__ note: if the assignment of otmp->onamelth immediately
452 precedes this `if' statement, a gcc bug will miscompile the
453 test on vax (`insv' instruction used to store bitfield does
454 not set condition codes, but optimizer behaves as if it did).
455 gcc-2.7.2.1 finally fixed this.... */
458 strcpy(ONAME(otmp
), name
);
461 if (obj
->owornmask
) {
462 boolean save_twoweap
= u
.twoweap
;
463 /* unwearing the old instance will clear dual-wield mode
464 if this object is either of the two weapons */
465 setworn((struct obj
*)0, obj
->owornmask
);
466 setworn(otmp
, otmp
->owornmask
);
467 u
.twoweap
= save_twoweap
;
470 /* replace obj with otmp */
471 replace_object(obj
, otmp
);
473 /* fix ocontainer pointers */
474 if (Has_contents(obj
)) {
477 for(inside
= obj
->cobj
; inside
; inside
= inside
->nobj
)
478 inside
->ocontainer
= otmp
;
481 /* move timers and light sources from obj to otmp */
482 if (obj
->timed
) obj_move_timers(obj
, otmp
);
483 if (obj
->lamplit
) obj_move_light_source(obj
, otmp
);
485 /* objects possibly being manipulated by multi-turn occupations
486 which have been interrupted but might be subsequently resumed */
487 if (obj
->oclass
== FOOD_CLASS
)
488 food_substitution(obj
, otmp
); /* eat food or open tin */
489 else if (obj
->oclass
== SPBOOK_CLASS
)
490 book_substitution(obj
, otmp
); /* read spellbook */
492 /* obfree(obj, otmp); now unnecessary: no pointers on bill */
493 dealloc_obj(obj
); /* let us hope nobody else saved a pointer */
497 /* create artifact only if it doesn't exist already */
506 lth
= *name
? (int)(strlen(name
) + 1) : 0;
509 name
= strncpy(buf
, name
, PL_PSIZ
- 1);
510 buf
[PL_PSIZ
- 1] = '\0';
512 /* If named artifact exists in the game, do not create another.
513 * Also trying to create an artifact shouldn't de-artifact
514 * it (e.g. Excalibur from prayer). In this case the object
515 * will retain its current name.
516 * Amy edit: in wizard mode we should be able to create multiple copies of an artifact if we want to */
517 if (obj
->oartifact
|| (lth
&& exist_artifact(obj
->otyp
, name
) && !wizard
))
520 if (lth
== obj
->onamelth
) {
521 /* no need to replace entire object */
522 if (lth
) strcpy(ONAME(obj
), name
);
524 obj
= realloc_obj(obj
, obj
->oxlth
,
525 (void *)obj
->oextra
, lth
, name
);
527 if (lth
) artifact_exists(obj
, name
, TRUE
);
528 if (obj
->oartifact
) {
529 /* can't dual-wield with artifact as secondary weapon */
530 if (obj
== uswapwep
) untwoweapon();
531 /* activate warning if you've just named your weapon "Sting" */
532 if (obj
== uwep
) set_artifact_intrinsic(obj
, TRUE
, W_WEP
);
534 if (carried(obj
)) update_inventory();
538 /* create artifact even if it does exist already */
547 lth
= *name
? (int)(strlen(name
) + 1) : 0;
550 name
= strncpy(buf
, name
, PL_PSIZ
- 1);
551 buf
[PL_PSIZ
- 1] = '\0';
553 /* This function allows the artifact to be created again if it already exists.
554 * Still, trying to create an artifact shouldn't de-artifact
555 * it (e.g. Excalibur from prayer). In this case the object
556 * will retain its current name. */
560 if (lth
== obj
->onamelth
) {
561 /* no need to replace entire object */
562 if (lth
) strcpy(ONAME(obj
), name
);
564 obj
= realloc_obj(obj
, obj
->oxlth
,
565 (void *)obj
->oextra
, lth
, name
);
567 if (lth
) artifact_exists(obj
, name
, TRUE
);
568 if (obj
->oartifact
) {
569 /* can't dual-wield with artifact as secondary weapon */
570 if (obj
== uswapwep
) untwoweapon();
571 /* activate warning if you've just named your weapon "Sting" */
572 if (obj
== uwep
) set_artifact_intrinsic(obj
, TRUE
, W_WEP
);
574 if (carried(obj
)) update_inventory();
578 static NEARDATA
const char callable
[] = { ALL_CLASSES
, 0 };
580 SCROLL_CLASS, POTION_CLASS, WAND_CLASS, RING_CLASS, AMULET_CLASS, IMPLANT_CLASS,
581 GEM_CLASS, SPBOOK_CLASS, ARMOR_CLASS, TOOL_CLASS, 0 }; */
586 register struct obj
*obj
;
590 if (UncalledEffect
|| u
.uprops
[UNCALLED_EFFECT
].extrinsic
|| have_uncalledstone()) return 0;
592 switch(ch
= ynq("Name an individual object?")) {
597 allowall
[0] = ALL_CLASSES
; allowall
[1] = '\0';
598 obj
= getobj(allowall
, "name");
599 if(obj
) do_oname(obj
);
603 obj
= getobj(callable
, "call");
605 /* behave as if examining it in inventory;
606 this might set dknown if it was picked up
607 while blind and the hero can now see */
611 You("would never recognize another one.");
623 register struct obj
*obj
;
625 char buf
[BUFSZ
], qbuf
[QBUFSZ
];
627 register char **str1
;
629 if (UncalledEffect
|| u
.uprops
[UNCALLED_EFFECT
].extrinsic
|| have_uncalledstone()) return;
631 if (obj
->otyp
== AMULET_OF_YENDOR
|| obj
->otyp
== FAKE_AMULET_OF_YENDOR
) {
632 pline("Hahaha. Nice try.");
636 if (!obj
->dknown
) return; /* probably blind */
641 if (objects
[otemp
.otyp
].oc_class
== POTION_CLASS
&& otemp
.fromsink
)
642 /* kludge, meaning it's sink water */
643 sprintf(qbuf
,"Call a stream of %s fluid:",
644 OBJ_DESCR(objects
[otemp
.otyp
]));
646 sprintf(qbuf
, "Call %s:", an(xname(&otemp
)));
648 if(!*buf
|| *buf
== '\033')
652 str1
= &(objects
[obj
->otyp
].oc_uname
);
653 if(*str1
) free((void *)*str1
);
655 /* strip leading and trailing spaces; uncalls item if all spaces */
656 (void)mungspaces(buf
);
658 if (*str1
) { /* had name, so possibly remove from disco[] */
659 /* strip name first, for the update_inventory() call
660 from undiscover_object() */
662 undiscover_object(obj
->otyp
);
665 *str1
= strcpy((char *) alloc((unsigned)strlen(buf
)+1), buf
);
666 discover_object(obj
->otyp
, FALSE
, TRUE
); /* possibly add to disco[] */
673 static const char * const ghostnames
[] = {
674 /* these names should have length < PL_NSIZ */
675 /* Capitalize the names for aesthetics -dgk */
676 "Adri", "Andries", "Andreas", "Bert", "David", "Dirk", "Emile",
677 "Frans", "Fred", "Greg", "Hether", "Jay", "John", "Jon", "Karnov",
678 "Kay", "Kenny", "Kevin", "Maud", "Michiel", "Mike", "Peter", "Robert",
679 "Ron", "Tom", "Wilmar", "Nick Danger", "Phoenix", "Jiro", "Mizue",
680 "Stephan", "Lance Braccus", "Shadowhawk", "GoldenIvy", "AmyBSOD",
681 "Dolores", "Mariari", "Lynn", "Emily", "Elenmirie", "Raisse",
682 "MiseryMyra", "Lymia", "Naganadel", "Bhaak", "Jonadab", "Ais523",
683 "Chris_ANG", "Tungtn", "SGrunt", "Lorimer", "Adeon", "FIQ",
684 "Mandevil", "Luxidream", "Noty", "Psymar", "ProzacElf", "Tangles",
685 "Yasdorian", "Bugsniper", "Heliokopis", "ShivanHunter", "Khor",
686 "Kerio", "Stenno", "Deepy", "Damerell", "Elronnd", "Blindcoder",
687 "Ilbelkyr", "GreyKnight", "Paxed", "Crawldragon", "Glycan",
688 "QDesjardin", "Demo", "GagarinX", "Introspective", "Grasshopper",
689 "Tarmunora", "SourSlime", "Mr0t", "Irrenhaus", "Greqrg", "Bouquet",
690 "Lorskel", "Regret", "Tariru", "Goreval", "Winter", "StatueSurfer",
691 "Yer Mivvagah", "Arrhythmia", "Tubs", "Winsalot", "Hothraxxa",
692 "Aosdict", "Ziratha", "Volt", "Kritixilithos", "Rikersan", "K2",
693 "Leeroy", "Hypnotist", "Anerag", "Icerose", "Madotsuki",
694 "PeterQ", "PavelB", "FlamingGuacamole", "Dracopent", "AntiGulp",
695 "Metanite", "Andrio", "Greyberyl", "Pellsson", "Recluse", "Malena",
696 "Pinkbeast", "Mickmane", "Porkman", "Micromoog", "Malor", "Merlek",
697 "Musicdemon", "Amateurhour", "Mobileuser", "Aoei", "Rebatela",
698 "Microlance", "NetSysFire", "Umbire", "CntFai", "Roho", "Cebolla",
703 /* ghost names formerly set by x_monnam(), now by makemon() instead */
707 return rn2(7) ? ghostnames
[rn2(SIZE(ghostnames
))] : (const char *)plname
;
710 /* undead player monsters with names --Amy */
712 static const char * const plrmonnames
[] = {
714 "Wolf", "Big Bear", "Ryu", "Tacitus", "Urbaldi", "Pete", "Lex", "Denshi Gasu", "Mr. Black", "Tiger's Claw", "Katzou", "Mohmar Deathstrike", "Ingo", "Septimus", "Martius", "Faster-Than-All-Others", "Senator Antius", "H.", "Pokoh", "Davide", "Aee", "Doctor Maex", "Marc", "Arno", "Hailbush", "Romann", "Siegfried", "Roy", "G-cheater", "Bastian", "Nicyan", "Queelix", "Miesael", "Honno", "Robin", "JNR", "Lars", "Tommy", "Giglio", "Kastortransport", "Larry", "Morton", "Iggy", "Lemmy", "Ludwig", "Oberdan", "Len-kind", "Ilie", "Till", "Tomas", "Nikolob", "Tillbull", "Robat", "Robert", "Tobi", "Tobias", "Flo-ooo", "Florian", "Cristi", "Christian", "Alex", "Egas", "Hannes", "Leo", "Leopold", "Baschdi Deathstrike", "Markus", "Martin", "Max", "Maximilian", "Jannik", "Conse", "Constantin", "Paul", "David", "Arne", "Julian", "Sebastian", "Yannick", "Felix", "Michael", "Hanno", "Nino", "Daniel", "Lennart", "Ilja", "Nico", "Tillmann", "Stefan", "Lukas", "Selinger", "Gallardo", "Baenni", "Peeer", "Peeta", "Walter", "Klaus", "Walker", "Nikolei", "Jonas", "Iwan", "Rubinho", "Coffin Nail", "Evillan", "Thilo", "Maurus", "Freddie", "Laurens", "Loorenz", "Jorin", "Rinjo", "Andrej", "Anselm", "Aram", "Boris", "Burkhard", "Nils", "Siln", "Ozan", "Otzan", "Thorwald", "Forestgate", "Dominik", "Albert", "Don Finwe", "Gerrit", "Jens", "Leon", "Marius", "Mirko", "Sigurd", "Wilhelm",
718 /* it's obvious that I seem to be better at making up female names ;) */
720 static const char * const plrmonnamesfemale
[] = {
722 "JoJo", "Jyllia", "Sabrina", "Sabine", "Yvara", "Lenka", "Evita", "Liebea", "Isolde", "Elli", "Vilja", "Sunija", "Rhea", "Jasmin", "Erosina", "Irmina", "Melirija", "Larissa", "Sysette", "Miss Haskill", "Elenya", "Golden Mary", "Lara", "Sandrina", "Tonilia", "Claire", "Lumia", "Lahira", "Estrella", "Maricia", "Sontaire", "Marje", "Jill", "Trycja", "Kersey", "Sally", "Hannya", "Svantje", "Jynnifyr", "Elke", "Rinka", "Nicoletta", "Betti", "Ina", "Heikipa", "Jora", "Maitine", "Esruth", "Verene", "Lousie", "Irinella", "Amandina", "Lillie", "Leodoch", "Mirella", "Fisoa", "Suesska", "Ann", "Nurisha", "Desiree", "Birgit", "Elsbeth", "Lamy", "Lissie", "Arabella", "Anastasia", "Henrietta", "Katrin", "Jana", "Aniya", "Yasni", "Almina", "Xeni", "Mirri", "Eleanor", "Kirja", "Inge", "Helli", "Lucia", "Viktorija", "Simona", "Natalyana", "Krista", "Nellina", "Raidara", "Vera", "Noko", "Jasajeen", "Marika", "Merbek", "Marianna", "Sinja", "Rodotha", "Natinya", "Aline", "Michaela", "Mare", "Noenoe", "Tschulia", "Lea", "Sarah", "Iris", "Charravalga", "Fridrika", "Great Jaguar Claw", "Lynette", "Celina", "Irya", "Mariya", "Wendy", "Katia", "Tanja", "Vanessa", "Anne", "Lena", "Jeanetta", "Rungud", "Melissa", "Everella", "Madeleine", "Anita", "Nina", "Natascha", "Manola", "Litta", "Kiwi", "Maja", "Natalje", "Little Marie", "Ronja", "Roswitha", "Sing", "Johanetta", "Julia", "Julchen", "Yvonne", "Magdalena", "Eveline", "Bea", "Beatriz", "Corina", "Elif", "Nadja", "Sunali", "Solvejg", "Thai", "Meltem", "Susanne", "Rita", "Kati", "Katinka", "Mailie", "Marie", "Klara", "Sandra", "Antonia", "Chaska", "Ludgera", "Laura", "Eva", "Maurah", "Sophie", "Marian", "Jil", "Patricia", "Kerstin", "Hanh", "Antje", "Jennifer", "Karin", "Nicole", "Bettina", "Heike", "Dora", "Maite", "Ruth", "Verena", "Lou", "Danielle", "Amandine", "Lily", "Leonie", "Mira", "Sofia", "Christiane", "Ann Kathrin", "Njusha", "Elisabeth", "Conny", "Constanze", "Lisa", "Anja", "Yasaman", "Almut", "Ksenia", "Miriam", "Elena", "Katharina", "Helen", "Victoria", "Simone", "Nataliya", "Kristin", "Nelly", "Rejda", "Nora", "Jasieen", "Yacine", "Marike", "Merle", "Marianne", "Sina", "Dorothea", "Tinanya", "Noemi", "Giulia", "Charlotte", "Friederike", "Sophia", "Sue Lyn", "Juen", "Ruea", "Gudrun", "Ella", "Manuela", "Tilla", "Greta", "Jane", "Celia", "Boese", "Bad", "Eliane", "O'Neill", "Fenja", "Silvana", "Vanasil", "Sarina", "Alexia", "Vida", "Isis", "Ilse", "Melanie", "Lareena", "Janina", "Jannie", "Micha", "Chirin", "Ingrid", "Tonja", "Tapia", "Ligasa", "Andrea", "Mia", "Annemarie", "Caro", "Mandarina", "Ariane", "Carina", "Denise", "Kira", "Nadine", "Franzi", "Amelie", "Annika", "Barbara", "Elsa", "Isabel", "Bianca", "Carmen", "Hilda", "Johanna", "Julietta", "Linda", "Petra", "Sonja", "Stella", "Ismella", "Teresa", "Sagarah", "Rosy",
726 /* the following functions are used by makemon.c */
731 return plrmonnames
[rn2(SIZE(plrmonnames
))];
735 rndplrmonnamefemale()
737 return plrmonnamesfemale
[rn2(SIZE(plrmonnamesfemale
))];
740 /* Monster naming functions:
741 * x_monnam is the generic monster-naming function.
742 * seen unseen detected named
743 * mon_nam: the newt it the invisible orc Fido
744 * noit_mon_nam:the newt (as if detected) the invisible orc Fido
745 * l_monnam: newt it invisible orc dog called fido
746 * Monnam: The newt It The invisible orc Fido
747 * noit_Monnam: The newt (as if detected) The invisible orc Fido
748 * Adjmonnam: The poor newt It The poor invisible orc The poor Fido
749 * Amonnam: A newt It An invisible orc Fido
750 * a_monnam: a newt it an invisible orc Fido
751 * a_noit_monnam: a newt (as if detected) an invisible orc Fido
752 * m_monnam: newt xan orc Fido
753 * y_monnam: your newt your xan your invisible orc Fido
756 /* Bug: if the monster is a priest or shopkeeper, not every one of these
757 * options works, since those are special cases.
760 x_monnam(mtmp
, article
, adjective
, suppress
, called
)
761 register struct monst
*mtmp
;
763 /* ARTICLE_NONE, ARTICLE_THE, ARTICLE_A: obvious
764 * ARTICLE_YOUR: "your" on pets, "the" on everything else
766 * If the monster would be referred to as "it" or if the monster has a name
767 * _and_ there is no adjective, "invisible", "saddled", etc., override this
768 * and always use no article.
770 const char *adjective
;
772 /* SUPPRESS_IT, SUPPRESS_INVISIBLE, SUPPRESS_HALLUCINATION, SUPPRESS_SADDLE.
773 * EXACT_NAME: combination of all the above
777 #ifdef LINT /* static char buf[BUFSZ]; */
780 static char buf
[BUFSZ
];
782 struct permonst
*mdat
= mtmp
->data
;
783 boolean do_hallu
, do_invis
, do_it
, do_saddle
;
784 boolean name_at_start
, has_adjectives
;
786 int egotypeamount
= 0;
788 if (program_state
.gameover
)
789 suppress
|= SUPPRESS_HALLUCINATION
;
790 if (article
== ARTICLE_YOUR
&& !mtmp
->mtame
)
791 article
= ARTICLE_THE
;
793 do_hallu
= Hallucination
&& !(suppress
& SUPPRESS_HALLUCINATION
);
794 do_invis
= mtmp
->minvis
&& !(suppress
& SUPPRESS_INVISIBLE
);
796 do_it
= (!canspotmon(mtmp
) || (!sensemon(mtmp
) && ((is_hider(mtmp
->data
) || mtmp
->egotype_hide
|| mtmp
->egotype_mimic
) && (mtmp
->mundetected
|| mtmp
->m_ap_type
== M_AP_FURNITURE
|| mtmp
->m_ap_type
== M_AP_OBJECT
)) )) &&
797 article
!= ARTICLE_YOUR
&&
798 !program_state
.gameover
&&
800 !(u
.uswallow
&& mtmp
== u
.ustuck
) &&
801 !(suppress
& SUPPRESS_IT
);
805 do_saddle
= !(suppress
& SUPPRESS_SADDLE
);
809 if (!program_state
.gameover
&& mtmp
->data
->msound
== MS_WOLLOH
) u
.wollohhack
= TRUE
;
811 /* unseen monsters, etc. Use "it" */
817 if (Role_if(PM_GENDERSTARIST
) || autismweaponcheck(ART_DAEMEL
)) {
818 if (is_neuter(mtmp
->data
)) strcat(buf
, "male or female or neuter ");
819 else if (mtmp
->female
) strcat(buf
, "female ");
820 else strcat(buf
, "male ");
823 /* priests and minions: don't even use this function */
824 if (mtmp
->ispriest
|| mtmp
->isminion
) {
826 if (StarlitBug
|| u
.uprops
[STARLIT_BUG
].extrinsic
|| have_starlitskystone() || autismweaponcheck(ART_STARRING_INFERNO
) || (uarmf
&& uarmf
->oartifact
== ART_STAR_SOLES
) || (uimplant
&& uimplant
->oartifact
== ART_ARABELLA_S_SEXY_CHARM
) || (uarmg
&& uarmg
->oartifact
== ART_RAAAAAAAARRRRRRGH
) || MonsterGlyphHallu
) {
827 strcat(buf
, "monster");
831 char priestnambuf
[BUFSZ
];
833 long save_prop
= EHalluc_resistance
;
834 unsigned save_invis
= mtmp
->minvis
;
836 /* when true name is wanted, explicitly block Hallucination */
837 if (!do_hallu
) EHalluc_resistance
= 1L;
838 if (!do_invis
) mtmp
->minvis
= 0;
839 name
= priestname(mtmp
, priestnambuf
);
840 EHalluc_resistance
= save_prop
;
841 mtmp
->minvis
= save_invis
;
842 if (article
== ARTICLE_NONE
&& !strncmp(name
, "the ", 4))
844 return strcpy(buf
, name
);
847 /* Shopkeepers: use shopkeeper name. For normal shopkeepers, just
848 * "Asidonhopo"; for unusual ones, "Asidonhopo the invisible
849 * shopkeeper" or "Asidonhopo the blue dragon". If hallucinating,
850 * none of this applies.
852 if (mtmp
->isshk
&& !do_hallu
) {
853 if (adjective
&& article
== ARTICLE_THE
) {
854 /* pathological case: "the angry Asidonhopo the blue dragon"
857 strcat(strcat(buf
, adjective
), " ");
858 strcat(buf
, shkname(mtmp
));
861 strcat(buf
, shkname(mtmp
));
862 if (mdat
== &mons
[PM_SHOPKEEPER
] && !do_invis
)
864 if (mdat
== &mons
[PM_MASTER_SHOPKEEPER
] && !do_invis
)
866 if (mdat
== &mons
[PM_EXPERIENCED_SHOPKEEPER
] && !do_invis
)
868 if (mdat
== &mons
[PM_EXCEPTIONAL_SHOPKEEPER
] && !do_invis
)
870 if (mdat
== &mons
[PM_ELITE_SHOPKEEPER
] && !do_invis
)
872 strcat(buf
, " the ");
874 strcat(buf
, "invisible ");
875 if (StarlitBug
|| u
.uprops
[STARLIT_BUG
].extrinsic
|| have_starlitskystone() || autismweaponcheck(ART_STARRING_INFERNO
) || (uarmf
&& uarmf
->oartifact
== ART_STAR_SOLES
) || (uimplant
&& uimplant
->oartifact
== ART_ARABELLA_S_SEXY_CHARM
) || (uarmg
&& uarmg
->oartifact
== ART_RAAAAAAAARRRRRRGH
) || MonsterGlyphHallu
) strcat(buf
, "monster");
876 else strcat(buf
, mdat
->mname
);
880 /* Put the adjectives in the buffer */
882 strcat(strcat(buf
, adjective
), " ");
884 strcat(buf
, "invisible ");
885 if (do_saddle
&& (mtmp
->misc_worn_check
& W_SADDLE
) &&
886 !Blind
&& !Hallucination
)
887 strcat(buf
, "saddled ");
889 has_adjectives
= TRUE
;
891 has_adjectives
= FALSE
;
893 /* Put the actual monster name or type into the buffer now */
894 /* Be sure to remember whether the buffer starts with a name */
896 strcat(buf
, rndmonnam());
897 name_at_start
= FALSE
;
898 } else if (u
.usanity
> 900 && (u
.usanity
> rn2(10000)) && rn2(10) ) {
899 strcat(buf
, rndmonnam());
900 name_at_start
= FALSE
;
901 } else if (mtmp
->mnamelth
) {
902 char *name
= NAME(mtmp
);
904 if (StarlitBug
|| u
.uprops
[STARLIT_BUG
].extrinsic
|| have_starlitskystone() || autismweaponcheck(ART_STARRING_INFERNO
) || (uarmf
&& uarmf
->oartifact
== ART_STAR_SOLES
) || (uimplant
&& uimplant
->oartifact
== ART_ARABELLA_S_SEXY_CHARM
) || (uarmg
&& uarmg
->oartifact
== ART_RAAAAAAAARRRRRRGH
) || MonsterGlyphHallu
) {
905 strcat(buf
, "monster");
906 name_at_start
= TRUE
;
909 if (mdat
== &mons
[PM_GHOST
]) {
910 sprintf(eos(buf
), "%s ghost", s_suffix(name
));
911 name_at_start
= TRUE
;
912 } else if (called
&& !is_mplayer(mdat
) ) {
913 sprintf(eos(buf
), "%s called %s", mdat
->mname
, name
);
914 name_at_start
= (boolean
)type_is_pname(mdat
);
915 } else if (is_mplayer(mdat
) && (bp
= strstri(name
, " the ")) != 0) {
916 /* <name> the <adjective> <invisible> <saddled> <rank> */
920 pbuf
[bp
- name
+ 5] = '\0'; /* adjectives right after " the " */
923 strcat(pbuf
, bp
+ 5); /* append the rest of the name */
925 article
= ARTICLE_NONE
;
926 name_at_start
= TRUE
;
927 } else if (is_mplayer(mdat
) /*&& !In_endgame(&u.uz)*/) { /* always include the rank, no matter what --Amy */
929 sprintf(eos(buf
), "%s called %s", mdat
->mname
, name
);
930 strcpy(pbuf
, rank_of((int)mtmp
->m_lev
, monsndx(mdat
), (boolean
)mtmp
->female
));
931 strcat(buf
, " the ");
932 strcat(buf
, lcase(pbuf
));
933 name_at_start
= FALSE
;
936 name_at_start
= TRUE
;
940 } else if (is_mplayer(mdat
) /*&& !In_endgame(&u.uz)*/) {
942 if (StarlitBug
|| u
.uprops
[STARLIT_BUG
].extrinsic
|| have_starlitskystone() || autismweaponcheck(ART_STARRING_INFERNO
) || (uarmf
&& uarmf
->oartifact
== ART_STAR_SOLES
) || (uimplant
&& uimplant
->oartifact
== ART_ARABELLA_S_SEXY_CHARM
) || (uarmg
&& uarmg
->oartifact
== ART_RAAAAAAAARRRRRRGH
) || MonsterGlyphHallu
) strcat(buf
, "monster");
944 strcpy(pbuf
, rank_of((int)mtmp
->m_lev
, monsndx(mdat
), (boolean
)mtmp
->female
));
945 strcat(buf
, lcase(pbuf
));
947 name_at_start
= FALSE
;
949 if (StarlitBug
|| u
.uprops
[STARLIT_BUG
].extrinsic
|| have_starlitskystone() || autismweaponcheck(ART_STARRING_INFERNO
) || (uarmf
&& uarmf
->oartifact
== ART_STAR_SOLES
) || (uimplant
&& uimplant
->oartifact
== ART_ARABELLA_S_SEXY_CHARM
) || (uarmg
&& uarmg
->oartifact
== ART_RAAAAAAAARRRRRRGH
) || MonsterGlyphHallu
) strcat(buf
, "monster");
950 else strcat(buf
, mdat
->mname
);
951 name_at_start
= (boolean
)type_is_pname(mdat
);
954 if (name_at_start
&& (article
== ARTICLE_YOUR
|| !has_adjectives
)) {
955 if (mdat
== &mons
[PM_WIZARD_OF_YENDOR
])
956 article
= ARTICLE_THE
;
958 article
= ARTICLE_NONE
;
959 } else if ((mdat
->geno
& G_UNIQ
) && article
== ARTICLE_A
) {
960 article
= ARTICLE_THE
;
963 if (!do_hallu
&& mtmp
->isegotype
&& !mtmp
->noegodesc
&& !mtmp
->noegodisplay
&& !PlayerUninformation
) {
965 /* Some of these use - or other weird ways to combine two words, which is actually against the rules
966 * of the English grammar, but it's intentional to mark words that belong to a single egotype, because
967 * a monster may have several egotypes at the same time. --Amy */
969 /* we can't make the buffer arbitrarily large, so there needs to be a sanity check for the # of egotypes that
970 * gets displayed, otherwise we get segfaults when a player casts mutation a gazillion times. */
973 if (mtmp
->egotype_thief
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Thief");
974 if (mtmp
->egotype_wallwalk
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Phazer");
975 if (mtmp
->egotype_disenchant
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Disenchanter");
976 if (mtmp
->egotype_rust
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Ruster");
977 if (mtmp
->egotype_corrosion
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Corroder");
978 if (mtmp
->egotype_decay
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Decayer");
979 if (mtmp
->egotype_wither
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Witherer");
980 if (mtmp
->egotype_grab
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Grabber");
981 if (mtmp
->egotype_flying
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Flyer");
982 if (mtmp
->egotype_hide
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Hider");
983 if (mtmp
->egotype_regeneration
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Regenerator");
984 if (mtmp
->egotype_undead
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Undead");
985 if (mtmp
->egotype_domestic
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Pet-type");
986 if (mtmp
->egotype_covetous
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Covenant");
987 if (mtmp
->egotype_avoider
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Avoider");
988 if (mtmp
->egotype_petty
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Pettymonster");
989 if (mtmp
->egotype_pokemon
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Pokemon");
990 if (mtmp
->egotype_slows
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Slower");
991 if (mtmp
->egotype_vampire
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Vampire");
992 if (mtmp
->egotype_teleportself
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Teleporter");
993 if (mtmp
->egotype_teleportyou
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Warper");
994 if (mtmp
->egotype_wrap
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Wrapper");
995 if (mtmp
->egotype_disease
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Inficator");
996 if (mtmp
->egotype_slime
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Slimer");
997 if (mtmp
->egotype_engrave
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Rubber");
998 if (mtmp
->egotype_dark
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Endarker");
999 if (mtmp
->egotype_luck
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Luck-sucker");
1000 if (mtmp
->egotype_push
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Pusher");
1001 if (mtmp
->egotype_arcane
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Shaman");
1002 if (mtmp
->egotype_clerical
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Cleric");
1004 if (mtmp
->egotype_armorer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Armorer");
1005 if (mtmp
->egotype_tank
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Tank");
1006 if (mtmp
->egotype_speedster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Speedster");
1007 if (mtmp
->egotype_racer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Racer");
1009 if (mtmp
->egotype_randomizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Randomizer");
1010 if (mtmp
->egotype_blaster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Blaster");
1011 if (mtmp
->egotype_multiplicator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Multiplicator");
1013 if (mtmp
->egotype_gator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Gator");
1015 if (mtmp
->egotype_reflecting
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Reflector");
1016 if (mtmp
->egotype_hugger
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Hugger");
1017 if (mtmp
->egotype_mimic
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Mimic");
1018 if (mtmp
->egotype_permamimic
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Permamimic");
1020 if (mtmp
->egotype_poisoner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Poisoner");
1021 if (mtmp
->egotype_elementalist
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Elementalist");
1022 if (mtmp
->egotype_resistor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Resistor");
1023 if (mtmp
->egotype_acidspiller
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Acidspiller");
1024 if (mtmp
->egotype_watcher
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Watcher");
1025 if (mtmp
->egotype_metallivore
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Metallivore");
1026 if (mtmp
->egotype_lithivore
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Lithivore");
1027 if (mtmp
->egotype_organivore
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Organivore");
1028 if (mtmp
->egotype_breather
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Breather");
1029 if (mtmp
->egotype_beamer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Beamer");
1030 if (mtmp
->egotype_troll
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Resurrector");
1032 if (mtmp
->egotype_faker
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Faker");
1033 if (mtmp
->egotype_farter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Farter");
1034 if (mtmp
->egotype_timer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Timer");
1035 if (mtmp
->egotype_thirster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Thirster");
1036 if (mtmp
->egotype_watersplasher
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Watersplasher");
1037 if (mtmp
->egotype_cancellator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Cancellator");
1038 if (mtmp
->egotype_banisher
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Banisher");
1039 if (mtmp
->egotype_shredder
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Shredder");
1040 if (mtmp
->egotype_abductor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Abductor");
1041 if (mtmp
->egotype_incrementor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Incrementor");
1042 if (mtmp
->egotype_mirrorimage
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Mirror-image");
1043 if (mtmp
->egotype_curser
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Curser");
1044 if (mtmp
->egotype_horner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Horner");
1045 if (mtmp
->egotype_lasher
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Lasher");
1046 if (mtmp
->egotype_cullen
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Cullen");
1047 if (mtmp
->egotype_webber
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Webber");
1048 if (mtmp
->egotype_itemporter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Itemporter");
1049 if (mtmp
->egotype_schizo
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Schizo");
1050 if (mtmp
->egotype_nexus
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Nexus");
1051 if (mtmp
->egotype_sounder
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Sounder");
1052 if (mtmp
->egotype_gravitator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Gravitator");
1053 if (mtmp
->egotype_inert
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Inert");
1054 if (mtmp
->egotype_antimage
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Antimage");
1055 if (mtmp
->egotype_plasmon
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Plasmon");
1056 if (mtmp
->egotype_weaponizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Weaponizer");
1057 if (mtmp
->egotype_engulfer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Engulfer");
1058 if (mtmp
->egotype_bomber
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Bomber");
1059 if (mtmp
->egotype_exploder
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Exploder");
1060 if (mtmp
->egotype_unskillor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Unskillor");
1061 if (mtmp
->egotype_blinker
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Blinker");
1062 if (mtmp
->egotype_psychic
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Psychic");
1063 if (mtmp
->egotype_abomination
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Abomination");
1064 if (mtmp
->egotype_gazer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Gazer");
1065 if (mtmp
->egotype_seducer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Seducer");
1066 if (mtmp
->egotype_flickerer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Flickerer");
1067 if (mtmp
->egotype_hitter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Hitter");
1068 if (mtmp
->egotype_piercer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Piercer");
1069 if (mtmp
->egotype_petshielder
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Petshielder");
1070 if (mtmp
->egotype_displacer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Displacer");
1071 if (mtmp
->egotype_lifesaver
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Lifesaver");
1072 if (mtmp
->egotype_venomizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Venomizer");
1073 if (mtmp
->egotype_dreameater
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Dream-eater");
1074 if (mtmp
->egotype_nastinator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Nastinator");
1075 if (mtmp
->egotype_baddie
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Baddie");
1076 if (mtmp
->egotype_sludgepuddle
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Sludgepuddle");
1077 if (mtmp
->egotype_vulnerator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Vulnerator");
1078 if (mtmp
->egotype_marysue
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Mary-Sue");
1079 if (mtmp
->egotype_shader
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Shader");
1080 if (mtmp
->egotype_amnesiac
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Amnesiac");
1081 if (mtmp
->egotype_trapmaster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Trapmaster");
1082 if (mtmp
->egotype_midiplayer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Midi-Player");
1083 if (mtmp
->egotype_rngabuser
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " RNG-abuser");
1084 if (mtmp
->egotype_mastercaster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Mastercaster");
1085 if (mtmp
->egotype_aligner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Aligner");
1086 if (mtmp
->egotype_sinner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Sinner");
1087 if (mtmp
->egotype_aggravator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Aggravator");
1088 if (mtmp
->egotype_minator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Minator");
1089 if (mtmp
->egotype_contaminator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Contaminator");
1090 if (mtmp
->egotype_radiator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Radiator");
1091 if (mtmp
->egotype_weeper
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Weeper");
1092 if (mtmp
->egotype_reactor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Reactor");
1093 if (mtmp
->egotype_destructor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Destructor");
1094 if (mtmp
->egotype_trembler
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Trembler");
1095 if (mtmp
->egotype_worldender
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " World-ender");
1096 if (mtmp
->egotype_damager
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Damager");
1097 if (mtmp
->egotype_antitype
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Antitype");
1098 if (mtmp
->egotype_painlord
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Painlord");
1099 if (mtmp
->egotype_empmaster
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " EMP-Master");
1100 if (mtmp
->egotype_spellsucker
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Spellsucker");
1101 if (mtmp
->egotype_eviltrainer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " EvilTrainer");
1102 if (mtmp
->egotype_statdamager
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " StatDamager");
1103 if (mtmp
->egotype_damagedisher
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Damage-Disher");
1104 if (mtmp
->egotype_thiefguildmember
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " ThiefGuildMember");
1105 if (mtmp
->egotype_rogue
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Rogue");
1106 if (mtmp
->egotype_steed
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Steed");
1107 if (mtmp
->egotype_champion
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Champion");
1108 if (mtmp
->egotype_boss
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Boss");
1109 if (mtmp
->egotype_atomizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Atomizer");
1110 if (mtmp
->egotype_perfumespreader
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Perfume-Spreader");
1111 if (mtmp
->egotype_converter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Converter");
1112 if (mtmp
->egotype_wouwouer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Wouwouer");
1113 if (mtmp
->egotype_allivore
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Allivore");
1114 if (mtmp
->egotype_nastycurser
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Nastycurser");
1115 if (mtmp
->egotype_sanitizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Sanitizer");
1116 if (mtmp
->egotype_laserpwnzor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " LaserPwnz0r");
1117 if (mtmp
->egotype_badowner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Bad0wn3r");
1118 if (mtmp
->egotype_bleeder
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Bleeder");
1119 if (mtmp
->egotype_shanker
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Shanker");
1120 if (mtmp
->egotype_terrorizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Terrorizer");
1121 if (mtmp
->egotype_feminizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Feminizer");
1122 if (mtmp
->egotype_levitator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Levitator");
1123 if (mtmp
->egotype_illusionator
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Illusionator");
1124 if (mtmp
->egotype_stealer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Stealer");
1125 if (mtmp
->egotype_stoner
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Stoner");
1126 if (mtmp
->egotype_maecke
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Maecke");
1127 if (mtmp
->egotype_flamer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Flamer");
1128 if (mtmp
->egotype_datadeleter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " DataDeleter");
1129 if (mtmp
->egotype_blasphemer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Blasphemer");
1130 if (mtmp
->egotype_dropper
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Dropper");
1131 if (mtmp
->egotype_amberite
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Amberite");
1132 if (mtmp
->egotype_phonecaller
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Phonecaller");
1133 if (mtmp
->egotype_cameraclicker
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " CameraClicker");
1134 if (mtmp
->egotype_singagent
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " SingAgent");
1135 if (mtmp
->egotype_alladrainer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Alladrainer");
1136 if (mtmp
->egotype_selfharmer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Self-Harmer");
1137 if (mtmp
->egotype_stabilizer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Stabilizer");
1138 if (mtmp
->egotype_escaper
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Escaper");
1139 if (mtmp
->egotype_spoilerproofer
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Spoilerproofer");
1140 if (mtmp
->egotype_metalmafioso
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " MetalMafioso");
1141 if (mtmp
->egotype_deepstatemember
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " DeepStateMember");
1142 if (mtmp
->egotype_inverter
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Inverter");
1143 if (mtmp
->egotype_debtor
&& (++egotypeamount
< 21) ) sprintf(eos(buf
), " Debtor");
1144 if (egotypeamount
> 20) sprintf(eos(buf
), " (%d egotypes)", egotypeamount
);
1148 if (!do_hallu
&& mtmp
->female
&& humanoid(mtmp
->data
) && mtmp
->lisaseen
) {
1149 sprintf(eos(buf
), " wearing %s", pantsdescription(mtmp
));
1157 strcpy(buf2
, "your ");
1162 strcpy(buf2
, "the ");
1180 register struct monst
*mtmp
;
1182 return(x_monnam(mtmp
, ARTICLE_NONE
, (char *)0,
1183 mtmp
->mnamelth
? SUPPRESS_SADDLE
: 0, TRUE
));
1191 register struct monst
*mtmp
;
1193 return(x_monnam(mtmp
, ARTICLE_THE
, (char *)0,
1194 mtmp
->mnamelth
? SUPPRESS_SADDLE
: 0, FALSE
));
1197 /* print the name as if mon_nam() was called, but assume that the player
1198 * can always see the monster--used for probing and for monsters aggravating
1199 * the player with a cursed potion of invisibility
1203 register struct monst
*mtmp
;
1205 return(x_monnam(mtmp
, ARTICLE_THE
, (char *)0,
1206 mtmp
->mnamelth
? (SUPPRESS_SADDLE
|SUPPRESS_IT
) :
1207 SUPPRESS_IT
, FALSE
));
1212 register struct monst
*mtmp
;
1214 register char *bp
= mon_nam(mtmp
);
1222 register struct monst
*mtmp
;
1224 register char *bp
= noit_mon_nam(mtmp
);
1230 /* monster's own name */
1235 return x_monnam(mtmp
, ARTICLE_NONE
, (char *)0, EXACT_NAME
, FALSE
);
1238 /* pet name: "your little dog" */
1243 int prefix
, suppression_flag
;
1245 prefix
= mtmp
->mtame
? ARTICLE_YOUR
: ARTICLE_THE
;
1246 suppression_flag
= (mtmp
->mnamelth
1247 /* "saddled" is redundant when mounted */
1249 ) ? SUPPRESS_SADDLE
: 0;
1251 return x_monnam(mtmp
, prefix
, (char *)0, suppression_flag
, FALSE
);
1258 Adjmonnam(mtmp
, adj
)
1259 register struct monst
*mtmp
;
1260 register const char *adj
;
1262 register char *bp
= x_monnam(mtmp
, ARTICLE_THE
, adj
,
1263 mtmp
->mnamelth
? SUPPRESS_SADDLE
: 0, FALSE
);
1271 register struct monst
*mtmp
;
1273 return x_monnam(mtmp
, ARTICLE_A
, (char *)0,
1274 mtmp
->mnamelth
? SUPPRESS_SADDLE
: 0, FALSE
);
1279 register struct monst
*mtmp
;
1281 return x_monnam(mtmp
, ARTICLE_A
, (char *)0,
1282 mtmp
->mnamelth
? (SUPPRESS_SADDLE
|SUPPRESS_IT
) : SUPPRESS_IT
, FALSE
);
1287 register struct monst
*mtmp
;
1289 register char *bp
= a_monnam(mtmp
);
1298 static char weapnamebuf
[BUFSZ
];
1300 sprintf(weapnamebuf
, "dummy weapon");
1303 sprintf(weapnamebuf
, "imaginary widget");
1305 sprintf(weapnamebuf
, xname(uwep
));
1312 elementdamagedesc(artinum
)
1315 static char elemtypedesc
[BUFSZ
];
1317 sprintf(elemtypedesc
, "physical");
1319 switch (artilist
[artinum
].attk
.adtyp
) {
1322 sprintf(elemtypedesc
, "physical"); break;
1324 sprintf(elemtypedesc
, "drain life"); break;
1326 sprintf(elemtypedesc
, "fire"); break;
1328 sprintf(elemtypedesc
, "cold"); break;
1330 sprintf(elemtypedesc
, "shock"); break;
1332 sprintf(elemtypedesc
, "acid"); break;
1334 sprintf(elemtypedesc
, "magic"); break;
1336 sprintf(elemtypedesc
, "stun"); break;
1339 return elemtypedesc
;
1346 static char pantsbuf
[BUFSZ
];
1350 switch (u
.femalehaircut
) {
1352 sprintf(pantsbuf
, "standard female bundle");
1355 sprintf(pantsbuf
, "house goddess");
1358 sprintf(pantsbuf
, "serious woman");
1361 sprintf(pantsbuf
, "miss perfect");
1364 sprintf(pantsbuf
, "seductress");
1367 sprintf(pantsbuf
, "brush cut");
1370 sprintf(pantsbuf
, "scratchy brush");
1373 sprintf(pantsbuf
, "welderess");
1376 sprintf(pantsbuf
, "sarge");
1379 sprintf(pantsbuf
, "pretty puff");
1382 sprintf(pantsbuf
, "clean cut");
1385 sprintf(pantsbuf
, "fringe dance");
1388 sprintf(pantsbuf
, "swanky woman");
1391 sprintf(pantsbuf
, "unrest");
1394 sprintf(pantsbuf
, "headwind");
1397 sprintf(pantsbuf
, "messy");
1400 sprintf(pantsbuf
, "fairy tails");
1403 sprintf(pantsbuf
, "fallen angel");
1406 sprintf(pantsbuf
, "shred flight");
1409 sprintf(pantsbuf
, "occams razor");
1412 sprintf(pantsbuf
, "un-lady");
1415 sprintf(pantsbuf
, "iron maiden");
1418 sprintf(pantsbuf
, "little devil");
1421 sprintf(pantsbuf
, "bouffant flundle");
1424 sprintf(pantsbuf
, "long bundle");
1427 sprintf(pantsbuf
, "open bonnet");
1430 sprintf(pantsbuf
, "glowing bundle");
1433 sprintf(pantsbuf
, "brush bundle");
1436 sprintf(pantsbuf
, "bonnety bundle");
1439 sprintf(pantsbuf
, "bang brush");
1442 sprintf(pantsbuf
, "hard night");
1445 sprintf(pantsbuf
, "hitwoman");
1448 sprintf(pantsbuf
, "total bundle");
1451 sprintf(pantsbuf
, "love bundle");
1454 sprintf(pantsbuf
, "wavy bundle");
1457 sprintf(pantsbuf
, "wing bundle");
1460 sprintf(pantsbuf
, "girl bundle");
1463 sprintf(pantsbuf
, "bonnet mouse");
1466 sprintf(pantsbuf
, "lovely bundle");
1469 sprintf(pantsbuf
, "special bundle");
1472 sprintf(pantsbuf
, "cuddle bundle");
1475 sprintf(pantsbuf
, "fleece bundle");
1478 sprintf(pantsbuf
, "extra long bundle");
1481 sprintf(pantsbuf
, "very long bundle");
1484 sprintf(pantsbuf
, "bundle head");
1487 sprintf(pantsbuf
, "extra fleecy bundle");
1490 sprintf(pantsbuf
, "double bundle");
1493 sprintf(pantsbuf
, "full bundle");
1496 sprintf(pantsbuf
, "sweetheart bundle");
1499 sprintf(pantsbuf
, "vortex bundle");
1502 sprintf(pantsbuf
, "bundle waterfall");
1505 sprintf(pantsbuf
, "super bundle");
1508 sprintf(pantsbuf
, "swoon bundle");
1511 sprintf(pantsbuf
, "brush bundle head");
1514 sprintf(pantsbuf
, "gentle bundle");
1517 sprintf(pantsbuf
, "thunderstorm witch");
1521 strcat(pantsbuf
, "'");
1525 switch (u
.malehaircut
) {
1527 sprintf(pantsbuf
, "standard male bundle");
1530 sprintf(pantsbuf
, "brush cut");
1533 sprintf(pantsbuf
, "half-bald");
1536 sprintf(pantsbuf
, "bald");
1539 sprintf(pantsbuf
, "sarge");
1542 sprintf(pantsbuf
, "comb over");
1545 sprintf(pantsbuf
, "high riser");
1548 sprintf(pantsbuf
, "tunnel snake");
1551 sprintf(pantsbuf
, "clean cut");
1554 sprintf(pantsbuf
, "unrest");
1557 sprintf(pantsbuf
, "headwind");
1560 sprintf(pantsbuf
, "messy");
1563 sprintf(pantsbuf
, "pompadour");
1566 sprintf(pantsbuf
, "terrorsaurus");
1569 sprintf(pantsbuf
, "punk");
1572 sprintf(pantsbuf
, "war falcon");
1575 sprintf(pantsbuf
, "spikey");
1578 sprintf(pantsbuf
, "wasteland");
1581 sprintf(pantsbuf
, "gentle wave");
1585 /* male characters also have a beard */
1586 strcat(pantsbuf
, "' and your beard type is '");
1588 switch (u
.malebeard
) {
1590 strcat(pantsbuf
, "standard male beard");
1593 strcat(pantsbuf
, "honest abe");
1596 strcat(pantsbuf
, "pointed beard");
1599 strcat(pantsbuf
, "thin strip");
1602 strcat(pantsbuf
, "running stripe");
1605 strcat(pantsbuf
, "daddy o");
1608 strcat(pantsbuf
, "beatnick");
1611 strcat(pantsbuf
, "chopper");
1614 strcat(pantsbuf
, "death biker");
1617 strcat(pantsbuf
, "hard buster");
1620 strcat(pantsbuf
, "adventurer");
1623 strcat(pantsbuf
, "old beard");
1626 strcat(pantsbuf
, "gettysburg");
1629 strcat(pantsbuf
, "little chin beard");
1632 strcat(pantsbuf
, "mandshu");
1635 strcat(pantsbuf
, "machiavelli");
1638 strcat(pantsbuf
, "old fogey");
1641 strcat(pantsbuf
, "trucker");
1644 strcat(pantsbuf
, "backwater");
1647 strcat(pantsbuf
, "mephistopheles");
1650 strcat(pantsbuf
, "bristly cool");
1653 strcat(pantsbuf
, "el carcinero");
1656 strcat(pantsbuf
, "hombre");
1659 strcat(pantsbuf
, "deserteur");
1662 strcat(pantsbuf
, "grater");
1665 strcat(pantsbuf
, "hand of the dead");
1668 strcat(pantsbuf
, "inn racquet");
1671 strcat(pantsbuf
, "stranded");
1674 strcat(pantsbuf
, "chic rogue");
1677 strcat(pantsbuf
, "smooth eel");
1680 strcat(pantsbuf
, "dictator cheng");
1683 strcat(pantsbuf
, "ronin");
1686 strcat(pantsbuf
, "old samurai");
1689 strcat(pantsbuf
, "deadly chic");
1692 strcat(pantsbuf
, "gentleman");
1695 strcat(pantsbuf
, "women's hero");
1698 strcat(pantsbuf
, "revolver man");
1701 strcat(pantsbuf
, "roughneck");
1704 strcat(pantsbuf
, "comrade");
1707 strcat(pantsbuf
, "cavalry");
1710 strcat(pantsbuf
, "man picture");
1713 strcat(pantsbuf
, "saber rattler");
1716 strcat(pantsbuf
, "cheek snouter");
1719 strcat(pantsbuf
, "bristle cutlets");
1722 strcat(pantsbuf
, "royale");
1725 strcat(pantsbuf
, "pinch of soul");
1728 strcat(pantsbuf
, "tire tracks");
1731 strcat(pantsbuf
, "chin fluff");
1734 strcat(pantsbuf
, "raw beard");
1737 strcat(pantsbuf
, "'");
1745 /* fueled by seething rage the hordes will descend upon Amy for adding this... and all just because she's using the term
1746 * "gender" properly (there are only two genders) and calls these what they are: gender identities, of which there could
1747 * in theory be as many as there are people in the world, or possibly even more
1748 * IMHO the main reason why people keep calling these "genders" is because gender identity is too clunky a term, and
1749 * therefore they're "simplifying" by calling them genders, just like 99.9% of people who release games on steam are
1750 * tagging them "roguelike" even if the game isn't even remotely similar to the original game Rogue because it would be
1751 * too difficult to label them as roguelite or roguelikelike or whatever... */
1753 mongenderidentity(mtmp
)
1754 register struct monst
*mtmp
;
1756 static char pantsbuf
[BUFSZ
];
1758 switch (mtmp
->genderidentity
) {
1761 sprintf(pantsbuf
, "nonspecific");
1764 sprintf(pantsbuf
, "female");
1767 sprintf(pantsbuf
, "male");
1770 sprintf(pantsbuf
, "transgender female");
1773 sprintf(pantsbuf
, "transgender male");
1776 sprintf(pantsbuf
, "trans female");
1779 sprintf(pantsbuf
, "trans male");
1782 sprintf(pantsbuf
, "trans");
1785 sprintf(pantsbuf
, "female to male");
1788 sprintf(pantsbuf
, "male to female");
1791 sprintf(pantsbuf
, "transsexual");
1794 sprintf(pantsbuf
, "cisgender");
1797 sprintf(pantsbuf
, "cis female");
1800 sprintf(pantsbuf
, "cis male");
1803 sprintf(pantsbuf
, "gender non-conforming");
1806 sprintf(pantsbuf
, "no gender");
1809 sprintf(pantsbuf
, "nonbinary");
1812 sprintf(pantsbuf
, "neutrois");
1815 sprintf(pantsbuf
, "genderfluid");
1818 sprintf(pantsbuf
, "genderqueer");
1821 sprintf(pantsbuf
, "demigender");
1824 sprintf(pantsbuf
, "demigirl");
1827 sprintf(pantsbuf
, "demiboy");
1830 sprintf(pantsbuf
, "agender");
1833 sprintf(pantsbuf
, "intergender");
1836 sprintf(pantsbuf
, "intersex");
1839 sprintf(pantsbuf
, "pangender");
1842 sprintf(pantsbuf
, "poligender");
1845 sprintf(pantsbuf
, "omnigender");
1848 sprintf(pantsbuf
, "bigender");
1851 sprintf(pantsbuf
, "androgyne");
1854 sprintf(pantsbuf
, "third gender");
1857 sprintf(pantsbuf
, "trigender");
1866 pantsdescription(mtmp
)
1867 register struct monst
*mtmp
;
1869 static char pantsbuf
[BUFSZ
];
1871 switch (mtmp
->lisapantscolor
) {
1874 sprintf(pantsbuf
, "white");
1877 sprintf(pantsbuf
, "gray");
1880 sprintf(pantsbuf
, "black");
1883 sprintf(pantsbuf
, "yellow");
1886 sprintf(pantsbuf
, "red");
1889 sprintf(pantsbuf
, "green");
1892 sprintf(pantsbuf
, "blue");
1895 sprintf(pantsbuf
, "pink");
1898 sprintf(pantsbuf
, "lilac");
1901 sprintf(pantsbuf
, "magenta");
1904 sprintf(pantsbuf
, "cyan");
1907 sprintf(pantsbuf
, "orange");
1910 sprintf(pantsbuf
, "polka-dotted");
1913 sprintf(pantsbuf
, "wine-red");
1916 sprintf(pantsbuf
, "rainbow-colored");
1919 sprintf(pantsbuf
, "dark blue");
1922 sprintf(pantsbuf
, "sky blue");
1925 sprintf(pantsbuf
, "neon green");
1928 sprintf(pantsbuf
, "beige");
1931 impossible("weird lisapantscolor %d", mtmp
->lisapantscolor
);
1932 sprintf(pantsbuf
, "weird");
1937 strcat(pantsbuf
, " ");
1939 switch (mtmp
->lisapantstype
) {
1942 strcat(pantsbuf
, "pants");
1945 strcat(pantsbuf
, "panties");
1948 strcat(pantsbuf
, "string tangas");
1951 strcat(pantsbuf
, "hotpants");
1954 strcat(pantsbuf
, "sexy underwear");
1957 strcat(pantsbuf
, "thongs");
1960 strcat(pantsbuf
, "bikini pants");
1963 strcat(pantsbuf
, "hipster pants");
1966 strcat(pantsbuf
, "high briefs");
1969 strcat(pantsbuf
, "mid-rise pants");
1972 strcat(pantsbuf
, "cheekies");
1975 strcat(pantsbuf
, "seamless pants");
1978 strcat(pantsbuf
, "g-strings");
1981 strcat(pantsbuf
, "french-cut panties");
1984 strcat(pantsbuf
, "spandex pants");
1987 strcat(pantsbuf
, "cotton pants");
1990 strcat(pantsbuf
, "slip shorts");
1993 strcat(pantsbuf
, "form-fitting panties");
1996 impossible("weird lisapantstype %d", mtmp
->lisapantstype
);
1997 strcat(pantsbuf
, "weirdunderoos");
2006 /* by Amy: will your sanity cause a monster's name to be randomized? */
2010 if (u
.usanity
> 900 && (u
.usanity
> rn2(10000)) && rn2(10) ) return TRUE
;
2015 /* used for monster ID by the '/', ';', and 'C' commands to block remote
2016 identification of the endgame altars via their attending priests */
2018 distant_monnam(mon
, article
, outbuf
)
2020 int article
; /* only ARTICLE_NONE and ARTICLE_THE are handled here */
2023 /* high priest(ess)'s identity is concealed on the Astral Plane,
2024 unless you're adjacent (overridden for hallucination which does
2025 its own obfuscation) */
2026 if ( (mon
->data
== &mons
[PM_HIGH_PRIEST
] || mon
->data
== &mons
[PM_DNETHACK_ELDER_PRIEST_TM_
]) && !Hallucination
&&
2027 Is_astralevel(&u
.uz
) && distu(mon
->mx
, mon
->my
) > 2) {
2028 strcpy(outbuf
, article
== ARTICLE_THE
? "the " : "");
2029 strcat(outbuf
, mon
->female
? "high priestess" : "high priest");
2031 strcpy(outbuf
, x_monnam(mon
, article
, (char *)0, 0, TRUE
));
2036 static const char * const bogusmons
[] = {
2037 "jumbo shrimp", "giant pigmy", "gnu", "killer penguin",
2038 "giant cockroach", "giant slug", "pterodactyl",
2039 "tyrannosaurus rex", "rot grub", "bookworm", "mastah lichen",
2040 "hologram", "jester", "attorney", "sleazoid",
2041 "killer tomato", "amazon", "robot", "battlemech",
2042 "rhinovirus", "lion-dog", "rat-ant", "Y2K bug",
2044 "grue", "Christmas-tree monster", "luck sucker", "paskald",
2045 "brogmoid", "dornbeast", /* Quendor (Zork, &c.) */
2046 "Ancient Multi-Hued Dragon", "Evil Iggy",
2048 "emu", "kestrel", "xeroc", "venus flytrap",
2050 "creeping coins", /* Wizardry */
2051 "siren", /* Greek legend */
2052 "killer bunny", /* Monty Python */
2053 "rodent of unusual size", /* The Princess Bride */
2054 "Smokey the bear", /* "Only you can prevent forest fires!" */
2055 "Luggage", /* Discworld */
2056 "Ent", /* Lord of the Rings */
2057 "tangle tree", "wiggle", /* Xanth */
2058 "white rabbit", "snark", /* Lewis Carroll */
2059 "pushmi-pullyu", /* Dr. Doolittle */
2060 "smurf", /* The Smurfs */
2061 "tribble", "Klingon", "Borg", /* Star Trek */
2062 "Ewok", /* Star Wars */
2063 "Totoro", /* Tonari no Totoro */
2064 "ohmu", /* Nausicaa */
2065 "youma", /* Sailor Moon */
2066 "nyaasu", /* Pokemon (Meowth) */
2067 "Godzilla", "King Kong", /* monster movies */
2068 "earthquake beast", /* old L of SH */
2069 "Invid", /* Robotech */
2070 "Terminator", /* The Terminator */
2071 "boomer", /* Bubblegum Crisis */
2072 "Dalek", /* Dr. Who ("Exterminate!") */
2073 "microscopic space fleet", "Ravenous Bugblatter Beast of Traal",
2075 "teenage mutant ninja turtle", /* TMNT */
2076 "samurai rabbit", /* Usagi Yojimbo */
2077 "aardvark", /* Cerebus */
2078 "Audrey II", /* Little Shop of Horrors */
2079 "witch doctor", "one-eyed one-horned flying purple people eater",
2080 /* 50's rock 'n' roll */
2081 "Barney the dinosaur", /* saccharine kiddy TV */
2082 "Azog the Orc King", "Morgoth", /* Angband */
2084 /*[Tom] new wacky names */
2085 "commando", "green beret", "sherman tank",
2087 "Jedi knight", "tie fighter", "protocol droid", "R2 unit", "Emperor",
2089 "Vorlon", /* Babylon 5 */
2092 "questing beast", /* King Arthur */
2093 "Predator", /* Movie */
2094 "green light", "automobile", "invisible Wizard of Yendor",
2095 "piece of yellowish-brown glass", "wand of nothing",
2096 "ocean","ballpoint pen","paper cut",
2098 "Rune", "Gurk", "Yuval", /* people I know */
2099 "mother-in-law", /* common pest */
2100 "one-winged dewinged stab-bat", /* KoL */
2104 "bluebird of happiness",
2105 "bouncing eye", "floating nose",
2106 "buffer overflow", "dangling pointer", "walking disk drive",
2107 "cacodemon", "scrag",
2108 "cardboard golem", "duct tape golem",
2110 "chocolate pudding",
2112 "corpulent porpoise",
2114 "diagonally moving grid bug",
2118 "existential angst",
2119 "figment of your imagination", "flash of insight",
2123 "gray goo", "magnetic monopole",
2128 "ninja pirate zombie robot",
2131 "possessed waffle iron",
2136 "stuffed raccoon puppet",
2140 "wee green blobbie",
2146 "wight supremacist",
2148 "first category perpetual motion device",
2157 "terracotta warrior",
2158 "large microbat", "small megabat",
2160 /* soundex and typos of monsters, from NAO, added in UnNetHack */
2171 "baby balky dragon",
2172 "baby blues dragon",
2175 "baby grainy dragon",
2178 "baby parable worm",
2188 "electrocardiogram eel",
2194 "forest centerfold",
2195 "fierceness sphere",
2217 "prophylactic worm",
2227 "verbal jabberwock",
2233 /* from http://www.alt.org/nethack/addmsgs/viewmsgs.php added in UnNetHackPlus*/
2235 "worthless yellowish-brown glass golem",
2236 "writhing mass of primal chaos", /* ADOM */
2237 "hallucinatory monster",
2239 "colorless green idea",
2242 "hallucinogen-distorted hallucination",
2244 "were(random beast)",
2247 "Gnome With the Wand of Death",
2250 "harmless protoplasm",
2253 "magically animated Vorpal Blade",
2254 "Legendary black beast of Arrrgh",
2256 /* from UnNetHack */
2257 "apostroph golem", "Bob the angry flower",
2258 "bonsai-kitten", "Boxxy", "lonelygirl15",
2259 "tie-thulu", "Domo-kun", "nyan cat",
2260 "looooooooooooong cat", /* internet memes */
2261 "bohrbug", "mandelbug", "schroedinbug", /* bugs */
2262 "Gerbenok", /* Monty Python killer rabbit */
2263 "doenertier", /* Erkan & Stefan */
2264 "Invisible Pink Unicorn",
2265 "Flying Spaghetti Monster", /* deities */
2266 "Bluebear", "Professor Abdullah Nightingale",
2267 "Qwerty Uiop", "troglotroll", /* Zamonien */
2268 "wolpertinger", "elwedritsche", "skvader",
2269 "Nessie", "tatzelwurm", "dahu", /* european cryptids */
2270 "three-headed monkey", /* Monkey Island */
2271 "little green man", /* modern folklore */
2272 "weighted Companion Cube", /* Portal */
2273 "/b/tard", /* /b/ */
2274 "manbearpig", /* South Park */
2275 "ceiling cat", "basement cat",
2276 "monorail cat", /* the Internet is made for cat pix */
2277 "rape golem", /* schnippi */
2278 "tridude", /* POWDER */
2279 "orcus cosmicus", /* Radomir Dopieralski */
2280 "yeek", "quylthulg",
2281 "Greater Hell Beast", /* Angband */
2282 "Vendor of Yizard", /* Souljazz */
2283 "Sigmund", "lernaean hydra", "Ijyb",
2284 "Gloorx Vloq", "Blork the orc", /* Dungeon Crawl Stone Soup */
2285 "unicorn pegasus kitten", /* Wil Wheaton, John Scalzi */
2286 "dwerga nethackus", "dwerga castrum", /* Ask ASCII Ponies */
2288 "Irrenhaus the Third", /* http://www.youtube.com/user/Irrenhaus3 */
2290 "semipotent demidog", "shale imp", /* Homestuck */
2291 "mercury imp", "Betty Crocker",
2293 "patriarchy", "bourgeiose", /* talking points */
2295 "Demonhead Mobster Kingpin", /* Problem Sleuth */
2296 "courtesan angel", "fractal bee",
2297 /* bogus UnNetHack monsters */
2299 "gelatinous sphere", "gelatinous pyramid",
2300 "gelatinous Klein bottle", "gelatinous Mandelbrot set",
2302 /* Welcome to Night Vale*/
2303 "John Peters, you know, the farmer",
2305 "great hell nanafushi",
2306 "giant cockatflayer eellich",
2309 "lesser nishikiori",
2311 "Internet Exploder",
2323 "nijisseiki nama jelly",
2324 "apple konnyaku jelly",
2325 "zakuro konnyaku jelly",
2326 "ume konnyaku jelly",
2327 "grape konnyaku jelly",
2333 "lesser omochi beast",
2351 "chaos shapechanger"
2354 "ultra noncommittal motorcycle",
2362 /*Silly JNetHack classes*/
2377 "cast-off shell of a cicada",
2378 "cast-off shell of a dragonfly larva",
2381 "bitter gourd gang",
2415 "prototype kilogram",
2421 "kitten on your keyboard",
2428 "herbivorous plant",
2429 "flintwork automaton",
2430 "proprllered gargoyle",
2435 "PMD model", "PMX model", /*MikuMikuDance*/
2436 "monster from lift-the-flap book",
2444 "Pandemonium demon", /*Dungeon Crawl*/
2445 "Mobile Idol Ganbutu", /*Aku-Daikan*/
2446 "Tutankamen", /*Aku-Daikan*/
2447 "Scissorman", /*Clock Tower*/
2448 "giant house centipede",
2451 "Kan-musu", /*Kantai Collection*/
2452 "forgotten beast", /*Dwarf Fortress*/
2453 "blank body", /*Cataclysm DDA*/
2454 "F.O.E", /*Etrian Odyssey*/
2455 "Blue-eyed Doll", /*Dolls of Friendship*/
2456 "handmade oobleck slime",
2458 "microdrive", /*Goat MMO Simulator*/
2459 "gold harvest golem", /*Goat MMO Simulator*/
2461 /* from UnNetHackPlus */
2462 "King Krakus", /* Polish folklore */
2463 "Topielec", /* Slavic folklore */
2464 "pink oliphaunt", /* Lord of the Rings + silliness */
2465 "Amphisbaena", /* Greek mythology */
2466 "phoenix", /* Greek mythology */
2467 "catoblepas", /* Greek mythology */
2468 "phantom kangaroo", /* urban legend */
2469 "echinemon", /* from medieval literature, "enemy of the dragon" */
2470 "Ratatoskr", /* Norse mythology */
2471 "Twrch Trwyth", /* Arthurian legends */
2472 "Unperson", /* Nineteen Eighty-Four */
2473 "Somebody Else's Problem", /* Douglas Adams */
2474 "Armok", /* Dwarf Fortress */
2475 "Dwarf-Eating Carp", /* Dwarf Fortress */
2476 "Urist McDwarf", /* Dwarf Fortress */
2477 "werecapybara", /* Dwarf Fortress */
2480 "Evil Otto", /* Berzerk - via GruntHack */
2481 "P'lod", /* Weekly World News */
2483 "dark matter golem",
2484 "giant orange brain", /* Dungeon Crawl Stone Soup */
2485 "ugly thing", /* Dungeon Crawl Stone Soup */
2486 "hellephant", /* Dungeon Crawl Stone Soup */
2487 "inept mimic", /* Dungeon Crawl Stone Soup */
2488 "hungry ghost", /* Dungeon Crawl Stone Soup */
2489 "unborn deep dwarf", /* Dungeon Crawl Stone Soup */
2490 "Wandering mushroom", /* Dungeon Crawl Stone Soup */
2492 "Delaunay tessellation field estimator",
2493 "unnameable horror from beyond",/* NAO fruit name*/
2495 "error-spamming shambling horror", /* SporkHack */
2496 "Grid Bug Mk. 2", /* SLAS'EM (nickname of arc bugs) */
2497 /* "killer tripe ration", */ /* SLAS'EM */
2498 "yet another D&D monster",
2501 /* via ProgressQuest */
2510 "su-monster", /* Dungeons & Dragons */
2511 "shambling mound", /* Dungeons & Dragons */
2512 "sand elemental", /* Dungeons & Dragons */
2513 "rubber golem", /* Dungeons & Dragons */
2514 "remorhaz", /* Dungeons & Dragons */
2515 "otyugh", /* Dungeons & Dragons */
2519 "peryton", /* Jorge Luis Borges - Book of Imaginary Beings */
2521 "beer golem", /* ProgressQuest */
2522 "rice giant", /* ProgressQuest */
2523 "porn elemental", /* ProgressQuest */
2524 "demicanadian", /* ProgressQuest */
2525 "gyrognome", /* ProgressQuest */
2532 /* end of monsters via ProgressQuest */
2533 "Lucius Malfoy", /* Harry Potter */
2534 "Dumbledore", /* Harry Potter */
2535 "Harry Potter", /* Harry Potter */
2536 "Crumple-Horned Snorkack", /* Harry Potter */
2537 "mailer daemon", /* with defined MAIL it may be selected as real monster in get_bogus_monster_name */
2538 "Vaarsuvius", /* The Order of the Stick */
2539 "Durkon Thundershield", /* The Order of the Stick */
2540 "Roy Greenhilt", /* The Order of the Stick */
2541 "Lord Voldemort", "He-who-may-not-be-named", "Tom Marvolo Riddle", "Al-Mutasim", "Basil the Bat Lord", "Insectoid Queen Gypsy Moth", "run-time error", "abnormal program termination", "unhandled exception", "assertion failure", "file read error",
2542 "halt", "giant error", "world killer", "eater of worlds", "Mickey Mouse", "Donald Duck", "Scrooge McDuck", "Link", "Zelda", "Ganondorf", "Enderdragon", "Pikachu", "Aerodactyl", "Ho-oh", "Elite Four Bruno", "Gym Leader Claire", "Champion Lance",
2543 "Team Rocket Grunt", "Team Missile Bomb Grunt", "Hamburgler Grunt", "Broil Bunch Grunt", "Arcanine", "Mewtwo", "Mewthree", "Ebony Dark'ness Dementia Raven Way", "B'loody Mary Smith", "Vampire Potter", "Mehrunes Dagon", "Emperor Uriel Septim",
2544 "General Tullius", "Ulfric Stormcloak", "+7 daedric long sword", "blessed spellbook of Fus-Ro-Dah", "cursed called", "super wooden statue", "Hrungnir, The Hill Giant Lord", "The Demon Lord Surtur", "your godfather", "Donkey Kong", "King K. Rool",
2545 "Andariel, the Maiden of Anguish", "Duriel, the Lord of Pain", "Mephisto, the Lord of Hate", "Diablo, the Lord of Terror", "Baal, the Lord of Destruction", "B-a-a-l", "extra strong might-enchanted multiple shots lightning enchanted gloam",
2546 "Caesar", "General Jing-Wei", "President Eden", "Colonel B. Astard", "Elder Owyn Lyons", "Tobar", "General Chase", "Krzzzzssssssthhhhuuuuuullll Hnnnnnngggggggghhhhhhhhhhhh", "Scribe Vallincourt", "Scribe Bigsley", "annoying lab-coat-wearing scientist",
2547 "nerdy geek", "greedy doctor", "Lord Ashur", "Father Elijah", "Joshua Graham", "Courier Ulysses", "Claude Speed", "Tommy Vercetti", "Carl Johnson", "Niko Bellic", "Dimitri Rascalov", "Melvin 'Big Smoke' Harris", "Sonny Forelli", "Don Salvatore",
2548 "Mr. Don", "Jimmy Pegorino", "Galdryn the Green", "Shaduroth", "Nauselom", "Greuvenia the Pox", "Ikrella the Witch", "Elder Demus Fathien", "game-freezing ninja lord", "Yagu Matasai", "Osayo Narakami wearing a cerberus band and a winter katana",
2549 "General Ironside", "pain in the butt", "ass-fucker", "General Mohmar Deathstrike", "paladin tank", "emperor overlord", "aurora alpha bomber", "king raptor", "attack outpost", "lag defense tower", "stinger site", "tunnel network", "nuclear missile silo",
2550 "particle uplink cannon", "scud storm", "construction dozer", "tactical superweapon", "commander in chief", "terrorist", "S.W.A.T. member", "undercover cop", "Superman", "Gordon Freeman", "G-Man", "Colonel Shepard", "Drill Sergeant Sharp",
2551 "Drill Sergeant Nasty", "grand inquisitor", "game over screen", "dywypi", "yasd", "fatal food poisoning", "dark wraith", "gigantic mind flayer", "dream eater", "Super Mario", "Princess Peach", "Princess Toadstool", "goomba", "koopa troopa",
2552 "Lakitu", "Bowser", "Bullet Bill", "homing Bullet Bill", "Blarog", "Wart", "Birdo-Ostro", "Clawglip", "Larry Koopa", "Morton Koopa", "Wendy O. Koopa", "Iggy Koopa", "Roy Koopa", "Lemmy Koopa", "Ludwig von Koopa", "Simon Belmont", "Ryu Hayabusa",
2553 "Jaquio", "Ashtar", "hallucinogen-distorted Wizard of Yendor", "polytrap abomination", "result of a bad polytrap", "outta depth giant shoggoth", "freaking monadic deva", "James Bond", "Bud Spencer", "Le Chiffre", "Renard", "disappointing final boss",
2554 "wimpy final boss", "warm-up boss", "wake up call boss", "that one boss", "that one boss named Whitney", "unbeatable Air Man", "Sheriff of Nottingham", "Guy of Gisborne", "gnome who zaps a hexagonal wand", "invisible player character", "invisible outta depth monster",
2555 "disintegration-breathing cockatrice", "animated gray dragon scale mail", "stupidity in motion", "death-is-death loonie", "hardcore player", "pro-gamer", "hardcore internet nerd", "DDOS attack", "blue screen of death", "blackscreen bug",
2556 "fatal system error", "windows subsystem has stopped unexpectedly", "general protection fault", "stack overflow", "stack underflow", "pure virtual function call", "not enough space for environment", "low local memory", "not a valid save file",
2557 "save-game corruption", "savegame erasing bug", "program in disorder", "unstable equilibrium", "crash-prone operating system", "sudden reboot", "power failure", "wide-angle disintegration beam", "infidel priest of Moloch", "Marduk the Creator",
2558 "killer cram ration", "huge pile of killer rocks", "hallucinogen supplier", "nightmare fuel", "kitten called Wizard of Yendor needs food badly", "little dog called savescum13", "Team Ant Leader", "Team A Leader", "extra fast soldier ant", "soldier ant with the wand of death",
2559 "invisible soldier ant", "self-replicating soldier ant", "number one cause of nethack deaths", "hallucinogen-distorted master mind flayer", "werecockatrice", "black weredragon", "wererocktroll", "werelich", "were-ki-rin", "weremedusa",
2560 "weresuccubus", "wereincubus", "hallucinogen-distorted werehallucinator", "gnome wielding the Tsurugi of Muramasa", "goblin wielding a sword called vorpal blade", "pain elemental of Moloch", "air elemental of Air", "fire elemental of Fire",
2561 "dremora caitiff", "mythical dawn agent", "Lord Sheogorath", "archcouatl", "master solar", "archfiend summon", "archnemesis", "plaster blaster", "psych orb", "Na-Krul", "felltwin", "schizophrenic", "bipolar oddity", "Ford Sierra Cosworth",
2562 "Lancia Integrale", "Lancia Stratos", "Ford Focus", "Ford Escort", "Toyota Corolla", "MG Metro 6R4", "Peugeot 205 Turbo 16", "drunken driver", "Commissioner Hunter", "Hydra Aurora Bomber", "VTOL aircraft", "multi-purpose amphibian assault ship",
2563 "devteam member", "player who can ascend any character", "ascension runner", "total noobie", "biggest noob ever", "critically injured smirking sneak thief", "application error", "integer divide by 0", "unrecoverable internal error",
2567 "$fruit -headed Wizard of Yendor",
2569 "$playername 's imaginary girlfriend dual-wielding lightsabers",
2571 "(random gas-colour e.g. paisley) dragon",
2572 "... wait a second. You're high!",
2576 "23-headed lizard-monkey",
2580 "A Giant Baked Bean",
2583 "A One Eyed Trouser Snake",
2584 "A Weapon of Mass Destruction",
2587 "ASCII representation of a monster",
2589 "Absolutely nothing",
2591 "Acererak in a TIE fighter",
2630 "Basic mind flayer",
2631 "Basic mind flayer",
2636 "Bellybutton lint monster",
2641 "Big, Round, kind of greyish Golem",
2646 "Black Knight (with limbs)",
2647 "Black Knight (without limbs)",
2649 "Blue-Eyes White Dragon",
2660 "Brain eating snake",
2665 "Bugger Hive-Queen",
2673 "Can of Spackling Paste",
2674 "Cantankerous Californian",
2676 "Captain Gordon, Defender of Earth",
2695 "Chris the Ninja Pirate",
2696 "Christopher Walken",
2699 "Clippy the Shopping Assistant",
2708 "Crumple-Horned Snorkack",
2710 "Cryptosporidium-136",
2715 "Cucumber sandwich",
2717 "Curse of the Were-Rabbit",
2718 "Cursed pile of coins",
2737 "Disgruntled postal worker",
2741 "Donut head, who says 'I am not a hallucination.'",
2748 "Drunken Politician",
2755 "Dyspeptic hamster",
2758 "EXTERMINATE! EXTERMINATE! EXTERMINATE!",
2766 "Elbereth Engraving",
2770 "Error from the Clone Lab",
2776 "Extraordinary person",
2779 "FOXHOUND covert operative",
2784 "Fig Newton of your imagination",
2791 "Flying Spaghetti Monster",
2792 "Flying Spaghetti Monster",
2793 "Flying Spaghetti Monster",
2794 "Flying angry evil skull that flies upside-down when holy water is sprinkled on it",
2796 "Formido Oppugnatura Exsequens",
2800 "Fred Durst's disembodied head",
2803 "Frog-eating surrender monkey",
2811 "Garfield the President",
2820 "Giant Slobbering Piemonster",
2825 "Gizmo the Gremlin",
2827 "Gnome With A Wand Of Death",
2828 "Gnome-With-The-Wand-Of-Death",
2836 "Grand master mind flayer",
2837 "Grand master mind flayer",
2839 "Granny Weatherwax",
2842 "Greater Queen of England",
2844 "Green Flesh-Thresher",
2854 "Half Chewed Taxi Squasher",
2855 "Halloween Document",
2856 "Hallucinatory Monster",
2861 "Harmless Protoplasm",
2869 "Here lies /usr/bin/nethack, killed by SIGSEGV.",
2876 "Honest Politician",
2880 "I think I see Death!",
2882 "Ian-Keith on crack",
2883 "Idiotic nerd that looks like your momma",
2886 "Integrated Data Sentient Entity",
2888 "Invisible Pink Unicorn",
2894 "J. R. 'Bob' Dobbs",
2921 "Killer tripe ration",
2926 "King of All Cosmos",
2934 "L dressed as Darth Vader, sans helmet, wielding a red lightsaber",
2941 "Legendary black beast of Arrrgh",
2942 "Leonard Bernstein",
2956 "Magically animated vorpal blade",
2960 "Malaclypse the Younger, Omnibenevolent Polyfather of Virginity in Gold",
2969 "Martian jellymould",
2970 "Mary-Kate and Ashely Olson",
2972 "Master Light Wings Close Range Support Cruel Battle Machine Evaccania DOOM",
2974 "Mayor and his three Daughters",
2981 "Metric stormtrooper",
2985 "Microsoft Windows",
2995 "Monkey-man of Delhi",
2996 "Monster-with-a-petrifying-gaze",
2999 "Most Interesting Man in the World",
3013 "Naughty Sorceress",
3019 "New Age Retro Hippy",
3020 "New Age Retro Hippy",
3022 "Nigerian prince Fela Kanye Okonma",
3024 "Ninjapiratezombierobot",
3032 "Olly Jolly Puffball",
3033 "Omar Khayyam Ravenhurst, K.S.C.",
3035 "One-winged two wing bird",
3038 "Oracle publicitary blimp",
3051 "Phoenix Wright, Ace Attorney",
3058 "Polymorphic Virus",
3062 "Possessed waffle iron",
3065 "Preacher man wants to save your soul",
3070 "Psychadelic Eyeball",
3079 "Racecar Bob and Bob Racecar",
3081 "Rakanishu wielding a MAC-10",
3083 "Random Number God",
3086 "Ravenous Bugblatter Beast of Traal",
3087 "Raymond Luxury Yacht",
3096 "Robert, Wizard of Trebor",
3098 "Rodent of an Unusual Size",
3112 "Sam the One-Eyed Marketeer",
3113 "Samurai named Ken",
3118 "Schrödinger's cat",
3120 "Screaming Heebie-Jeebie",
3123 "Sentiant cheese sandwhich",
3131 "Shroedinger's Cat",
3135 "Silly-String golem",
3137 "Singing and dancing frog",
3138 "Sister Mary Loquacious of the Chattering Order of Satanic Nuns",
3142 "Skilled mind flayer",
3143 "Skilled mind flayer",
3155 "Sonic The Hedgehog",
3159 "Spaghetti Monster",
3161 "Spellbook of wishing",
3167 "Struttin' Evil Mushroom",
3172 "Supercaptaincoolman",
3176 "Sylvester Stallone",
3180 "Talking Paperclip",
3182 "Teracotta Warrior",
3185 "The Bugblatter Beast of Traal",
3187 "The Creeper (Jeepers Creepers)",
3188 "The Curse of Jenni",
3189 "The Destroyer of Levels",
3190 "The Flying Spaghetti Monster",
3192 "The Grateful Dead",
3195 "The Pink invisible Unicorn",
3198 "The Real Slim Shady",
3200 "The Savage Decider",
3201 "The Sound of Silence",
3203 "The Theory of Relativity",
3205 "The United States",
3206 "The Zombie of Steve Irwin",
3207 "The one-eyed flesh python",
3209 "Thing That Should Not Be",
3221 "Trogdor the Burninator",
3225 "Tutu-wearing Sarevok",
3227 "UboaAAAAAAAAAAA~!",
3232 "Underwater Basket Weaving Kobold",
3234 "Unskilled mind flayer",
3235 "Unskilled mind flayer",
3236 "Upperclass Twit of the Year",
3244 "Viper on his bike, dual-wielding chains",
3252 "Waiter waiting for a #tip",
3255 "Weapons of Mass Destruction",
3258 "When we introduced Eg to the giant, he misunderstood.",
3259 "Whiteface Charcoalpants",
3260 "Whiteface Charcoalpants",
3261 "Whiteface Charcoalpants",
3263 "Wizard of Yendoor",
3266 "Wormtongue, Agent of Saruman",
3268 "Xena, Warrior Princess",
3274 "Your Dad On A Sybian",
3289 "a black dragon with Snoopy's head",
3291 "a flock of Bird Flu chickens",
3295 "a mob of PETA activists",
3296 "a one-winged dewinged stab-bat",
3297 "a plain gold ring",
3298 "a plastic surgeon",
3301 "a team of Caballists",
3302 "a tree full of monkeys on nitrous oxide",
3303 "a vision of Ragnarök",
3308 "absurd pop-culture reference",
3316 "aluminum elemental",
3317 "ambulatory fortune cookie",
3319 "amusing movie reference",
3320 "an Anger Management counsellor",
3322 "an italian grandmother",
3324 "ancient karmic dragon",
3331 "antimony elemental",
3334 "archie the cockroach",
3337 "arsenic elemental",
3339 "astatine elemental",
3353 "bee of the bird of the moth",
3356 "berdache with a bardiche",
3357 "beryllium elemental",
3359 "bismuth elemental",
3361 "black smoke monster",
3362 "black tapioca pudding",
3363 "blargian snagglebeast",
3364 "blood-spurting onion",
3367 "bluebird of happiness",
3371 "bottle of Heinz Tomato Ketchup",
3377 "bromine elemental",
3382 "bugs on the floor",
3386 "cadmium elemental",
3387 "calcium elemental",
3391 "carbosilicate amorph",
3402 "chlorine elemental",
3404 "chocolate pudding",
3405 "chocolate pudding",
3407 "chromium elemental",
3415 "collapsed mine golem",
3416 "colorless green idea",
3423 "corpulent porpoise",
3426 "cow beneath the sea",
3430 "crocodile-dragon Tharagavverug",
3434 "cursed amulet of strangulation",
3435 "dancing Savior, Jesus Christ Superstar,",
3443 "demonic talking skull",
3444 "diagonally moving grid bug",
3446 "dilithium crystal golem",
3447 "dilithium crystal golem",
3450 "district attorney",
3452 "door-to-door salesman",
3454 "double-eyed cyclops",
3465 "dwarven construct",
3471 "enchanted food ration",
3475 "er... dragon? It sure looks like one...",
3478 "evil stepmothership",
3479 "exceptionally large pair of buttocks",
3481 "existential angst",
3482 "expert mind flayer",
3483 "expert mind flayer",
3488 "feeling that you're being watched",
3490 "figment of your imagination",
3492 "first category perpetual motion device",
3496 "flatulence vortex",
3500 "floating pair of eyes",
3504 "fluorine elemental",
3511 "fractal fish finger tree",
3515 "frumious bandersnatch",
3520 "future diary holder",
3522 "gallium elemental",
3529 "germanium elemental",
3530 "ghost of christmas past",
3531 "ghost of christmas present",
3532 "ghost of christmas yet to come",
3533 "giant Chibi Maruko-chan on wheels",
3540 "giant marshmallow man",
3553 "golem made out of other golems",
3563 "green... no, gray dragon",
3564 "grid bug hits! Invisible Demogorgon",
3572 "half-horse half-monkey",
3574 "hallucinatory monster",
3575 "hallucinogen-distorted hallucination",
3578 "haunted television",
3582 "headless thompson gunner",
3588 "hentai tentacle beast",
3592 "horrible gelatinous blob",
3595 "hydrogen elemental",
3597 "icecream pooping giant taco monster",
3599 "indescribable horror",
3600 "indestructable monster",
3604 "inside-out bag of holding",
3605 "invisible hand of Adam Smith",
3606 "invisible pink unicorn",
3607 "invisible potion of invisibility",
3608 "invisible shiny Bulbasaur",
3610 "iridium elemental",
3613 "jehovah's witness",
3615 "jolly green giant",
3618 "juvenile delinquent",
3625 "kitten prospecting robot",
3629 "krypton elemental",
3644 "liquid nitrogen elemental",
3645 "lithium elemental",
3660 "mad Pierson's Puppeteer",
3665 "magnesium elemental",
3666 "magnetic monopole",
3668 "man in a pink tutu",
3669 "man-eating banana",
3672 "manganese elemental",
3678 "mehitabel the cat",
3679 "member of the Greate Race of Yith",
3682 "mercury elemental",
3684 "mexican jumping beans",
3687 "molybdenum elemental",
3698 "naughty sorceress",
3704 "newt called Dudleyslayer",
3708 "ninja pirate zombie robot",
3710 "nitrogen elemental",
3711 "non-player character",
3720 "one-eyed, one-horned, flying, purple people eater",
3728 "palladium elemental",
3738 "phosphorus elemental",
3745 "pissed-off shopkeeper",
3747 "pizza delivery boy",
3751 "plain trained automaton",
3753 "platinum elemental",
3758 "plutonium elemental",
3760 "pop-culture reference",
3764 "potassium elemental",
3765 "potentate of amnesia",
3768 "power armor Hitler",
3771 "president of the United States",
3772 "primal white jelly",
3774 "prissy, two-faced, backstabbing Templar whore",
3775 "professional wrestler",
3777 "psychedelic beetle",
3778 "psycho teddy bear",
3793 "random number generator",
3794 "random number golem",
3797 "realization of your life's true meaning",
3798 "really, really, really big dragon",
3806 "rhodium elemental",
3811 "robot finding stegosaurus",
3816 "rubber baby buggy bumper",
3820 "rubidium elemental",
3824 "scaly, no-feather-bullshit, kosher raptor",
3825 "scandium elemental",
3829 "screaming dizbuster",
3830 "scroll of genocide",
3835 "second law of thermodynamics",
3836 "segmentation fault",
3837 "selenium elemental",
3838 "seven-headed, fire-breathing $dog",
3841 "shimmering $playername",
3842 "shimmering dragon",
3847 "silicon elemental",
3850 "silver saber-tooth tiger",
3865 "space-time anomaly",
3869 "spleling eror elmental",
3873 "star-bellied sneetch",
3879 "storm of buttered footballs",
3883 "strontium elemental",
3884 "strontium elemental",
3885 "stuffed raccoon puppet",
3886 "styrofoam elemental",
3889 "sumatran rat-monkey",
3893 "system administrator",
3897 "technetium elemental",
3899 "tellurium elemental",
3905 "the Creeping Terror",
3910 "the Incredible Hulk's weight in bees",
3913 "the Loch Ness monster",
3919 "the Teenage Mutant Ninja Turtles",
3921 "the Three Stooges",
3923 "the Wicked Witch of the East",
3924 "the Wicked Witch of the West",
3926 "the Wizard of Yeldud",
3927 "the blessed +5 Sword of Damocles",
3930 "the embodiment of life, death and everything inbetween",
3931 "the ghost of Tupac Shakur",
3932 "the goddess Discordia",
3935 "the invisible Demogorgon",
3936 "the invisible cockatrice",
3937 "the invisible werewaiter",
3938 "the largest prime number",
3941 "the roots of Yggdrasil",
3942 "the smashing pumpkin",
3943 "the urge that you're being watched",
3944 "the urge to look at your hands",
3947 "thing with 2.3i heads",
3948 "thoroughly rusty thoroughly corroded iron golem",
3949 "three weaving crones",
3950 "three-headed cockatrice",
3951 "three-headed monkey",
3952 "three-headed monkey",
3953 "thunder fiend of gain level",
3959 "tin of gnome meat",
3960 "titanium elemental",
3961 "toilet paper golem",
3970 "tungsten elemental",
3974 "two-headed two-bodied goat",
3977 "ultra mega battle robot",
3979 "unassuming local guy",
3981 "unpredictably deadly pyromaniac midget",
3984 "uranium elemental",
3985 "urge to stare at your hands",
3989 "vanadium elementa",
3990 "vanadium elemental",
3994 "venture capitalist",
4003 "voluptuous ampersand",
4004 "vorpal jabberwock",
4010 "walking disk drive",
4020 "wee green blobbie",
4021 "were(random beast)",
4035 "wight supremacist",
4039 "worthless yellowish-brown glass golem",
4040 "writhing mass of primal chaos",
4048 "yellowish-brown dragon",
4051 "your inner demons",
4057 "yttrium elemental",
4062 "zirconium elemental",
4066 "zombie robot ninja samurai pirate sorcerer gunman",
4069 "zombified tarantulas",
4080 "Quetzalcoatl", "Camaxtli", "Huhetotl", /* Central American */
4081 "Plunderer", "Plunderess",
4088 "Chieftain", "Chieftainess",
4089 "Conqueror", "Conqueress",
4090 "Mitra", "Crom", "Set", /* Hyborian */
4100 "Anu", "Ishtar", "Anshar", /* Babylonian */
4110 "Ilmater", "Grumbar", "Tymora", /* Faerunian */
4119 "Dark Lord's Bodyguard",
4120 "Merlin", "Salazar Slytherin", "Lord Voldemort", /* Harry Potter */
4130 "Thomas Alva Edison", "Benjamin Franklin", "Marilyn Monroe", /* associated with electricity */
4140 "Earth", "Fire", "Ash", /* Special */
4148 "The Don's Right Hand",
4150 "Claude Speed", "Carl CJ Johnson", "Tommy Vercetti", /* Grand Theft Auto */
4152 "BASIC Programmer", "BASIC Programmeress",
4153 "C Programmer", "C Programmeress",
4154 "Hacker", "Hackeress",
4155 "NetHacker", "NetHackeress",
4156 "Nethack Programmer", "Nethack Programmeress",
4157 "he who uses", "she who uses",
4158 "he who knows", "she who knows",
4159 "he who learns", "she who learns",
4160 "UNIX", "the PDP-7", "VMS", /* Computerian */
4165 "Medicus ossium", "Medica ossium",
4167 "Magister", "Magistra",
4170 "Athena", "Hermes", "Poseidon", /* Greek */
4180 "Air", "Frost", "Smoke", /* Special */
4187 "the Light Side", "the Force", "the Dark Side",
4194 "Cavalier", "Cavaliere",
4195 "Seignieur", "Dame",
4197 "Lugh", "Brigit", "Manannan Mac Lir", /* Celtic */
4201 "Student of Stones",
4202 "Student of Waters",
4203 "Student of Metals",
4207 "Shan Lai Ching", "Chih Sung-tzu", "Huan Ti", /* Chinese */
4216 "Nharlotep", "Zugguthobal", "Gothuulbe", /* Assorted slimy things */
4226 "God the Father", "Mother Earth", "the Satan", /* Romanian, sorta */
4236 "the Lord", "the deep blue sea", "the Devil", /* Christian, sorta */
4246 "A'En", "Dr. Oujide", "Team Missile Bomb", /* Pokemon Vietnamese Crystal */
4254 "Magsman", "Magswoman",
4256 "Issek", "Mog", "Kos", /* Nehwon */
4258 "Edhel", "Elleth", /* elf-maid */
4259 "Ohtar", "Ohtie", /* warrior */
4260 "Kano", /* commander (Q.) ['a] */
4261 "Kanie", /* educated guess, until further research- SAC */
4262 "Arandur", /* king's servant, minister (Q.) - guess */
4263 "Aranduriel", /* educated guess */
4264 "Hir", "Hiril", /* lord, lady (S.) ['ir] */
4265 "Aredhel", "Arwen", /* noble elf, maiden (S.) */
4266 "Ernil", "Elentariel", /* prince (S.), elf-maiden (Q.) */
4267 "Elentar", "Elentari", /* Star-king, -queen (Q.) */
4268 "Solonor Thelandira", "Aerdrie Faenya", "Lolth", "Erevan Ilesere", /* Elven */
4272 "Reconnoiterer", "Reconnoiteress",
4277 "Marksman", "Markswoman",
4278 "Mercury", "Venus", "Mars", /* Roman/planets */
4281 "Ninja", "Kunoichi", /* secret society */
4288 "Amaterasu Omikami", "Raijin", "Susanowo", /* Japanese */
4292 "Peregrinator","Peregrinatrix",
4298 "Blind Io", "The Lady", "Offler", /* Discworld */
4308 "Olivia", "Peyman", "Lady Gaga", /* weird fashion sense */
4315 "Seeker", "Osiris", "Seth", /* Egyptian */
4319 "Man-at-arms", "Woman-at-arms",
4325 "Tyr", "Odin", "Loki", /* Norse */
4331 "Enchanter", "Enchantress",
4332 "Sorcerer", "Sorceress",
4335 "Ptah", "Thoth", "Anhur", /* Egyptian */
4338 "Two-Handed Swordsman",
4341 "Baron", "Baroness",
4342 "Count", "Countess",
4344 "Patriarch", "Matriarch",
4345 "Talos", "Meridia", "Clavicus Vile", /* The Elder Scrolls */
4347 "Steward", "Stewardess",
4350 "Master Steward", "Master Stewardess",
4355 "His Majesty", "His Holiness", "The Commons", /* The three estates */
4365 "Buddha", "Jahwe", "Allah", /* major real-world religions */
4371 "Capital Crime Queen",
4375 "President Kimball", "Mr. House", "Caesar", /* Fallout New Vegas */
4379 "Priest", "Priestess",
4381 "Canon", "Canoness",
4383 "Patriarch", "Matriarch",
4384 "High Priest", "High Priestess",
4386 "Artificial Stupidity",
4387 "Metal Man", "Metal Woman",
4392 "Artificial Intelligence",
4393 "Synthetic Man", "Synthetic Woman",
4394 "Andromorph", "Technix", "Mechatron", /* made-up names by Amy */
4401 "Hazardous Materials Specialist",
4402 "Laboratory Science PhD",
4404 "The Lord of the Pit", "Goldblight of the Flame", "Warpfire Hellspawn",
4414 "Classic Rock", "Symphonic Metal", "Hardcore Punk", /* music styles */
4415 "Roguelike Beginner",
4424 "Lady Ariane", "Lord Stahngnir", "Sven Fanara", /* from a certain book --Amy */
4434 "Yaldabaoth", "the void", "Sophia", /* Gnostic */
4442 "ANTM Semi-Finalist",
4444 "Speedy Gonzales", "Dan Naginati", "Kylie Lum", /* taken from a fanfic */
4450 "Rebellious Individual",
4451 "Involved Activist",
4454 "Anti-War Movement", "Global Freedom Council", "Human Rights Progression", /* buzzwords used by activists */
4456 "a series of disconected lines", /* nondescript*/ /*DnD*/ "a cerulean weeping-willow", /* it's magic. Unlike the others, this one works. Keep in sync with engrave.h!*/ /*Special behavior, these move across the floor, keep in sync with allmain.c*/ "a north-east facing glider", "a north-west facing glider", "a south-west facing glider", "a south-east facing glider", "a square", /* books */ "a set of holy horns", "a Summoning Dark mine-sign", "a Long Dark mine-sign", "a Following Dark mine-sign", "a Closing Dark mine-sign", "an Opening Dark mine-sign", "a Breathing Dark mine-sign", "a Speaking Dark mine-sign", "a Catching Dark mine-sign", "a Secret Dark mine-sign", "a Calling Dark mine-sign", "a Waiting Dark mine-sign", "a florid crest dominated by a double-headed bat", "a Guarding Dark mine-sign", "the mark of the Caller of Eight", /* Discworld */ "a lidless eye", /* Lord of the Rings */ "a white tree", /* Gondor, Lord of the Rings */ "a triangle enclosing a circle and bisected by a line", /* Harry Potter */ "a set of three trefoils, the lower most inverted", /* describes the three of clubs. Too Many Magicians*/ "a Trump of Doom", "a Sign of Chaos", "a Pattern of Amber", "a Ghostwheel", "a Court symbol", "a Forest symbol", "the sign of the Wandering Eye", /* Gunnerkrigg Court */ /* Not quite */ "a heptagenarian", "an octogram", "a pentagrain", "a circle of da Vinci", "a hand making a rude gesture", "a junior sign", "a childish compound eye", "a Sign of an Illegitimate Step-daughter", "a cenotaph of a catgirl", "a groovy rendition of the wings of Gargula", "a Robotech Defense Force insignia", /*...Robotech*/ "a Black Knights insignia", /* Code Geass */ "an inverted triangle flanked by seven eyes", /* NGE */ "a laughing man", /* Ghost in the Shell */ "an alchemic array", "a human transmutation circle", /* Fullmetal Alchemist */ "a triangle composed of three smaller triangles", "an eye and single tear", "a circle enclosing four swirling lines", "a flame inside a circle", "a snowflake within a circle", "an inverted triangle with a dot above each face, enclosed by a circle", "a sign resembling an eyeless yin-yang", "a circle surrounding a triangle of dots and another of triangels",/*Zelda*/ "a setting (rising?) sun", /* Dresden Codak */ "an asymmetric, stylized arrowhead, point upwards", /* Star Trek*/ "a set of three blades, the top blade straight, the dexter curved down, the sinister curved up", "a Sharuan Mindharp", /* Star Wars expanded universe */ "a winged blade of light", /* Jedi Order symbol */ "an angular S before a segmented circle",/*a screw attack symbol*/ "more dakka", "a symbol of pain", /* DnD */ /* Planescape */ "a mimir", "a symbol of torment", "a circle enclosing two colliding arrows", "a pair of triangles, drawn tip to tip,", "a stylized beast", "a triangle crowned by a single line", "a simple image of many mountains", "a sketch of a shining diamond", "a tree-rune", "an eight-toothed gear", "a random scribble", "a square with two small handles on opposite sides", "a square enclosing a spiral", "an eye with three inverted crosses", "an infinity symbol crossed by a burning downwards arrow", "a set of four nested triangles", "a watchful eye blocking an upward arrow", "a pitchfork stabbing the ground", /* Zodiac */ "an Aries sign", "a Taurus sign", "a Gemini sign", "a Cancer sign", "a Leo sign", "a Virgo sign", "a Libra sign", "a Scorpio sign", "a Sagittarius sign", "a Capricorn sign", "an Aquarius sign", "a Pisces sign", "a heart pierced through with an arrow", "a broken heart", "a skull and crossed bones", "a bad situation", "a zorkmid", "a diagram of the bridges of Konigsberg", "a hand-mirror of Aphrodite", "a shield and spear of Ares", /* alchemy/male/female */ "a black moon lilith sign", "a window", /* op-sys*/ "a no symbol", "a test pattern", "a work of modern art", "a flag of Neverland", "a hyped-up duck dressed in a sailor's shirt and hat", /* Disney */ "a mouse with 2d ears", "a set of three circles in the shape of a mouse's head", "a meaningless coincidence", /*Corporate Logos*/ "a stylized, fan-shaped seashell", "a bitten apple", "a pair of arches meeting to form an \"M\"", "a Swoosh mark", "a set of five interlocked rings", /*Olympics logo*/ "a running man", /* Exit */ "a running man holding a cane", "a one-and-zero", /* Power toggle */ "a thick soup of mist", "a pattern of squared circles", "a void", "a notable lack of images", "a stark absence of pictures", "nothing much", "a convergence of parallel lines", "a sphere", /* How did you manage that? */ "a yin-yang", "a taijitu",/* Taoist */ "a hand of Eris", /* Discordian */ "an ichthus", "a Cross", /* Christian*/ "a wheel with eight spokes", /* Budhism */ "a fish with legs", "a fat fish", "a fish with tentacles, legs, and wings", /* ichthus parodies/derivitives: darwin, buddha, and Cthulhu. */ "a set of seven concentric circles", "a left-handed trefoil knot", "a triskelion", /* Ancient Symbol */ "a rough circle enclosing an A", /* Anarchy */ "a Tree of Life", /* Kabbalah */ "a winged oak", "a wheel cross", "a labyrinth", "sign of Shamash", "a naudh rune", /* misery */ "an Eye of Providence", "a pyramid surmounted by an eye", /* Christian */ "a one-way staircase", "an 'a' encircled by its own tail", /* meta */
4458 "Leg-scratched Boy", "Leg-scratched Girl",
4459 "Wounded Guy", "Wounded Gal",
4464 "Unlucky Individual",
4466 "Cursed King", "Cursed Queen",
4467 "Glycocalyx", "Fibrinogen", "Hemophilia", /* hereditary disease */
4473 "Helmsman", "Helmswoman",
4478 "Erzulie Freda", "Marassa Jumeaux", "Papa Legba", /* Haitian Vodou */
4488 "Centurion", /* sorry Fyr, but Champion was just way too generic of a title. --Amy */
4489 "Sulla", "Cicero", "Catilina", /* Ancient Rome */
4500 "Tane", "Tangaroa", "Whiro", /* Polynesian */
4501 "robber", "homie", "motherfucker", "mofo", "hell bride", "bitch", "hard motherfucker", "hard mofo", "slut with syphilis", "lustful girl", "quick learner", "supersmart woman",
4502 "Wolf", "Big Bear", "Ryu", "Tacitus", "Urbaldi", "Pete", "Lex", "JoJo", "Jyllia", "Sabrina", "Sabine", "Yvara", "Lenka",
4503 "Evita", "Liebea", "Denshi Gasu", "Mr. Black", "Tiger's Claw", "Katzou", "Mohmar Deathstrike", "Ingo", "Septimus",
4504 "Isolde", "Elli", "Vilja", "Sunija", "Rhea", "Jasmin", "Erosina", "Irmina", "Martius", "Faster-Than-All-Others",
4505 "Senator Antius", "H.", "Pokoh", "Davide", "Aee", "Melirija", "Larissa", "Sysette", "Miss Haskill", "Elenya",
4506 "Golden Mary", "Lara", "Sandrina", "Doctor Maex", "Marc", "Arno", "Hailbush", "Romann", "Siegfried", "Roy", "Tonilia",
4507 "Claire", "Lumia", "Lahira", "Estrella", "Maricia", "Sontaire", "Marje",
4509 "Jill", "Trycja", "Kersey", "Sally", "Hannya", "Svantje", "Jynnifyr", "Elke", "Rinka", "Nicoletta", "Betti", "Ina", "Heikipa", "Jora", "Maitine", "Esruth", "Verene", "Lousie", "G-cheater", "Irinella", "Bastian", "Amandina", "Lillie", "Nicyan", "Leodoch", "Mirella", "Queelix", "Fisoa", "Suesska", "Ann", "Nurisha", "Desiree", "Birgit",
4511 "Elsbeth", "Lamy", "Lissie", "Arabella", "Anastasia", "Henrietta", "Katrin", "Jana", "Aniya", "Yasni", "Almina", "Xeni", "Mirri", "Eleanor", "Kirja", "Inge", "Helli", "Lucia", "Viktorija", "Simona", "Natalyana", "Krista", "Nellina", "Raidara", "Vera", "Noko", "Jasajeen", "Marika", "Miesael", "Merbek", "Marianna", "Sinja", "Rodotha", "Natinya", "Honno", "Aline", "Michaela", "Robin", "JNR", "Lars", "Mare", "Noenoe", "Tschulia", "Lea", "Tommy", "Sarah", "Iris",
4513 "Giglio", "Charravalga", "Fridrika", "Great Jaguar Claw", "Lynette", "Kastortransport", "Celina", "Irya", "Mariya", "Wendy", "Katia", "Tanja", "Vanessa", "Anne", "Lena", "Jeanetta", "Rungud", "Melissa", "Everella", "Madeleine", "Anita", "Nina", "Natascha", "Manola", "Larry", "Morton", "Iggy", "Lemmy", "Ludwig", "Oberdan", "Len-kind", "Litta", "Ilie", "Kiwi", "Maja", "Till", "Tomas", "Natalje", "Little Marie", "Nikolob", "Tillbull", "Ronja", "Roswitha", "Sing",
4524 "Bickney", "Corridor", "Lockney", /* Egyptian */
4527 "Advanced Practician",
4530 "Graduate Scientist",
4531 "Simpleton with a PhD",
4533 "Nobel-Prized Scientist",
4534 "Nikola Tesla", "Erwin Schroedinger", "Wernher von Braun", /* famous scientists */
4543 "Master Shapeshifter",
4544 "Eluvian", "Moon", "Lycanthus", /* from an old SLASH version without extended magic */
4546 "blessed greased +5 silly object of hilarity",
4551 "applied theology textbook", /* AFutD */
4556 "potion of antacid",
4559 "pair of high-heeled stilettos", /* the *other* stiletto */
4562 "left-handed iron chain",
4563 "holy hand grenade", /* Monty Python */
4565 "amulet of huge gold chains", /* Foo' */
4567 "unicron horn", /* Transformers */
4568 "holy grail", /* Monty Python */
4570 "first class one-way ticket to Albuquerque", /* Weird Al */
4571 "yellow spandex dragon scale mail", /* X-Men */
4573 /* Musical Instruments */
4575 "two slightly sampled electric eels", /* Oldfield */
4576 "kick drum", /* 303 */
4580 "flux capacitor", /* BTTF */
4581 "Walther PPK", /* Bond */
4582 "hanging chad", /* US Election 2000 */
4583 "99 red balloons", /* 80s */
4584 "pincers of peril", /* Goonies */
4585 "ring of schwartz", /* Spaceballs */
4586 "signed copy of Diaspora", /* Greg Egan */
4587 "the missing evidence in the Kelner case", /* Naked Gun */
4588 "blessed +9 helm of Des Lynam", /* Bottom */
4590 /* compile with -DBRITHACK for British goodness */
4592 "blessed tin of marmite",
4593 "tesco value potion",
4594 "ringtone of drawbridge opening",
4597 "cursed -2 bargain plane ticket to Ibiza",
4598 "black pudding corpse",
4600 "Necronomicon", /* Lovecraft */
4601 "pipe weed", /* LOTR */
4602 "knife missile", /* Iain M. Banks */
4603 "large gem", /* Valhalla */
4604 "monster manual", /* D&D */
4605 "spellbook called Octavo", /* Discworld */
4606 "ring of power", /* LOTR */
4608 "no tea", /* HGttG game */
4609 "pan-galactic gargle blaster", /* HGttG */
4610 "silmaril", /* LOTR */
4611 "pentagram of protection", /* Quake */
4614 "AAA chipset", /* Amiga */
4615 "thoroughly used copy of Nethack for Dummies",
4616 "named pipe", /* UNIX */
4618 "copy of nethack 3.4.4", /* recursion... */
4619 "cursed smooth manifold", /* Topology */
4621 "maximally subsentient emacs mode",
4622 "bongard diagram", /* Intelligence test */
4633 "pestle and mortar",
4637 "potion of score doubling",
4638 "scroll labelled ED AWK YACC", /* the standard scroll */
4639 "scroll labelled RTFM",
4640 "scroll labelled KLAATU BARADA NIKTO", /* Evil Dead 3 */
4641 "scroll of omniscience",
4642 "scroll of mash keyboard",
4643 "scroll of RNG taming",
4644 "scroll of fungicide",
4645 "helm of telemetry",
4646 "blue suede boots of charisma",
4648 "amulet of instadeath",
4649 "amulet of bad luck",
4650 "amulet of refraction",
4651 "potion of rebigulation", /* Simpsons */
4654 "ring named Frost Band",
4655 "expensive exact replica of the Amulet of Yendor",
4658 "rubber chicken", /* c corpse */
4659 "tin of Player meat",
4660 "figurine of a god",
4662 "cursed -3 earring of adornment",
4665 "acid blob skeleton",
4666 "brand new, all time lowest introductory rate special offer",
4676 "Beer King", "Beer Queen",
4678 "Apollo", "Dionysus", "Pan", /* Drunken */
4683 "Forest Fire Specialist",
4684 "Anti-Flame Fighter",
4686 "Flash Fire Deleter",
4687 "Eternal Firefighter",
4688 "Prometheus", "Thor", "Arson", /* Fire */
4693 "University Traveler",
4695 "Experimental Scientist",
4697 "Test Row Developer",
4698 "Jobs", "Wozniak", "Gates", /* geek */
4705 "Emergency Key Carrier",
4706 "Door Safety Assistant",
4707 "Supreme Lockpicker",
4708 "Nuada", "Dagda", "Morrigan", /* Celtic */
4718 "Donblas", "Grome", "Arioch", /* Melnibonean */
4720 "Dual-wield wannabee",
4723 "Double-edge Sword",
4728 "Votishal", "Raiden", "Rat God", /* Nehwon */
4736 "Wild-West Sheriff",
4738 "Magnum", "Smith", "Wesson", /* guns */
4748 "Hel", "Pluto", "Orcus", /* Death */
4755 "Tyrannosaurus Feeder",
4757 "Zouthern Petkeeper",
4758 "Balder", "Edda", "Hagen", /* Norse mythology */
4768 "Garl Glittergold", "Flandal Steelskin", "Urdlen",
4770 "Saint Preps Academy Alumnus", "Saint Preps Academy Alumna",
4772 "Emo Boy", "Emo Girl",
4777 "Marty Stu", "Mary Sue",
4778 "B'loody Mary", "Ebony Dark'ness", "Darth Valer", /* taken from a fanfic */
4780 "Chosen for Reaping",
4785 "Hunger Games Winner",
4787 "Right Hand of Cato",
4788 "Suzanne Collins", "Effie Trinket", "President Snow", /* hunger games */
4798 "Eilistraee", "Kiaransali", "Lolth", /* Elven */
4808 "Eddergud", "Vhaeraun", "the black web", /* Elven */
4810 "one who doesn't like foreigners",
4813 "causer of suffering",
4814 "Merciless Assassin",
4815 "Morag Tong member",
4816 "Morag Tong leader",
4817 "Morag Tong Master Assassin",
4818 "Orome", "Yavanna", "Tulkas", /* Elven */
4825 "Three-handed Swordsman",
4826 "Walking Weapon Factory",
4827 "Fucking Hammer of Thor",
4828 "Vaire", "Varda Elentari", "Nessa", /* Elven */
4830 "Whitegold Ambassador",
4834 "Elven Secret Agent",
4837 "Summerset Dictator",
4838 "Manwe Sulimo", "Mandos", "Lorien", /* Elven */
4844 "Riding Crop Lover",
4848 "Jacob Black", "Bella Swan", "Edward Cullen", /* Twilight */
4849 "Little Wannabe Fighter",
4851 "Saiyan Apprentice",
4857 "Saiyan Grandmaster",
4858 "Moori", "King Kai", "Vegeta", /* Dragonball series */
4861 "District Councillor",
4864 "Secretary of State",
4868 "Democracy", "Communism", "Despotism", /* political structures */
4869 "one who forgot the salt",
4871 "second-class waiter", "second-class waitress",
4872 "waiter", "waitress",
4876 "national championship cook",
4877 "world-championship cook",
4878 "McDonalds", "Kentucky's Fried Chicken", "Burger King", /* fast food places */
4887 "Hidden Depth Explorer",
4888 "Dunlain", "Savos Aren", "Hert the Vampire", /* Skyrim */
4897 "Master Of All Spells",
4898 "Cassandra", "Menelaos", "Helen of Troy", /* Greek history */
4900 "Bestseller Reader",
4904 "Keeper of Rare Books",
4905 "Keeper of Valuable Books",
4906 "Magna Charta Keeper",
4907 "Keeper of Unique Books",
4908 "Leo Tolstoi", "Stephen Hawking", "H. P. Lovecraft", /* famous writers */
4913 "Assault Rifle User",
4915 "Heavy Machine-Gunner",
4924 "Wintry, Poplar and Willow",
4927 "Brahma", "Vishnu", "Shiva", /* India? */
4933 "Successful Artist",
4936 "Creator of Unique Paintings",
4937 "Leonardo", "Picasso", "Dali", /* famous artists */
4939 "Boulderdash Player",
4940 "Super Mario Addict",
4941 "FIFA Sports Gamer",
4942 "Need For Speed Racer",
4943 "owner of a dozen consoles",
4946 "Playstation Master",
4947 "Nintendo", "Microsoft", "Sony", /* gaming console producers */
4952 "Death Forest Survivor",
4953 "Mount Fucking Moon Hiker",
4954 "Gates of Hell Visitor",
4955 "Puppet League Participant",
4956 "Puppet League Champion",
4957 "Sakuya", "Reimu", "Yukari Yakumo", /* Touhou */
4964 "Implacable Protagonist",
4967 "James Bond", "Chuck Norris", "Jackie Chan", /* movie heroes */
4977 "Colonel Campbell", "Deepthroat", "The Patriots", /* probably some TV show or movie? */
4982 "Permanent Magic Marker",
4983 "Portable Ink Container",
4984 "Scientific Scribe",
4985 "Well-trained Scribe",
4986 "Highest Order Scribe",
4987 "Bowditch", "Peabody", "Rothchild", /* Fallout 3 */
4989 "Chivalrous Warrior",
4991 "Courageous Battler",
4993 "Celestial Warrior",
4994 "Peacebringing Knight",
4995 "Knight in shiny armor",
4996 "God-gifted Warrior",
4997 "Ariel", "Tyrael", "Gabriel", /* angels */
5006 "Wishing Wand Creator",
5007 "Larry Koopa", "Roy Koopa", "Morton Koopa Jr.", /* Super Mario Bros */
5008 "Dark Brotherhood Initiate",
5013 "Devious Cutthroat",
5016 "Merciless Murderer",
5017 "Ehud", "Ford", "Ivins", /* unknown origin */
5023 "Leather-clad Thief",
5024 "Mean Mobbing Bully",
5026 "Weapon Toting Bully",
5027 "Everella Shrine", "Butch DeLoria", "Draco Malfoy", /* popular bullies */
5032 "Shoplifter Detector",
5033 "Detective disguised as Cashier",
5034 "Gun-toting Shopkeeper",
5037 "the Homies", "the Robbers", "the Motherfuckers", /* taken from a fanfic */
5041 "Professional Slaver",
5046 "King of Slavers", "Queen of Slavers",
5047 "Airyaman", "Gandarewa", "Daevas", /* Persian */
5048 "Insert rank title here",
5049 "Insert clever name here",
5050 "Insert witty saying here",
5051 "Insert random string here",
5052 "Insert cool stuff here",
5053 "Insert what you want here",
5054 "Insert appellation here",
5055 "Insert heroic deeds here",
5056 "Insert mysterious message here",
5057 "Battlefield Newbie",
5066 "Rhea Oro", "Liebea Luna", "Elenya Pure", /* taken from a fanfic */
5070 "Beauty Contest Competitor",
5075 "Sexiest Man Alive",
5076 "Hugh Hefner", "G-boy", "Arsene Lupin", /* famous people, I guess? */
5080 "Funny Dude", "Funny Gal",
5085 "King's Personal Jester",
5086 "Barnum", "Bailey", "Shaco", /* ??? */
5095 "Money Van Kidnapper",
5096 "Danzai", "Milanor", "Daini", /* ??? */
5099 "Preparing for Exams",
5100 "High School Graduate",
5101 "Final Year Student",
5102 "University Newbie",
5103 "Bachelor of Art and Craft",
5104 "Jesuitic Studies PhD",
5105 "Marriage Counseling Professor",
5106 "Queen Serenity", "Angel Aphrodite", "Queen Beryl", /* perhaps an anime or manga? */
5112 "Walking Beer Bottle",
5114 "Luckless Individual",
5117 "Dangerous Criminal",
5120 "Cold-Blooded Gangster",
5122 "Master Hitman", "Master Hitwoman",
5123 "Professional Cutter",
5124 "Bane of all innocent people",
5125 "Falis", "Marfa", "Falaris", /* Record of Lodoss War */
5128 "Wallhack Exploiter",
5135 "Instawin Scriptkiddy",
5136 "the Bitches", "the Hell Brides", "the Sluts with Syphilis", /* taken from a fanfic --Amy */
5145 "King Slime", "Queen Slime",
5146 "Slime God", "Slime Goddess",
5147 "King Somnus", "Rubiss", "Malroth", /* Dragon Warrior */
5149 "Young Boy", "Young Girl",
5166 "Retired Goldrusher",
5168 "Aurum", "Argentum", "Antimony",
5172 "Middle-Earth Miner",
5176 "Dwarven Master Smith",
5178 "Biggest Midget Ever",
5179 "Moradin", "Dumathoin", "Abbathor",
5183 "Celebrating Hobbit",
5185 "Fellow of the Ring",
5189 "Hero who defeated Sauron",
5190 "Lurtz", "Saruman", "Morgoth",
5192 "Polymorph Trainee",
5194 "Polymorphitis Hero",
5198 "Master Shapechanger",
5199 "Grandmaster Shapechanger",
5200 "Ultimate Shapechanger",
5202 "Twedhel", "Twelleth",
5203 "Twedhel", "Twelleth", /* elf-maid */
5204 "Twohtar", "Twohtie", /* warrior */
5205 "Twekano", /* commander (Q.) ['a] */
5206 "Twekanie", /* educated guess, until further research- SAC */
5207 "Twarandur", /* king's servant, minister (Q.) - guess */
5208 "Twaranduriel", /* educated guess */
5209 "Twehir", "Twehiril", /* lord, lady (S.) ['ir] */
5210 "Twaredhel", "Twarwen", /* noble elf, maiden (S.) */
5211 "Twernil", "Twelentariel", /* prince (S.), elf-maiden (Q.) */
5212 "Twelentar", "Twelentari", /* Star-king, -queen (Q.) */
5213 "Legolas", "Eowyn", "Eol", /* Elven */
5220 "Chrono Commandant",
5221 "Anachrononononaut",
5223 "Hope of the Future",
5225 "Fire Tower Caster",
5227 "Eruption Magician",
5231 "Causer of Hurricanes",
5233 "Thundering Earthshaker",
5234 "Tal Rascha", "Blood Raven", "B-a-a-l", /* Diablo 2 */
5236 "octo", "enraged diggle", "arch diggle", "garg", "poison slug", "dopefish", "Borg drone",
5240 "Gun-Toting Avenger",
5241 "Kalashnikov Gunner",
5243 "Spiderdemon Hunter",
5244 "Nether Realm Traveler",
5246 "Cyberdemon's Bane",
5247 "Zombieman Brigade", "The Revenants", "Cyberdemon MkIII Deluxe", /* Doom 2 */
5258 "Sol", "Terra", "Luna",
5269 "Selene", "Helios", "Eos",
5279 "Ultimate Justice Keeper",
5280 "Lawful Good", "True Neutral", "Chaotic Evil", /* Dungeons and Dragons */
5282 "Pure Boy", "Pure Girl",
5283 "Jinme Boy", "Jinme Girl",
5284 "Mist Youth", "Mist Maiden",
5285 "Moon Youth", "Moon Maiden",
5286 "Prince Youth", "Princess Maiden",
5287 "Hanuman Youth", "Hanuman Maiden",
5288 "Ryujin Youth", "Ryujin Maiden",
5290 "Eternal Youth", "Eternal Maiden",
5291 "Umbrellarina Madeline", "Medium Deborah", "Crueltrainer Cindy",
5302 "Jonathan Joestar", "Hirohiko Araki", "Cars", /* Jojo */
5312 "Sexy King", "Sexy Queen",
5313 "Yoroshiku", "Ma Shin", "Sexy Sai", /* Chinese */
5321 "Stinking Cloud Creator",
5324 "Seveso Toxin", "Fukoshima Radiation", "Mustard Gas", /* poison */
5328 "Khmer-Speaking Transvestite",
5329 "Dragshow Attendant",
5332 "High-Heel-Loving Guy",
5333 "Androgynous Beauty",
5334 "Fleecy Sex Symbol",
5346 /* more random names... */
5348 "Tacitusrian", "Tacitus-rian", "Ryuan", "Ryu-an", "Robat", "Robert", "Tobi", "Tobias", "Flo-ooo", "Florian", "Cristi", "Christian", "Alex", "Johanetta", "Julia", "Julchen", "Yvonne", "Magdalena", "Eveline", "Bea", "Beatriz", "Egas", "Hannes", "Leo", "Leopold", "Baschdi Deathstrike", "Markus", "Martin", "Corina", "Elif", "Nadja", "Sunali", "Solvejg", "Thai", "Max", "Maximilian", "Jannik", "Conse", "Constantin", "Paul", "David", "Meltem", "Susanne", "Rita", "Kati", "Katinka", "Mailie", "Marie", "Klara", "Sandra", "Arne", "Antonia", "Chaska", "Ludgera", "Laura", "Eva", "Maurah", "Sophie", "Marian", "Jil", "Patricia", "Kerstin", "Hanh", "Antje", "Jennifer", "Karin", "Nicole", "Bettina", "Heike", "Dora", "Maite", "Ruth", "Verena", "Lou", "Julian", "Danielle", "Sebastian", "Amandine", "Lily", "Yannick", "Leonie", "Mira", "Felix", "Sofia", "Christiane", "Ann Kathrin", "Njusha", "Elisabeth", "Conny", "Constanze", "Lisa", "Anja", "Yasaman", "Almut", "Ksenia", "Miriam", "Elena", "Katharina", "Helen", "Victoria", "Simone", "Nataliya", "Kristin", "Nelly", "Rejda", "Nora", "Jasieen", "Yacine", "Marike", "Michael", "Merle", "Marianne", "Sina", "Dorothea", "Tinanya", "Hanno", "Noemi", "Giulia", "Nino", "Charlotte", "Friederike", "Sophia", "Sue Lyn", "Juen", "Ruea", "Gudrun", "Ella", "Manuela", "Daniel", "Lennart", "Tilla", "Ilja", "Greta", "Jane", "Nico", "Tillmann",
5350 "Celia", "Boese", "Bad", "Eliane", "O'Neill", "Stefan", "Fenja", "Silvana", "Vanasil", "Lukas", "Selinger", "Gallardo", "Sarina", "Alexia", "Vida", "Isis", "Ilse", "Melanie", "Baenni", "Peeer", "Peeta", "Lareena", "Janina", "Jannie", "Walter", "Klaus", "Micha", "Chirin", "Ingrid", "Walker", "Nikolei", "Jonas", "Iwan", "Tonja", "Tapia", "Rubinho", "Coffin Nail", "Evillan", "Thilo", "Maurus", "Ligasa", "Andrea", "Mia", "Annemarie", "Caro",
5352 "Mandarina", "Ariane", "Carina", "Denise", "Freddie", "Kira", "Nadine", "Laurens", "Loorenz", "Jorin", "Rinjo", "Franzi", "Amelie", "Andrej", "Annika", "Anselm", "Aram", "Barbara", "Boris", "Burkhard", "Elsa", "Isabel", "Nils", "Siln", "Ozan", "Otzan", "Thorwald", "Forestgate", "Dominik", "Albert", "Bianca", "Carmen", "Don Finwe", "Gerrit", "Hilda", "Jens", "Johanna", "Julietta", "Leon", "Linda", "Marius", "Mirko", "Petra", "Sigurd", "Sonja", "Stella", "Ismella", "Teresa", "Wilhelm", "Sagarah", "Rosy",
5361 "Ultimate Unspeakable Lovecraftian Nightmare",
5364 "Master of the Universe",
5378 "Giant were-penguin",
5384 "Teenage Mutant Ninja Turtle",
5391 "Apocalyptic Beast",
5399 "Multi-hued elephant",
5403 "Miniature space fleet",
5404 "6-feet tall elephant",
5405 "Insurance salesman",
5411 "Miniature Shetland pony",
5415 "Magnificent big-game hunter",
5422 "Amazing Spider-Man",
5430 "Bloodletter of Khorne",
5450 "Master of Teras Kasi",
5457 "Paul Bunyan Machine",
5460 "Gargantuan sumo wrestler",
5478 "Phantom of the Opera",
5492 "Master of Sinanju",
5536 "Ancient astronaut",
5538 "Beast from 20000 fathoms",
5539 "Beast with a million eyes",
5540 "Black goat of the woods with a thousand young",
5547 "Brain from Planet Ardus",
5550 "Brain that would not die",
5552 "Chickenstein's monster",
5553 "Creature from the Black Lagoon",
5554 "Loch Ness monster",
5560 "Bride of Frankenstein",
5565 "Giant celery stalk",
5572 "Highest intelligence",
5574 "Hound of the Baskervilles",
5588 "Hunchback of Notre Dame",
5589 "Monster that challenged the World",
5590 "Monster from green hell",
5599 "Floating brain of Hitler",
5600 "Stay Puft Marshmallow Man",
5604 "Teenage Frankenstein",
5606 "Terror from the year 5000",
5635 "Great Giana Sister",
5643 "Model T-1000 Terminator",
5647 "Stocking Strangler",
5649 "Beast of the Black Forest",
5650 "Demon of the Belfry",
5652 "Sunday Morning Slasher",
5653 "Kerio the Ill-Tempered Swearing Italian",
5658 "Lord of this world",
5673 "Greater hell magic mushroom cyber-unmaker leprechaun of the Dawn",
5674 "Devastator, the Destroyer's Big Brother",
5685 "Defender of the Faith",
5708 "Minion of DarkGod, the Mighty Coder of Hell",
5711 "Sea Folk Windfinder",
5717 "Great Wyrm of Nothing",
5718 "Great Wyrm of Toxic Waste",
5738 "Existentialist philosopher",
5741 "Jehovah's witness",
5748 "Maiden of the Spear",
5749 "t-o-m-e.net forum poster",
5769 "Ghost of Frodo Baggins",
5773 "Ghost of your past",
5774 "Biology professor",
5782 "Purple space chicken",
5783 "Simpsons character",
5784 "UN weapons inspector",
5785 "Noldorin mercenary",
5796 "Lovecraftian nightmare",
5797 "Shakespeare's imitator",
5804 "Cellular automaton",
5808 "Unspeakable horror",
5809 "Spirit of Roger Wilco",
5810 "Long sword 'Ringil'",
5812 "Intel(R) Pentium processor",
5816 "Long sword 'Mormegil'",
5826 "Wrath of the gods",
5827 "Betrayer of Turin",
5828 "Traitor of Gondolin",
5831 "Hillside strangler",
5833 "Pampers commercial",
5837 "Madman", "Madwoman",
5838 "Vicious Diceroller",
5839 "Russian Roulette Player",
5843 "Master of Entropy",
5844 "Arle Nadja", "Celine Jules", "Miki Onimaru", /* anime */
5847 "Air Current Lover",
5851 "Glacial Avalanche",
5853 "Astral Controller",
5854 "Amon Ra", "Hersifon", "Mor Havoc", /* Age of Empires */
5859 "Arcane Arts Student",
5860 "Promising Scholar",
5861 "Controller of Dark Arts",
5862 "Occult Library Owner",
5864 "Fate", "Unlimited Blade Works", "Heaven's Feel", /* suggestion on gamefaqs IIRC? */
5865 "Poschengband Noob",
5868 "Morivant Merchant",
5873 "One Who Killed The Serpent",
5877 "Sex Market Commodity",
5880 "Many-Times-Fucked",
5883 "Highest-Selling Wench",
5884 "Ewa", "Lorskel", "Kaczynski", /* Polish names */
5886 "Attractive Hooker",
5892 "Top-Class Working Girl",
5893 "King's Secret Love",
5894 "Mercedes", "Misty", "Kendl", /* Grand Theft Auto */
5896 "Kumiromi of Harvest", "Opatos of Earth", "Ehekatl of Luck",
5900 "Fingernail Scratcher",
5901 "Purple Dress Wearer",
5903 "Safe Zone Defender",
5905 "Rolling Pin Swinger",
5906 "Bane of Men Worldwide",
5907 "Balanced Doppelganger",
5908 "Fluctuated Controller",
5909 "Restricted Polymorpher",
5911 "Shuddering Vibrator",
5913 "Master of Transmogrifying",
5916 "Polypiling", "Monster Polymorphing", "Self-Polymorph",
5919 "Pupil Without Pocket Money",
5920 "Bang Gang's Punching Bag",
5921 "Hussy Club Doormat",
5923 "Victim Turned Executioner",
5924 "Headhunter Spokesman", "Headhunter Spokeswoman",
5925 "One Who Will Defeat Anna",
5926 "Mr. Maradonna", "Ms. Unfortunate Forest", "Ms. Storm",
5928 "Burning Stick Controller",
5930 "Walking Geiger Counter",
5932 "Ordinance Observer",
5934 "Resonance Cascade Averter",
5935 "Gordon Freeman Clone",
5936 "Gina", "Gordon Freeman", "G-Man", /* Half-Life */
5944 "Random Ascension Kit Wearer",
5945 "Nastiness Survivor",
5947 "Anachrononono-nononono",
5948 "Vestige Vanquisher",
5954 "Keeper of the Gate",
5955 "Tariru", "FIQ", "Demo", /* dnethack players */
5956 "Annoying Guy", "Annoying Girl",
5957 "Nasty Fucker", "Nasty Bitch",
5958 "Teaser Displeaser",
5960 "Stinking Socks Wearer",
5961 "Drum Stint Reluctant",
5962 "Odorous Uncle", "Odorous Aunt",
5963 "Clicker Money Thief",
5964 "Anna's Personal Bodyguard",
5965 "Madeleine", "Sofia", "Wendy", /* hussy names from pager.c */
5967 "Wall Construction Worker",
5969 "Pavement Optimizer",
5970 "Housebuilding Apprentice",
5974 "World Trade Center Architect",
5975 "The Battlehorse", "The Wild Boar", "The Dire Wolf", /* big mean animals */
5977 "Autistic Programmer",
5979 "Balance Analphabet",
5983 "Repository Deleter",
5984 "Self-Appointed Coding God",
5985 "Your Magical Roommate", "Your Annoying Sister", "Your Insufferable Mother-In-Law", /* special */
5986 "Assumption Spreader",
5992 "Politic Revolutionizer",
5994 "King of Fake News",
5995 "Heimskr", "Suffragette", "Cromwell", /* annoying NPCs in certain video games */
5998 "Dark Day Worshipper",
6000 "Creative Name Inventor",
6003 "Cataclysm Squatter",
6005 "Margaret", "Anaconda", "Aerschie-Miesie", /* Amy's nicknames in Half-Life, AHL and Counter-Strike */
6009 "Intolerant Fanatic",
6010 "Echo Chamber Sounder",
6011 "Banhammer Wielder",
6012 "Party Line Ensurer",
6015 "Zoe Quinn", "Brianna Wu", "Anita Sarkeesian", /* feminists */
6016 "Alpha Mission Team",
6017 "Sector Beta Sweeper",
6020 "Distress Disposer",
6021 "Teacher's Favorite",
6022 "Treebark Protector",
6025 "Speaker Walt", "Great Corner-Hard", "Left Guenter", /* superschool people */
6031 "Junior Programmer",
6036 "Linus Torvalds", "Bjarne Stroustrup", "Mark Zuckerberg", /* famous software engineers */
6046 "Wikileaks", "Guccifer 2.0", "Anonymous", /* h@cking */
6056 "Grime", "Dog Shit", "Fag Butt", /* various forms of garbage - the latter is an actual term for "cigarette", you can stop whining about political correctness */
6066 "Krog", "Winston", "Cyrus", /* Clan EIT; Cyrus is also the ZAPM lead dev */
6076 "Cortege", "Tache", "Pillory", /* from Pokemon Vietnamese Crystal */
6086 "Macbeth", "Zoness", "Titania", /* Star Fox 64 */
6096 "Roger Staubach", "Peyton Manning", "Tom Brady", /* famous quarterbacks */
6106 "Bill Rizer", "Lance Bean", "Haggle Man", /* classic NES games */
6110 "Subconscious Link",
6116 "Grolla Seyfarth", "Pamela & Carl Arwig", "Iris Sepperin", /* erka_es, and the "Carl Arwig" is an inside joke */
6126 "Marie Curie", "Georg Simon Ohm", "Albert Einstein", /* famous scientists */
6136 "Tax Evasion", "Murder and Arson", "Prison Outbreak", /* crimes, listed in order of severity from minor to major :P */
6139 "Deimos Stevedore", "Moon Walker",
6143 "LongShot Navigator",
6145 "Nostromo Survivor",
6146 "Neil Armstrong", "Sally Ride", "Yuri Gagarin", /* famous astronauts */
6156 "Diddy the Fail Master", "Bantor the Gay Voice", "Conker the Bad Fur Squirrel", /* Diddy Kong Failing :P */
6157 "Mars Castaway", "Moon Base Staff",
6166 "Aung San Suu Kyi", "Ai Weiwei", "Vladimir Bukovsky", /* famous dissidents */
6167 "Outworlder", "Void Explorer",
6176 "Jim Raynor", "Hierarch Artanis", "Sarah Kerrigan", /* starcraft */
6185 "King of Games", "Queen of Games",
6186 "Johnny", "Spike", "Timmy", /* Card player archetypes */
6187 "Servant of Scales",
6191 "Knight of the Skies",
6196 "Enki", "Enlil", "Ereshkigal", /* Sumerian */
6202 "Player's Competitor",
6204 "Monsterfish Fighter",
6205 "First Place Challenger",
6206 "Cheep Cheep", "Blubber", "Boss Bass", /* Super Mario */
6207 "Oppressed Lab Worker",
6209 "One Who Fears Assistants",
6210 "Beach Drama Experiencer",
6211 "Despotism Endurer",
6212 "Annoyed Ramming Support",
6214 "System Overthrower",
6215 "Accomplished Diploma Student",
6216 "Divert", "Oat Camper", "Jeannine", /* assistants */
6218 "Relationship Avoider",
6219 "Me-Neither-Shouter",
6220 "Privileged Potato",
6223 "Projection Of All That Is Wrong",
6226 "Slim Jim", "Milwaukee Jon", "Bose Jefferson", /* Road Rash */
6236 "Arihant", "Siddha", "Acharya", /* Jain */
6243 "Two-Square Melee Master",
6246 "Sulis", "Sequana", "Damona", /* celtic */
6248 "Garbage Can Searcher",
6252 "Reusable Plastic Bag",
6256 "Indra", "Soma", "Ishwara", /* rigvedic */
6259 "Stationary Seeker",
6261 "Master of Greater Powers",
6264 "Master Jelly Farmer",
6265 "Supreme Symbiosis Teacher",
6266 "Erotic Air Current Noises", "Wonderful Rubbing Noises", "Sexy Licking Noises", /* Amyism :D */
6270 "Aggressive Advocate",
6272 "Placation Striker",
6276 "Buergerinnen und Buerger", "Buergerlnnen", "Buerger*innen", /* some weird language that pretends to be German; on some fonts "I" and "l" look the same, therefore the neutral god is spelled like that on purpose :P */
6279 "Weaponless Adventurer",
6283 "Specialized Minmaxer",
6284 "Almost Supreme Master",
6286 "Arev", "U.GUR", "Khaldi", /* armenian */
6287 "a stylized eye formed from the letters V, F, and D",
6290 "Farting Gas Inhaler",
6291 "Squeaking Noise Enjoyer",
6293 "Graceful Body Admirer",
6294 "Blissful Air Current",
6297 "Eveline", "Elena", "Marlen",
6306 "World-Class Dancer",
6307 "the Archomentals", "Cryonax", "the Elder Elemental",
6308 "Stocks That Hunter Inside Dweller",
6309 "Cemetery Plunderer",
6310 "Catacomb Evil-Fighter",
6311 "Desert Caravanist",
6315 "Heavenly Fortress Defender",
6317 "Athulua", "Bul-Kathos", "Rathma", /* Diablo series */
6319 "Green Cross Delver",
6320 "Moneyless Adventurer",
6322 "Crash Bug Encounterer",
6323 "Bad Game Design Bitcher",
6326 "Ascension Run Skipper",
6327 "0.54A", "Level Change UAE", "Reset Button Without A Confirmation", /* still salty about the latter... :-P --Amy */
6330 "Underground Agitator",
6334 "Banishment Wielder",
6335 "Top-Secret Advice Member",
6336 "Boss of the Secret Advice",
6337 "Katrin", "Len-kind", "Coffin Nail",
6339 "Combat Boot Slave",
6340 "Shin-Smashed Sneaker",
6341 "Bathtub Despairer",
6342 "Dogshit Challenger",
6347 "Birkenstock", "Tamaris", "Peter Kaiser", /* German shoe brands */
6356 "Self-Appointed Master",
6357 "Nuwa", "Pangu", "Fuxi", /* Chinese */
6366 "Biggest Noob Ever",
6367 "P-Point", "I Have To Reload", "Upper Failure Kornop",
6368 "Body Juice Worshipper",
6374 "Menopause Hesitator",
6376 "Smegmatic Reacher",
6377 "Sophie Kinsella", "Mavis Cheek", "Charlotte Roche", /* authors */
6385 "Married Luck Mushroom",
6386 "Happiness Enjoyer",
6387 "Charlie Sheen", "Tiger Woods", "George Clooney", /* famous womanizers */
6393 "Hard-Working Slave",
6397 "Blue-Heeled Ute", "Red-Heeled Nancy", "Ski-Heeled Brigitte",
6398 "Lightsaber Youngling",
6399 "Inexperienced Padawan",
6400 "Experienced Padawan",
6406 "Supreme Master Jedi",
6412 "Protecter-Shielder",
6415 "Battlefield Chief",
6418 "Lightsaber Form Trainer",
6421 "Jedi Without Jedi Powers",
6424 "Blacklight Master",
6425 "Riding Apprentice",
6434 "Bill Shoemaker", "Lester Piggott", "John Velazquez", /* famous jockeys */
6435 "Apprentice Caster",
6438 "Continuous Caster",
6441 "Grandmaster of Magic",
6442 "Spellmaster of the Universe",
6443 "Walking Book Of All Spells",
6444 "The Sexy Maidens", "The Sassy Girls", "The Indomitable Women", /* Amy original: "equality world" */
6445 "Technology Researcher",
6446 "Resourceful Explorer",
6447 "Versatile Allrounder",
6448 "Many-Sided Student",
6449 "Multifunction Organism",
6452 "Special Technique Master",
6453 "Technical Chameleon",
6454 "Earnest Dejesus", "_Madelene Thursday Lo", "Gray Hayes", /* CDDA */
6458 /* Amy note: it is not a bug that the rank titles are in here; they normally cannot be chosen as hallucinated monsters,
6459 * because those are taken either from this list or from monst.c. The rank titles are in role.c though. Because we want
6460 * variety (unlike Soviet5lo), we added all those names here so they can actually be picked. */
6462 /* Return a random monster name, for hallucination.
6463 * KNOWN BUG: May be a proper name (Godzilla, Barney), may not
6464 * (the Terminator, a Dalek). There's no elegant way to deal
6465 * with this without radically modifying the calling functions.
6473 if (!issoviet
) name
= rn1(NUMMONS
+ SIZE(bogusmons
) - LOW_PM
, LOW_PM
);
6474 /*} while (name < NUMMONS &&
6475 (type_is_pname(&mons[name]) || (mons[name].geno & G_NOGEN)));*/
6476 /* All monster names should be possible, even unique and genocided ones. This adds more variety. --Amy */
6480 name
= rn1(NUMMONS
+ SIZE(bogusmons
) - LOW_PM
, LOW_PM
);
6481 } while (name
< NUMMONS
&& (type_is_pname(&mons
[name
]) || (mons
[name
].geno
& G_NOGEN
)));
6485 /* "Revert hallucination monster name changes. This should disable genocided and unique monsters from appearing in the list of monsters." In Soviet Russia, people HATE variety with a fiery passion. Sure, it doesn't really make sense to have genocided monsters appear, but... why the heck disable unique ones??? They exist outside of hallucination too, and hallucination is supposed to make the player think the monster is some other monster, so why shouldn't the player's sub-conscious (or whatever's responsible for that) try to tell them that the monster in front of them is Demogorgon or something like that? --Amy */
6487 if (name
>= NUMMONS
) return bogusmons
[name
- NUMMONS
];
6488 return mons
[name
].mname
;
6491 #ifdef REINCARNATION
6493 roguename() /* Name of a Rogue player */
6497 if ((opts
= nh_getenv("ROGUEOPTS")) != 0) {
6498 for (i
= opts
; *i
; i
++)
6499 if (!strncmp("name=",i
,5)) {
6501 if ((j
= index(i
+5,',')) != 0)
6506 return rn2(3) ? (rn2(2) ? "Michael Toy" : "Kenneth Arnold")
6509 #endif /* REINCARNATION */
6514 static NEARDATA
const char * const hcolors
[] = {
6515 "ultraviolet", "infrared", "bluish-orange",
6516 "reddish-green", "dark white", "light black", "sky blue-pink",
6517 "salty", "sweet", "sour", "bitter", "umami",
6518 "striped", "spiral", "swirly", "plaid", "checkered", "argyle",
6519 "paisley", "blotchy", "guernsey-spotted", "polka-dotted",
6520 "square", "round", "triangular", "octarine",
6521 "cabernet", "sangria", "fuchsia", "wisteria",
6522 "lemon-lime", "strawberry-banana", "peppermint",
6523 "dancing", "singing", "loving",
6524 "electric", "welsh onion", "your colored",
6525 "loudy", "noisy", "clattery", "silent",
6526 "romantic", "incandescent", "multicolored",
6527 "apocyan", "cosmogone", "gant", "infra-pink",
6528 "irrigo", "opalescent", "peligin", "razzmatazz",
6529 "violant", "viric", "burnt hombre", "gan green", "infra dead",
6530 "liver purple", "loathsome lilac", "matter yellow", "ultra violent",
6535 const char *colorpref
;
6537 return (Hallucination
|| isblait
|| !colorpref
) ?
6538 hcolors
[rn2(SIZE(hcolors
))] : colorpref
;
6541 /* return a random real color unless hallucinating */
6545 int k
= rn2(CLR_MAX
);
6546 return Hallucination
? hcolor((char *)0) : (k
== NO_COLOR
) ?
6547 "colorless" : c_obj_colors
[k
];
6550 /* Aliases for road-runner nemesis
6552 static const char * const coynames
[] = {
6553 "Carnivorous Vulgaris","Road-Runnerus Digestus",
6554 "Eatibus Anythingus" ,"Famishus-Famishus",
6555 "Eatibus Almost Anythingus","Eatius Birdius",
6556 "Famishius Fantasticus","Eternalii Famishiis",
6557 "Famishus Vulgarus","Famishius Vulgaris Ingeniusi",
6558 "Eatius-Slobbius","Hardheadipus Oedipus",
6559 "Carnivorous Slobbius","Hard-Headipus Ravenus",
6560 "Evereadii Eatibus","Apetitius Giganticus",
6561 "Hungrii Flea-Bagius","Overconfidentii Vulgaris",
6562 "Caninus Nervous Rex","Grotesques Appetitus",
6563 "Nemesis Riduclii","Canis latrans"
6567 coyotename(mtmp
, buf
)
6572 sprintf(buf
, "%s - %s",
6573 x_monnam(mtmp
, ARTICLE_NONE
, (char *)0, 0, TRUE
),
6574 mtmp
->mcan
? coynames
[SIZE(coynames
)-1] : coynames
[rn2(SIZE(coynames
)-1)]);