mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-12 20:17:49 +00:00
CREDITS: Fix display of credits with non ISO-8859-1 charsets
The credits.pl script now prints both the ASCII and ISO-8859-1 strings in the credits.dat file when they are different. The About dialog then chooses either one or the other depending on the current charset used. This fixes bug #3539986
This commit is contained in:
parent
091f2e9df8
commit
a1c3a8c542
@ -267,14 +267,22 @@ sub begin_section {
|
||||
print '\f1\b0\fs24 \cf0 \\' . "\n";
|
||||
} elsif ($mode eq "CPP") {
|
||||
if ($section_level eq 0) {
|
||||
# TODO: Would be nice to have a 'fat' or 'large' mode for
|
||||
# headlines...
|
||||
$title = html_entities_to_cpp($title);
|
||||
print '"C1""'.$title.'",' . "\n";
|
||||
print '"",' . "\n";
|
||||
# TODO: Would be nice to have a 'fat' or 'large' mode for
|
||||
# headlines...
|
||||
my $ascii_title = html_entities_to_ascii($title);
|
||||
$title = html_entities_to_cpp($title);
|
||||
if ($ascii_title ne $title) {
|
||||
print '"A1""'.$ascii_title.'",' . "\n";
|
||||
}
|
||||
print '"C1""'.$title.'",' . "\n";
|
||||
print '"",' . "\n";
|
||||
} else {
|
||||
$title = html_entities_to_cpp($title);
|
||||
print '"C1""'.$title.'",' . "\n";
|
||||
my $ascii_title = html_entities_to_ascii($title);
|
||||
$title = html_entities_to_cpp($title);
|
||||
if ($ascii_title ne $title) {
|
||||
print '"A1""'.$ascii_title.'",' . "\n";
|
||||
}
|
||||
print '"C1""'.$title.'",' . "\n";
|
||||
}
|
||||
} elsif ($mode eq "XML-DOC") {
|
||||
print " <row><entry namest='start' nameend='job'>";
|
||||
@ -392,13 +400,21 @@ sub add_person {
|
||||
}
|
||||
} elsif ($mode eq "CPP") {
|
||||
$name = $nick if $name eq "";
|
||||
my $ascii_name = html_entities_to_ascii($name);
|
||||
$name = html_entities_to_cpp($name);
|
||||
|
||||
if ($ascii_name ne $name) {
|
||||
print '"A0""'.$ascii_name.'",' . "\n";
|
||||
}
|
||||
print '"C0""'.$name.'",' . "\n";
|
||||
|
||||
# Print desc wrapped
|
||||
if (length $desc > 0) {
|
||||
my $ascii_desc = html_entities_to_ascii($desc);
|
||||
$desc = html_entities_to_cpp($desc);
|
||||
if ($ascii_desc ne $desc) {
|
||||
print '"A2""'.$ascii_desc.'",' . "\n";
|
||||
}
|
||||
print '"C2""'.$desc.'",' . "\n";
|
||||
}
|
||||
} elsif ($mode eq "XML-DOC") {
|
||||
|
@ -37,14 +37,16 @@ enum {
|
||||
kScrollMillisPerPixel = 60
|
||||
};
|
||||
|
||||
// The following commands can be put at the start of a line (all subject to change):
|
||||
// \C, \L, \R -- set center/left/right alignment
|
||||
// \c0 - \c4 -- set a custom color:
|
||||
// 0 normal text (green)
|
||||
// 1 highlighted text (light green)
|
||||
// 2 light border (light gray)
|
||||
// 3 dark border (dark gray)
|
||||
// 4 background (black)
|
||||
// Every Line should start with a letter followed by a digit. Currently those can be
|
||||
// (all subject to change)
|
||||
// Letter:
|
||||
// C, L, R -- set center/left/right alignment
|
||||
// A -- ASCII text to replace the next (latin1) line
|
||||
// Digit:
|
||||
// 0 - 2 -- set a custom color:
|
||||
// 0 normal text
|
||||
// 1 highlighted text
|
||||
// 2 disabled text
|
||||
// TODO: Maybe add a tab/indent feature; that is, make it possible to specify
|
||||
// an amount by which that line shall be indented (the indent of course would have
|
||||
// to be considered while performing any word wrapping, too).
|
||||
@ -137,9 +139,26 @@ void AboutDialog::addLine(const char *str) {
|
||||
} else {
|
||||
Common::String format(str, 2);
|
||||
str += 2;
|
||||
|
||||
|
||||
static Common::String asciiStr;
|
||||
if (format[0] == 'A') {
|
||||
bool useAscii = false;
|
||||
#ifdef USE_TRANSLATION
|
||||
// We could use TransMan.getCurrentCharset() but rather than compare strings
|
||||
// it is easier to use TransMan.getCharsetMapping() (non null in case of non
|
||||
// ISO-8859-1 mapping)
|
||||
useAscii = (TransMan.getCharsetMapping() != NULL);
|
||||
#endif
|
||||
if (useAscii)
|
||||
asciiStr = str;
|
||||
return;
|
||||
}
|
||||
StringArray wrappedLines;
|
||||
g_gui.getFont().wordWrapText(str, _w - 2 * _xOff, wrappedLines);
|
||||
if (!asciiStr.empty()) {
|
||||
g_gui.getFont().wordWrapText(asciiStr, _w - 2 * _xOff, wrappedLines);
|
||||
asciiStr.clear();
|
||||
} else
|
||||
g_gui.getFont().wordWrapText(str, _w - 2 * _xOff, wrappedLines);
|
||||
|
||||
for (StringArray::const_iterator i = wrappedLines.begin(); i != wrappedLines.end(); ++i) {
|
||||
_lines.push_back(format + *i);
|
||||
@ -285,7 +304,7 @@ void AboutDialog::reflowLayout() {
|
||||
int maxW = _w - 2*_xOff;
|
||||
_w = 0;
|
||||
for (i = 0; i < ARRAYSIZE(credits); i++) {
|
||||
int tmp = g_gui.getStringWidth(credits[i] + 5);
|
||||
int tmp = g_gui.getStringWidth(credits[i]) + 5;
|
||||
if (_w < tmp && tmp <= maxW) {
|
||||
_w = tmp;
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ static const char *credits[] = {
|
||||
"C0""Eugene Sandulenko",
|
||||
"",
|
||||
"C1""PR Office",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C2""Public Relations Officer, Project Administrator",
|
||||
"C0""Eugene Sandulenko",
|
||||
@ -26,6 +27,7 @@ static const char *credits[] = {
|
||||
"",
|
||||
"C1""Engine Teams",
|
||||
"C1""SCUMM",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""James Brown",
|
||||
"C2""(retired)",
|
||||
@ -66,6 +68,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""AGOS",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Paul Gilbert",
|
||||
"C0""Travis Howell",
|
||||
@ -75,6 +78,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""CGE",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C0""Paul Gilbert",
|
||||
"",
|
||||
@ -104,6 +108,7 @@ static const char *credits[] = {
|
||||
"C0""Pawel Kolodziejski",
|
||||
"",
|
||||
"C1""DreamWeb",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Bertrand Augereau",
|
||||
"C0""Filippos Karapetis",
|
||||
@ -112,7 +117,9 @@ static const char *credits[] = {
|
||||
"C0""Willem Jan Palenstijn",
|
||||
"",
|
||||
"C1""Gob",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C0""Sven Hesse",
|
||||
"C0""Eugene Sandulenko",
|
||||
@ -123,11 +130,13 @@ static const char *credits[] = {
|
||||
"C0""Jordi Vilalta Prat",
|
||||
"",
|
||||
"C1""Hugo",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C0""Oystein Eftevaag",
|
||||
"C0""Eugene Sandulenko",
|
||||
"",
|
||||
"C1""Kyra",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C2""VQA Player",
|
||||
"C0""Oystein Eftevaag",
|
||||
@ -170,6 +179,7 @@ static const char *credits[] = {
|
||||
"C0""Joost Peters",
|
||||
"",
|
||||
"C1""SAGA",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Daniel Balsom",
|
||||
"C2""Original engine reimplementation author (retired)",
|
||||
@ -191,6 +201,7 @@ static const char *credits[] = {
|
||||
"C0""Lars Skovlund",
|
||||
"",
|
||||
"C1""Sky",
|
||||
"A0""Robert Goeffringmann",
|
||||
"C0""Robert G\366ffringmann",
|
||||
"C2""(retired)",
|
||||
"C0""Oliver Kiehl",
|
||||
@ -202,10 +213,12 @@ static const char *credits[] = {
|
||||
"C2""PSX version support",
|
||||
"C0""Thierry Crozat",
|
||||
"C2""Mac version support",
|
||||
"A0""Robert Goeffringmann",
|
||||
"C0""Robert G\366ffringmann",
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""Sword2",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Fabio Battaglia",
|
||||
"C2""PSX version support",
|
||||
@ -213,6 +226,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""Sword25",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Paul Gilbert",
|
||||
"C0""Max Horn",
|
||||
@ -227,6 +241,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""Tinsel",
|
||||
"A0""Torbjorn Andersson",
|
||||
"C0""Torbj\366rn Andersson",
|
||||
"C0""Fabio Battaglia",
|
||||
"C2""PSX version support",
|
||||
@ -242,6 +257,7 @@ static const char *credits[] = {
|
||||
"C0""Filippos Karapetis",
|
||||
"",
|
||||
"C1""Tony",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C0""Paul Gilbert",
|
||||
"C0""Alyssa Milburn",
|
||||
@ -249,11 +265,13 @@ static const char *credits[] = {
|
||||
"C1""Toon",
|
||||
"C0""Sylvain Dupont",
|
||||
"",
|
||||
"A1""Touche",
|
||||
"C1""Touch\351",
|
||||
"C0""Gregory Montoir",
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""TsAGE",
|
||||
"A0""Arnaud Boutonne",
|
||||
"C0""Arnaud Boutonn\351",
|
||||
"C0""Paul Gilbert",
|
||||
"",
|
||||
@ -262,6 +280,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""Wintermute",
|
||||
"A0""Einar Johan T. Somaaen",
|
||||
"C0""Einar Johan T. S\370m\345en",
|
||||
"",
|
||||
"",
|
||||
@ -309,6 +328,7 @@ static const char *credits[] = {
|
||||
"C2""(retired)",
|
||||
"",
|
||||
"C1""PlayStation 2",
|
||||
"A0""Robert Goeffringmann",
|
||||
"C0""Robert G\366ffringmann",
|
||||
"C2""(retired)",
|
||||
"C0""Max Lingua",
|
||||
@ -417,9 +437,11 @@ static const char *credits[] = {
|
||||
"",
|
||||
"C1""Packages",
|
||||
"C1""AmigaOS 4",
|
||||
"A0""Hans-Joerg Frieden",
|
||||
"C0""Hans-J\366rg Frieden",
|
||||
"C2""(retired)",
|
||||
"C0""Hubert Maier",
|
||||
"A0""Juha Niemimaki",
|
||||
"C0""Juha Niemim\344ki",
|
||||
"C2""(retired)",
|
||||
"",
|
||||
@ -449,6 +471,7 @@ static const char *credits[] = {
|
||||
"",
|
||||
"C1""MorphOS",
|
||||
"C0""Fabien Coeurjoly",
|
||||
"A0""Ruediger Hanke",
|
||||
"C0""R\374diger Hanke",
|
||||
"C2""(retired)",
|
||||
"",
|
||||
@ -486,6 +509,7 @@ static const char *credits[] = {
|
||||
"C0""Jordi Vilalta Prat",
|
||||
"",
|
||||
"C1""Czech",
|
||||
"A0""Zbynik Schwarz",
|
||||
"C0""Zbyn\354k Schwarz",
|
||||
"",
|
||||
"C1""Danish",
|
||||
@ -512,10 +536,13 @@ static const char *credits[] = {
|
||||
"C1""Italian",
|
||||
"C0""Matteo Angelino",
|
||||
"",
|
||||
"A1""Norwegian (Bokmaal)",
|
||||
"C1""Norwegian (Bokm\345l)",
|
||||
"A0""Einar Johan Somaaen",
|
||||
"C0""Einar Johan S\370m\345en",
|
||||
"",
|
||||
"C1""Norwegian (Nynorsk)",
|
||||
"A0""Einar Johan Somaaen",
|
||||
"C0""Einar Johan S\370m\345en",
|
||||
"",
|
||||
"C1""Polish",
|
||||
@ -528,6 +555,7 @@ static const char *credits[] = {
|
||||
"C0""Eugene Sandulenko",
|
||||
"",
|
||||
"C1""Spanish",
|
||||
"A0""Tomas Maidagan",
|
||||
"C0""Tom\341s Maidagan",
|
||||
"C0""Jordi Vilalta Prat",
|
||||
"",
|
||||
@ -539,6 +567,7 @@ static const char *credits[] = {
|
||||
"",
|
||||
"",
|
||||
"C1""Websites (design)",
|
||||
"A0""Dobo Balazs",
|
||||
"C0""Dob\363 Bal\341zs",
|
||||
"C2""Website design",
|
||||
"C0""William Claydon",
|
||||
@ -567,6 +596,7 @@ static const char *credits[] = {
|
||||
"C2""Sound support for C64 version of MM/Zak, Loom PCE support",
|
||||
"C0""Janne Huttunen",
|
||||
"C2""V3 actor mask support, Dig/FT SMUSH audio",
|
||||
"A0""Kovacs Endre Janos",
|
||||
"C0""Kov\341cs Endre J\341nos",
|
||||
"C2""Several fixes for Simon1",
|
||||
"C0""Jeroen Janssen",
|
||||
@ -591,12 +621,14 @@ static const char *credits[] = {
|
||||
"C2""Sound support for Amiga SCUMM V2/V3 games, MM NES support",
|
||||
"C0""Robert Crossfield",
|
||||
"C2""Improved support for Apple II/C64 versions of MM",
|
||||
"A0""Andreas Roever",
|
||||
"C0""Andreas R\366ver",
|
||||
"C2""Broken Sword I & II MPEG2 cutscene support",
|
||||
"C0""Edward Rudd",
|
||||
"C2""Fixes for playing MP3 versions of MI1/Loom audio",
|
||||
"C0""Daniel Schepler",
|
||||
"C2""Final MI1 CD music support, initial Ogg Vorbis support",
|
||||
"A0""Andre Souza",
|
||||
"C0""Andr\351 Souza",
|
||||
"C2""SDL-based OpenGL renderer",
|
||||
"C0""Tom Frost",
|
||||
@ -713,6 +745,7 @@ static const char *credits[] = {
|
||||
"C2""For deep tech details about C64 Zak & MM",
|
||||
"C0""Sarien Team",
|
||||
"C2""Original AGI engine code",
|
||||
"A0""Jimmi Thogersen",
|
||||
"C0""Jimmi Th\370gersen",
|
||||
"C2""For ScummRev, and much obscure code/documentation",
|
||||
"C0""Tristan",
|
||||
|
Loading…
Reference in New Issue
Block a user