summaryrefslogtreecommitdiff
path: root/misc_gui.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2005-01-03 16:45:42 +0000
committerdarkvater <darkvater@openttd.org>2005-01-03 16:45:42 +0000
commitca1b3a80ae9e247071a7e190c7454faaf9f5303c (patch)
treea588606b0b123dedc5f9e058f3c70bad98708e59 /misc_gui.c
parentd317a93e0f5a06b1f2c9dcc26c9f5e90b2156c6f (diff)
downloadopenttd-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.c92
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},
};