(svn r1340) -Feature: scrolling credits list...finally! Hope nobody gets offended if I forgot them.

This commit is contained in:
darkvater
2005-01-03 16:45:42 +00:00
parent d317a93e0f
commit ca1b3a80ae
22 changed files with 85 additions and 133 deletions

View File

@@ -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<65>ner (sign_de) - For his work on the console",
"",
" Michael Blunck - Pre-Signals and Semaphores <20> 2003",
" George - Canal/Lock graphics <20> 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},
};