2 Commits

Author SHA1 Message Date
e11cabb9e2 Ya se puede usar el mando durante todo el juego
La ventana ya cambia de tamaño y de modo segun el estandar de jailgames
La carpeta de datos ya se crea segun el estandar de jailgames
2023-02-12 19:30:33 +01:00
c4eaeefb13 Ya funcionan los nuevos inputs de teclado y mando durante la tabla de records 2023-02-12 19:24:45 +01:00
5 changed files with 59 additions and 27 deletions

View File

@@ -25,7 +25,12 @@ Director::Director(int argc, char *argv[])
checkProgramArguments(argc, argv);
// Crea la carpeta del sistema donde guardar datos
createSystemFolder();
createSystemFolder("jailgames");
#ifndef DEBUG
createSystemFolder("jailgames/coffee_crisis");
#else
createSystemFolder("jailgames/coffee_crisis_debug");
#endif
// Crea el objeto que controla los ficheros de recursos
asset = new Asset(executablePath);
@@ -411,24 +416,18 @@ void Director::checkProgramArguments(int argc, char *argv[])
}
// Crea la carpeta del sistema donde guardar datos
void Director::createSystemFolder()
void Director::createSystemFolder(std::string folder)
{
#ifdef DEBUG
const std::string folderName = "coffee_crisis_debug";
#else
const std::string folderName = "coffee_crisis";
#endif
#ifdef _WIN32
systemFolder = std::string(getenv("APPDATA")) + "/" + folderName;
systemFolder = std::string(getenv("APPDATA")) + "/" + folder;
#elif __APPLE__
struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;
systemFolder = std::string(homedir) + "/Library/Application Support/" + folderName;
systemFolder = std::string(homedir) + "/Library/Application Support" + "/" + folder;
#elif __linux__
struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;
systemFolder = std::string(homedir) + "/." + folderName;
systemFolder = std::string(homedir) + "/." + folder;
#endif
struct stat st = {0};

View File

@@ -81,7 +81,7 @@ private:
void checkProgramArguments(int argc, char *argv[]);
// Crea la carpeta del sistema donde guardar datos
void createSystemFolder();
void createSystemFolder(std::string folder);
// Establece el valor de la variable
void setSection(section_t section);

View File

@@ -5,12 +5,13 @@
const Uint8 SELF = 0;
// Constructor
HiScoreTable::HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, options_t *options)
HiScoreTable::HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Lang *lang, options_t *options)
{
// Copia los punteros
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
this->input = input;
this->lang = lang;
// Reserva memoria para los punteros
@@ -52,6 +53,9 @@ void HiScoreTable::update()
// Comprueba los eventos
checkEventHandler();
// Comprueba las entradas
checkInput();
// Actualiza las variables
if (SDL_GetTicks() - ticks > ticksSpeed)
{
@@ -178,21 +182,45 @@ void HiScoreTable::checkEventHandler()
section.name = PROG_SECTION_QUIT;
break;
}
}
}
if ((eventHandler->type == SDL_KEYUP) || (eventHandler->type == SDL_JOYBUTTONUP))
// Comprueba las entradas
void HiScoreTable::checkInput()
{
if (input->checkInput(input_exit, REPEAT_FALSE))
{
section.name = PROG_SECTION_QUIT;
}
else if (input->checkInput(input_window_fullscreen, REPEAT_FALSE))
{
screen->switchVideoMode();
}
else if (input->checkInput(input_window_dec_size, REPEAT_FALSE))
{
screen->decWindowSize();
}
else if (input->checkInput(input_window_inc_size, REPEAT_FALSE))
{
screen->incWindowSize();
}
else if (input->checkInput(input_pause, REPEAT_FALSE) || input->checkInput(input_accept, REPEAT_FALSE) || input->checkInput(input_fire_left, REPEAT_FALSE) || input->checkInput(input_fire_center, REPEAT_FALSE) || input->checkInput(input_fire_right, REPEAT_FALSE))
{
if (mode == mhst_auto)
{
if (mode == mhst_auto)
JA_StopMusic();
section.name = PROG_SECTION_TITLE;
section.subsection = TITLE_SECTION_1;
}
else
{
if (counter > 30)
{
JA_StopMusic();
section.name = PROG_SECTION_TITLE;
section.subsection = TITLE_SECTION_1;
}
else
{
if (counter > 30)
{
manualQuit = true;
}
manualQuit = true;
}
}
}

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/screen.h"
#include "common/sprite.h"
@@ -27,6 +28,7 @@ private:
SDL_Event *eventHandler; // Manejador de eventos
SDL_Texture *backbuffer; // Textura para usar como backbuffer
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
Lang *lang; // Objeto para gestionar los textos en diferentes idiomas
Text *text; // Objeto para escribir texto
options_t *options; // Opciones y parametyros del programa
@@ -49,12 +51,15 @@ private:
// Comprueba los eventos
void checkEventHandler();
// Comprueba las entradas
void checkInput();
// Transforma un valor numérico en una cadena de 6 cifras
std::string scoreToString(Uint32 num);
public:
// Constructor
HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *mAsset, Lang *lang, options_t *options);
HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Lang *lang, options_t *options);
// Destructor
~HiScoreTable();

View File

@@ -975,7 +975,7 @@ section_t Title::runHiScoreTable(mode_hiScoreTable_e mode)
return section;
}
hiScoreTable = new HiScoreTable(renderer, screen, asset, lang, options);
hiScoreTable = new HiScoreTable(renderer, screen, asset, input, lang, options);
section = hiScoreTable->run(mode);
delete hiScoreTable;