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

/* Subjects for extended conditions... */

#define ECOND_SUBJECT_WORLD		0
#define ECOND_SUBJECT_ACTOR		1
#define ECOND_SUBJECT_VICTIM		2
#define ECOND_SUBJECT_OBSERVER		3
#define ECOND_SUBJECT_RANDOM		4
#define ECOND_SUBJECT_L_ACTOR		5
#define ECOND_SUBJECT_L_VICTIM		6
#define ECOND_SUBJECT_L_OBSERVER		7
#define ECOND_SUBJECT_L_RANDOM		8
#define ECOND_SUBJECT_P_OBJ		 	9
#define ECOND_SUBJECT_S_OBJ			10	
#define ECOND_SUBJECT_WEV			11

/* Extended Conditions */

#define ECOND_NONE		  	0

#define ECOND_SKILL		  	1
#define ECOND_LEVEL		  	2
#define ECOND_RACE		  	3
#define ECOND_PROF		  	4
#define ECOND_LIGHT		  	5
#define ECOND_ALIGN		  	6
#define ECOND_MOON		  	7
#define ECOND_CASTING_LEVEL	  	8
#define ECOND_SIZE	  		9

#define ECOND_SEX	 	 	11
#define ECOND_CONV		 	12
#define ECOND_RANDOM		13
#define ECOND_CARRYING		14
#define ECOND_WEARING		15
#define ECOND_TYPE		 	16
#define ECOND_VNUM		 	17
#define ECOND_IN_ROOM		18
#define ECOND_DEED		 	19
#define ECOND_SUBTYPE		20
#define ECOND_IS		 	21
#define ECOND_IS_NOT		 	22
#define ECOND_GADGET		 	23
#define ECOND_AFFECTED		24
#define ECOND_NUMBER		25
#define ECOND_AM_ACTOR		26
#define ECOND_AM_VICTIM		27
#define ECOND_LOCAL		 	28
#define ECOND_NUMBER_MOD	 	29
#define ECOND_IN_SUBAREA	 	30
#define ECOND_VALUE		 	31
#define ECOND_CONTAINS		35
#define ECOND_QUEST		 	36
#define ECOND_ACTOR_GROUPED	37
#define ECOND_VICTIM_GROUPED	38
#define ECOND_SANITY		 	39
#define ECOND_MEMORY		40
#define ECOND_MEMORYV		41
#define ECOND_ACTOR_REMEMBERED	42
#define ECOND_VICTIM_REMEMBERED	43
#define ECOND_ACTOR_FRIEND	 	44
#define ECOND_ACTOR_FOE		45
#define ECOND_VICTIM_FRIEND	 	46
#define ECOND_VICTIM_FOE	 	47
#define ECOND_ACTOR_VISIBLE	 	48
#define ECOND_VICTIM_VISIBLE	 	49

#define ECOND_HITS		 	60
#define ECOND_MANA		 	61
#define ECOND_MOVE		 	62
#define ECOND_HITS_PERCENT	 	63
#define ECOND_MANA_PERCENT	64
#define ECOND_MOVE_PERCENT	 	65
#define ECOND_GOLD		 	66
#define ECOND_NAME		 	67
#define ECOND_CULT		 	68
#define ECOND_FAME		 	69
#define ECOND_IS_ALONE	 	70
#define ECOND_SHORT        	 	71
#define ECOND_PRACTICE	 	72
#define ECOND_TRAIN        	 	73
#define ECOND_START_ROOM   	 	74
#define ECOND_KNOWS_DISCIPLINE   	75
#define ECOND_ATTRIBUTE	  	76
#define ECOND_CARRYING_TYPE	77
#define ECOND_WEARING_TYPE		78
#define ECOND_USES_IMP	 	79
#define ECOND_PARTNER	 	80
#define ECOND_CRIMINAL_RATING 	81
#define ECOND_OWNER 			82
#define ECOND_DIVINITY		83

/* Societies */

#define ECOND_SOC_RANK		 	32
#define ECOND_SOC_LEVEL		 	33
#define ECOND_SOC_AUTH		 	34

#define ECOND_SOC_RANK_NONE	  	0
#define ECOND_SOC_RANK_INVITED	  	1
#define ECOND_SOC_RANK_MEMBER	  	2
#define ECOND_SOC_RANK_COUNCIL	  	4
#define ECOND_SOC_RANK_LEADER	  	8

/* Probes */

#define ECOND_MOB_IN_ROOM	 		50
#define ECOND_PLAYER_IN_ROOM	 	51
#define ECOND_ROOM_EMPTY_MOB	 	52
#define ECOND_OBJ_IN_ROOM	 		53
#define ECOND_ROOM_EMPTY_OBJ	 	54
#define ECOND_OBJ_ROOM_CONTAINER	 	55

/* Hour */

#define ECOND_HOUR_OF_DAY			100
#define ECOND_HOUR_OF_DAY_MOD		101

/* Day */

