dawn/notes/
dawn/src/
dawn/src/docs/
/**************************************************************************/
// socials.h - 
/***************************************************************************
 * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt                    *
 * >> A number of people have contributed to the Dawn codebase, with the   *
 *    majority of code written by Michael Garratt - www.dawnoftime.org     *
 * >> To use this source code, you must fully comply with the dawn license *
 *    in licenses.txt... In particular, you may not remove this copyright  *
 *    notice.                                                              *
 **************************************************************************/
// no argument specified
#define SOCIAL_ATNOTARGET_MSG2SELF			0
#define SOCIAL_ATNOTARGET_MSG2OTHERS		1
// self target
#define SOCIAL_ATSELF_MSG2SELF				2
#define SOCIAL_ATSELF_MSG2OTHERS			3
// other target
#define SOCIAL_ATTARGET_MSG2SELF			4
#define SOCIAL_ATTARGET_MSG2TARGET			5
#define SOCIAL_ATTARGET_MSG2OTHERS			6
#define SOCIAL_ATTARGET_MOBTARGETRESPONSE	7	// The social a mob will respond with
#define SOCIAL_ATMAX						8

// SOC FLAGS
#define SOC_IN_OOC		(A)
#define SOC_IN_IC		(B)
#define SOC_IMM_ONLY	(C)

/**************************************************************************/
class social_type{
public:
	char *	name;
	int		social_flags;
	char *	acts[SOCIAL_ATMAX];
	social_type * next;
	int		position_flags; // the positions you can use it in

	// member functions
	social_type(); // default constructor
	~social_type(); // default destructor

	void execute_social(char_data *ch, char *argument, bool global);

private:
	bool process_social_execution(char_data *ch, char *argument, bool global);
};
/**************************************************************************/
extern const struct flag_type position_flags[];
extern const struct flag_type social_flags[];
extern social_type *social_list;

#define safe_str_dup(str) (str?str_dup(str):str_dup(""))
void save_socials();

social_type *find_social(char_data * ch, char *social);
/**************************************************************************/