diff --git a/source/code/BlockGameSdl.inc b/source/code/BlockGameSdl.inc index 7a8bb10..6ad974b 100644 --- a/source/code/BlockGameSdl.inc +++ b/source/code/BlockGameSdl.inc @@ -383,7 +383,10 @@ private: under = board[j][i-1]; } if (((left != number)&&(right == number)&&(over != number)&&(under == number))&&(garbageSize>0)) { - DrawImgBoardBounded(smiley[board[j][i]%4], 2*bsize, 12*bsize-i*bsize-pixels+(bsize/2)*garbageSize); + if (globalData.theme.decoration.decoration_sprites.size()) { + const sago::SagoSprite& sprite = globalData.spriteHolder->GetSprite(globalData.theme.decoration.decoration_sprites[board[j][i]%globalData.theme.decoration.decoration_sprites.size()]); + DrawImgBoardBounded(sprite, 2*bsize, 12*bsize-i*bsize-pixels+(bsize/2)*garbageSize); + } } if (!((left != number)&&(right == number)&&(over == number)&&(under == number))) { //not in garbage garbageSize=0; diff --git a/source/code/main.cpp b/source/code/main.cpp index 8fcaa29..1d96809 100644 --- a/source/code/main.cpp +++ b/source/code/main.cpp @@ -169,10 +169,6 @@ static int InitImages(sago::SagoSpriteHolder& holder) { garbageGM = holder.GetSprite("garbage_gm"); garbageGML = holder.GetSprite("garbage_gml"); garbageGMR = holder.GetSprite("garbage_gmr"); - smiley[0] = holder.GetSprite("smileys0"); - smiley[1] = holder.GetSprite("smileys1"); - smiley[2] = holder.GetSprite("smileys2"); - smiley[3] = holder.GetSprite("smileys3"); transCover = holder.GetSprite("trans_cover"); bExit = holder.GetSprite("b_exit"); bSkip = holder.GetSprite("b_blank"); diff --git a/source/code/mainVars.inc b/source/code/mainVars.inc index c68bac7..542c0f9 100644 --- a/source/code/mainVars.inc +++ b/source/code/mainVars.inc @@ -82,7 +82,6 @@ static sago::SagoSprite garbageFill; static sago::SagoSprite garbageM; static sago::SagoSprite garbageML; static sago::SagoSprite garbageMR; -static sago::SagoSprite smiley[4]; static sago::SagoSprite garbageGM; static sago::SagoSprite garbageGML; static sago::SagoSprite garbageGMR; diff --git a/source/code/themes.hpp b/source/code/themes.hpp index df7579b..1cad8e6 100644 --- a/source/code/themes.hpp +++ b/source/code/themes.hpp @@ -24,6 +24,7 @@ https://www.blockattack.net #pragma once #include +#include enum class ImgScale { Stretch, Tile, @@ -39,10 +40,16 @@ struct BackGroundData { ImgScale background_scale = ImgScale::Stretch; }; +struct DecorationData { + std::string name = "smilies"; + std::vector decoration_sprites = {"smileys0", "smileys1", "smileys2", "smileys3"}; +}; + struct Theme { std::string theme_name = "standard"; std::string back_board = "back_board"; // Can also be "back_board_sample_snow" or "trans_cover" BackGroundData background; + DecorationData decoration; }; /**