#define ECOND_DAY_OF_MONTH		112
#define ECOND_DAY_OF_MONTH_MOD		113
#define ECOND_DAY_OF_YEAR			114
#define ECOND_DAY_OF_YEAR_MOD		115

/* Week */

#define ECOND_WEEK_OF_YEAR			120
#define ECOND_WEEK_OF_YEAR_MOD		121

/* Month */

#define ECOND_MONTH_OF_YEAR		130
#define ECOND_MONTH_OF_YEAR_MOD		131

/* Affect/state conditions for IS/IS_NOT */

#define ECOND_IS_HUNGRY		1
#define ECOND_IS_FULL		   	2
#define ECOND_IS_THIRSTY	   	3
#define ECOND_IS_REFRESHED         	4
#define ECOND_IS_SOBER		5
#define ECOND_IS_DRUNK		6

#define ECOND_IS_PLAYER		9
#define ECOND_IS_STANDING	  	10
#define ECOND_IS_FIGHTING	  	11
#define ECOND_IS_SITTING	  	12
#define ECOND_IS_RESTING	  	13
#define ECOND_IS_AWAKE		14
#define ECOND_IS_SLEEPING         	15
#define ECOND_IS_STUNNED	  	16
#define ECOND_IS_DIEING           		17
#define ECOND_IS_DEAD		18
#define ECOND_IS_BLIND		19
#define ECOND_IS_INVISIBLE	  	20
#define ECOND_IS_DETECT_EVIL	  	21
#define ECOND_IS_DETECT_INVIS	22
#define ECOND_IS_DETECT_MAGIC     	23
#define ECOND_IS_DETECT_HIDDEN    	24
#define ECOND_IS_MELD		25
#define ECOND_IS_SANCTUARY	  	26
#define ECOND_IS_FAERIE_FIRE	  	27
#define ECOND_IS_INFRARED	  	28
#define ECOND_IS_CURSE		29
#define ECOND_IS_FEAR		  	30
#define ECOND_IS_POISON		31
#define ECOND_IS_PROT_GOOD	  	32
#define ECOND_IS_PROT_EVIL	  	33
#define ECOND_IS_SNEAK		34
#define ECOND_IS_HIDE		  	35
#define ECOND_IS_SLEEP		36
#define ECOND_IS_CHARM		37
#define ECOND_IS_FLYING		38
#define ECOND_IS_PASS_DOOR	  	39
#define ECOND_IS_HASTE		40
#define ECOND_IS_CALM		41
#define ECOND_IS_PLAGUE		42
#define ECOND_IS_WEAKEN		43
#define ECOND_IS_DARK_VISION      	44
#define ECOND_IS_BERSERK	  	45
#define ECOND_IS_SWIM		46
#define ECOND_IS_REGENERATION	47
#define ECOND_IS_POLY		  	48
#define ECOND_IS_ABSORB		49
#define ECOND_IS_FLEEING	  	50
#define ECOND_IS_DREAMING	  	51
#define ECOND_IS_STARVING	  	52
#define ECOND_IS_DEHYDRATED	53
#define ECOND_IS_OVERWEIGHT	  	54
#define ECOND_IS_DARKNESS		55
#define ECOND_IS_AURA		56
#define ECOND_IS_HALLUCINATING	57
#define ECOND_IS_RELAXED		58
#define ECOND_IS_FIRE_SHIELD		59
#define ECOND_IS_FROST_SHIELD	60
#define ECOND_IS_SLOW		61
#define ECOND_IS_GLOBE		62
#define ECOND_IS_CRIMINAL		63
#define ECOND_IS_MORF		64
#define ECOND_IS_INCARNATED	65
#define ECOND_IS_MIST                   	66
#define ECOND_IS_ELDER_SHIELD	67
#define ECOND_IS_FARSIGHT                   	68
#define ECOND_IS_WERE		69
#define ECOND_IS_VAMPIRE                   	70
#define ECOND_IS_UNDEAD                   	71
#define ECOND_IS_STRANGER                   	72
#define ECOND_IS_PASSPORT                   	73
#define ECOND_IS_ASCETICISM                  	74

/* Access functions... */

extern ECOND_DATA 	*get_ec			();
extern void 		free_ec			(ECOND_DATA *ec);
extern void 		free_ec_norecurse	(ECOND_DATA *ec);
extern bool 		ec_satisfied_mcc		(MOB_CMD_CONTEXT *mcc, ECOND_DATA *ec, bool recurse);
extern ECOND_DATA 	*read_econd		(FILE *fp);
extern void 		print_econd		(CHAR_DATA *ch, ECOND_DATA *ec, char *hdr);
extern void 		print_econd_to_buffer	(char *buffer, ECOND_DATA *ec, char *hdr,  MOB_CMD_CONTEXT *mcc);
extern ECOND_DATA 	*create_econd		(char *cond, CHAR_DATA *ch);
extern void 		write_econd		(ECOND_DATA *ec, FILE *fp, char *hdr);