MCPcopy Create free account
hub / github.com/NetHack/NetHack / genus

Function genus

src/mon.c:469–531  ·  view source on GitHub ↗

Convert the monster index of some monsters (such as quest guardians) * to their generic species type. * * Return associated character class monster, rather than species * if mode is 1. */

Source from the content-addressed store, hash-verified

467 * if mode is 1.
468 */
469int
470genus(int mndx, int mode)
471{
472 switch (mndx) {
473 /* Quest guardians */
474 case PM_STUDENT:
475 mndx = mode ? PM_ARCHEOLOGIST : PM_HUMAN;
476 break;
477 case PM_CHIEFTAIN:
478 mndx = mode ? PM_BARBARIAN : PM_HUMAN;
479 break;
480 case PM_NEANDERTHAL:
481 mndx = mode ? PM_CAVE_DWELLER : PM_HUMAN;
482 break;
483 case PM_ATTENDANT:
484 mndx = mode ? PM_HEALER : PM_HUMAN;
485 break;
486 case PM_PAGE:
487 mndx = mode ? PM_KNIGHT : PM_HUMAN;
488 break;
489 case PM_ABBOT:
490 mndx = mode ? PM_MONK : PM_HUMAN;
491 break;
492 case PM_ACOLYTE:
493 mndx = mode ? PM_CLERIC : PM_HUMAN;
494 break;
495 case PM_HUNTER:
496 mndx = mode ? PM_RANGER : PM_HUMAN;
497 break;
498 case PM_THUG:
499 mndx = mode ? PM_ROGUE : PM_HUMAN;
500 break;
501 case PM_ROSHI:
502 mndx = mode ? PM_SAMURAI : PM_HUMAN;
503 break;
504 case PM_GUIDE:
505 mndx = mode ? PM_TOURIST : PM_HUMAN;
506 break;
507 case PM_APPRENTICE:
508 mndx = mode ? PM_WIZARD : PM_HUMAN;
509 break;
510 case PM_WARRIOR:
511 mndx = mode ? PM_VALKYRIE : PM_HUMAN;
512 break;
513 default:
514 if (ismnum(mndx)) {
515 struct permonst *ptr = &mons[mndx];
516
517 if (is_human(ptr))
518 mndx = PM_HUMAN;
519 else if (is_elf(ptr))
520 mndx = PM_ELF;
521 else if (is_dwarf(ptr))
522 mndx = PM_DWARF;
523 else if (is_gnome(ptr))
524 mndx = PM_GNOME;
525 else if (is_orc(ptr))
526 mndx = PM_ORC;

Callers 2

domonnoiseFunction · 0.85
readobjnamFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected