source/
source/bounty/
source/challenge/
source/gods/
source/log/
source/mobprogs/
source/player/
source/savemud/
#ifndef __COMM_H__
#define __COMM_H__

void char_gen( DESCRIPTOR_DATA *d, char *argument );

extern struct chargen_choice_s chargen_body_table[CGEN_MAX_BODY];
extern struct chargen_choice_s chargen_face_table[CGEN_MAX_FACE];
extern struct chargen_choice_s chargen_skin_table[CGEN_MAX_SKIN];
extern struct chargen_choice_s chargen_eyes_table[CGEN_MAX_EYES];
extern struct chargen_choice_s chargen_hair_table[CGEN_MAX_HAIR];
extern struct chargen_choice_s chargen_hairl_table[CGEN_MAX_HAIRL];
extern struct chargen_choice_s chargen_hairt_table[CGEN_MAX_HAIRT];
extern struct chargen_choice_s chargen_hairf_table[CGEN_MAX_HAIRF];
extern struct chargen_choice_s chargen_perk_table[CGEN_MAX_PERK];



typedef void CHARGEN_FUN	( DESCRIPTOR_DATA* d, char* argument );
#define CHARGEN_FUN( func )	void func( DESCRIPTOR_DATA* d, char* argument )

extern const struct chargen_type {
  char*		name;	//name of the state
  char*		prompt;	//standart prompt
  CHARGEN_FUN*	func;	//function to run
}chargen_table[];

struct chargen_choice_s{
  char*		name;
  char*		string;
  int		int1;
  sh_int*	int2;
};

CHARGEN_FUN(	chargen_null	);
CHARGEN_FUN(	chargen_greet	);
CHARGEN_FUN(	chargen_main	);
CHARGEN_FUN(	chargen_help	);

CHARGEN_FUN(	chargen_enter	);
CHARGEN_FUN(	chargen_pass	);
CHARGEN_FUN(	chargen_immpass	);
CHARGEN_FUN(	chargen_motd	);
CHARGEN_FUN(	chargen_ready	);

CHARGEN_FUN(	chargen_create	);
CHARGEN_FUN(	chargen_con_name);
CHARGEN_FUN(	chargen_new_pass);
CHARGEN_FUN(	chargen_con_pass);
CHARGEN_FUN(	chargen_new_last);
CHARGEN_FUN(	chargen_con_last);
CHARGEN_FUN(	chargen_new_sex );
CHARGEN_FUN(	chargen_new_race);
CHARGEN_FUN(	chargen_con_race);
CHARGEN_FUN(	chargen_new_alig);
CHARGEN_FUN(	chargen_con_alig);
CHARGEN_FUN(	chargen_new_etho);
CHARGEN_FUN(	chargen_con_etho);
CHARGEN_FUN(	chargen_new_clas);
CHARGEN_FUN(	chargen_con_clas);
CHARGEN_FUN(	chargen_roll	);
CHARGEN_FUN(	chargen_new_reli);
CHARGEN_FUN(	chargen_con_reli);
CHARGEN_FUN(	chargen_new_home);
CHARGEN_FUN(	chargen_con_home);
CHARGEN_FUN(	chargen_ask_deta);
CHARGEN_FUN(	chargen_new_done);
CHARGEN_FUN(	chargen_con_break);

CHARGEN_FUN(	chargen_det_body);
CHARGEN_FUN(	chargen_det_face);
CHARGEN_FUN(	chargen_det_skin);
CHARGEN_FUN(	chargen_det_eyes);
CHARGEN_FUN(	chargen_det_hair);
CHARGEN_FUN(	chargen_det_haiL);
CHARGEN_FUN(	chargen_det_haiT);
CHARGEN_FUN(	chargen_det_haiF);
CHARGEN_FUN(	chargen_det_perk);
CHARGEN_FUN(	chargen_con_perk);
CHARGEN_FUN(	chargen_det_hand);
CHARGEN_FUN(	chargen_det_age);
CHARGEN_FUN(	chargen_con_age);
CHARGEN_FUN(	chargen_det_weap);

CHARGEN_FUN(	chargen_new_tele);
CHARGEN_FUN(	chargen_new_enemy);
CHARGEN_FUN(	chargen_new_adve);

CHARGEN_FUN(	chargen_nag_screen);
CHARGEN_FUN(	chargen_nag_lag);




#endif