#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);