race-specific initializations, same restrictions as u_init_role */
| 789 | |
| 790 | /* race-specific initializations, same restrictions as u_init_role */ |
| 791 | staticfn void |
| 792 | u_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); |
no test coverage detected