/****************************************************************************
* [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. *
* ------------------------------------------------------------------------ *
* Act Flags Interface file *
***************************************************************************/
#ifndef ACTFLAGS_H
#define ACTFLAGS_H
#ifndef BITVECTOR_H
#include "BitVector.h"
#endif
// ACT bits for players.
enum PlayerActs {
PLR_IS_NPC,PLR_BOUGHT_PET, PLR_SHOVEDRAG, PLR_AUTOEXIT, PLR_AUTOLOOT,
PLR_AUTOSAC, PLR_BLANK, PLR_OUTCAST, PLR_BRIEF, PLR_COMBINE, PLR_PROMPT,
PLR_TELNET_GA, PLR_HOLYLIGHT, PLR_WIZINVIS, PLR_ROOMVNUM, PLR_SILENCE,
PLR_NO_EMOTE, PLR_ATTACKER, PLR_NO_TELL, PLR_LOG, PLR_DENY, PLR_FREEZE,
PLR_THIEF, PLR_KILLER, PLR_LITTERBUG, PLR_ANSI, PLR_RIP, PLR_NICE,
PLR_FLEE, PLR_AUTOGOLD, PLR_AUTOMAP, PLR_AFK, PLR_INVISPROMPT,
PLR_MAX };
#ifdef SMAUGSERVER_CPP
const char* PlrActNames [PLR_MAX] = {
"npc", "boughtpet", "shovedrag", "autoexits", "autoloot", "autosac",
"blank", "outcast", "brief", "combine", "prompt", "telnet_ga",
"holylight", "wizinvis", "roomvnum","silence", "noemote", "attacker",
"notell", "log", "deny", "freeze", "thief","killer", "litterbug",
"ansi", "rip", "nice", "flee" ,"autogold", "automap", "afk",
"invisprompt"
};
#endif
extern const char* PlrActNames [PLR_MAX];
// ACT bits for mobs.
enum MobActs {
ACT_IS_NPC, // Auto set for mobs
ACT_SENTINEL, // Stays in one room
ACT_SCAVENGER, // Picks up objects
ACT_R3,
ACT_R4,
ACT_AGGRESSIVE, // Attacks PC's
ACT_STAY_AREA, // Won't leave area
ACT_WIMPY, // Flees when hurt
ACT_PET, // Auto set for pets
ACT_TRAIN, // Can train PC's
ACT_PRACTICE, // Can practice PC's
ACT_IMMORTAL, // Cannot be killed
ACT_DEADLY, // Has a deadly poison
ACT_POLYSELF,
ACT_META_AGGR, // Extremely aggressive
ACT_GUARDIAN, // Protects master
ACT_RUNNING, // Hunts quickly
ACT_NOWANDER, // Doesn't wander
ACT_MOUNTABLE, // Can be mounted
ACT_MOUNTED, // Is mounted
ACT_SCHOLAR, // Can teach languages
ACT_SECRETIVE, // actions aren't seen
ACT_POLYMORPHED, // Mob is a ch
ACT_MOBINVIS, // Like wizinvis
ACT_NOASSIST, // Doesn't assist mobs
ACT_AUTONOMOUS, // Doesn't auto switch tanks
ACT_PACIFIST, // Doesn't ever fight
ACT_NOATTACK, // No physical attacks
ACT_ANNOYING, // Other mobs will attack
ACT_R29,
ACT_PROTOTYPE, // A prototype mob
ACT_MAX };
#ifdef SMAUGSERVER_CPP
const char* MobActNames [ACT_MAX] = {
"npc", "sentinel", "scavenger", "r3", "r4", "aggressive", "stayarea",
"wimpy", "pet", "train", "practice", "immortal", "deadly", "polyself",
"meta_aggr", "guardian", "running", "nowander", "mountable", "mounted",
"scholar", "secretive", "polymorphed", "mobinvis", "noassist",
"autonomous", "pacifist", "noattack", "annoying", "r29", "prototype"
};
#endif
extern const char* MobActNames [ACT_MAX];
class CActFlags : public CBitVector {
public:
CActFlags GetActFlags () { return *this; }
void SetActFlags (const CActFlags& f) { *this = f; }
CString PrintString (BOOL bNpc)
{ return CBitVector::PrintString (
bNpc ? MobActNames : PlrActNames,
bNpc ? DIM (MobActNames) : DIM (PlrActNames)); }
BOOL IsNpc () { return IsSet (ACT_IS_NPC); }
void SetNpc () { SetBit (ACT_IS_NPC); }
void ClrNpc () { ClrBit (ACT_IS_NPC); }
BOOL IsAggressive () { return IsSet (ACT_AGGRESSIVE); }
void SetAggressive () { SetBit (ACT_AGGRESSIVE); }
void ClrAggressive () { ClrBit (ACT_AGGRESSIVE); }
BOOL IsWimpy () { return IsSet (ACT_WIMPY); }
void SetWimpy () { SetBit (ACT_WIMPY); }
void ClrWimpy () { ClrBit (ACT_WIMPY); }
BOOL IsSilent () { return IsSet (PLR_SILENCE); }
void SetSilent () { SetBit (PLR_SILENCE); }
void ClrSilent () { ClrBit (PLR_SILENCE); }
BOOL IsDenied () { return IsSet (PLR_DENY); }
void SetDeny () { SetBit (PLR_DENY); }
void ClrDeny () { ClrBit (PLR_DENY); }
BOOL IsNice () { return IsSet (PLR_NICE); }
void SetNice () { SetBit (PLR_NICE); }
void ClrNice () { ClrBit (PLR_NICE); }
BOOL IsAttacker () { return IsSet (PLR_ATTACKER); }
void SetAttacker () { SetBit (PLR_ATTACKER); }
void ClrAttacker () { ClrBit (PLR_ATTACKER); }
BOOL IsKiller () { return IsSet (PLR_KILLER); }
void SetKiller () { SetBit (PLR_KILLER); }
void ClrKiller () { ClrBit (PLR_KILLER); }
BOOL IsThief () { return IsSet (PLR_THIEF); }
void SetThief () { SetBit (PLR_THIEF); }
void ClrThief () { ClrBit (PLR_THIEF); }
BOOL IsLitterBug () { return IsSet (PLR_LITTERBUG); }
void SetLitterBug () { SetBit (PLR_LITTERBUG); }
void ClrLitterBug () { ClrBit (PLR_LITTERBUG); }
BOOL IsFrozen () { return IsSet (PLR_FREEZE); }
void SetFrozen () { SetBit (PLR_FREEZE); }
void ClrFrozen () { ClrBit (PLR_FREEZE); }
BOOL IsLogged () { return IsSet (PLR_LOG); }
void SetLogged () { SetBit (PLR_LOG); }
void ClrLogged () { ClrBit (PLR_LOG); }
BOOL IsNoEmote () { return IsSet (PLR_NO_EMOTE); }
void SetNoEmote () { SetBit (PLR_NO_EMOTE); }
void ClrNoEmote () { ClrBit (PLR_NO_EMOTE); }
BOOL IsNoTell () { return IsSet (PLR_NO_TELL); }
void SetNoTell () { SetBit (PLR_NO_TELL); }
void ClrNoTell () { ClrBit (PLR_NO_TELL); }
BOOL IsWizInvis () { return IsSet (PLR_WIZINVIS); }
void SetWizInvis () { SetBit (PLR_WIZINVIS); }
void ClrWizInvis () { ClrBit (PLR_WIZINVIS); }
BOOL IsMobInvis () { return IsSet (ACT_MOBINVIS); }
void SetMobInvis () { SetBit (ACT_MOBINVIS); }
void ClrMobInvis () { ClrBit (ACT_MOBINVIS); }
BOOL IsSecretive () { return IsSet (ACT_SECRETIVE); }
void SetSecretive () { SetBit (ACT_SECRETIVE); }
void ClrSecretive () { ClrBit (ACT_SECRETIVE); }
BOOL IsHolyLight () { return IsSet (PLR_HOLYLIGHT); }
void SetHolyLight () { SetBit (PLR_HOLYLIGHT); }
void ClrHolyLight () { ClrBit (PLR_HOLYLIGHT); }
BOOL IsCombined () { return IsSet (PLR_COMBINE); }
void SetCombine () { SetBit (PLR_COMBINE); }
void ClrCombine () { ClrBit (PLR_COMBINE); }
BOOL IsBrief () { return IsSet (PLR_BRIEF); }
void SetBrief () { SetBit (PLR_BRIEF); }
void ClrBrief () { ClrBit (PLR_BRIEF); }
BOOL IsBlank () { return IsSet (PLR_BLANK); }
void SetBlank () { SetBit (PLR_BLANK); }
void ClrBlank () { ClrBit (PLR_BLANK); }
BOOL HasPrompt () { return IsSet (PLR_PROMPT); }
void SetHasPrompt () { SetBit (PLR_PROMPT); }
void ClrHasPrompt () { ClrBit (PLR_PROMPT); }
BOOL IsTelenet () { return IsSet (PLR_TELNET_GA); }
void SetTelenet () { SetBit (PLR_TELNET_GA); }
void ClrTelenet () { ClrBit (PLR_TELNET_GA); }
BOOL IsRip () { return IsSet (PLR_RIP); }
void SetRip () { SetBit (PLR_RIP); }
void ClrRip () { ClrBit (PLR_RIP); }
BOOL IsPacifist () { return IsSet (ACT_PACIFIST); }
void SetPacifist () { SetBit (ACT_PACIFIST); }
void ClrPacifist () { ClrBit (ACT_PACIFIST); }
BOOL IsAutoExit () { return IsSet (PLR_AUTOEXIT); }
void SetAutoExit () { SetBit (PLR_AUTOEXIT); }
void ClrAutoExit () { ClrBit (PLR_AUTOEXIT); }
BOOL IsAutoLoot () { return IsSet (PLR_AUTOLOOT); }
void SetAutoLoot () { SetBit (PLR_AUTOLOOT); }
void ClrAutoLoot () { ClrBit (PLR_AUTOLOOT); }
BOOL IsAutoSac () { return IsSet (PLR_AUTOSAC); }
void SetAutoSac () { SetBit (PLR_AUTOSAC); }
void ClrAutoSac () { ClrBit (PLR_AUTOSAC); }
BOOL CanPractice () { return IsSet (ACT_PRACTICE); }
void SetPractice () { SetBit (ACT_PRACTICE); }
void ClrPractice () { ClrBit (ACT_PRACTICE); }
BOOL BoughtPet () { return IsSet (PLR_BOUGHT_PET); }
void SetBoughtPet () { SetBit (PLR_BOUGHT_PET); }
void ClrBoughtPet () { ClrBit (PLR_BOUGHT_PET); }
BOOL IsPet () { return IsSet (ACT_PET); }
void SetPet () { SetBit (ACT_PET); }
void ClrPet () { ClrBit (ACT_PET); }
BOOL IsAnsi () { return IsSet (PLR_ANSI); }
void SetAnsi () { SetBit (PLR_ANSI); }
void ClrAnsi () { ClrBit (PLR_ANSI); }
BOOL IsVnums () { return IsSet (PLR_ROOMVNUM); }
void SetVnums () { SetBit (PLR_ROOMVNUM); }
void ClrVnums () { ClrBit (PLR_ROOMVNUM); }
BOOL IsPolymorphed () { return IsSet (ACT_POLYMORPHED); }
void SetPolymorphed () { SetBit (ACT_POLYMORPHED); }
void ClrPolymorphed () { ClrBit (ACT_POLYMORPHED); }
BOOL IsNoAssist () { return IsSet (ACT_NOASSIST); }
void SetNoAssist () { SetBit (ACT_NOASSIST); }
void ClrNoAssist () { ClrBit (ACT_NOASSIST); }
BOOL IsAfk () { return IsSet (PLR_AFK); }
void SetAfk () { SetBit (PLR_AFK); }
void ClrAfk () { ClrBit (PLR_AFK); }
BOOL IsPrototype () { return IsSet (ACT_PROTOTYPE); }
void SetPrototype () { SetBit (ACT_PROTOTYPE); }
void ClrPrototype () { ClrBit (ACT_PROTOTYPE); }
BOOL IsAutonomous () { return IsSet (ACT_AUTONOMOUS); }
void SetAutonomous () { SetBit (ACT_AUTONOMOUS); }
void ClrAutonomous () { ClrBit (ACT_AUTONOMOUS); }
};
#endif