#ifndef FLAGS_H
#define FLAGS_H
+#include "extern.h"
+
/* This file contains all the flags used in the aClient and Player classes.
* More flags can be added simply by going up in multiples of 2.
* ie. 0001 0002 0004 0008 0010 0020 0040 0080 0100 0200 0400 0800 1000 2000 4000
*/
// aClient FLAGS ONLY
-#define FLAG_ADMIN 0x0001
+#define FLAG_ADMIN 0x00000001
+#define FLAG_IGNORE 0x00000002
+#define FLAG_PLAYING 0x00000004
// PLAYER FLAGS ONLY
-#define FLAG_MASTER 0x0001
-#define FLAG_ALIVE 0x0002
-#define FLAG_YOURTURN 0x0004
+#define FLAG_MASTER 0x00000001
+#define FLAG_ALIVE 0x00000002
+#define FLAG_YOURTURN 0x00000004
+#define FLAG_WONGAME 0x00000008
+#define FLAG_DRAGONFIGHT 0x00000010
+
+// Config File flags
+#define CFLAG_LISTENONCF 0x00000001
+#define CFLAG_USEPRIVMSG 0x00000002
+#define CFLAG_BOPER 0x00000004
+#define CFLAG_WELCOME 0x00000008
+#define CFLAG_SAVEDNOTICE 0x00000010
+#define CFLAG_USENICKSERV 0x00000020
+
+#define setUseNickServ() (configflags |= CFLAG_USENICKSERV)
+#define clearUseNickServ() (configflags &= ~CFLAG_USENICKSERV)
+#define isUseNickServ() (configflags & CFLAG_USENICKSERV)
+
+#define setSavedNotice() (configflags |= CFLAG_SAVEDNOTICE)
+#define clearSavedNotice() (configflags &= ~CFLAG_SAVEDNOTICE)
+#define isSavedNotice() (configflags & CFLAG_SAVEDNOTICE)
+
+#define setWelcome() (configflags |= CFLAG_WELCOME)
+#define clearWelcome() (configflags &= ~CFLAG_WELCOME)
+#define isWelcome() (configflags & CFLAG_WELCOME)
+#define setListenOnCF() (configflags |= CFLAG_LISTENONCF)
+#define clearListenOnCF() (configflags &= ~CFLAG_LISTENONCF)
+#define isListenOnCF() (configflags & CFLAG_LISTENONCF)
+#define setUsePrivmsg() (configflags |= CFLAG_USEPRIVMSG)
+#define clearUsePrivmsg() (configflags &= ~CFLAG_USEPRIVMSG)
+#define isUsePrivmsg() (configflags & CFLAG_USEPRIVMSG)
+
+#define setBOper() (configflags |= CFLAG_BOPER)
+#define clearBOPer() (configflags &= ~CFLAG_BOPER)
+#define isBOper() (configflags & CFLAG_BOPER)
// aClient flags
// #define ADMIN_FLAGS(FLAG_ONE | FLAG_TWO | FLAG_ETC)
#define clearAdminFlags(x) ((x)->remFlag(ADMIN_FLAGS))
+#define setIgnore(x) ((x)->addFlag(FLAG_IGNORE))
+#define clearIgnore(x) ((x)->remFlag(FLAG_IGNORE))
+#define isIgnore(x) ((x)->getFlags() & FLAG_IGNORE) && !isAdmin(x)
+
+#define setPlaying(x) ((x)->addFlag(FLAG_PLAYING))
+#define clearPlaying(x) ((x)->remFlag(FLAG_IGNORE))
+#define FL_is_playing(x) ((x)->getFlags() & FLAG_PLAYING)
// Player Flags
#define seenMaster(x) ((x)->getFlags() & FLAG_MASTER)
#define setYourTurn(x) ((x)->addFlag(FLAG_YOURTURN))
#define clearYourTurn(x) ((x)->remFlag(FLAG_YOURTURN))
+#define hasWonGame(x) ((x)->getFlags() & FLAG_WONGAME)
+#define setWonGame(x) ((x)->addFlag(FLAG_WONGAME))
+#define clearWonGame(x) ((x)->remFlag(FLAG_WONGAME))
+
+#define isDragonFight(x) ((x)->getFlags() & FLAG_DRAGONFIGHT)
+#define setDragonFight(x) ((x)->addFlag(FLAG_DRAGONFIGHT))
+#define clearDragonFight(x) ((x)->remFlag(FLAG_DRAGONFIGHT))
+
#endif