|
@@ -367,109 +367,110 @@ static const NWidgetPart _nested_about_w
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _about_desc(
|
|
|
WDP_CENTER, 0, 0,
|
|
|
WC_GAME_OPTIONS, WC_NONE,
|
|
|
0,
|
|
|
_nested_about_widgets, lengthof(_nested_about_widgets)
|
|
|
);
|
|
|
|
|
|
static const char * const _credits[] = {
|
|
|
"Original design by Chris Sawyer",
|
|
|
"Original graphics by Simon Foster",
|
|
|
"",
|
|
|
"The OpenTTD team (in alphabetical order):",
|
|
|
" Albert Hofkamp (Alberth) - GUI expert",
|
|
|
" Jean-Fran\xC3\xA7ois Claeys (Belugas) - GUI, newindustries and more",
|
|
|
" Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
|
|
|
" Christoph Elsenhans (frosch) - General coding",
|
|
|
" Lo\xC3\xAF""c Guilloux (glx) - Windows Expert",
|
|
|
" Michael Lutz (michi_cc) - Path based signals",
|
|
|
" Owen Rudge (orudge) - Forum host, OS/2 port",
|
|
|
" Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods",
|
|
|
" Ingo von Borstel (planetmaker) - Support",
|
|
|
" Remko Bijker (Rubidium) - Lead coder and way more",
|
|
|
" Zden\xC4\x9Bk Sojka (SmatZ) - Bug finder and fixer",
|
|
|
" Jos\xC3\xA9 Soler (Terkhen) - General coding",
|
|
|
" Thijs Marinussen (Yexo) - AI Framework",
|
|
|
"",
|
|
|
"Inactive Developers:",
|
|
|
" Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles",
|
|
|
" Victor Fischer (Celestar) - Programming everywhere you need him to",
|
|
|
" Tam\xC3\xA1s Farag\xC3\xB3 (Darkvater) - Ex-Lead coder",
|
|
|
" Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
|
|
|
" Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
|
|
|
" Attila B\xC3\xA1n (MiHaMiX) - Developer WebTranslator 1 and 2",
|
|
|
" Christoph Mallon (Tron) - Programmer, code correctness police",
|
|
|
"",
|
|
|
"Retired Developers:",
|
|
|
" Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)",
|
|
|
" Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)",
|
|
|
" Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)",
|
|
|
" Benedikt Br\xC3\xBCggemeier (skidd13) - Bug fixer and code reworker",
|
|
|
" Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)",
|
|
|
"",
|
|
|
"Special thanks go out to:",
|
|
|
" Josef Drexler - For his great work on TTDPatch",
|
|
|
" Marcin Grzegorczyk - For describing Transport Tycoon Deluxe internals",
|
|
|
" Petr Baudi\xC5\xA1 (pasky) - Many patches, newGRF support",
|
|
|
" Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
|
|
|
" Stefan Mei\xC3\x9Fner (sign_de) - For his work on the console",
|
|
|
" Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
|
|
|
" Mike Ragsdale - OpenTTD installer",
|
|
|
" Cian Duffy (MYOB) - BeOS port / manual writing",
|
|
|
" Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
|
|
|
" Richard Kempton (richK) - additional airports, initial TGP implementation",
|
|
|
"",
|
|
|
" Alberto Demichelis - Squirrel scripting language \xC2\xA9 2003-2008",
|
|
|
" L. Peter Deutsch - MD5 implementation \xC2\xA9 1999, 2000, 2002",
|
|
|
" Michael Blunck - Pre-Signals and Semaphores \xC2\xA9 2003",
|
|
|
" Michael Blunck - Pre-signals and semaphores \xC2\xA9 2003",
|
|
|
" George - Canal/Lock graphics \xC2\xA9 2003-2004",
|
|
|
" Andrew Parkhouse - River graphics",
|
|
|
" David Dallaston - Tram tracks",
|
|
|
" Marcin Grzegorczyk - Foundations for Tracks on Slopes",
|
|
|
" Andrew Parkhouse (andythenorth) - River graphics",
|
|
|
" David Dallaston (Pikka) - Tram tracks",
|
|
|
" 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!",
|
|
|
"",
|
|
|
"",
|
|
|
"And last but not least:",
|
|
|
" Chris Sawyer - For an amazing game!"
|
|
|
};
|
|
|
|
|
|
struct AboutWindow : public Window {
|
|
|
int text_position; ///< The top of the scrolling text
|
|
|
byte counter; ///< Used to scroll the text every 5 ticks
|
|
|
int line_height; ///< The height of a single line
|
|
|
static const int num_visible_lines = 19; ///< The number of lines visible simultaneously
|
|
|
|
|
|
AboutWindow() : Window()
|
|
|
{
|
|
|
this->InitNested(&_about_desc, WN_GAME_OPTIONS_ABOUT);
|
|
|
|
|
|
this->counter = 5;
|
|
|
this->text_position = this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->current_y;
|
|
|
}
|
|
|
|
|
|
virtual void SetStringParameters(int widget) const
|
|
|
{
|
|
|
if (widget == WID_A_WEBSITE) SetDParamStr(0, "Website: http://www.openttd.org");
|
|
|
}
|
|
|
|
|
|
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
|
|
{
|
|
|
if (widget != WID_A_SCROLLING_TEXT) return;
|
|
|
|
|
|
this->line_height = FONT_HEIGHT_NORMAL;
|
|
|
|
|
|
Dimension d;
|
|
|
d.height = this->line_height * num_visible_lines;
|
|
|
|
|
|
d.width = 0;
|
|
|
for (uint i = 0; i < lengthof(_credits); i++) {
|
|
|
d.width = max(d.width, GetStringBoundingBox(_credits[i]).width);
|
|
|
}
|
|
|
*size = maxdim(*size, d);
|
|
|
}
|
|
|
|
|
|
virtual void DrawWidget(const Rect &r, int widget) const
|
|
|
{
|
|
|
if (widget != WID_A_SCROLLING_TEXT) return;
|
|
|
|
|
|
int y = this->text_position;
|