diff options
Diffstat (limited to 'code/q3_ui/ui_credits.c')
-rw-r--r-- | code/q3_ui/ui_credits.c | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/code/q3_ui/ui_credits.c b/code/q3_ui/ui_credits.c new file mode 100644 index 0000000..7baee61 --- /dev/null +++ b/code/q3_ui/ui_credits.c @@ -0,0 +1,181 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Quake III Arena source code; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +// +/* +======================================================================= + +CREDITS + +======================================================================= +*/ + + +#include "ui_local.h" + + +typedef struct { + menuframework_s menu; + int frame; +} creditsmenu_t; + +static creditsmenu_t s_credits; + + +/* +=============== +UI_CreditMenu_Draw_ioq3 +=============== +*/ +static void UI_CreditMenu_Draw_ioq3( void ) { + int y; + int i; + + // These are all people that have made commits to Subversion, and thus + // probably incomplete. + // (These are in alphabetical order, for the defense of everyone's egos.) + static const char *names[] = { + "Tim Angus", + "Vincent Cojot", + "Ryan C. Gordon", + "Aaron Gyes", + "Ludwig Nussel", + "Julian Priestley", + "Scirocco Six", + "Thilo Schulz", + "Zachary J. Slater", + "Tony J. White", + "...and many, many others!", // keep this one last. + NULL + }; + + y = 12; + UI_DrawProportionalString( 320, y, "ioquake3 contributors:", UI_CENTER|UI_SMALLFONT, color_white ); + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + + for (i = 0; names[i]; i++) { + UI_DrawProportionalString( 320, y, names[i], UI_CENTER|UI_SMALLFONT, color_white ); + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + } + + UI_DrawString( 320, 459, "http://www.ioquake3.org/", UI_CENTER|UI_SMALLFONT, color_red ); +} + + +/* +================= +UI_CreditMenu_Key +================= +*/ +static sfxHandle_t UI_CreditMenu_Key( int key ) { + if( key & K_CHAR_FLAG ) { + return 0; + } + + s_credits.frame++; + if (s_credits.frame == 1) { + s_credits.menu.draw = UI_CreditMenu_Draw_ioq3; + } else { + trap_Cmd_ExecuteText( EXEC_APPEND, "quit\n" ); + } + return 0; +} + + +/* +=============== +UI_CreditMenu_Draw +=============== +*/ +static void UI_CreditMenu_Draw( void ) { + int y; + + y = 12; + UI_DrawProportionalString( 320, y, "id Software is:", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Programming", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "John Carmack, Robert A. Duffy, Jim Dose'", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Art", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Adrian Carmack, Kevin Cloud,", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Kenneth Scott, Seneca Menard, Fred Nilsson", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Game Designer", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Graeme Devine", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Level Design", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Tim Willits, Christian Antkow, Paul Jaquays", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "CEO", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Todd Hollenshead", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Director of Business Development", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Marty Stratton", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Biz Assist and id Mom", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Donna Jackson", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Development Assistance", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Eric Webb", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.35 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "To order: 1-800-idgames www.quake3arena.com www.idsoftware.com", UI_CENTER|UI_SMALLFONT, color_red ); + y += SMALLCHAR_HEIGHT; + UI_DrawString( 320, y, "Quake III Arena(c) 1999-2000, Id Software, Inc. All Rights Reserved", UI_CENTER|UI_SMALLFONT, color_red ); +} + + +/* +=============== +UI_CreditMenu +=============== +*/ +void UI_CreditMenu( void ) { + /* This UI_FillRect() hack will blank the borders if you're in widescreen, + so you get a completely black background instead of stripes from the + previous frame on each side of the credits.. */ + const float black[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; + UI_FillRect(0 - uis.bias, 0, (640.0f / uis.xscale) * 2.0f, 480.0f / uis.yscale, black); + + memset( &s_credits, 0 ,sizeof(s_credits) ); + + s_credits.menu.draw = UI_CreditMenu_Draw; + s_credits.menu.key = UI_CreditMenu_Key; + s_credits.menu.fullscreen = qtrue; + UI_PushMenu ( &s_credits.menu ); +} |