1 #pragma once
2 
3 #include "tag-version.h"
4 
5 // [dshaligram] If you add a new skill, update skills.cc, specifically
6 // the skills[] array and skill_display_order[]. New skills must go at the
7 // end of the list or in the unused skill numbers. NEVER rearrange this enum or
8 // move existing skills to new numbers; save file compatibility depends on this
9 // order.
10 enum skill_type
11 {
12     SK_FIGHTING,
13     SK_FIRST_SKILL = SK_FIGHTING,
14     SK_SHORT_BLADES,
15     SK_FIRST_WEAPON = SK_SHORT_BLADES,
16     SK_LONG_BLADES,
17     SK_AXES,
18     SK_MACES_FLAILS,
19     SK_POLEARMS,
20     SK_STAVES,
21     SK_LAST_MELEE_WEAPON = SK_STAVES,
22     SK_SLINGS,
23     SK_BOWS,
24     SK_CROSSBOWS,
25     SK_LAST_WEAPON = SK_CROSSBOWS,
26     SK_THROWING,
27     SK_ARMOUR,
28     SK_DODGING,
29     SK_STEALTH,
30 #if TAG_MAJOR_VERSION == 34
31     SK_STABBING,
32 #endif
33     SK_SHIELDS,
34 #if TAG_MAJOR_VERSION == 34
35     SK_TRAPS,
36 #endif
37     SK_UNARMED_COMBAT,
38     SK_LAST_MUNDANE = SK_UNARMED_COMBAT,
39     SK_SPELLCASTING,
40     SK_CONJURATIONS,
41     SK_FIRST_MAGIC_SCHOOL = SK_CONJURATIONS, // not SK_FIRST_MAGIC as no Spc
42     SK_HEXES,
43 #if TAG_MAJOR_VERSION == 34
44     SK_CHARMS,
45 #endif
46     SK_SUMMONINGS,
47     SK_NECROMANCY,
48     SK_TRANSLOCATIONS,
49     SK_TRANSMUTATIONS,
50     SK_FIRE_MAGIC,
51     SK_ICE_MAGIC,
52     SK_AIR_MAGIC,
53     SK_EARTH_MAGIC,
54     SK_POISON_MAGIC,
55     SK_LAST_MAGIC = SK_POISON_MAGIC,
56     SK_INVOCATIONS,
57     SK_EVOCATIONS,
58     SK_LAST_SKILL = SK_EVOCATIONS,
59     NUM_SKILLS,                        // must remain last regular member
60 
61     SK_BLANK_LINE,                     // used for skill output
62     SK_COLUMN_BREAK,                   // used for skill output
63     SK_TITLE,                          // used for skill output
64     SK_NONE,
65     SK_WEAPON,                         // used in character generation
66 };
67