commit 479b9e40
Add fields to the boxes
Changed files
| M | data/AUTH before |
| A | data/fonts/freeserif.ttf |
| M | src/ImageSelectState.cpp before |
| M | src/ImageSelectState.hpp before |
| M | src/sago_multi_scrambler_puzzle2.cpp before |
diff --git a/data/AUTH b/data/AUTH
index e98f7a9..58c2ec3 100644
--- a/data/AUTH
+++ b/data/AUTH
@@ -2,6 +2,9 @@ To ensure that all authers is known for each medie file. Only files that cannot
Poul Sander's files are multi licensed under "GPL v2 or later" OR "CC-BY-SA any version"
+/fonts/
+freeserif.ttf Free Software Foundation (GPL with exception)
+
/textures/
background_sixteen_nine.png Poul Sander (based of qubodup's background.png)
fallback.png Poul Sander
diff --git a/data/fonts/freeserif.ttf b/data/fonts/freeserif.ttf
new file mode 100644
index 0000000..2f3dfc3
Binary files /dev/null and b/data/fonts/freeserif.ttf differ
diff --git a/src/ImageSelectState.cpp b/src/ImageSelectState.cpp
index 9b1eac3..c097e0c 100644
--- a/src/ImageSelectState.cpp
+++ b/src/ImageSelectState.cpp
@@ -92,6 +92,9 @@ void ImageSelectState::Draw(SDL_Renderer* target) {
int x = i % number_of_columns;
int y = i / number_of_columns;
DrawRectYellow(target, top_x+x*(frame_size+frame_spacing), top_y+y*(frame_size+frame_spacing), frame_size, frame_size);
+ if (i < imageNameFields.size()) {
+ imageNameFields[i].Draw(target, top_x+x*(frame_size+frame_spacing)+frame_size/2, top_y+y*(frame_size+frame_spacing)+frame_size-5, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom);
+ }
}
}
@@ -128,6 +131,15 @@ static bool HasExtension(const std::string& filename, const std::string& extensi
return std::equal(extension.rbegin(), extension.rend(), filename.rbegin(), ichar_equals);
}
+static void setFontText(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) {
+ field.SetHolder(holder);
+ field.SetFont("freeserif");
+ field.SetColor({255,255,255,255});
+ field.SetFontSize(24);
+ field.SetOutline(1, {0,0,0,255});
+ field.SetText(text);
+}
+
void ImageSelectState::Init() {
if (!folder.empty()) {
@@ -135,6 +147,9 @@ void ImageSelectState::Init() {
if (entry.is_regular_file() && (HasExtension(entry.path().string(), ".jpg") || HasExtension(entry.path().string(), ".jpeg") || HasExtension(entry.path().string(), ".png") ) ) {
std::cout << entry.path() << std::endl;
imageList.push_back(entry.path().string());
+ sago::SagoTextField field;
+ setFontText(globalData.dataHolder, field, entry.path().filename().string().c_str());
+ imageNameFields.push_back(std::move(field));
}
}
}
diff --git a/src/ImageSelectState.hpp b/src/ImageSelectState.hpp
index 3acca77..93e1633 100644
--- a/src/ImageSelectState.hpp
+++ b/src/ImageSelectState.hpp
@@ -24,6 +24,7 @@ https://github.com/sago007/saland
#include "sago/GameStateInterface.hpp"
#include <string>
#include <vector>
+#include "sago/SagoTextField.hpp"
#pragma once
@@ -44,6 +45,7 @@ public:
std::string folder = "";
std::string collection = "";
std::vector<std::string> imageList;
+ std::vector<sago::SagoTextField> imageNameFields;
private:
bool isActive = true;
diff --git a/src/sago_multi_scrambler_puzzle2.cpp b/src/sago_multi_scrambler_puzzle2.cpp
index 9453697..b9f3b05 100644
--- a/src/sago_multi_scrambler_puzzle2.cpp
+++ b/src/sago_multi_scrambler_puzzle2.cpp
@@ -57,18 +57,18 @@ void runGame() {
}
void runCollection(const std::string& collection_name) {
+ InitGame();
ImageSelectState iss;
iss.collection = collection_name;
- InitGame();
RunGameState(iss);
UninitGame();
}
void runFolder(const std::string& folder_name) {
+ InitGame();
ImageSelectState iss;
iss.folder = folder_name;
iss.Init();
- InitGame();
RunGameState(iss);
UninitGame();
}