--- 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 ) );