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"
// 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
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
@@ -12,7 +13,7 @@ Credits::Credits(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t
// Reserva memoria para los punteros
eventHandler = new SDL_Event();
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"));
// Inicializa variables
@@ -82,8 +83,6 @@ Credits::~Credits()
{
delete eventHandler;
delete text;
texture->unload();
delete texture;
delete sprite;
SDL_DestroyTexture(textTexture);
SDL_DestroyTexture(coverTexture);

View File

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

View File

@@ -180,7 +180,44 @@ bool Director::saveConfig()
// Carga los recursos
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;
@@ -703,7 +740,6 @@ bool Director::setFileList()
// Logo
asset->add("/data/logo/jailgames.png", t_bitmap);
asset->add("/data/logo/since_1998.png", t_bitmap);
asset->add("/data/logo/seagull.png", t_bitmap);
// Intro
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
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());
delete logo;
resource->freeTextures();
}
// Ejecuta la seccion de juego de la introducción
void Director::runIntro()
{
intro = new Intro(renderer, screen, asset, options);
loadResources(section);
intro = new Intro(renderer, screen, resource, asset, options);
setSection(intro->run());
delete intro;
resource->freeTextures();
}
// Ejecuta la seccion de juego con el titulo y los menus
@@ -759,17 +799,21 @@ void Director::runTitle()
{
JA_PlayMusic(music);
}
title = new Title(renderer, screen, asset, options);
loadResources(section);
title = new Title(renderer, screen, resource, asset, options);
setSection(title->run());
delete title;
resource->freeTextures();
}
// Ejecuta la seccion de los creditos del juego
void Director::runCredits()
{
credits = new Credits(renderer, screen, asset, options);
loadResources(section);
credits = new Credits(renderer, screen, resource, asset, options);
setSection(credits->run());
delete credits;
resource->freeTextures();
}
// Ejecuta la seccion de la demo, donde se ven pantallas del juego

View File

@@ -1,9 +1,10 @@
#include "intro.h"
// 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
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
@@ -13,13 +14,13 @@ Intro::Intro(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
eventHandler = new SDL_Event();
if (options->palette == p_zxspectrum)
{
loadingScreenTexture1 = new Texture(renderer, asset->get("loading_screen_bn.png"));
loadingScreenTexture2 = new Texture(renderer, asset->get("loading_screen_color.png"));
loadingScreenTexture1 =resource->getTexture("loading_screen_bn.png");
loadingScreenTexture2 =resource->getTexture("loading_screen_color.png");
}
else if (options->palette == p_zxarne)
{
loadingScreenTexture1 = new Texture(renderer, asset->get("loading_screen_bn_zxarne.png"));
loadingScreenTexture2 = new Texture(renderer, asset->get("loading_screen_color_zxarne.png"));
loadingScreenTexture1 =resource->getTexture("loading_screen_bn_zxarne.png");
loadingScreenTexture2 =resource->getTexture("loading_screen_color_zxarne.png");
}
sprite1 = new Sprite(0, 0, loadingScreenTexture1->getWidth(), loadingScreenTexture1->getHeight(), loadingScreenTexture1, 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
Intro::~Intro()
{
delete loadingScreenTexture1;
delete loadingScreenTexture2;
delete sprite1;
delete sprite2;
delete eventHandler;

View File

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

View File

@@ -1,9 +1,10 @@
#include "logo.h"
// 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
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
@@ -11,8 +12,8 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *opti
// Reserva memoria para los punteros
eventHandler = new SDL_Event();
texture = new Texture(renderer, asset->get("jailgames.png"));
texture2 = new Texture(renderer, asset->get("since_1998.png"));
texture = resource->getTexture("jailgames.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->setSpriteClip(0, 0, texture2->getWidth(), texture2->getHeight());
texture2->setColor(0, 0, 0);
@@ -55,9 +56,6 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *opti
// Destructor
Logo::~Logo()
{
delete texture;
delete texture2;
for (auto s : sprite)
{
delete s;

View File

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

View File

@@ -1,9 +1,10 @@
#include "title.h"
// 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
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
@@ -13,11 +14,11 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *op
eventHandler = new SDL_Event();
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)
{
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);
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()
{
delete eventHandler;
delete texture;
delete sprite;
delete text;
}

View File

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