diff options
author | darkvater <darkvater@openttd.org> | 2005-01-03 16:45:42 +0000 |
---|---|---|
committer | darkvater <darkvater@openttd.org> | 2005-01-03 16:45:42 +0000 |
commit | ca1b3a80ae9e247071a7e190c7454faaf9f5303c (patch) | |
tree | a588606b0b123dedc5f9e058f3c70bad98708e59 /misc_gui.c | |
parent | d317a93e0f5a06b1f2c9dcc26c9f5e90b2156c6f (diff) | |
download | openttd-ca1b3a80ae9e247071a7e190c7454faaf9f5303c.tar.xz |
(svn r1340) -Feature: scrolling credits list...finally! Hope nobody gets offended if I forgot them.
Diffstat (limited to 'misc_gui.c')
-rw-r--r-- | misc_gui.c | 92 |
1 files changed, 78 insertions, 14 deletions
diff --git a/misc_gui.c b/misc_gui.c index 1b17cc449..0a61762f1 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -164,28 +164,91 @@ void PlaceLandBlockInfo() } } +static const char *credits[] = { + /************************************************************************* + * maximum length of string which fits in window -^*/ + "Original design by Chris Sawyer", + "Original graphics by Simon Foster", + "", + "The OpenTTD team:", + " Dominik Scherer (dominik81) - Lead coder", + " Tamas Farago (Darkvater) - Lead coder", + " Patric Stout (TrueLight) - Coder, network guru, SVN- and website host", + " Owen Rudge (orudge) - Forum- and masterserver host, OS/2 port", + " Bjarni Corfitzen (Bjarni) - MacOS port", + " Kerekes Miham (MiHaMiX) - Translator system, and Nightlies host", + " Cian Duffy (MYOB) - BeOS port / manual writing", + " Christian Rosentreter (tokaiz) - MorphOS / AmigaOS port", + " Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)", + " Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)", + "", + "Special thanks go out to:", + " Josef Drexler - For his great work on TTDPatch", + " Marcin Grzegorczyk - For his documentation of TTD internals", + " Tron - Many patches, suggestions and relentless correcting of the code", + " Celestar - For his many patches, suggestions and fixes", + " blathijs - For his many patches, suggestions and code documentation", + " pasky - Many patches, newgrf support", + " Stefan Meißner (sign_de) - For his work on the console", + "", + " Michael Blunck - Pre-Signals and Semaphores © 2003", + " George - Canal/Lock graphics © 2003-2004", + " Marcin Grzegorczyk - Foundations for Tracks on Slopes", + " All Translators - Who made OpenTTD a truly international game", + " Bug Reporters - Without whom OpenTTD would still be full of bugs!", + NULL, + "", + "", + "And finally:", + " Chris Sawyer - For an amazing game!" +}; static void AboutWindowProc(Window *w, WindowEvent *e) { switch(e->event) { + case WE_CREATE: /* Set up window counter and start position of scroller */ + WP(w, general_d).i = 0; + WP(w, general_d).j = w->height - 40; + break; case WE_PAINT: { - int x,y; + const char *str; + char buffer[100]; + int i; + int y = WP(w, general_d).j; DrawWindowWidgets(w); - x = 200; - y = 0; - DrawStringCentered(x, y += 17, STR_00B6_ORIGINAL_COPYRIGHT, 0); - DrawStringCentered(x, y += 10, STR_00B7_VERSION, 0); - DrawString(20, y += 20, STR_00B8_ORIGINAL_DESIGN_PROGRAM, 0); - DrawString(20, y += 10, STR_00B9_ORIGINAL_GRAPHICS, 0); - DrawString(20, y += 30, STR_SPECIAL_THANKS, 0); - // will probably be dynamic when stringhandling is finally reworked. - DrawString(20, y += 10, STR_SPECIAL_THANKS_SIGNALS, 0); - DrawString(20, y += 10, STR_SPECIAL_THANKS_CANALS, 0); - DrawString(20, y += 10, STR_SPECIAL_THANKS_FOUNDATIONS, 0); - DrawStringMultiCenter(x, w->height - 15, STR_00BA_COPYRIGHT_OPENTTD, 0x18E); - break; + // Show original copyright and revision version + DrawStringCentered(200, 17, STR_00B6_ORIGINAL_COPYRIGHT, 0); + DrawStringCentered(200, 17 + 10, STR_00B7_VERSION, 0); + + // Show all scrolling credits + for (i = 0; i < lengthof(credits); i++) { + if (y >= 50 && y < (w->height - 40)) { + str = credits[i]; + /* Hack-Alert: Translated by is a dynamic string as it changes + * with the language chosen. So the special value of NULL is used + * to identify this for the moment */ + if (str == NULL) { + GetString(buffer, STR_TRANSLATED_BY); + str = buffer; + } + + DoDrawString(str, 10, y, 0x10); + } + y += 10; + } + + // If the last text has scrolled start anew from the start + if (y < 50) WP(w, general_d).j = w->height - 40; + + DrawStringMultiCenter(200, w->height - 15, STR_00BA_COPYRIGHT_OPENTTD, 398); + } break; + case WE_MOUSELOOP: /* Timer to scroll the text and adjust the new top */ + if (WP(w, general_d).i++ % 3 == 0) { + WP(w, general_d).j--; + SetWindowDirty(w); } + break; } } @@ -193,6 +256,7 @@ static const Widget _about_widgets[] = { { WWT_CLOSEBOX, 14, 0, 10, 0, 13, STR_00C5, STR_NULL}, { WWT_CAPTION, 14, 11, 399, 0, 13, STR_015B_OPENTTD, STR_NULL}, { WWT_PANEL, 14, 0, 399, 14, 271, 0x0, STR_NULL}, +{ WWT_FRAME, 14, 5, 394, 40, 245, STR_EMPTY, STR_NULL}, { WIDGETS_END}, }; |