From 5fed0b1316b4851f1fe754953a528656aa75e2b7 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 28 Jan 2019 02:07:00 +0100 Subject: [PATCH] Match the credit menu look This also adds transitions to menus --- CMakeLists.txt | 3 + README.md | 4 +- Stub/diabloui.cpp | 21 +- Stub/miniwin_sdl.h | 3 +- Stub/sdlrender.cpp | 1011 +++++++++++++++++++++++--------------------- Stub/sdlrender.h | 8 +- 6 files changed, 554 insertions(+), 496 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fcbcfc11..83b317191 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,7 @@ string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og -fno-omit-frame-pointer") string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fsanitize=address -fsanitize-recover=address") find_package(SDL2 REQUIRED) +find_package(SDL2_ttf REQUIRED) find_package(SDL2_mixer REQUIRED) set(SOURCES @@ -157,6 +158,7 @@ set(STUB_SOURCES ) include_directories(${SDL2_INCLUDE_DIR} + ${SDL2_TTF_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR}) include_directories(. Stub) @@ -192,6 +194,7 @@ add_executable(devilution target_link_libraries(devilution PUBLIC m ${SDL2_LIBRARY} + ${SDL2_TTF_LIBRARIES} ${SDL2_MIXER_LIBRARIES} ) diff --git a/README.md b/README.md index 33ef21e5e..dad89fb56 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Note: The 64bit builds are currently not in a playable state, as such you might Install the dependencies on your machine: ``` -sudo apt-get install cmake libsdl2-dev libsdl2-mixer-dev +sudo apt-get install cmake libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev ``` Now run the following commands: @@ -78,7 +78,7 @@ Please keep in mind that this is still being worked on and is missing parts of U ### Building deviltuionX 32bit on 64bit platforms ``` -sudo apt-get install cmake g++-multilib libsdl2-dev:i386 libsdl2-mixer-dev:i386 +sudo apt-get install cmake g++-multilib libsdl2-dev:i386 libsdl2-mixer-dev:i386 libsdl2-ttf-dev:i386 ``` Now run the following commands: diff --git a/Stub/diabloui.cpp b/Stub/diabloui.cpp index e3fe34a3e..cb912e5e2 100644 --- a/Stub/diabloui.cpp +++ b/Stub/diabloui.cpp @@ -16,6 +16,7 @@ void __cdecl UiDestroy() BOOL __stdcall UiTitleDialog(int a1) { + fadeValue = 0; TitleImageLoaded = false; SDL_Event event; while (1) { @@ -170,6 +171,7 @@ void UiInitialize() BOOL __stdcall UiMainMenuDialog(char *name, int *pdwResult, void(__stdcall *fnSound)(char *file), int a4) { + fadeValue = 0; TitleImageLoaded = false; SelectedItem = 1; SelectedItemMax = 5; @@ -291,6 +293,7 @@ BOOL __stdcall UiSelHeroSingDialog( char *name, int *difficulty) { + fadeValue = 0; TitleImageLoaded = false; submenu = SINGLEPLAYER_LOAD; @@ -618,6 +621,7 @@ BOOL __stdcall UiSelHeroMultDialog( char *name) { DUMMY(); + fadeValue = 0; TitleImageLoaded = false; submenu = MULTIPLAYER_LOBBY; @@ -836,11 +840,19 @@ BOOL __stdcall UiSelHeroMultDialog( BOOL __stdcall UiCreditsDialog(int a1) { + if (!TTF_WasInit() && TTF_Init() == -1) { + printf("TTF_Init: %s\n", TTF_GetError()); + exit(1); + } + + nottheend = TRUE; + lineCount = 13; + creditline = -lineCount; + lastYbase = 0; + fadeValue = 0; TitleImageLoaded = false; SDL_Event event; - while (1) { - ShowCredts(); - + while (ShowCredts()) { if (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: @@ -853,7 +865,7 @@ BOOL __stdcall UiCreditsDialog(int a1) } } - return FALSE; + return TRUE; } void __cdecl UiProfileCallback() @@ -921,6 +933,7 @@ int __stdcall UiSelectProvider(int a1, _SNETPROGRAMDATA *client_info, _SNETPLAYE { int gameType = 0; + fadeValue = 0; TitleImageLoaded = false; SelectedItem = 1; SelectedItemMax = 3; diff --git a/Stub/miniwin_sdl.h b/Stub/miniwin_sdl.h index 48662b64b..d11407e52 100644 --- a/Stub/miniwin_sdl.h +++ b/Stub/miniwin_sdl.h @@ -11,10 +11,9 @@ #include #include -//#include +#include #include #include -//#include "SDL_FontCache.h" typedef SDL_mutex *CRITICAL_SECTION, **LPCRITICAL_SECTION; VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); diff --git a/Stub/sdlrender.cpp b/Stub/sdlrender.cpp index cfd831d1f..be131d061 100644 --- a/Stub/sdlrender.cpp +++ b/Stub/sdlrender.cpp @@ -76,486 +76,456 @@ int gb_Lfont_pix_width; int the_pcx_frame; char *the_long_credits[] = { + "Game Design", + " Blizzard North", "", + "Senior Designers", + " Erich Schaefer, David Brevik", "", + "Additional Design", + " Max Schaefer, Eric Sexton, Kenneth Williams", "", + "Lead Programmer", + " David Brevik", "", + "Senior Programmers", + " Richard Seis, Doron Gartner,", + " Patrick Wyatt, Mike O'Brien", "", + "Programming", + " Peter Brevik, Robin van der Wel, Jon Morin", "", + "Special Guest Programmers", + " Collin Murray, Frank Pearce", "", + "Battle.net Programming", + " Mike O'Brien, Mike Morhaime, Dan Liebgold", "", + "Serial Communications Programming", + " Jeff Strain, Mike O'Brien", "", + "Installer Programming", + " Bob Fitch, Patrick Wyatt", "", + "Art Directors", + " Erich Schaefer, Samwise Didier", "", + "Artwork", + " Michio Okamura, Eric Sexton, Ben Haas, Patrick Tougas,", + " Kelly Johnson, Erich Schaefer, Max Schaefer, Hugh Tom", + " Byrne, Roman Kenney, Samwise Didier, Dave Berggren,", + " Micky Neilson, Eric Flannum, Justin Thavirat, Brian", + " Sousa, Stu Rose, Nick Carpenter, Joeyray Hall", "", - "$-- Devilution --", - "Reversed by Andi \"GalaXyHaXz\"", + "Technical Artwork", + " Christopher Root, Mark Sutherland,", + " Robert Djordjevich, Jeffrey Vaughn", "", - "$-- Meet the Team --", - "seritools", - "mewmew", - "nomdenom", - "AJenbo", - "ApertureSecurity", + "Cinematic Art Directors", + " Duane Stinnett, Matt Samia", "", - "$-- Special Thanks --", - "The Sanctuary preservation project", - "Jarulf's guide to the Devil himself", + "3D Cinematic Artwork", + " Duane Stinnett, Matt Samia, Rob McNaughton,", + " Eric Flannum, Dave Pursley, Micky Neilson,", + " Maxx Marshall, Trevor Jacobs, Brian Sousa,", + " Samwise Didier, Ron Smorynski, Ben Haas, Patrick Tougas", "", + "Cinematic Technical Artwork", + " Joeyray Hall ", "", - "$...The Devil is in the details", + "Executive Producer", + " Allen Adham", "", + "Producer", + " Bill Roper", "", - "$Game Design", - "Blizzard North", + "Associate Producer", + " James Phinney", "", - "$Senior Designers", - "Erich Schaefer, David Brevik", + "Diablo Strike Team", + " Allen Adham, Ron Millar, Mike O'Brien,", + " James Phinney, Bill Roper, Patrick Wyatt", "", - "$Additional Design", - "Max Schaefer, Eric Sexton, Kenneth Williams", + "Music", + " Matt Uelmen", "", - "$Lead Programmer", - "David Brevik", + "Sound Design", + " Matt Uelmen, Glenn Stafford", "", - "$Senior Programmers", - "Richard Seis, Doron Gartner,", - "Patrick Wyatt, Mike O'Brien", + "Cinematic Music & Sound", + " Glenn Stafford, Matt Uelmen", "", - "$Programming", - "Peter Brevik, Robin van der Wel, Jon Morin", + "Voice Production, Direction & Casting", + " Mark Schwarz, Glenn Stafford, Bill Roper", "", - "$Special Guest Programmers", - "Collin Murray, Frank Pearce", + "Script & Story", + " Erich Schaefer, Eric Sexton,", + " Chris Metzen, Bill Roper", "", - "$Battle.net Programming", - "Mike O'Brien, Mike Morhaime, Dan Liebgold", + "Voice Editing", + " Glenn Stafford", "", - "$Serial Communications Programming", - "Jeff Strain, Mike O'Brien", + "Voices", + " Michael Haley, Glynnis Talken, Michael Gough,", + " Paul Eiding, Lani Minella, Steve Brodie, Bill Roper,", + " Mark Schwarz, Glenn Stafford, Chris Metzen, Max Schaefer", "", - "$Installer Programming", - "Bob Fitch, Patrick Wyatt", - "", - "$Art Directors", - "Erich Schaefer, Samwise Didier", - "", - "$Artwork", - "Michio Okamura, Eric Sexton, Ben Haas, Patrick Tougas,", - "Kelly Johnson, Erich Schaefer, Max Schaefer, Hugh Tom", - "Byrne, Roman Kenney, Samwise Didier, Dave Berggren,", - "Micky Neilson, Eric Flannum, Justin Thavirat, Brian", - "Sousa, Stu Rose, Nick Carpenter, Joeyray Hall", - "", - "$Technical Artwork", - "Christopher Root, Mark Sutherland,", - "Robert Djordjevich, Jeffrey Vaughn", - "", - "$Cinematic Art Directors", - "Duane Stinnett, Matt Samia", - "", - "$3D Cinematic Artwork", - "Duane Stinnett, Matt Samia, Rob McNaughton,", - "Eric Flannum, Dave Pursley, Micky Neilson,", - "Maxx Marshall, Trevor Jacobs, Brian Sousa,", - "Samwise Didier, Ron Smorynski, Ben Haas, Patrick Tougas", - "", - "$Cinematic Technical Artwork", - "Joeyray Hall ", - "", - "$Executive Producer", - "Allen Adham", - "", - "$Producer", - "Bill Roper", - "", - "$Associate Producer", - "James Phinney", - "", - "$Diablo Strike Team", - "Allen Adham, Ron Millar, Mike O'Brien,", - "James Phinney, Bill Roper, Patrick Wyatt", - "", - "$Music", - "Matt Uelmen", - "", - "$Sound Design", - "Matt Uelmen, Glenn Stafford", - "", - "$Cinematic Music & Sound", - "Glenn Stafford, Matt Uelmen", - "", - "$Voice Production, Direction & Casting", - "Mark Schwarz, Glenn Stafford, Bill Roper", - "", - "$Script & Story", - "Erich Schaefer, Eric Sexton,", - "Chris Metzen, Bill Roper", - "", - "$Voice Editing", - "Glenn Stafford", - "", - "$Voices", - "Michael Haley, Glynnis Talken, Michael Gough,", - "Paul Eiding, Lani Minella, Steve Brodie, Bill Roper,", - "Mark Schwarz, Glenn Stafford, Chris Metzen, Max Schaefer", - "", - "$Recording Engineer", - "Robert Koenigsberg", - "", - "$Manual Design & Layout", - "Peter Underwood, Jeffrey Vaughn,", - "Chris Metzen, Bill Roper", - "", - "$Manual Artwork", - "Samwise Didier, Chris Metzen,", - "Roman Kenney, Maxx Marshall", - "", - "$Provisional Director of QA (Lead Tester)", - "Shane Dabiri", - "", - "$QA Assault Team (Testers)", - "Christopher Cross, Mike Givens, Dave Hale,", - "Brian \"Doc\" Love, Hung Nguyen, Dean Shipley,", - "Chris Sigaty, Ian Welke, Jamie Wiggs", - "", - "$QA Special Ops Team (Compatibility Testers)", - "Adam Maxwell, Russell \"Rug\" Miller", - "", - "$QA Artillery Support (Additional Testers) ", - "Rich Alcazar, Mike Jones, Rev. Dan Moore, Matt Morris,", - "Mark Pfeiffer, Harish \"Pepe the Enforcer\" Rao, Chris Millar", - "", - "$QA Counterintelligence", - "Alan Dabiri, Jesse McReynolds, Walter Takata", - "", - "$Order of Network Information Services", - "Robert Bridenbecker, Jason \"Brother Shaggy\" Schmit,", - "Jamie \"Brother Gug\" Steigerwald, Richard Seis ", - "", - "$Customer Support", - "John Schwartz, Vic Larson, Chad Chaudry, Mick Yanko,", - "Brandon Riseling, Kirk Mahony, Tony Hardy, Richard", - "Amtower, Collin Smith, Andrew Edwards, Roger Eberhart", - "", - "$Sales", - "Jorge Rivero, Rob Beatie", - "", - "$Dunsel", - "Alan Dabiri", - "", - "$Mr. Dabiri's Background Vocalists", - "Karin Colenzo, Christina Cade,", - "Kim Farrington, Melissa Edwards", - "", - "$Public Relations", - "Linda Duttenhaver, Susan Wooley", - "", - "$Marketing", - "John Patrick, Steve Huot, Neal Hubbard, Kathy Carter", - "", - "$International Sales", - "Ralph Becker, Chris Yoshimura", - "", - "$U.S. Sales", - "Todd Coyle, Danny Kearns", - "", - "$Manufacturing", - "John Goodman, Tom Bryan", - "", - "$Legal & Business", - "Paula Duffy, Eric Roeder, Paul Sams, Kenneth Williams", - "", - "$Special Thanks To", - "Primenet, Earthlink, AOL, Compuserve, ATI, Matrox, STB, ", - "Creative Labs, Logitech, U.S. Robotics, Gravis, Cyrix", - "", - "$Thanks To", - "Ian Colquhoun, Rod Shean, Brian Fitzgerald, Sharon Schafer, Todd ", - "Schafer, Richard and Sandra Schaefer, Rick Bowles, Greg Bogden, ", - "Cindy Sievert, Brad Mason, Chuck Goldman, Karin Colenzo, Wendy ", - "Brevik, Jennie Brevik, Hanna Carroll, Katie Newell, Karen Weiss, ", - "Kurt Beaver, Stan McDonald, Brian Sexton, Michael Wan, Megan ", - "Williams, Jessica Gensley, Beth Ann Parks, Brian Piltin, Johnathan ", - "Root, Brett Supernaw, Sabeer Bhatia, Mark Rearick, Brad Mason, ", - "Diane Kodama, Bernadette Sexton, Barbara Uhlmann, Patricia", - "McDonald, Kris Kelley, Alissa Vaage, Denise Hernandez, Paula ", - "White, Rachel Marie Hawley, Laura Gaber, Isaac Matarasso,", - "Susan Stafford, Gretchen Witte, Jason Sailor, Eufemia Palomino, ", - "Nathalie Didier, Nicole Welke, Dawn Caddel, Anna-Marcelle ", - "Okamura, Amber Okamura, Megan Okamura Tracey McNaughton, ", - "Trisha Ann Ochoa, Annie Strain, Dr. Gregory T. Street, Ray the Soda ", - "Guy, Sam Raimi, A. Guinness Brewing Co., John Woo, Chow Yun Fat, ", - "Jackie Chan,Proposition 215, Rumiko Takahashi, Bunchy & Mason, ", - "The Friends of Stan, The Zoo Crew, Team Hamro, Brazil 2001, RUSH, ", - "Cornholio, THE BROS., Dar, Emeril Lagasse, Tom Waits, Ice-Cube, ", - "The Strike Team Deflectors, Tony Levin, Big Jim and the Twins, ", - "Jag`rmeister, The Megasphere, Condor, The Allower, The Sunday ", - "Night Group, Gravitar, Steinway Pianos, Round Table Pizza, The Poxy ", - "Boggards, Urban Mystic & Co., Caffeine, Hunter Rose, Marly ", - "mediums in the box, sweet Poteen, Dave Scarpitti, TheByter, Bim ", - "Man, Krissann for color, Patty at Avalon Tattoo, James, Whaleboy, ", - "Dunsel Training Institute, monkeys, Dob Bole, Rootes Group, Porshe, ", - "Bongo, Scarlett, Apollo, The House of Mediocrity, Amelias, The King, ", - "Saag and all the folks at Davidson", - "", - "$In memory of", - "Lawrence and Barbara Williams", - "David A. Hargrave", - "Tony \"Xatre\" Collin", - "Thomas H Sexton", - "", - "$Very Special Thanks to", - "Bob and Jan Davidson", - "Walter Forbes", - "", - "$The Ring of One Thousand", - "Andrew Abernathy, Christopher Abramo, David Adams, David ", - "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", - "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", - "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", - "Andrew Abernathy, Christopher Abramo, David Adams, David ", - "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", - "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", - "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", - "Andersen, Aaron Anderson, George Anderson, Matthew ", - "Anderson, Michael Anderson, Sean Anderson, Robert Andrade, ", - "Cerny Andre, Michael Andreev, Devin Angle, Brian Apple, ", - "Brian Arbuthnot, Billy Arden, Dorian Arnold, Andre Arsenault, ", - "Erik Asplund, Mark Assam, John Athey, Jason Attard, Jeff ", - "Atwood, Ricky Au, Scott Avery, Rand Babcock, Steve Babel, ", - "Raymond Bacalso, Ed Bachta, Steven Back, Scott Baeder, Alex ", - "Baevski, Scott Bailey, Kenneth Baird, Thomas Baker, Todd ", - "Bala, Jan Ball, Greg Baltz, Blake Baltzley, Doug Bambrick, Wes ", - "Bangerter, Paul Barfuss, Chris Barghout, Dave Barnebey, Jon ", - "Barnhart, Terje Barth, Nicole Baskin, Bernard Baylen, Ryan ", - "Bear, Phil Bedard, Todd Belcher, Chip Bell, Erez Ben-Aharon, ", - "Jonathan Bender, Nick Bennett, Ireney Berezniak, Ted Berg, ", - "Gunnar Bergem, Russell Beuker, Ed Bickford, Stephen Biles, ", - "John Billdt, Gerald Binder, John Bird, Hannah Blackerby, Tom ", - "Blackerby, Clayton Blackwell, Thomas Blake, Shawn Blaszak, ", - "Daniel Bliss, Fred Bliss, Jeff Bliss, Jon Blum, Rune Boersjoe, ", - "Andrew Boggs, Dave Boisvenu, Joe Bolt, John Bonds, Jeff ", - "Borenstein, Dorian Borin, Ed Boris, Bartholomew Botta, ", - "Michael Boutin, Michael Boyd, Charles Boyer, Mike ", - "Boyersmith, Michael Boyko, Eric Bradberry, John Brandstetter, ", - "Ryan Breding, Paul Brinkmann, Patrick Briscoe, Scott Brisko, ", - "Jeremy Britton, Adrian Broadhead, Glenn Brouwer, Joe Brown, ", - "Sebastien Brulotte, Darrell Brunsch, William Bryan, Jason ", - "Bucher, Chris Buchinger, Clayton Buckingham, John Buckles, ", - "David Bugay, Ed Bujone, Erik Burgess, Gabriel Burkett, Chris ", - "Burnes, Richard Butler, Jeffrey Bye, Dougall Campbell, Donnie ", - "Cannon, Shane Cantrell, Connor Caple, Daniel Carey, James ", - "Carlton, Michael Carmel, Mike Carpenter, Ronald Carruthers, ", - "Phil Carter, Bryce Cartmill, Eric Cartwright, Anthony Caruso, ", - "Lon Casey, Tim Caster, Aaron Chan, Otto Chan, Gene Chang, ", - "Hsiao-Lung Chang, William Chang, George Chappel, Larry ", - "Charbonneau, Troy Chase, Bruce Chen, Chun Hsien Chen, Sam ", - "Chen, Tzu-Mainn Chen, Mike Cheng, Chris Chiapusio, Damien ", - "Chiesa, Nick Chin, Nim Ching, Jonathan Chinn, Michael Chinn, ", - "Philander Chiu, Thayne Christiansen, Philip Chui, Steve ", - "Cintamani, Richard Ciordia, Colin Clark, Steve Clark, Samuel ", - "Clements, Meredith Clifton, Jeff Cohen, Dale Colton, Dax ", - "Combe, Matt Compton, Jacob Conklin, Richard Conn, Zac ", - "Cook, Tim Coolong, Gregory Coomer, Dennis Cosgrove, Kelly ", - "Couch, Andrew Coulter, Eric Coutinho, David Coutts, James ", - "Craig, John Craig, Kazial Craig, John Crawford, Marcelo ", - "Crespo, Orville Crews, Tim Cristy, Elmer Crosby III, Russell ", - "Cullison, Ryan Cupples, Andrew Dagley, Steve Dallaire, Richard ", - "Dalton, David Dandar, Pro Daulo, Rob Dautermann, Mike ", - "Davies, Kalieb Davis, Marshall Davis, Ronald Davis, Danny De ", - "Bie, Marc De Filippis, Myles Deighton, Kent Dejarnett, Anthony ", - "Delarosa, Neil Dempster, Peter Denitto, Joaquim Dentz, Scott ", - "Dewar, Anish Dhingra, Philip Dhingra, David Diaz, Stewart ", - "Dicks, Brad Dietz, Josh Dietz, Colleen Diggins, Mike Ditchburn, ", - "Eric Dittman, Allen Do, Huy Doan, Matthew Dolman, Antoine ", - "Dongois, Eamonn Donohoe, Bill Dorell, Mark Dorison, Dan ", - "Dorsett, Chris Dorsey, Jim Dose, Willis Doss, Chin Du, William ", - "Dubis, Timothy Duewell, Brandon Dunn, Andrew Durham, Don ", - "Duvall, Kevin Dvojack, Daniel Eaton, Paul Eberting, Eric ", - "Echelbarger, Lance Eddleman, Ben Eggers, David Eggum, John ", - "Ehde, Brian Eikenberry, Patrick Elven, Peter Engdahl, Philip ", - "Engdahl, Michael Ennis, Darren Eslinger, Eric Ezell, Darren ", - "Falslev, Stephen Feather, Tony Fenn, Ben Ferguson, Mike ", - "Fernandez, Gwendal Feuillet, Guy Fietz, Julian Figueroa, Dale ", - "Fillpot, Stan Finchem, Michael Finley, Nick Fisher, William ", - "Fisher, Mark Fitlin, Dave Flatt, Joel J. Flores, John Folkers, ", - "Steven Forgie, Tom Forsythe, Matthew Foster, Scott Francis, ", - "Jim Frank, Paulo Fraser, Glenn French, Kurt Frerichs, Chris ", - "Frey, Mark Friedman, Charles Friedmann, Dan Friend, Kirk ", - "Fry, Aaron Fu, Erik Gaalema, Brandon Gabbard, Phil Gagner, ", - "Tommy Gannon, David Gappmayer, Chris Garrison, Tony ", - "Garrison, David Gasca, Jeremy Gasser, Michael Geist, Michael ", - "Genereux, Daniel Genovese, Josh Gerwin, Paul Gibson, William ", - "Gilchrist, Gabriel Gils Carbo, Chad Glendenin, Ryan Glinski, ", - "Dean Gobrecht, Andrew Goldfinch, David Goodman, Mark ", - "Goodson, Matt Gordon, Frank Gorgenyi, Sean Gould, Perry ", - "Goutsos, Ed Govednik, Michael Grayson, Chris Green, Justin ", - "Grenier, Jeff Greulich, Don Grey, Rob Griesbeck, Don Griffes, ", - "Kimberly Griffeth, Jay Grizzard, Don Gronlund, Joe Gross, ", - "Troy Growden, Greg Guilford, David Gusovsky, Jeremy ", - "Guthrie, Adam Gutierrez, James Guzicki, Matthew Haas, Matt ", - "Hadley, Ryan Hagelstrom, Bobby Hagen, Ben Hall, Brian Hall, ", - "Kris Hall, Calvin Hamilton, Kris Hamilton, Bo Hammil, Dave ", - "Hans, Rick Hansen, Robert Harlan, Travis Harlan, Seth ", - "Harman, Jeff Harris, Shawn Hartford, Adam Hartsell, Neil ", - "Harvey, Ray Hayes, John Hein, Chris Heinonen, Christer ", - "Helsing, Chris Hempel, Dustin Hempel, Mathieu Henaire, Matt ", - "Henry, Chuck Herb, Michael Herron, Sage Herron, Thomas ", - "Herschbach, Cliff Hicks, Nelson Hicks, Paul Hierling, William ", - "Hiers, Mike Higdon, Tim Hildebrand, Casey Hinkle, Ryan ", - "Hitchings, Wes Hix, Alan Ho, Jenson Ho, Alan Hoffman, Jeff ", - "Hoffman, Eleanor Hoffmann, Steve Hogg, Richard Holler, Brian ", - "Homolya, Wade Hone, Joe Horvath, Jeff Howe, Eric Hudson, ", - "Glen Huey, Chris Hufnagel, Joshua Hughes, Melissa Hughes, ", - "Arief Hujaya, Thomas Hulen, Ryan Hupp, Justin Hurst, Rick ", - "Hutchins, Steve Iams, Mike Iarossi, Bjorn Idren, Johan Idren, ", - "Micah Imparato, Joe Ingersoll, David Ingram, Greg Ipp, Rodney ", - "Irvin, Darin Isola, Justin Itoh, Mario Ivan, Fredrik Ivarsson, ", - "Dax Jacobson, Michael Jacques, Stevens Jacques, Duane Jahnke, ", - "William Jambrosek, Daniel Janick, Narciso Jaramillo, Neil ", - "Jariwala, Harvie Jarriell, Scott Javadi, Joe Jenkins, Bart ", - "Jennings, Paul Jennings, Julien Jenny, Jason Jensen, Martin ", - "Jeremy, Mark Jeschke, Andy Johnson, James Johnson, Leigh ", - "Johnson, Mark Johnson, Rupert Johnson, Clyde Jones, Michael ", - "Jones, Tim Jordan, Ben Judy, Michael Kaae, Steve Kaczkowski, ", - "Neville Kadwa, Brian Kaisner, Yoshihisa Kameyama, Michael ", - "Kanemura, Daniel Kao, Eric Karabin, Ben Katz, Christopher ", - "Kawamura, Erick Kayser, Craig Keddie, Kevin Kelley, Bryan ", - "Kemp, Michael Kendrigan, Dan Kerber, Timothy Kerber, Tomi ", - "Keski-Heikkila, Greg Kettering, Nathan Kilber, Howard Kim, ", - "Orrin Kinion, Jon Kirst, David Kitch, John Klingbeil, Neil ", - "Klopfenstein, Kerry Knouse, David Knox, Said Kobeissi, Jeff ", - "Koches, Hades Kong, Jeff Kong, Kevin Konkle, Steve Koon, ", - "David Koontz, Dan Koopmann, Steve Koskela, Kuan Kou, ", - "Cameron Kracke, Jensen Krage, York Kramer, Cedar Kraus, ", - "Jason Kraus, Bobby Krimen, Melissa Krispli, Steven Krispli, ", - "James Kruger, Charles Kubasta, Kimmo Kulonen, Frank ", - "Lackaff, Michael Lacour, Matt Lake, Jason Landry, Hans Erik ", - "Lange, Michael Laramee, Brad Lascelle, Pat Laschinger, Alan ", - "Lau, Sean Laurence, Anthony Lavey, Jr., Gary Le, Huey Le, ", - "Stephane Le Roy Audy, Lim Leandro, Charles Lee, Conroy Lee, ", - "Mike Lee, Shih-Hang Lee, Jonathan Leipert, Jason Lemann, ", - "Ron Lenzi, Mitchell Leon, Stephanie Lesniewski, Brendan ", - "Lewis, Robert Lewis, Sam Liao, Tom Liem, Adam Ligas, Steven ", - "Liggett, Roger Lilley, Benjamin Lim, Jeff Lindholm, Johnson ", - "Linwood, David Litchman, Bruce Lithimane, William Liu, ", - "Wilson Liu, Robert Lobdell, Chris Logan, Razvan Loghin, Jack ", - "Loh, George Loo, Russell Love, Juan Loyola, Ricardo Lozano, ", - "Mike Luban, Tim Luc, Henry Luciano, Dianne Ludwig, Charles ", - "Lueras, Derek Lung, Phong Ly, Scott MacGillivray, Dave Mack, ", - "Alec Mak, Steve Mamayek, Michael Mancini, Daniel Mann, ", - "Michael Mann, Chris Manofsky, Abdullah Marafie, Nicholas ", - "Marcy, Piompino Mariano, Bob Marius, Trey Marshall, Dane ", - "Martin, Gregg Martin, Renard Martin, Rich Martin, Scott ", - "Martin, Thomas Martin, Jon Masters, Christopher Mathews, ", - "Jay Mathis, Marc Matthews, Chris Mazur, Doug McBride, ", - "Mackey McCandlish, Robin McCollum, Steven McCombie, ", - "Andy McConnell, Michael McCourt, Bill McCoy, Doug ", - "McCracken, Michael McDeed, Robert McDonald, Steve ", - "McEachron, Craig McGee, Ryan McKenzie, Michael McKeown, ", - "Daniel McMahon, Colin McMillan, Ian McWilliam, Mark ", - "McWilliams, Khann Mean, Bryan Meason, Kenneth Medley, ", - "Jeff Meek, John Mehr, Christopher Mende, Brian Mendenhall, ", - "Peter Mengel, Michael Mersic, Mike Messom, Don Metcalf, ", - "Gary Metzker, Scott Meyer, Joseph Michaud, Andrew Mielke, ", - "Travis Mikalson, Troy Milburn, Ike Miller, Ronnie Miller, Sean ", - "Miller, Steve Miller, Arthur Min, David Minniti, Brenda ", - "Mirsberger, Bill Misek, David Mitchell, Joseph Mobley, Robert ", - "Mollard, Will Mooar, Curtis Moore, Matthew Moore, Al ", - "Morales, Ryan Moran, Lance Mortensen, Karel Mrazek, Ward ", - "Mullee, William Munoz, Kirk Munro, Craig Murray, Shawn P. ", - "Murray, Travis Murray, Michael Mushrush, Tom Mustaine, ", - "David Myers, Joseph Myett, Morgan Najar, Kenta Nakamura, ", - "Damian Nastri, Joshua Naumann, Nick Navarro, Douglas ", - "Neitzel, Arnold Ng, Anthony Nguyen, Steve Nguyen, Joseph ", - "Nicholas, Charles Nickolaus, Jon Nisbet, Patrick Nomee, David ", - "Norling-Christensen, Bobby Norton, Joseph Nottingham, Frank ", - "O'Connor, Jon Oden, David Oester, Lavern Ogden, Zach ", - "Oglesby, Lucas Oldfield, Toby Olsson, Aaron Ondek, Sean ", - "O'Neill, John Orlando, Samuel Orlando, Donovan Orloski, ", - "David Pai, Nikolas Paldan, David Palek, John Palmieri, Anthony ", - "Palmisano, Sanjay Pandit, Jesse Park, Alex Parker, Jimmy ", - "Pasher, Lukasz Paszek, Andy Patterson, William Pelletier, ", - "Duane Pemberton, Ivan Pemic, Kelly Pendergast, Mike ", - "Penezich, Jon Penk, Willie Penley, Ron Penna, Matthew ", - "Pennington, Kevin Pereira, Ross Perez, Ken Perkins, Brian ", - "Peterik, Kelly Peterson, Chris Phillips, Rod Pickett, Cameron ", - "Pierce, Reuben Pierce, Tim Pilger, Billy Pippin, Brad Plank, ", - "Brian Plant, Craig Platt, David Plunkett, Michael Politi, Albert ", - "Portillo, Brian Powell, David Powell, Franklin Powers Jr., Alan ", - "Precourt, Michael Pronchick, Julian Quintana, Justin Radziej, ", - "Steven Rajewski, Shawn Rawles, Ian Reardon, Marc Reed, Ric ", - "Reichelt, Judd Reiffin, David Reilly, Garry Reisky, Drew ", - "Ressler, Robert Reynolds, Walter Reynolds, Michael Rice, Ian ", - "Richards, James Richards, Raymond Richmond, Dustin Riggs, ", - "Keith Riskey, Brian Ro, Scott Roberts, Jorge Rodriguez, Chad ", - "Rogers, Clint Rogers, Robert Rogers, Steve Rogers, Ethan Roots, ", - "Ron Roque, William Ross, Sebastian Rossi, Jeff Rostis, Ben ", - "Roth, Demar Roth, Rich Rouse, Oleg Rovner, Jonathan Roy, ", - "Drew Rozema, Mike Ruggles, Mathias Russ, James Russell, Jim ", - "Rutledge, James Rutter, Dave Ryder, Chris Salvadras, Anders ", - "Samnerud, Nick Sanders, Jakob Sandgren, Joe Sapinsky, Tyler ", - "Sargent, Jonas Saunders, Mark Savage, Scott Sawyer, Robert ", - "Scanlon, Trevor Schaben, Aaron Schmidt, Chris Schmidt, Greg ", - "Schultz, Nicholas Schumacher, Scott Schumacher, Kevin Scott, ", - "Rastislav Seffer, Robert Seidler, Corey Sellers, Justin Sellers, ", - "Marc Senecal, George Shannon, Ian Sheffield, Anoop Shekar, ", - "Sandeep Shekar, Kevin Shelton, Leon Shephard, Eric Shepperd, ", - "Jeffrey Shneidman, Samuel Shockey, Mark Shoemaker, Mike ", - "Shupe, Sean Sibbet, Brian Sidharta, Jimmy Sieben, Eric ", - "Siemens, William Silva, Jody Simpson, Jatinder Singh, Sonia ", - "Siu, Omar Skarsvaag, Tom Skiba, Carl Skow, David Skuse, ", - "Robert Slifka, Brent Smith, C. Eric Smith, Jared Smith, Jeffrey ", - "Smith, Owen Smith, Shannon Smith, Steven Smith, Edward Smola, ", - "Matthew Sneep, Eric Snow, Brad Sobel, Jean-Pierre Solignac, Rasmus ", - "Sorensen, Andrew Sorg, Poppy Southcott, Ross Specter, Erik Spencer, ", - "Keith Spencer, Chris Springer, Erikson Squier, Dean St. Onge, Stewart ", - "Stanfield, John Stanley, Terrence Staton, Benjamin Stein, James ", - "Steiner, David Steyer, William Stickney, Chris Stiff, James Stofer, ", - "Norm Storch, Patrick Stovall, Brandon Sturgeon, Sean Stutler, Anne ", - "Sukprasert, Jamal Sullivan, Bruce Sully, Jay Sung, Park Sung ", - "Joon, Stein Sunnarvik, Nathan Surginer, Robert Swaringen, Lee ", - "Sweeney, David Szabo, Scott Taft, Christian Takvam, Patrick ", - "Talaska, Tadashi Tamaki, Simon Tan, Mark Taraba, Khon-", - "Whey Tay, John Taylor, Keith Taylor, Donald Temean, Phillip ", - "Tesar, Pete Thao, Brian Thomas, Keith Thomas, Speed Thomas, ", - "Miles Thorpe, Paul Thurrott, Mike Timbol, Nicholas Timmins, ", - "Tom Tobin, Robert Towster, Hien Tran, Timothy Traviss, Toby ", - "Traylor, Tony Treadwell, George Tremoulis, Paul Trinh, Thanh ", - "Trinh, Chris Tristan, Brad Truswell, Jason Tryon, Mike Tu, ", - "Gernel Tuazon, Eric Tuggle, Mike Turnbull, Lyle Ubben, ", - "Amilcar Ubiera, Robert Ulozas, Arie Upton, Mark Van Noy, ", - "Matthew Van Sickler, Jake Vantlin, Tony Vasquez, Brady ", - "Vauclin, Gianpiero Vecchi, Chad Verrall, Chris Vicente, Brett ", - "Vickers, David Vickery, Jonathan Vilante, Simon Vince, Ben ", - "Vinson, David Voelkert, Paul Vogt, Nicholas Voorhies, Robert ", - "Vreeland, Mike Vrooman, Rick Vuong, Brian Wachhaus, Todd ", - "Wachhaus, Caine Wade, Mathew Wadstein, Kenneth Wagenius, ", - "Trevor Wagner, John Wagstaff, Asad Wahid, Richard ", - "Wahlberg, Helio Wakasugui, Richard Walker, Wilkins Walker, ", - "Matthew Wallace, Daniel Walsh, Joel Walters, Andrew Waltz, ", - "Tom Wang, Tony Wang, Jay Ward, Jonathan Ward, John ", - "Warner, Mark Warren, Matt Washer, Mike Watson, Sean ", - "Wattles, Mike Wayne, Christian Wehba, Benjamin Wei, Richard ", - "Weight, Cary Wells, David Wenck, Bill Werring, Leonard ", - "Wesley, Marlon West, Mikael Westerbacka, Brian Wharry, ", - "Chris White, Chris White, Jeremy White, Greg Whitlock, Gary ", - "Widener, Marty Wilfried, Israel Wilkinson, Michael Willams, ", - "Derek Williams, Sean Willson, Nitzan Wilnai, Jim Wilson, ", - "Karsten Wilson, William Wilt, Tim Winn, Brian Winzeler, Matt ", - "Wise, Lee Wissmiller, Brendan Wolfe, Daniel Wolpert, Felix ", - "Wong, Power Wong, Tony Wong, Tim Wood, Timothy Wood, ", - "Jeremy Woods, Michael Woods, Bill Wright, Keith Wright, ", - "Patrick Wu, Gang Xie, Robert Yao, Sun Lim Yap, Stephen Yau, ", - "Erek Yedwabnick, Christopher Yee, Nick Yee, Juan Yip, David ", - "Young, Rob Young, Seth Young, Alex Yu, Terry Zahn, Jia-Ning ", - "Zhang, Eric Zieg, Jordan Zielin, Clint Zimmerman, Matt Zinke ", - "", - "", - "", - "", - "$No souls were sold in the making of this game.", + "Recording Engineer", + " Robert Koenigsberg", + "", + "Manual Design & Layout", + " Peter Underwood, Jeffrey Vaughn,", + " Chris Metzen, Bill Roper", + "", + "Manual Artwork", + " Samwise Didier, Chris Metzen,", + " Roman Kenney, Maxx Marshall", + "", + "Provisional Director of QA (Lead Tester)", + " Shane Dabiri", + "", + "QA Assault Team (Testers)", + " Christopher Cross, Mike Givens, Dave Hale,", + " Brian \"Doc\" Love, Hung Nguyen, Dean Shipley,", + " Chris Sigaty, Ian Welke, Jamie Wiggs", + "", + "QA Special Ops Team (Compatibility Testers)", + " Adam Maxwell, Russell \"Rug\" Miller", + "", + "QA Artillery Support (Additional Testers) ", + " Rich Alcazar, Mike Jones, Rev. Dan Moore, Matt Morris,", + " Mark Pfeiffer, Harish \"Pepe the Enforcer\" Rao, Chris Millar", + "", + "QA Counterintelligence", + " Alan Dabiri, Jesse McReynolds, Walter Takata", + "", + "Order of Network Information Services", + " Robert Bridenbecker, Jason \"Brother Shaggy\" Schmit,", + " Jamie \"Brother Gug\" Steigerwald, Richard Seis ", + "", + "Customer Support", + " John Schwartz, Vic Larson, Chad Chaudry, Mick Yanko,", + " Brandon Riseling, Kirk Mahony, Tony Hardy, Richard", + " Amtower, Collin Smith, Andrew Edwards, Roger Eberhart", + "", + "Sales", + " Jorge Rivero, Rob Beatie", + "", + "Dunsel", + " Alan Dabiri", + "", + "Mr. Dabiri's Background Vocalists", + " Karin Colenzo, Christina Cade,", + " Kim Farrington, Melissa Edwards", + "", + "Public Relations", + " Linda Duttenhaver, Susan Wooley", + "", + "Marketing", + " John Patrick, Steve Huot, Neal Hubbard, Kathy Carter", + "", + "International Sales", + " Ralph Becker, Chris Yoshimura", + "", + "U.S. Sales", + " Todd Coyle, Danny Kearns", + "", + "Manufacturing", + " John Goodman, Tom Bryan", + "", + "Legal & Business", + " Paula Duffy, Eric Roeder, Paul Sams, Kenneth Williams", + "", + "Special Thanks To", + " Primenet, Earthlink, AOL, Compuserve, ATI, Matrox, STB, ", + " Creative Labs, Logitech, U.S. Robotics, Gravis, Cyrix", + "", + "Thanks To", + " Ian Colquhoun, Rod Shean, Brian Fitzgerald, Sharon Schafer, Todd ", + " Schafer, Richard and Sandra Schaefer, Rick Bowles, Greg Bogden, ", + " Cindy Sievert, Brad Mason, Chuck Goldman, Karin Colenzo, Wendy ", + " Brevik, Jennie Brevik, Hanna Carroll, Katie Newell, Karen Weiss, ", + " Kurt Beaver, Stan McDonald, Brian Sexton, Michael Wan, Megan ", + " Williams, Jessica Gensley, Beth Ann Parks, Brian Piltin, Johnathan ", + " Root, Brett Supernaw, Sabeer Bhatia, Mark Rearick, Brad Mason, ", + " Diane Kodama, Bernadette Sexton, Barbara Uhlmann, Patricia", + " McDonald, Kris Kelley, Alissa Vaage, Denise Hernandez, Paula ", + " White, Rachel Marie Hawley, Laura Gaber, Isaac Matarasso,", + " Susan Stafford, Gretchen Witte, Jason Sailor, Eufemia Palomino, ", + " Nathalie Didier, Nicole Welke, Dawn Caddel, Anna-Marcelle ", + " Okamura, Amber Okamura, Megan Okamura Tracey McNaughton, ", + " Trisha Ann Ochoa, Annie Strain, Dr. Gregory T. Street, Ray the Soda ", + " Guy, Sam Raimi, A. Guinness Brewing Co., John Woo, Chow Yun Fat, ", + " Jackie Chan,Proposition 215, Rumiko Takahashi, Bunchy & Mason, ", + " The Friends of Stan, The Zoo Crew, Team Hamro, Brazil 2001, RUSH, ", + " Cornholio, THE BROS., Dar, Emeril Lagasse, Tom Waits, Ice-Cube, ", + " The Strike Team Deflectors, Tony Levin, Big Jim and the Twins, ", + " Jag`rmeister, The Megasphere, Condor, The Allower, The Sunday ", + " Night Group, Gravitar, Steinway Pianos, Round Table Pizza, The Poxy ", + " Boggards, Urban Mystic & Co., Caffeine, Hunter Rose, Marly ", + " mediums in the box, sweet Poteen, Dave Scarpitti, TheByter, Bim ", + " Man, Krissann for color, Patty at Avalon Tattoo, James, Whaleboy, ", + " Dunsel Training Institute, monkeys, Dob Bole, Rootes Group, Porshe, ", + " Bongo, Scarlett, Apollo, The House of Mediocrity, Amelias, The King, ", + " Saag and all the folks at Davidson", + "", + "In memory of", + " Lawrence and Barbara Williams", + " David A. Hargrave", + " Tony \"Xatre\" Collin", + " Thomas H Sexton", + "", + "Very Special Thanks to", + " Bob and Jan Davidson", + " Walter Forbes", + "", + "The Ring of One Thousand", + " Andrew Abernathy, Christopher Abramo, David Adams, David ", + " Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", + " Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", + " Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", + " Andrew Abernathy, Christopher Abramo, David Adams, David ", + " Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", + " Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", + " Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", + " Andersen, Aaron Anderson, George Anderson, Matthew ", + " Anderson, Michael Anderson, Sean Anderson, Robert Andrade, ", + " Cerny Andre, Michael Andreev, Devin Angle, Brian Apple, ", + " Brian Arbuthnot, Billy Arden, Dorian Arnold, Andre Arsenault, ", + " Erik Asplund, Mark Assam, John Athey, Jason Attard, Jeff ", + " Atwood, Ricky Au, Scott Avery, Rand Babcock, Steve Babel, ", + " Raymond Bacalso, Ed Bachta, Steven Back, Scott Baeder, Alex ", + " Baevski, Scott Bailey, Kenneth Baird, Thomas Baker, Todd ", + " Bala, Jan Ball, Greg Baltz, Blake Baltzley, Doug Bambrick, Wes ", + " Bangerter, Paul Barfuss, Chris Barghout, Dave Barnebey, Jon ", + " Barnhart, Terje Barth, Nicole Baskin, Bernard Baylen, Ryan ", + " Bear, Phil Bedard, Todd Belcher, Chip Bell, Erez Ben-Aharon, ", + " Jonathan Bender, Nick Bennett, Ireney Berezniak, Ted Berg, ", + " Gunnar Bergem, Russell Beuker, Ed Bickford, Stephen Biles, ", + " John Billdt, Gerald Binder, John Bird, Hannah Blackerby, Tom ", + " Blackerby, Clayton Blackwell, Thomas Blake, Shawn Blaszak, ", + " Daniel Bliss, Fred Bliss, Jeff Bliss, Jon Blum, Rune Boersjoe, ", + " Andrew Boggs, Dave Boisvenu, Joe Bolt, John Bonds, Jeff ", + " Borenstein, Dorian Borin, Ed Boris, Bartholomew Botta, ", + " Michael Boutin, Michael Boyd, Charles Boyer, Mike ", + " Boyersmith, Michael Boyko, Eric Bradberry, John Brandstetter, ", + " Ryan Breding, Paul Brinkmann, Patrick Briscoe, Scott Brisko, ", + " Jeremy Britton, Adrian Broadhead, Glenn Brouwer, Joe Brown, ", + " Sébastien Brulotte, Darrell Brunsch, William Bryan, Jason ", + " Bucher, Chris Buchinger, Clayton Buckingham, John Buckles, ", + " David Bugay, Ed Bujone, Erik Burgess, Gabriel Burkett, Chris ", + " Burnes, Richard Butler, Jeffrey Bye, Dougall Campbell, Donnie ", + " Cannon, Shane Cantrell, Connor Caple, Daniel Carey, James ", + " Carlton, Michael Carmel, Mike Carpenter, Ronald Carruthers, ", + " Phil Carter, Bryce Cartmill, Eric Cartwright, Anthony Caruso, ", + " Lon Casey, Tim Caster, Aaron Chan, Otto Chan, Gene Chang, ", + " Hsiao-Lung Chang, William Chang, George Chappel, Larry ", + " Charbonneau, Troy Chase, Bruce Chen, Chun Hsien Chen, Sam ", + " Chen, Tzu-Mainn Chen, Mike Cheng, Chris Chiapusio, Damien ", + " Chiesa, Nick Chin, Nim Ching, Jonathan Chinn, Michael Chinn, ", + " Philander Chiu, Thayne Christiansen, Philip Chui, Steve ", + " Cintamani, Richard Ciordia, Colin Clark, Steve Clark, Samuel ", + " Clements, Meredith Clifton, Jeff Cohen, Dale Colton, Dax ", + " Combe, Matt Compton, Jacob Conklin, Richard Conn, Zac ", + " Cook, Tim Coolong, Gregory Coomer, Dennis Cosgrove, Kelly ", + " Couch, Andrew Coulter, Eric Coutinho, David Coutts, James ", + " Craig, John Craig, Kazial Craig, John Crawford, Marcelo ", + " Crespo, Orville Crews, Tim Cristy, Elmer Crosby III, Russell ", + " Cullison, Ryan Cupples, Andrew Dagley, Steve Dallaire, Richard ", + " Dalton, David Dandar, Pro Daulo, Rob Dautermann, Mike ", + " Davies, Kalieb Davis, Marshall Davis, Ronald Davis, Danny De ", + " Bie, Marc De Filippis, Myles Deighton, Kent Dejarnett, Anthony ", + " Delarosa, Neil Dempster, Peter Denitto, Joaquim Dentz, Scott ", + " Dewar, Anish Dhingra, Philip Dhingra, David Diaz, Stewart ", + " Dicks, Brad Dietz, Josh Dietz, Colleen Diggins, Mike Ditchburn, ", + " Eric Dittman, Allen Do, Huy Doan, Matthew Dolman, Antoine ", + " Dongois, Eamonn Donohoe, Bill Dorell, Mark Dorison, Dan ", + " Dorsett, Chris Dorsey, Jim Dosé, Willis Doss, Chin Du, William ", + " Dubis, Timothy Duewell, Brandon Dunn, Andrew Durham, Don ", + " Duvall, Kevin Dvojack, Daniel Eaton, Paul Eberting, Eric ", + " Echelbarger, Lance Eddleman, Ben Eggers, David Eggum, John ", + " Ehde, Brian Eikenberry, Patrick Elven, Peter Engdahl, Philip ", + " Engdahl, Michael Ennis, Darren Eslinger, Eric Ezell, Darren ", + " Falslev, Stephen Feather, Tony Fenn, Ben Ferguson, Mike ", + " Fernandez, Gwendal Feuillet, Guy Fietz, Julian Figueroa, Dale ", + " Fillpot, Stan Finchem, Michael Finley, Nick Fisher, William ", + " Fisher, Mark Fitlin, Dave Flatt, Joel J. Flores, John Folkers, ", + " Steven Forgie, Tom Forsythe, Matthew Foster, Scott Francis, ", + " Jim Frank, Paulo Fraser, Glenn French, Kurt Frerichs, Chris ", + " Frey, Mark Friedman, Charles Friedmann, Dan Friend, Kirk ", + " Fry, Aaron Fu, Erik Gaalema, Brandon Gabbard, Phil Gagner, ", + " Tommy Gannon, David Gappmayer, Chris Garrison, Tony ", + " Garrison, David Gasca, Jeremy Gasser, Michael Geist, Michael ", + " Genereux, Daniel Genovese, Josh Gerwin, Paul Gibson, William ", + " Gilchrist, Gabriel Gils Carbo, Chad Glendenin, Ryan Glinski, ", + " Dean Gobrecht, Andrew Goldfinch, David Goodman, Mark ", + " Goodson, Matt Gordon, Frank Gorgenyi, Sean Gould, Perry ", + " Goutsos, Ed Govednik, Michael Grayson, Chris Green, Justin ", + " Grenier, Jeff Greulich, Don Grey, Rob Griesbeck, Don Griffes, ", + " Kimberly Griffeth, Jay Grizzard, Don Gronlund, Joe Gross, ", + " Troy Growden, Greg Guilford, David Gusovsky, Jeremy ", + " Guthrie, Adam Gutierrez, James Guzicki, Matthew Haas, Matt ", + " Hadley, Ryan Hagelstrom, Bobby Hagen, Ben Hall, Brian Hall, ", + " Kris Hall, Calvin Hamilton, Kris Hamilton, Bo Hammil, Dave ", + " Hans, Rick Hansen, Robert Harlan, Travis Harlan, Seth ", + " Harman, Jeff Harris, Shawn Hartford, Adam Hartsell, Neil ", + " Harvey, Ray Hayes, John Hein, Chris Heinonen, Christer ", + " Helsing, Chris Hempel, Dustin Hempel, Mathieu Henaire, Matt ", + " Henry, Chuck Herb, Michael Herron, Sage Herron, Thomas ", + " Herschbach, Cliff Hicks, Nelson Hicks, Paul Hierling, William ", + " Hiers, Mike Higdon, Tim Hildebrand, Casey Hinkle, Ryan ", + " Hitchings, Wes Hix, Alan Ho, Jenson Ho, Alan Hoffman, Jeff ", + " Hoffman, Eleanor Hoffmann, Steve Hogg, Richard Holler, Brian ", + " Homolya, Wade Hone, Joe Horvath, Jeff Howe, Eric Hudson, ", + " Glen Huey, Chris Hufnagel, Joshua Hughes, Melissa Hughes, ", + " Arief Hujaya, Thomas Hulen, Ryan Hupp, Justin Hurst, Rick ", + " Hutchins, Steve Iams, Mike Iarossi, Bjorn Idren, Johan Idrén, ", + " Micah Imparato, Joe Ingersoll, David Ingram, Greg Ipp, Rodney ", + " Irvin, Darin Isola, Justin Itoh, Mario Ivan, Fredrik Ivarsson, ", + " Dax Jacobson, Michael Jacques, Stevens Jacques, Duane Jahnke, ", + " William Jambrosek, Daniel Janick, Narciso Jaramillo, Neil ", + " Jariwala, Harvie Jarriell, Scott Javadi, Joe Jenkins, Bart ", + " Jennings, Paul Jennings, Julien Jenny, Jason Jensen, Martin ", + " Jeremy, Mark Jeschke, Andy Johnson, James Johnson, Leigh ", + " Johnson, Mark Johnson, Rupert Johnson, Clyde Jones, Michael ", + " Jones, Tim Jordan, Ben Judy, Michael Kaae, Steve Kaczkowski, ", + " Neville Kadwa, Brian Kaisner, Yoshihisa Kameyama, Michael ", + " Kanemura, Daniel Kao, Eric Karabin, Ben Katz, Christopher ", + " Kawamura, Erick Kayser, Craig Keddie, Kevin Kelley, Bryan ", + " Kemp, Michael Kendrigan, Dan Kerber, Timothy Kerber, Tomi ", + " Keski-Heikkilä, Greg Kettering, Nathan Kilber, Howard Kim, ", + " Orrin Kinion, Jon Kirst, David Kitch, John Klingbeil, Neil ", + " Klopfenstein, Kerry Knouse, David Knox, Said Kobeissi, Jeff ", + " Koches, Hades Kong, Jeff Kong, Kevin Konkle, Steve Koon, ", + " David Koontz, Dan Koopmann, Steve Koskela, Kuan Kou, ", + " Cameron Kracke, Jensen Krage, York Kramer, Cedar Kraus, ", + " Jason Kraus, Bobby Krimen, Melissa Krispli, Steven Krispli, ", + " James Kruger, Charles Kubasta, Kimmo Kulonen, Frank ", + " Lackaff, Michael Lacour, Matt Lake, Jason Landry, Hans Erik ", + " Lange, Michael Laramee, Brad Lascelle, Pat Laschinger, Alan ", + " Lau, Sean Laurence, Anthony Lavey, Jr., Gary Le, Huey Le, ", + " Stephane Le Roy Audy, Lim Leandro, Charles Lee, Conroy Lee, ", + " Mike Lee, Shih-Hang Lee, Jonathan Leipert, Jason Lemann, ", + " Ron Lenzi, Mitchell Leon, Stephanie Lesniewski, Brendan ", + " Lewis, Robert Lewis, Sam Liao, Tom Liem, Adam Ligas, Steven ", + " Liggett, Roger Lilley, Benjamin Lim, Jeff Lindholm, Johnson ", + " Linwood, David Litchman, Bruce Lithimane, William Liu, ", + " Wilson Liu, Robert Lobdell, Chris Logan, Razvan Loghin, Jack ", + " Loh, George Loo, Russell Love, Juan Loyola, Ricardo Lozano, ", + " Mike Luban, Tim Luc, Henry Luciano, Dianne Ludwig, Charles ", + " Lueras, Derek Lung, Phong Ly, Scott MacGillivray, Dave Mack, ", + " Alec Mak, Steve Mamayek, Michael Mancini, Daniel Mann, ", + " Michael Mann, Chris Manofsky, Abdullah Marafie, Nicholas ", + " Marcy, Piompino Mariano, Bob Marius, Trey Marshall, Dane ", + " Martin, Gregg Martin, Renard Martin, Rich Martin, Scott ", + " Martin, Thomas Martin, Jon Masters, Christopher Mathews, ", + " Jay Mathis, Marc Matthews, Chris Mazur, Doug McBride, ", + " Mackey McCandlish, Robin McCollum, Steven McCombie, ", + " Andy McConnell, Michael McCourt, Bill McCoy, Doug ", + " McCracken, Michael McDeed, Robert McDonald, Steve ", + " McEachron, Craig McGee, Ryan McKenzie, Michael McKeown, ", + " Daniel McMahon, Colin McMillan, Ian McWilliam, Mark ", + " McWilliams, Khann Mean, Bryan Meason, Kenneth Medley, ", + " Jeff Meek, John Mehr, Christopher Mende, Brian Mendenhall, ", + " Peter Mengel, Michael Mersic, Mike Messom, Don Metcalf, ", + " Gary Metzker, Scott Meyer, Joseph Michaud, Andrew Mielke, ", + " Travis Mikalson, Troy Milburn, Ike Miller, Ronnie Miller, Sean ", + " Miller, Steve Miller, Arthur Min, David Minniti, Brenda ", + " Mirsberger, Bill Misek, David Mitchell, Joseph Mobley, Robert ", + " Mollard, Will Mooar, Curtis Moore, Matthew Moore, Al ", + " Morales, Ryan Moran, Lance Mortensen, Karel Mrazek, Ward ", + " Mullee, William Munoz, Kirk Munro, Craig Murray, Shawn P. ", + " Murray, Travis Murray, Michael Mushrush, Tom Mustaine, ", + " David Myers, Joseph Myett, Morgan Najar, Kenta Nakamura, ", + " Damian Nastri, Joshua Naumann, Nick Navarro, Douglas ", + " Neitzel, Arnold Ng, Anthony Nguyen, Steve Nguyen, Joseph ", + " Nicholas, Charles Nickolaus, Jon Nisbet, Patrick Nomee, David ", + " Norling-Christensen, Bobby Norton, Joseph Nottingham, Frank ", + " O'Connor, Jon Oden, David Oester, Lavern Ogden, Zach ", + " Oglesby, Lucas Oldfield, Toby Olsson, Aaron Ondek, Sean ", + " O'Neill, John Orlando, Samuel Orlando, Donovan Orloski, ", + " David Pai, Nikolas Paldan, David Palek, John Palmieri, Anthony ", + " Palmisano, Sanjay Pandit, Jesse Park, Alex Parker, Jimmy ", + " Pasher, Lukasz Paszek, Andy Patterson, William Pelletier, ", + " Duane Pemberton, Ivan Pemic, Kelly Pendergast, Mike ", + " Penezich, Jon Penk, Willie Penley, Ron Penna, Matthew ", + " Pennington, Kevin Pereira, Ross Perez, Ken Perkins, Brian ", + " Peterik, Kelly Peterson, Chris Phillips, Rod Pickett, Cameron ", + " Pierce, Reuben Pierce, Tim Pilger, Billy Pippin, Brad Plank, ", + " Brian Plant, Craig Platt, David Plunkett, Michael Politi, Albert ", + " Portillo, Brian Powell, David Powell, Franklin Powers Jr., Alan ", + " Precourt, Michael Pronchick, Julian Quintana, Justin Radziej, ", + " Steven Rajewski, Shawn Rawles, Ian Reardon, Marc Reed, Ric ", + " Reichelt, Judd Reiffin, David Reilly, Garry Reisky, Drew ", + " Ressler, Robert Reynolds, Walter Reynolds, Michael Rice, Ian ", + " Richards, James Richards, Raymond Richmond, Dustin Riggs, ", + " Keith Riskey, Brian Ro, Scott Roberts, Jorge Rodriguez, Chad ", + " Rogers, Clint Rogers, Robert Rogers, Steve Rogers, Ethan Roots, ", + " Ron Roque, William Ross, Sebastian Rossi, Jeff Rostis, Ben ", + " Roth, Demar Roth, Rich Rouse, Oleg Rovner, Jonathan Roy, ", + " Drew Rozema, Mike Ruggles, Mathias Russ, James Russell, Jim ", + " Rutledge, James Rutter, Dave Ryder, Chris Salvadras, Anders ", + " Samnerud, Nick Sanders, Jakob Sandgren, Joe Sapinsky, Tyler ", + " Sargent, Jonas Saunders, Mark Savage, Scott Sawyer, Robert ", + " Scanlon, Trevor Schaben, Aaron Schmidt, Chris Schmidt, Greg ", + " Schultz, Nicholas Schumacher, Scott Schumacher, Kevin Scott, ", + " Rastislav Seffer, Robert Seidler, Corey Sellers, Justin Sellers, ", + " Marc Senecal, George Shannon, Ian Sheffield, Anoop Shekar, ", + " Sandeep Shekar, Kevin Shelton, Leon Shephard, Eric Shepperd, ", + " Jeffrey Shneidman, Samuel Shockey, Mark Shoemaker, Mike ", + " Shupe, Sean Sibbet, Brian Sidharta, Jimmy Sieben, Eric ", + " Siemens, William Silva, Jody Simpson, Jatinder Singh, Sonia ", + " Siu, Omar Skarsvaag, Tom Skiba, Carl Skow, David Skuse, ", + " Robert Slifka, Brent Smith, C. Eric Smith, Jared Smith, Jeffrey ", + " Smith, Owen Smith, Shannon Smith, Steven Smith, Edward Smola, ", + " Matthew Sneep, Eric Snow, Brad Sobel, Jean-Pierre Solignac, Rasmus ", + " Sørensen, Andrew Sorg, Poppy Southcott, Ross Specter, Erik Spencer, ", + " Keith Spencer, Chris Springer, Erikson Squier, Dean St. Onge, Stewart ", + " Stanfield, John Stanley, Terrence Staton, Benjamin Stein, James ", + " Steiner, David Steyer, William Stickney, Chris Stiff, James Stofer, ", + " Norm Storch, Patrick Stovall, Brandon Sturgeon, Sean Stutler, Anne ", + " Sukprasert, Jamal Sullivan, Bruce Sully, Jay Sung, Park Sung ", + " Joon, Stein Sunnarvik, Nathan Surginer, Robert Swaringen, Lee ", + " Sweeney, David Szabo, Scott Taft, Christian Takvam, Patrick ", + " Talaska, Tadashi Tamaki, Simon Tan, Mark Taraba, Khon-", + " Whey Tay, John Taylor, Keith Taylor, Donald Temean, Phillip ", + " Tesar, Pete Thao, Brian Thomas, Keith Thomas, Speed Thomas, ", + " Miles Thorpe, Paul Thurrott, Mike Timbol, Nicholas Timmins, ", + " Tom Tobin, Robert Towster, Hien Tran, Timothy Traviss, Toby ", + " Traylor, Tony Treadwell, George Tremoulis, Paul Trinh, Thanh ", + " Trinh, Chris Tristan, Brad Truswell, Jason Tryon, Mike Tu, ", + " Gernel Tuazon, Eric Tuggle, Mike Turnbull, Lyle Ubben, ", + " Amilcar Ubiera, Robert Ulozas, Arie Upton, Mark Van Noy, ", + " Matthew Van Sickler, Jake Vantlin, Tony Vasquez, Brady ", + " Vauclin, Gianpiero Vecchi, Chad Verrall, Chris Vicente, Brett ", + " Vickers, David Vickery, Jonathan Vilante, Simon Vince, Ben ", + " Vinson, David Voelkert, Paul Vogt, Nicholas Voorhies, Robert ", + " Vreeland, Mike Vrooman, Rick Vuong, Brian Wachhaus, Todd ", + " Wachhaus, Caine Wade, Mathew Wadstein, Kenneth Wagenius, ", + " Trevor Wagner, John Wagstaff, Asad Wahid, Richard ", + " Wahlberg, Helio Wakasugui, Richard Walker, Wilkins Walker, ", + " Matthew Wallace, Daniel Walsh, Joel Walters, Andrew Waltz, ", + " Tom Wang, Tony Wang, Jay Ward, Jonathan Ward, John ", + " Warner, Mark Warren, Matt Washer, Mike Watson, Sean ", + " Wattles, Mike Wayne, Christian Wehba, Benjamin Wei, Richard ", + " Weight, Cary Wells, David Wenck, Bill Werring, Leonard ", + " Wesley, Marlon West, Mikael Westerbacka, Brian Wharry, ", + " Chris White, Chris White, Jeremy White, Greg Whitlock, Gary ", + " Widener, Marty Wilfried, Israel Wilkinson, Michael Willams, ", + " Derek Williams, Sean Willson, Nitzan Wilnai, Jim Wilson, ", + " Karsten Wilson, William Wilt, Tim Winn, Brian Winzeler, Matt ", + " Wise, Lee Wissmiller, Brendan Wolfe, Daniel Wolpert, Felix ", + " Wong, Power Wong, Tony Wong, Tim Wood, Timothy Wood, ", + " Jeremy Woods, Michael Woods, Bill Wright, Keith Wright, ", + " Patrick Wu, Gang Xie, Robert Yao, Sun Lim Yap, Stephen Yau, ", + " Erek Yedwabnick, Christopher Yee, Nick Yee, Juan Yip, David ", + " Young, Rob Young, Seth Young, Alex Yu, Terry Zahn, Jia-Ning ", + " Zhang, Eric Zieg, Jordan Zielin, Clint Zimmerman, Matt Zinke ", + "", + "", + "", + "", + " No souls were sold in the making of this game.", "", "", " ", @@ -566,8 +536,9 @@ char *the_long_credits[] = { int creditline = 0; int ybase = 0; -int linecount = 24; -int nottheend = 1; +int lastYbase = 0; +int lineCount = 13; +BOOL nottheend = TRUE; ///////////////////////////////////////// PALETTEENTRY pcxPal[256]; @@ -772,6 +743,7 @@ void FreeMenuItems() tmp = pPcxFont42yImage; pPcxFont42yImage = NULL; mem_free_dbg(tmp); + TTF_Quit(); } void SdlDiabloMainWindow() @@ -942,45 +914,110 @@ void LoadTitelArt(char *pszFile) TitleImageLoaded = true; } -void ShowCredts() +int GetAnimationFrame(int frames, int fps = 60) { - LoadTitelArt("ui_art\\credits.pcx"); - ybase += 1; - if (ybase >= pFont16[1]) { - ybase = 0; + int frame = (SDL_GetTicks() / fps) % frames; + + return frame > frames ? 0 : frame; +} + +int fadeValue = 0; +void UiFadeIn(int steps = 10) +{ + if (fadeValue < 256) { + fadeValue += steps; + if (fadeValue > 256) { + fadeValue = 256; + } + } + + SetFadeLevel(fadeValue); +} + +void UiFadeOut(int steps = 20) +{ + if (fadeValue > 0) { + fadeValue -= steps; + if (fadeValue < 0) { + fadeValue = 0; + } + } + + SetFadeLevel(fadeValue); +} + +TTF_Font *font; +BOOL ShowCredts() +{ + if (!TitleImageLoaded) { + // TODO locate font dynamically, and use fallback font if missing + font = TTF_OpenFont("/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf", 17); + if (font == NULL) { + printf("TTF_OpenFont: %s\n", TTF_GetError()); + } else { + TTF_SetFontStyle(font, TTF_STYLE_BOLD); + TTF_SetFontKerning(font, 0); + } + LoadTitelArt("ui_art\\credits.pcx"); + } + + DrawArtImage(0, 0, gdwTitleWidth, gdwTitleHeight, 0, pPcxTitleImage); + + int lineHeight = 22; + + ybase = GetAnimationFrame(lineHeight, 40); + + if (lastYbase != ybase && ybase == 0) { if (!nottheend) { - linecount--; + lineCount--; creditline++; - } else if (the_long_credits[creditline + 24] == NULL) { - nottheend = 0; - // linecount--; + } else if (the_long_credits[creditline + 13] == NULL) { + nottheend = FALSE; } else creditline++; } + lastYbase = ybase; + + if (font != NULL) { + SDL_Color color = palette->colors[224]; + SDL_Surface *text_surface; + for (int i = 0; i < lineCount; i++) { + if (creditline + i < 0) { + continue; + } - DrawArtImage(0, 0, gdwTitleWidth, gdwTitleHeight, 0, pPcxTitleImage); + int offset = 0; + int x = 31; + int y = (i * lineHeight) - ybase - lineHeight; + if (*the_long_credits[creditline + i] == ' ') { + offset = 1; + x += 40; + } - for (int i = 0; i < linecount; i++) { - // Needs to be slower... - if (*the_long_credits[creditline + i] == '$') { - PrintText16Gold(0, 50 + (i * pFont16[1]) - ybase, the_long_credits[creditline + i] + 1, JustCentre); - } else { - PrintText16Gold(0, 50 + (i * pFont16[1]) - ybase, the_long_credits[creditline + i], JustCentre); + if (text_surface = TTF_RenderUTF8_Solid(font, the_long_credits[creditline + i] + offset, color)) { + SDL_Rect src_rect = { 0, -y, 640, 251 }; + SDL_Rect dsc_rect = { 64 + x, 160 + 114, 640, 480 }; + SDL_BlitSurface(text_surface, &src_rect, pal_surface, &dsc_rect); + SDL_FreeSurface(text_surface); + } } } - SetFadeLevel(256); -} - -///////////////////////////Renders + if (lineCount <= 0) { + UiFadeOut(); + } else { + UiFadeIn(); + } -int GetAnimationFrame(int frames) -{ - int frame = (SDL_GetTicks() / 60) % frames; + if (lineCount <= 0 && !fadeValue) { + return false; + } - return frame > frames ? 0 : frame; + return true; } +///////////////////////////Renders + void AnimateDiabloLogo(int t, int w, int h, void *pBuffer) { int frame = GetAnimationFrame(15); @@ -1039,7 +1076,7 @@ void RenderDiabloSplashPage() PrintText24Silver(-1, 410, "Copyright \xA9 1996-2001 Blizzard Entertainment", JustCentre); RenderDiabloLogo(); - SetFadeLevel(256); + UiFadeIn(); } void RenderDiabloMainPage(char *name) @@ -1076,7 +1113,7 @@ void RenderDiabloMainPage(char *name) PrintText16Silver(17, 444, name); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void RenderStats(char *lvl, char *str, char *mag, char *dex, char *vit) @@ -1124,7 +1161,7 @@ void RenderDiabloSinglePlayerPage() PrintText30Gold(378, 429, "Delete"); PrintText30Gold(501, 429, "Cancel"); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void RenderDefaultStats(int HeroClass) @@ -1194,7 +1231,7 @@ void CreateHeroMenu() PrintText30Gold(451, 429, "Cancel"); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void RenderUndecidedHeroName(int HeroClass) @@ -1222,7 +1259,7 @@ void RenderUndecidedHeroName(int HeroClass) PrintText30Gold(451, 429, "Cancel"); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void DrawPreGameOptions(int HeroClass, int ShowClasses) @@ -1249,7 +1286,7 @@ void DrawPreGameOptions(int HeroClass, int ShowClasses) RenderDefaultStats(HeroClass); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void DrawPreGameDifficultySelection(int HeroClass, int ShowClasses) @@ -1279,7 +1316,7 @@ void DrawPreGameDifficultySelection(int HeroClass, int ShowClasses) RenderDefaultStats(HeroClass); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } void DrawSelMultiConnection() @@ -1321,5 +1358,5 @@ void DrawSelMultiConnection() PrintText30Gold(476, 429, "Cancel"); DrawMouse(); - SetFadeLevel(256); + UiFadeIn(); } diff --git a/Stub/sdlrender.h b/Stub/sdlrender.h index 78e20e537..7e8b9cd37 100644 --- a/Stub/sdlrender.h +++ b/Stub/sdlrender.h @@ -54,6 +54,12 @@ extern void *pPcxCreditsImage; extern int gdwCreditsWidth; extern int gdwCreditsHeight; +extern int fadeValue; +extern int lineCount; +extern int creditline; +extern BOOL nottheend; +extern int lastYbase; + extern bool TitleImageLoaded; extern int SelectedItem; @@ -98,7 +104,7 @@ void RenderDiabloMainPage(char *name); char *GetWorkingDirectory(); void CreateMainDiabloMenu(); void RenderDiabloSinglePlayerPage(); -void ShowCredts(); +BOOL ShowCredts(); void RenderCharNames(); void FreeMenuItems(); BOOL __cdecl LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data);