[planetblupi] 02/61: Add support for Polish special characters
Didier Raboud
odyx at moszumanska.debian.org
Thu Nov 2 19:24:49 UTC 2017
This is an automated email from the git hooks/post-receive script.
odyx pushed a commit to branch debian/master
in repository planetblupi.
commit 3064ffb130f324ea13795e4b4b00ce79ae66bb20
Author: krzys-h <krzys_h at interia.pl>
Date: Tue Sep 12 17:09:50 2017 +0200
Add support for Polish special characters
---
resources/image/little_pl.png | Bin 0 -> 2020 bytes
resources/image/text_pl.png | Bin 0 -> 8325 bytes
src/blupi.cxx | 10 ++++++++--
src/event.cxx | 25 +++++++++++++++++++++++++
src/text.cxx | 31 +++++++++++++++++++++++++++----
5 files changed, 60 insertions(+), 6 deletions(-)
diff --git a/resources/image/little_pl.png b/resources/image/little_pl.png
new file mode 100644
index 0000000..7f7df27
Binary files /dev/null and b/resources/image/little_pl.png differ
diff --git a/resources/image/text_pl.png b/resources/image/text_pl.png
new file mode 100644
index 0000000..4d6eec3
Binary files /dev/null and b/resources/image/text_pl.png differ
diff --git a/src/blupi.cxx b/src/blupi.cxx
index 61b6e3f..011c0be 100644
--- a/src/blupi.cxx
+++ b/src/blupi.cxx
@@ -833,7 +833,10 @@ DoInit (int argc, char * argv[], bool & exit)
totalDim.y = DIMTEXTY * 8 * 3;
iconDim.x = DIMTEXTX;
iconDim.y = DIMTEXTY;
- if (!g_pPixmap->Cache (CHTEXT, "image/text.png", totalDim, iconDim))
+ std::string text_filename = "image/text.png";
+ if (GetLocale() == "pl")
+ text_filename = "image/text_pl.png"; // TODO: Merge into one texture, or use TTF fonts instead?
+ if (!g_pPixmap->Cache (CHTEXT, text_filename, totalDim, iconDim))
{
InitFail ("Cache text.png");
return EXIT_FAILURE;
@@ -843,7 +846,10 @@ DoInit (int argc, char * argv[], bool & exit)
totalDim.y = DIMLITTLEY * 8;
iconDim.x = DIMLITTLEX;
iconDim.y = DIMLITTLEY;
- if (!g_pPixmap->Cache (CHLITTLE, "image/little.png", totalDim, iconDim))
+ std::string little_filename = "image/little.png";
+ if (GetLocale() == "pl")
+ little_filename = "image/little_pl.png"; // TODO: Merge into one texture, or use TTF fonts instead?
+ if (!g_pPixmap->Cache (CHLITTLE, little_filename, totalDim, iconDim))
{
InitFail ("Cache little.png");
return EXIT_FAILURE;
diff --git a/src/event.cxx b/src/event.cxx
index 3ef1919..d6c5598 100644
--- a/src/event.cxx
+++ b/src/event.cxx
@@ -3702,6 +3702,31 @@ CEvent::SetLanguage (Language lang)
SDL_SetWindowTitle (g_window, gettext ("Planet Blupi"));
m_pSound->CacheAll ();
+
+ Point totalDim, iconDim;
+ totalDim.x = DIMTEXTX * 16;
+ totalDim.y = DIMTEXTY * 8 * 3;
+ iconDim.x = DIMTEXTX;
+ iconDim.y = DIMTEXTY;
+ std::string text_filename = "image/text.png";
+ if (GetLocale() == "pl")
+ text_filename = "image/text_pl.png";
+ if (!m_pPixmap->Cache (CHTEXT, text_filename, totalDim, iconDim))
+ {
+ printf ("Error (Cache text.png)");
+ }
+
+ totalDim.x = DIMLITTLEX * 16;
+ totalDim.y = DIMLITTLEY * 8;
+ iconDim.x = DIMLITTLEX;
+ iconDim.y = DIMLITTLEY;
+ std::string little_filename = "image/little.png";
+ if (GetLocale() == "pl")
+ little_filename = "image/little_pl.png";
+ if (!m_pPixmap->Cache (CHLITTLE, little_filename, totalDim, iconDim))
+ {
+ printf ("Error (Cache little.png)");
+ }
}
// Clic dans un bouton.
diff --git a/src/text.cxx b/src/text.cxx
index b98a7cc..6b1d1f4 100644
--- a/src/text.cxx
+++ b/src/text.cxx
@@ -22,13 +22,14 @@
#include <stdlib.h>
#include "def.h"
+#include "misc.h"
#include "pixmap.h"
#include "text.h"
/**
* \brief Return the character offset for the sprite.
*
- * \param[in] c - The character (incremented if 0xC3 UTF-8).
+ * \param[in] c - The character (incremented if 0xC3 or 0xC4 or 0xC5 UTF-8).
* \returns the offset.
*/
static Sint32
@@ -43,13 +44,35 @@ GetOffset (const char *& c)
0xAE, 0xB4, 0xB9, 0xBB, 0xA4, 0xB6, 0xA7, // UTF-8
};
+ static const unsigned char table_accents_pl[] = {
+ /* Polish */
+ /* ń * ó ę * ć * * */
+ 0x84, 0xFF, 0xB3, 0x99, 0xFF, 0x87, 0xFF, 0xFF, // UTF-8
+ /* ź ż * * ą ł ś */
+ 0xBA, 0xBC, 0xFF, 0xFF, 0x85, 0x82, 0x9B, // UTF-8
+ };
+
if (static_cast<unsigned char> (*c) == 0xC3)
c++;
+ if (static_cast<unsigned char> (*c) == 0xC4)
+ c++;
+ if (static_cast<unsigned char> (*c) == 0xC5)
+ c++;
- for (unsigned int i = 0; i < countof (table_accents); ++i)
+ if(GetLocale() == "pl") {
+ for (unsigned int i = 0; i < countof (table_accents_pl); ++i)
+ {
+ if ((unsigned char) *c == table_accents_pl[i])
+ return 15 + i;
+ }
+ }
+ else
{
- if ((unsigned char) *c == table_accents[i])
- return 15 + i;
+ for (unsigned int i = 0; i < countof (table_accents); ++i)
+ {
+ if ((unsigned char) *c == table_accents[i])
+ return 15 + i;
+ }
}
if (*c < 0)
return 1; // square
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/planetblupi.git
More information about the Pkg-games-commits
mailing list