[Scummvm-git-logs] scummvm master -> f10fc8d1fba7827c641f39d9e9fa195737a1345e
athrxx
noreply at scummvm.org
Fri Oct 2 18:48:03 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
f10fc8d1fb KYRA: (EOB automap feature) - add German translation
Commit: f10fc8d1fba7827c641f39d9e9fa195737a1345e
https://github.com/scummvm/scummvm/commit/f10fc8d1fba7827c641f39d9e9fa195737a1345e
Author: athrxx (athrxx at scummvm.org)
Date: 2026-10-02T20:47:05+02:00
Commit Message:
KYRA: (EOB automap feature) - add German translation
I made up the translations to keep them as short as possible,
so they don't get drawn too tiny.
I haven't moved the string table to kyra.dat yet, since
there might still be ideas to improve the level naming (for
English: mostly EOB I; for German: both EOB I and II).
Changed paths:
engines/kyra/gui/automap_eob.cpp
diff --git a/engines/kyra/gui/automap_eob.cpp b/engines/kyra/gui/automap_eob.cpp
index b8802b85816..b8c170146a8 100644
--- a/engines/kyra/gui/automap_eob.cpp
+++ b/engines/kyra/gui/automap_eob.cpp
@@ -105,17 +105,71 @@ const Automap_EoB::TranslateableStrings Automap_EoB::_stringTable[] = {
},
{
{
- "", "", "", "", "", "", "", "", ""
+ "- LEGENDE -",
+ "Gruppe",
+ "Treppe hoch",
+ "Treppe runter",
+ "Teleporter",
+ "Grube",
+ "Platte",
+ "Tür",
+ "Barriere",
+ "Illusionswand",
+ "Kraftfeld",
+ "Schalter",
+ "Interaktives Objekt",
+ "Nische",
+ "Steinportal"
},
+
{
- "", "", ""
+ "- TASTEN -", "",
+ "Auf/Ab", "Level wählen",
+ "Esc/Tab", "Beenden"
},
+
+ // Area names for the plaque. The games have no level names in their data and the file
+ // names of the graphics and sound data files provide only vague hints. So we hardcode
+ // the level names here. The Sega CD version of EOBI has an automap, but it doesn't use
+ // level names. The maps are just called "L%d" or "Floor %d" (%d being the level number).
+ // The FM-Towns version of EOBII has level names for its autogenerated savegame names
+ // which are similar to what we do (names based on the graphics/sound files).
{
- {
- "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
+ {
+ "Kanalisation I",
+ "Kanalisation II",
+ "Kanalisation III",
+ "Zwergenruinen I",
+ "Zwergencamp",
+ "Zwergenruinen III",
+ "Dunkelelfen I",
+ "Dunkelelfen II",
+ "Dunkelelfen III",
+ "Mantis Nest",
+ "Xanathars Sanktum",
+ "Xanathars Quartier",
+ "",
+ "",
+ "",
+ ""
},
{
- "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
+ "Katakomben I",
+ "Katakomben II",
+ "Katakomben III",
+ "Wald",
+ "Tempel Eingang",
+ "Tempel Quartiere",
+ "Silberturm I",
+ "Silberturm II",
+ "Silberturm III",
+ "Azurturm I",
+ "Azurturm II",
+ "Azurturm III",
+ "Azurturm IV",
+ "Azurturm V",
+ "Purpurturm I",
+ "Purpurturm II"
}
}
}
@@ -134,6 +188,9 @@ Automap_EoB::Automap_EoB(OSystem *system, LevelBlockProperty **blockData, const
switch (lang) {
// TODO: Add remaining languages here.
+ case Common::DE_DEU:
+ langIndex = 1;
+ break;
case Common::EN_ANY:
default:
break;
@@ -265,21 +322,23 @@ void drawString(Graphics::Surface &dst, const Graphics::Font *font, const Common
if (tw <= 0 || th <= 0)
return;
+ Common::U32String str(text.c_str(), Common::CodePage::kUtf8);
+
if (scale == 1) {
- font->drawString(&dst, text, x, y, w, color, align);
+ font->drawString(&dst, str, x, y, w, color, align);
return;
}
const int bpp = dst.format.bytesPerPixel;
if (bpp != 2 && bpp != 4) {
- font->drawString(&dst, text, x, y, w, color, align);
+ font->drawString(&dst, str, x, y, w, color, align);
return;
}
Graphics::Surface tmp;
tmp.create(tw, th, dst.format);
tmp.fillRect(Common::Rect(0, 0, tw, th), 0);
- font->drawString(&tmp, text, 0, 0, tw, color, Graphics::kTextAlignLeft);
+ font->drawString(&tmp, str, 0, 0, tw, color, Graphics::kTextAlignLeft);
const int dw = tw * scale;
int dx = x + (w - dw) / 2;
@@ -1102,7 +1161,8 @@ template void Automap_EoB::drawIconImpl<uint16>(Graphics::Surface&, int, int, in
template void Automap_EoB::drawIconImpl<uint32>(Graphics::Surface&, int, int, int, int, int, IconAlignment, int, int, int);
int Automap_EoB::fitString(const Graphics::Font *f, const Common::String &str, int maxW, int maxSc) const {
- int wdth = f ? f->getStringWidth(str) : 0;
+ Common::U32String u32str(str.c_str(), Common::CodePage::kUtf8);
+ int wdth = f ? f->getStringWidth(u32str) : 0;
return (wdth == 0) ? 1 : CLIP<int>(maxW / wdth, 1, maxSc);
}
More information about the Scummvm-git-logs
mailing list