From 238a78197b13c0784c922cd665af8c3912600a86 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 30 Mar 2021 02:34:03 -0400 Subject: map: Add line accessor functions --- diff --git a/src/map.c b/src/map.c index f2f4263..b41507b 100644 --- a/src/map.c +++ b/src/map.c @@ -1148,3 +1148,32 @@ db_map_tile_ball_collides(struct db_map *map, int x, int y) i = y * map->w + x; return (map->b_col[i / 8] & (1 << (i % 8))) != 0; } + +struct db_map_line * +db_map_get_lines(struct db_map *map) +{ + return map->line_head; +} + +int +db_map_line_get_coords(struct db_map_line *line, + int *x1, int *y1, int *x2, int *y2) +{ + if (line == NULL) { + return -1; + } + *x1 = line->x1; + *y1 = line->y1; + *x2 = line->x2; + *y2 = line->y2; + return 1; +} + +struct db_map_line * +db_map_line_get_next(struct db_map_line *line) +{ + if (line == NULL) { + return NULL; + } + return line->next; +} diff --git a/src/map.h b/src/map.h index b86c3bb..8bbbb5b 100644 --- a/src/map.h +++ b/src/map.h @@ -24,6 +24,7 @@ #include "tileset.h" struct db_map; +struct db_map_line; struct db_map *db_map_new(const char *game_id, const char *level_id); SDL_Texture *db_map_render(struct db_map *map, SDL_Renderer *renderer); @@ -40,5 +41,11 @@ int db_map_tile_player_collides(struct db_map *map, int x, int y) __attribute__((__pure__)); int db_map_tile_ball_collides(struct db_map *map, int x, int y) __attribute__((__pure__)); +struct db_map_line *db_map_get_lines(struct db_map *map) + __attribute__((__pure__)); +int db_map_line_get_coords(struct db_map_line *line, + int *x1, int *y1, int *x2, int *y2); +struct db_map_line *db_map_line_get_next(struct db_map_line *line) + __attribute__((__pure__)); #endif /* DB_MAP_H_ */ -- cgit v0.9.1