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

Function u_init_race

src/u_init.c:791–864  ·  view source on GitHub ↗

race-specific initializations, same restrictions as u_init_role */

Source from the content-addressed store, hash-verified

789
790/* race-specific initializations, same restrictions as u_init_role */
791staticfn void
792u_init_race(void)
793{
794 switch (Race_switch) {
795 case PM_HUMAN:
796 /* Nothing special */
797 break;
798
799 case PM_ELF:
800 /*
801 * Elves are people of music and song, or they are warriors.
802 * Non-warriors get an instrument. We use a kludge to
803 * get only non-magic instruments.
804 */
805 if (Role_if(PM_CLERIC) || Role_if(PM_WIZARD)) {
806 static const int trotyp[] =
807 { WOODEN_FLUTE, TOOLED_HORN, WOODEN_HARP,
808 BELL, BUGLE, LEATHER_DRUM };
809 const struct trobj Instrument[] =
810 { { ROLL_FROM(trotyp), 0, TOOL_CLASS, 1, 1, 0 },
811 { 0, 0, 0, 0, 0, 0 } };
812 ini_inv(Instrument);
813 }
814
815 /* Elves can recognize all elvish objects */
816 knows_object(ELVEN_SHORT_SWORD, FALSE);
817 knows_object(ELVEN_ARROW, FALSE);
818 knows_object(ELVEN_BOW, FALSE);
819 knows_object(ELVEN_SPEAR, FALSE);
820 knows_object(ELVEN_DAGGER, FALSE);
821 knows_object(ELVEN_BROADSWORD, FALSE);
822 knows_object(ELVEN_MITHRIL_COAT, FALSE);
823 knows_object(ELVEN_LEATHER_HELM, FALSE);
824 knows_object(ELVEN_SHIELD, FALSE);
825 knows_object(ELVEN_BOOTS, FALSE);
826 knows_object(ELVEN_CLOAK, FALSE);
827 break;
828
829 case PM_DWARF:
830 /* Dwarves can recognize all dwarvish objects */
831 knows_object(DWARVISH_SPEAR, FALSE);
832 knows_object(DWARVISH_SHORT_SWORD, FALSE);
833 knows_object(DWARVISH_MATTOCK, FALSE);
834 knows_object(DWARVISH_IRON_HELM, FALSE);
835 knows_object(DWARVISH_MITHRIL_COAT, FALSE);
836 knows_object(DWARVISH_CLOAK, FALSE);
837 knows_object(DWARVISH_ROUNDSHIELD, FALSE);
838 break;
839
840 case PM_GNOME:
841 break;
842
843 case PM_ORC:
844 /* compensate for generally inferior equipment */
845 if (!Role_if(PM_WIZARD))
846 ini_inv(Xtra_food);
847 /* Orcs can recognize all orcish objects */
848 knows_object(ORCISH_SHORT_SWORD, FALSE);

Callers 1

u_init_inventory_attrsFunction · 0.85

Calls 2

ini_invFunction · 0.85
knows_objectFunction · 0.85

Tested by

no test coverage detected