summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/map.c29
-rw-r--r--src/map.h7
2 files changed, 36 insertions, 0 deletions
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_ */