diff options
-rwxr-xr-x | devtools/credits.pl | 30 | ||||
-rw-r--r-- | gui/about.cpp | 41 | ||||
-rw-r--r-- | gui/credits.h | 33 |
3 files changed, 86 insertions, 18 deletions
diff --git a/devtools/credits.pl b/devtools/credits.pl index ff3b37a5da..28c3139bfd 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -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") { diff --git a/gui/about.cpp b/gui/about.cpp index e2b7064279..088971f273 100644 --- a/gui/about.cpp +++ b/gui/about.cpp @@ -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; } diff --git a/gui/credits.h b/gui/credits.h index 237d97d56c..42e515dd70 100644 --- a/gui/credits.h +++ b/gui/credits.h @@ -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", |