dawn/notes/
dawn/src/
dawn/src/docs/
/**************************************************************************/
// intro.h - Introduction system - Kal May 2000
/***************************************************************************
 * 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.                                                              *
 **************************************************************************/
#ifndef INTRO_H
#define INTRO_H

/**************************************************************************/
class intro_node{
public:
	unsigned short know_index;    // 10->65000 - unique number for a player's know info
	time_t last_seen;  
	intro_node *next;

	intro_node *find_know_node_by_index(unsigned short lookup_know_index); // find a node in the *next list
	bool add_person_by_index(unsigned short new_person_know_index, intro_data *know);
	bool valid;
};
/**************************************************************************/
class intro_data{
public:
	intro_data(){owner=NULL; people=NULL; intro_cache=NULL; 
				intro_cache_index=0;owner_id=0; my_know_index=0; save_in_db=true;}; // constructor
	void assign_owner(char_data *ch); 
	void allocate_intro_cache(); 
	bool knows(char_data *person);// check if they know the person
	bool introduced_to(char_data *person); // when you are introduced to someone
	void forgetting(char_data *person); // when you choose to forget someone
	bool load_person(unsigned short new_person_id, time_t last_seen);
	bool load_id(time_t player_id);

	unsigned short my_know_index;	// the known index for the player
	intro_node *people;
	time_t owner_id;		// the game id of the player
	time_t last_logged_in;	// players that dont login after a set period of time are automatically purged.

	bool save_in_db;
private:
	unsigned char *intro_cache;
	unsigned short intro_cache_index; // if not 0, then we are caching them
	char_data *owner; // owner of this node
};
/**************************************************************************/
void attach_know(char_data* player);
void save_intro_database();
void intro_player_delete(char_data *player);

#endif // INTRO_H