forked from jaildesigner-jailgames/jaildoctors_dilemma
migrat Input a la ultima versió
cohesionats tots els metodes update de les escenes
This commit is contained in:
@@ -7,18 +7,18 @@
|
||||
#include <sstream> // Para basic_stringstream
|
||||
#include <utility>
|
||||
|
||||
#include "core/audio/audio.hpp" // Para Audio
|
||||
#include "core/rendering/screen.hpp" // Para Screen
|
||||
#include "core/rendering/surface.hpp" // Para Surface
|
||||
#include "core/rendering/surface_sprite.hpp" // Para SSprite
|
||||
#include "core/resources/resource.hpp" // Para Resource
|
||||
#include "core/audio/audio.hpp" // Para Audio
|
||||
#include "core/rendering/screen.hpp" // Para Screen
|
||||
#include "core/rendering/surface.hpp" // Para Surface
|
||||
#include "core/rendering/surface_sprite.hpp" // Para SSprite
|
||||
#include "core/resources/resource.hpp" // Para Resource
|
||||
#include "core/resources/resource_helper.hpp" // Para ResourceHelper
|
||||
#include "core/system/debug.hpp" // Para Debug
|
||||
#include "game/gameplay/item_tracker.hpp" // Para ItemTracker
|
||||
#include "game/gameplay/scoreboard.hpp" // Para ScoreboardData
|
||||
#include "game/options.hpp" // Para Options, OptionsStats, options
|
||||
#include "utils/defines.hpp" // Para BLOCK, PLAY_AREA_HEIGHT, PLAY_AREA_WIDTH
|
||||
#include "utils/utils.hpp" // Para LineHorizontal, LineDiagonal, LineVertical
|
||||
#include "core/system/debug.hpp" // Para Debug
|
||||
#include "game/gameplay/item_tracker.hpp" // Para ItemTracker
|
||||
#include "game/gameplay/scoreboard.hpp" // Para ScoreboardData
|
||||
#include "game/options.hpp" // Para Options, OptionsStats, options
|
||||
#include "utils/defines.hpp" // Para BLOCK, PLAY_AREA_HEIGHT, PLAY_AREA_WIDTH
|
||||
#include "utils/utils.hpp" // Para LineHorizontal, LineDiagonal, LineVertical
|
||||
|
||||
// Constructor
|
||||
Room::Room(const std::string& room_path, std::shared_ptr<ScoreboardData> data)
|
||||
@@ -869,14 +869,15 @@ auto Room::setEnemy(Enemy::Data* enemy, const std::string& key, const std::strin
|
||||
try {
|
||||
/*if (key == "tileSetFile") {
|
||||
enemy->surface_path = value;
|
||||
} else */if (key == "animation") {
|
||||
} else */
|
||||
if (key == "animation") {
|
||||
enemy->animation_path = value;
|
||||
/* [DOC:29/10/2025] w i h ja no fan falta, se pilla del .ANI
|
||||
} else if (key == "width") {
|
||||
enemy->w = std::stoi(value);
|
||||
} else if (key == "height") {
|
||||
enemy->h = std::stoi(value);
|
||||
[/DOC] */
|
||||
/* [DOC:29/10/2025] w i h ja no fan falta, se pilla del .ANI
|
||||
} else if (key == "width") {
|
||||
enemy->w = std::stoi(value);
|
||||
} else if (key == "height") {
|
||||
enemy->h = std::stoi(value);
|
||||
[/DOC] */
|
||||
} else if (key == "x") {
|
||||
enemy->x = std::stof(value) * TILE_SIZE;
|
||||
} else if (key == "y") {
|
||||
@@ -991,8 +992,7 @@ auto Room::loadRoomTileFile(const std::string& file_path, bool verbose) -> std::
|
||||
if (verbose) {
|
||||
std::cout << "TileMap loaded: " << FILENAME.c_str() << '\n';
|
||||
}
|
||||
}
|
||||
else { // El fichero no se puede abrir
|
||||
} else { // El fichero no se puede abrir
|
||||
if (verbose) {
|
||||
std::cout << "Warning: Unable to open " << FILENAME.c_str() << " file" << '\n';
|
||||
}
|
||||
@@ -1046,8 +1046,7 @@ auto Room::loadRoomFile(const std::string& file_path, bool verbose) -> Data {
|
||||
if (verbose) {
|
||||
std::cout << "Room loaded: " << FILE_NAME.c_str() << '\n';
|
||||
}
|
||||
}
|
||||
else { // El fichero no se puede abrir
|
||||
} else { // El fichero no se puede abrir
|
||||
std::cout << "Warning: Unable to open " << FILE_NAME.c_str() << " file" << '\n';
|
||||
}
|
||||
|
||||
|
||||
@@ -34,27 +34,27 @@ class Room {
|
||||
};
|
||||
|
||||
struct AnimatedTile {
|
||||
std::shared_ptr<SurfaceSprite> sprite; // SurfaceSprite para dibujar el tile
|
||||
int x_orig = 0; // Posición X donde se encuentra el primer tile de la animación en la tilesheet
|
||||
std::shared_ptr<SurfaceSprite> sprite; // SurfaceSprite para dibujar el tile
|
||||
int x_orig = 0; // Posición X donde se encuentra el primer tile de la animación en la tilesheet
|
||||
};
|
||||
|
||||
struct Data {
|
||||
std::string number; // Numero de la habitación
|
||||
std::string name; // Nombre de la habitación
|
||||
std::string bg_color; // Color de fondo de la habitación
|
||||
std::string border_color; // Color del borde de la pantalla
|
||||
std::string item_color1; // Color 1 para los items de la habitación
|
||||
std::string item_color2; // Color 2 para los items de la habitación
|
||||
std::string upper_room; // Identificador de la habitación que se encuentra arriba
|
||||
std::string lower_room; // Identificador de la habitación que se encuentra abajo
|
||||
std::string left_room; // Identificador de la habitación que se encuentra a la izquierda
|
||||
std::string right_room; // Identificador de la habitación que se encuentra a la derecha
|
||||
std::string tile_set_file; // Imagen con los gráficos para la habitación
|
||||
std::string tile_map_file; // Fichero con el mapa de índices de tile
|
||||
int conveyor_belt_direction = 0; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||
std::vector<int> tile_map; // Índice de los tiles a dibujar en la habitación
|
||||
std::vector<Enemy::Data> enemies; // Listado con los enemigos de la habitación
|
||||
std::vector<Item::Data> items; // Listado con los items que hay en la habitación
|
||||
std::string number; // Numero de la habitación
|
||||
std::string name; // Nombre de la habitación
|
||||
std::string bg_color; // Color de fondo de la habitación
|
||||
std::string border_color; // Color del borde de la pantalla
|
||||
std::string item_color1; // Color 1 para los items de la habitación
|
||||
std::string item_color2; // Color 2 para los items de la habitación
|
||||
std::string upper_room; // Identificador de la habitación que se encuentra arriba
|
||||
std::string lower_room; // Identificador de la habitación que se encuentra abajo
|
||||
std::string left_room; // Identificador de la habitación que se encuentra a la izquierda
|
||||
std::string right_room; // Identificador de la habitación que se encuentra a la derecha
|
||||
std::string tile_set_file; // Imagen con los gráficos para la habitación
|
||||
std::string tile_map_file; // Fichero con el mapa de índices de tile
|
||||
int conveyor_belt_direction = 0; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||
std::vector<int> tile_map; // Índice de los tiles a dibujar en la habitación
|
||||
std::vector<Enemy::Data> enemies; // Listado con los enemigos de la habitación
|
||||
std::vector<Item::Data> items; // Listado con los items que hay en la habitación
|
||||
|
||||
// Constructor por defecto
|
||||
Data() = default;
|
||||
@@ -108,34 +108,34 @@ class Room {
|
||||
std::shared_ptr<ScoreboardData> data_; // Puntero a los datos del marcador
|
||||
|
||||
// --- Variables ---
|
||||
std::string number_; // Numero de la habitación
|
||||
std::string name_; // Nombre de la habitación
|
||||
std::string bg_color_; // Color de fondo de la habitación
|
||||
std::string border_color_; // Color del borde de la pantalla
|
||||
std::string item_color1_; // Color 1 para los items de la habitación
|
||||
std::string item_color2_; // Color 2 para los items de la habitación
|
||||
std::string upper_room_; // Identificador de la habitación que se encuentra arriba
|
||||
std::string lower_room_; // Identificador de la habitación que se encuentra abajp
|
||||
std::string left_room_; // Identificador de la habitación que se encuentra a la izquierda
|
||||
std::string right_room_; // Identificador de la habitación que se encuentra a la derecha
|
||||
std::string tile_set_file_; // Imagen con los graficos para la habitación
|
||||
std::string tile_map_file_; // Fichero con el mapa de indices de tile
|
||||
std::vector<int> tile_map_; // Indice de los tiles a dibujar en la habitación
|
||||
int conveyor_belt_direction_ = 0; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||
std::vector<LineHorizontal> bottom_floors_; // Lista con las superficies inferiores de la habitación
|
||||
std::vector<LineHorizontal> top_floors_; // Lista con las superficies superiores de la habitación
|
||||
std::vector<LineVertical> left_walls_; // Lista con las superficies laterales de la parte izquierda de la habitación
|
||||
std::vector<LineVertical> right_walls_; // Lista con las superficies laterales de la parte derecha de la habitación
|
||||
std::vector<LineDiagonal> left_slopes_; // Lista con todas las rampas que suben hacia la izquierda
|
||||
std::vector<LineDiagonal> right_slopes_; // Lista con todas las rampas que suben hacia la derecha
|
||||
float time_accumulator_ = 0.0F; // Acumulador de tiempo para animaciones (time-based)
|
||||
bool is_paused_ = false; // Indica si el mapa esta en modo pausa
|
||||
std::string number_; // Numero de la habitación
|
||||
std::string name_; // Nombre de la habitación
|
||||
std::string bg_color_; // Color de fondo de la habitación
|
||||
std::string border_color_; // Color del borde de la pantalla
|
||||
std::string item_color1_; // Color 1 para los items de la habitación
|
||||
std::string item_color2_; // Color 2 para los items de la habitación
|
||||
std::string upper_room_; // Identificador de la habitación que se encuentra arriba
|
||||
std::string lower_room_; // Identificador de la habitación que se encuentra abajp
|
||||
std::string left_room_; // Identificador de la habitación que se encuentra a la izquierda
|
||||
std::string right_room_; // Identificador de la habitación que se encuentra a la derecha
|
||||
std::string tile_set_file_; // Imagen con los graficos para la habitación
|
||||
std::string tile_map_file_; // Fichero con el mapa de indices de tile
|
||||
std::vector<int> tile_map_; // Indice de los tiles a dibujar en la habitación
|
||||
int conveyor_belt_direction_ = 0; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||
std::vector<LineHorizontal> bottom_floors_; // Lista con las superficies inferiores de la habitación
|
||||
std::vector<LineHorizontal> top_floors_; // Lista con las superficies superiores de la habitación
|
||||
std::vector<LineVertical> left_walls_; // Lista con las superficies laterales de la parte izquierda de la habitación
|
||||
std::vector<LineVertical> right_walls_; // Lista con las superficies laterales de la parte derecha de la habitación
|
||||
std::vector<LineDiagonal> left_slopes_; // Lista con todas las rampas que suben hacia la izquierda
|
||||
std::vector<LineDiagonal> right_slopes_; // Lista con todas las rampas que suben hacia la derecha
|
||||
float time_accumulator_ = 0.0F; // Acumulador de tiempo para animaciones (time-based)
|
||||
bool is_paused_ = false; // Indica si el mapa esta en modo pausa
|
||||
|
||||
// Constantes de tiempo
|
||||
static constexpr float CONVEYOR_FRAME_DURATION = 0.05F; // Duración de cada frame de conveyor belt (3 frames @ 60fps)
|
||||
std::vector<AnimatedTile> animated_tiles_; // Vector con los indices de tiles animados
|
||||
std::vector<LineHorizontal> conveyor_belt_floors_; // Lista con las superficies automaticas de la habitación
|
||||
int tile_set_width_ = 0; // Ancho del tileset en tiles
|
||||
std::vector<AnimatedTile> animated_tiles_; // Vector con los indices de tiles animados
|
||||
std::vector<LineHorizontal> conveyor_belt_floors_; // Lista con las superficies automaticas de la habitación
|
||||
int tile_set_width_ = 0; // Ancho del tileset en tiles
|
||||
|
||||
// --- Funciones ---
|
||||
void initializeRoom(const Data& room); // Inicializa los valores
|
||||
|
||||
@@ -21,7 +21,7 @@ Scoreboard::Scoreboard(std::shared_ptr<ScoreboardData> data)
|
||||
constexpr float SURFACE_HEIGHT = 6.0F * TILE_SIZE;
|
||||
|
||||
// Reserva memoria para los objetos
|
||||
//auto player_texture = Resource::get()->getSurface(Options::cheats.alternate_skin == Options::Cheat::State::ENABLED ? "player2.gif" : "player.gif");
|
||||
// auto player_texture = Resource::get()->getSurface(Options::cheats.alternate_skin == Options::Cheat::State::ENABLED ? "player2.gif" : "player.gif");
|
||||
auto player_animations = Resource::get()->getAnimations(Options::cheats.alternate_skin == Options::Cheat::State::ENABLED ? "player2.ani" : "player.ani");
|
||||
player_sprite_ = std::make_shared<SurfaceAnimatedSprite>(player_animations);
|
||||
player_sprite_->setCurrentAnimation("walk_menu");
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <memory> // Para shared_ptr
|
||||
#include <string> // Para string, basic_string
|
||||
#include <memory> // Para shared_ptr
|
||||
#include <string> // Para string, basic_string
|
||||
#include <utility>
|
||||
#include <vector> // Para vector
|
||||
class SurfaceAnimatedSprite; // lines 10-10
|
||||
@@ -74,13 +74,13 @@ class Scoreboard {
|
||||
static constexpr int SPRITE_WALK_FRAMES = 4; // Número de frames de animación
|
||||
|
||||
// Variables
|
||||
std::vector<Uint8> color_; // Vector con los colores del objeto
|
||||
bool is_paused_; // Indica si el marcador esta en modo pausa
|
||||
Uint32 paused_time_; // Milisegundos que ha estado el marcador en pausa
|
||||
Uint32 paused_time_elapsed_; // Tiempo acumulado en pausa
|
||||
ClockData clock_; // Contiene las horas, minutos y segundos transcurridos desde el inicio de la partida
|
||||
Uint8 items_color_; // Color de la cantidad de items recogidos
|
||||
SDL_FRect surface_dest_; // Rectangulo donde dibujar la surface del marcador
|
||||
std::vector<Uint8> color_; // Vector con los colores del objeto
|
||||
bool is_paused_; // Indica si el marcador esta en modo pausa
|
||||
Uint32 paused_time_; // Milisegundos que ha estado el marcador en pausa
|
||||
Uint32 paused_time_elapsed_; // Tiempo acumulado en pausa
|
||||
ClockData clock_; // Contiene las horas, minutos y segundos transcurridos desde el inicio de la partida
|
||||
Uint8 items_color_; // Color de la cantidad de items recogidos
|
||||
SDL_FRect surface_dest_; // Rectangulo donde dibujar la surface del marcador
|
||||
float time_accumulator_ = 0.0F; // Acumulador de tiempo para animaciones
|
||||
float items_color_timer_ = 0.0F; // Timer para parpadeo de color de items
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class Stats {
|
||||
public:
|
||||
// Constructostd::string nst stdstd::string nst std::string& buffer);
|
||||
Stats(std::string file, std::string buffer);
|
||||
|
||||
|
||||
// Destructor
|
||||
~Stats();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user