git repos / sago_multi_scrambler_puzzle2

commit b53e4278

Poul Sander · 2026-03-31 17:47
b53e42789ae075585ce5cc33b4ee180a39a4965f patch · browse files
parent 10cf282464598ab97ee98f587190fe8c9aecbcb3

Do not draw the preview if the puzzle is not solved

Changed files

M src/CollectionPlayState.cpp before
M src/CollectionPlayState.hpp before
diff --git a/src/CollectionPlayState.cpp b/src/CollectionPlayState.cpp index e02a032..06e34b6 100644 --- a/src/CollectionPlayState.cpp +++ b/src/CollectionPlayState.cpp
@@ -39,6 +39,13 @@ CollectionPlayState::CollectionPlayState(const std::string& collectionDir)
int firstUnsolved = FindFirstUnsolved();
currentPuzzleIndex = (firstUnsolved >= 0) ? firstUnsolved : 0;
LoadCurrentImage();
+
+ questionMarkField.SetHolder(globalData.dataHolder);
+ questionMarkField.SetFont("freeserif");
+ questionMarkField.SetColor({200, 200, 200, 255});
+ questionMarkField.SetFontSize(120);
+ questionMarkField.SetOutline(3, {80, 80, 80, 255});
+ questionMarkField.SetText("?");
}
CollectionPlayState::~CollectionPlayState() {
@@ -76,10 +83,21 @@ void CollectionPlayState::Draw(SDL_Renderer* target) {
int preview_y = 60;
int preview_max_w = globalData.xsize / 2 - 60;
int preview_max_h = globalData.ysize - 120;
- currentImageHolder.Draw(target, preview_x, preview_y, preview_max_w, preview_max_h);
// Draw solved indicator using sprites
bool isSolved = solvedPuzzles.count(currentPuzzleIndex) > 0;
+
+ if (isSolved) {
+ currentImageHolder.Draw(target, preview_x, preview_y, preview_max_w, preview_max_h);
+ } else {
+ // Draw a large [?] centered in the preview area
+ int center_x = preview_x + preview_max_w / 2;
+ int center_y = preview_y + preview_max_h / 2;
+ questionMarkField.Draw(target, center_x, center_y,
+ sago::SagoTextField::Alignment::center,
+ sago::SagoTextField::VerticalAlignment::center);
+ }
+
int icon_x = preview_x + preview_max_w - 40;
int icon_y = preview_y + 10;
const sago::SagoSprite& checkbox = globalData.spriteHolder->GetSprite("i_level_check_box");
diff --git a/src/CollectionPlayState.hpp b/src/CollectionPlayState.hpp index f876e18..311793e 100644 --- a/src/CollectionPlayState.hpp +++ b/src/CollectionPlayState.hpp
@@ -68,4 +68,5 @@ private:
sago::SagoTextField titleField;
sago::SagoTextField descriptionField;
sago::SagoTextField progressField;
+ sago::SagoTextField questionMarkField;
};