From f438e8946b65f388de01ad1fbc814c412096a8e9 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Thu, 20 Mar 2025 14:06:58 +0100 Subject: [PATCH] style: canviar border_ a enum class --- source/defines.h | 5 ----- source/game.cpp | 10 +++++----- source/player.cpp | 18 +++++++++--------- source/player.h | 6 +++--- source/room.cpp | 10 +++++----- source/room.h | 11 ++++++++++- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/source/defines.h b/source/defines.h index 82c71a7..96bc3f4 100644 --- a/source/defines.h +++ b/source/defines.h @@ -34,11 +34,6 @@ constexpr int PLAY_AREA_CENTER_Y = PLAY_AREA_TOP + (PLAY_AREA_HEIGHT / 2); constexpr int PLAY_AREA_FIRST_QUARTER_Y = PLAY_AREA_HEIGHT / 4; constexpr int PLAY_AREA_THIRD_QUARTER_Y = (PLAY_AREA_HEIGHT / 4) * 3; -constexpr int BORDER_TOP = 0; -constexpr int BORDER_RIGHT = 1; -constexpr int BORDER_BOTTOM = 2; -constexpr int BORDER_LEFT = 3; - // Anclajes de pantalla constexpr int GAMECANVAS_CENTER_X = GAMECANVAS_WIDTH / 2; constexpr int GAMECANVAS_FIRST_QUARTER_X = GAMECANVAS_WIDTH / 4; diff --git a/source/game.cpp b/source/game.cpp index a80cc3e..fc841b5 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -6,7 +6,7 @@ #include "asset.h" // Para Asset #include "cheevos.h" // Para Cheevos #include "debug.h" // Para Debug -#include "defines.h" // Para BLOCK, PLAY_AREA_HEIGHT, BORDER_BOTTOM +#include "defines.h" // Para BLOCK, PLAY_AREA_HEIGHT, RoomBorder::BOTTOM #include "global_events.h" // Para check #include "global_inputs.h" // Para check #include "input.h" // Para Input, InputAction, INPUT_DO_NOT_ALLOW_REPEAT @@ -249,19 +249,19 @@ void Game::checkDebugEvents(const SDL_Event &event) break; case SDL_SCANCODE_W: - changeRoom(room_->getRoom(BORDER_TOP)); + changeRoom(room_->getRoom(RoomBorder::TOP)); break; case SDL_SCANCODE_A: - changeRoom(room_->getRoom(BORDER_LEFT)); + changeRoom(room_->getRoom(RoomBorder::LEFT)); break; case SDL_SCANCODE_S: - changeRoom(room_->getRoom(BORDER_BOTTOM)); + changeRoom(room_->getRoom(RoomBorder::BOTTOM)); break; case SDL_SCANCODE_D: - changeRoom(room_->getRoom(BORDER_RIGHT)); + changeRoom(room_->getRoom(RoomBorder::RIGHT)); break; case SDL_SCANCODE_7: diff --git a/source/player.cpp b/source/player.cpp index db9a3b4..ff4111f 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -3,7 +3,7 @@ #include // Para max, min #include // Para ceil, abs #include "debug.h" // Para Debug -#include "defines.h" // Para BORDER_BOTTOM, BORDER_LEFT, BORDER_RIGHT +#include "defines.h" // Para RoomBorder::BOTTOM, RoomBorder::LEFT, RoomBorder::RIGHT #include "input.h" // Para Input, InputAction #include "jail_audio.h" // Para JA_PlaySound #include "options.h" // Para Cheat, Options, options @@ -132,25 +132,25 @@ void Player::checkBorders() { if (x_ < PLAY_AREA_LEFT) { - border_ = BORDER_LEFT; + border_ = RoomBorder::LEFT; is_on_border_ = true; } else if (x_ + WIDTH_ > PLAY_AREA_RIGHT) { - border_ = BORDER_RIGHT; + border_ = RoomBorder::RIGHT; is_on_border_ = true; } else if (y_ < PLAY_AREA_TOP) { - border_ = BORDER_TOP; + border_ = RoomBorder::TOP; is_on_border_ = true; } else if (y_ + HEIGHT_ > PLAY_AREA_BOTTOM) { - border_ = BORDER_BOTTOM; + border_ = RoomBorder::BOTTOM; is_on_border_ = true; } @@ -204,21 +204,21 @@ void Player::switchBorders() { switch (border_) { - case BORDER_TOP: + case RoomBorder::TOP: y_ = PLAY_AREA_BOTTOM - HEIGHT_ - BLOCK; setState(PlayerState::STANDING); break; - case BORDER_BOTTOM: + case RoomBorder::BOTTOM: y_ = PLAY_AREA_TOP; setState(PlayerState::STANDING); break; - case BORDER_RIGHT: + case RoomBorder::RIGHT: x_ = PLAY_AREA_LEFT; break; - case BORDER_LEFT: + case RoomBorder::LEFT: x_ = PLAY_AREA_RIGHT - WIDTH_; break; diff --git a/source/player.h b/source/player.h index 3f3a572..b9d0915 100644 --- a/source/player.h +++ b/source/player.h @@ -9,7 +9,7 @@ #include "defines.h" // Para BORDER_TOP, BLOCK #include "s_animated_sprite.h" // Para SAnimatedSprite #include "utils.h" // Para Color -class Room; // lines 12-12 +#include "room.h" struct JA_Sound_t; // lines 13-13 enum class PlayerState @@ -78,7 +78,7 @@ public: bool is_alive_ = true; // Indica si el jugador esta vivo o no bool is_paused_ = false; // Indica si el jugador esta en modo pausa bool auto_movement_ = false; // Indica si esta siendo arrastrado por una superficie automatica - int border_ = BORDER_TOP; // Indica en cual de los cuatro bordes se encuentra + RoomBorder border_ = RoomBorder::TOP; // Indica en cual de los cuatro bordes se encuentra SDL_Rect last_position_; // Contiene la ultima posición del jugador, por si hay que deshacer algun movimiento int jump_init_pos_; // Valor del eje Y en el que se inicia el salto std::vector jumping_sound_; // Vecor con todos los sonidos del salto @@ -175,7 +175,7 @@ public: bool getOnBorder() { return is_on_border_; } // Indica en cual de los cuatro bordes se encuentra - int getBorder() { return border_; } + RoomBorder getBorder() { return border_; } // Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla void switchBorders(); diff --git a/source/room.cpp b/source/room.cpp index 21d31bc..a9b9798 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -645,23 +645,23 @@ void Room::update() } // Devuelve la cadena del fichero de la habitación contigua segun el borde -std::string Room::getRoom(int border) +std::string Room::getRoom(RoomBorder border) { switch (border) { - case BORDER_TOP: + case RoomBorder::TOP: return upper_room_; break; - case BORDER_BOTTOM: + case RoomBorder::BOTTOM: return lower_room_; break; - case BORDER_RIGHT: + case RoomBorder::RIGHT: return right_room_; break; - case BORDER_LEFT: + case RoomBorder::LEFT: return left_room_; break; diff --git a/source/room.h b/source/room.h index db0d66c..30281d5 100644 --- a/source/room.h +++ b/source/room.h @@ -23,6 +23,15 @@ enum class TileType ANIMATED }; +enum class RoomBorder : int +{ + TOP = 0, + RIGHT = 1, + BOTTOM = 2, + LEFT = 3 +}; + + struct AnimatedTile { std::shared_ptr sprite; // SSprite para dibujar el tile @@ -179,7 +188,7 @@ public: void update(); // Devuelve la cadena del fichero de la habitación contigua segun el borde - std::string getRoom(int border); + std::string getRoom(RoomBorder border); // Devuelve el tipo de tile que hay en ese pixel TileType getTile(SDL_Point point);