cthulu3/
cthulu3/backup/
cthulu3/distribution/
cthulu3/gods/
cthulu3/html/help/basic/
cthulu3/html/help/skills/
cthulu3/log/
cthulu3/player/
/*
 * CthulhuMud 
 */

/* Get and free MCBs... */

MOB_CMD_BUF *get_mcb();

/* Free an MCB... */

void free_mcb(MOB_CMD_BUF *mcb);

/* Enqueue an action to a mob... */

void enqueue_mob_cmd(CHAR_DATA *ch, char *cmd, int delay, int cmd_id);

/* Purge unwanted commands... */

void purge_mcbs(CHAR_DATA *ch, int cmd_id);

/* Release all MCBs... */

void release_mcbs(CHAR_DATA *ch);

/* Execute an MCB... */

void execute_mcb(CHAR_DATA *ch);

/* Get Scripts... */

MOB_SCRIPT *get_mscr();

/* Free Scripts... */

void free_mscr(MOB_SCRIPT *mscr);

/* Release all scripts... */

void release_scripts(MOB_SCRIPT *base);

/* Enqueue a script to a mob... */

void enqueue_script(	CHAR_DATA	*mob, 
			MOB_SCRIPT 	*mscr,
			MOB_CMD_CONTEXT *mcc);

/* Locate a specific script... */

MOB_SCRIPT *find_script(CHAR_DATA *mob, int id);

/* Locate a specific script... */

MOB_SCRIPT *find_script2(MOB_SCRIPT *scr, int id);

/* Save a mobs scripts... */ 

void save_script(FILE *fp, MOB_SCRIPT *scr);

/* Get Script lines... */

MOB_SCRIPT_LINE *get_mscrl();

/* Free Script lines... */

void free_mscrl(MOB_SCRIPT_LINE *mscrl);

/* Release all script lines... */

void release_script_lines(MOB_SCRIPT *mscr);

/* Enqueue a script line to a mob... */

void inline enqueue_script_line(CHAR_DATA 	*mob, 
				MOB_SCRIPT_LINE *scrl,
				MOB_CMD_CONTEXT *mcc);

/* Locate a specific script line... */

MOB_SCRIPT_LINE *find_script_line(MOB_SCRIPT *mscr, int seq);

/* Save a scripts lines... */ 

void save_script_line(FILE *fp, MOB_SCRIPT_LINE *scr);

/* Insert a line into a script... */

void insert_script_line(MOB_SCRIPT *scr, MOB_SCRIPT_LINE *scrl);

/* Set up a mob command context */

MOB_CMD_CONTEXT *get_mcc(	CHAR_DATA 	*mob, 
				CHAR_DATA 	*actor, 
				CHAR_DATA 	*victim, 
                                CHAR_DATA	*random,
				OBJ_DATA 	*obj,
				OBJ_DATA 	*obj2,
			 	int 		 number, 
				char 		*text);

/* Free a used moc command context... */

void free_mcc(MOB_CMD_CONTEXT *mcc);

/* Pick a random character... */

CHAR_DATA *random_char(CHAR_DATA *ch);

/* Resolve substitutions in a command... */

void expand_dollar_code(char *cmd, MOB_CMD_CONTEXT *mcc, char *rescmd);

void expand_by_context(char *cmd, MOB_CMD_CONTEXT *mcc, char *rescmd);