]>
Commit | Line | Data |
---|---|---|
108f1888 | 1 | #ifndef FLAGS_H |
2 | #define FLAGS_H | |
3 | ||
6f727d4c | 4 | #include "extern.h" |
5 | ||
1af35752 | 6 | /* This file contains all the flags used in the aClient and Player classes. |
108f1888 | 7 | * More flags can be added simply by going up in multiples of 2. |
1af35752 | 8 | * ie. 0001 0002 0004 0008 0010 0020 0040 0080 0100 0200 0400 0800 1000 2000 4000 |
9 | * 8000 10000 20000 40000 80000 100000 200000 400000 800000 1000000 2000000 4000000 | |
10 | * 8000000 10000000 20000000 40000000 80000000 (32 bit) | |
108f1888 | 11 | * This method was taken from my experience in working with various |
12 | * IRCD packages. Most of them use this for their modes along with | |
13 | * corresponding letter representations. | |
1af35752 | 14 | * Theoretically, each flag is 32 bit (long int), and each place in a flag |
15 | * is one hexadecimal digit (four bits). So, technically each flag variable | |
16 | * can hold 8 spaces for flags. 8 spaces at 4 flags per space makes for | |
17 | * 32 possible flags for each long int. That means there are 32 flags available | |
18 | * for the aClient class, and 32 for the player class. | |
0d012394 | 19 | * |
20 | * Basically if you are having problems visualizing how flags work, think of them in | |
21 | * binary terms: | |
22 | * Hex Binary | |
23 | * 0x0001 0001 | |
24 | * 0x0002 0010 | |
25 | * 0x0004 0100 | |
26 | * 0x0008 1000 | |
27 | * Basically, each flag represents a 1. When you add the different flags, you are just | |
28 | * adding a 1 in the given position. So 1001 would be 0x0009 or flags 0001 and 0008. | |
108f1888 | 29 | */ |
30 | ||
1af35752 | 31 | // aClient FLAGS ONLY |
18b84d11 | 32 | #define FLAG_ADMIN 0x00000001 |
33 | #define FLAG_IGNORE 0x00000002 | |
34 | #define FLAG_PLAYING 0x00000004 | |
108f1888 | 35 | |
1af35752 | 36 | // PLAYER FLAGS ONLY |
18b84d11 | 37 | #define FLAG_MASTER 0x00000001 |
38 | #define FLAG_ALIVE 0x00000002 | |
39 | #define FLAG_YOURTURN 0x00000004 | |
40 | #define FLAG_WONGAME 0x00000008 | |
8e800549 | 41 | #define FLAG_DRAGONFIGHT 0x00000010 |
108f1888 | 42 | |
9bafc40d | 43 | // Config File flags |
18b84d11 | 44 | #define CFLAG_LISTENONCF 0x00000001 |
45 | #define CFLAG_USEPRIVMSG 0x00000002 | |
46 | #define CFLAG_BOPER 0x00000004 | |
47 | #define CFLAG_WELCOME 0x00000008 | |
6c33e9ce | 48 | #define CFLAG_SAVEDNOTICE 0x00000010 |
5431156e | 49 | #define CFLAG_USENICKSERV 0x00000020 |
50 | ||
51 | #define setUseNickServ() (configflags |= CFLAG_USENICKSERV) | |
52 | #define clearUseNickServ() (configflags &= ~CFLAG_USENICKSERV) | |
53 | #define isUseNickServ() (configflags & CFLAG_USENICKSERV) | |
6c33e9ce | 54 | |
55 | #define setSavedNotice() (configflags |= CFLAG_SAVEDNOTICE) | |
56 | #define clearSavedNotice() (configflags &= ~CFLAG_SAVEDNOTICE) | |
5c449fde | 57 | #define isSavedNotice() (configflags & CFLAG_SAVEDNOTICE) |
18b84d11 | 58 | |
59 | #define setWelcome() (configflags |= CFLAG_WELCOME) | |
60 | #define clearWelcome() (configflags &= ~CFLAG_WELCOME) | |
61 | #define isWelcome() (configflags & CFLAG_WELCOME) | |
6f727d4c | 62 | |
63 | #define setListenOnCF() (configflags |= CFLAG_LISTENONCF) | |
64 | #define clearListenOnCF() (configflags &= ~CFLAG_LISTENONCF) | |
c8117c0f | 65 | #define isListenOnCF() (configflags & CFLAG_LISTENONCF) |
9bafc40d | 66 | |
6f727d4c | 67 | #define setUsePrivmsg() (configflags |= CFLAG_USEPRIVMSG) |
68 | #define clearUsePrivmsg() (configflags &= ~CFLAG_USEPRIVMSG) | |
69 | #define isUsePrivmsg() (configflags & CFLAG_USEPRIVMSG) | |
9bafc40d | 70 | |
6f727d4c | 71 | #define setBOper() (configflags |= CFLAG_BOPER) |
72 | #define clearBOPer() (configflags &= ~CFLAG_BOPER) | |
73 | #define isBOper() (configflags & CFLAG_BOPER) | |
108f1888 | 74 | |
1af35752 | 75 | // aClient flags |
76 | // #define ADMIN_FLAGS(FLAG_ONE | FLAG_TWO | FLAG_ETC) | |
77 | #define ADMIN_FLAGS (FLAG_ADMIN) | |
108f1888 | 78 | |
79 | #define setAdmin(x) ((x)->addFlag(FLAG_ADMIN)) | |
80 | #define clearAdmin(x) ((x)->remFlag(FLAG_ADMIN)) | |
81 | #define isAdmin(x) ((x)->getFlags() & FLAG_ADMIN) | |
82 | ||
1af35752 | 83 | #define clearAdminFlags(x) ((x)->remFlag(ADMIN_FLAGS)) |
84 | ||
448a1531 | 85 | #define setIgnore(x) ((x)->addFlag(FLAG_IGNORE)) |
86 | #define clearIgnore(x) ((x)->remFlag(FLAG_IGNORE)) | |
87 | #define isIgnore(x) ((x)->getFlags() & FLAG_IGNORE) && !isAdmin(x) | |
88 | ||
3f243b0b | 89 | #define setPlaying(x) ((x)->addFlag(FLAG_PLAYING)) |
90 | #define clearPlaying(x) ((x)->remFlag(FLAG_IGNORE)) | |
91 | #define FL_is_playing(x) ((x)->getFlags() & FLAG_PLAYING) | |
1af35752 | 92 | |
93 | // Player Flags | |
ee38284f | 94 | #define seenMaster(x) ((x)->getFlags() & FLAG_MASTER) |
95 | #define setMaster(x) ((x)->addFlag(FLAG_MASTER)) | |
96 | #define clearMaster(x) ((x)->remFlag(FLAG_MASTER)) | |
97 | ||
98 | #define isAlive(x) ((x)->getFlags() & FLAG_ALIVE) | |
99 | #define setAlive(x) ((x)->addFlag(FLAG_ALIVE)) | |
100 | #define clearAlive(x) ((x)->remFlag(FLAG_ALIVE)) | |
1af35752 | 101 | |
ee38284f | 102 | #define isYourTurn(x) ((x)->getFlags() & FLAG_YOURTURN) |
103 | #define setYourTurn(x) ((x)->addFlag(FLAG_YOURTURN)) | |
104 | #define clearYourTurn(x) ((x)->remFlag(FLAG_YOURTURN)) | |
1af35752 | 105 | |
9ea839ce | 106 | #define hasWonGame(x) ((x)->getFlags() & FLAG_WONGAME) |
107 | #define setWonGame(x) ((x)->addFlag(FLAG_WONGAME)) | |
108 | #define clearWonGame(x) ((x)->remFlag(FLAG_WONGAME)) | |
109 | ||
8e800549 | 110 | #define isDragonFight(x) ((x)->getFlags() & FLAG_DRAGONFIGHT) |
111 | #define setDragonFight(x) ((x)->addFlag(FLAG_DRAGONFIGHT)) | |
112 | #define clearDragonFight(x) ((x)->remFlag(FLAG_DRAGONFIGHT)) | |
113 | ||
108f1888 | 114 | #endif |