style: canviar border_ a enum class

This commit is contained in:
2025-03-20 14:06:58 +01:00
parent 68c97610fb
commit f438e8946b
6 changed files with 32 additions and 28 deletions

View File

@@ -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;

View File

@@ -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:

View File

@@ -3,7 +3,7 @@
#include <algorithm> // Para max, min
#include <cmath> // 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;

View File

@@ -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<JA_Sound_t *> 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();

View File

@@ -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;

View File

@@ -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<SSprite> 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);