Añadiendo la clase asset

This commit is contained in:
2022-09-26 10:17:54 +02:00
parent 25616e1e6c
commit 9e089e9092
18 changed files with 1190 additions and 622 deletions

View File

@@ -1,12 +1,12 @@
#include "game.h"
// Constructor
Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *screen, std::string *filelist, Lang *lang, Input *input, bool demo, options_t *options)
Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *screen, Asset *mAsset, Lang *lang, Input *input, bool demo, options_t *options)
{
// Copia los punteros
mRenderer = renderer;
mScreen = screen;
mFileList = filelist;
this->mAsset = mAsset;
mLang = lang;
mInput = input;
mOptions = options;
@@ -68,14 +68,14 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
mTextureTextNokia2 = new LTexture(mRenderer);
mTextureTextNokiaBig2 = new LTexture(mRenderer);
mText = new Text(mFileList[48], mTextureText, mRenderer);
mTextScoreBoard = new Text(mFileList[46], mTextureTextScoreBoard, mRenderer);
mTextBig = new Text(mFileList[47], mTextureTextBig, mRenderer);
mTextNokia2 = new Text(mFileList[57], mTextureTextNokia2, mRenderer);
mTextNokiaBig2 = new Text(mFileList[55], mTextureTextNokiaBig2, mRenderer);
mText = new Text(mAsset->get("smb2.txt"), mTextureText, mRenderer);
mTextScoreBoard = new Text(mAsset->get("8bithud.txt"), mTextureTextScoreBoard, mRenderer);
mTextBig = new Text(mAsset->get("smb2_big.txt"), mTextureTextBig, mRenderer);
mTextNokia2 = new Text(mAsset->get("nokia2.txt"), mTextureTextNokia2, mRenderer);
mTextNokiaBig2 = new Text(mAsset->get("nokia_big2.txt"), mTextureTextNokiaBig2, mRenderer);
mMenuGameOver = new Menu(mRenderer, mText, mInput, mFileList);
mMenuPause = new Menu(mRenderer, mText, mInput, mFileList);
mMenuGameOver = new Menu(mRenderer, mText, mInput, mAsset);
mMenuPause = new Menu(mRenderer, mText, mInput, mAsset);
mFade = new Fade(mRenderer);
mEventHandler = new SDL_Event();
@@ -104,7 +104,7 @@ Game::~Game()
mRenderer = nullptr;
mScreen = nullptr;
mFileList = nullptr;
mAsset = nullptr;
mLang = nullptr;
mInput = nullptr;
@@ -549,47 +549,47 @@ bool Game::loadMedia()
bool success = true;
// Texturas
success &= loadTextureFromFile(mTextureText, mFileList[30], mRenderer);
success &= loadTextureFromFile(mTextureTextScoreBoard, mFileList[27], mRenderer);
success &= loadTextureFromFile(mTextureTextBig, mFileList[29], mRenderer);
success &= loadTextureFromFile(mTextureTextNokia2, mFileList[56], mRenderer);
success &= loadTextureFromFile(mTextureTextNokiaBig2, mFileList[54], mRenderer);
success &= loadTextureFromFile(mTextureText, mAsset->get("smb2.png"), mRenderer);
success &= loadTextureFromFile(mTextureTextScoreBoard, mAsset->get("8bithud.png"), mRenderer);
success &= loadTextureFromFile(mTextureTextBig, mAsset->get("smb2_big.png"), mRenderer);
success &= loadTextureFromFile(mTextureTextNokia2, mAsset->get("nokia2.png"), mRenderer);
success &= loadTextureFromFile(mTextureTextNokiaBig2, mAsset->get("nokia_big2.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Legs, mFileList[39], mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Head, mFileList[41], mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Body, mFileList[37], mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Death, mFileList[38], mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Legs, mAsset->get("player1_legs.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Head, mAsset->get("player1_head.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Body, mAsset->get("player1_body.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer1Death, mAsset->get("player1_death.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Legs, mFileList[44], mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Head, mFileList[45], mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Body, mFileList[42], mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Death, mFileList[43], mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Legs, mAsset->get("player2_legs.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Head, mAsset->get("player2_head.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Body, mAsset->get("player2_body.png"), mRenderer);
success &= loadTextureFromFile(mTexturePlayer2Death, mAsset->get("player2_death.png"), mRenderer);
success &= loadTextureFromFile(mTextureBalloon, mFileList[24], mRenderer);
success &= loadTextureFromFile(mTextureBullet, mFileList[25], mRenderer);
success &= loadTextureFromFile(mTextureGameBG, mFileList[31], mRenderer);
success &= loadTextureFromFile(mTextureItems, mFileList[34], mRenderer);
success &= loadTextureFromFile(mTextureGameText, mFileList[32], mRenderer);
success &= loadTextureFromFile(mTextureBalloon, mAsset->get("balloon.png"), mRenderer);
success &= loadTextureFromFile(mTextureBullet, mAsset->get("bullet.png"), mRenderer);
success &= loadTextureFromFile(mTextureGameBG, mAsset->get("game_bg.png"), mRenderer);
success &= loadTextureFromFile(mTextureItems, mAsset->get("items.png"), mRenderer);
success &= loadTextureFromFile(mTextureGameText, mAsset->get("game_text.png"), mRenderer);
// Sonidos
mSoundBalloon = JA_LoadSound(mFileList[6].c_str());
mSoundBubble1 = JA_LoadSound(mFileList[7].c_str());
mSoundBubble2 = JA_LoadSound(mFileList[8].c_str());
mSoundBubble3 = JA_LoadSound(mFileList[9].c_str());
mSoundBubble4 = JA_LoadSound(mFileList[10].c_str());
mSoundBullet = JA_LoadSound(mFileList[11].c_str());
mSoundClock = JA_LoadSound(mFileList[22].c_str());
mSoundCoffeeOut = JA_LoadSound(mFileList[12].c_str());
mSoundHiScore = JA_LoadSound(mFileList[13].c_str());
mSoundItemDrop = JA_LoadSound(mFileList[14].c_str());
mSoundItemPickup = JA_LoadSound(mFileList[15].c_str());
mSoundPlayerCollision = JA_LoadSound(mFileList[19].c_str());
mSoundPowerBall = JA_LoadSound(mFileList[23].c_str());
mSoundStageChange = JA_LoadSound(mFileList[20].c_str());
mSoundCollision = JA_LoadSound(mFileList[21].c_str());
mSoundBalloon = JA_LoadSound(mAsset->get("balloon.wav").c_str());
mSoundBubble1 = JA_LoadSound(mAsset->get("bubble1.wav").c_str());
mSoundBubble2 = JA_LoadSound(mAsset->get("bubble2.wav").c_str());
mSoundBubble3 = JA_LoadSound(mAsset->get("bubble3.wav").c_str());
mSoundBubble4 = JA_LoadSound(mAsset->get("bubble4.wav").c_str());
mSoundBullet = JA_LoadSound(mAsset->get("bullet.wav").c_str());
mSoundClock = JA_LoadSound(mAsset->get("clock.wav").c_str());
mSoundCoffeeOut = JA_LoadSound(mAsset->get("coffeeout.wav").c_str());
mSoundHiScore = JA_LoadSound(mAsset->get("hiscore.wav").c_str());
mSoundItemDrop = JA_LoadSound(mAsset->get("itemdrop.wav").c_str());
mSoundItemPickup = JA_LoadSound(mAsset->get("itempickup.wav").c_str());
mSoundPlayerCollision = JA_LoadSound(mAsset->get("player_collision.wav").c_str());
mSoundPowerBall = JA_LoadSound(mAsset->get("powerball.wav").c_str());
mSoundStageChange = JA_LoadSound(mAsset->get("stage_change.wav").c_str());
mSoundCollision = JA_LoadSound(mAsset->get("title.wav").c_str());
// Musicas
mMusicPlaying = JA_LoadMusic(mFileList[4].c_str());
mMusicPlaying = JA_LoadMusic(mAsset->get("playing.ogg").c_str());
return success;
}
@@ -599,7 +599,7 @@ bool Game::loadScoreFile()
{
// Indicador de éxito en la carga
bool success = true;
const std::string p = mFileList[0];
const std::string p = mAsset->get("score.bin");
const std::string filename = p.substr(p.find_last_of("\\/") + 1);
SDL_RWops *file = SDL_RWFromFile(p.c_str(), "r+b");
@@ -644,12 +644,12 @@ bool Game::loadScoreFile()
// Establece el valor de la máxima puntuación a partir del vector con los datos
if (mScoreDataFile[0] == 0)
mHiScore = 10000;
{mHiScore = 10000;}
// Comprueba el checksum para ver si se ha modificado el fichero
else if (mScoreDataFile[0] % 43 == mScoreDataFile[1])
mHiScore = mScoreDataFile[0];
{mHiScore = mScoreDataFile[0];}
else
mHiScore = 10000;
{mHiScore = 10000;}
return success;
}
@@ -659,7 +659,7 @@ bool Game::loadDemoFile()
{
// Indicador de éxito en la carga
bool success = true;
const std::string p = mFileList[1];
const std::string p = mAsset->get("demo.bin");
const std::string filename = p.substr(p.find_last_of("\\/") + 1);
SDL_RWops *file = SDL_RWFromFile(p.c_str(), "r+b");
@@ -715,7 +715,7 @@ bool Game::loadDemoFile()
bool Game::saveScoreFile()
{
bool success = true;
const std::string p = mFileList[0];
const std::string p = mAsset->get("score.bin");
const std::string filename = p.substr(p.find_last_of("\\/") + 1);
SDL_RWops *file = SDL_RWFromFile(p.c_str(), "w+b");
if (file != nullptr)
@@ -742,7 +742,7 @@ bool Game::saveScoreFile()
bool Game::saveDemoFile()
{
bool success = true;
const std::string p = mFileList[1];
const std::string p = mAsset->get("demo.bin");
const std::string filename = p.substr(p.find_last_of("\\/") + 1);
if (mDemo.recording)
{