// $Id: const.h,v 1.17.2.18 2000/06/28 02:07:32 aasen Exp $
// $Revision: 1.17.2.18 $ $Author: aasen $ $Date: 2000/06/28 02:07:32 $
//
//ScryMUD Server Code
//Copyright (C) 1998 Ben Greear
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// To contact the Author, Ben Greear: greear@cyberhighway.net, (preferred)
// greearb@agcs.com
//
///************ this is to save repetitive typing ***********///
#ifndef BEN_CONST_INCLUDE
#define BEN_CONST_INCLUDE
#ifdef USEMYSQL
#include <mysql/mysql.h>
#endif
#include <list2.h>
#include <rb_tree.h>
#include <bitfield.h>
#include <string2.h>
#include <LogStream.h>
#include <PtrArray.h>
#include "ServerConfig.h"
enum proc_types {
PROCTYPE_GIVE,
PROCTYPE_BOW,
PROCTYPE_CURSE,
PROCTYPE_SAY
};
enum shop_data_flags {
SHOPFLAG_BUY0,
SHOPFLAG_SELL0,
SHOPFLAG_OFFER0,
SHOPFLAG_PLAYER_OWNED,
SHOPFLAG_NULL1, // 5
SHOPFLAG_NULL2, // 6
SHOPFLAG_NULL3, // 7
SHOPFLAG_NULL4, // 8
SHOPFLAG_NULL5, // 9
SHOPFLAG_NULL6, // 10
SHOPFLAG_NULL7, // 11
SHOPFLAG_NULL8, // 12
SHOPFLAG_NULL9, // 13
SHOPFLAG_NULL10, // 14
SHOPFLAG_NULL11, // 15
SHOPFLAG_NULL12, // 16
SHOPFLAG_NULL13, // 17
SHOPFLAG_NULL14, // 18
SHOPFLAG_NULL15, // 19
SHOPFLAG_NULL16, // 20
SHOPFLAG_NULL17, // 21
SHOPFLAG_NULL18, // 22
SHOPFLAG_NULL19, // 23
SHOPFLAG_NULL20, // 24
SHOPFLAG_NULL21, // 25
SHOPFLAG_NULL22, // 26
SHOPFLAG_NULL23, // 27
SHOPFLAG_NULL24, // 28
SHOPFLAG_NULL25, // 29
SHOPFLAG_NULL26, // 30
SHOPFLAG_NULL27, // 31
SHOPFLAG_NULL28, // 32
SHOPFLAG_NULL29, // 33
SHOPFLAG_NULL30, // 34
SHOPFLAG_NULL31, // 35
SHOPFLAG_NULL32, // 36
SHOPFLAG_NULL33, // 37
SHOPFLAG_NULL34, // 38
SHOPFLAG_NULL35, // 39
SHOPFLAG_NON_WEAPON,
SHOPFLAG_SLASH,
SHOPFLAG_SMASH,
SHOPFLAG_PIERCE,
SHOPFLAG_WHIP,
SHOPFLAG_NEEDS_AMMO,
SHOPFLAG_DART_THROWER,
SHOPFLAG_BOW,
SHOPFLAG_DART,
SHOPFLAG_ARROW,
SHOPFLAG_JUNK,
SHOPFLAG_WAND,
SHOPFLAG_POTION,
SHOPFLAG_SCROLL,
SHOPFLAG_CONTAINER,
SHOPFLAG_COINS,
SHOPFLAG_ARMOR,
SHOPFLAG_WEAPON,
SHOPFLAG_LIGHT_SOURCE,
SHOPFLAG_CANTEEN,
SHOPFLAG_LIQUID,
SHOPFLAG_FOOD,
SHOPFLAG_BOAT,
SHOPFLAG_HAS_SPEC_PROC_DATA,
SHOPFLAG_TOOLBOX,
SHOPFLAG_CAULDRON,
SHOPFLAG_PEN,
SHOPFLAG_CONSTRUCT_COMPONENT,
SHOPFLAG_CONCOCT_COMPONENT,
SHOPFLAG_PARCHMENT,
SHOPFLAG_NULL36,
SHOPFLAG_NULL37,
SHOPFLAG_HERB,
SHOPFLAG_VEND_MACHINE
};
enum crit_flags {
CRITFLAG_CAN_SEE_INV,
CRITFLAG_USING_LIGHT,
CRITFLAG_NULL1,
CRITFLAG_IS_FLYING,
CRITFLAG_HAS_BOAT,
CRITFLAG_CAN_CLIMB,
CRITFLAG_GOSSIPS,
CRITFLAG_YELLS,
CRITFLAG_GRATZ,
CRITFLAG_AUCTIONS,
CRITFLAG_SHOUTS,
CRITFLAG_SAYS,
CRITFLAG_TELLS,
CRITFLAG_WIZNETS,
CRITFLAG_IS_PARALYZED,
CRITFLAG_IS_PERM_SLEEPED,
CRITFLAG_IS_DUAL_WIELDING,
CRITFLAG_IS_SNEAK,
CRITFLAG_IN_USE,
CRITFLAG_CAN_DIVE,
CRITFLAG_SPELL_TESTED_YET,
CRITFLAG_IS_BLOCKED,
CRITFLAG_IS_HIDE,
CRITFLAG_IS_TAILING,
CRITFLAG_NOT_COMPLETE,
CRITFLAG_ALREADY_HURLED
};
enum pc_data_flags {
PCFLAG_FROZEN,
PCFLAG_GAGGED,
PCFLAG_HAS_IMM_DATA,
PCFLAG_CLOAKED,
PCFLAG_TANK_GRAPH,
PCFLAG_USING_CLIENT,
PCFLAG_AUTOEXIT,
PCFLAG_NO_HASSLE,
PCLFAG_BRIEF,
PCFLAG_AUTOSPLIT,
PCFLAG_DO_PROMPT,
PCFLAG_IS_BUILDER,
PCFLAG_AUTOLOOT,
PCFLAG_OLC_REDO,
PCFLAG_EXTRA_INFO,
PCFLAG_CR_BEHIND,
PCFLAG_DO_CARRIAGE_RETURN,
PCFLAG_IS_BLOCKING_DOOR,
PCFLAG_CAN_DET_MAGIC,
PCFLAG_DETECT_INVENTORY,
PCFLAG_SHOW_VNUMS,
PCFLAG_HAS_POOFIN_POOFOUT_MSG,
PCFLAG_PAGE_OUTPUT,
PCFLAG_IN_PAGE_BREAK_MODE,
PCFLAG_NO_WIZCHAT,
PCFLAG_HAS_COLORS,
PCFLAG_USE_COLOR,
PCFLAG_HAS_LANGUAGE_CHOICE,
PCFLAG_NO_SHOW_MOB_ENTRY,
PCFLAG_NO_BEEP,
PCFLAG_IS_REMORT,
PCFLAG_HAS_SACRIFICED
};
enum spec_flag {
SPECFLAG_NULL1,
SPECFLAG_SHOPKEEPER,
SPECFLAG_TEACHER,
SPECFLAG_LET_SAME_CLASS_PASS,
SPECFLAG_LET_SAME_RACE_PASS,
SPECFLAG_HAS_MOB_GIVE_PROC,
SPECFLAG_HAS_MOB_SAY_PROC,
SPECFLAG_HAS_MOB_BOW_PROC,
SPECFLAG_HAS_MOB_CURSE_PROC,
SPECFLAG_PROC_WITH_SAME_RACE,
SPECFLAG_PROC_WITH_SAME_ALIGN,
SPECFLAG_PROC_WITH_SAME_CLASS,
SPECFLAG_NULL2,
SPECFLAG_HAS_AI
};
enum mob_data_flag {
MOBFLAG_HAS_PROC_DATA,
MOBFLAG_SCAVENGE,
MOBFLAG_WANDER,
MOBFLAG_SHOULD_DO_PROCS,
MOBFLAG_NEED_RESETTING,
MOBFLAG_EDIBLE_CORPSE,
MOBFLAG_IS_BANKER,
MOBFLAG_SESSILE,
MOBFLAG_NOT_HOMING,
MOBFLAG_DISOLVABLE,
MOBFLAG_NULL1,
MOBFLAG_NULL2,
MOBFLAG_NULL3,
MOBFLAG_NULL4,
MOBFLAG_NULL5,
MOBFLAG_NULL6,
MOBFLAG_HAS_SKIN,
MOBFLAG_HAS_MOB_SCRIPT
};
enum obj_flags {
OBJFLAG_NO_REST,
OBJFLAG_ANTI_EVIL,
OBJFLAG_ANTI_NEUTRAL,
OBJFLAG_ANTI_GOOD,
OBJFLAG_ANTI_DONATE,
OBJFLAG_ANTI_DROP,
OBJFLAG_ANTI_REMOVE,
OBJFLAG_ANTI_MORTAL,
OBJFLAG_ANTI_IMMORTAL,
OBJFLAG_ANTI_DEMI,
OBJFLAG_IN_USE,
OBJFLAG_ANTI_WARRIOR,
OBJFLAG_ANTI_SAGE,
OBJFLAG_ANTI_WIZARD,
OBJFLAG_ANTI_RANGER,
OBJFLAG_ANTI_THIEF,
OBJFLAG_ANTI_ALCHEMIST,
OBJFLAG_ANTI_CLERIC,
OBJFLAG_ANTI_BARD,
OBJFLAG_ANTI_MOB,
OBJFLAG_ANTI_PC,
OBJFLAG_NOT_WORN,
OBJFLAG_HEAD,
OBJFLAG_NECK1,
OBJFLAG_NECK2,
OBJFLAG_AROUND_BODY,
OBJFLAG_ARMS,
OBJFLAG_WRIST1,
OBJFLAG_WRIST2,
OBJFLAG_HANDS,
OBJFLAG_WIELDED,
OBJFLAG_HELD,
OBJFLAG_LIGHT,
OBJFLAG_BODY,
OBJFLAG_BELT,
OBJFLAG_LEGS,
OBJFLAG_FEET,
OBJFLAG_FINGER1,
OBJFLAG_FINGER2,
OBJFLAG_SHIELD,
OBJFLAG_NOT_A_WEAPON,
OBJFLAG_SLASH,
OBJFLAG_SMASH,
OBJFLAG_PIERCE,
OBJFLAG_WHIP,
OBJFLAG_NEEDS_AMMO,
OBJFLAG_DART_THROWER,
OBJFLAG_BOW,
OBJFLAG_DART,
OBJFLAG_ARROW,
OBJFLAG_JUNK,
OBJFLAG_WAND,
OBJFLAG_POTION,
OBJFLAG_SCROLL,
OBJFLAG_CONTAINER,
OBJFLAG_COINS,
OBJFLAG_ARMOR,
OBJFLAG_WEAPON,
OBJFLAG_LIGHT_SOURCE,
OBJFLAG_CANTEEN,
OBJFLAG_LIQUID,
OBJFLAG_FOOD,
OBJFLAG_BOAT,
OBJFLAG_HAS_SPEC_PROC_DATA,
OBJFLAG_TOOLBOX,
OBJFLAG_CAULDRON,
OBJFLAG_PEN,
OBJFLAG_CONSTRUCT_COMPONENT,
OBJFLAG_CONCOCT_COMPONENT,
OBJFLAG_PARCHMENT,
OBJFLAG_NEEDS_RESETTING,
OBJFLAG_NOT_COMPLETE,
OBJFLAG_HERB,
OBJFLAG_VENDING_MACHINE,
OBJFLAG_BULLETIN_BOARD,
OBJFLAG_IS_BUTCHERABLE,
OBJFLAG_HAS_OBJ_SCRIPT
};
enum bag_flags {
BAGFLAG_UNUSED1,
BAGFLAG_UNUSED2,
BAGFLAG_IS_CLOSED,
BAGFLAG_IS_LOCKED,
BAGFLAG_IS_PICKABLE,
BAGFLAG_IS_MAG_LOCKABLE,
BAGFLAG_IS_MAG_LOCKED,
BAGFLAG_IS_DESTRUCTABLE,
BAGFLAG_IS_CORPSE,
BAGFLAG_NOT_CLOSABLE,
BAGFLAG_PLAYER_OWNED,
BAGFLAG_CONSUMES_KEY
};
enum door_data_flags {
DDFLAG_OPEN_EXIT,
DDFLAG_MAGIC_LOCKABLE,
DDFLAG_CLOSED,
DDFLAG_LOCKED,
DDFLAG_PICKABLE,
DDFLAG_LOCKABLE,
DDFLAG_MAG_LOCKED,
DDFLAG_DESTRUCTABLE,
DDFLAG_CLOSABLE,
DDFLAG_FLIPPABLE,
DDFLAG_IN_USE,
DDFLAG_PC_CANT_OPEN,
DDFLAG_VEHICLE_EXIT,
DDFLAG_SECRET,
DDFLAG_BLOCKED,
DDFLAG_NOT_COMPLETE,
DDFLAG_SECRET_WHEN_OPEN,
DDFLAG_CONSUMES_KEY,
DDFLAG_NO_PASSDOOR
};
enum room_flags {
ROOMFLAG_NO_RESTRICTIONS,
ROOMFLAG_NO_IMM,
ROOMFLAG_NO_GOD,
ROOMFLAG_IS_PERM_DARK,
ROOMFLAG_WEATHER,
ROOMFLAG_NO_SHOUT,
ROOMFLAG_NO_MAGICAL_EXIT,
ROOMFLAG_IS_HAVEN,
ROOMFLAG_NO_PK,
ROOMFLAG_NO_MAGIC,
ROOMFLAG_NO_MOB,
ROOMFLAG_NO_POTIONS,
ROOMFLAG_NO_STAFFS,
ROOMFLAG_NO_MORTALS,
ROOMFLAG_NORMALLY_DARK,
ROOMFLAG_SHALLOW_WATER,
ROOMFLAG_DEEP_WATER,
ROOMFLAG_SWAMP,
ROOMFLAG_NEED_FLY,
ROOMFLAG_NEED_BOAT,
ROOMFLAG_NEED_CLIMB,
ROOMFLAG_IS_ZLOCKED,
ROOMFLAG_IS_TOTAL_LOADED,
ROOMFLAG_IS_USED,
ROOMFLAG_NO_MAGICAL_ENTRY,
ROOMFLAG_NO_VEHICLES,
ROOMFLAG_CRAMPED,
ROOMFLAG_NO_RANGED_ATTACK,
ROOMFLAG_NEED_DIVE,
ROOMFLAG_USED_IN_TRACK,
ROOMFLAG_CAN_CAMP,
ROOMFLAG_NOT_COMPLETE,
ROOMFLAG_HAS_KEYWORDS,
ROOMFLAG_NO_WANDERING_MOBS,
ROOMFLAG_NO_FOREIGN_WANDERING_MOBS,
ROOMFLAG_HAS_PROC_SCRIPT
};
enum vehicle_flags {
VEHFLAG_SELF_GUIDED,
VEHFLAG_STEALTHY,
VEHFLAG_UNLIMITED_FUEL,
VEHFLAG_FLIES,
VEHFLAG_CLIMBS,
VEHFLAG_FLOATS,
VEHFLAG_DIVES,
VEHFLAG_CAN_SEE_OUT
};
enum entity_type {
ENTITY_CRITTER,
ENTITY_ROOM,
ENTITY_DOOR,
ENTITY_OBJECT
};// entity_type
/** Used in affect_crit_stat, script.h */
enum StatTypeE {
STAT_HP,
STAT_MANA,
STAT_MOV
};
enum ComparisonTypeE {
CT_EQUALS,
CT_GT,
CT_LT
};
enum BugTypeE {
BT_IDEAS,
BT_BUGS
};
extern ServerConfig config;
#ifdef USEMYSQL
extern MYSQL* database;
enum ObjTableFieldIndex {
OBJTBL_OBJ_NUM,
OBJTBL_SOBJ_NUM,
OBJTBL_SHORT_DESC,
OBJTBL_IN_ROOM_DESC,
OBJTBL_LONG_DESC,
OBJTBL_CHARGES,
OBJTBL_TIMES_RECHARGABLE,
OBJTBL_PERCENT_LOAD,
OBJTBL_VIS_BIT,
OBJTBL_PRICE,
OBJTBL_FROM_ZONE,
OBJTBL_SKIN_NUMBER,
OBJTBL_MAX_IN_GAME,
OBJTBL_WEIGHT,
OBJTBL_DICE_SIDES,
OBJTBL_DICE_COUNT,
OBJTBL_LEVEL,
OBJTBL_KEY_NUM,
OBJTBL_MAX_WEIGHT,
OBJTBL_PERCENT_WEIGHT,
OBJTBL_TIME_TILL_DISSOLVE,
OBJTBL_NO_REST,
OBJTBL_ANTI_EVIL,
OBJTBL_ANTI_NEUTRAL,
OBJTBL_ANTI_GOOD,
OBJTBL_ANTI_DONATE,
OBJTBL_ANTI_DROP,
OBJTBL_ANTI_REMOVE,
OBJTBL_ANTI_MORTAL,
OBJTBL_ANTI_IMMORTAL,
OBJTBL_ANTI_DEMI,
OBJTBL_IN_USE,
OBJTBL_ANTI_WARRIOR,
OBJTBL_ANTI_SAGE,
OBJTBL_ANTI_WIZARD,
OBJTBL_ANTI_RANGER,
OBJTBL_ANTI_THIEF,
OBJTBL_ANTI_ALCHEMIST,
OBJTBL_ANTI_CLERIC,
OBJTBL_ANTI_BARD,
OBJTBL_ANTI_MOB,
OBJTBL_ANTI_PC,
OBJTBL_NOT_WORN,
OBJTBL_HEAD,
OBJTBL_NECK1,
OBJTBL_NECK2,
OBJTBL_AROUND_BODY,
OBJTBL_ARMS,
OBJTBL_WRIST1,
OBJTBL_WRIST2,
OBJTBL_HANDS,
OBJTBL_WIELDED,
OBJTBL_HELD,
OBJTBL_LIGHT,
OBJTBL_BODY,
OBJTBL_BELT,
OBJTBL_LEGS,
OBJTBL_FEET,
OBJTBL_FINGER1,
OBJTBL_FINGER2,
OBJTBL_SHIELD,
OBJTBL_NOT_A_WEAPON,
OBJTBL_SLASH,
OBJTBL_SMASH,
OBJTBL_PIERCE,
OBJTBL_WHIP,
OBJTBL_NEEDS_AMMO,
OBJTBL_DART_THROWER,
OBJTBL_BOW,
OBJTBL_DART,
OBJTBL_ARROW,
OBJTBL_JUNK,
OBJTBL_WAND,
OBJTBL_POTION,
OBJTBL_SCROLL,
OBJTBL_CONTAINER,
OBJTBL_COINS,
OBJTBL_ARMOR,
OBJTBL_WEAPON,
OBJTBL_LIGHT_SOURCE,
OBJTBL_CANTEEN,
OBJTBL_LIQUID,
OBJTBL_FOOD,
OBJTBL_BOAT,
OBJTBL_HAS_SPEC_PROC_DATA,
OBJTBL_TOOLBOX,
OBJTBL_CAULDRON,
OBJTBL_PEN,
OBJTBL_CONSTRUCT_COMPONENT,
OBJTBL_CONCOCT_COMPONENT,
OBJTBL_PARCHMENT,
OBJTBL_NEEDS_RESETTING,
OBJTBL_HERB,
OBJTBL_VENDING_MACHINE,
OBJTBL_BULLETIN_BOARD,
OBJTBL_IS_BUTCHERABLE,
OBJTBL_HAS_OBJ_SCRIPT,
OBJTBL_IS_CLOSED,
OBJTBL_IS_PICKABLE,
OBJTBL_IS_LOCKED,
OBJTBL_IS_MAG_LOCKABLE,
OBJTBL_IS_MAG_LOCKED,
OBJTBL_IS_DESCTRUCTABLE,
OBJTBL_IS_CORPSE,
OBJTBL_NOT_CLOSABLE,
OBJTBL_IS_PLAYER_OWNED,
OBJTBL_CONSUMES_KEY,
OBJTBL_CONSUME_TELEPORT,
OBJTBL_HAS_CONSTRUCT_DATA,
OBJTBL_HAS_SKIN,
OBJTBL_CONSUME_POISON,
OBJTBL_CASTS_SPELLS
};
enum ObjScriptTableFieldsIndex {
OSCRTB_OBJ_NUM,
OSCRTBL_SOBJ_NUM,
OSCRTBL_TRIGGER_CMD,
OSCRTBL_TARGET,
OSCRTBL_ACTOR,
OSCRTBL_DISCRIMINATOR,
OSCRTBL_PRECEDENCE,
OSCRTBL_SCRIPT_COMMANDS
};
enum ObjInvTableFieldsIndex {
OBJINVTBL_OBJ_NUM,
OBJINVTBL_SOBJ_NUM,
OBJINVTBL_CONTENT_OBJ_NUM,
OBJINVTBL_CONTENT_SOBJ_NUM,
OBJINVTBL_QUANTITY
};
enum DoorTableFieldsIndex {
DOORTBL_DOOR_NUM,
DOORTBL_LONG_DESC,
DOORTBL_VIS_BIT,
DOORTBL_TOKEN_NUM,
DOORTBL_IN_ZONE,
DOORTBL_OPEN_EXIT,
DOORTBL_MAGIC_LOCKABLE,
DOORTBL_CLOSED,
DOORTBL_LOCKED,
DOORTBL_PICKABLE,
DOORTBL_LOCKABLE,
DOORTBL_MAG_LOCKED,
DOORTBL_DESTRUCTABLE,
DOORTBL_CLOSABLE,
DOORTBL_FLIPPABLE,
DOORTBL_PC_CANT_OPEN,
DOORTBL_VEHICLE_EXIT,
DOORTBL_SECRET,
DOORTBL_BLOCKED,
DOORTBL_SECRET_WHEN_OPEN,
DOORTBL_CONSUMES_KEY,
DOORTBL_NO_PASSDOOR
};
enum RoomTableFieldsIndex {
ROOMTBL_ROOM_NUM,
ROOMTBL_SHORT_DESC,
ROOMTBL_LONG_DESC,
ROOMTBL_VIS_BIT,
ROOMTBL_MOVEMENT_COST,
ROOMTBL_FALL_TO,
ROOMTBL_IN_ZONE,
ROOMTBL_NO_RESTRICTIONS,
ROOMTBL_NO_IMM,
ROOMTBL_NO_GOD,
ROOMTBL_IS_PERM_DARK,
ROOMTBL_WEATHER,
ROOMTBL_NO_SHOUT,
ROOMTBL_NO_MAGICAL_EXIT,
ROOMTBL_IS_HAVEN,
ROOMTBL_NO_PK,
ROOMTBL_NO_MAGIC,
ROOMTBL_NO_MOB,
ROOMTBL_NO_POTIONS,
ROOMTBL_NO_STAFFS,
ROOMTBL_NO_MORTALS,
ROOMTBL_NORMALLY_DARK,
ROOMTBL_SHALLOW_WATER,
ROOMTBL_DEEP_WATER,
ROOMTBL_SWAMP,
ROOMTBL_NEED_FLY,
ROOMTBL_NEED_BOAT,
ROOMTBL_NEED_CLIMB,
ROOMTBL_NO_MAGICAL_ENTRY,
ROOMTBL_NO_VEHICLES,
ROOMTBL_CRAMPED,
ROOMTBL_NO_RANGED_ATTACK,
ROOMTBL_NEED_DIVE,
ROOMTBL_USED_IN_TRACK,
ROOMTBL_CAN_CAMP,
ROOMTBL_HAS_KEYWORDS,
ROOMTBL_NO_WANDERING_MOBS,
ROOMTBL_NO_FOREIGN_WANDERING_MOBS,
ROOMTBL_HAS_PROC_SCRIPT
};
enum RoomScriptTableFieldsIndex {
RMSCRTBL_ROOM_NUM,
RMSCRTBL_TRIGGER_CMD,
RMSCRTBL_TARGET,
RMSCRTBL_ACTOR,
RMSCRTBL_DISCRIMINATOR,
RMSCRTBL_PRECEDENCE,
RMSCRTBL_SCRIPT_COMMANDS
};
enum VehicleTableFieldsIndex {
VEHTBL_ROOM_NUM,
VEHTBL_IN_ROOM,
VEHTBL_TICKS_BETWEEN_STOPS,
VEHTBL_CUR_FUEL,
VEHTBL_MAX_FUEL,
VEHTBL_SELF_GUIDED,
VEHTBL_STEALTHY,
VEHTBL_UNLIMITED_FUEL,
VEHTBL_FLIES,
VEHTBL_CLIMBS,
VEHTBL_FLOATS,
VEHTBL_DIVES,
VEHTBL_CAN_SEE_OUT
};
enum CritterTableFieldsIndex {
CRITTBL_MOB_NUMBER,
CRITTBL_PC_NUMBER,
CRITTBL_SHORT_DESC,
CRITTBL_IN_ROOM_DESC,
CRITTBL_LONG_DESC,
CRITTBL_EXP_WORTH,
CRITTBL_GOLD,
CRITTBL_BANK_GOLD,
CRITTBL_POSITION,
CRITTBL_STR,
CRITTBL_INTELLIGENCE,
CRITTBL_CON,
CRITTBL_CHA,
CRITTBL_WIS,
CRITTBL_DEX,
CRITTBL_HIT,
CRITTBL_DAM,
CRITTBL_AC,
CRITTBL_ATTACKS,
CRITTBL_BHD_COUNT,
CRITTBL_BHD_SIDES,
CRITTBL_PAUSE_COUNT,
CRITTBL_SEX,
CRITTBL_CLASS,
CRITTBL_RACE,
CRITTBL_ALIGNMENT,
CRITTBL_LEVEL,
CRITTBL_IMM_LEVEL,
CRITTBL_HOMETOWN,
CRITTBL_WIMPY,
CRITTBL_PRACTICES,
CRITTBL_MOB_TYPE,
CRITTBL_RELIGION,
CRITTBL_GUILD,
CRITTBL_FROM_ZONE,
CRITTBL_VIS_BITS,
CRITTBL_SEE_BITS,
CRITTBL_IN_ROOM,
CRITTBL_SKIN,
CRITTBL_HP,
CRITTBL_MANA,
CRITTBL_MOV,
CRITTBL_HP_MAX,
CRITTBL_MANA_MAX,
CRITTBL_MOV_MAX,
CRITTBL_HP_REGEN,
CRITTBL_MANA_REGEN,
CRITTBL_MOV_REGEN,
CRITTBL_DAM_REC_MOD,
CRITTBL_DAM_GIV_MOD,
CRITTBL_HEAT_RESIS,
CRITTBL_COLD_RESIS,
CRITTBL_ELECT_RESIS,
CRITTBL_SPELL_RESIS,
CRITTBL_WEIGHT,
CRITTBL_MAX_IN_GAME,
CRITTBL_BIRTH_DAY,
CRITTBL_BIRTH_YEAR,
CRITTBL_RENT_DAY,
CRITTBL_RENT_YEAR,
CRITTBL_LAST_LOGIN_TIME,
CRITTBL_TOTAL_TIME_ONLINE,
CRITTBL_AGE,
CRITTBL_HUNGER,
CRITTBL_THIRST,
CRITTBL_DRUGGEDNESS,
CRITTBL_PKILLS,
CRITTBL_DEATHS,
CRITTBL_QUEST_POINTS,
CRITTBL_POOFIN_MSG,
CRITTBL_POOFOUT_MSG,
CRITTBL_PREFERRED_LANGUAGE,
CRITTBL_PASSWORD,
CRITTBL_LINES_ON_PAGE,
CRITTBL_PROMPT,
CRITTBL_GOS_COLOR,
CRITTBL_SAY_COLOR,
CRITTBL_YELL_COLOR,
CRITTBL_TELL_COLOR,
CRITTBL_DESC_COLOR,
CRITTBL_OBJ_LIST_COLOR,
CRITTBL_MOB_LIST_COLOR,
CRITTBL_DEFAULT_COLOR,
CRITTBL_BACKGROUND_COLOR,
CRITTBL_BATTLE_COLOR,
CRITTBL_USER1_COLOR,
CRITTBL_USER2_COLOR,
CRITTBL_USER3_COLOR,
CRITTBL_GUARDING_DIRECTION,
CRITTBL_STORE_MANAGER,
CRITTBL_WRONG_ALIGN_MSG,
CRITTBL_WRONG_CLASS_MSG,
CRITTBL_WRONG_RACE_MSG,
CRITTBL_MARKUP,
CRITTBL_BUY_PERCENTAGE,
CRITTBL_OPEN_TIME,
CRITTBL_CLOSE_TIME,
CRITTBL_SKILL_VIOLENCE,
CRITTBL_BENEVOLENCE,
CRITTBL_DEFENSIVENESS,
CRITTBL_BAD_ASSEDNESS,
CRITTBL_SOCIAL_AWARENESS,
CRITTBL_CAN_SEE_INVENTORY,
CRITTBL_USING_LIGHT_SOURCE,
CRITTBL_IS_FLYING,
CRITTBL_HAS_BOAT,
CRITTBL_CAN_CLIMB,
CRITTBL_GOSSIPS,
CRITTBL_YELLS,
CRITTBL_GRATZ,
CRITTBL_AUCTIONS,
CRITTBL_SHOUTS,
CRITTBL_SAYS,
CRITTBL_TELLS,
CRITTBL_WIZNETS,
CRITTBL_IS_PARALYZED,
CRITTBL_IS_PERM_SLEEPED,
CRITTBL_IS_DUAL_WIELDING,
CRITTBL_IS_SNEAKING,
CRITTBL_IN_USE,
CRITTBL_CAN_DIVE,
CRITTBL_IS_HIDE,
CRITTBL_IS_FROZEN,
CRITTBL_IS_GAGGED,
CRITTBL_HAS_IMM_DATA,
CRITTBL_CLOAKED,
CRITTBL_TANK_GRAPH,
CRITTBL_USING_CLIENT,
CRITTBL_AUTO_EXIT,
CRITTBL_NO_HASSLE,
CRITTBL_BRIEF,
CRITTBL_IS_BUILDER,
CRITTBL_AUTOLOOT,
CRITTBL_AUTOSPLIT,
CRITTBL_EXTRA_INFO,
CRITTBL_CR_BEHIND,
CRITTBL_DO_CARRIAGE_RETURN,
CRITTBL_CAN_DETECT_MAGIC,
CRITTBL_DETECT_INVENTORY,
CRITTBL_SHOW_VNUMS,
CRITTBL_HAS_POOFIN_POOFOUT_MSG,
CRITTBL_PAGE_OUTPUT,
CRITTBL_NO_WIZCHAT,
CRITTBL_HAS_COLORS,
CRITTBL_USE_COLOR,
CRITTBL_HAS_LANGUAGE_CHOICE,
CRITTBL_NO_SHOW_NPC_ENTRY,
CRITTBL_NO_BEEP,
CRITTBL_IS_REMORT,
CRITTBL_HAS_SACRIFICED,
CRITTBL_HAS_PROC_DATA,
CRITTBL_SCAVENGE,
CRITTBL_WANDER,
CRITTBL_SHOULD_DO_PROCS,
CRITTBL_EDIBLE,
CRITTBL_IS_BANKER,
CRITTBL_IS_SESSILE,
CRITTBL_NO_HOMING,
CRITTBL_DISOLVABLE,
CRITTBL_HAS_SKIN,
CRITTBL_HAS_MOB_SCRIPTS,
CRITTBL_IS_SHOPKEEPER,
CRITTBL_IS_TEACHER,
CRITTBL_LET_SAME_CLASS_PASS,
CRITTBL_LET_SAME_RACE_PASS,
CRITTBL_HAS_MOB_GIV_PROC,
CRITTBL_HAS_MOB_SAY_PROC,
CRITTBL_HAS_MOB_BOW_PROC,
CRITTBL_HAS_MOB_CURSE_PROC,
CRITTBL_PROC_WITH_SAME_RACE,
CRITTBL_PROC_WITH_SAME_ALIGN,
CRITTBL_PROC_WITH_SAME_CLASS,
CRITTBL_HAS_AI,
CRITTBL_BUY_0,
CRITTBL_SELL_0,
CRITTBL_OFFER_0,
CRITTBL_IS_PLAYER_OWNED,
CRITTBL_BUYS_NON_WEAPONS,
CRITTBL_BUYS_SLASHING_WEAPONS,
CRITTBL_BUYS_SMASHING_WEAPONS,
CRITTBL_BUYS_PIERCING_WEAPONS,
CRITTBL_BUYS_WHIPS,
CRITTBL_BUYS_AMMO_NEEDING_WEAPONS,
CRITTBL_BUYS_DART_THROWERS,
CRITTBL_BUYS_BOWS,
CRITTBL_BUYS_DARTS,
CRITTBL_BUYS_ARROWS,
CRITTBL_BUYS_JUNK,
CRITTBL_BUYS_WANDS,
CRITTBL_BUYS_POTIONS,
CRITTBL_BUYS_SCROLLS,
CRITTBL_BUYS_CONTAINERS,
CRITTBL_BUYS_COINS,
CRITTBL_BUYS_ARMOR,
CRITTBL_BUYS_WEAPONS,
CRITTBL_BUYS_LIGHTS,
CRITTBL_BUYS_CANTEENS,
CRITTBL_BUYS_LIQUIDS,
CRITTBL_BUYS_FOOD,
CRITTBL_BUYS_BOATS,
CRITTBL_BUYS_TOOLBOXES,
CRITTBL_BUYS_CAULDRENS,
CRITTBL_BUYS_PENS,
CRITTBL_BUYS_CONSTRUCT_COMPONENTS,
CRITTBL_BUYS_CONCOCT_COMPONENTS,
CRITTBL_BUYS_PARCHMENTS,
CRITTBL_BUYS_HERBS,
CRITTBL_BUYS_VENDING_MACHINES,
CRITTBL_TEACHES_WARRIORS,
CRITTBL_TEACHES_SAGES,
CRITTBL_TEACHES_WIZARDS,
CRITTBL_TEACHES_RANGERS,
CRITTBL_TEACHES_THIEVES,
CRITTBL_TEACHES_ALCHEMISTS,
CRITTBL_TEACHES_CLERICS,
CRITTBL_TEACHES_BARDS,
};
enum CritScriptTableFieldsIndex {
CRSTBL_MOB_NUMBER,
CRSTBL_TRIGGER_CMD,
CRSTBL_TARGET,
CRSTBL_ACTOR,
CRSTBL_DISCRIMINATOR,
CRSTBL_PRECEDENCE,
CRSTBL_SCRIPT_COMMANDS
};
enum CritProcTableFieldsIndex {
CRPTBL_MOB_NUMBER,
CRPTBL_PROC_TYPE,
CRPTBL_PROC_TOPIC,
CRPTBL_CORRECT_MSG,
CRPTBL_INCORRECT_MSG,
CRPTBL_TEST_ONUM,
CRPTBL_AWARD_ONUM,
CRPTBL_SKILL_NAME,
CRPTBL_TRANS_ROOM
};
#endif
extern const BitfieldNames MOB_DATA_FLAGS_NAMES;
extern const BitfieldNames MOB_PROC_DATA_FLAGS_NAMES;
extern const BitfieldNames SHOP_DATA_FLAGS_NAMES;
extern const BitfieldNames TEACH_DATA_FLAGS_NAMES;
extern const BitfieldNames PC_DATA_FLAGS_NAMES;
extern const BitfieldNames CRIT_FLAGS_NAMES;
extern const BitfieldNames DOOR_DATA_FLAGS_NAMES;
extern const BitfieldNames VEHICLE_FLAGS_NAMES;
extern const BitfieldNames ROOM_FLAGS_NAMES;
extern const BitfieldNames OBJ_FLAGS_NAMES;
extern const BitfieldNames OBJ_SPEC_DATA_FLAGS_NAMES;
extern const BitfieldNames BAG_FLAGS_NAMES;
extern const BitfieldNames STAT_AFFECT_NAMES;
extern LogStream mudlog;
extern LogStream obj_ptr_log;
extern bitfield Obj_Wear_Flags_Mask;
extern bitfield Obj_Consume_Procs_Mask;
extern bitfield Obj_Wear_Procs_Mask;
extern bitfield Obj_Remove_Procs_Mask;
extern char* olc_prompts[];
extern char* login_prompts[];
extern int do_shutdown;
extern int Cur_Max_Obj_Num;
extern int Cur_Max_Door_Num;
extern int Cur_Max_Room_Num;
extern int Cur_Max_Crit_Num;
extern int grr_reboot;
extern int BOOT_TIME; //time in seconds that it booted.
extern int DFLT_PORT;
extern int First_Room; /* used in pulsed spec procs */
extern int Last_Room; /* '' */
extern int GUARD_SKILL_NUM;
extern int SHIELD_SKILL_NUM;
extern int SECOND_ATTACK_SKILL_NUM;
extern int BLOCK_SKILL_NUM;
extern int DUAL_WIELD_SKILL_NUM;
extern int DODGE_SKILL_NUM;
extern int PARRY_SKILL_NUM;
extern int CRITICAL_STRIKE_SKILL_NUM;
extern int ENHANCED_DAMAGE_SKILL_NUM;
extern int FIRE_BLADE_SKILL_NUM;
extern int FROST_BLADE_SKILL_NUM;
extern int BLINDNESS_SKILL_NUM;
extern int ABSORB_BLOWS_SKILL_NUM;
extern
int
ABSORB_BLOWS_SKILL_NUM,
ACROBATICS_SKILL_NUM,
ANCIENT_LANGUAGES_SKILL_NUM,
ALCHEMY_SKILL_NUM,
ARCHERY_SKILL_NUM,
ARMOR_SKILL_NUM,
BACKSTAB_SKILL_NUM,
BALLISTICS_SKILL_NUM,
BASH_DOOR_SKILL_NUM,
BASH_SKILL_NUM,
BERZERK_SKILL_NUM,
BIND_WOUND_SKILL_NUM,
BLACKSMITHING_SKILL_NUM,
BLEND_SKILL_NUM,
BLESS_SKILL_NUM,
BLINDNESS_SKILL_NUM,
BLOCK_SKILL_NUM,
BLOCK_DOOR_SKILL_NUM,
BODYSLAM_SKILL_NUM,
BOW_SKILL_NUM,
BRAWLING_SKILL_NUM,
BREW_SKILL_NUM,
BURNING_HANDS_SKILL_NUM,
BUTCHER_SKILL_NUM,
CAMPING_SKILL_NUM,
CALM_SKILL_NUM,
CAMOUFLAGE_SKILL_NUM,
CAUSE_CRITICAL_SKILL_NUM,
CAUSE_SICKNESS_SKILL_NUM,
CHARM_SKILL_NUM,
CHANNELLING_SKILL_NUM,
CIRCLE_SKILL_NUM,
CLAW_SKILL_NUM,
CLIMBING_SKILL_NUM,
COMMERCE_SKILL_NUM,
CONSTRUCT_SKILL_NUM,
CONJURING_SKILL_NUM,
CONJURE_HORDE_SKILL_NUM,
CONJURE_MINION_SKILL_NUM,
CREATE_GOLEM_SKILL_NUM,
CREATE_LIGHT_SKILL_NUM,
CREATE_FOOD_SKILL_NUM,
CREATE_WATER_SKILL_NUM,
CREATION_SKILL_NUM,
CRITICAL_STRIKE_SKILL_NUM,
CURE_BLINDNESS_SKILL_NUM,
CURE_CRITICAL_SKILL_NUM,
CURE_SERIOUS_SKILL_NUM,
CURE_SKILL_NUM,
CURSE_SKILL_NUM,
DAGGER_SKILL_NUM,
DETECTION_SKILL_NUM,
DETECT_ALIGNMENT_SKILL_NUM,
DETECT_HIDDEN_SKILL_NUM,
DETECT_INVISIBILITY_SKILL_NUM,
DETECT_MAGIC_SKILL_NUM,
DETECT_POISON_SKILL_NUM,
DETECT_RESISTANCES_SKILL_NUM,
DISARM_SKILL_NUM,
DISTORTION_WALL_SKILL_NUM,
DISPEL_MAGIC_SKILL_NUM,
DISPEL_GOOD_SKILL_NUM,
DISPEL_EVIL_SKILL_NUM,
DIVINE_PROTECTION_SKILL_NUM,
DODGE_SKILL_NUM,
DOD_SKILL_NUM,
DOOR_BASH_SKILL_NUM,
DUAL_WIELD_SKILL_NUM,
EARTHMELD_SKILL_NUM,
ELEMENTALISM_SKILL_NUM,
ENCHANTMENT_SKILL_NUM,
ENCHANT_ARMOR_SKILL_NUM,
ENCHANT_WEAPON_SKILL_NUM,
ENHANCED_DAMAGE_SKILL_NUM,
ENTANGLE_SKILL_NUM,
FAERIE_FIRE_SKILL_NUM,
FENCING_SKILL_NUM,
FIRE_BLADE_SKILL_NUM,
FIREBALL_SKILL_NUM,
FIREPROOF_SKILL_NUM,
FIRESTORM_SKILL_NUM,
FIREWALL_SKILL_NUM,
FLAME_STRIKE_SKILL_NUM,
FLESH_TO_STONE_SKILL_NUM,
FLY_SKILL_NUM,
FORESTRY_SKILL_NUM,
FROST_BLADE_SKILL_NUM,
GATE_SKILL_NUM,
GROUP_HEAL_SKILL_NUM,
GUARD_SKILL_NUM,
HARM_SKILL_NUM,
HARMING_SKILL_NUM,
HASTE_SKILL_NUM,
HEAL_SKILL_NUM,
HEALING_SKILL_NUM,
HERBALISM_SKILL_NUM,
HEROS_FEAST_SKILL_NUM,
HIDE_SKILL_NUM,
HONOR_CODE_SKILL_NUM,
HOLY_WORD_SKILL_NUM,
HURL_SKILL_NUM,
ICESTORM_SKILL_NUM,
IDENTIFY_SKILL_NUM,
ILLUMINATE_SKILL_NUM,
ILLUSION_SKILL_NUM,
INFRAVISION_SKILL_NUM,
INVISIBILITY_SKILL_NUM,
KICK_SKILL_NUM,
LEADERSHIP_SKILL_NUM,
LIGHTNING_SKILL_NUM,
LIGHTNING_STORM_SKILL_NUM,
LITERACY_SKILL_NUM,
LOCATE_SKILL_NUM,
LOGIC_SKILL_NUM,
LORE_SKILL_NUM,
MACE_SKILL_NUM,
MAGIC_SHIELD_SKILL_NUM,
MANA_SKILL_NUM,
MARTIAL_ARTS_SKILL_NUM,
MASS_CHARM_SKILL_NUM,
MEDITATION_SKILL_NUM,
METEORSTORM_SKILL_NUM,
MIRROR_IMAGE_SKILL_NUM,
NECROMANCY_SKILL_NUM,
ORB_OF_POWER_SKILL_NUM,
PARRY_SKILL_NUM,
PASSDOOR_SKILL_NUM,
PHYSICAL_ARTS_SKILL_NUM,
PHYSIK_SKILL_NUM,
PFE_SKILL_NUM,
PFG_SKILL_NUM,
PHILOSOPHY_SKILL_NUM,
PICKLOCK_SKILL_NUM,
PLAGUE_SKILL_NUM,
POISON_SKILL_NUM,
PORTAL_SKILL_NUM,
PRISMATIC_GLOBE_SKILL_NUM,
PROTECTION_SKILL_NUM,
QUAKE_SKILL_NUM,
QUICKFOOT_SKILL_NUM,
RAISE_UNDEAD_SKILL_NUM,
RAINBOW_SKILL_NUM,
RECALL_SKILL_NUM,
RECHARGE_SKILL_NUM,
RELIGION_SKILL_NUM,
REMOVE_POISON_SKILL_NUM,
REMOVE_CURSE_SKILL_NUM,
RESCUE_SKILL_NUM,
RESTORE_SKILL_NUM,
RUNE_EDGE_SKILL_NUM,
SANCTUARY_SKILL_NUM,
SCAN_SKILL_NUM,
SCRIBE_SKILL_NUM,
SCROLLS_SKILL_NUM,
SCRYING_SKILL_NUM,
SECOND_ATTACK_SKILL_NUM,
SHADOWS_BLESSING_SKILL_NUM,
SHIELcD_SKILL_NUM,
SHOCKING_GRASP_SKILL_NUM,
SKIN_SKILL_NUM,
SLEEP_SKILL_NUM,
SNEAK_SKILL_NUM,
SOBER_SKILL_NUM,
STEAL_SKILL_NUM,
STRENGTH_SKILL_NUM,
STRENGTH_CONDITIONING_SKILL_NUM,
STONE_SKIN_SKILL_NUM,
SUMMON_SKILL_NUM,
SWORD_SKILL_NUM,
SWORDBOND_SKILL_NUM,
TAIL_SKILL_NUM,
TAMMUZ_SKILL_NUM,
TELEPORT_SKILL_NUM,
THROWING_SKILL_NUM,
TORNADO_SKILL_NUM,
TRACK_SKILL_NUM,
TRIP_SKILL_NUM,
TYPHOON_SKILL_NUM,
WEAKEN_SKILL_NUM,
WEAPON_MASTERY_SKILL_NUM,
WEB_SKILL_NUM,
WHIP_SKILL_NUM,
WIZARD_EYE_SKILL_NUM,
WRESTLING_SKILL_NUM,
// New skills for the Avian/Dragon race
// [RJY] - Trice
HOVER_SKILL_NUM,
WING_POWER_SKILL_NUM,
SECRET_FEATHER_SKILL_NUM,
SHRIEK_SKILL_NUM,
CARRY_SKILL_NUM,
PECK_SKILL_NUM,
TAILSWEEP_SKILL_NUM,
VISION_SKILL_NUM,
DIVE_SKILL_NUM,
GLARE_SKILL_NUM,
WINDZONE_SKILL_NUM,
PLUCK_SKILL_NUM,
BIRDSEYE_SKILL_NUM;
// Ripped off from some PennMUSH code someone posted to the
// mud-dev list.
/* ansi.h */
/* ANSI control codes for various neat-o terminal effects
* Some older versions of Ultrix don't appear to be able to
* handle these escape sequences. If lowercase 'a's are being
* stripped from @doings, and/or the output of the ANSI flag
* is screwed up, you have the Ultrix problem.
*
* To fix the ANSI problem, try replacing the '\x1B' with '\033'.
* To fix the problem with 'a's, replace all occurrences of '\a'
* in the code with '\07'.
*
*/
//#define ANSI_ECHO_ON "\n\x1B\x4D\x31\x32\x6C"
#define ANSI_ECHO_ON ""
#ifndef OLD_ANSI
#define BEEP_CHAR '\a'
#define ESC_CHAR '\x1B'
#define ANSI_NORMAL "\x1B[0m"
#define ANSI_HILITE "\x1B[1m"
#define ANSI_INVERSE "\x1B[7m"
#define ANSI_BLINK "\x1B[5m"
#define ANSI_UNDERSCORE "\x1B[4m"
#define ANSI_INV_BLINK "\x1B[7;5m"
#define ANSI_INV_HILITE "\x1B[1;7m"
#define ANSI_BLINK_HILITE "\x1B[1;5m"
#define ANSI_INV_BLINK_HILITE "\x1B[1;5;7m"
/* Foreground colors */
#define ANSI_BLACK "\x1B[30m"
#define ANSI_RED "\x1B[31m"
#define ANSI_GREEN "\x1B[32m"
#define ANSI_YELLOW "\x1B[33m"
#define ANSI_BLUE "\x1B[34m"
#define ANSI_MAGENTA "\x1B[35m"
#define ANSI_CYAN "\x1B[36m"
#define ANSI_WHITE "\x1B[37m"
/* Background colors */
#define ANSI_BBLACK "\x1B[40m"
#define ANSI_BRED "\x1B[41m"
#define ANSI_BGREEN "\x1B[42m"
#define ANSI_BYELLOW "\x1B[43m"
#define ANSI_BBLUE "\x1B[44m"
#define ANSI_BMAGENTA "\x1B[45m"
#define ANSI_BCYAN "\x1B[46m"
#define ANSI_BWHITE "\x1B[47m"
#else
#define BEEP_CHAR '\07'
#define ESC_CHAR '\033'
#define ANSI_NORMAL "\033[0m"
#define ANSI_HILITE "\033[1m"
#define ANSI_INVERSE "\033[7m"
#define ANSI_BLINK "\033[5m"
#define ANSI_UNDERSCORE "\033[4m"
#define ANSI_INV_BLINK "\033[7;5m"
#define ANSI_INV_HILITE "\033[1;7m"
#define ANSI_BLINK_HILITE "\033[1;5m"
#define ANSI_INV_BLINK_HILITE "\033[1;5;7m"
/* Foreground colors */
#define ANSI_BLACK "\033[30m"
#define ANSI_RED "\033[31m"
#define ANSI_GREEN "\033[32m"
#define ANSI_YELLOW "\033[33m"
#define ANSI_BLUE "\033[34m"
#define ANSI_MAGENTA "\033[35m"
#define ANSI_CYAN "\033[36m"
#define ANSI_WHITE "\033[37m"
/* Background colors */
#define ANSI_BBLACK "\033[40m"
#define ANSI_BRED "\033[41m"
#define ANSI_BGREEN "\033[42m"
#define ANSI_BYELLOW "\033[43m"
#define ANSI_BBLUE "\033[44m"
#define ANSI_BMAGENTA "\033[45m"
#define ANSI_BCYAN "\033[46m"
#define ANSI_BWHITE "\033[47m"
#endif
// End of penn-mush ansi color stuff...
extern const String ANSI_BLACK_S;
extern const String ANSI_RED_S;
extern const String ANSI_GREEN_S;
extern const String ANSI_YELLOW_S;
extern const String ANSI_BLUE_S;
extern const String ANSI_MAGENTA_S;
extern const String ANSI_CYAN_S;
extern const String ANSI_WHITE_S;
extern const String ANSI_BBLACK_S;
extern const String ANSI_BRED_S;
extern const String ANSI_BGREEN_S;
extern const String ANSI_BYELLOW_S;
extern const String ANSI_BBLUE_S;
extern const String ANSI_BMAGENTA_S;
extern const String ANSI_BCYAN_S;
extern const String ANSI_BWHITE_S;
#define NUMBER_OF_ZONES 80
#define NUMBER_OF_ROOMS 8000
#define NUMBER_OF_MOBS 1500
#define NUMBER_OF_ITEMS 1500
#define NUMBER_OF_DOORS 250
#define OBJ_MAX_EXTRAS 9
#define OBJ_CUR_STATS 4
#define MOB_LONG_DATA 3
#define MOB_SHORT_CUR_STATS 43
#define MOB_CUR_STATS 3
#define ROOM_CUR_STATS 4
// Flags sent to the do_emote method.
#define EMOTE_POSSESSIVE 1
#define EMOTE_NON_POSSESSIVE 2
#define IMM_LEVEL getImmLevel()
#define HUNTING mob->proc_data->temp_proc->hunting
#define TRACKING mob->proc_data->temp_proc->tracking
#define SNOOPED_BY pc->snoop_by
#define SNOOPING pc->snooping
#define MODE getMode()
#define BIRTH_DAY pc->birth_day
#define BIRTH_MONTH pc->birth_month
#define BIRTH_YEAR pc->birth_year
#define RENT_DAY pc->rent_day
#define RENT_YEAR pc->rent_year
#define WRONG_ALIGN_MSG mob->proc_data->wrong_align_msg
#define WRONG_RACE_MSG mob->proc_data->wrong_race_msg
#define WRONG_CLASS_MSG mob->proc_data->wrong_class_msg
#define GIVE_PROC mob->proc_data->give_proc
#define DOMOB_GIVE_NUM mob->proc_data->give_proc->test_num
#define GIVE_RIGHT_MSG mob->proc_data->give_proc->correct_msg
#define GIVE_RIGHT_ITEM mob->proc_data->give_proc->obj_num
#define GIVE_TEACH mob->proc_data->give_proc->skill_name
#define GIVE_WRONG_MSG mob->proc_data->give_proc->wrong_gift_msg
#define GIVE_TRANSPORT_ROOM mob->proc_data->give_proc->trans_to_room
#define BOW_PROC mob->proc_data->bow_proc
#define BOW_MSG mob->proc_data->bow_proc->correct_msg
#define BOW_ITEM mob->proc_data->bow_proc->obj_num
#define BOW_TEACH mob->proc_data->bow_proc->skill_name
#define BOW_TRANSPORT_ROOM mob->proc_data->bow_proc->trans_to_room
#define CURSE_PROC mob->proc_data->curse_proc
#define CURSE_MSG mob->proc_data->curse_proc->correct_msg
#define CURSE_ITEM mob->proc_data->curse_proc->obj_num
#define CURSE_TEACH mob->proc_data->curse_proc->skill_name
#define CURSE_TRANSPORT_ROOM mob->proc_data->curse_proc->trans_to_room
#define TOPICS mob->proc_data->topics
#define BUY_PERCENTAGE mob->proc_data->sh_data->buy_percentage
#define OPEN_TIME mob->proc_data->sh_data->open_time
#define CLOSE_TIME mob->proc_data->sh_data->close_time
#define MARKUP mob->proc_data->sh_data->markup
#define PC_FLAGS pc->pc_data_flags
#define GUARDING temp_crit->guarding
#define SHIELDING temp_crit->shielding
#define SHIELDED_BY temp_crit->shielded_by
#define GUARDED_BY temp_crit->guarded_by
#define MOB_FLAGS mob->mob_data_flags
#define IS_FIGHTING is_fighting
#define IS_BRIEF isBrief()
#define USING_CLIENT isUsingClient()
#define IS_SAY crit_flags.get(11)
#define IS_YELL crit_flags.get(7)
#define IS_GOSSIP crit_flags.get(6)
#define IS_SHOUT crit_flags.get(10)
#define IS_AUCTION crit_flags.get(9)
#define CRIT_FLAGS crit_flags
#define GROUPEES groupees
#define PETS pets
#define FOLLOWER_OF follower_of
#define MASTER master
#define EQ eq
#define SKILLS_KNOWN pc->skills_spells_known
#define FOLLOWERS followers
#define FLAG1 mob->proc_data->flag1
#define INT1 mob->proc_data->int1
#define SHOP_DATA_FLAGS mob->proc_data->sh_data->shop_data_flags
#define TEACH_DATA_FLAGS \
mob->proc_data->teach_data->teach_data_flags
#define MARKUP mob->proc_data->sh_data->markup
#define PERM_INV mob->proc_data->sh_data->perm_inv
#define MOB_NUM getIdNum()
#define MINI_AFFECTED_BY mini_affected_by
#define USING_LIGHT_SOURCE 1
#define DO_PROMPT 10 //in pc_data
#define PROMPT_STRING pc->prompt
#define PC_IS_BUILDER 11 // ""
#define BH_DICE_COUNT short_cur_stats[35]
#define BH_DICE_SIDES short_cur_stats[36]
#define PK_COUNT pc->pk_count
#define DIED_COUNT pc->died_count
#define QUEST_POINTS pc->quest_points
#define MOB_GOSSIP 6
#define MOB_YELL 7
#define MOB_GRATZ 8
#define MOB_AUC 9
#define MOB_SHOUT 10
#define MOB_SAY 11
#define MOB_TELL 12
#define MOB_WIZNET 13
#define BAG_FLAGS bag->bag_flags
#define OBJ_PRCNT_LOAD extras[2]
//#define OBJ_CUR_IN_GAME extras[3]
#define OBJ_MAX_IN_GAME extras[4]
#define OBJ_IN_ZONE cur_stats[3]
#define CASTS_THESE_SPELLS obj_proc->casts_these_spells
#define COMPONENT_ITEM1 obj_proc->construct_data->item1
#define COMPONENT_ITEM2 obj_proc->construct_data->item2
#define COMPONENT_ITEM3 obj_proc->construct_data->item3
#define COMPONENT_ITEM4 obj_proc->construct_data->item4
#define COMPONENT_ITEM5 obj_proc->construct_data->item5
#define COMPONENT_TARG obj_proc->construct_data->target_object
#define OBJ_PRICE cur_stats[1]
#define OBJ_FLAGS obj_flags
#define OBJ_SPEC_FLAGS obj_proc->obj_spec_data_flags
#define OBJ_VIS_BIT cur_stats[0]
#define IN_LIST in_list
#define OBJ_CUR_WEIGHT getCurWeight()
#define OBJ_MAX_WEIGHT getMaxWeight()
#define OBJ_NUM cur_stats[2]
#define CHARGES extras[0]
#define RECHARGE extras[1]
#define OBJ_BASE_WEIGHT extras[5]
#define OBJ_DAM_DICE_SIDES extras[6]
#define OBJ_DAM_DICE_COUNT extras[7]
#define OBJ_LEVEL extras[8]
#define OBJ_CONTAINER 54
#define OBJ_LIGHT_SOURCE 58
#define PRICE cur_stats[1]
#define RM_IS_HAVEN 7
#define RM_IS_NONPK 8
#define RM_IS_NOMAG 9
#define CRITTERS critters
#define DOORS doors
#define DOOR_VIS_BIT dr_data->vis_bit
#define VIS_DARK 1 //regarding vis_bits in general
#define O_COUNT pc.pc->imm_data->olc_counter
#define TEMP_OLC_INT pc.pc->imm_data->temp_olc_int
extern int do_shutdown; //in grrmud.cc
extern int grr_reboot; //in grrmud.cc
extern List<String*> banned_hosts;
extern class critter mob_list[NUMBER_OF_MOBS + 1];
extern class object obj_list[NUMBER_OF_ITEMS + 1];
extern class door_data door_list[NUMBER_OF_DOORS +1];
extern List<class door*> affected_doors;
extern List<critter*> affected_mobs; /* list those affected*/
extern List<struct object*> affected_objects; /* ditto for objs */
extern List<critter*> pc_list; //head of pc list
extern List<critter*> linkdead_list; //holds link dead folks
extern PtrArray<critter> proc_action_mobs; //holds mob-proc'ing mobs
extern const char* CensoredStrings[];
extern const char* DARK_MSG;
extern const char* SLEEP_MSG;
extern const char* BLIND_MSG;
extern const char* NOT_IN_HAVEN_MSG;
extern const char* NOT_IN_NOMAG_RM_MSG;
extern const char* SPELL_MUST_BE_STANDING_MSG;
extern const char* NO_PK_HERE_MSG;
extern const char* NO_MANA_MSG;
extern const char* PARSE_ERR_MSG;
extern const char* NO_KNOW_SPELL_MSG;
extern const char* LOST_CONCENTRATION_MSG_SELF;
extern const char* LOST_CONCENTRATION_MSG_OTHER;
extern const char* SPELL_ONLY_ON_SELF_MSG;
extern const char* HUH_MSG;
// RACES
#define OTHER_RACE 0
#define HUMAN 1
#define ANITRE 2
#define AVINTRE 3
#define DARKLING 4
#define DROW 5
#define DRAGON 6
#define DWARF 7
#define IRONCLAD 8
#define OGRUE 9
#define ROCKTROLL 10
#define ELF 11
#define FAERIE 12
#define ENTITY 13
#define SOMBRIAN 14
#define UNDEAD 15
#define ANIMAL 16
#define MONSTER 17
#define AVIAN 18
// PLAYER CLASSES
#define OTHER_CLASS 0
#define WARRIOR 1
#define SAGE 2
#define WIZARD 3
#define RANGER 4
#define THIEF 5
#define ALCHEMIST 6
#define CLERIC 7
#define BARD 8
#define SEX_FEMALE 0
#define SEX_MALE 1
#define SEX_NEUTER 2
#define DOOR_NORTH 3
#define DOOR_SOUTH 4
#define DOOR_EAST 1
#define DOOR_WEST 2
#define DOOR_NORTHWEST 7
#define DOOR_NORTHEAST 6
#define DOOR_SOUTHEAST 5
#define DOOR_SOUTHWEST 8
#define DOOR_UP 9
#define DOOR_DOWN 10
/******************* Types of Spells/Damages, for armor purposes ************/
#define FIRE 201
#define D_BREATH 202
#define ICE 203
#define ELECTRICITY 204
#define CRONIC 205 //poison,
#define NORMAL 206 //good ole hack/slash
#define SUMMON 207
#define CHARM 208
#define COERCION 209
#define AGILITY 210
#define HUNGER_ID 100 //these are for identification
#define THIRST_ID 101 //of stat_affects
#define DRUGGED_ID 102
#define CON_PLAYING 1
#define CON_LINKDEAD 2
#define CON_LOGGING_IN 3
#define TRUE 1
#define FALSE 0
#define MAX_INPUT_LEN 5000 //can input this many chars at one time
#define OUTPUT_MAX_LEN 25000 //can hold this many chars in output buffer
#define DFLT_DIR .
#define MAX_EQ 19
#define ROOM_INV 0
#define OBJ_INV 1
#define CRIT_INV 2
#define ROOM room_list[pc.getCurRoomNum()]
#define GOLD long_data[0]
#define EXP long_data[1]
#define BANK_GOLD long_data[2]
#define AGE pc->age
#define SEE_BIT cur_stats[1]
#define VIS_BIT cur_stats[0]
#define POS getPosn()
#define STR short_cur_stats[1]
#define INT short_cur_stats[2]
#define CON short_cur_stats[3]
#define CHA short_cur_stats[4]
#define WIS short_cur_stats[5]
#define DEX short_cur_stats[6]
#define HIT short_cur_stats[7]
#define DAM short_cur_stats[8]
#define AC short_cur_stats[9]
#define ATTACKS short_cur_stats[10]
#define SEX short_cur_stats[12]
#define CLASS short_cur_stats[13]
#define RACE short_cur_stats[14]
#define HP short_cur_stats[15]
#define MANA short_cur_stats[16]
#define MOV short_cur_stats[17]
#define ALIGN short_cur_stats[18]
#define LEVEL short_cur_stats[19]
#define IN_ROOM cur_stats[2]
#define WIMPY short_cur_stats[21]
#define PRACS short_cur_stats[22]
#define HP_MAX getHP_MAX()
#define MA_MAX short_cur_stats[24]
#define MV_MAX short_cur_stats[25]
#define CRITTER_TYPE short_cur_stats[26] /* was SMOB */
#define DAM_REC_MOD short_cur_stats[27]
#define DAM_GIV_MOD short_cur_stats[28]
#define HUNGER pc->hunger
#define THIRST pc->thirst
#define MAX_IN_GAME mob->max_in_game
#define DRUGGED pc->drugged
#define CRIT_WT_CARRIED getCurWeight()
#define CRIT_MAX_WT_CARRY getMaxWeight()
#define PAUSE short_cur_stats[11]
#define HEAT_RESIS short_cur_stats[29]
#define COLD_RESIS short_cur_stats[30]
#define ELEC_RESIS short_cur_stats[31]
#define SPEL_RESIS short_cur_stats[32]
#define RELIGION short_cur_stats[33]
//#define MOB_FROM_ZONE short_cur_stats[34]
#define HP_REGEN short_cur_stats[37]
#define MA_REGEN short_cur_stats[38]
#define MV_REGEN short_cur_stats[39]
#define GUILD short_cur_stats[40]
// SPEC_PROCS
#define BATTLE_SPEC_PROC 1
#define JUST_KILLED_PROC 2
#define OBJ_WEAR_PROC 3
#define OBJ_REMOVE_PROC 4
#define OBJ_CONSUME_PROC 5
#define JK_SPEC_PROC 6
extern const char* DONT_SEE_PERSON;
extern const char* NOT_IN_POSN;
extern String UNKNOWN_DESC;
extern String SOMEONE;
extern String SOMETHING;
extern String SOMEWHERE;
extern String UNKNOWN;
extern String NULL_STRING;
extern String NORTH;
extern String SOUTH;
extern String WEST;
extern String EAST;
extern String NORTHWEST;
extern String NORTHEAST;
extern String SOUTHWEST;
extern String SOUTHEAST;
extern String UP;
extern String DOWN;
extern char* critter_conditions[11];
#define MAX_LEVEL 45
extern long levels[MAX_LEVEL];
#endif