/****************************************************************************
* [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame | *
* -----------------------------------------------------------| \\._.// *
* SmaugWiz (C) 1998 by Russ Pillsbury (Windows NT version) | (0...0) *
* -----------------------------------------------------------| ).:.( *
* SMAUG (C) 1994, 1995, 1996 by Derek Snider | {o o} *
* -----------------------------------------------------------| / ' ' \ *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, |~'~.VxvxV.~'~*
* Scryn, Swordbearer, Rennard, Tricops, and Gorog. | *
* ------------------------------------------------------------------------ *
* Merc 2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik Staerfeldt, Tom Madsen, and Katja Nyboe. *
* ------------------------------------------------------------------------ *
* Defense Flags Interface file *
***************************************************************************/
#ifndef DFNDFLAGS_H
#define DFNDFLAGS_H
#include "BitVector.h"
// ATTACK bits
enum DefenseBits {
DFND_PARRY, DFND_DODGE, DFND_HEAL, DFND_CURELIGHT, DFND_CURESERIOUS,
DFND_CURECRITICAL, DFND_DISPELMAGIC, DFND_DISPELEVIL, DFND_SANCTUARY,
DFND_FIRESHIELD, DFND_SHOCKSHIELD, DFND_SHIELD, DFND_BLESS,
DFND_STONESKIN, DFND_TELEPORT, DFND_MONSUM1, DFND_MONSUM2, DFND_MONSUM3,
DFND_MONSUM4, DFND_DISARM, DFND_ICESHIELD, DFND_GRIP, DFND_TRUESIGHT,
MAX_DEFENSE_TYPE };
// Defense types
#ifdef SMAUGSERVER_CPP
const char* DefenseNames [MAX_DEFENSE_TYPE] = {
"parry", "dodge", "heal", "curelight", "cureserious",
"curecritical", "dispelmagic", "dispelevil", "sanctuary",
"fireshield", "shockshield", "shield", "bless",
"stoneskin", "teleport", "monsum1", "monsum2", "monsum3",
"monsum4", "disarm", "iceshield", "grip", "truesight"
};
#endif
extern const char* DefenseNames [MAX_DEFENSE_TYPE];
class CDefenseFlags : public CBitVector {
public:
const CDefenseFlags& GetDefenseFlags () { return *this; }
void SetDefenseFlags (const CDefenseFlags& f) { *this = f; }
CString PrintString () const
{ return CBitVector::PrintString (DefenseNames, MAX_DEFENSE_TYPE); }
BOOL CanParry () { return IsSet (DFND_PARRY); }
void SetParry () { SetBit (DFND_PARRY); }
void ClrParry () { ClrBit (DFND_PARRY); }
BOOL CanDodge () { return IsSet (DFND_DODGE); }
void SetDodge () { SetBit (DFND_DODGE); }
void ClrDodge () { ClrBit (DFND_DODGE); }
BOOL CanHeal () { return IsSet (DFND_HEAL); }
void SetHeal () { SetBit (DFND_HEAL); }
void ClrHeal () { ClrBit (DFND_HEAL); }
BOOL CanCureLight () { return IsSet (DFND_CURELIGHT); }
void SetCureLight () { SetBit (DFND_CURELIGHT); }
void ClrCureLight () { ClrBit (DFND_CURELIGHT); }
BOOL CanCureSerious () { return IsSet (DFND_CURESERIOUS); }
void SetCureSerious () { SetBit (DFND_CURESERIOUS); }
void ClrCureSerious () { ClrBit (DFND_CURESERIOUS); }
BOOL CanCureCritical () { return IsSet (DFND_CURECRITICAL); }
void SetCureCritical () { SetBit (DFND_CURECRITICAL); }
void ClrCureCritical () { ClrBit (DFND_CURECRITICAL); }
BOOL CanDispelMagic () { return IsSet (DFND_DISPELMAGIC); }
void SetDispelMagic () { SetBit (DFND_DISPELMAGIC); }
void ClrDispelMagic () { ClrBit (DFND_DISPELMAGIC); }
BOOL CanDispelEvil () { return IsSet (DFND_DISPELEVIL); }
void SetDispelEvil () { SetBit (DFND_DISPELEVIL); }
void ClrDispelEvil () { ClrBit (DFND_DISPELEVIL); }
BOOL CanUseSanctuary () { return IsSet (DFND_SANCTUARY); }
void SetSanctuary () { SetBit (DFND_SANCTUARY); }
void ClrSanctuary () { ClrBit (DFND_SANCTUARY); }
BOOL CanFireShield () { return IsSet (DFND_FIRESHIELD); }
void SetFireShield () { SetBit (DFND_FIRESHIELD); }
void ClrFireShield () { ClrBit (DFND_FIRESHIELD); }
BOOL CanShockShield () { return IsSet (DFND_SHOCKSHIELD); }
void SetShockShield () { SetBit (DFND_SHOCKSHIELD); }
void ClrShockShield () { ClrBit (DFND_SHOCKSHIELD); }
BOOL CanShield () { return IsSet (DFND_SHIELD); }
void SetShield () { SetBit (DFND_SHIELD); }
void ClrShield () { ClrBit (DFND_SHIELD); }
BOOL CanBless () { return IsSet (DFND_BLESS); }
void SetBless () { SetBit (DFND_BLESS); }
void ClrBless () { ClrBit (DFND_BLESS); }
BOOL CanStoneSkin () { return IsSet (DFND_STONESKIN); }
void SetStoneSkin () { SetBit (DFND_STONESKIN); }
void ClrStoneSkin () { ClrBit (DFND_STONESKIN); }
BOOL CanTeleport () { return IsSet (DFND_TELEPORT); }
void SetTeleport () { SetBit (DFND_TELEPORT); }
void ClrTeleport () { ClrBit (DFND_TELEPORT); }
BOOL CanMonsum1 () { return IsSet (DFND_MONSUM1); }
void SetMonsum1 () { SetBit (DFND_MONSUM1); }
void ClrMonsum1 () { ClrBit (DFND_MONSUM1); }
BOOL CanMonsum2 () { return IsSet (DFND_MONSUM2); }
void SetMonsum2 () { SetBit (DFND_MONSUM2); }
void ClrMonsum2 () { ClrBit (DFND_MONSUM2); }
BOOL CanMonsum3 () { return IsSet (DFND_MONSUM3); }
void SetMonsum3 () { SetBit (DFND_MONSUM3); }
void ClrMonsum3 () { ClrBit (DFND_MONSUM3); }
BOOL CanMonsum4 () { return IsSet (DFND_MONSUM4); }
void SetMonsum4 () { SetBit (DFND_MONSUM4); }
void ClrMonsum4 () { ClrBit (DFND_MONSUM4); }
BOOL CanDisarm () { return IsSet (DFND_DISARM); }
void SetDisarm () { SetBit (DFND_DISARM); }
void ClrDisarm () { ClrBit (DFND_DISARM); }
BOOL CanIceShield () { return IsSet (DFND_ICESHIELD); }
void SetIceShield () { SetBit (DFND_ICESHIELD); }
void ClrIceShield () { ClrBit (DFND_ICESHIELD); }
BOOL CanGrip () { return IsSet (DFND_GRIP); }
void SetGrip () { SetBit (DFND_GRIP); }
void ClrGrip () { ClrBit (DFND_GRIP); }
BOOL CanTrueSight () { return IsSet (DFND_TRUESIGHT); }
void SetTrueSight () { SetBit (DFND_TRUESIGHT); }
void ClrTrueSight () { ClrBit (DFND_TRUESIGHT); }
};
#endif