ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/skills.h
Revision: 1.20
Committed: Sun Jul 1 05:00:18 2007 UTC (16 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.19: +11 -12 lines
Log Message:
- upgrade crossfire trt to the GPL version 3 (hopefully correctly).
- add a single file covered by the GNU Affero General Public License
  (which is not yet released, so I used the current draft, which is
  legally a bit wavy, but its likely better than nothing as it expresses
  direct intent by the authors, and we can upgrade as soon as it has been
  released).
  * this should ensure availability of source code for the server at least
    and hopefully also archetypes and maps even when modified versions
    are not being distributed, in accordance of section 13 of the agplv3.

File Contents

# User Rev Content
1 root 1.1 /*
2 root 1.20 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 pippijn 1.13 *
4 root 1.19 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
5     * Copyright (©) 2003,2007 Mark Wedel & Crossfire Development Team
6     * Copyright (©) 1992,2007 Frank Tore Johansen
7 pippijn 1.13 *
8 root 1.20 * Crossfire TRT is free software: you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License as published by
10     * the Free Software Foundation, either version 3 of the License, or
11     * (at your option) any later version.
12 pippijn 1.13 *
13 root 1.20 * This program is distributed in the hope that it will be useful,
14     * but WITHOUT ANY WARRANTY; without even the implied warranty of
15     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     * GNU General Public License for more details.
17 pippijn 1.13 *
18 root 1.20 * You should have received a copy of the GNU General Public License
19     * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 root 1.19 *
21     * The authors can be reached via e-mail to <crossfire@schmorp.de>
22 pippijn 1.13 */
23 root 1.1
24 root 1.9 #ifndef SKILLS_H__
25     #define SKILLS_H__
26 root 1.1
27     /* This list is just a subtype <-> skill (code wise) in the
28     * server translation. In theory, the processing of the different
29     * skills could be done via strncmp
30     * This list doesn't really try to identify what the skills do.
31     * The order of this list has no special meaning. 0 is not used
32     * to denote improperly set objects.
33     */
34 root 1.9 enum {
35     SK_NONE = 0,
36 root 1.14 # define def(uc, flags) SK_ ## uc,
37 root 1.9 # include "skillinc.h"
38     # undef def
39     NUM_SKILLS,
40     };
41 root 1.1
42 root 1.14 enum {
43     SF_COMBAT = 0x01, // skill is used only in direct attack combat
44 root 1.18 SF_NEED_WEAPON = 0x02, // skill requires a weapon object
45     SF_RANGED = 0x04, // skill is only used for ranged attacks
46     SF_NEED_BOW = 0x08, // skill requires a bow object
47     SF_USE = 0x10, // skill can be used but is directionless
48     SF_APPLY = 0x20, // skill can be independently applied and is never a chosen skill
49 root 1.17
50 root 1.14 SF_MANA = 0x40, // skill requires a mana-consuming spell
51     SF_GRACE = 0x80, // skill can use a grace-consuming spell
52     };
53    
54 root 1.1 /* 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     */
57    
58     #define SK_EXP_ADD_SKILL 0 /* Give the player the skill */
59     #define SK_EXP_TOTAL 1 /* Give player exp to total, no skill */
60     #define SK_EXP_NONE 2 /* Player gets nothing */
61     #define SK_SUBTRACT_SKILL_EXP 3 /* Used when removing exp */
62 elmex 1.7 #define SK_EXP_SKILL_ONLY 4 /* Player gets only skill experience */
63 root 1.1
64     #define USING_SKILL(op, skill) ((op)->chosen_skill && (op)->chosen_skill->subtype == skill)
65    
66 root 1.5 /* This macro is used in fix_player() to define if this is a skill
67 root 1.1 * that should be used to calculate wc's and the like.
68     */
69 root 1.14 #define IS_COMBAT_SKILL(num) (skill_flags [num] & SF_COMBAT)
70 root 1.15 #define IS_RANGED_SKILL(num) (skill_flags [num] & SF_RANGED)
71 root 1.1
72     /* Like IS_COMBAT_SKILL above, but instead this is used to determine
73     * how many mana points the player has.
74     */
75 root 1.14 #define IS_MANA_SKILL(num) (skill_flags [num] & SF_MANA)
76 root 1.1
77     /* Currently only one of these, but put the define here to make
78     * it easier to expand it in the future */
79 root 1.14 #define IS_GRACE_SKILL(num) (skill_flags [num] & SF_GRACE)
80 root 1.1
81 root 1.14 extern const uint8_t skill_flags[NUM_SKILLS];
82 root 1.8 extern shstr skill_names[NUM_SKILLS];
83 root 1.1
84 root 1.9 #endif
85 root 1.1