/*
* flahs.h
* Room, object, player, and monster flags.
* ____ _
* | _ \ ___ __ _| |_ __ ___ ___
* | |_) / _ \/ _` | | '_ ` _ \/ __|
* | _ < __/ (_| | | | | | | \__ \
* |_| \_\___|\__,_|_|_| |_| |_|___/
*
* Permission to use, modify and distribute is granted via the
* Creative Commons - Attribution - Non Commercial - Share Alike 3.0 License
* http://creativecommons.org/licenses/by-nc-sa/3.0/
*
* Copyright (C) 2007-2012 Jason Mitchell, Randi Mitchell
* Contributions by Tim Callahan, Jonathan Hseu
* Based on Mordor (C) Brooke Paul, Brett J. Vickers, John P. Freeman
*
*/
#ifndef FLAGS_H_
#define FLAGS_H_
// partial owner flags
#define PROP_STOR_VIEW_LOG 0 // view log
#define PROP_SHOP_VIEW_LOG 0 // view log
#define PROP_SHOP_CAN_STOCK 1 // can stock
#define PROP_SHOP_CAN_REMOVE 2 // can remove
#define PROP_GUILD_PUBLIC 0 // public
#define PROP_HOUSE_PRIVATE 0 // private
// Room flags
#define R_SHOP 0 // Shoppe
#define R_DUMP_ROOM 1 // Dump
// training 2
#define R_TRAINING_ROOM 3 // Training class bits (2-6)
// training 4
// training 5
// training 6
#define R_MOB_JAIL 7 // A jail room a monster takes you to (as opposed to staff)
#define R_DARK_ALWAYS 8 // Room is dark always
#define R_DARK_AT_NIGHT 9 // Room is dark at night
#define R_POST_OFFICE 10 // Post office
#define R_SAFE_ROOM 11 // Safe room, no playerkilling
#define R_NO_TELEPORT 12 // Cannot teleport to this room
#define R_FAST_HEAL 13 // Heal faster in this room
#define R_ONE_PERSON_ONLY 14 // 1-player only inside
#define R_TWO_PEOPLE_ONLY 15 // 2-players only inside
#define R_THREE_PEOPLE_ONLY 16 // 3-players only inside
#define R_NO_MAGIC 17 // No magic allowed in room
#define R_PERMENANT_TRACKS 18 // Permanent tracks in room
#define R_EARTH_BONUS 19 // Earth realm
#define R_AIR_BONUS 20 // Wind realm
#define R_FIRE_BONUS 21 // Fire realm
#define R_WATER_BONUS 22 // Water realm
#define R_PLAYER_DEPENDENT_WANDER 23 // Player-dependent monster wanders
#define R_PLAYER_HARM 24 // player harming room
#define R_POISONS 25 // player poison room
#define R_DRAIN_MANA 26 // player mp drain room
#define R_STUN 27 // player befuddle room
#define R_NO_SUMMON_OUT 28 // player can not be summon out
#define R_PLEDGE 29 // player can pledge in room
#define R_RESCIND 30 // player can rescind in room
#define R_NO_POTION 31 // No potion room
#define R_MAGIC_BONUS 32 // Player magic spell extend
#define R_NO_LOGIN 33 // No player login
#define R_VAMPIRE_COVEN 34 // room is a vampire coven
#define R_INDOORS 35 // Indoors
#define R_JAIL 36 // Room is a Jail
#define R_NO_CAST_TELEPORT 37 // You cannot cast teleport in this room
#define R_LOTTERY_OFFICE 38 // You buy lottery tickets here, also set shop flag
#define R_DESERT_HARM 39 // Desert room harm flag
#define R_STORAGE_ROOM_SALE 40 // Can buy storage rooms here
#define R_IS_STORAGE_ROOM 41 // Room is a storage room
#define R_NO_CLAIR_ROOM 42 // Cannot clair this room
#define R_NO_FLEE 43 // Cannot flee from this room
#define R_DEADLY_VINES 44 // Player harm - Vines
#define R_CAN_SHOPLIFT 45 // Can shoplift here
#define R_FOREST_OR_JUNGLE 46 // Room is in a forest/jungle
#define R_ETHEREAL_PLANE 47 // Room is in the ethereal plane
#define R_OPPOSITE_REALM_BONUS 48 // The opposite realm of the room is given a bonus
#define R_PAWN_SHOP 49 // Pawn Shoppe
#define R_ICY_WATER 50 // Ice cold water
#define R_NO_TRACK_TO 51 // Cannot track to this room.
#define R_DESTROYS_ITEMS 52 // Environment destroys dropped items.
#define R_NO_SUMMON_TO 53 // Players cannot be summoned to this room
#define R_NO_TRACK_OUT 54 // Player cannot track out of this room
#define R_ROOM_REALM_BONUS 55 // Room's realm adds to same realms spell damage
#define R_OUTLAW_SAFE 56 // Cannot kill an outlaw in this room
#define R_BANK 57 // Room is a bank
#define R_MAGIC_MONEY_MACHINE 58 // Magic Money Machine Room - can get balance and money from
#define R_CASINO 59 // Room is a casino - lets you gamble
#define R_GUILD_OPEN_ACCESS 60 // Guild: Open Access
#define R_NO_WORD_OF_RECALL 61 // Word of recall does not work in this room
#define R_LOG_INTO_TRAP_ROOM 62 // Players log in to room's trap exit
#define R_DIFFICULT_TO_MOVE 63 // Difficult to move in this room
#define R_ELEC_BONUS 64 // Electromagnetic room
#define R_COLD_BONUS 65 // Cold realm room
#define R_DIFFICULT_FLEE 66 // Difficult to flee from here
#define R_NO_MIST 67 // Mist cannot enter here
#define R_DISPERSE_MIST 68 // Room disperses mist
#define R_DECLARE_BOUNTY 69 // can declare a bounty here
#define R_BUILD_SHOP 70 // can build a shop here
#define R_MAGIC_DARKNESS 71 // Room cloaked in magical darkness
#define R_UNDER_WATER_BONUS 72 // Room is underwater
#define R_NO_DODGE 73 // No dodge/riposte allowed in room
#define R_ARAMON 74 // Aramon faith room
#define R_CERIS 75 // Ceris faith room
#define R_ENOCH 76 // Enoch faith room
#define R_GRADIUS 77 // Gradius faith room
#define R_ARES 78 // Ares faith room
#define R_KAMIRA 79 // Kamira faith room
#define R_JAKAR 80 // Jakar faith room
#define R_LINOTHAN 81 // Linothan faith room
#define R_MARA 82 // Mara faith room
#define R_ARACHNUS 83 // Arachnus faith room
#define R_UNDERGROUND 84 // Underground room
#define R_BUILD_GUILDHALL 85 // can build a guildhall here
#define R_WAS_BUILD_GUILDHALL 86 // used to be able to build a guildhall
#define R_ARCHERS 87 // elven archers
#define R_DEADLY_MOSS 88 // deadly moss
#define R_WAS_BUILD_SHOP 89 // used to be able to build a shop
#define R_CONSTRUCTION 90 // This room is under construction
#define R_TYPO 91 // A typo was reported in this room
#define R_BUILD_HOUSE 92 // can build a house here
#define R_WAS_BUILD_HOUSE 93 // used to be able to build a house
#define R_WINTER_COLD 94 // room is cold during the winter
#define R_NO_PREVIOUS 95 // player does not record this as previous room
#define R_SHOP_STORAGE 96 // must be set in storage room for room flag 1 (Shoppe) to work
#define R_ALWAYS_WINTER 97 // Treat this room as winter regardless of season
#define R_CAN_ALWAYS_MIST 98 // Player may always turn to mist
#define R_LIMBO 99 // room is a Limbo room
#define R_NO_SPRING_TRAP_ON_ENTER 100 // Do not spring trap when player enters the room
#define MAX_ROOM_FLAGS 101 // Incriment when you add a room flag
// Player flags
// free 0
#define P_HIDDEN 1 // Hidden
#define P_HARDCORE 2 // A hardcore character: death is permanent.
#define P_NO_BROADCASTS 3 // Don't show broadcasts
#define P_NO_LONG_DESCRIPTION 4 // Don't show long description
#define P_NO_SHORT_DESCRIPTION 5 // Don't show short description
#define P_IGNORE_GOSSIP 6 // ignore gossip channel
#define P_IGNORE_CLAN 7 // ignore clan channel
#define P_PORTAL 8 // portal
#define P_NO_AUTO_ATTACK 9 // no auto attack for players
#define P_DM_INVIS 10 // DM Invisibility
#define P_SLEEPING 11 // sleeping
#define P_MALE 12 // Sex == male
#define P_SEXLESS 13 // sexless
#define P_WIMPY 14 // Wimpy mode
#define P_EAVESDROPPER 15 // Eavesdropping mode
#define P_AUTO_INVIS 16 // Automatically turn on DM Invis if idle for over 100 minutes
#define P_UNIQUE_TO_DECAY 17 // Player has a unique that must decay
#define P_PROMPT 18 // Display status prompt
#define P_FRENZY_OLD 19 // Frenzy Flag (For Werewolfs)
#define P_MXP_ENABLED 20 // Player wants to use MXP
#define P_MXP_ACTIVE 21 // MXP is active! we need to close it
#define P_PRAYED_OLD 22 // Prayed
#define P_INVERT_AREA_COLOR 23 // Invert area color
#define P_PREPARED 24 // Prepared for trap
#define P_T_TO_BOUND 25 // *t takes you to bound room
#define P_ANSI_COLOR 26 // Ansi Color
#define P_SPYING 27 // Spying on someone
#define P_CHAOTIC 28 // Chaotic/!Lawful
#define P_READING_FILE 29 // Reading a file
#define P_NO_TICK_MSG 30 // Ignore mob tick broadcasts
#define P_NO_AGGRO_MSG 31 // Ignore mob aggro broadcasts
#define P_NO_DEATH_MSG 32 // Ignore mob death broadcasts
#define P_CAN_CHOOSE_CUSTOM_TITLE 33 // player can choose custom title
#define P_NO_SUMMON 34 // Nosummon flag
#define P_IGNORE_ALL 35 // Ignore all send
#define P_IGNORE_SMS 36 // Ignore text messages
#define P_NO_TRACK_STATS 37 // Do not track statistics
#define P_DARKNESS 38 // Player is carrying a darkness item
#define P_PLEDGED 39 // Player is pledged
#define P_MIRC 40 // Player is using mirc (colors/stuff)
#define P_SEE_HOOKS 41 // Whether or not to show this DM successful hooks as they happen
#define P_SHOW_SKILL_PROGRESS 42 // Show skill Progress
#define P_CANNOT_CHOOSE_CUSTOM_TITLE 43 // player has lost the privelege to choose custom titles
#define P_SEE_ALL_HOOKS 44 // Whether or not to show this DM all hooks as they happen
#define P_CHARMED 45 // Player is charmed
#define P_NO_LOGIN_MESSAGES 46 // No login messages sent
#define P_VIEW_ZONES 47 // Player wants to view zones
#define P_SECURITY_CHECK_OK 48 // Player has passed security check
#define P_AUTHERIZED 49 // No-port that has been authorized
#define P_ALIASING 50 // DM is aliasing
// free 51
#define P_NEWLINE_AFTER_PROMPT 52 // Print NL after prompt
#define P_BERSERKED_OLD 53 // Player is berserked
#define P_LOG_WATCH 54 // DM is watching the log channel
// free 55
#define P_NO_AUTO_TARGET 56 // Don't Automatically target anything you attack if you don't already have a target
// free 56 // UNUSED
#define P_IGNORE_CLASS_SEND 57 // Player is ignoring class sends
#define P_IGNORE_GROUP_BROADCAST 58 // Player is ignoring group broadcasts
#define P_ENCHANT_ONLY 59 // Player resists-hands
#define P_JUST_STAT_MOD 60 // Player just used a stat-modifying item
#define P_RESIST_STUN 61 // Player resists-stun
#define P_SHOW_ALL_PREFS 62 // Show all preferences by default
#define P_COMPACT 63 // show compact output
#define P_SHOW_TICK 64 // Show ticks
#define P_JUST_REFUNDED 65 // No haggling until they leave the room!
// free 66 // +PTY
// free 67
// free 68
// free 69
#define P_HIDE_FORUM_POSTS 70 // Player does not want to see forum post notifications
#define P_FULL_FORUM_POSTS 71 // Player wants to see first few lines of forum posts
#define P_OUTLAW 72 // Player is an outlaw
#define P_JUST_TRAINED 73 // Player just trained
#define P_NO_COMPUTE 74 // DM flag only: don't compute ac
#define P_SNEAK_WHILE_MISTED 75 // sneak while misted
#define P_FOCUSED 76 // player is focused
#define P_STUNNED 77 // player currently stunned
// free 78 // unused
#define P_NO_AUTO_WEAR 79 // Player won't wear all when they log on
// free 80
// free 81
// free 82
#define P_NO_FOLLOW 83 // Player cannot be followed
#define P_CAUGHT_SHOPLIFTING 84 // Player was caught shoplifting
#define P_LAG_PROTECTION_SET 85 // Lag protection set (auto-hazy / auto-disconnect)
#define P_LAG_PROTECTION_OPERATING 86 // Lag detection routines currently in operation
#define P_LAG_PROTECTION_ACTIVE 87 // Check for lag protection activated
#define P_DM_SILENCED 88 // Player silenced by DM
#define P_DM_BLINDED 89 // Player blinded by DM
#define P_NO_MSG 90 // DM/CT will not see *msg channel
#define P_CAN_AWARD 91 // DM only. Allows CTs to award roleplaying xp if set.
#define P_FREE_TRAIN 92 // Player doesn't need cash to level. For ptesting
#define P_GOLD_SPLIT 93 // Player has auto gold split turned on.
// free 94
#define P_PTESTER 95 // Player is a ptester
#define P_NO_SHOW_STATS 96 // HP/MP will not show when followed
#define P_NO_CAST_SUMMON 97 // Player cannot cast summon - for summon slaves
#define P_NO_GET_ALL 98 // Player cannot get all - for people abusing it.
#define P_CAN_OUTLAW 99 // DM only. Allows a CT to use *outlaw command.
#define P_OUTLAW_WILL_BE_ATTACKED 100 // Outlaw will be attacked by outlaw aggros
#define P_OUTLAW_WILL_LOSE_XP 101 // Outlaw will lose experience when killed
#define P_LINKDEAD 102 // Player is linkdead (shouldn't be considered 2x-logging)
#define P_UNCONSCIOUS 103 // Player is unconscious
// free 104
#define P_BRAINDEAD 105 // Player is brain dead -- For jackasses...
// free 106
#define P_CT_CAN_DM_LIST 107 // DM only. Caretaker can use *list command
// free 108
// free 109
#define P_CT_CAN_DM_BROAD 110 // DM only. Caretaker can use *broad
#define P_SHOW_XP_IN_PROMPT 111 // XP shows in player prompt
#define P_UNREAD_MAIL 112 // Player has unread mudmail
#define P_NO_SHOW_MAIL 113 // Player will not see new mail notification
#define P_POISONED_BY_PLAYER 114 // Poisoned by player
#define P_POISONED_BY_MONSTER 115 // Poisoned by monster
#define P_NO_LAG_HAZY 116 // Hazy looked for 2nd in lag protection
#define P_NO_EXTRA_COLOR 117 // Extra color options
#define P_NO_PKILL_PERCENT 118 // Pkill percent not shown
#define P_NO_AUCTIONS 119 // Will not see auction broadcasts
#define P_KILLS_LOGGED 120 // All player's kills logged
#define P_SUPER_EAVESDROPPER 121 // Super eavesdrop mode
#define P_CAN_FLASH_SELF 122 // Player is allowed to flash self
#define P_SAVING_THROWSPELL_LEARN 123 // Saving throw values defined. DO NOT UNSET THIS FLAG!
// free 124
#define P_IGNORE_RACE_SEND 125 // Player ignoring race broadsend
#define P_AFK 126 // Player is away from keyboard (afk)
// free 127
#define P_GLOBAL_GAG 128 // Player globally gagged
#define P_DONT_SHOW_SHOP_PROFITS 129 // Don't show profits
// free 130
// free 131
#define P_NO_TELLS 132 // Player ignores send/tell messages
#define P_LANG_ALIEN 133 // Player speaks alien language (unknown)
#define P_LANG_DWARVEN 134 // Player speaks dwarven
#define P_LANG_ELVEN 135 // Player speaks elven
#define P_LANG_HALFLING 136 // Player speaks halfling
#define P_LANG_COMMON 137 // Player speaks common
#define P_LANG_ORCISH 138 // Player speaks orcish
#define P_LANG_GIANTKIN 139 // Player speaks giantkin
#define P_LANG_GNOMISH 140 // Player speaks gnomish
#define P_LANG_TROLLISH 141 // Player speaks language of trolls
#define P_LANG_OGRISH 142 // Player speaks ogrish
#define P_LANG_DARK_ELVEN 143 // Player speaks dark elven
#define P_LANG_GOBLINOID 144 // Player speaks goblinoid
#define P_LANG_MINOTAUR 145 // Player speaks language of minotaurs
#define P_LANG_CELESTIAL 146 // Player speaks celestial (seraph)
#define P_LANG_KOBOLD 147 // Player speaks kobold
#define P_LANG_INFERNAL 148 // Player speaks infernal (cambion)
#define P_LANG_BARBARIAN 149 // Player speaks barbarian
#define P_LANG_KATARAN 150 // Player speaks kataran
// free 151
// free 152
// free 153
#define P_LANGUAGE_COLORS 154 // Player sees language colors
#define P_LANGUAGE_INITIALIZED 155 // Player language been initialized
// free 156
#define P_ON_PROXY 157 // Player is allowed to multi-log
#define P_SECRET_WATCHER 158 // Player does not show up as a watcher
#define P_GROUP_EXP_ABUSE 159 // No group exp due to abuse
#define P_WATCHER 160 // Player is a watcher
#define P_CAN_MUDMAIL_STAFF 161 // Player can mudmail CTs and DMs
#define P_NO_DUEL_MESSAGES 162 // Player will not see duel death messages
#define P_BUGGED 163 // Player is bugged for observation
#define P_DIED_IN_DUEL 164 // Player just died in a duel - DO NOT SET
#define P_MISTBANE 165 // Player (ranger) can hit mist (mistbane)
#define P_XP_DIVIDE 166 // Player has xp split turned on
#define P_NO_PKILL 167 // Player cannot be pkilled right now
#define P_PERM_DEATH 168 // Player sees perm deaths
// free 169
// free 170
#define P_IGNORE_NEWBIE_SEND 171 // Player ignoring newbie channel
// free 172
// free 173
// free 174
#define P_SITTING 175 // Player is sitting down resting
#define P_NO_WTS 176 // Cannot use *wts command
#define P_CREATING_GUILD 177 // Player is currently attempting to create a new guild
// free 178
// free 179
#define P_FREE_ACTION 180 // Player under free-action spell
#define P_NO_FLUSHCRTOBJ 181 // Builder doesn't have to *flushcrtobj
#define P_NO_NUMBERS 182 // No Mob Numbers
#define P_CAN_REBOOT 183 // Can use *reboot command
#define P_CAN_CHANGE_STATS 184 // Can change stats
#define P_JAILED 185 // Jailed by *jail command. DO NOT SET
// free 186
#define P_KILL_AGGROS 187 // Player attacks aggros first
#define P_PASSWORD_CURRENT 188 // Password is current
#define P_NO_TICK_MP 189 // Player cannot tick MP
#define P_NO_TICK_HP 190 // Player cannot tick HP
// free 191
#define P_KILLED_BY_MOB 192 // Just killed by mob
// free 193
#define P_DOCTOR_KILLER 194 // Player is a doctor killer
#define P_CHOSEN_SURNAME 195 // Player has chosen surname
#define P_NO_SURNAME 196 // Player cannot use surname command
// free 197
#define P_ADULT 198 // Player can use adult channel
#define P_VETERAN 199 // Player can use veteran channel
#define P_CANT_BROADCAST 200 // Player cannot broadcast
#define P_CHOSEN_ALIGNMENT 201 // Player has chosen alignment
#define P_NO_SUICIDE 202 // Player cannot suicide - cool off period
#define P_BUILDER_MOBS 203 // Builder can make mobs
#define P_BUILDER_OBJS 204 // Builder can make objs
#define P_DARKMETAL 205 // Player has a darkmetal item (DONT SET)
// free 206
// free 207
// free 208
// free 209
// free 210
// free 211
// free 212
// free 213
// free 214
// free 215
// free 216
// free 217
#define MAX_PLAYER_FLAGS 218 // Incriment when u add a new player flag
// Monster flags
#define M_PERMENANT_MONSTER 0 // Permanent monster
#define M_HIDDEN 1 // Hidden
#define M_WAS_HIDDEN 2 // Monster was hidden before and will rehide again
#define M_FACTION_NO_GUARD 3 // If the player is in good standing with the monster, the monster will not passively guard exits
// free 4
#define M_NO_PREFIX 5 // No prefix
#define M_AGGRESSIVE 6 // Aggressive
#define M_GUARD_TREATURE 7 // Guards treasure
#define M_BLOCK_EXIT 8 // Blocks exits
#define M_FOLLOW_ATTACKER 9 // Monster follows attacker
#define M_WILL_FLEE 10 // Monster flees
#define M_SCAVANGER 11 // Monster is a scavenger
#define M_MALE 12 // Sex == male
#define M_WILL_POISON 13 // Poisoner
#define M_UNDEAD 14 // Undead
#define M_CANT_BE_STOLEN_FROM 15 // Cannot be stolen from
// free 16
#define M_CAN_CAST 17 // Can cast spells
#define M_HAS_SCAVANGED 18 // Has already scavenged something
// free 19
#define M_ONLY_HARMED_BY_MAGIC 20 // Can only be harmed by magic
#define M_FACTION_ASSIST 21 // monster will assist members of primeFaction
#define M_ENCHANTED_WEAPONS_ONLY 22 // Can only be harmed by magic/ench.weapon
#define M_TALKS 23 // Monster can talk interactively
#define M_UNKILLABLE 24 // Monster cannot be harmed
#define M_NO_RANDOM_GOLD 25 // Monster has fixed amt of gold
#define M_AGGRESSIVE_AFTER_TALK 26 // Becomes aggressive after talking
#define M_NO_FACTION_AGGRO 27 // Don't aggro based on faction
#define M_CAN_RIPOSTE 28 // Can riposte regardless of other rules
#define M_DARKNESS 29 // Monster is carrying a darkness item
// free 30
// free 31
#define M_CAN_PLEDGE_TO 32 // players can pledge to monster
#define M_CAN_RESCIND_TO 33 // players can rescind to monster
#define M_DISEASES 34 // Monster causes disease
#define M_DISOLVES_ITEMS 35 // Monster can dissolve items
#define M_CAN_PURCHASE_FROM 36 // player can purchase from monster
#define M_TRADES 37 // monster will give items
#define M_PASSIVE_EXIT_GUARD 38 // passive exit guard
#define M_AGGRESSIVE_GOOD 39 // Monster aggro to good players
#define M_AGGRESSIVE_EVIL 40 // Monster aggro to evil players
#define M_DEATH_SCENE 41 // Monster has additon desc after death
#define M_CAST_PRECENT 42 // Monster cast magic percent flag (prof 1)
#define M_RESIST_STUN_SPELL 43 // Monster resists stun only
#define M_NO_CIRCLE 44 // Monster cannot be circled
#define M_WILL_BLIND 45 // Monster blinds
#define M_DM_FOLLOW 46 // Monster will follow DM
// free 47
// free 48
// free 49
#define M_CHARMED 50 // Monster is charmed
#define M_MOBILE_MONSTER 51 // Monster will wander around the area
#define M_LOGIC_MONSTER 52 // Logic Monster
#define M_TAKE_LOOT 53 // Monster will try to take players' loot
#define M_FAST_WANDER 54 // Monster will quickly wander around the area
#define M_PET 55 // Monster is a pet
// free 56
// free 57
// free 58
// free 59
// free 60
// free 61
#define M_SEXLESS 62 // sexless
// free 63
// free 64
// free 65
// free 66
// free 67
// free 68
// free 69
// free 70
#define M_NO_WANDER 71 // monster doesn't wander
// free 72
// free 73
// free 74
// free 75
// free 76
// free 77
// free 78
// free 79
// free 80
// free 81
// free 82
// free 83
// free 84
// free 85
// free 86
// free 87
// free 88
// free 89
#define M_REGENERATES 90 // monster regenerates
#define M_PLUS_TWO 91 // monster needs +2 weapon or above to be hit
#define M_PLUS_THREE 92 // monster needs +3 weapon or above to be hit
// free 93
#define M_STEAL_WHEN_ATTACKING 94 // monster steals if attacked
#define M_STEAL_ALWAYS 95 // monster steals on sight
// free 96
// free 97
// free 98
#define M_WILL_BE_ASSISTED 99 // Will be assisted
#define M_WILL_ASSIST 100 // Will assist
#define M_NIGHT_ONLY 101 // Only comes at night
#define M_OUTLAW_AGGRO 102 // Mob aggros outlaws
// free 103
// free 104
// free 105
#define M_WILL_WIELD 106 // Monster will wield weapons in their inventory
//#define M_WILL_MOVE_FOR_CASH 107 // monster will move out of the way (clear pguard for a few) when given enough money
// free 108
#define M_DAY_ONLY 109 // monster will only come during the day
#define M_NO_SHOW_ARRIVE 110 // Don't show when monster arrives
// free 111
// free 112
#define M_UN_DODGEABLE 113 // Monster cannot be dodged
// free 114
// free 115
#define M_ATTACKING_SHOPLIFTER 116 // Monster is attacking a shoplifter
#define M_CHASING_SOMEONE 117 // Monster chasing someone
#define M_RESIST_CIRCLE 118 // Monster resists circle - circled as if undead
#define M_WILL_YELL_FOR_HELP 119 // Monster will yell for help
#define M_YELLED_FOR_HELP 120 // Monster yelled for help - DONT SET
#define M_WILL_BE_HELPED 121 // Monster doesn't actually yell for help, but mobs arrive to help
#define M_BENEVOLENT_SPELLCASTER 122 // Monster is a benevolent spellcaster
#define M_WILL_BE_LOGGED 123 // Anything that happens to the monster will be logged until saved
// free 124
// free 125
#define M_LEVEL_BASED_STUN 126 // Level-based stunnable
#define M_RESIST_TOUCH 127 // Monster resists touch-of-death
#define M_GREEDY 128 // Monster will sometimes steal cash instead of killing
#define M_POLICE 129 // Monster will beat the person up and then throw em in jail
#define M_LEVEL_RESTRICTED 130 // Monster can only be killed/attacked by someone less than maxLevel
#define M_NO_BACKSTAB 131 // Monster cannot be backstabbed - for really small creatures and stuff like slimes
// free 132
// free 133
// free 134
// free 135
// free 136
// free 137
// free 138
// free 139
// free 140
// free 141
// free 142
// free 143
// free 144
// free 145
// free 146
// free 147
// free 148
// free 149
// free 150
// free 151
// free 152
// free 153
// free 154
// free 155
#define M_NO_LEVEL_ONE 156 // Monster uneffected by level 1 spells
#define M_NO_LEVEL_TWO 157 // Monster uneffected by level 2 spells or less
#define M_NO_LEVEL_THREE 158 // Monster uneffected by level 3 spells or less
#define M_NO_LEVEL_FOUR 159 // Monster uneffected by level 4 spells or less
#define M_NO_KICK 160 // Monster cannot be kicked (for things like slimes)
#define M_DEATH_SCREAM 161 // Monster screams like a banshee - death scream
#define M_WILL_SNEAK 162 // Monster will sneak around
#define M_SNEAKING 163 // Monster is sneaking
// free 164
#define M_WILL_BE_AGGRESSIVE 165 // Monster will randomly become aggressive
#define M_NO_POISON 166 // Monster cannot be poisoned
#define M_NO_CHARM 167 // Monster cannot be charmed
#define M_SPECIAL_UNDEAD 168 // Monster turned as 'special' undead -- harder to turn
// free 169
// free 170
// free 171
#define M_NO_EXP_LOSS 172 // Monster does not make player lose exp when they die
// free 173
// free 174
// free 175
// free 176
// free 177
// free 178
#define M_CAN_STONE 179 // Monster's touch can turn to stone
// free 180
#define M_ALWAYS_AGGRESSIVE 181 // Monster ALWAYS aggressive, ignoring other rules that can override aggro
#define M_KILL_PERMS 182 // Monster will attack perm creatures
#define M_KILL_NON_ASSIST_MOBS 183 // Monster attacks all mobs it will not assist
#define M_KILL_MASTER_NOT_PET 184 // Monster kills master - not pet
// free 185
#define M_FAST_TICK 186 // Monster fast ticks when no one in room
#define M_RESTRICT_EXP_LEVEL 187 // Lower exp after max-killable level
// free 188
// free 189
#define M_TOLLKEEPER 190 // Monster is a tollkeeper
#define M_ALIGNMENT_VARIES 191 // Monster's alignment will vary
#define M_ASSIST_HIT_CHANCE 192 // Monsters assist each others' chance to hit
#define M_STREET_SWEEPER 193 // Monster is a streetsweeper - cleans rooms (will pick up a lot of objects)
#define M_CUSTOM 194 // Monster is custom - has no specific mtype
#define M_NO_ADJUST 195 // Monster will not adjust on loading
// free 196
// free 197
// free 198
// free 199
#define M_ALWAYS_ACTIVE 200 // Monster will remain on active list until killed
#define M_NO_AUTO_CRIT 201 // Monster will not be auto-critted
// free 202
#define M_ANTI_MAGIC_AURA 203 // Monster is anti-magic - blocks magic in room
#define M_MAGE_LICH_STUN_ONLY 204 // Monster is mage/lich stun only
#define M_FIRE_AURA 205 // Monster has fire aura attack
#define M_COLD_AURA 206 // Monster has cold aura attack
#define M_NAUSEATING_AURA 207 // Monster has a nauseating aura
#define M_NEGATIVE_LIFE_AURA 208 // Monster has a negative life-draining aura
#define M_TURBULENT_WIND_AURA 209 // Monster has a turbulent wind aura
// free 210
// free 211
// free 212
#define M_WOUNDING 213 // Monster has wounding attack
// free 214
#define M_WILL_BERSERK 215 // Monster will berserk
#define M_WAS_PORTED 216 // Monster was teleported (DO NOT SET)
// free 217
// free 218
// free 219
#define M_RACE_AGGRO_INVERT 220 // Race aggro invert flag
#define M_CLASS_AGGRO_INVERT 221 // Class aggro invert flag
// free 222
#define M_SAVE_FULL 223 // Save the full mob to a roomfile instead of just a reference
#define M_DEITY_AGGRO_INVERT 224 // Deity aggro invert flag
// free 225
// free 226
// free 227
// free 228
// free 229
#define M_RAIDING 230 // Monster is raiding (DO NOT SET)
// free 231
// free 232
// free 233
// free 234
// free 235
// free 236
#define MAX_MONSTER_FLAGS 237 // Incriment when adding (max is 256)
// Object flags
#define O_PERM_ITEM 0 // Permanent item (not yet taken)
#define O_HIDDEN 1 // Hidden
// free 2
#define O_OLD_INVISIBLE 2 // Invisible
#define O_SOME_PREFIX 3 // "some" prefix
#define O_PUSH_PULL_SPRINGS_TRAP 4 // Pushing or pulling this object springs the room's trap
#define O_NO_PREFIX 5 // No prefix
#define O_FISHING 6 // Can be used to fish
#define O_WEIGHTLESS_CONTAINER 7 // Container of weightless holding
#define O_TEMP_PERM 8 // Temporarily permanent
#define O_PERM_INV_ITEM 9 // Permanent INVENTORY item
#define O_NO_MAGE 10 // Mages cannot wear/use it
#define O_LIGHT_SOURCE 11 // Object serves as a light
#define O_GOOD_ALIGN_ONLY 12 // Usable only by good players
#define O_EVIL_ALIGN_ONLY 13 // Usable only by evil players
#define O_NO_ENCHANT 14 // Object cannot be enchanted
#define O_NO_FIX 15 // Cannot be repaired
#define O_CLIMBING_GEAR 16 // Climbing gear
#define O_NO_TAKE 17 // Cannot be taken
#define O_SCENERY 18 // Part of room description/scenery
#define O_DARKNESS 19 // Object creates magical darkness
#define O_HOT 20 // Object is hot (can be used in cooking)
#define O_RANDOM_ENCHANT 21 // Random enchantment flag
#define O_CURSED 22 // Object is cursed
#define O_WORN 23 // Object is being worn
#define O_CAN_USE_FROM_FLOOR 24 // Can be used from the floor
#define O_DEVOURS_ITEMS 25 // Container devours items
#define O_FEMALE_ONLY 26 // Usable by only females
#define O_MALE_ONLY 27 // Usable by only males
#define O_SEXLESS_ONLY 28 // Usable by only sexless creatures
#define O_PLEDGED_ONLY 29 // Usable by only pledged players
#define O_MAGIC 30 // object is magical (displays (M) with detect-magic)
#define O_CSEL_INVERT 31 // invert class selective rules
#define O_SEL_ASSASSIN 32 // class selective: assassin
#define O_SEL_BERSERKER 33 // class selective: barbarian
#define O_SEL_CLERIC 34 // class selective: cleric
#define O_SEL_FIGHTER 35 // class selective: fighter
#define O_SEL_MAGE 36 // class selective: mage
#define O_SEL_PALADIN 37 // class selective: paladin
#define O_SEL_RANGER 38 // class selective: ranger
#define O_SEL_THIEF 39 // class selective: thief
#define O_SEL_VAMPIRE 40 // class selective: vamp
#define O_SEL_MONK 41 // class selective: monk
#define O_SEL_DEATHKNIGHT 42 // class selective: death knight
#define O_SEL_DRUID 43 // class selective: druid
#define O_SEL_LICH 44 // class selective: lich
#define O_SEL_WEREWOLF 45 // class selective: werewolf
#define O_SEL_BARD 46 // class selective: bard
#define O_SEL_ROGUE 47 // class selective: rogue
#define O_DISPOSABLE 48 // Object will not keep area room in memory
#define O_NEVER_SHATTER 49 // Weapon will never shatter
#define O_ALWAYS_CRITICAL 50 // Weapon will always critical
#define O_LUCKY 51 // Object is a luck charm
#define O_WEAPON_CASTS 52 // Weapon casts spells on hit (realm-offensive only)
#define O_TWO_HANDED 53 // Weapon requires two hands to wield (no double wield)
#define O_EQUIPPING_BESTOWS_EFFECT 54 // Equiping this object bestows an effect
#define O_JUST_LOADED 55 // Object was just loaded on a monster and hasn't been obtained
// by a player yet so exp can be gained from stealing it
#define O_CHAOTIC_ONLY 56 // Chaotics Only
#define O_LAWFUL_ONLY 57 // Lawfuls Only
#define O_TEMP_ENCHANT 58 // Temp Enchant
#define O_STARTING 59 // Starting Item
// free 60
#define O_CLAN_1 61 // Clan 1 can use
#define O_CLAN_2 62 // Clan 2 can use
#define O_CLAN_3 63 // Clan 3 can use
#define O_CLAN_4 64 // Clan 4 can use
#define O_CLAN_5 65 // Clan 5 can use
#define O_CLAN_6 66 // Clan 6 can use
#define O_CLAN_7 67 // Clan 7 can use
#define O_CLAN_8 68 // Clan 8 can use
#define O_CLAN_9 69 // Clan 9 can use
#define O_CLAN_10 70 // Clan 10 can use
// free 71
// free 72
// free 73
// free 74
// free 75
// free 76
// free 77
// free 78
// free 79
#define O_LOAD_ALL 80 // When trading, load all RandomObjects, rather than a random one.
#define O_RESIST_DISOLVE 81 // Object resists dissolve
#define O_RECLAIMED 82 // Object has been reclaimed at least once, no futher haggling allowed
// free 83
// free 84
// free 85
// free 86
// free 87
// free 88
// free 89
// free 90
#define O_DRINKABLE 91 // You can drink the object
#define O_EATABLE 92 // You can eat the object
#define O_ALWAYS_DROPPED 93 // Monsters always drop this object
#define O_CONSUME_HEAL 94 // Consumable object that will heal the player
// free 95
// free 96
// free 97
// free 98
#define O_CLAN_11 99 // Clan 11 can use
#define O_CLAN_12 100 // Clan 12 can use
// free 101
// free 102
// free 103
#define O_CUSTOM_OBJ 104 // Object is a custom
#define O_NO_SHOPLIFT 105 // Object cannot be shoplifted
#define O_WAS_SHOPLIFTED 106 // Object was shoplifted (so people can't sell shoplifted items)
// free 107
#define O_CAN_HIT_MIST 108 // Object can hit misted vampire
#define O_SILVER_OBJECT 109 // Object made of silver - extra damage to werewolf
#define O_HOLD_BONUS 110 // Object confers a bonus to hit if held
// free 111
#define O_NO_STEAL 112 // Object cannot be stolen
#define O_SMALL_SHIELD 113 // Object is a small shield
// free 114
// free 115
// free 116
// free 117
#define O_NO_PAWN 118 // Object not pawnable
#define O_BREAK_ON_DROP 119 // Object breaks when drops
#define O_LORE 120 // Lore Item
#define O_RSEL_INVERT 121 // invert race-selective rules
#define O_SEL_DWARF 122 // race selective: dwarf
#define O_SEL_ELF 123 // race selective: elf
#define O_SEL_HALFELF 124 // race selective: half-elf
#define O_SEL_HALFLING 125 // race selective: halfling
#define O_SEL_HUMAN 126 // race selective: human
#define O_SEL_ORC 127 // race selective: orc
#define O_SEL_HALFGIANT 128 // race selective: half-giant
#define O_SEL_GNOME 129 // race selective: gnome
#define O_SEL_TROLL 130 // race selective: troll
#define O_SEL_HALFORC 131 // race selective: half-orc
#define O_SEL_OGRE 132 // race selective: ogre
#define O_SEL_DARKELF 133 // race selective: dark-elf
#define O_SEL_GOBLIN 134 // race selective: goblin
#define O_SEL_MINOTAUR 135 // race selective: minotaur
#define O_SEL_SERAPH 136 // race selective: seraph
#define O_SEL_KOBOLD 137 // race selective: kobold
#define O_SEL_CAMBION 138 // race selective: cambion
#define O_SEL_BARBARIAN 139 // race selective: barbarian
#define O_SEL_KATARAN 140 // race selective: kataran
#define O_ENVENOMED 141 // Object has been envenomed
#define O_NULL_MAGIC 142 // Object does not reveal that it is magical to detect-magic
#define O_NO_BREAK 143 // Object does not break
#define O_ALLOW_TOUCH_OF_DEATH 144 // Monks can use touch-of-death with this weapon wielded
#define O_JUST_BOUGHT 145 // Object was just bought and is refundable
#define O_NO_DROP 146 // Can't drop or otherwise get rid of this object
#define O_LOGIN_FILE 147 // Display file all at once
#define O_BROKEN_BY_CMD 148 // Object is broken by break command
#define O_SMALL_BOW 149 // Objext is a small bow
#define O_COIN_OPERATED_OBJECT 150 // Coin operated object
#define O_BEING_PREPARED 151 // Object is being prepared
#define O_MISSLE_USE_STRENGTH 152 // Missile weapon uses strength bonus
#define O_UNIQUE 153 // Object is unique or limited
#define O_BULKLESS_CONTAINER 154 // Bulkless container object
#define O_BULKLESS_OBJECT 155 // Bulkless object
// free 156
#define O_NOT_PEEKABLE 157 // Object can not be peeked at
#define O_ENHANCE_BASH 158 // Object does extra bash damage equal to dice
#define O_KEEP 159 // Object is being kept - cannot be dropped or sole on accident
#define O_NO_BACKSTAB 160 // Cannot backstab with this weapon
#define O_SAVE_FULL 161 // Save the entire object to pfile/roomfile instead of just a reference.
// Mainly used when a ct/dm has changed an item, cleared when *saving
// or for custom
#define O_BODYPART 162 // Object cannot be peeked/stolen, unset when monster dies
#define O_DARKMETAL 163 // Object is a darkmetal item (destroyed in sunlight)
#define O_SEL_TIEFLING 164 // race selective: tiefling
#define MAX_OBJECT_FLAGS 165 // Incriment when you add a new Object flag
// Exit flags
#define X_SECRET 0 // Secret
// Free 1
#define X_LOCKED 2 // Locked
#define X_CLOSED 3 // Closed
#define X_LOCKABLE 4 // Lockable
#define X_CLOSABLE 5 // Closable
#define X_UNPICKABLE 6 // Un-pickable lock
#define X_NAKED 7 // Naked exit
#define X_NEEDS_CLIMBING_GEAR 8 // Climbing gear required to go up
#define X_CLIMBING_GEAR_TO_REPEL 9 // Climbing gear require to repel
#define X_DIFFICULT_CLIMB 10 // Very difficult climb
#define X_NEEDS_FLY 11 // Must fly to go that way
#define X_FEMALE_ONLY 12 // female only exit
#define X_MALE_ONLY 13 // male only exit
#define X_PLEDGE_ONLY 14 // pledge player exit only
#define X_PORTAL 15 // portal
#define X_NIGHT_ONLY 16 // only open at night
#define X_DAY_ONLY 17 // only open during day
#define X_PASSIVE_GUARD 18 // passive guarded exit
#define X_NO_SEE 19 // Can not use / see exit
#define X_CSEL_INVERT 20 // Class selective exit
#define X_SEL_ASSASSIN 21 // Assassin
#define X_SEL_BERSERKER 22 // Berserker
#define X_SEL_CLERIC 23 // Cleric
#define X_SEL_FIGHTER 24 // Fighter
#define X_SEL_MAGE 25 // Mage
#define X_SEL_PALADIN 26 // Paladin
#define X_SEL_RANGER 27 // Ranger
#define X_SEL_THIEF 28 // Thief
#define X_SEL_VAMPIRE 29 // Vampire
#define X_SEL_MONK 30 // Monk
#define X_SEL_DEATHKNIGHT 31 // Death Knight
#define X_SEL_DRUID 32 // Druid
#define X_SEL_LICH 33 // Lich
#define X_SEL_WEREWOLF 34 // Werewolf
#define X_SEL_BARD 35 // Bard
#define X_SEL_ROGUE 36 // Rogue
#define X_NO_GOOD_ALIGN 37 // blocks good players
#define X_NO_NEUTRAL_ALIGN 38 // blocks neutral players
#define X_NO_EVIL_ALIGN 39 // blocks evil players
#define X_STAFF_ONLY 40 // staff only
#define X_CLAN_1 41 // Clan 1 can use
#define X_CLAN_2 42 // Clan 2 can use
#define X_CLAN_3 43 // Clan 3 can use
#define X_CLAN_4 44 // Clan 4 can use
#define X_CLAN_5 45 // Clan 5 can use
#define X_CLAN_6 46 // Clan 6 can use
#define X_CLAN_7 47 // Clan 7 can use
#define X_CLAN_8 48 // Clan 8 can use
#define X_CLAN_9 49 // Clan 9 can use
#define X_CLAN_10 50 // Clan 10 can use
#define X_CLAN_11 51 // Clan 11 can use
#define X_CLAN_12 52 // Clan 12 can use
#define X_NO_WANDER 53 // monster will not wander here
#define X_TO_STORAGE_ROOM 54 // Leads to a storage room
#define X_NO_FLEE 55 // Cannot flee to this exit
#define X_NO_SCOUT 56 // Cannot scout this exit
#define X_CONCEALED 57 // Concealed exit - very hard to find
#define X_DESCRIPTION_ONLY 58 // Exit shown only in room description
#define X_NO_MIST 59 // Mist may not enter this exit
#define X_TOLL_TO_PASS 60 // Exit requires toll to enter
#define X_LEVEL_BASED_TOLL 61 // Exit's toll varies on player level
#define X_WATCHER_UNLOCK 62 // Watcher can unlock w/o key - no key
#define X_MOVING 63 // Moving exit (do not set)
#define X_TO_BOUND_ROOM 64 // Exit to bound room
#define X_RSEL_INVERT 65 // race invert
#define X_SEL_DWARF 66 // race selective: dwarf
#define X_SEL_ELF 67 // race selective: elf
#define X_SEL_HALFELF 68 // race selective: half-elf
#define X_SEL_HALFLING 69 // race selective: halfling
#define X_SEL_HUMAN 70 // race selective: human
#define X_SEL_ORC 71 // race selective: orc
#define X_SEL_HALFGIANT 72 // race selective: half-giant
#define X_SEL_GNOME 73 // race selective: gnome
#define X_SEL_TROLL 74 // race selective: troll
#define X_SEL_HALFORC 75 // race selective: half-orc
#define X_SEL_OGRE 76 // race selective: ogre
#define X_SEL_DARKELF 77 // race selective: dark-elf
#define X_SEL_GOBLIN 78 // race selective: goblin
#define X_SEL_MINOTAUR 79 // race selective: minotaur
#define X_SEL_SERAPH 80 // race selective: seraph
#define X_SEL_KOBOLD 81 // race selective: kobold
#define X_SEL_CAMBION 82 // race selective: cambion
#define X_SEL_BARBARIAN 83 // race selective: barbarian
#define X_SEL_KATARAN 84 // race selective: kataran
#define X_SEL_TIEFLING 85 // race selective: tiefling
#define X_WINTER 86 // not in winter
#define X_SPRING 87 // not in spring
#define X_SUMMER 88 // not in summer
#define X_AUTUMN 89 // not in autumn
#define X_ONOPEN_PLAYER 90 // when opening, print to player only
#define X_TO_PREVIOUS 91 // take player to room they were previously in
#define X_MIST_ONLY 92 // only a mist can pass through
#define X_CAN_LOOK 93 // Can look through this exit (free scout)
#define X_LOOK_ONLY 94 // Can only look through this exit (free scout)
#define X_LOCK_AFTER_USAGE 95 // Exit re-locks after single usage
#define MAX_EXIT_FLAGS 96 // Incriment when adding... check structs.h for max
#endif /*FLAGS_H_*/