git repos / blockattack-game

commit c2086a7e

sago007 · 2018-05-19 14:16
c2086a7ea00385bf99851f07cbe51d889a03d2e5 patch · browse files
parent 0471a1d36955d4419535e836d57629617d84c9cd

Now uses a seperate credits screen that take content from a file.

Changed files

M source/code/HelpAboutState.cpp before
M source/code/ShowFileState.cpp before
M source/code/ShowFileState.hpp before
M source/code/sago/SagoTextBox.cpp before
diff --git a/source/code/HelpAboutState.cpp b/source/code/HelpAboutState.cpp index a0376fc..cea9f70 100644 --- a/source/code/HelpAboutState.cpp +++ b/source/code/HelpAboutState.cpp
@@ -64,9 +64,6 @@ HelpAboutState::HelpAboutState() {
infoStream << _("Version:") << " " << VERSION_NUMBER << "\n";
infoStream << _("Homepage:") << " " << "https://blockattack.net\n";
infoStream << _("Github page:") << " " << "https://github.com/blockattack/blockattack-game\n";
- infoStream << _("Author:") << " " << "Poul Sander (sago007)\n";
- infoStream << _("Contributers:") << " " << "Gonéri Le Bouder, Jordà Polo, mstraube, Paul Wise, Iwan Gabovitch (qubodup), scootergrisen\n";
- infoStream << _("Other credits:") << " " << "Blender Foundation, Dietrich Radel, Dustin Norlander, Free Software Foundation, Kenney Vleugels, nicefrog, OpenArena\n";
infoStream << _("SDL render:") << " " << renderInfo.name << "\n";
infoStream << _("Save folder:") << " " << PHYSFS_getWriteDir() << "\n";
infoStream << _("Locale:") << " " << setlocale( LC_CTYPE, nullptr ) << "\n";
diff --git a/source/code/ShowFileState.cpp b/source/code/ShowFileState.cpp index 838314f..aef9a68 100644 --- a/source/code/ShowFileState.cpp +++ b/source/code/ShowFileState.cpp
@@ -27,7 +27,29 @@ const int ysize = 768;
const int buttonOffset = 160;
extern sago::SagoSprite bExit;
+static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) {
+ field.SetHolder(holder);
+ field.SetFont("freeserif");
+ field.SetColor({255,255,255,255});
+ field.SetFontSize(30);
+ field.SetOutline(1, {128,128,128,255});
+ field.SetText(text);
+}
+
+static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTextBox& field, const char* text) {
+ field.SetHolder(holder);
+ field.SetFont("freeserif");
+ field.SetColor({255,255,255,255});
+ field.SetColor({0,0,0,255});
+ field.SetFontSize(20);
+ field.SetOutline(0, {0,0,0,255});
+ field.SetText(text);
+}
+
ShowFileState::ShowFileState() {
+ setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), titleField, "");
+ setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), infoBox, "");
+ setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), filenameField, "");
}
ShowFileState::~ShowFileState() {
@@ -47,8 +69,16 @@ void ShowFileState::ProcessInput(const SDL_Event& event, bool& processed) {
}
}
+extern void DrawRectYellow(SDL_Renderer* target, int topx, int topy, int height, int width);
+
void ShowFileState::Draw(SDL_Renderer* target) {
DrawBackground(target);
+ titleField.Draw(target, 50, 50);
+ DrawRectYellow(target, 40, 90, 600, 900);
+ infoBox.SetMaxWidth(850);
+ infoBox.Draw(target, 50, 100);
+ DrawRectYellow(target, 40, 700, 50, 900);
+ filenameField.Draw(target, 50, 715);
bExit.Draw(globalData.screen, SDL_GetTicks(), xsize-buttonOffset, ysize-buttonOffset);
#if DEBUG
static sago::SagoTextField mousePos;
diff --git a/source/code/ShowFileState.hpp b/source/code/ShowFileState.hpp index 3bad338..32ce4cf 100644 --- a/source/code/ShowFileState.hpp +++ b/source/code/ShowFileState.hpp
@@ -22,7 +22,11 @@ https://blockattack.net
#include "sago/GameStateInterface.hpp"
+#include "sago/SagoTextField.hpp"
+#include "sago/SagoTextBox.hpp"
+#include "sago/SagoMisc.hpp"
#include <string>
+#include "common.h"
class ShowFileState : public sago::GameStateInterface {
public:
@@ -36,15 +40,17 @@ public:
void Update() override;
void SetData(const std::string& filename, const std::string& header) {
- this->filename = filename;
- this->header = header;
+ titleField.SetText(header);
+ infoBox.SetText(sago::GetFileContent(filename));
+ filenameField.SetText(SPrintStringF(_("Show content of: %s"), filename.c_str()));
}
private:
bool isActive = true;
bool bMouseUp = true;
- std::string filename;
- std::string header;
+ sago::SagoTextField titleField;
+ sago::SagoTextBox filenameField;
+ sago::SagoTextBox infoBox;
};
#endif /* SHOWFILESTATE_HPP */
diff --git a/source/code/sago/SagoTextBox.cpp b/source/code/sago/SagoTextBox.cpp index c8c1271..8a531bf 100644 --- a/source/code/sago/SagoTextBox.cpp +++ b/source/code/sago/SagoTextBox.cpp
@@ -102,9 +102,6 @@ void SagoTextBox::AppendLineToCache(const std::string& text) {
void SagoTextBox::SplitAndAppendLineToCache(TTF_Font* font, const std::string& text) {
- if (text.length() == 0) {
- return;
- }
int width = data->maxWidth;
TTF_SizeUTF8(font, text.c_str(),&width, nullptr);
if (data->maxWidth <= 0 || width <= data->maxWidth || text.length() == 1) {