#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_IGNORE 0x0002
+#define FLAG_PLAYING 0x0004
// PLAYER FLAGS ONLY
#define FLAG_MASTER 0x0001
#define FLAG_ALIVE 0x0002
#define FLAG_YOURTURN 0x0004
+#define FLAG_WONGAME 0x0008
+
+// Config File flags
+#define CFLAG_LISTENONCF 0x0001
+#define CFLAG_USEPRIVMSG 0x0002
+#define CFLAG_BOPER 0x0004
+
+#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))
+
#endif