/************************************************************************ Realms of Aurealis James Rhone aka Vall of RoA defines.h Central header file for defines for the entire mud... ******** Heavily modified and expanded ******** *** BE AWARE OF ALL RIGHTS AND RESERVATIONS *** ******** Heavily modified and expanded ******** All rights reserved henceforth. Please note that no guarantees are associated with any code from Realms of Aurealis. All code which has been released to the general public has been done so with an 'as is' pretense. RoA is based on both Diku and CircleMUD and ALL licenses from both *MUST* be adhered to as well as the RoA license. *** Read, Learn, Understand, Improve *** *************************************************************************/ #ifndef ROA_DEFINES_H #define ROA_DEFINES_H #define GARBAGE_SPACE 32 #define OPT_USEC 100000 #define PASSES_PER_SEC (1000000 / OPT_USEC) #define RL_SEC * PASSES_PER_SEC #define PULSE_ZONE (10 RL_SEC) #define PULSE_PASSWORD (10 RL_SEC) #define PULSE_VIOLENCE (2 RL_SEC) #define PULSE_MAGIC (20 RL_SEC) // note: dtime mobs go every 5 sec, normal mobs go every 10 #define PULSE_MOBILE (5 RL_SEC) // note: dtime rooms go every 5 sec, normal rooms go every 10 #define PULSE_ROOM (5 RL_SEC) /* RoAOLC padding numbers */ #define OBJ_PADDING 200 #define MOB_PADDING 200 #define WLD_PADDING 200 // for zone comlist loading and saving 4/26/98 -jtrhone #define MAX_COMLIST_LENGTH 40000 #define MAX_CMD_LIST 550 #define MAX_PLAYERS 100 #define MAX_RENT_S 50 #define MAX_LEVELS 76 #define NUM_OF_DIRS 10 #define NUM_CLASSES 11 #define NUM_RACES 10 #define NUM_ZONES 300 #define NUM_QUESTS 50 /* str, con, dex, etc... 0 - 30 true */ #define NUM_STAT_POINTS 31 /* special zone defs */ #define LIMBO_ZONE 0 #define HOUSE_ZONE 2 #define HBUILD_ZONE1 3 #define HBUILD_ZONE2 4 #define IMMORTAL_ZONE 12 #define SYS_ZONE1 1 #define SYS_ZONE2 2 #define SYS_ZONE3 3 #define SYS_ZONE4 4 #define HBUILD_COST 200000 #define MAX_SOCIALS 500 #define MAX_HELPFILES 700 #define MAX_WIZHELPFILES 150 #define MAX_WARLOCKSPELLS 300 #define LEV_IMPL 75 #define LEV_CIMP (LEV_IMPL - 1) #define LEV_AIMP (LEV_IMPL - 2) #define LEV_GOD (LEV_IMPL - 3) #define LEV_IMM (LEV_IMPL - 4) #define LEV_LORD (LEV_IMPL - 5) /* not immortal :P */ #define LEV_FREEZE LEV_AIMP #define SMALL_BUFSIZE 512 #define LARGE_BUFSIZE 16384 #define MAX_STRING_LENGTH 8192 #define MAX_INPUT_LENGTH 255 #define MAX_POOFIN_LENGTH 80 #define MAX_CLAN_LENGTH 50 #define MAX_MESSAGES 60 #define MAX_PWD_LENGTH 10 /* Used in char_file_u *DO*NOT*CHANGE* */ #define HOST_LEN 30 /* Used in char_file_u *DO*NOT*CHANGE* */ #define EXDESC_LENGTH 512 // NEW player description length #define TITLE_LENGTH 80 // player title length #define NAME_LENGTH 20 // player name length in char file U #define GOSSIP_PAGE_LENGTH 20 /* used for RoA WWW gossip page */ #define SECS_PER_REAL_MIN 60 #define SECS_PER_REAL_HOUR (60*SECS_PER_REAL_MIN) #define SECS_PER_REAL_DAY (24*SECS_PER_REAL_HOUR) #define SECS_PER_REAL_YEAR (365*SECS_PER_REAL_DAY) #define SECS_PER_MUD_HOUR 75 #define SECS_PER_MUD_DAY (24*SECS_PER_MUD_HOUR) #define SECS_PER_MUD_MONTH (35*SECS_PER_MUD_DAY) #define SECS_PER_MUD_YEAR (17*SECS_PER_MUD_MONTH) /* The following defs are for obj_data */ /* For 'type_flag' */ #define ITEM_LIGHT 1 #define ITEM_SCROLL 2 #define ITEM_WAND 3 #define ITEM_STAFF 4 #define ITEM_WEAPON 5 #define ITEM_RANGED 6 #define ITEM_OINTMENT 7 #define ITEM_TREASURE 8 #define ITEM_ARMOR 9 #define ITEM_POTION 10 #define ITEM_BOARD 11 #define ITEM_OTHER 12 #define ITEM_TRASH 13 #define ITEM_TRAP 14 #define ITEM_CONTAINER 15 #define ITEM_NOTE 16 #define ITEM_DRINKCON 17 #define ITEM_KEY 18 #define ITEM_FOOD 19 #define ITEM_MONEY 20 #define ITEM_PEN 21 #define ITEM_BOAT 22 #define ITEM_FOUNTAIN 23 #define ITEM_PORTAL 24 #define ITEM_GATE 25 #define ITEM_GEM 26 #define ITEM_TOME 27 /* for item composition materials RoA JTRhone */ #define OBJ_UNDEFINED 0 #define OBJ_PAPER 1 #define OBJ_CLOTHING 2 #define OBJ_GLASS 3 #define OBJ_POTTERY 4 #define OBJ_WOOD 5 #define OBJ_CRYSTAL 6 #define OBJ_LEATHER 7 #define OBJ_GOLD 8 #define OBJ_BRASS 9 #define OBJ_BRONZE 10 #define OBJ_SILVER 11 #define OBJ_PLATINUM 12 #define OBJ_IRON 13 #define OBJ_STEEL 14 #define OBJ_MITHRIL 15 #define OBJ_ADAMANTINE 16 #define OBJ_FORCE 17 #define OBJ_SHELL 18 #define OBJ_ROPE 19 #define OBJ_BONE 20 #define OBJ_STONE 21 #define OBJ_GEMSTONE 22 #define OBJ_DIAMOND 23 #define OBJ_FOOD 24 #define OBJ_COPPER 25 #define OBJ_ORGANIC 26 /* Bitvector For 'wear_flags' */ // updated for new eq slot design 5/28/98 -jtrhone #define ITEM_TAKE (1 << 0) #define ITEM_WEAR_FINGER (1 << 1) #define ITEM_WEAR_NECK (1 << 2) #define ITEM_WEAR_BODY (1 << 3) #define ITEM_WEAR_HEAD (1 << 4) #define ITEM_WEAR_LEGS (1 << 5) #define ITEM_WEAR_FEET (1 << 6) #define ITEM_WEAR_HANDS (1 << 7) #define ITEM_WEAR_ARMS (1 << 8) #define ITEM_WEAR_FACE (1 << 9) #define ITEM_WEAR_ABOUT (1 << 10) #define ITEM_WEAR_WAIST (1 << 11) #define ITEM_WEAR_WRIST (1 << 12) #define ITEM_WIELD (1 << 13) #define ITEM_HOLD (1 << 14) #define ITEM_WEAR_EARS (1 << 15) /* Bitvector for 'object->extras' */ #define ITEM_GLOW (1 << 0) #define ITEM_UNUSED2 (1 << 1) #define ITEM_NOLOCATE (1 << 2) #define ITEM_UNUSED3 (1 << 3) #define ITEM_EVIL (1 << 4) #define ITEM_INVISIBLE (1 << 5) #define ITEM_MAGIC (1 << 6) #define ITEM_NODROP (1 << 7) #define ITEM_BLESS (1 << 8) #define ITEM_ANTI_GOOD (1 << 9) /* not usable by good people */ #define ITEM_ANTI_EVIL (1 << 10) /* not usable by evil people */ #define ITEM_ANTI_NEUTRAL (1 << 11) /* not usable by neutral people */ #define ITEM_NORENT (1 << 12) /* not allowed to rent the item */ #define ITEM_NODONATE (1 << 13) /* not allowed to donate the item */ #define ITEM_NOINVIS (1 << 14) /* not allowed to cast invis on */ #define ITEM_SPELLEQ (1 << 15) /* Spell equipment, what else? */ #define ITEM_RECHARGE (1 << 16) /* is this rechargeable? */ #define ITEM_ANTI_MAGE (1 << 17) /* Item not usable by clerics */ #define ITEM_ANTI_CLERIC (1 << 18) /* Item not usable by mages */ #define ITEM_ANTI_WARRIOR (1 << 19) /* Item not usable by thieves */ #define ITEM_ANTI_THIEF (1 << 20) /* Item not usable by warriors */ #define ITEM_ANTI_BARD (1 << 21) /* Item not usable by bards */ #define ITEM_THIEF_HOLD (1 << 22) /* a thief can use as dual weapon */ #define ITEM_ANTI_SHAMAN (1 << 23) /* Item not usable by shaman */ #define ITEM_BOUYANT (1 << 24) /* does it float? on water*/ #define ITEM_WATERPROOF (1 << 25) /* does it float? on water*/ #define ITEM_ANTI_RANGER (1 << 26) /* rangers cant use it */ #define ITEM_INSTRUM (1 << 27) /* bard instrument? */ #define ITEM_ANCHORED (1 << 28) /* floats but doesnt move */ #define ITEM_ANTI_WARLOCK (1 << 29) /* no warlocks */ #define ITEM_ANTI_MONK (1 << 30) /* no monshai */ /* Bitvector for 'object->extras2' or OBJ_EXTRAS2(obj) RoA */ #define ITEM_ANTI_HUMAN (1 << 0) #define ITEM_ANTI_ELF (1 << 1) #define ITEM_ANTI_HALF_ELF (1 << 2) #define ITEM_ANTI_ORC (1 << 3) #define ITEM_ANTI_OGRE (1 << 4) #define ITEM_ANTI_DROW (1 << 5) #define ITEM_ANTI_DWARF (1 << 6) #define ITEM_ANTI_PIXIE (1 << 7) #define ITEM_ANTI_NIXIE (1 << 8) #define ITEM_ANTI_DRAGON (1 << 9) #define ITEM_BANK (1 << 10) #define ITEM_NOAUCTION (1 << 11) #define ITEM_THROWABLE (1 << 12) #define ITEM_ANTI_MADEPT (1 << 13) #define ITEM_ANTI_DRUID (1 << 14) #define ITEM_ANTI_ASSASSIN (1 << 15) #define ITEM_ASSASSIN_ONLY (1 << 16) #define ITEM_REMORT_ONLY (1 << 17) /* Some different kind of liquids */ #define LIQ_WATER 0 #define LIQ_BEER 1 #define LIQ_WINE 2 #define LIQ_ALE 3 #define LIQ_DARKALE 4 #define LIQ_WHISKY 5 #define LIQ_LEMONADE 6 #define LIQ_FIREBRT 7 #define LIQ_LOCALSPC 8 #define LIQ_SLIME 9 #define LIQ_MILK 10 #define LIQ_TEA 11 #define LIQ_COFFE 12 #define LIQ_BLOOD 13 #define LIQ_SALTWATER 14 #define LIQ_CLEARWATER 15 #define LIQ_POISON 16 /* for containers - value[1] */ #define CONT_CLOSEABLE (1 << 0) #define CONT_PICKPROOF (1 << 1) #define CONT_CLOSED (1 << 2) #define CONT_LOCKED (1 << 3) #define CONT_TRAP_POISONED (1 << 4) #define CONT_TRAP_EXPLOSION (1 << 5) #define MAX_OBJ_AFFECT 2 #define NOWHERE -1 /* nil reference for room-database */ /* Bitvector For 'room_flags' */ #define DARK (1 << 0) #define DEATH (1 << 1) #define NO_MOB (1 << 2) #define NO_WEATHER (1 << 3) #define GOOD (1 << 4) #define NEUTRAL (1 << 5) #define EVIL (1 << 6) #define NO_MAGIC (1 << 7) #define RPROC (1 << 8) #define PRIVATE (1 << 9) #define GODROOM (1 << 10) #define BFS_MARK (1 << 11) #define FLY_DEATH (1 << 12) #define PEACEFUL (1 << 13) #define NO_RECALL (1 << 14) #define FLIGHT (1 << 15) #define UWATER (1 << 16) #define ALTERMANA (1 << 17) #define NO_MAGE (1 << 18) #define NO_BARD (1 << 19) #define NO_RANGER (1 << 20) #define NO_WARRIOR (1 << 21) #define NO_CLERIC (1 << 22) #define NO_SHAMAN (1 << 23) #define NO_THIEF (1 << 24) #define WINDY (1 << 25) #define NO_TELEPORT (1 << 26) #define RANDOM (1 << 27) #define PORTAL (1 << 28) #define ALTERHIT (1 << 29) #define ALTERMOVE (1 << 30) /* room_flags filled */ /* room_flags2 RoA */ #define NO_HUMAN (1 << 0) #define NO_ELF (1 << 1) #define NO_HALF_ELF (1 << 2) #define NO_ORC (1 << 3) #define NO_OGRE (1 << 4) #define NO_DROW (1 << 5) #define NO_DWARF (1 << 6) #define NO_PIXIE (1 << 7) #define NO_NIXIE (1 << 8) #define NO_DRAGON (1 << 9) #define HOUSE (1 << 10) #define HOUSE_CRASH (1 << 11) #define ROOM_CRASH (1 << 12) #define DONATION (1 << 13) #define SOUNDPROOF (1 << 14) #define TRANSPORT (1 << 15) #define DUMP (1 << 16) #define NO_WARLOCK (1 << 17) #define NO_MONK (1 << 18) #define NO_TRACK (1 << 19) #define CONFUSION (1 << 20) #define SOURCE_ROOM (1 << 21) #define NOGEN_ROOM (1 << 22) #define SAVE_ROOM (1 << 23) #define R_NO_SUMMON (1 << 24) #define NO_MADEPT (1 << 25) #define NO_DRUID (1 << 26) #define WALLOFFOG (1 << 27) #define NOSNARE (1 << 28) #define HTOWN_PORTAL (1 << 29) #define RPROC_DTIME (1 << 30) #define BFS_ERROR -1 #define BFS_ALREADY_THERE -2 #define BFS_NO_PATH -3 #define EX_ISDOOR (1 << 0) #define EX_CLOSED (1 << 1) #define EX_LOCKED (1 << 2) #define EX_SECRET (1 << 3) #define EX_JAMMED (1 << 4) #define EX_PICKPROOF (1 << 5) #define EX_AUTOSHUT (1 << 6) #define EX_NOGEN (1 << 7) #define EX_AUTOLOCK (1 << 8) #define EX_NOBASH (1 << 9) #define EX_NOKNOCK (1 << 10) #define EX_NOTRAP (1 << 11) #define EX_NOJAM (1 << 12) #define EX_NOOBSCURE (1 << 13) /* NEW terrain types ROA (old sector types) */ #define TERRAIN_INSIDE 0 #define TERRAIN_CITY 1 #define TERRAIN_FIELD 2 #define TERRAIN_FOREST 3 #define TERRAIN_HILLS 4 #define TERRAIN_MOUNTAIN 5 #define TERRAIN_WATER_SWIM 6 #define TERRAIN_WATER_NOSWIM 7 #define TERRAIN_UWATER 8 #define TERRAIN_AIR 9 /* ======================================================================= */ /* The following defs are for zone_flags RoA*/ #define Z_ARENA (1 << 0) #define Z_TEST (1 << 1) #define Z_IMMORT (1 << 2) #define Z_ON_Q (1 << 3) #define Z_CLOSED (1 << 4) #define Z_LOCKED (1 << 5) #define Z_IDLE (1 << 6) #define Z_SYSTEM (1 << 7) #define Z_HIDDEN (1 << 8) #define Z_FREED (1 << 9) /* VERY IMPORTANT ONE HERE */ #define Z_TSTORM (1 << 10) // weather related, zone specific #define Z_BLIZZARD (1 << 11) // weather related, zone specific #define Z_EXITGENALL (1 << 12) // auto generated exits, all #define Z_EXITGENLAT (1 << 13) // auto generated exits, lateral only #define Z_DESCGEN (1 << 14) // auto generated descriptions /* ======================================================================== */ /* For 'equipment' */ // updated 5/8/28 for eq slot revamp -jtrhone #define W_HEAD 0 #define W_FACE 1 #define W_EAR_R 2 #define W_EAR_L 3 #define W_NECK_1 4 #define W_NECK_2 5 #define W_BODY 6 #define W_WAIST 7 #define W_ABOUT 8 #define W_ARMS 9 #define W_WRIST_R 10 #define W_WRIST_L 11 #define W_HANDS 12 #define W_FINGER_R1 13 #define W_FINGER_R2 14 #define W_FINGER_L1 15 #define W_FINGER_L2 16 #define W_LEGS 17 #define W_FEET 18 #define W_WIELD 19 #define W_HOLD 20 // ---------------------------- #define MAX_WEAR 21 // for wherevector on players and objects, what slots are used // or would be if they wear an object, 5/28/98 -jtrhone #define WV_HEAD (1 << 0) #define WV_FACE (1 << 1) #define WV_EAR_R (1 << 2) #define WV_EAR_L (1 << 3) #define WV_NECK_1 (1 << 4) #define WV_NECK_2 (1 << 5) #define WV_BODY (1 << 6) #define WV_WAIST (1 << 7) #define WV_ABOUT (1 << 8) #define WV_ARMS (1 << 9) #define WV_WRIST_R (1 << 10) #define WV_WRIST_L (1 << 11) #define WV_HANDS (1 << 12) #define WV_FINGER_R1 (1 << 13) #define WV_FINGER_R2 (1 << 14) #define WV_FINGER_L1 (1 << 15) #define WV_FINGER_L2 (1 << 16) #define WV_LEGS (1 << 17) #define WV_FEET (1 << 18) #define WV_WIELD (1 << 19) #define WV_HOLD (1 << 20) // updated, 6/20/98 -jtrhone, (no need to convert pfile if update now) #define MAX_SKILLS 300 #define MAX_SPELLS MAX_SKILLS #define MAX_GSKILLS 10 #define MAX_AFFECT 32 /* Used in CHAR_FILE_U *DO*NOT*CHANGE* */ /* Predifined conditions */ #define DRUNK 0 #define FULL 1 #define THIRST 2 /* Bitvector for 'affected_by' */ #define AFF_BLIND (1 << 0) #define AFF_INVISIBLE (1 << 1) #define AFF_DETECT_EVIL (1 << 2) #define AFF_DETECT_INVISIBLE (1 << 3) #define AFF_DETECT_MAGIC (1 << 4) #define AFF_SENSE_LIFE (1 << 5) #define AFF_HOLD (1 << 6) #define AFF_SANCTUARY (1 << 7) #define AFF_GROUP (1 << 8) #define AFF_CURSE (1 << 9) #define AFF_HIT_REGEN (1 << 10) #define AFF_POISON (1 << 11) #define AFF_PROTECT_EVIL (1 << 12) #define AFF_MANA_REGEN (1 << 13) #define AFF_PARRY (1 << 14) #define AFF_MOVE_REGEN (1 << 15) #define AFF_SLEEP (1 << 16) #define AFF_DODGE (1 << 17) #define AFF_SNEAK (1 << 18) #define AFF_HIDE (1 << 19) #define AFF_FEAR (1 << 20) #define AFF_CHARM (1 << 21) #define AFF_FOLLOW (1 << 22) #define AFF_WIMPY (1 << 23) #define AFF_INFRARED (1 << 24) #define AFF_HASTE (1 << 25) #define AFF_GILLS (1 << 26) #define AFF_WINGS (1 << 27) #define AFF_DETECT_ALIGN (1 << 28) #define AFF_TRUCE (1 << 29) #define AFF_PROTECT_GOOD (1 << 30) /* more affections go in AFF2_XXX (affected2_bits) on PCs */ /* RoA */ #define AFF2_CLAWS (1 << 0) #define AFF2_CROW (1 << 1) #define AFF2_WOLF (1 << 2) #define AFF2_LIGHT (1 << 3) #define AFF2_STONE_SKIN (1 << 4) #define AFF2_CALM (1 << 5) #define AFF2_ILLUMINATE (1 << 6) #define AFF2_SWITCH (1 << 7) #define AFF2_PRESENCE (1 << 8) // for charvector on characters #define CH_STUNTOUCHED (1 << 0) #define CH_REDIRECTED (1 << 1) #define CH_HIT_DT (1 << 2) #define CH_MOUNTED (1 << 3) #define CH_SHOP_OPEN (1 << 4) #define CH_SUMMONED (1 << 5) // this mob created by char? #define CH_TEMP (1 << 6) // used for temp BOOLs -roa #define CH_BECAME (1 << 7) // they become someone else? #define CH_SUBDUED (1 << 8) #define CH_GRP (1 << 9) #define CH_CHAT (1 << 10) // in chat mode? #define CH_BELLOW (1 << 11) // has bellowed today ? #define CH_EAVESDROPPING (1 << 12) // is currently eavesdroppin ? #define CH_LOWSTRIKE (1 << 13) #define CH_BLADEDANCE (1 << 14) #define CH_ONEATTACK (1 << 15) #define CH_SIDESTEP (1 << 16) #define CH_DISEMBOWEL (1 << 17) #define CH_HAMSTRUNG (1 << 18) #define CH_LOSEATTACK (1 << 19) #define CH_RECORD (1 << 20) #define CH_PLAYBACK (1 << 21) /* modifiers to char's aff_abils */ #define APPLY_NONE 0 #define APPLY_STR 1 #define APPLY_DEX 2 #define APPLY_INT 3 #define APPLY_WIS 4 #define APPLY_CON 5 #define APPLY_SEX 6 #define APPLY_CLASS 7 #define APPLY_LEVEL 8 #define APPLY_AGE 9 #define APPLY_CHAR_WEIGHT 10 #define APPLY_CHAR_HEIGHT 11 #define APPLY_MANA 12 #define APPLY_HIT 13 #define APPLY_MOVE 14 #define APPLY_GOLD 15 #define APPLY_EXP 16 #define APPLY_AC 17 #define APPLY_ARMOR 17 #define APPLY_HITROLL 18 #define APPLY_DAMROLL 19 #define APPLY_SV_HEAT 20 #define APPLY_SV_COLD 21 #define APPLY_SV_MAGIC 22 #define APPLY_SV_POISON 23 #define APPLY_SV_BREATH 24 #define APPLY_HIT_REGEN 25 #define APPLY_MANA_REGEN 26 #define APPLY_MOVE_REGEN 27 #define APPLY_RITUALS 28 /* 'class' for PC's */ #define CLASS_MAGE 1 #define CLASS_CLERIC 2 #define CLASS_THIEF 3 #define CLASS_WARRIOR 4 #define CLASS_SHAMAN 5 #define CLASS_RANGER 6 #define CLASS_BARD 7 #define CLASS_WARLOCK 8 #define CLASS_MONK 9 #define CLASS_MADEPT 10 #define CLASS_DRUID 11 /* races for PC's JRhone */ #define RACE_HUMAN 1 #define RACE_ELF 2 #define RACE_HALF_ELF 3 #define RACE_ORC 4 #define RACE_OGRE 5 #define RACE_DROW 6 #define RACE_DWARF 7 #define RACE_PIXIE 8 #define RACE_NIXIE 9 #define RACE_DRAGON 10 /* 'class' BITVECTOR BITS for NPC's mob_class bitvector */ // changed from a number to a bitvector 11/14/96 -roa // with mob classes, vs mob eq or rooms can be applied #define MOB_HUMAN (1 << 0) #define MOB_ELVEN (1 << 1) #define MOB_HALFELVEN (1 << 2) #define MOB_DROW (1 << 3) #define MOB_ORC (1 << 4) #define MOB_OGRE (1 << 5) #define MOB_DRAKYN (1 << 6) #define MOB_PIXIE (1 << 7) #define MOB_NIXIE (1 << 8) #define MOB_DRAGON (1 << 9) #define MOB_MAMMAL (1 << 10) #define MOB_AVIAN (1 << 11) #define MOB_INSECT (1 << 12) #define MOB_ARACHNID (1 << 13) #define MOB_REPTILE (1 << 14) #define MOB_GOBLINOID (1 << 15) #define MOB_BIPED (1 << 16) #define MOB_QUADRIPED (1 << 17) #define MOB_AQUATIC (1 << 18) #define MOB_CRUSTACEAN (1 << 19) #define MOB_VEGETATION (1 << 20) #define MOB_ETHEREAL (1 << 21) #define MOB_MAGICAL (1 << 22) #define MOB_CRYSTALLINE (1 << 23) #define MOB_FIREBASED (1 << 24) #define MOB_ICEBASED (1 << 25) #define MOB_AIRBASED (1 << 26) #define MOB_EARTHBASED (1 << 27) #define MOB_GIANT (1 << 28) #define MOB_UNDEAD (1 << 29) #define MOB_DWARVEN (1 << 30) /* sizes for players/mobs */ #define SIZE_ENORMOUS 0 #define SIZE_HUGE 1 #define SIZE_LARGE 2 #define SIZE_MEDIUM 3 #define SIZE_SMALL 4 #define SIZE_VSMALL 5 #define SIZE_TINY 6 /* sex */ #define SEX_NEUTRAL 0 #define SEX_MALE 1 #define SEX_FEMALE 2 #define SEX_RANDOM 3 /* chooses between male or female */ /* positions */ #define POS_DEAD 0 #define POS_MORTALLYW 1 #define POS_INCAP 2 #define POS_STUNNED 3 #define POS_SLEEPING 4 #define POS_RESTING 5 #define POS_SITTING 6 #define POS_FIGHTING 7 #define POS_STANDING 8 #define POS_FLOATING 9 #define POS_MOUNTED 10 /* for mobile actions: mob_bits */ #define MOB_SPEC (1 << 0) /* spec-proc to be called if exist */ #define MOB_SENTINEL (1 << 1) /* this mobile not to be moved */ #define MOB_SCAVENGER (1 << 2) /* pick up stuff lying around */ #define MOB_ISNPC (1 << 3) /* This bit is set for use with IS_NPC()*/ #define MOB_NICE_THIEF (1 << 4) /* Set if a thief should NOT be killed */ #define MOB_AGGR (1 << 5) /* Set if automatic attack on NPC's */ #define MOB_STAY_ZONE (1 << 6) /* MOB Must stay inside its own zone */ #define MOB_WIMPY (1 << 7) /* MOB Will flee when injured, and if */ #define MOB_AGGR_EVIL (1 << 8) /* auto attack evil PC's only */ #define MOB_AGGR_GOOD (1 << 9) /* auto attack good PC's only */ #define MOB_AGGR_NEUTRAL (1 << 10) /* auto attack neutral PC's only */ #define MOB_MEMORY (1 << 11) /* remember attackers if struck first*/ #define MOB_HELPER (1 << 12) /* attack chars attacking a PC in room*/ #define MOB_MH0 (1 << 13) /* 1 additional attack */ #define MOB_MH1 (1 << 14) /* 2 additional attacks */ #define MOB_MH2 (1 << 15) /* 4 additional attacks */ #define MOB_QHEAL (1 << 16) /* Quick healing mobs */ #define MOB_SMART (1 << 17) /* Smart mobs... pick up and wear stuff*/ #define MOB_MOUNTABLE (1 << 18) /* is mountable?*/ #define MOB_NOSUMMON (1 << 19) /* cant summon this mob */ #define MOB_SWIMMER (1 << 20) /* this mob can swim */ #define MOB_GILLS (1 << 21) /* can breath uwater */ #define MOB_NO_CHARM (1 << 22) /* cant charm this one */ #define MOB_NO_HOLD (1 << 23) /* cant hold this one */ #define MOB_NO_CALM (1 << 24) /* no calming this one */ #define MOB_NO_CORPSE (1 << 25) /* leaves no corpse when die */ #define MOB_SPLITATTACK (1 << 26) /* divides attacks up per group */ #define MOB_NO_BLIND (1 << 27) /* this mob resists blindness */ #define MOB_NO_GATE (1 << 28) /* this mob won't enter gates */ #define MOB_QUESTOR (1 << 29) /* this mob assigns a quest to player */ #define MOB_PLSHOPKEEP (1 << 30) /* this mob is a player shopkeep mob */ /* for mobile actions: mob2_bits */ #define MOB2_TRAINER (1 << 0) // mob who trades pracs for stats... #define MOB2_ASSASSIN (1 << 1) // mob who can use assassin EQ... #define MOB2_NO_MTARGET (1 << 2) // mob who cannot be targetted by mobprocs... #define DELAY_PURGE 1 #define DELAY_ELUSION 2 #define DELAY_FORTITUDE 3 #define DELAY_SP_STRENGTH 4 #define DELAY_PROTECTION 5 #define DELAY_TRUESIGHT 6 #define DELAY_EAGLE_EYES 7 #define DELAY_STONE 8 #define DELAY_SNAKEFIRE 9 #define DELAY_ENDURANCE 10 #define DELAY_HEAL 11 #define DELAY_CLAWS 12 #define DELAY_TRUCE 13 #define DELAY_LOCATION 14 #define DELAY_FANG 15 #define DELAY_CROW 16 #define DELAY_WOLF 17 /* For players : player_flags */ #define PLR_INTAG (1 << 0) #define PLR_TAGGED (1 << 1) #define PLR_FROZEN (1 << 2) #define PLR_DONTSET (1 << 3) /* Dont EVER set (ISNPC bit) */ #define PLR_WRITING (1 << 4) #define PLR_MAILING (1 << 5) #define PLR_CRASH (1 << 6) #define PLR_SITEOK (1 << 7) #define PLR_MUTE (1 << 8) #define PLR_NOTITLE (1 << 9) #define PLR_DELETED (1 << 10) #define PLR_LOADROOM (1 << 11) #define PLR_NOWIZLIST (1 << 12) #define PLR_NODELETE (1 << 13) #define PLR_INVSTART (1 << 14) #define PLR_CRYO (1 << 15) #define PLR_FORCED (1 << 16) /* force saved, couldve lost objs */ #define PLR_BUILDING (1 << 17) #define PLR_AMBASS (1 << 18) #define PLR_RITUAL (1 << 19) /* is player involved in a ritual ?? */ #define PLR_ARENA (1 << 20) /* in an arena contest */ #define PLR_LINE (1 << 21) #define PLR_TRUSTED (1 << 22) #define PLR_INFOCH (1 << 23) /* tuned into info channel? */ #define PLR_AFK (1 << 24) #define PLR_REFRESH (1 << 25) #define PLR_LEGEND (1 << 26) #define PLR_LOGALL (1 << 27) #define PLR_EXEDIT (1 << 28) #define PLR_NOEMOTE (1 << 29) #define PLR_VTMAP (1 << 30) // for plr2_flags #define PLR2_MAGE (1 << 0) #define PLR2_CLERIC (1 << 1) #define PLR2_THIEF (1 << 2) #define PLR2_WARRIOR (1 << 3) #define PLR2_SHAMAN (1 << 4) #define PLR2_RANGER (1 << 5) #define PLR2_BARD (1 << 6) #define PLR2_WARLOCK (1 << 7) #define PLR2_MONK (1 << 8) #define PLR2_MADEPT (1 << 9) #define PLR2_DRUID (1 << 10) #define PLR2_NONE1 (1 << 11) #define PLR2_NONE2 (1 << 12) #define PLR2_NONE3 (1 << 13) #define PLR2_NONE4 (1 << 14) #define PLR2_NONE5 (1 << 15) #define PLR2_NONE6 (1 << 16) #define PLR2_NONE7 (1 << 17) #define PLR2_NONE8 (1 << 18) #define PLR2_NONE9 (1 << 19) #define PLR2_CLAN_ASS (1 << 20) /* hardy har har -roa :)*/ #define PLR2_IPP (1 << 21) #define PLR2_MENTOR (1 << 22) #define PLR2_CLIEDIT (1 << 23) #define PLR2_CHAT (1 << 24) // imm only, hear chat or not... #define PLR2_CLIENTWHO (1 << 25) #define PLR2_CLIENTCHAN (1 << 26) #define PLR2_CLIENTEQ (1 << 27) #define PLR2_CLIENTINV (1 << 28) #define PLR2_CLIENTMUTE (1 << 29) #define PLR2_CLIENTSTAT (1 << 30) /* for players: preference bits */ #define PRF_BRIEF (1 << 0) #define PRF_COMPACT (1 << 1) #define PRF_DEAF (1 << 2) #define PRF_NOTELL (1 << 3) #define PRF_SHORTX (1 << 4) #define PRF_NOQA (1 << 5) #define PRF_CLAN_CH (1 << 6) #define PRF_ASSA_CH (1 << 7) #define PRF_NOHASSLE (1 << 8) #define PRF_QUEST (1 << 9) // TBR #define PRF_SUMMONABLE (1 << 10) #define PRF_NOREPEAT (1 << 11) #define PRF_HOLYLIGHT (1 << 12) #define PRF_COLOR (1 << 13) #define PRF_AREN_CH (1 << 14) // TBR #define PRF_NOWIZ (1 << 15) #define PRF_LOG1 (1 << 16) #define PRF_LOG2 (1 << 17) #define PRF_NOAUCT (1 << 18) #define PRF_NOOOC (1 << 19) #define PRF_NOGRATZ (1 << 20) // TBR #define PRF_ROOMFLAGS (1 << 21) #define PRF_AUTOX (1 << 22) #define PRF_INCOGNITO (1 << 23) #define PRF_MORTLOG (1 << 24) #define PRF_NOMUSIC (1 << 25) // TBR #define PRF_REQASS (1 << 26) #define PRF_ASSASSIN (1 << 27) #define PRF_AGOLD (1 << 28) #define PRF_ALOOT (1 << 29) #define PRF_ASPLIT (1 << 30) /*NO MORE PRF_s have to make another long of PRF2_*/ /* PRF is FULL JTRhone */ /* for players: preference bits 2 :) PRF2_XXX */ #define PRF2_NOGIVE (1 << 0) #define PRF2_NOARENA (1 << 1) #define PRF2_CHOSEN (1 << 2) // madept has chosen /* mob_proc bits max of 31 (0 - 31) in first one */ /* JTRHONE ROA used in OLCable mobprocs */ #define SPC_HUNTER (1 << 0) #define SPC_MAGIC_USER (1 << 1) #define SPC_WAR_CRY (1 << 2) #define SPC_PEACE_MAN (1 << 3) #define SPC_PPOCKET (1 << 4) #define SPC_WARRIOR (1 << 5) #define SPC_CLERIC (1 << 6) #define SPC_SNAKE (1 << 7) #define SPC_UNDEAD (1 << 8) #define SPC_SHOPKEEP (1 << 9) /* new OLCable shopkeepers RoA */ #define SPC_NOKILL (1 << 10) #define SPC_NOBUY (1 << 11) /* this shopkeeper don't buy */ #define SPC_GMASTER (1 << 12) #define SPC_REACTOR (1 << 13) /* triggers and such RoA */ #define SPC_RANDOM (1 << 14) #define SPC_FIDO (1 << 15) #define SPC_JANITOR (1 << 16) #define SPC_HEALER (1 << 17) #define SPC_FIREBREATH (1 << 18) #define SPC_ACIDBREATH (1 << 19) #define SPC_GASBREATH (1 << 20) #define SPC_LIGHTBREATH (1 << 21) #define SPC_ICEBREATH (1 << 22) #define SPC_FIXER (1 << 23) #define SPC_MAILMAN (1 << 24) #define SPC_MOBPROC (1 << 25) #define SPC_BLEEDER (1 << 26) #define SPC_TELEPORTER (1 << 27) #define SPC_CITYGUARD (1 << 28) #define SPC_DOUBLETIME (1 << 29) #define SPC_QHUNTER (1 << 30) /* Alias stuff */ #define ALIAS_SIMPLE 0 #define ALIAS_COMPLEX 1 #define ALIAS_SEP_CHAR '*' #define ALIAS_VAR_CHAR '&' #define ALIAS_GLOB_CHAR '%' // new modes of connectedness... 7/14/98 #define CON_PLAYING 0 #define CON_DESCMENU 1 #define CON_CLOSE 99 /* these for arena_update spec proc mobs */ #define AR_UPDATE 0 #define AR_FLEE 1 #define AR_KILL 2 // for room affect bitvector #define RMAFF_VS_EVIL (1 << 0) #define RMAFF_VS_NEUTRAL (1 << 1) #define RMAFF_VS_GOOD (1 << 2) #endif /* ROA_DEFINES_H */