-ExtModeList EMode;
-
-// returns true if an extended mode character is in use
-bool ModeDefined(char modechar, int type)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == type))
- {
- return true;
- }
- }
- return false;
-}
-
-bool ModeIsListMode(char modechar, int type)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
- {
- return true;
- }
- }
- return false;
-}
-
-bool ModeDefinedOper(char modechar, int type)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
- {
- return true;
- }
- }
- return false;
-}
-
-// returns number of parameters for a custom mode when it is switched on
-int ModeDefinedOn(char modechar, int type)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == type))
- {
- return i->params_when_on;
- }
- }
- return 0;
-}
-
-// returns number of parameters for a custom mode when it is switched on
-int ModeDefinedOff(char modechar, int type)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == type))
- {
- return i->params_when_off;
- }
- }
- return 0;
-}
-
-// returns true if an extended mode character is in use
-bool DoAddExtendedMode(char modechar, int type, bool requires_oper, int params_on, int params_off)
-{
- if (ModeDefined(modechar,type)) {
- return false;
- }
- EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off));
- return true;
-}
-
-// turns a mode into a listmode
-void ModeMakeList(char modechar)
-{
- for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
- {
- if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
- {
- i->list = true;
- return;
- }
- }
- return;
-}