/************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefiting. We hope that you share your changes too. What goes * * around, comes around. * *************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * *************************************************************************** * 1stMud ROM Derivative (c) 2001-2004 by Markanth * * http://www.firstmud.com/ <markanth@firstmud.com> * * By using this code you have agreed to follow the term of * * the 1stMud license in ../doc/1stMud/LICENSE * ***************************************************************************/ #ifndef __DEFINES_H_ #define __DEFINES_H_ 1 #define EXTERN extern #define Declare_Do_F( fun ) Do_F fun #define Declare_Spec_F( fun ) Spec_F fun #define Declare_Spell_F( fun ) Spell_F fun #define Declare_Lookup_F( fun ) Lookup_F fun #define Declare_Ed_F( fun ) Ed_F fun #define Declare_Validate_F(fun) Validate_F fun #define Declare_Obj_F( fun ) Obj_F fun #define Declare_Room_F( fun ) Room_F fun #define Declare_TableRW_F(fun) TableRW_F fun #define Declare_TableSave_F(fun) TableSave_F fun #define Declare_TableShow_F(fun) TableShow_F fun #define Declare_Olc_F( fun ) Olc_F fun #define Declare_Boot_F( fun) Boot_F fun #define Declare_Nanny_F(fun) Nanny_F fun #define Do_Fun(name) void name(const char *n_fun, CharData * ch, \ const char *argument) #define Obj_Fun(name) void name(ObjData * obj, const char *argument) #define Room_Fun(name) void name(RoomIndex * room, const char *argument) #define Spec_Fun(fun) bool fun(CharData * ch) #define Spell_Fun(fun) bool fun( int sn, int level, CharData * ch, \ void *vo, int target ) #define Ed_Fun(blah) bool blah ( DataTable *table, CharData *ch, void *base, \ const char *argument, void *data ) #define Validate_Fun(fun) bool fun(CharData *ch, const void *arg) #define TableRW_Fun(fun) bool fun(action_t type, void *temp, const char **arg) #define TableSave_Fun(fun) void fun(action_t type) #define TableShow_Fun(fun) const char *fun(CharData *pch, void *temp) #define Olc_Fun(fun) bool fun(const char *n_fun, CharData *ch, \ const char *argument) #define Lookup_Fun(fun) int fun(const char *name) #define Boot_Fun(fun) void fun(FileData *fp) #define Nanny_Fun(fun) void fun(Descriptor *d, const char *argument) #define KILOBYTE (1024) #define MEGABYTE (1048576) #define GIGABYTE (1073741824) #define MAX_KEY_HASH (KILOBYTE) #define MAX_STRING_LENGTH (KILOBYTE * 8) #define MAX_INPUT_LENGTH (KILOBYTE) #define MAX_PRINTF_LENGTH (KILOBYTE * 25) #define MAX_EXPLORE_HASH (KILOBYTE * 8) #define MAX_SOCIAL_HASH ('z' + 1) #define MAX_CMD_HASH (126) #define MSL MAX_STRING_LENGTH #define MIL MAX_INPUT_LENGTH #define MPL MAX_PRINTF_LENGTH #ifndef PACKAGE_NAME #define MUDNAME "1stMud" #else #define MUDNAME PACKAGE_NAME #endif #ifndef PACKAGE_VERSION #define MUDVERSION "4.5" #else #define MUDVERSION PACKAGE_VERSION #endif #ifndef PACKAGE_STRING #define MUDSTRING MUDNAME MUDVERSION #else #define MUDSTRING PACKAGE_STRING #endif #define MUDCREDITS "Markanth [markanth@firstmud.com]" #ifndef TIME_T_FMT #define TIME_T_FMT "%ld" #endif #define SECOND 1L #define MINUTE (60L * SECOND) #define HOUR (60L * MINUTE) #define DAY (24L * HOUR) #define WEEK (7L * DAY) #define MAX_IN_GROUP 15 #define MAX_TZONE 30 #define MAX_ALIAS 10 #define MAX_BUDDY 10 #define MAX_IGNORE 10 #define MAX_GREETING 2 #define MAX_REMORT 2 #define CLASS_COUNT (MAX_REMORT + 1) #define MAX_MCLASS (CLASS_COUNT + 1) #define MAX_RANK 6 #define MAX_VNUM 60000 #define MAX_LEVEL 60 #define LEVEL_IMMORTAL (MAX_LEVEL - 8) #define MAX_MORTAL_LEVEL (MAX_LEVEL - 9) #define LEVEL_HERO (MAX_MORTAL_LEVEL - MAX_REMORT) #define PC_HOME_COUNT 5 #define PC_HOME_KEY 6 #define PC_HOME_ROOM 7 #define MAX_HOME_VNUMS 8 #define HAS_HOME(ch) ((ch)->pcdata->home[PC_HOME_COUNT]) #define HOME_KEY(ch) ((ch)->pcdata->home[PC_HOME_KEY]) #define HOME_ROOM(ch) ((ch)->pcdata->home[PC_HOME_ROOM]) #define PULSE_PER_SECOND (mud_info.pulsepersec) #define PULSE_VIOLENCE ( 3 * PULSE_PER_SECOND) #define PULSE_MOBILE ( 4 * PULSE_PER_SECOND) #define PULSE_MUSIC ( 6 * PULSE_PER_SECOND) #define PULSE_TICK (45 * PULSE_PER_SECOND) #define PULSE_AREA (120 * PULSE_PER_SECOND) #define PULSE_SENDSTAT (10 * PULSE_PER_SECOND) #define AUCTION_LENGTH (65 * PULSE_PER_SECOND) #define MAX_NEST 100 #define IMPLEMENTOR MAX_LEVEL #define CREATOR (MAX_LEVEL - 1) #define SUPREME (MAX_LEVEL - 2) #define DEITY (MAX_LEVEL - 3) #define GOD (MAX_LEVEL - 4) #define IMMORTAL (MAX_LEVEL - 5) #define DEMI (MAX_LEVEL - 6) #define ANGEL (MAX_LEVEL - 7) #define AVATAR (MAX_LEVEL - 8) #define HERO LEVEL_HERO #define Season (((time_info.month / 4) > 3) ? 3 : (time_info.month / 4)) #define HOURS_IN_DAY 24 #define DAYS_IN_MONTH 30 #define MONTHS_IN_YEAR 17 #define DAYS_IN_WEEK 7 #define MAX_CLIMATE 5 #define MAX_LINES 100 #define MAX_GLOBAL 10 typedef enum { BUFFER_SAFE, BUFFER_OVERFLOW, BUFFER_FREED } buf_t; typedef enum { COLS_BUF, COLS_CHAR, COLS_DESC } column_t; typedef enum { SUN_DARK, SUN_RISE, SUN_LIGHT, SUN_SET, SUN_NOON } sun_t; typedef enum { CON_GET_NAME, CON_GET_OLD_PASSWORD, CON_CONFIRM_NEW_NAME, CON_GET_NEW_PASSWORD, CON_CONFIRM_NEW_PASSWORD, CON_GET_NEW_RACE, CON_GET_NEW_SEX, CON_GET_NEW_CLASS, CON_GET_ALIGNMENT, CON_GET_DEITY, CON_GET_TIMEZONE, CON_GET_EMAIL, CON_GET_SCR_SIZE, CON_CONFIRM_SCR_SIZE, CON_DEFAULT_CHOICE, CON_GEN_GROUPS, CON_PICK_WEAPON, CON_READ_IMOTD, CON_READ_MOTD, CON_BREAK_CONNECT, CON_GET_TERM, CON_COPYOVER_RECOVER, CON_ROLL_STATS, CON_GET_WIZ, CON_PLAYING, CON_NOTE_TO, CON_NOTE_SUBJECT, CON_NOTE_EXPIRE, CON_NOTE_TEXT, CON_NOTE_FINISH } connect_t; #define MAX_TRADE 5 #define MAX_RACE_SKILL 5 #define STAT_STR 0 #define STAT_INT 1 #define STAT_WIS 2 #define STAT_DEX 3 #define STAT_CON 4 #define STAT_MAX 5 #define MAX_STATS 30 typedef enum { GQUEST_OFF, GQUEST_WAITING, GQUEST_RUNNING } gquest_t; typedef enum { TO_AFFECTS, TO_OBJECT, TO_IMMUNE, TO_RESIST, TO_VULN, TO_WEAPON } where_t; typedef enum { CRS_NONE, CRS_REBOOT, CRS_SHUTDOWN, CRS_COPYOVER, CRS_COPYOVER_RECOVER } crs_t; typedef enum { DAM_NONE, DAM_BASH, DAM_PIERCE, DAM_SLASH, DAM_FIRE, DAM_COLD, DAM_LIGHTNING, DAM_ACID, DAM_POISON, DAM_NEGATIVE, DAM_HOLY, DAM_ENERGY, DAM_MENTAL, DAM_DISEASE, DAM_DROWNING, DAM_LIGHT, DAM_OTHER, DAM_HARM, DAM_CHARM, DAM_SOUND } dam_class; typedef enum { IMMUNE_NONE = -1, IS_NORMAL, IS_IMMUNE, IS_RESISTANT, IS_VULNERABLE } immune_t; typedef enum { SEX_NONE = -1, SEX_NEUTRAL, SEX_MALE, SEX_FEMALE, SEX_RANDOM } sex_t; #define AC_PIERCE 0 #define AC_BASH 1 #define AC_SLASH 2 #define AC_EXOTIC 3 #define MAX_AC 4 #define DICE_NUMBER 0 #define DICE_TYPE 1 #define DICE_BONUS 2 #define DICE_MAX 3 typedef enum { SIZE_NONE = -1, SIZE_TINY, SIZE_SMALL, SIZE_MEDIUM, SIZE_LARGE, SIZE_HUGE, SIZE_GIANT } size_type; typedef enum { ITEM_NONE, ITEM_LIGHT, ITEM_SCROLL, ITEM_WAND, ITEM_STAFF, ITEM_WEAPON, ITEM_NONE6, ITEM_NONE7, ITEM_TREASURE, ITEM_ARMOR, ITEM_POTION, ITEM_CLOTHING, ITEM_FURNITURE, ITEM_TRASH, ITEM_NONE14, ITEM_CONTAINER, ITEM_NONE16, ITEM_DRINK_CON, ITEM_KEY, ITEM_FOOD, ITEM_MONEY, ITEM_NONE21, ITEM_BOAT, ITEM_CORPSE_NPC, ITEM_CORPSE_PC, ITEM_FOUNTAIN, ITEM_PILL, ITEM_PROTECT, ITEM_MAP, ITEM_PORTAL, ITEM_WARP_STONE, ITEM_ROOM_KEY, ITEM_GEM, ITEM_JEWELRY, ITEM_JUKEBOX } item_t; typedef enum { WEAPON_EXOTIC, WEAPON_SWORD, WEAPON_DAGGER, WEAPON_SPEAR, WEAPON_MACE, WEAPON_AXE, WEAPON_FLAIL, WEAPON_WHIP, WEAPON_POLEARM } weapon_t; typedef enum { APPLY_NONE, APPLY_STR, APPLY_DEX, APPLY_INT, APPLY_WIS, APPLY_CON, APPLY_SEX, APPLY_CLASS, APPLY_LEVEL, APPLY_AGE, APPLY_HEIGHT, APPLY_WEIGHT, APPLY_MANA, APPLY_HIT, APPLY_MOVE, APPLY_GOLD, APPLY_EXP, APPLY_AC, APPLY_HITROLL, APPLY_DAMROLL, APPLY_SAVES, APPLY_SAVING_PARA, APPLY_SAVING_ROD, APPLY_SAVING_PETRI, APPLY_SAVING_BREATH, APPLY_SAVING_SPELL, APPLY_SPELL_AFFECT } apply_t; #define DIR_NORTH 0 #define DIR_EAST 1 #define DIR_SOUTH 2 #define DIR_WEST 3 #define DIR_UP 4 #define DIR_DOWN 5 #define MAX_DIR 6 typedef enum { SECT_INSIDE, SECT_CITY, SECT_FIELD, SECT_FOREST, SECT_HILLS, SECT_MOUNTAIN, SECT_WATER_SWIM, SECT_WATER_NOSWIM, SECT_ICE, SECT_AIR, SECT_DESERT, SECT_ROAD, SECT_PATH, SECT_SWAMP, SECT_JUNGLE, SECT_CAVE, SECT_NONE, SECT_MAX } sector_t; typedef enum { WEAR_NONE = -1, WEAR_LIGHT, WEAR_FINGER_L, WEAR_FINGER_R, WEAR_NECK_1, WEAR_NECK_2, WEAR_BODY, WEAR_HEAD, WEAR_LEGS, WEAR_FEET, WEAR_HANDS, WEAR_ARMS, WEAR_SHIELD, WEAR_ABOUT, WEAR_WAIST, WEAR_WRIST_L, WEAR_WRIST_R, WEAR_WIELD, WEAR_HOLD, WEAR_FLOAT, WEAR_SECONDARY, MAX_WEAR } wloc_t; #define COND_DRUNK 0 #define COND_FULL 1 #define COND_THIRST 2 #define COND_HUNGER 3 #define COND_MAX 4 typedef enum { POS_DEAD, POS_MORTAL, POS_INCAP, POS_STUNNED, POS_SLEEPING, POS_RESTING, POS_SITTING, POS_FIGHTING, POS_STANDING, POS_NONE = -1 } position_t; #define STANCE_NONE -1 #define STANCE_NORMAL 0 #define STANCE_VIPER 1 #define STANCE_CRANE 2 #define STANCE_CRAB 3 #define STANCE_MONGOOSE 4 #define STANCE_BULL 5 #define STANCE_MANTIS 6 #define STANCE_DRAGON 7 #define STANCE_TIGER 8 #define STANCE_MONKEY 9 #define STANCE_SWALLOW 10 #define STANCE_CURRENT 11 #define STANCE_AUTODROP 12 #define MAX_STANCE 13 typedef enum { WAR_OFF, WAR_WAITING, WAR_RUNNING } war_t; #define PK_KILLS 0 #define MOB_KILLS 1 #define PK_DEATHS 2 #define MOB_DEATHS 3 #define MAX_GAMESTAT 4 typedef enum { FIGHT_OPEN, FIGHT_START, FIGHT_BUSY, FIGHT_LOCK } arena_t; typedef enum { CHANNEL_NORMAL, CHANNEL_SOCIAL, CHANNEL_EMOTE, CHANNEL_THINK, CHANNEL_WHO } chanarg_t; #define LIQ_WATER 0 #define TYPE_UNDEFINED -1 #define TYPE_HIT 1000 typedef enum { TAR_IGNORE, TAR_CHAR_OFFENSIVE, TAR_CHAR_DEFENSIVE, TAR_CHAR_SELF, TAR_OBJ_INV, TAR_OBJ_CHAR_DEF, TAR_OBJ_CHAR_OFF, TAR_NONE = -1 } tar_t; typedef enum { TARGET_CHAR, TARGET_OBJ, TARGET_ROOM, TARGET_NONE } target_t; typedef enum { PRG_NONE, PRG_MPROG, PRG_OPROG, PRG_RPROG } prog_t; #define NO_FLAG -99 #define AREA_VERSION 4 #define PFILE_VERSION 12 typedef enum { STRING_NONE, STRING_FOUND, STRING_END } strshow_t; #define DEFAULT_SCR_WIDTH 80 #define DEFAULT_SCR_HEIGHT 25 typedef enum { RUNLEVEL_INIT, RUNLEVEL_BOOTING, RUNLEVEL_SAFE_BOOT, RUNLEVEL_MAIN_LOOP, RUNLEVEL_SHUTDOWN } runlevel_t; #define AUTODEFAULT 0 #define AUTOEASY 1 #define AUTOSET 2 #define AUTOHARD 3 #define AUTORANDOM 4 typedef enum { SAVE_NONE, SAVE_CHAR, SAVE_CORPSE, SAVE_ROOM, SAVE_PET, SAVE_MOB, SAVE_MAX } save_t; typedef enum { AUC_GOLD, AUC_QUEST, AUC_TRIVIA } auc_t; typedef enum { FIELD_STRING, FIELD_FUNCTION_INT_TO_STR, FIELD_LONG_ARRAY, FIELD_FLAGSTRING, FIELD_INT, FIELD_FLAGVECTOR, FIELD_BOOL, FIELD_INT_ARRAY, FIELD_STRING_ARRAY, FIELD_INT_FLAGSTRING, FIELD_BOOL_ARRAY, FIELD_INUTIL, FIELD_INT_ALLOC_ARRAY, FIELD_LONG, FIELD_STRING_ARRAY_NULL, FIELD_CLAN_RANK, FIELD_LONG_ALLOC_ARRAY, FIELD_STRING_SIZE, FIELD_LETTER, FIELD_INT_FUNCTION, FIELD_FLOAT, FIELD_DOUBLE, FIELD_TIME, FIELD_INT_FUNC_ARRAY, FIELD_CHARDATA, FIELD_SPEC_FUN, FIELD_MOBINDEX, FIELD_RACE, FIELD_DEITY, FIELD_AREA, FIELD_ROOM, FIELD_CLAN, FIELD_OBJ, FIELD_PCDATA, FIELD_DESC, FIELD_SHOP, FIELD_EXDESC, FIELD_RESET_DATA, FIELD_EXIT_DATA, FIELD_PROG_LIST, FIELD_PCODE, FIELD_OBJINDEX, FIELD_AFFECT, FIELD_FUNCTION, FIELD_DICE, FIELD_VNUM, FIELD_MONEY, FIELD_MSP, FIELD_NAMELIST, FIELD_COLOR_ARRAY, FIELD_COLOR } field_t; typedef enum { ED_AREA, ED_ROOM, ED_OBJECT, ED_MOBILE, ED_MPCODE, ED_OPCODE, ED_RPCODE, ED_HELP, ED_SOCIAL, ED_CLAN, ED_CMD, ED_SKILL, ED_GROUP, ED_RACE, ED_CLASS, ED_DEITY, ED_CHAN, ED_MUD, ED_SONG, ED_COLOR, ED_MAX, ED_NONE = -1, } ed_t; typedef enum { spec_public_flag, spec_clan_flag, spec_imm_flag, spec_buddy_flag, spec_none } channel_types; typedef enum { WAR_NONE, WAR_CLAN, WAR_RACE, WAR_CLASS, WAR_GENOCIDE, WAR_DEITY, WAR_SEX, MAX_WAR } war_types; typedef enum { Justify, Left, Center, Right } align_t; typedef enum { LOG_NORMAL, LOG_ALWAYS, LOG_NEVER } log_t; typedef enum { SYSLOG_STDERR, SYSLOG_FILE, SYSLOG_OFF } syslog_t; #define END_MARK "END" typedef enum { VALUE_SILVER, VALUE_GOLD, VALUE_DEFAULT = VALUE_SILVER } currency_t; #define DEFAULT_PROMPT "<{R%h/%Hhp {M%m/%M/m {B%v/%vmv{x>" #define IMMORTAL_PROMPT DEFAULT_PROMPT " {m[{M%e{m]{x%c<{yG: {Y%g {wS: {W%s{x> {g[{G%r[{R%R{G], %z{g] {C%Qgq{W %o %O{x" typedef enum { BONUS_OFF, BONUS_XP, BONUS_QP, BONUS_DAM } bonus_t; #define CLAN_ROOM_ENTRANCE 0 #define CLAN_ROOM_MORGUE 1 #define MAX_CLAN_ROOM 2 typedef enum { CMDCAT_NOSHOW, CMDCAT_NONE, CMDCAT_IMMORTAL, CMDCAT_COMBAT, CMDCAT_SETTINGS, CMDCAT_INFO, CMDCAT_MOVEMENT, CMDCAT_COMMUNICATION, CMDCAT_MISC, CMDCAT_OLC, CMDCAT_OBJECT, CMDCAT_CLAN, MAX_CMDCAT } cmd_cat; typedef enum { CRASH_UNLIKELY, CRASH_LIKELY, CRASH_UPDATING, CRASH_UNKNOWN, CRASH_BOOT, CRASH_LOOPING } crash_status; typedef enum { MSP_NONE, MSP_COMBAT, MSP_WEATHER, MSP_SKILL } msp_t; typedef enum { HELP_UNKNOWN, HELP_CREATION, HELP_SPELLS, HELP_COMMANDS, HELP_NEWBIE, HELP_IMMORTAL, HELP_OLC, HELP_CLAN, HELP_MAX } help_t; typedef enum { QUEST_RETURN_FINDMOB = -5, QUEST_RETURN_FINDROOM = -4, QUEST_RETURN_DELIVER = -3, QUEST_RETURN_RETRIEVE = -2, QUEST_RETURN_KILL = -1, QUEST_NONE = 0, QUEST_KILL = 1, QUEST_RETRIEVE = 2, QUEST_DELIVER = 3, QUEST_FINDROOM = 4, QUEST_FINDMOB = 5 } quest_t; #define QUEST_TIME 20 typedef enum { DEF_NORMAL, DEF_INCLUDE, DEF_EXCLUDE, DEF_READONLY } board_def; #define MAX_BOARD 7 #define DEFAULT_BOARD 0 #define MAX_LINE_LENGTH 80 #define MAX_NOTE_TEXT (4*MAX_STRING_LENGTH - 1000) #define BOARD_NOTFOUND -1 #define BOARD_NOACCESS -1 typedef enum { PFILE_NONE, PFILE_NORMAL, PFILE_BACKUP, PFILE_DELETED } pfile_t; typedef enum { ETHOS_LAWFUL_GOOD = 4, ETHOS_NEUTRAL_GOOD = 3, ETHOS_CHAOTIC_GOOD = 2, ETHOS_LAWFUL_NEUTRAL = 1, ETHOS_TRUE_NEUTRAL = 0, ETHOS_EVIL_NEUTRAL = -1, ETHOS_LAWFUL_EVIL = -2, ETHOS_NEUTRAL_EVIL = -3, ETHOS_CHAOTIC_EVIL = -4 } ethos_t; typedef union { RoomIndex *room; ObjIndex *obj; CharIndex *mob; } rom_t; #define TIMER_NONE 0 #define TIMER_PK 1 #define TIMER_OUTLAW 2 #define MAX_TIMER 3 /* Length of who string */ #define TITLEBLOCK 15 #endif