blob: e7851588bb446959424b304ec92d2cc6be267f08 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001#ifndef _WIZLEVELS_
2#define _WIZLEVELS_
3/*
4 * wizlevels.h
5 *
6 * This file defines some useful macros to determine the level of
7 * a wizard in terms of ability to do certain wizard things.
8 * See also doc/concepts/levels. The grouping below is taken from there.
9 *
10 */
11#include "/secure/config.h"
12
13#define SEER_LVL 1
14#define LEARNER_LVL 10
15#define WIZARD_LVL 20
16#define DOMAINMEMBER_LVL 25
17#define SPECIAL_LVL 30
18#define LORD_LVL 40
19#define ELDER_LVL 50
20#define ARCH_LVL 60
21#define GOD_LVL 100
22
23#define SEER_GRP 1
24#define LEARNER_GRP 2
25#define WIZARD_GRP 3
26#define DOMAINMEMBER_GRP 4
27#define SPECIAL_GRP 5
28#define LORD_GRP 6
29#define ELDER_GRP 7
30#define ARCH_GRP 8
31
32/* user is an object which is to be checked */
33/* for example, use IS_WIZARD(this_player()) to check */
34/* if a player is a wizard. */
35#define IS_SEER(user) (query_wiz_level(user) >= SEER_LVL)
36#define IS_LEARNER(user) (query_wiz_level(user) >= LEARNER_LVL)
37#define IS_SPECIAL(user) (query_wiz_level(user) >= SPECIAL_LVL)
38#define IS_WIZARD(user) (query_wiz_level(user) >= WIZARD_LVL)
39#define IS_DOMAINMEMBER(user) (query_wiz_level(user) >= DOMAINMEMBER_LVL)
40#define IS_DEPUTY(user) (master()->IsDeputy(user))
41#define IS_LORD(user) (query_wiz_level(user) >= LORD_LVL)
42#define IS_ELDER(user) (query_wiz_level(user) >= ELDER_LVL)
43#define IS_ARCH(user) (query_wiz_level(user) >= ARCH_LVL)
44#define IS_GOD(user) (query_wiz_level(user) >= GOD_LVL)
45
46#define IS_LEARNING(user) (query_wiz_level(user) >= LEARNER_LVL &&\
47 user->QueryProp(P_WANTS_TO_LEARN))
48#define IS_LORD_DOMAIN(user,domain) (master()->domain_master(user,domain))
49
50/*
51 * Interface for enhanced security functions
52 */
53#define SEER_SECURITY (secure_level() >= SEER_LVL)
54#define LEARNER_SECURITY (secure_level() >= LEARNER_LVL)
55#define WIZARD_SECURITY (secure_level() >= WIZARD_LVL)
56#define DOMAINMEMBER_SECURITY (secure_level() >= DOMAINMEMBER_LVL)
57#define SPECIAL_SECURITY (secure_level() >= SPECIAL_LVL)
58#define LORD_SECURITY (secure_level() >= LORD_LVL)
59#define ELDER_SECURITY (secure_level() >= ELDER_LVL)
60#define ARCH_SECURITY (secure_level() >= ARCH_LVL)
61#define GOD_SECURITY (secure_level() >= GOD_LVL)
62
63#endif