/* * Map info, misc map functions. * * Copyright (C) 2003, David Redick * Released under the GNU General Public License (v2) */ #ifndef LWMAPGEN_MAP_H #define LWMAPGEN_MAP_H #include #include "func.h" #include "misc.h" #define ALLEGRO_USE_CONSOLE extern char default_filename[10]; #define MIN_MAP_SIZE 0 #define MAX_MAP_SIZE 6 #define DEFAULT_MAP_SIZE 3 extern int map_size[MAX_MAP_SIZE][2]; #define RANDOM_MAP_GRID_SIZE 0 #define MIN_MAP_GRID_SIZE 1 #define MAX_MAP_GRID_SIZE 10 extern int map_grid_size[MAX_MAP_GRID_SIZE][2]; typedef struct { char *filename; /* should not be changed */ int width, height; /* should not be changed */ BITMAP *map; /* grid size */ int num_row, num_col; /* section size */ float sec_width, sec_height; /* should not be changed */ /* the color to draw with */ int color; /* 0 == normal, 255 == inverted */ int func_id; void (*func)(); } map_t; extern map_t map; /* sets up the map for drawing */ void clear_map(); void clear_invert_map(); /* print all the map info to stdout */ /* really for debugging */ void print_map(); /*****************************************************************************/ /* Misc functions */ /* * The default sections looks like this: * c 0 1 2 * r +---+---+---+ * 0 | 0 | 1 | 2 | <-+ * +---+---+---+ | * 1 | 3 | 4 | 5 | <-+- i * +---+---+---+ */ /* get i from r, c */ #define section(r,c) ( (r*map.num_col)+c ) /* get r, c from i */ void section_rc( int *row, int *col, int i ); void offset( int *xoffset, int *yoffset, int r, int c ); void rand_point_section( int *x, int *y, int pad ); void rand_point_section_offset( int *x, int *y, int r, int c, int pad ); void section_center( int *x, int *y, int r, int c ); /*****************************************************************************/ #endif