Use enum class

This commit is contained in:
Reimar 2025-10-27 12:35:48 +01:00
parent 4f34d06f73
commit d7eb5c7f4d
2 changed files with 9 additions and 9 deletions

View File

@ -4,7 +4,7 @@
Map::Map(GameRenderer *renderer, int tile_size) :
renderer(renderer),
tile_size(tile_size),
tiles(renderer->screen_width / tile_size, std::vector(renderer->screen_height / tile_size, grass)),
tiles(renderer->screen_width / tile_size, std::vector(renderer->screen_height / tile_size, Tile::grass)),
tile_offset_x(-renderer->screen_width / tile_size / 2),
tile_offset_y(-renderer->screen_height / tile_size / 2)
{
@ -16,7 +16,7 @@ Map::Map(GameRenderer *renderer, int tile_size) :
for (int x = 0; x < tiles.size(); x++) {
if (rand() % 2 == 0) y += rand() % 3 - 1;
tiles[x][y] = path;
tiles[x][y] = Tile::path;
}
// Create vertical starting path
@ -24,22 +24,22 @@ Map::Map(GameRenderer *renderer, int tile_size) :
for (int y = 0; y < tiles[x].size(); y++) {
if (rand() % 2 == 0) x += rand() % 3 - 1;
tiles[x][y] = path;
tiles[x][y] = Tile::path;
}
}
std::vector<Tile> Map::generate_tiles(std::vector<Tile> prev_tiles) const
{
std::vector<Tile> new_tiles = std::vector(prev_tiles.size(), grass);
std::vector<Tile> new_tiles = std::vector(prev_tiles.size(), Tile::grass);
int path_idx = 0;
for (int i = 0; i < prev_tiles.size(); i++) {
if (prev_tiles[i] == path) path_idx = i;
if (prev_tiles[i] == Tile::path) path_idx = i;
}
if (rand() % 2 == 0) path_idx += rand() % 3 - 1;
new_tiles[path_idx] = path;
new_tiles[path_idx] = Tile::path;
return new_tiles;
}
@ -103,8 +103,8 @@ void Map::draw(int player_x, int player_y) const
}
switch (tiles[tile_x][tile_y]) {
case grass: renderer->draw_sprite(grass_sprite, screen_x, screen_y); break;
case path: renderer->draw_sprite(path_sprite, screen_x, screen_y); break;
case Tile::grass: renderer->draw_sprite(grass_sprite, screen_x, screen_y); break;
case Tile::path: renderer->draw_sprite(path_sprite, screen_x, screen_y); break;
}
}
}

View File

@ -1,7 +1,7 @@
#ifndef TILE_HPP
#define TILE_HPP
enum Tile
enum class Tile
{
grass,
path,