Crossfire Server, Branch 1.12  R12190
skills.h
Go to the documentation of this file.
00001 /*
00002  * static char *rcsid_skills_h =
00003  *   "$Id: skills.h 11578 2009-02-23 22:02:27Z lalo $";
00004  */
00005 
00006 /*
00007     CrossFire, A Multiplayer game for X-windows
00008 
00009     Copyright (C) 2003 Mark Wedel & Crossfire Development Team
00010     Copyright (C) 1992 Frank Tore Johansen
00011 
00012     This program is free software; you can redistribute it and/or modify
00013     it under the terms of the GNU General Public License as published by
00014     the Free Software Foundation; either version 2 of the License, or
00015     (at your option) any later version.
00016 
00017     This program is distributed in the hope that it will be useful,
00018     but WITHOUT ANY WARRANTY; without even the implied warranty of
00019     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020     GNU General Public License for more details.
00021 
00022     You should have received a copy of the GNU General Public License
00023     along with this program; if not, write to the Free Software
00024     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00025 
00026     The authors can be reached via e-mail at crossfire-devel@real-time.com
00027 */
00028 
00034 #ifndef SKILLS_H
00035 #define SKILLS_H
00036 
00048 #define SK_LOCKPICKING          1
00049 #define SK_HIDING               2
00050 #define SK_SMITHERY             3
00051 #define SK_BOWYER               4
00052 #define SK_JEWELER              5
00053 #define SK_ALCHEMY              6
00054 #define SK_STEALING             7
00055 #define SK_LITERACY             8
00056 #define SK_BARGAINING           9
00057 #define SK_JUMPING              10
00058 #define SK_DET_MAGIC            11
00059 #define SK_ORATORY              12
00060 #define SK_SINGING              13
00061 #define SK_DET_CURSE            14
00062 #define SK_FIND_TRAPS           15
00063 #define SK_MEDITATION           16
00064 #define SK_PUNCHING             17
00065 #define SK_FLAME_TOUCH          18
00066 #define SK_KARATE               19
00067 #define SK_CLIMBING             20
00068 #define SK_WOODSMAN             21
00069 #define SK_INSCRIPTION          22
00070 #define SK_ONE_HANDED_WEAPON    23
00071 #define SK_MISSILE_WEAPON       24
00072 #define SK_THROWING             25
00073 #define SK_USE_MAGIC_ITEM       26
00074 #define SK_DISARM_TRAPS         27
00075 #define SK_SET_TRAP             28
00076 #define SK_THAUMATURGY          29
00077 #define SK_PRAYING              30
00078 #define SK_CLAWING              31
00079 #define SK_LEVITATION           32
00080 #define SK_SUMMONING            33
00081 #define SK_PYROMANCY            34
00082 #define SK_EVOCATION            35
00083 #define SK_SORCERY              36
00084 #define SK_TWO_HANDED_WEAPON    37
00085 #define SK_WRAITH_FEED          38
00086 #define SK_HARVESTING 39
00087 
00095 #define NUM_SKILLS              40
00096 
00103 #define SK_EXP_ADD_SKILL        0   
00104 #define SK_EXP_TOTAL            1   
00105 #define SK_EXP_NONE             2   
00106 #define SK_SUBTRACT_SKILL_EXP   3   
00108 
00109 
00110 #define USING_SKILL(op, skill)  ((op)->chosen_skill && (op)->chosen_skill->subtype == skill)
00111 
00116 #define IS_COMBAT_SKILL(num) \
00117     ((num == SK_PUNCHING) \
00118     || (num == SK_FLAME_TOUCH) \
00119     || (num == SK_KARATE) \
00120     || (num == SK_ONE_HANDED_WEAPON) \
00121     || (num == SK_MISSILE_WEAPON) \
00122     || (num == SK_THROWING) \
00123     || (num == SK_CLAWING) \
00124     || (num == SK_TWO_HANDED_WEAPON) \
00125     || (num == SK_WRAITH_FEED))
00126 
00131 #define IS_MANA_SKILL(num) \
00132     ((num == SK_SORCERY) \
00133     || (num == SK_EVOCATION) \
00134     || (num == SK_PYROMANCY) \
00135     || (num == SK_SUMMONING))
00136 
00140 #define IS_GRACE_SKILL(num) \
00141     (num == SK_PRAYING)
00142 
00143 extern const char *skill_names[NUM_SKILLS];
00144 
00145 #ifdef WANT_UNARMED_SKILLS
00146 
00157 static uint8 unarmed_skills[] = {
00158     SK_KARATE,
00159     SK_CLAWING,
00160     SK_FLAME_TOUCH,
00161     SK_PUNCHING,
00162     SK_WRAITH_FEED,
00163     -1
00164 };
00165 
00166 /* Just in case one file includes this more than once */
00167 #undef WANT_UNARMED_SKILLS
00168 
00169 #endif
00170 
00171 #endif /* SKILLS_H */