Añadido el objeto resource a todas las secciones

This commit is contained in:
2022-10-26 22:36:46 +02:00
parent bd24db6f47
commit 02cc3b3527
10 changed files with 79 additions and 31 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

View File

@@ -1,9 +1,10 @@
#include "credits.h" #include "credits.h"
// Constructor // Constructor
Credits::Credits(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options) Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options)
{ {
// Copia la dirección de los objetos // Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer; this->renderer = renderer;
this->screen = screen; this->screen = screen;
this->asset = asset; this->asset = asset;
@@ -12,7 +13,7 @@ Credits::Credits(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t
// Reserva memoria para los punteros // Reserva memoria para los punteros
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer); text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
texture = new Texture(renderer, asset->get("shine.png")); texture = resource->getTexture("shine.png");
sprite = new AnimatedSprite(texture, renderer, asset->get("shine.ani")); sprite = new AnimatedSprite(texture, renderer, asset->get("shine.ani"));
// Inicializa variables // Inicializa variables
@@ -82,8 +83,6 @@ Credits::~Credits()
{ {
delete eventHandler; delete eventHandler;
delete text; delete text;
texture->unload();
delete texture;
delete sprite; delete sprite;
SDL_DestroyTexture(textTexture); SDL_DestroyTexture(textTexture);
SDL_DestroyTexture(coverTexture); SDL_DestroyTexture(coverTexture);

View File

@@ -4,6 +4,7 @@
#include "common/animatedsprite.h" #include "common/animatedsprite.h"
#include "common/asset.h" #include "common/asset.h"
#include "common/jail_audio.h" #include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h" #include "common/screen.h"
#include "common/sprite.h" #include "common/sprite.h"
#include "common/text.h" #include "common/text.h"
@@ -27,6 +28,7 @@ private:
// Objetos y punteros // Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos Asset *asset; // Objeto con los ficheros de recursos
SDL_Event *eventHandler; // Manejador de eventos SDL_Event *eventHandler; // Manejador de eventos
Text *text; // Objeto para escribir texto en pantalla Text *text; // Objeto para escribir texto en pantalla
@@ -62,7 +64,7 @@ private:
public: public:
// Constructor // Constructor
Credits(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options); Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);
// Destructor // Destructor
~Credits(); ~Credits();

View File

@@ -180,7 +180,44 @@ bool Director::saveConfig()
// Carga los recursos // Carga los recursos
void Director::loadResources(section_t section) void Director::loadResources(section_t section)
{ {
if (section.name == SECTION_PROG_GAME || section.name == SECTION_PROG_DEMO) if (section.name == SECTION_PROG_LOGO)
{
std::vector<std::string> textureList;
textureList.push_back("jailgames.png");
textureList.push_back("since_1998.png");
resource->loadTextures(textureList);
}
else if (section.name == SECTION_PROG_INTRO)
{
std::vector<std::string> textureList;
textureList.push_back("loading_screen_bn.png");
textureList.push_back("loading_screen_color.png");
textureList.push_back("loading_screen_bn_zxarne.png");
textureList.push_back("loading_screen_color_zxarne.png");
resource->loadTextures(textureList);
}
else if (section.name == SECTION_PROG_TITLE)
{
std::vector<std::string> textureList;
textureList.push_back("loading_screen_color.png");
textureList.push_back("loading_screen_color_zxarne.png");
resource->loadTextures(textureList);
}
else if (section.name == SECTION_PROG_CREDITS)
{
std::vector<std::string> textureList;
textureList.push_back("shine.png");
resource->loadTextures(textureList);
}
else if (section.name == SECTION_PROG_GAME || section.name == SECTION_PROG_DEMO)
{ {
std::vector<std::string> textureList; std::vector<std::string> textureList;
@@ -703,7 +740,6 @@ bool Director::setFileList()
// Logo // Logo
asset->add("/data/logo/jailgames.png", t_bitmap); asset->add("/data/logo/jailgames.png", t_bitmap);
asset->add("/data/logo/since_1998.png", t_bitmap); asset->add("/data/logo/since_1998.png", t_bitmap);
asset->add("/data/logo/seagull.png", t_bitmap);
// Intro // Intro
asset->add("/data/title/loading_screen_bn.png", t_bitmap); asset->add("/data/title/loading_screen_bn.png", t_bitmap);
@@ -739,17 +775,21 @@ void Director::setSection(section_t section)
// Ejecuta la seccion de juego con el logo // Ejecuta la seccion de juego con el logo
void Director::runLogo() void Director::runLogo()
{ {
logo = new Logo(renderer, screen, asset, options, section.subsection); loadResources(section);
logo = new Logo(renderer, screen, resource, asset, options, section.subsection);
setSection(logo->run()); setSection(logo->run());
delete logo; delete logo;
resource->freeTextures();
} }
// Ejecuta la seccion de juego de la introducción // Ejecuta la seccion de juego de la introducción
void Director::runIntro() void Director::runIntro()
{ {
intro = new Intro(renderer, screen, asset, options); loadResources(section);
intro = new Intro(renderer, screen, resource, asset, options);
setSection(intro->run()); setSection(intro->run());
delete intro; delete intro;
resource->freeTextures();
} }
// Ejecuta la seccion de juego con el titulo y los menus // Ejecuta la seccion de juego con el titulo y los menus
@@ -759,17 +799,21 @@ void Director::runTitle()
{ {
JA_PlayMusic(music); JA_PlayMusic(music);
} }
title = new Title(renderer, screen, asset, options); loadResources(section);
title = new Title(renderer, screen, resource, asset, options);
setSection(title->run()); setSection(title->run());
delete title; delete title;
resource->freeTextures();
} }
// Ejecuta la seccion de los creditos del juego // Ejecuta la seccion de los creditos del juego
void Director::runCredits() void Director::runCredits()
{ {
credits = new Credits(renderer, screen, asset, options); loadResources(section);
credits = new Credits(renderer, screen, resource, asset, options);
setSection(credits->run()); setSection(credits->run());
delete credits; delete credits;
resource->freeTextures();
} }
// Ejecuta la seccion de la demo, donde se ven pantallas del juego // Ejecuta la seccion de la demo, donde se ven pantallas del juego

View File

@@ -1,9 +1,10 @@
#include "intro.h" #include "intro.h"
// Constructor // Constructor
Intro::Intro(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options) Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options)
{ {
// Copia la dirección de los objetos // Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer; this->renderer = renderer;
this->screen = screen; this->screen = screen;
this->asset = asset; this->asset = asset;
@@ -13,13 +14,13 @@ Intro::Intro(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
if (options->palette == p_zxspectrum) if (options->palette == p_zxspectrum)
{ {
loadingScreenTexture1 = new Texture(renderer, asset->get("loading_screen_bn.png")); loadingScreenTexture1 =resource->getTexture("loading_screen_bn.png");
loadingScreenTexture2 = new Texture(renderer, asset->get("loading_screen_color.png")); loadingScreenTexture2 =resource->getTexture("loading_screen_color.png");
} }
else if (options->palette == p_zxarne) else if (options->palette == p_zxarne)
{ {
loadingScreenTexture1 = new Texture(renderer, asset->get("loading_screen_bn_zxarne.png")); loadingScreenTexture1 =resource->getTexture("loading_screen_bn_zxarne.png");
loadingScreenTexture2 = new Texture(renderer, asset->get("loading_screen_color_zxarne.png")); loadingScreenTexture2 =resource->getTexture("loading_screen_color_zxarne.png");
} }
sprite1 = new Sprite(0, 0, loadingScreenTexture1->getWidth(), loadingScreenTexture1->getHeight(), loadingScreenTexture1, renderer); sprite1 = new Sprite(0, 0, loadingScreenTexture1->getWidth(), loadingScreenTexture1->getHeight(), loadingScreenTexture1, renderer);
sprite2 = new Sprite(0, 0, loadingScreenTexture2->getWidth(), loadingScreenTexture2->getHeight(), loadingScreenTexture2, renderer); sprite2 = new Sprite(0, 0, loadingScreenTexture2->getWidth(), loadingScreenTexture2->getHeight(), loadingScreenTexture2, renderer);
@@ -72,8 +73,6 @@ Intro::Intro(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
// Destructor // Destructor
Intro::~Intro() Intro::~Intro()
{ {
delete loadingScreenTexture1;
delete loadingScreenTexture2;
delete sprite1; delete sprite1;
delete sprite2; delete sprite2;
delete eventHandler; delete eventHandler;

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include "common/asset.h" #include "common/asset.h"
#include "common/jail_audio.h" #include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h" #include "common/screen.h"
#include "common/sprite.h" #include "common/sprite.h"
#include "common/utils.h" #include "common/utils.h"
@@ -21,6 +22,7 @@ private:
// Objetos y punteros // Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos Asset *asset; // Objeto con los ficheros de recursos
Texture *loadingScreenTexture1; // Textura con la pantalla de carga en blanco y negro Texture *loadingScreenTexture1; // Textura con la pantalla de carga en blanco y negro
Texture *loadingScreenTexture2; // Textura con la pantalla de carga en color Texture *loadingScreenTexture2; // Textura con la pantalla de carga en color
@@ -64,7 +66,7 @@ private:
public: public:
// Constructor // Constructor
Intro(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options); Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);
// Destructor // Destructor
~Intro(); ~Intro();

View File

@@ -1,9 +1,10 @@
#include "logo.h" #include "logo.h"
// Constructor // Constructor
Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, int subsection) Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, int subsection)
{ {
// Copia la dirección de los objetos // Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer; this->renderer = renderer;
this->screen = screen; this->screen = screen;
this->asset = asset; this->asset = asset;
@@ -11,8 +12,8 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *opti
// Reserva memoria para los punteros // Reserva memoria para los punteros
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
texture = new Texture(renderer, asset->get("jailgames.png")); texture = resource->getTexture("jailgames.png");
texture2 = new Texture(renderer, asset->get("since_1998.png")); texture2 = resource->getTexture("since_1998.png");
sprite2 = new Sprite((256 - texture2->getWidth()) / 2, 83 + texture->getHeight() + 5, texture2->getWidth(), texture2->getHeight(), texture2, renderer); sprite2 = new Sprite((256 - texture2->getWidth()) / 2, 83 + texture->getHeight() + 5, texture2->getWidth(), texture2->getHeight(), texture2, renderer);
sprite2->setSpriteClip(0, 0, texture2->getWidth(), texture2->getHeight()); sprite2->setSpriteClip(0, 0, texture2->getWidth(), texture2->getHeight());
texture2->setColor(0, 0, 0); texture2->setColor(0, 0, 0);
@@ -55,9 +56,6 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *opti
// Destructor // Destructor
Logo::~Logo() Logo::~Logo()
{ {
delete texture;
delete texture2;
for (auto s : sprite) for (auto s : sprite)
{ {
delete s; delete s;

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include "common/asset.h" #include "common/asset.h"
#include "common/jail_audio.h" #include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h" #include "common/screen.h"
#include "common/sprite.h" #include "common/sprite.h"
#include "common/utils.h" #include "common/utils.h"
@@ -18,6 +19,7 @@ private:
// Objetos y punteros // Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos Asset *asset; // Objeto con los ficheros de recursos
Texture *texture; // Textura con los graficos "JAILGAMES" Texture *texture; // Textura con los graficos "JAILGAMES"
Texture *texture2; // Textura con los graficos "Since 1998" Texture *texture2; // Textura con los graficos "Since 1998"
@@ -53,7 +55,7 @@ private:
public: public:
// Constructor // Constructor
Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, int subsection); Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, int subsection);
// Destructor // Destructor
~Logo(); ~Logo();

View File

@@ -1,9 +1,10 @@
#include "title.h" #include "title.h"
// Constructor // Constructor
Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options) Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options)
{ {
// Copia la dirección de los objetos // Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer; this->renderer = renderer;
this->screen = screen; this->screen = screen;
this->asset = asset; this->asset = asset;
@@ -13,11 +14,11 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
if (options->palette == p_zxspectrum) if (options->palette == p_zxspectrum)
{ {
texture = new Texture(renderer, asset->get("loading_screen_color.png")); texture =resource->getTexture("loading_screen_color.png");
} }
else if (options->palette == p_zxarne) else if (options->palette == p_zxarne)
{ {
texture = new Texture(renderer, asset->get("loading_screen_color_zxarne.png")); texture =resource->getTexture("loading_screen_color_zxarne.png");
} }
sprite = new Sprite(0, 0, texture->getWidth(), texture->getHeight(), texture, renderer); sprite = new Sprite(0, 0, texture->getWidth(), texture->getHeight(), texture, renderer);
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer); text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
@@ -48,7 +49,6 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
Title::~Title() Title::~Title()
{ {
delete eventHandler; delete eventHandler;
delete texture;
delete sprite; delete sprite;
delete text; delete text;
} }

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include "common/asset.h" #include "common/asset.h"
#include "common/jail_audio.h" #include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h" #include "common/screen.h"
#include "common/sprite.h" #include "common/sprite.h"
#include "common/text.h" #include "common/text.h"
@@ -26,6 +27,7 @@ private:
// Objetos y punteros // Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos Asset *asset; // Objeto con los ficheros de recursos
SDL_Event *eventHandler; // Manejador de eventos SDL_Event *eventHandler; // Manejador de eventos
Texture *texture; // Textura con los graficos Texture *texture; // Textura con los graficos
@@ -64,7 +66,7 @@ private:
public: public:
// Constructor // Constructor
Title(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options); Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);
// Destructor // Destructor
~Title(); ~Title();