#ifndef ROOM_H
#define ROOM_H

struct link_list;

typedef struct room
{
	char *name;
	struct room *next;
	struct link_list *links;
} room;

typedef struct link
{
	char *name;
	room *dest;
	struct link *next;
} link;

typedef struct link_list
{
	link *head, *tail;
	int size;
} link_list;

typedef struct room_list
{
	room *head, *tail;
	int size;
} room_list;

room_list *room_load (char *);
void room_burn (room_list *);
void room_add (room_list *, char *);
void room_delete (room_list *, room *);
room *room_find (room_list *, char *);
room *room_find_num (room_list *, int);
int room_num (room_list *, room *);
void link_burn (link_list *);
void link_add (link_list *, room *, char *);
void link_delete (link_list *, link *);
link *link_find (link_list *, char *);
link *link_find_num (link_list *, int);

#endif