asgard/
asgard/.settings/
asgard/area/
asgard/data/clans/
asgard/data/clans/history/
asgard/data/rosters/
asgard/src/notice/
/*
 * newquest.h
 *
 *  Created on: 7 Jan 2011
 *      Author: Nico
 */

#define COST_QUEST		1
#define COST_PLAT		2
#define COST_NOTAPPL	3

#define QSTATE_COMPLETE	-1
#define QSTATE_NONE		0
#define QSTATE_MOB		1	// Kill-a-target quest
#define QSTATE_OBJ		2	// Retrieve-a-token quest

#define QTYPE_MIN		QSTATE_MOB
#define QTYPE_MAX		QSTATE_OBJ

#define QTOKEN_LOWER	9825	// Quest tokens for obj quest
#define QTOKEN_UPPER	9829	// Ditto above

#define LOCKER_VNUM		79

#define VNUM_XPVOUCHER_025		858
#define VNUM_XPVOUCHER_050		904
#define VNUM_XPVOUCHER_075		915
#define VNUM_XPVOUCHER_100		906
#define VNUM_XPVOUCHER_125		916
#define VNUM_XPVOUCHER_150		917
#define VNUM_XPVOUCHER_175		918
#define VNUM_XPVOUCHER_200		919

#define VNUM_QPVOUCHER_025		907
#define VNUM_QPVOUCHER_050		908
#define VNUM_QPVOUCHER_075		914
#define VNUM_QPVOUCHER_100		909
#define VNUM_QPVOUCHER_125		910
#define VNUM_QPVOUCHER_150		911
#define VNUM_QPVOUCHER_175		912
#define VNUM_QPVOUCHER_200		913

typedef struct quest_item QUEST_ITEM;
typedef struct quest_verb QUEST_VERB;
typedef void (*QITEM_FN)(CHAR_DATA*, CHAR_DATA *, QUEST_VERB*, QUEST_ITEM*, char*);
#define QITEM_FN_NAME(Name)	questitem_fn_ ## Name
#define QITEM_FN_DEF(Name)	void QITEM_FN_NAME(Name) (CHAR_DATA *ch, CHAR_DATA *qm, QUEST_VERB *verb, QUEST_ITEM *item, char *argument)

struct quest_item {
	char		*name;			// Name/keyword.
	int			obj_vnum;		// Item object vnum, if applicable.
	sh_int		cost_type;		// Type of price, i.e. plat/IQ/AQP
	int			cost;			// Cost in cost_type units.
	QITEM_FN	func;			// Function for the item.
	QUEST_ITEM	*items;			// Child items.
	char		*description;	// About the item.
};

struct quest_verb {
	char		*name;			// Name/keyword.
	bool		need_qm;		// Whether or not a quest master needs to be present.
	QUEST_ITEM	*items;			// Items.
	char		*description;	// What the verb does.
};

void end_quest(CHAR_DATA *ch, int timer);
void set_locker_name(CHAR_DATA *ch);