/*
 * Movement.h
 *
 * Headerfile for all things movement.
 * Also contains display.c stuff
 */
#define MAX_SECTOR  50
#define MAX_CH_X    21
#define MAX_CH_Y    11

/* Direction Defines */
#define DIR_NORTH   1
#define DIR_SOUTH   2
#define DIR_WEST    3
#define DIR_EAST    4
#define DIR_UP      5
#define DIR_DOWN    6

/* Some sector defines for well-known sectors */
#define SECTOR_NOTHING      20
#define SECTOR_CHAR         21

#define CLEAR_SCREEN    "\e[2J"

struct sector_type
{
    char  * name;
    char  * char_sm;
    int     sector;
    int     red;
    int     green;
    int     blue;
    bool    passable;
    int     can_see_through;
};

extern struct sector_type sector_table[];

void    cmd_leave_trail     ( D_MOBILE * ch, char *arg );
void    cmd_look            ( D_MOBILE * ch, char *arg );
char  * return_symbol       ( int location );
void    cmd_north           ( D_MOBILE * ch, char *arg );
void    cmd_south           ( D_MOBILE * ch, char *arg );
void    cmd_west            ( D_MOBILE * ch, char *arg );
void    cmd_east            ( D_MOBILE * ch, char *arg );
void    cmd_up              ( D_MOBILE * ch, char *arg );
void    cmd_down            ( D_MOBILE * ch, char *arg );
void    cmd_goto            ( D_MOBILE * ch, char *arg );
void    cmd_transfer        ( D_MOBILE * ch, char *arg );
void    cmd_distance        ( D_MOBILE * ch, char *arg );
void    cmd_open            ( D_MOBILE * ch, char *arg );
void    cmd_close           ( D_MOBILE * ch, char *arg );
int     return_distance     ( D_MOBILE * ch, D_MOBILE * victim);
bool    can_see_to          ( D_MOBILE * ch, int target_x, int target_y);
int     return_number_of_map(int location);
bool    check_move_ok       (D_M * ch, int direction);
void cmd_scrye (D_MOBILE * ch, char *arg);