--- mud.h Mon Jun 2 22:46:08 1997 +++ new/mud.h Tue Jun 3 23:46:53 1997 @@ -167,10 +167,10 @@ /* * String and memory management parameters. */ -#define MAX_KEY_HASH 2048 -#define MAX_STRING_LENGTH 4096 /* buf */ -#define MAX_INPUT_LENGTH 1024 /* arg */ -#define MAX_INBUF_SIZE 1024 +#define MAX_KEY_HASH 16384 +#define MAX_STRING_LENGTH 16384 /* buf */ +#define MAX_INPUT_LENGTH 16384 /* arg */ +#define MAX_INBUF_SIZE 16384 #define HASHSTR /* use string hashing */ @@ -188,10 +188,10 @@ #define MIN_EXP_WORTH 20 #define MAX_REXITS 20 /* Maximum exits allowed in 1 room */ -#define MAX_SKILL 225 -#define MAX_CLASS 8 /* Increased to 8 for Augurer - SB*/ +#define MAX_SKILL 300 +#define MAX_CLASS 11 /* Increased to 8 for Augurer - SB*/ #define MAX_NPC_CLASS 26 -#define MAX_RACE 14 +#define MAX_RACE 15 #define MAX_NPC_RACE 91 #define MAX_LEVEL 65 #define MAX_CLAN 50 @@ -336,15 +336,30 @@ /* * Connected state for a channel. */ -typedef enum -{ - CON_PLAYING, CON_GET_NAME, CON_GET_OLD_PASSWORD, - CON_CONFIRM_NEW_NAME, CON_GET_NEW_PASSWORD, CON_CONFIRM_NEW_PASSWORD, - CON_GET_NEW_SEX, CON_GET_NEW_CLASS, CON_READ_MOTD, - CON_GET_NEW_RACE, CON_GET_EMULATION, CON_EDITING, - CON_GET_WANT_RIPANSI, CON_TITLE, CON_PRESS_ENTER, - CON_WAIT_1, CON_WAIT_2, CON_WAIT_3, - CON_ACCEPTED, CON_GET_PKILL, CON_READ_IMOTD +typedef enum { + CON_GET_NAME = -100, + CON_GET_OLD_PASSWORD, + CON_CONFIRM_NEW_NAME, + CON_GET_NEW_PASSWORD, + CON_CONFIRM_NEW_PASSWORD, + CON_GET_NEW_SEX, + CON_GET_NEW_CLASS, + CON_READ_MOTD, + CON_GET_NEW_RACE, + CON_GET_EMULATION, + CON_GET_WANT_RIPANSI, + CON_TITLE, + CON_PRESS_ENTER, + CON_WAIT_1, + CON_WAIT_2, + CON_WAIT_3, + CON_ACCEPTED, + CON_GET_PKILL, + CON_READ_IMOTD, + CON_COPYOVER_RECOVER, + + CON_PLAYING = 0, + CON_EDITING } connection_types; /* @@ -452,13 +467,13 @@ #define RACE_DWARF 2 #define RACE_HALFLING 3 #define RACE_PIXIE 4 -#define RACE_VAMPIRE 5 -#define RACE_HALF_OGRE 6 -#define RACE_HALF_ORC 7 -#define RACE_HALF_TROLL 8 -#define RACE_HALF_ELF 9 -#define RACE_GITH 10 - +#define RACE_HALF_OGRE 5 +#define RACE_HALF_ORC 6 +#define RACE_HALF_TROLL 7 +#define RACE_HALF_ELF 8 +#define RACE_GITH 9 +#define RACE_VAMPIRE 10 +#define RACE_DEMON 11 /* npc races */ #define RACE_DRAGON 31 @@ -471,12 +486,14 @@ #define CLASS_DRUID 5 #define CLASS_RANGER 6 #define CLASS_AUGURER 7 /* 7-7-96 SB */ +#define CLASS_ASSASSIN 8 +#define CLASS_DEMON 9 +#define CLASS_ANGEL 10 /* -#define CLASS_WEREWOLF 8 -#define CLASS_LYCANTHROPE 9 -#define CLASS_LICH 10 */ + /* * Languages -- Altrag */ @@ -1295,6 +1312,7 @@ #define ITEM_DEATHROT BV28 #define ITEM_BURRIED BV29 /* item is underground */ #define ITEM_PROTOTYPE BV30 +#define ITEM_ANTI_DEMON BV31 /* Magic flags - extra extra_flags for objects that are used in spells */ #define ITEM_RETURNING BV00 @@ -1667,7 +1685,7 @@ char * short_descr; char * long_descr; char * description; - sh_int vnum; + int vnum; sh_int count; sh_int killed; sh_int sex; @@ -1911,12 +1929,12 @@ int illegal_pk; /* Number of illegal pk's committed */ long int outcast_time; /* The time at which the char was outcast */ long int restore_time; /* The last time the char did a restore all */ - sh_int r_range_lo; /* room range */ - sh_int r_range_hi; - sh_int m_range_lo; /* mob range */ - sh_int m_range_hi; - sh_int o_range_lo; /* obj range */ - sh_int o_range_hi; + int r_range_lo; /* room range */ + int r_range_hi; + int m_range_lo; /* mob range */ + int m_range_hi; + int o_range_lo; /* obj range */ + int o_range_hi; sh_int wizinvis; /* wizinvis level */ sh_int min_snoop; /* minimum snoop level */ sh_int condition [MAX_CONDS]; @@ -1939,7 +1957,6 @@ }; - /* * Liquids. */ @@ -2129,8 +2146,8 @@ int hi_r_vnum; int low_o_vnum; int hi_o_vnum; - sh_int low_m_vnum; - sh_int hi_m_vnum; + int low_m_vnum; + int hi_m_vnum; int low_soft_range; int hi_soft_range; int low_hard_range; @@ -2164,8 +2181,8 @@ int hi_r_vnum; int low_o_vnum; int hi_o_vnum; - sh_int low_m_vnum; - sh_int hi_m_vnum; + int low_m_vnum; + int hi_m_vnum; }; @@ -2451,6 +2468,7 @@ #define SET_BIT(var, bit) ((var) |= (bit)) #define REMOVE_BIT(var, bit) ((var) &= ~(bit)) #define TOGGLE_BIT(var, bit) ((var) ^= (bit)) +#define CH(d) ((d)->original ? (d)->original : (d)->character) /* * Memory allocation macros. @@ -2639,6 +2657,7 @@ */ #define IS_NPC(ch) (IS_SET((ch)->act, ACT_IS_NPC)) #define IS_IMMORTAL(ch) (get_trust((ch)) >= LEVEL_IMMORTAL) +#define IS_GOD(ch) (get_trust((ch)) >= LEVEL_ASCENDANT) #define IS_HERO(ch) (get_trust((ch)) >= LEVEL_HERO) #define IS_AFFECTED(ch, sn) (IS_SET((ch)->affected_by, (sn))) #define HAS_BODYPART(ch, part) ((ch)->xflags == 0 || IS_SET((ch)->xflags, (part))) @@ -2648,6 +2667,9 @@ #define IS_VAMPIRE(ch) (!IS_NPC(ch) \ && ((ch)->race==RACE_VAMPIRE \ || (ch)->class==CLASS_VAMPIRE)) +#define IS_DEMON(ch) (!IS_NPC(ch) \ + && ((ch)->race==RACE_DEMON \ + || (ch)->class==CLASS_DEMON)) #define IS_GOOD(ch) ((ch)->alignment >= 350) #define IS_EVIL(ch) ((ch)->alignment <= -350) #define IS_NEUTRAL(ch) (!IS_GOOD(ch) && !IS_EVIL(ch)) @@ -2957,6 +2979,7 @@ * Defined in act_*.c (mostly). */ DECLARE_DO_FUN( skill_notfound ); +DECLARE_DO_FUN( do_ambush ); DECLARE_DO_FUN( do_aassign ); DECLARE_DO_FUN( do_advance ); DECLARE_DO_FUN( do_affected ); @@ -3014,6 +3037,7 @@ DECLARE_DO_FUN( do_compare ); DECLARE_DO_FUN( do_config ); DECLARE_DO_FUN( do_consider ); +DECLARE_DO_FUN( do_copyover ); DECLARE_DO_FUN( do_council_induct); DECLARE_DO_FUN( do_council_outcast); DECLARE_DO_FUN( do_councils ); @@ -3274,6 +3298,7 @@ DECLARE_DO_FUN( do_transfer ); DECLARE_DO_FUN( do_trust ); DECLARE_DO_FUN( do_typo ); +DECLARE_DO_FUN( do_undeny ); DECLARE_DO_FUN( do_unfoldarea ); DECLARE_DO_FUN( do_unhell ); DECLARE_DO_FUN( do_unlock ); @@ -3371,6 +3396,7 @@ DECLARE_SPELL_FUN( spell_dispel_magic ); DECLARE_SPELL_FUN( spell_dream ); DECLARE_SPELL_FUN( spell_earthquake ); +DECLARE_SPELL_FUN( spell_enchant_armor ); DECLARE_SPELL_FUN( spell_enchant_weapon ); DECLARE_SPELL_FUN( spell_energy_drain ); DECLARE_SPELL_FUN( spell_faerie_fire ); @@ -3422,6 +3448,8 @@ DECLARE_SPELL_FUN( spell_hand_of_chaos ); DECLARE_SPELL_FUN( spell_disruption ); DECLARE_SPELL_FUN( spell_sonic_resonance ); +DECLARE_SPELL_FUN( spell_death ); +DECLARE_SPELL_FUN( spell_assassinate ); DECLARE_SPELL_FUN( spell_mind_wrack ); DECLARE_SPELL_FUN( spell_mind_wrench ); DECLARE_SPELL_FUN( spell_revive ); @@ -3431,6 +3459,7 @@ DECLARE_SPELL_FUN( spell_galvanic_whip ); DECLARE_SPELL_FUN( spell_magnetic_thrust ); DECLARE_SPELL_FUN( spell_quantum_spike ); DECLARE_SPELL_FUN( spell_black_hand ); DECLARE_SPELL_FUN( spell_black_fist ); DECLARE_SPELL_FUN( spell_black_lightning ); @@ -3570,8 +3599,11 @@ #define USAGE_FILE SYSTEM_DIR "usage.txt" /* How many people are on every half hour - trying to determine best reboot time */ +#define COPYOVER_FILE SYSTEM_DIR "copyover.dat" /* for warm reboots */ +#define EXE_FILE "../src/smaug" /* executable path */ #define CLASSDIR "../classes/" + /* * Our function prototypes. * One big lump ... this is every function in Merc. @@ -3689,8 +3721,10 @@ void set_pager_color args( ( sh_int AType, CHAR_DATA *ch ) ); void ch_printf args( ( CHAR_DATA *ch, char *fmt, ... ) ); void pager_printf args( (CHAR_DATA *ch, char *fmt, ...) ); +void log_printf args( (char *fmt, ...) ); void act args( ( sh_int AType, const char *format, CHAR_DATA *ch, const void *arg1, const void *arg2, int type ) ); +void copyover_recover args( (void) ); /* reset.c */ RD * make_reset args( ( char letter, int extra, int arg1, int arg2, int arg3 ) ); @@ -3701,7 +3735,7 @@ /* db.c */ void show_file args( ( CHAR_DATA *ch, char *filename ) ); char * str_dup args( ( char const *str ) ); -void boot_db args( ( void ) ); +void boot_db args( ( bool fCopyOver ) ); void area_update args( ( void ) ); void add_char args( ( CHAR_DATA *ch ) ); CD * create_mobile args( ( MOB_INDEX_DATA *pMobIndex ) ); @@ -3709,7 +3743,7 @@ void clear_char args( ( CHAR_DATA *ch ) ); void free_char args( ( CHAR_DATA *ch ) ); char * get_extra_descr args( ( const char *name, EXTRA_DESCR_DATA *ed ) ); -MID * get_mob_index args( ( sh_int vnum ) ); +MID * get_mob_index args( ( int vnum ) ); OID * get_obj_index args( ( int vnum ) ); RID * get_room_index args( ( int vnum ) ); char fread_letter args( ( FILE *fp ) ); @@ -3744,7 +3778,7 @@ void log_string_plus args( ( const char *str, sh_int log_type, sh_int level ) ); RID * make_room args( ( int vnum ) ); OID * make_object args( ( int vnum, int cvnum, char *name ) ); -MID * make_mobile args( ( sh_int vnum, sh_int cvnum, char *name ) ); +MID * make_mobile args( ( int vnum, int cvnum, char *name ) ); ED * make_exit args( ( ROOM_INDEX_DATA *pRoomIndex, ROOM_INDEX_DATA *to_room, sh_int door ) ); void add_help args( ( HELP_DATA *pHelp ) ); void fix_area_exits args( ( AREA_DATA *tarea ) );