|
|
|
@ -390,7 +390,7 @@ std::wstring System::draw_map(GameLevel level, size_t view_x, size_t view_y, int |
|
|
|
|
auto player_pos = world.get<Position>(level.player).location; |
|
|
|
|
Point cam_orig = map.center_camera(player_pos, view_x, view_y); |
|
|
|
|
auto &tiles = map.tiles(); |
|
|
|
|
(void)tiles; |
|
|
|
|
auto &tile_set = textures::get_tile_set(); |
|
|
|
|
|
|
|
|
|
// make a grid of chars to work with
|
|
|
|
|
auto grid = shiterator::make<wchar_t>(view_x+1, view_y+1); |
|
|
|
@ -399,11 +399,13 @@ std::wstring System::draw_map(GameLevel level, size_t view_x, size_t view_y, int |
|
|
|
|
for(shiterator::each_cell_t it{grid}; it.next();) { |
|
|
|
|
size_t tile_y = size_t(it.y) + cam_orig.y; |
|
|
|
|
size_t tile_x = size_t(it.x) + cam_orig.x; |
|
|
|
|
(void)tile_y; |
|
|
|
|
(void)tile_x; |
|
|
|
|
|
|
|
|
|
// FIX ME
|
|
|
|
|
grid[it.y][it.x] = 'F'; |
|
|
|
|
if(matrix::inbounds(tiles, tile_x, tile_y)) { |
|
|
|
|
size_t tid = tiles[tile_y][tile_x]; |
|
|
|
|
grid[it.y][it.x] = tile_set[tid]; |
|
|
|
|
} else { |
|
|
|
|
grid[it.y][it.x] = L' '; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|