commit a0c212cb
Also make the decorations part of the theme
Changed files
| M | source/code/BlockGameSdl.inc before |
| M | source/code/main.cpp before |
| M | source/code/mainVars.inc before |
| M | source/code/themes.hpp before |
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 <string>
+#include <vector>
enum class ImgScale { Stretch,
Tile,
@@ -39,10 +40,16 @@ struct BackGroundData {
ImgScale background_scale = ImgScale::Stretch;
};
+struct DecorationData {
+ std::string name = "smilies";
+ std::vector<std::string> 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;
};
/**