diff options
author | P. J. McDermott <pj@pehjota.net> | 2021-03-25 15:22:03 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-03-25 15:26:57 (EDT) |
commit | f6316263b90e5fab091c54684bcdb1ee55d16f93 (patch) | |
tree | a841a36b2a259f0e4aa070ccc09d4cf3cd6ce3ad /src/map.c | |
parent | 02a02382d63258e96a685ef9e8b3a14462a9f85d (diff) | |
download | dodge-balls-f6316263b90e5fab091c54684bcdb1ee55d16f93.zip dodge-balls-f6316263b90e5fab091c54684bcdb1ee55d16f93.tar.gz dodge-balls-f6316263b90e5fab091c54684bcdb1ee55d16f93.tar.bz2 |
map: Move tile rendering to tileset
Diffstat (limited to 'src/map.c')
-rw-r--r-- | src/map.c | 42 |
1 files changed, 1 insertions, 41 deletions
@@ -511,12 +511,6 @@ _db_map_render_layer(struct db_map *map, struct db_map_layer *layer, { int i; int gid; - SDL_bool tile_found; - struct db_tileset *tileset; - int firstgid; - int lastgid; - int columns; - SDL_Rect tile_rect; SDL_Rect layer_rect; for (i = 0; i < map->w * map->h; ++i) { @@ -524,45 +518,11 @@ _db_map_render_layer(struct db_map *map, struct db_map_layer *layer, if (gid == 0) { continue; } - tile_found = SDL_FALSE; layer_rect.x = map->tw * (i % map->w); layer_rect.y = map->th * (i / map->w); layer_rect.w = map->tw; layer_rect.h = map->th; - for (tileset = map->tileset_head; tileset != NULL; - tileset = db_tileset_next(tileset)) { - firstgid = db_tileset_firstgid(tileset); - lastgid = firstgid + db_tileset_tilecount(tileset); - if (gid >= firstgid && gid < lastgid) { - columns = db_tileset_columns(tileset); - gid -= firstgid; - tile_rect.x = map->tw * (gid % columns); - tile_rect.y = map->th * (gid / columns); - tile_rect.w = map->tw; - tile_rect.h = map->th; - db_dbg("Blitting %dx%d tile at (%d,%d) " - "onto %dx%d area of layer at " - "(%d,%d)...", - tile_rect.w, tile_rect.h, - tile_rect.x, tile_rect.y, - layer_rect.w, layer_rect.h, - layer_rect.x, layer_rect.y); - if (SDL_RenderCopy(renderer, db_tileset_texture( - tileset, - renderer), - &tile_rect, &layer_rect) - != 0) { - db_err("Failed to copy texture (%s)", - SDL_GetError()); - return -1; - } - tile_found = SDL_TRUE; - break; - } - } - if (!tile_found) { - db_warn("Tile with gid 0x%8.8x not found", gid); - } + db_tile_render(map->tileset_head, renderer, gid, &layer_rect); } return 0; |