diff --git a/desktop_version/src/Credits.h b/desktop_version/src/Credits.h index 6aed2137..eb1b2552 100644 --- a/desktop_version/src/Credits.h +++ b/desktop_version/src/Credits.h @@ -5,6 +5,59 @@ namespace Credits { +/* Translators list; lines prefaced with a space aren't translatable */ +static const char* translators[] = { + "Catalan", + " Eduard Ereza Martínez", + "Welsh", + " Morgan Roberts", + "German", + " Thomas Faust", + "Esperanto", + " Reese Rivers", + "Spanish", + " Felipe Mercader", + " Sara Marín", + "French", + " Words of Magic", + "Irish", + " Úna-Minh Kavanagh", + " Seaghán Ó Modhráin", + " Davis Sandefur", + "Italian", + " A. Dellepiane", + " M. Scarabelli", + " L. Bertolucci", + " F. Bortolotti", + "Japanese", + " Nicalis, Inc.", + " KabanFriends", + "Korean", + " Bada Im", + " Hyungseok Cho", + "Dutch", + " Dav999", + "Polish", + " Kuba Kallus", + "Brazilian Portuguese", + " Lucas Araujo", + " Thiago Araujo", + "European Portuguese", + " Locsmiths", + "Russian", + " TheMysticSword", + "Silesian", + " Kuba Kallus", + "Turkish", + " Engin İlkiz", + "Ukrainian", + " Olya Sushytska", + "Chinese (Simplified)", + " Sound of Mystery", + "Chinese (Traditional)", + " Sound of Mystery / craft", +}; + /* Terry's Patrons... */ static const char* superpatrons[] = { "Anders Ekermo", @@ -121,9 +174,9 @@ static const char* githubfriends[] = { }; /* Calculate credits length, finally. */ -static const int creditmaxposition = 1068 + (10 * ( +static const int creditmaxposition = 1228 + (10 * ( SDL_arraysize(superpatrons) + SDL_arraysize(patrons) + SDL_arraysize(githubfriends) -)); +)) + (12 * SDL_arraysize(translators)); } /* namespace Credits */ diff --git a/desktop_version/src/Render.cpp b/desktop_version/src/Render.cpp index dc064642..a0854c5f 100644 --- a/desktop_version/src/Render.cpp +++ b/desktop_version/src/Render.cpp @@ -1945,9 +1945,57 @@ void gamecompleterender(void) font::print(PR_2X | PR_FONT_8X8, 60, 830 + position, "Pauli Kohberger", tr, tg, tb); } - if (graphics.onscreen(910 + position)) font::print(PR_3X | PR_CEN, -1, 890 + position, loc::gettext("Patrons"), tr, tg, tb); + int creditOffset = 890; - int creditOffset = 950; + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_2X | PR_CEN, -1, creditOffset + position, loc::gettext("Localisation"), tr, tg, tb); + } + creditOffset += 30; + + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_CJK_HIGH, 40, creditOffset + position, loc::gettext("Localisation Project Led by"), tr, tg, tb); + font::print(PR_2X | PR_FONT_8X8, 60, creditOffset + position + 10, "Dav999", tr, tg, tb); + } + creditOffset += 40; + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_CJK_HIGH, 40, creditOffset + position, loc::gettext("Pan-European Font Design by"), tr, tg, tb); + font::print(PR_2X | PR_FONT_8X8, 60, creditOffset + position + 10, "Reese Rivers", tr, tg, tb); + } + creditOffset += 40; + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_CJK_HIGH | PR_CEN, -1, creditOffset + position, loc::gettext("Translators"), tr, tg, tb); + } + creditOffset += 20; + for (size_t i = 0; i < SDL_arraysize(Credits::translators); i += 1) + { + if (graphics.onscreen(creditOffset + position)) + { + if (Credits::translators[i][0] != ' ') + { + // Not prefixed with a space, so this line is the name of a language, display its localised string + font::print(0, 60, creditOffset + position, loc::gettext(Credits::translators[i]), tr, tg, tb); + } + else + { + // Otherwise, this line is the name of a translator, indent it and display with the original 8x8 font always + font::print(PR_FONT_8X8, 72, creditOffset + position, Credits::translators[i], tr, tg, tb); + } + } + creditOffset += 12; + } + + creditOffset += 40; + + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_3X | PR_CEN, -1, creditOffset + position, loc::gettext("Patrons"), tr, tg, tb); + } + + creditOffset += 50; for (size_t i = 0; i < SDL_arraysize(Credits::superpatrons); i += 1) { @@ -1959,7 +2007,10 @@ void gamecompleterender(void) } creditOffset += 10; - if (graphics.onscreen(creditOffset + position)) font::print(PR_CEN, -1, creditOffset + position, loc::gettext("and"), tr, tg, tb); + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_CEN, -1, creditOffset + position, loc::gettext("and"), tr, tg, tb); + } creditOffset += 20; for (size_t i = 0; i < SDL_arraysize(Credits::patrons); i += 1) @@ -1972,7 +2023,10 @@ void gamecompleterender(void) } creditOffset += 20; - if (graphics.onscreen(creditOffset + position)) font::print(PR_2X | PR_CEN, -1, creditOffset + position, loc::gettext("GitHub Contributors"), tr, tg, tb); + if (graphics.onscreen(creditOffset + position)) + { + font::print(PR_2X | PR_CEN, -1, creditOffset + position, loc::gettext("GitHub Contributors"), tr, tg, tb); + } creditOffset += 30; for (size_t i = 0; i < SDL_arraysize(Credits::githubfriends); i += 1)