/
#define MAX_MAP 121 // Shows 1/2 the given rooms (links) Always odd
#define MAP_MID 60 // Always 2x+1 to get MAX_MAP (makes the middle
#define MAX_MAP_HASH 16

// -1 is already taken, all positives are taken, so start lower
#define NS_2WAY     -2
#define NS_1WAYN    -3
#define NS_1WAYS    -4
#define NS_HIT      -5
#define EW_2WAY     -6
#define EW_1WAYE    -7
#define EW_1WAYW    -8
#define EW_HIT      -9
#define NS_2WAYD    -10
#define NS_1WAYND   -11
#define NS_1WAYSD   -12
#define NS_HITD     -13
#define EW_2WAYD    -14
#define EW_1WAYED   -15
#define EW_1WAYWD   -16
#define EW_HITD     -17
#define NS_UNN      -18
#define NS_UNS      -19
#define EW_UNE      -20
#define EW_UNW      -21
#define NS_UNND     -22
#define NS_UNSD     -23
#define EW_UNED     -24
#define EW_UNWD     -25

// Structures that are used.
typedef struct map_qd MAP_QD;
typedef struct map_visit MAP_VISIT;
typedef struct map_param MAP_PARAM;

// Map parameters  Saved externally to avoid many arguments being used in map function
struct map_param {
    bool_t area;
    bool_t tight;
    bool_t fog;
    unsigned char size;
    bool_t border;
    bool_t doors;
    short int depth;
    bool_t mobs;
    bool_t ter; // Switches to terrain mode.
    bool_t text;
    bool_t players;
    bool_t color;
    bool_t doShare;
    bool_t doForget;
    bool_t doStoreCoord;
    bool_t mxp;
    char *desc;
    CHAR_DATA *share;
    char shareTarget[MAX_INPUT_LENGTH];
};

// visited room
struct map_visit {
    MAP_VISIT *next;
    unsigned int room;
};

// Map queue data
struct map_qd {
    MAP_QD *next;
    unsigned int room;
    unsigned char x;
    unsigned char y;
    unsigned char depth;
};

void init_mp(CHAR_DATA *ch, char* argument);
void free_mp();
void make_map(CHAR_DATA *ch, unsigned char x, unsigned char y);
char* get_map(CHAR_DATA *ch, unsigned char xx, unsigned char yy);
char *get_terrain_color(ROOM_INDEX_DATA *rm);
char *get_mroom(CHAR_DATA *ch, unsigned int room);
void make_map_no_char(ROOM_INDEX_DATA* roomStart, unsigned char x, unsigned char y);
void free_map_memory(void);