… | |
… | |
39 | # undef def |
39 | # undef def |
40 | NUM_SKILLS, |
40 | NUM_SKILLS, |
41 | }; |
41 | }; |
42 | |
42 | |
43 | enum { |
43 | enum { |
44 | SF_COMBAT = 0x01, // skill can be used in direct attack combat (not ranged) |
44 | SF_COMBAT = 0x01, // skill can be used in direct attack combat (hth or weapon-based, not ranged) |
45 | SF_RANGED = 0x04, // skill can be used for ranged attacks (not combat) |
45 | SF_RANGED = 0x02, // skill can be used for ranged attacks (not combat) |
46 | SF_USE = 0x10, // skill can be used directly, directionless |
|
|
47 | SF_APPLY = 0x20, // skill can be independently applied (ranged) and is never a chosen skill |
|
|
48 | |
46 | |
|
|
47 | SF_USE = 0x04, // skill can be used directly, directionless |
49 | SF_NEED_ITEM = 0x20, // skill *requires* some object in the weapon slot |
48 | SF_NEED_ITEM = 0x08, // skill *requires* some object in the weapon slot |
|
|
49 | SF_AUTARK = 0x20, // skill is independent, cannot be readied or used by items, no chosen skill |
|
|
50 | |
50 | SF_MANA = 0x40, // skill requires a mana-consuming spell |
51 | SF_MANA = 0x40, // skill requires a mana-consuming spell, but cannot be readied on its own |
51 | SF_GRACE = 0x80, // skill can use a grace-consuming spell |
52 | SF_GRACE = 0x80, // skill can use a grace-consuming spell, or can be used on its own |
52 | }; |
53 | }; |
53 | |
54 | |
54 | /* This is used in the exp functions - basically what to do if |
55 | /* This is used in the exp functions - basically what to do if |
55 | * the player doesn't have the skill he should get exp in. |
56 | * the player doesn't have the skill he should get exp in. |
56 | */ |
57 | */ |
… | |
… | |
61 | #define SK_SUBTRACT_SKILL_EXP 3 /* Used when removing exp */ |
62 | #define SK_SUBTRACT_SKILL_EXP 3 /* Used when removing exp */ |
62 | #define SK_EXP_SKILL_ONLY 4 /* Player gets only skill experience */ |
63 | #define SK_EXP_SKILL_ONLY 4 /* Player gets only skill experience */ |
63 | |
64 | |
64 | #define USING_SKILL(op, skill) ((op)->chosen_skill && (op)->chosen_skill->subtype == skill) |
65 | #define USING_SKILL(op, skill) ((op)->chosen_skill && (op)->chosen_skill->subtype == skill) |
65 | |
66 | |
66 | /* This macro is used in fix_player() to define if this is a skill |
|
|
67 | * that should be used to calculate wc's and the like. |
|
|
68 | */ |
|
|
69 | #define IS_COMBAT_SKILL(num) (skill_flags [num] & SF_COMBAT) |
67 | #define IS_COMBAT_SKILL(num) (skill_flags [num] & SF_COMBAT) |
70 | #define IS_RANGED_SKILL(num) (skill_flags [num] & SF_RANGED) |
68 | #define IS_RANGED_SKILL(num) (skill_flags [num] & SF_RANGED) |
71 | |
69 | |
72 | /* Like IS_COMBAT_SKILL above, but instead this is used to determine |
70 | /* Like IS_COMBAT_SKILL above, but instead this is used to determine |
73 | * how many mana points the player has. |
71 | * how many mana points the player has. |