/
roa/
roa/lib/boards/
roa/lib/config/
roa/lib/edits/
roa/lib/help/
roa/lib/misc/
roa/lib/plrobjs/
roa/lib/quests/
roa/lib/socials/
roa/lib/www/
roa/lib/www/LEDSign/
roa/lib/www/LEDSign/fonts/
roa/lib/www/LEDSign/scripts/
roa/src/s_inc/
roa/src/sclient/
roa/src/sclient/binary/
roa/src/sclient/text/
roa/src/util/
/************************************************************************
	Realms of Aurealis 		James Rhone aka Vall of RoA

handler.h				Header file for handler.c.  A lot
					of utility functions related to
					objects and basic mud functions.

		******** Heavily modified and expanded ********
		*** BE AWARE OF ALL RIGHTS AND RESERVATIONS ***
		******** Heavily modified and expanded ********
		        All rights reserved henceforth. 

    Please note that no guarantees are associated with any code from
Realms of Aurealis.  All code which has been released to the general
public has been done so with an 'as is' pretense.  RoA is based on both
Diku and CircleMUD and ALL licenses from both *MUST* be adhered to as well
as the RoA license.   *** Read, Learn, Understand, Improve ***
*************************************************************************/
#ifndef ROA_HANDLER_H
#define ROA_HANDLER_H

/* utility */
obdata  *create_money( int amount );
int	isname(char *str, char *namelist);
char	*fname(char *namelist);

/* ******** objects *********** */
void	obj_to_char(obdata *object, chdata *ch);
void	obj_from_char(obdata *object);

BOOL	equip_char(chdata *ch, obdata *obj, int pos, BOOL mode);
obdata  *unequip_char(chdata *ch, int pos, BOOL mode);

BOOL 	eq_to_inv(chdata *ch, int pos, BOOL tellem);
BOOL 	inv_to_eq(chdata *ch, obdata *ob, int pos, BOOL tellem);

obdata 	*get_obj_in_list(char *name, obdata *list);
obdata 	*get_obj_in_list_num(int num, obdata *list);
obdata 	*get_obj(char *name);
obdata 	*get_obj_num(int nr);

void	obj_to_room(obdata *object, int room);
void	obj_from_room(obdata *object);
void	obj_to_obj(obdata *obj, obdata *obj_to);
void	obj_from_obj(obdata *obj);
void	object_list_new_owner(obdata *list, chdata *ch);

void	extract_obj(obdata *obj);

/* ******* characters ********* */

chdata 	*get_char_room(char *name, int room);
chdata 	*get_char_num(int nr);
chdata 	*get_char(char *name);

void	char_from_room(chdata *ch);
void	char_to_room(chdata *ch, int room);
void	extract_char(chdata *ch);
int	eject_char(chdata *ch);

/* find if character can see */
chdata 	*get_char_room_vis(chdata *ch, char *name);

// Updated get_player_vis() for 0.playername support. 03/22/98 -callahan
chdata 	*get_player_vis(chdata *ch, char *name, int inroom);

chdata 	*get_char_vis(chdata *ch, char *name);
chdata 	*get_char_zone_vis(chdata *ch, char *name);
chdata 	*get_char_zone(int zone, char *name);
obdata 	*get_obj_in_list_vis(chdata *ch, char *name, obdata *list);
obdata 	*get_obj_vis(chdata *ch, char *name);
obdata 	*get_object_zone(int zone, char *name);
obdata 	*get_obj_zone_vis(chdata *ch, char *name);
obdata 	*get_object_in_equip_vis(chdata *ch, char *arg, obdata *equipment[], int *j);

/* find all dots */
int	find_all_dots(char *arg);
#define FIND_INDIV	0
#define FIND_ALL	1
#define FIND_ALLDOT	2

/* Generic Find */
int	generic_find(char *arg, int bitvector, chdata *ch, chdata **tar_ch, obdata **tar_obj);

#define FIND_CHAR_ROOM     1
#define FIND_CHAR_WORLD    2
#define FIND_OBJ_INV       4
#define FIND_OBJ_ROOM      8
#define FIND_OBJ_WORLD    16
#define FIND_OBJ_EQUIP    32

#endif /* ROA_HANDLER_H */