/
area/city/
area/crypts/
area/guilds/
area/psuedowild/
area/religion/
data/documents/MPDocs/
data/html/
data/mobprogs/
data/quest/
data/world/
data/world/_utilities/
data/world/images/
design/html/
notes/
player/
/* merc2.h 
 * More Global stuff
 */

/* Global Aliases */
#define stc                     send_to_char
#define DISABLED_FILE           "../data/disabled.txt"  /* Disabled Data        */
#define CLASS_DIR               "../data/class/"        /* Class Directory      */
#define WEB_SOCIAL              "../data/socials.txt"
#define WEB_COMMAND             "../data/commands.txt"
#define WEB_HELPS               "../data/help/helps.txt"
#define WEB_HELPS_LIST          "../data/help/"
#define END_MARKER              "END"
#define TIME_FILE               "../data/time.txt"
#define LAST_COMMAND            "../data/last_command.txt"

/* Global Macros */
#define larger(A,B) ( (A) > (B) ? (A):(B))              /* Returns the Larger   */
#define smaller(A,B) ( (A) < (B) ? (A):(B))             /* Returns the smaller  */

/* Well Known Vnums */
#define OBJ_VNUM_HERB           31                      /* Herbs                */
#define OBJ_VNUM_QUEST          32                      /* The quest object     */

extern char last_command[MAX_STRING_LENGTH];

/* Skill_trees.c */
int skill_tree_lookup     args ((const char *name));

struct skill_tree_type
{
        char    * name;
        int       number;
};

extern const struct skill_tree_type skill_tree_table[];

/* act_info2.c */
#define XALIAIAX_NEW_MOON          0
#define XALIAIAX_WAXING_CRESCENT   1
#define XALIAIAX_FIRST_QUARTER     2
#define XALIAIAX_WAXING_GIBBOUS    3
#define XALIAIAX_FULL_MOON         4
#define XALIAIAX_WANING_GIBBOUS    5
#define XALIAIAX_LAST_QUARTER      6
#define XALIAIAX_WANING_CRESCENT   7

/* experience.c */

void advance_level_new  args ((CHAR_DATA * ch));
int exp_needed_to_level args ((CHAR_DATA * ch));
int exp_total_for_level args ((CHAR_DATA * ch));

/* db.c */
void    load_classes            args( ( void ) );
void    load_disabled           args( ( void ) );
void    save_disabled           args( ( void ) );

/* handler2.c */
void setup_mobiles              args( (CHAR_DATA * mob) );
char *return_current_quest      args( (int quest) );

/* forage.c */
void reset_herbs                args ( (ROOM_INDEX_DATA * pRoom) );

/* interp.c */
typedef struct disabled_data DISABLED_DATA;
extern DISABLED_DATA * disabled_first;
struct disabled_data
{
        DISABLED_DATA *next;            /* pointer to next node */
        struct cmd_type const *command; /* pointer to the command struct*/
        char *disabled_by;              /* name of disabler */
        sh_int level;                   /* level of disabler */
};
bool check_disabled             args ((const struct cmd_type *command));
bool check_social               args ((CHAR_DATA * ch, char *command, char *argument));

/* timer.c */
void event_update       args( () );
char *   nsprintf       args( (char *, char *, ...) );
void  wait_wait         args( (CHAR_DATA *, int, int) );
void  wait_printf       args( (CHAR_DATA *, int, char *, ...) );
void  wait_act          args( (int, char *, void *, void *, void *, int) );
void  wait_function     args( (CHAR_DATA *ch,int delay, DO_FUN *do_fun, char *argument) );
typedef struct  event_data          EVENT_DATA;  /* timed events */
#define PULSE_EVENT            ( 2 * PULSE_PER_SECOND)
extern EVENT_DATA *events;
#define ACTION_PRINT      1
#define ACTION_FUNCTION   2
#define ACTION_WAIT       3
#define ACTION_ACT        4
struct event_data
{
        int               delay;
        CHAR_DATA       * to;
        int               action;
        DO_FUN          * do_fun;
        char            * args[5];
        void            * argv[5];
        int               argi[5];
        EVENT_DATA      * next;
        bool              valid;
};

void cmd_north (CHAR_DATA * ch, char *arg);
void cmd_south (CHAR_DATA * ch, char *arg);
void cmd_east (CHAR_DATA * ch, char *arg);
void cmd_west (CHAR_DATA * ch, char *arg);
int hit_gain args ((CHAR_DATA * ch));
int mana_gain args ((CHAR_DATA * ch));
int move_gain args ((CHAR_DATA * ch));
void mobile_update args ((void));
void weather_update args ((void));
void char_update args ((void));
void obj_update args ((void));
void aggr_update args ((void));
void update_casting( CHAR_DATA *ch );
void save_socialx_table();


CHAR_DATA *get_char_area( CHAR_DATA *ch, char *argument );


/*
 * fight3.c
 */
int random_kill_bonus       (CHAR_DATA * ch, CHAR_DATA * mob, int experience);