MenuScreen_Shell_Credits.cpp 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934
  1. /*
  2. ===========================================================================
  3. Doom 3 BFG Edition GPL Source Code
  4. Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
  5. This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
  6. Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation, either version 3 of the License, or
  9. (at your option) any later version.
  10. Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14. You should have received a copy of the GNU General Public License
  15. along with Doom 3 BFG Edition Source Code. If not, see <http://www.gnu.org/licenses/>.
  16. In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code. If not, please request a copy in writing from id Software at the address below.
  17. If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
  18. ===========================================================================
  19. */
  20. #pragma hdrstop
  21. #include "../../idLib/precompiled.h"
  22. #include "../Game_local.h"
  23. static const int NUM_CREDIT_LINES = 16;
  24. void idMenuScreen_Shell_Credits::SetupCreditList() {
  25. class idRefreshCredits : public idSWFScriptFunction_RefCounted {
  26. public:
  27. idRefreshCredits( idMenuScreen_Shell_Credits * _screen ) :
  28. screen( _screen ) {
  29. }
  30. idSWFScriptVar Call( idSWFScriptObject * thisObject, const idSWFParmList & parms ) {
  31. if ( screen == NULL ) {
  32. return idSWFScriptVar();
  33. }
  34. screen->UpdateCredits();
  35. return idSWFScriptVar();
  36. }
  37. private:
  38. idMenuScreen_Shell_Credits * screen;
  39. };
  40. if ( GetSWFObject() ) {
  41. GetSWFObject()->SetGlobal( "updateCredits", new ( TAG_SWF ) idRefreshCredits( this ) );
  42. }
  43. creditList.Clear();
  44. creditList.Append( creditInfo_t( 3, "DOOM 3 BFG EDITION" ) );
  45. creditList.Append( creditInfo_t() );
  46. creditList.Append( creditInfo_t( 2, "DEVELOPMENT TEAM" ) );
  47. creditList.Append( creditInfo_t() );
  48. creditList.Append( creditInfo_t( 1, "Executive Producer" ) );
  49. creditList.Append( creditInfo_t( 0, "Eric Webb" ) );
  50. creditList.Append( creditInfo_t() );
  51. creditList.Append( creditInfo_t( 1, "Lead Programmer" ) );
  52. creditList.Append( creditInfo_t( 0, "Brian Harris" ) );
  53. creditList.Append( creditInfo_t() );
  54. creditList.Append( creditInfo_t( 1, "Lead Designer" ) );
  55. creditList.Append( creditInfo_t( 0, "Jerry Keehan" ) );
  56. creditList.Append( creditInfo_t() );
  57. creditList.Append( creditInfo_t( 1, "Programming" ) );
  58. creditList.Append( creditInfo_t( 0, "Curtis Arink" ) );
  59. creditList.Append( creditInfo_t( 0, "Robert Duffy" ) );
  60. creditList.Append( creditInfo_t( 0, "Jeff Farrand" ) );
  61. creditList.Append( creditInfo_t( 0, "Ryan Gerleve" ) );
  62. creditList.Append( creditInfo_t( 0, "Billy Khan" ) );
  63. creditList.Append( creditInfo_t( 0, "Gloria Kennickell" ) );
  64. creditList.Append( creditInfo_t( 0, "Mike Maynard" ) );
  65. creditList.Append( creditInfo_t( 0, "John Roberts" ) );
  66. creditList.Append( creditInfo_t( 0, "Steven Serafin" ) );
  67. creditList.Append( creditInfo_t( 0, "Jan Paul Van Waveren" ) );
  68. creditList.Append( creditInfo_t() );
  69. creditList.Append( creditInfo_t( 1, "Design" ) );
  70. creditList.Append( creditInfo_t( 0, "Steve Rescoe" ) );
  71. creditList.Append( creditInfo_t( 0, "Chris Voss" ) );
  72. creditList.Append( creditInfo_t( 0, "David Vargo" ) );
  73. creditList.Append( creditInfo_t() );
  74. creditList.Append( creditInfo_t( 1, "Art" ) );
  75. creditList.Append( creditInfo_t( 0, "Kevin Cloud" ) );
  76. creditList.Append( creditInfo_t( 0, "Andy Chang" ) );
  77. creditList.Append( creditInfo_t( 0, "Pat Duffy" ) );
  78. creditList.Append( creditInfo_t() );
  79. creditList.Append( creditInfo_t( 1, "Audio" ) );
  80. creditList.Append( creditInfo_t( 0, "Christian Antkow" ) );
  81. creditList.Append( creditInfo_t( 0, "Chris Hite" ) );
  82. creditList.Append( creditInfo_t() );
  83. creditList.Append( creditInfo_t( 1, "Additional Support" ) );
  84. creditList.Append( creditInfo_t( 0, "Roger Berrones" ) );
  85. creditList.Append( creditInfo_t( 0, "Brad Bramlett" ) );
  86. creditList.Append( creditInfo_t( 0, "John Casey" ) );
  87. creditList.Append( creditInfo_t( 0, "Jeremy Cook" ) );
  88. creditList.Append( creditInfo_t( 0, "Chris Hays" ) );
  89. creditList.Append( creditInfo_t( 0, "Matt Hooper" ) );
  90. creditList.Append( creditInfo_t( 0, "Danny Keys" ) );
  91. creditList.Append( creditInfo_t( 0, "Jason Kim" ) );
  92. creditList.Append( creditInfo_t( 0, "Brian Kowalczyk" ) );
  93. creditList.Append( creditInfo_t( 0, "Dustin Land" ) );
  94. creditList.Append( creditInfo_t( 0, "Stephane Lebrun" ) );
  95. creditList.Append( creditInfo_t( 0, "Matt Nelson" ) );
  96. creditList.Append( creditInfo_t( 0, "John Pollard" ) );
  97. creditList.Append( creditInfo_t( 0, "Alan Rogers" ) );
  98. creditList.Append( creditInfo_t( 0, "Jah Raphael" ) );
  99. creditList.Append( creditInfo_t( 0, "Jarrod Showers" ) );
  100. creditList.Append( creditInfo_t( 0, "Shale Williams" ) );
  101. creditList.Append( creditInfo_t() );
  102. creditList.Append( creditInfo_t( 1, "Studio Director" ) );
  103. creditList.Append( creditInfo_t( 0, "Tim Willits" ) );
  104. creditList.Append( creditInfo_t() );
  105. creditList.Append( creditInfo_t( 1, "Studio President" ) );
  106. creditList.Append( creditInfo_t( 0, "Todd Hollenshead" ) );
  107. creditList.Append( creditInfo_t() );
  108. creditList.Append( creditInfo_t( 1, "Technical Director" ) );
  109. creditList.Append( creditInfo_t( 0, "John Carmack" ) );
  110. creditList.Append( creditInfo_t() );
  111. creditList.Append( creditInfo_t( 1, "Human Resources" ) );
  112. creditList.Append( creditInfo_t( 0, "Carrie Barcroft" ) );
  113. creditList.Append( creditInfo_t() );
  114. creditList.Append( creditInfo_t( 1, "id Mom" ) );
  115. creditList.Append( creditInfo_t( 0, "Donna Jackson" ) );
  116. creditList.Append( creditInfo_t() );
  117. creditList.Append( creditInfo_t( 1, "id Software IT" ) );
  118. creditList.Append( creditInfo_t( 0, "Duncan Welch" ) );
  119. creditList.Append( creditInfo_t( 0, "Michael Cave" ) );
  120. creditList.Append( creditInfo_t( 0, "Josh Shoemate" ) );
  121. creditList.Append( creditInfo_t( 0, "Michael Musick" ) );
  122. creditList.Append( creditInfo_t( 0, "Alex Brandt" ) );
  123. creditList.Append( creditInfo_t() );
  124. creditList.Append( creditInfo_t( 3, "DOOM 3 DEVELOPED BY" ) );
  125. creditList.Append( creditInfo_t() );
  126. creditList.Append( creditInfo_t( 2, "id Software" ) );
  127. creditList.Append( creditInfo_t() );
  128. creditList.Append( creditInfo_t( 1, "Technical Director " ) );
  129. creditList.Append( creditInfo_t( 0, "John Carmack" ) );
  130. creditList.Append( creditInfo_t() );
  131. creditList.Append( creditInfo_t( 1, "Lead Programmer" ) );
  132. creditList.Append( creditInfo_t( 0, "Robert A. Duffy" ) );
  133. creditList.Append( creditInfo_t() );
  134. creditList.Append( creditInfo_t( 1, "Lead Designer" ) );
  135. creditList.Append( creditInfo_t( 0, "Tim Willits" ) );
  136. creditList.Append( creditInfo_t() );
  137. creditList.Append( creditInfo_t( 1, "Lead Artist" ) );
  138. creditList.Append( creditInfo_t( 0, "Kenneth Scott" ) );
  139. creditList.Append( creditInfo_t() );
  140. creditList.Append( creditInfo_t( 1, "Animation" ) );
  141. creditList.Append( creditInfo_t( 0, "James Houska" ) );
  142. creditList.Append( creditInfo_t( 0, "Fredrik Nilsson" ) );
  143. creditList.Append( creditInfo_t( 0, "Eric Webb" ) );
  144. creditList.Append( creditInfo_t() );
  145. creditList.Append( creditInfo_t( 1, "Art" ) );
  146. creditList.Append( creditInfo_t( 0, "Adrian Carmack" ) );
  147. creditList.Append( creditInfo_t( 0, "Andy Chang" ) );
  148. creditList.Append( creditInfo_t( 0, "Kevin Cloud" ) );
  149. creditList.Append( creditInfo_t( 0, "Seneca Menard" ) );
  150. creditList.Append( creditInfo_t( 0, "Patrick Thomas" ) );
  151. creditList.Append( creditInfo_t() );
  152. creditList.Append( creditInfo_t( 1, "Design" ) );
  153. creditList.Append( creditInfo_t( 0, "Mal Blackwell" ) );
  154. creditList.Append( creditInfo_t( 0, "Matt Hooper" ) );
  155. creditList.Append( creditInfo_t( 0, "Jerry Keehan" ) );
  156. creditList.Append( creditInfo_t( 0, "Steve Rescoe" ) );
  157. creditList.Append( creditInfo_t() );
  158. creditList.Append( creditInfo_t( 1, "UI Artist" ) );
  159. creditList.Append( creditInfo_t( 0, "Pat Duffy" ) );
  160. creditList.Append( creditInfo_t() );
  161. creditList.Append( creditInfo_t( 1, "Programming" ) );
  162. creditList.Append( creditInfo_t( 0, "Timothee Besset" ) );
  163. creditList.Append( creditInfo_t( 0, "Jim Dose" ) );
  164. creditList.Append( creditInfo_t( 0, "Jan Paul van Waveren" ) );
  165. creditList.Append( creditInfo_t( 0, "Jonathan Wright" ) );
  166. creditList.Append( creditInfo_t( 0, "Brian Harris" ) );
  167. creditList.Append( creditInfo_t() );
  168. creditList.Append( creditInfo_t( 1, "Sound Design " ) );
  169. creditList.Append( creditInfo_t( 0, "Christian Antkow" ) );
  170. creditList.Append( creditInfo_t() );
  171. creditList.Append( creditInfo_t( 1, "Dir. Business Development" ) );
  172. creditList.Append( creditInfo_t( 0, "Marty Stratton" ) );
  173. creditList.Append( creditInfo_t() );
  174. creditList.Append( creditInfo_t( 1, "Development Assistant" ) );
  175. creditList.Append( creditInfo_t( 0, "Eric Webb" ) );
  176. creditList.Append( creditInfo_t() );
  177. creditList.Append( creditInfo_t( 2, "3rd PARTY" ) );
  178. creditList.Append( creditInfo_t() );
  179. creditList.Append( creditInfo_t( 1, "DOOM 3: Ressurection of Evil Developed by" ) );
  180. creditList.Append( creditInfo_t( 0, "Nerve Software" ) );
  181. creditList.Append( creditInfo_t() );
  182. creditList.Append( creditInfo_t( 1, "Additional Sound Design" ) );
  183. creditList.Append( creditInfo_t( 0, "Ed Lima" ) );
  184. creditList.Append( creditInfo_t( 0, "Danetracks, Inc." ) );
  185. creditList.Append( creditInfo_t( 0, "Defacto Sound" ) );
  186. creditList.Append( creditInfo_t() );
  187. creditList.Append( creditInfo_t( 1, "Theme for DOOM 3 Produced by" ) );
  188. creditList.Append( creditInfo_t( 0, "Chris Vrenna" ) );
  189. creditList.Append( creditInfo_t() );
  190. creditList.Append( creditInfo_t( 1, "Theme for DOOM 3 Composed by" ) );
  191. creditList.Append( creditInfo_t( 0, "Clint Walsh" ) );
  192. creditList.Append( creditInfo_t() );
  193. creditList.Append( creditInfo_t( 1, "Additional Story and Dialog" ) );
  194. creditList.Append( creditInfo_t( 0, "Matthew J. Costello" ) );
  195. creditList.Append( creditInfo_t() );
  196. creditList.Append( creditInfo_t( 1, "Casting and Voice Direction" ) );
  197. creditList.Append( creditInfo_t( 0, "Margaret Tang - Womb Music" ) );
  198. creditList.Append( creditInfo_t() );
  199. creditList.Append( creditInfo_t( 1, "Voice Editorial and Post" ) );
  200. creditList.Append( creditInfo_t( 0, "Rik Schaffer - Womb Music" ) );
  201. creditList.Append( creditInfo_t() );
  202. creditList.Append( creditInfo_t( 1, "Voice Recording" ) );
  203. creditList.Append( creditInfo_t( 0, "Womb Music" ) );
  204. creditList.Append( creditInfo_t() );
  205. creditList.Append( creditInfo_t( 1, "Voice Performers" ) );
  206. creditList.Append( creditInfo_t( 0, "Paul Eiding" ) );
  207. creditList.Append( creditInfo_t( 0, "Jim Cummings" ) );
  208. creditList.Append( creditInfo_t( 0, "Liam O'Brien" ) );
  209. creditList.Append( creditInfo_t( 0, "Nicholas Guest" ) );
  210. creditList.Append( creditInfo_t( 0, "Vanessa Marshall" ) );
  211. creditList.Append( creditInfo_t( 0, "Neill Ross" ) );
  212. creditList.Append( creditInfo_t( 0, "Phillip Clarke" ) );
  213. creditList.Append( creditInfo_t( 0, "Andy Chanley" ) );
  214. creditList.Append( creditInfo_t( 0, "Charles Dennis" ) );
  215. creditList.Append( creditInfo_t( 0, "Grey Delisle" ) );
  216. creditList.Append( creditInfo_t( 0, "Jennifer Hale" ) );
  217. creditList.Append( creditInfo_t( 0, "Grant Albrecht" ) );
  218. creditList.Append( creditInfo_t( 0, "Dee Baker" ) );
  219. creditList.Append( creditInfo_t( 0, "Michael Bell" ) );
  220. creditList.Append( creditInfo_t( 0, "Steve Blum" ) );
  221. creditList.Append( creditInfo_t( 0, "S. Scott Bullock" ) );
  222. creditList.Append( creditInfo_t( 0, "Cam Clarke" ) );
  223. creditList.Append( creditInfo_t( 0, "Robin Atkin Downes" ) );
  224. creditList.Append( creditInfo_t( 0, "Keith Ferguson" ) );
  225. creditList.Append( creditInfo_t( 0, "Jay Gordon" ) );
  226. creditList.Append( creditInfo_t( 0, "Michael Gough" ) );
  227. creditList.Append( creditInfo_t( 0, "Bill Harper" ) );
  228. creditList.Append( creditInfo_t( 0, "Nick Jameson" ) );
  229. creditList.Append( creditInfo_t( 0, "David Kaye" ) );
  230. creditList.Append( creditInfo_t( 0, "Phil La Marr" ) );
  231. creditList.Append( creditInfo_t( 0, "Scott Menville" ) );
  232. creditList.Append( creditInfo_t( 0, "Jim Meskimen" ) );
  233. creditList.Append( creditInfo_t( 0, "Matt Morton" ) );
  234. creditList.Append( creditInfo_t( 0, "Daran Norris" ) );
  235. creditList.Append( creditInfo_t( 0, "Rob Paulsen" ) );
  236. creditList.Append( creditInfo_t( 0, "Phil Proctor" ) );
  237. creditList.Append( creditInfo_t( 0, "Rino Romoano" ) );
  238. creditList.Append( creditInfo_t( 0, "Andre Sogliuzzo" ) );
  239. creditList.Append( creditInfo_t( 0, "Jim Ward" ) );
  240. creditList.Append( creditInfo_t( 0, "Wally Wingert" ) );
  241. creditList.Append( creditInfo_t( 0, "Edward Yin" ) );
  242. creditList.Append( creditInfo_t( 0, "Keone Young" ) );
  243. creditList.Append( creditInfo_t( 0, "Ryun Yu" ) );
  244. creditList.Append( creditInfo_t() );
  245. creditList.Append( creditInfo_t( 1, "Additional User Interface" ) );
  246. creditList.Append( creditInfo_t( 0, "Double-Action Design" ) );
  247. creditList.Append( creditInfo_t() );
  248. creditList.Append( creditInfo_t( 1, "Motion Capture Services" ) );
  249. creditList.Append( creditInfo_t( 0, "Janimation" ) );
  250. creditList.Append( creditInfo_t() );
  251. creditList.Append( creditInfo_t( 1, "UAC Promotional Videos" ) );
  252. creditList.Append( creditInfo_t( 0, "Six Foot Studios" ) );
  253. creditList.Append( creditInfo_t() );
  254. creditList.Append( creditInfo_t( 1, "Additional Multiplayer Design" ) );
  255. creditList.Append( creditInfo_t( 0, "Splash Damage, Ltd." ) );
  256. creditList.Append( creditInfo_t() );
  257. creditList.Append( creditInfo_t( 1, "Additional Programming" ) );
  258. creditList.Append( creditInfo_t( 0, "Graeme Devine" ) );
  259. creditList.Append( creditInfo_t() );
  260. creditList.Append( creditInfo_t( 1, "Localization Services" ) );
  261. creditList.Append( creditInfo_t( 0, "Synthesis" ) );
  262. creditList.Append( creditInfo_t() );
  263. creditList.Append( creditInfo_t() );
  264. creditList.Append( creditInfo_t( 3, "BETHESDA SOFTWORKS" ) );
  265. creditList.Append( creditInfo_t() );
  266. creditList.Append( creditInfo_t( 1, "Senior Producer" ) );
  267. creditList.Append( creditInfo_t( 0, "Laffy Taylor" ) );
  268. creditList.Append( creditInfo_t() );
  269. creditList.Append( creditInfo_t( 1, "Sr. Producer, Submissions" ) );
  270. creditList.Append( creditInfo_t( 0, "Timothy Beggs" ) );
  271. creditList.Append( creditInfo_t() );
  272. creditList.Append( creditInfo_t( 1, "VP, Product Development" ) );
  273. creditList.Append( creditInfo_t( 0, "Todd Vaughn" ) );
  274. creditList.Append( creditInfo_t() );
  275. creditList.Append( creditInfo_t( 1, "External Technical Director" ) );
  276. creditList.Append( creditInfo_t( 0, "Jonathan Williams" ) );
  277. creditList.Append( creditInfo_t() );
  278. creditList.Append( creditInfo_t( 1, "President" ) );
  279. creditList.Append( creditInfo_t( 0, "Vlatko Andonov" ) );
  280. creditList.Append( creditInfo_t() );
  281. creditList.Append( creditInfo_t( 1, "VP, Public Relations and Marketing" ) );
  282. creditList.Append( creditInfo_t( 0, "Pete Hines" ) );
  283. creditList.Append( creditInfo_t() );
  284. creditList.Append( creditInfo_t( 1, "Director of Global Marketing" ) );
  285. creditList.Append( creditInfo_t( 0, "Steve Perkins" ) );
  286. creditList.Append( creditInfo_t() );
  287. creditList.Append( creditInfo_t( 1, "Director of Global PR" ) );
  288. creditList.Append( creditInfo_t( 0, "Tracey Thompson" ) );
  289. creditList.Append( creditInfo_t() );
  290. creditList.Append( creditInfo_t( 1, "Senior Brand Manager" ) );
  291. creditList.Append( creditInfo_t( 0, "Rakhi Gupta" ) );
  292. creditList.Append( creditInfo_t() );
  293. creditList.Append( creditInfo_t( 1, "Associate Brand Manager" ) );
  294. creditList.Append( creditInfo_t( 0, "David Clayman" ) );
  295. creditList.Append( creditInfo_t() );
  296. creditList.Append( creditInfo_t( 1, "Event and Trade Show Director" ) );
  297. creditList.Append( creditInfo_t( 0, "Henry Mobley" ) );
  298. creditList.Append( creditInfo_t() );
  299. creditList.Append( creditInfo_t( 1, "Senior Community Manager" ) );
  300. creditList.Append( creditInfo_t( 0, "Matthew Grandstaff" ) );
  301. creditList.Append( creditInfo_t() );
  302. creditList.Append( creditInfo_t( 1, "Community Manager" ) );
  303. creditList.Append( creditInfo_t( 0, "Nick Breckon" ) );
  304. creditList.Append( creditInfo_t() );
  305. creditList.Append( creditInfo_t( 1, "Senior PR Coordinator" ) );
  306. creditList.Append( creditInfo_t( 0, "Angela Ramsey-Chapman" ) );
  307. creditList.Append( creditInfo_t() );
  308. creditList.Append( creditInfo_t( 1, "Marketing Assistant" ) );
  309. creditList.Append( creditInfo_t( 0, "Jenny McWhorter" ) );
  310. creditList.Append( creditInfo_t() );
  311. creditList.Append( creditInfo_t( 1, "Video Production" ) );
  312. creditList.Append( creditInfo_t( 0, "Matt Killmon" ) );
  313. creditList.Append( creditInfo_t( 0, "Sal Goldenburg" ) );
  314. creditList.Append( creditInfo_t() );
  315. creditList.Append( creditInfo_t( 1, "Graphic Design" ) );
  316. creditList.Append( creditInfo_t( 0, "Michael Wagner" ) );
  317. creditList.Append( creditInfo_t( 0, "Lindsay Westcott" ) );
  318. creditList.Append( creditInfo_t() );
  319. creditList.Append( creditInfo_t( 1, "VP, Sales" ) );
  320. creditList.Append( creditInfo_t( 0, "Ron Seger" ) );
  321. creditList.Append( creditInfo_t() );
  322. creditList.Append( creditInfo_t( 1, "Operations Director" ) );
  323. creditList.Append( creditInfo_t( 0, "Todd Curtis" ) );
  324. creditList.Append( creditInfo_t() );
  325. creditList.Append( creditInfo_t( 1, "Sales and Operations Manager" ) );
  326. creditList.Append( creditInfo_t( 0, "Jill Bralove" ) );
  327. creditList.Append( creditInfo_t() );
  328. creditList.Append( creditInfo_t( 1, "Sales Account Manager" ) );
  329. creditList.Append( creditInfo_t( 0, "Michelle Ferrara" ) );
  330. creditList.Append( creditInfo_t() );
  331. creditList.Append( creditInfo_t( 1, "Regional Sales Manager" ) );
  332. creditList.Append( creditInfo_t( 0, "Michael Donnellan" ) );
  333. creditList.Append( creditInfo_t() );
  334. creditList.Append( creditInfo_t( 1, "Channel Marketing Manager" ) );
  335. creditList.Append( creditInfo_t( 0, "Michelle Burgess" ) );
  336. creditList.Append( creditInfo_t() );
  337. creditList.Append( creditInfo_t( 1, "Sales Assistants" ) );
  338. creditList.Append( creditInfo_t( 0, "Sara Simpson" ) );
  339. creditList.Append( creditInfo_t( 0, "Jason Snead" ) );
  340. creditList.Append( creditInfo_t( 0, "Jessica Williams" ) );
  341. creditList.Append( creditInfo_t() );
  342. creditList.Append( creditInfo_t( 1, "Operations Assistant" ) );
  343. creditList.Append( creditInfo_t( 0, "Scott Mills" ) );
  344. creditList.Append( creditInfo_t() );
  345. creditList.Append( creditInfo_t( 1, "Director of Quality Assurance" ) );
  346. creditList.Append( creditInfo_t( 0, "Darren Manes" ) );
  347. creditList.Append( creditInfo_t() );
  348. creditList.Append( creditInfo_t( 1, "Quality Assurance Manager" ) );
  349. creditList.Append( creditInfo_t( 0, "Rob Gray" ) );
  350. creditList.Append( creditInfo_t() );
  351. creditList.Append( creditInfo_t( 1, "Quality Assurance Leads" ) );
  352. creditList.Append( creditInfo_t( 0, "Terry Dunn" ) );
  353. creditList.Append( creditInfo_t( 0, "Matt Weil" ) );
  354. creditList.Append( creditInfo_t() );
  355. creditList.Append( creditInfo_t( 1, "Quality Assurance" ) );
  356. creditList.Append( creditInfo_t( 0, "Dan Silva" ) );
  357. creditList.Append( creditInfo_t( 0, "Alan Webb" ) );
  358. creditList.Append( creditInfo_t( 0, "Cory Andrews" ) );
  359. creditList.Append( creditInfo_t( 0, "George Churchill" ) );
  360. creditList.Append( creditInfo_t( 0, "Jonathan DeVriendt" ) );
  361. creditList.Append( creditInfo_t( 0, "Spencer Gottlieb" ) );
  362. creditList.Append( creditInfo_t( 0, "Gary Powell" ) );
  363. creditList.Append( creditInfo_t( 0, "Samuel Papke" ) );
  364. creditList.Append( creditInfo_t( 0, "Amanda Sheehan" ) );
  365. creditList.Append( creditInfo_t( 0, "Philip Spangrud" ) );
  366. creditList.Append( creditInfo_t( 0, "Larry Waldman" ) );
  367. creditList.Append( creditInfo_t( 0, "Donald Anderson" ) );
  368. creditList.Append( creditInfo_t( 0, "James Audet" ) );
  369. creditList.Append( creditInfo_t( 0, "Hunter Calvert" ) );
  370. creditList.Append( creditInfo_t( 0, "Max Cameron" ) );
  371. creditList.Append( creditInfo_t( 0, "Donald Harris" ) );
  372. creditList.Append( creditInfo_t( 0, "Peter Garcia" ) );
  373. creditList.Append( creditInfo_t( 0, "Joseph Lopatta" ) );
  374. creditList.Append( creditInfo_t( 0, "Scott LoPresti" ) );
  375. creditList.Append( creditInfo_t( 0, "Collin Mackett" ) );
  376. creditList.Append( creditInfo_t( 0, "Gerard Nagy" ) );
  377. creditList.Append( creditInfo_t( 0, "William Pegus" ) );
  378. creditList.Append( creditInfo_t( 0, "Angela Rupinen" ) );
  379. creditList.Append( creditInfo_t( 0, "Gabriel Scaringello" ) );
  380. creditList.Append( creditInfo_t( 0, "Drew Slotkin" ) );
  381. creditList.Append( creditInfo_t( 0, "Kyle Wallace" ) );
  382. creditList.Append( creditInfo_t( 0, "Patrick Walsh" ) );
  383. creditList.Append( creditInfo_t( 0, "John Welkner" ) );
  384. creditList.Append( creditInfo_t( 0, "Jason Wilkin" ) );
  385. creditList.Append( creditInfo_t( 0, "John Benoit" ) );
  386. creditList.Append( creditInfo_t( 0, "Jacob Clayman" ) );
  387. creditList.Append( creditInfo_t( 0, "Colin McInerney" ) );
  388. creditList.Append( creditInfo_t() );
  389. creditList.Append( creditInfo_t( 1, "Additional QA" ) );
  390. creditList.Append( creditInfo_t( 0, "James Costantino" ) );
  391. creditList.Append( creditInfo_t( 0, "Chris Krietz" ) );
  392. creditList.Append( creditInfo_t( 0, "Joseph Mueller" ) );
  393. creditList.Append( creditInfo_t( 0, "Andrew Scharf" ) );
  394. creditList.Append( creditInfo_t( 0, "Jen Tonon" ) );
  395. creditList.Append( creditInfo_t( 0, "Justin McSweeney" ) );
  396. creditList.Append( creditInfo_t( 0, "Sean Palomino" ) );
  397. creditList.Append( creditInfo_t( 0, "Erica Stead" ) );
  398. creditList.Append( creditInfo_t( 0, "Wil Cookman" ) );
  399. creditList.Append( creditInfo_t( 0, "Garrett Hohl" ) );
  400. creditList.Append( creditInfo_t( 0, "Tim Hartgrave" ) );
  401. creditList.Append( creditInfo_t( 0, "Heath Hollenshead" ) );
  402. creditList.Append( creditInfo_t( 0, "Brandon Korbel" ) );
  403. creditList.Append( creditInfo_t( 0, "Daniel Korecki" ) );
  404. creditList.Append( creditInfo_t( 0, "Max Morrison" ) );
  405. creditList.Append( creditInfo_t( 0, "Doug Ransley" ) );
  406. creditList.Append( creditInfo_t( 0, "Mauricio Rivera" ) );
  407. creditList.Append( creditInfo_t( 0, "Aaron Walsh" ) );
  408. creditList.Append( creditInfo_t( 0, "Daniel Wathen" ) );
  409. creditList.Append( creditInfo_t() );
  410. creditList.Append( creditInfo_t( 1, "Special Thanks" ) );
  411. creditList.Append( creditInfo_t( 0, "Jason Bergman" ) );
  412. creditList.Append( creditInfo_t( 0, "Darren Chukitus" ) );
  413. creditList.Append( creditInfo_t( 0, "Matt Dickenson" ) );
  414. creditList.Append( creditInfo_t( 0, "Will Noble" ) );
  415. creditList.Append( creditInfo_t() );
  416. creditList.Append( creditInfo_t() );
  417. creditList.Append( creditInfo_t( 3, "ZENIMAX MEDIA" ) );
  418. creditList.Append( creditInfo_t() );
  419. creditList.Append( creditInfo_t( 1, "Chairman & CEO" ) );
  420. creditList.Append( creditInfo_t( 0, "Robert Altman" ) );
  421. creditList.Append( creditInfo_t() );
  422. creditList.Append( creditInfo_t( 1, "President" ) );
  423. creditList.Append( creditInfo_t( 0, "Ernie Del" ) );
  424. creditList.Append( creditInfo_t() );
  425. creditList.Append( creditInfo_t( 1, "EVP & COO" ) );
  426. creditList.Append( creditInfo_t( 0, "Jamie Leder" ) );
  427. creditList.Append( creditInfo_t() );
  428. creditList.Append( creditInfo_t( 1, "EVP & CFO" ) );
  429. creditList.Append( creditInfo_t( 0, "Cindy Tallent" ) );
  430. creditList.Append( creditInfo_t() );
  431. creditList.Append( creditInfo_t( 1, "EVP Legal & Secretary" ) );
  432. creditList.Append( creditInfo_t( 0, "Grif Lesher" ) );
  433. creditList.Append( creditInfo_t() );
  434. creditList.Append( creditInfo_t( 1, "SVP Finance & Controller" ) );
  435. creditList.Append( creditInfo_t( 0, "Denise Kidd" ) );
  436. creditList.Append( creditInfo_t() );
  437. creditList.Append( creditInfo_t( 1, "Legal Lead" ) );
  438. creditList.Append( creditInfo_t( 0, "Joshua Gillespie" ) );
  439. creditList.Append( creditInfo_t() );
  440. creditList.Append( creditInfo_t( 1, "Legal" ) );
  441. creditList.Append( creditInfo_t( 0, "Diana Bender" ) );
  442. creditList.Append( creditInfo_t( 0, "Adam Carter" ) );
  443. creditList.Append( creditInfo_t( 0, "Candice Garner-Groves" ) );
  444. creditList.Append( creditInfo_t( 0, "Marcia Mitnick" ) );
  445. creditList.Append( creditInfo_t( 0, "Amy Yeung" ) );
  446. creditList.Append( creditInfo_t() );
  447. creditList.Append( creditInfo_t( 1, "VP, Information Technology" ) );
  448. creditList.Append( creditInfo_t( 0, "Steve Bloom" ) );
  449. creditList.Append( creditInfo_t() );
  450. creditList.Append( creditInfo_t( 1, "Information Technology" ) );
  451. creditList.Append( creditInfo_t( 0, "Rob Havlovick" ) );
  452. creditList.Append( creditInfo_t( 0, "Nicholas Lea" ) );
  453. creditList.Append( creditInfo_t( 0, "Drew McCartney" ) );
  454. creditList.Append( creditInfo_t( 0, "Josh Mosby" ) );
  455. creditList.Append( creditInfo_t( 0, "Joseph Owens" ) );
  456. creditList.Append( creditInfo_t( 0, "Paul Tuttle" ) );
  457. creditList.Append( creditInfo_t( 0, "Keelian Wardle" ) );
  458. creditList.Append( creditInfo_t() );
  459. creditList.Append( creditInfo_t( 1, "Director of Global HR" ) );
  460. creditList.Append( creditInfo_t( 0, "Tammy Boyd-Shumway" ) );
  461. creditList.Append( creditInfo_t() );
  462. creditList.Append( creditInfo_t( 1, "Human Resources" ) );
  463. creditList.Append( creditInfo_t( 0, "Michelle Cool" ) );
  464. creditList.Append( creditInfo_t( 0, "Andrea Glinski" ) );
  465. creditList.Append( creditInfo_t( 0, "Katrina Lang" ) );
  466. creditList.Append( creditInfo_t( 0, "Valery Ridore" ) );
  467. creditList.Append( creditInfo_t() );
  468. creditList.Append( creditInfo_t( 1, "Administration" ) );
  469. creditList.Append( creditInfo_t( 0, "Melissa Ayala" ) );
  470. creditList.Append( creditInfo_t( 0, "Brittany Bezawada-Joseph" ) );
  471. creditList.Append( creditInfo_t( 0, "Rosanna Campanile " ) );
  472. creditList.Append( creditInfo_t( 0, "Katherine Edwards" ) );
  473. creditList.Append( creditInfo_t( 0, "Douglas Fredrick " ) );
  474. creditList.Append( creditInfo_t( 0, "Jon Freund" ) );
  475. creditList.Append( creditInfo_t( 0, "Ken Garcia " ) );
  476. creditList.Append( creditInfo_t( 0, "Gerard Garnica" ) );
  477. creditList.Append( creditInfo_t( 0, "Betty Kouatelay" ) );
  478. creditList.Append( creditInfo_t( 0, "Ho Joong Lee" ) );
  479. creditList.Append( creditInfo_t( 0, "Barb Manning" ) );
  480. creditList.Append( creditInfo_t( 0, "Stephane Marquis" ) );
  481. creditList.Append( creditInfo_t( 0, "Michael Masciola" ) );
  482. creditList.Append( creditInfo_t( 0, "Tanuja Mistry" ) );
  483. creditList.Append( creditInfo_t( 0, "Rissa Monzano" ) );
  484. creditList.Append( creditInfo_t( 0, "Patrick Nolan " ) );
  485. creditList.Append( creditInfo_t( 0, "Patti Pulupa" ) );
  486. creditList.Append( creditInfo_t( 0, "Dave Rasmussen " ) );
  487. creditList.Append( creditInfo_t( 0, "Heather Spurrier" ) );
  488. creditList.Append( creditInfo_t( 0, "Claudia Umana" ) );
  489. creditList.Append( creditInfo_t( 0, "Melissa Washabaugh" ) );
  490. creditList.Append( creditInfo_t( 0, "Eric Weis" ) );
  491. creditList.Append( creditInfo_t() );
  492. creditList.Append( creditInfo_t( 1, "Administrative Assistants" ) );
  493. creditList.Append( creditInfo_t( 0, "Bernice Guice" ) );
  494. creditList.Append( creditInfo_t( 0, "Paula Kasey" ) );
  495. creditList.Append( creditInfo_t( 0, "Shana Reed" ) );
  496. creditList.Append( creditInfo_t() );
  497. creditList.Append( creditInfo_t( 1, "Executive Chef" ) );
  498. creditList.Append( creditInfo_t( 0, "Kenny McDonald" ) );
  499. creditList.Append( creditInfo_t() );
  500. creditList.Append( creditInfo_t( 3, "ZENIMAX EUROPE" ) );
  501. creditList.Append( creditInfo_t() );
  502. creditList.Append( creditInfo_t( 1, "European Managing Director" ) );
  503. creditList.Append( creditInfo_t( 0, "Sean Brennan" ) );
  504. creditList.Append( creditInfo_t() );
  505. creditList.Append( creditInfo_t( 1, "European Marketing & PR Director" ) );
  506. creditList.Append( creditInfo_t( 0, "Sarah Seaby" ) );
  507. creditList.Append( creditInfo_t() );
  508. creditList.Append( creditInfo_t( 1, "European Sales Director" ) );
  509. creditList.Append( creditInfo_t( 0, "Paul Oughton" ) );
  510. creditList.Append( creditInfo_t() );
  511. creditList.Append( creditInfo_t( 1, "Sales Director" ) );
  512. creditList.Append( creditInfo_t( 0, "Greg Baverstock" ) );
  513. creditList.Append( creditInfo_t() );
  514. creditList.Append( creditInfo_t( 1, "Finance Director" ) );
  515. creditList.Append( creditInfo_t( 0, "Robert Ford" ) );
  516. creditList.Append( creditInfo_t() );
  517. creditList.Append( creditInfo_t( 1, "European Brand Marketing Manager" ) );
  518. creditList.Append( creditInfo_t( 0, "Thach Quach" ) );
  519. creditList.Append( creditInfo_t() );
  520. creditList.Append( creditInfo_t( 1, "European Brand Marketing Manager" ) );
  521. creditList.Append( creditInfo_t( 0, "Alex Price" ) );
  522. creditList.Append( creditInfo_t() );
  523. creditList.Append( creditInfo_t( 1, "European PR Manager" ) );
  524. creditList.Append( creditInfo_t( 0, "Alistair Hatch" ) );
  525. creditList.Append( creditInfo_t() );
  526. creditList.Append( creditInfo_t( 1, "European Assistant PR Manager" ) );
  527. creditList.Append( creditInfo_t( 0, "Nicholas Heller" ) );
  528. creditList.Append( creditInfo_t() );
  529. creditList.Append( creditInfo_t( 1, "International Marketing Manager" ) );
  530. creditList.Append( creditInfo_t( 0, "Rosemarie Dalton" ) );
  531. creditList.Append( creditInfo_t() );
  532. creditList.Append( creditInfo_t( 1, "Manager Trade Shows/Events" ) );
  533. creditList.Append( creditInfo_t( 0, "Gareth Swann" ) );
  534. creditList.Append( creditInfo_t() );
  535. creditList.Append( creditInfo_t( 1, "UK Marketing Manager" ) );
  536. creditList.Append( creditInfo_t( 0, "Gregory Weller" ) );
  537. creditList.Append( creditInfo_t() );
  538. creditList.Append( creditInfo_t( 1, "UK Sales Manager" ) );
  539. creditList.Append( creditInfo_t( 0, "Gethyn Deakins" ) );
  540. creditList.Append( creditInfo_t() );
  541. creditList.Append( creditInfo_t( 1, "Creative Services Artist" ) );
  542. creditList.Append( creditInfo_t( 0, "Morgan Gibbons" ) );
  543. creditList.Append( creditInfo_t() );
  544. creditList.Append( creditInfo_t( 1, "Legal Counsel" ) );
  545. creditList.Append( creditInfo_t( 0, "Adam Carter" ) );
  546. creditList.Append( creditInfo_t() );
  547. creditList.Append( creditInfo_t( 1, "Localisation Director" ) );
  548. creditList.Append( creditInfo_t( 0, "Harald Simon" ) );
  549. creditList.Append( creditInfo_t() );
  550. creditList.Append( creditInfo_t( 1, "Localisation Project Manager" ) );
  551. creditList.Append( creditInfo_t( 0, "Ruth Granados Garcia" ) );
  552. creditList.Append( creditInfo_t() );
  553. creditList.Append( creditInfo_t( 1, "Sales Administrator" ) );
  554. creditList.Append( creditInfo_t( 0, "Heather Clarke" ) );
  555. creditList.Append( creditInfo_t() );
  556. creditList.Append( creditInfo_t( 1, "Operations Manager" ) );
  557. creditList.Append( creditInfo_t( 0, "Isabelle Midrouillet" ) );
  558. creditList.Append( creditInfo_t() );
  559. creditList.Append( creditInfo_t( 1, "Operations Coordinator" ) );
  560. creditList.Append( creditInfo_t( 0, "David Gordon" ) );
  561. creditList.Append( creditInfo_t() );
  562. creditList.Append( creditInfo_t( 1, "Financial Controller" ) );
  563. creditList.Append( creditInfo_t( 0, "Paul New" ) );
  564. creditList.Append( creditInfo_t() );
  565. creditList.Append( creditInfo_t( 1, "Accounts Assistant" ) );
  566. creditList.Append( creditInfo_t( 0, "Charlotte Ovens" ) );
  567. creditList.Append( creditInfo_t() );
  568. creditList.Append( creditInfo_t( 1, "Contracts Administrator/Paralegal" ) );
  569. creditList.Append( creditInfo_t( 0, "Katie Brooks" ) );
  570. creditList.Append( creditInfo_t() );
  571. creditList.Append( creditInfo_t( 1, "IT Manager" ) );
  572. creditList.Append( creditInfo_t( 0, "Joseph Owens" ) );
  573. creditList.Append( creditInfo_t() );
  574. creditList.Append( creditInfo_t( 1, "Office Manager" ) );
  575. creditList.Append( creditInfo_t( 0, "Angela Clement" ) );
  576. creditList.Append( creditInfo_t() );
  577. creditList.Append( creditInfo_t( 3, "ZENIMAX FRANCE" ) );
  578. creditList.Append( creditInfo_t() );
  579. creditList.Append( creditInfo_t( 1, "General Manager" ) );
  580. creditList.Append( creditInfo_t( 0, "Julie Chalmette" ) );
  581. creditList.Append( creditInfo_t() );
  582. creditList.Append( creditInfo_t( 1, "Sales Manager" ) );
  583. creditList.Append( creditInfo_t( 0, "Yvan Rault" ) );
  584. creditList.Append( creditInfo_t() );
  585. creditList.Append( creditInfo_t( 1, "Key Account Manager" ) );
  586. creditList.Append( creditInfo_t( 0, "Gaelle Gombert" ) );
  587. creditList.Append( creditInfo_t() );
  588. creditList.Append( creditInfo_t( 1, "Trade Marketing Manager" ) );
  589. creditList.Append( creditInfo_t( 0, "Laurent Chatain" ) );
  590. creditList.Append( creditInfo_t() );
  591. creditList.Append( creditInfo_t( 1, "Marketing Manager" ) );
  592. creditList.Append( creditInfo_t( 0, "Geraldine Mazot" ) );
  593. creditList.Append( creditInfo_t() );
  594. creditList.Append( creditInfo_t( 1, "PR Manager" ) );
  595. creditList.Append( creditInfo_t( 0, "Jerome Firon" ) );
  596. creditList.Append( creditInfo_t() );
  597. creditList.Append( creditInfo_t( 1, "Finance Manager" ) );
  598. creditList.Append( creditInfo_t( 0, "Cecile De Freitas" ) );
  599. creditList.Append( creditInfo_t() );
  600. creditList.Append( creditInfo_t( 1, "Finance Assistant" ) );
  601. creditList.Append( creditInfo_t( 0, "Adeline Nonis" ) );
  602. creditList.Append( creditInfo_t() );
  603. creditList.Append( creditInfo_t( 3, "ZENIMAX GERMANY" ) );
  604. creditList.Append( creditInfo_t() );
  605. creditList.Append( creditInfo_t( 1, "Managing Director" ) );
  606. creditList.Append( creditInfo_t( 0, "Frank Matzke" ) );
  607. creditList.Append( creditInfo_t() );
  608. creditList.Append( creditInfo_t( 1, "Sales Director" ) );
  609. creditList.Append( creditInfo_t( 0, "Thomas Huber" ) );
  610. creditList.Append( creditInfo_t() );
  611. creditList.Append( creditInfo_t( 1, "Head of Marketing & PR" ) );
  612. creditList.Append( creditInfo_t( 0, "Marcel Jung" ) );
  613. creditList.Append( creditInfo_t() );
  614. creditList.Append( creditInfo_t( 1, "Product Marketing Manager" ) );
  615. creditList.Append( creditInfo_t( 0, "Stefan Dettmering" ) );
  616. creditList.Append( creditInfo_t() );
  617. creditList.Append( creditInfo_t( 1, "PR Manager" ) );
  618. creditList.Append( creditInfo_t( 0, "Peter Langhofer" ) );
  619. creditList.Append( creditInfo_t() );
  620. creditList.Append( creditInfo_t( 1, "Trade Marketing Manager" ) );
  621. creditList.Append( creditInfo_t( 0, "Andrea Reuth" ) );
  622. creditList.Append( creditInfo_t() );
  623. creditList.Append( creditInfo_t( 1, "Key Account Manager" ) );
  624. creditList.Append( creditInfo_t( 0, "Juergen Pahl" ) );
  625. creditList.Append( creditInfo_t() );
  626. creditList.Append( creditInfo_t( 1, "Finance Manager" ) );
  627. creditList.Append( creditInfo_t( 0, "Joern Hoehling" ) );
  628. creditList.Append( creditInfo_t() );
  629. creditList.Append( creditInfo_t( 1, "Sales and Office Administrator" ) );
  630. creditList.Append( creditInfo_t( 0, "Christiane Jauss" ) );
  631. creditList.Append( creditInfo_t() );
  632. creditList.Append( creditInfo_t( 3, "ZENIMAX BENELUX" ) );
  633. creditList.Append( creditInfo_t() );
  634. creditList.Append( creditInfo_t( 1, "General Manager" ) );
  635. creditList.Append( creditInfo_t( 0, "Menno Eijck" ) );
  636. creditList.Append( creditInfo_t() );
  637. creditList.Append( creditInfo_t( 1, "Sales Manager" ) );
  638. creditList.Append( creditInfo_t( 0, "Stefan Koppers" ) );
  639. creditList.Append( creditInfo_t() );
  640. creditList.Append( creditInfo_t( 1, "Marketing Manager" ) );
  641. creditList.Append( creditInfo_t( 0, "Jurgen Stirnweis" ) );
  642. creditList.Append( creditInfo_t() );
  643. creditList.Append( creditInfo_t( 1, "PR Manager" ) );
  644. creditList.Append( creditInfo_t( 0, "Maikel van Dijk" ) );
  645. creditList.Append( creditInfo_t() );
  646. creditList.Append( creditInfo_t( 1, "Sales and Marketing Administrator" ) );
  647. creditList.Append( creditInfo_t( 0, "Pam van Griethuysen" ) );
  648. creditList.Append( creditInfo_t() );
  649. creditList.Append( creditInfo_t() );
  650. creditList.Append( creditInfo_t( 3, "ZENIMAX ASIA" ) );
  651. creditList.Append( creditInfo_t() );
  652. creditList.Append( creditInfo_t( 1, "General Manager" ) );
  653. creditList.Append( creditInfo_t( 0, "Tetsu Takahashi" ) );
  654. creditList.Append( creditInfo_t());
  655. creditList.Append( creditInfo_t( 1, "Localization Producer " ) );
  656. creditList.Append( creditInfo_t( 0, "Kei Iwamoto" ) );
  657. creditList.Append( creditInfo_t() );
  658. creditList.Append( creditInfo_t( 1, "Associate Producer " ) );
  659. creditList.Append( creditInfo_t( 0, "Takayuki Tanaka" ) );
  660. creditList.Append( creditInfo_t() );
  661. creditList.Append( creditInfo_t( 1, "Product Manager " ) );
  662. creditList.Append( creditInfo_t( 0, "Seigen Ko" ) );
  663. creditList.Append( creditInfo_t() );
  664. creditList.Append( creditInfo_t( 1, "Localization Programmer" ) );
  665. creditList.Append( creditInfo_t( 0, "Masayuki Nagahashi" ) );
  666. creditList.Append( creditInfo_t() );
  667. creditList.Append( creditInfo_t( 1, "Marketing and PR Manager " ) );
  668. creditList.Append( creditInfo_t( 0, "Eiichi Yaji" ) );
  669. creditList.Append( creditInfo_t() );
  670. creditList.Append( creditInfo_t( 1, "Sales Manager" ) );
  671. creditList.Append( creditInfo_t( 0, "Hiroaki Yanagiguchi" ) );
  672. creditList.Append( creditInfo_t() );
  673. creditList.Append( creditInfo_t( 1, "Office Manager" ) );
  674. creditList.Append( creditInfo_t( 0, "Myongsuk Rim" ) );
  675. creditList.Append( creditInfo_t() );
  676. creditList.Append( creditInfo_t( 1, "Web Director" ) );
  677. creditList.Append( creditInfo_t( 0, "Tanaka Keisuke" ) );
  678. creditList.Append( creditInfo_t( 0, "Kosuke Fujita" ) );
  679. };
  680. /*
  681. ========================
  682. idMenuScreen_Shell_Credits::Initialize
  683. ========================
  684. */
  685. void idMenuScreen_Shell_Credits::Initialize( idMenuHandler * data ) {
  686. idMenuScreen::Initialize( data );
  687. if ( data != NULL ) {
  688. menuGUI = data->GetGUI();
  689. }
  690. SetSpritePath( "menuCredits" );
  691. btnBack = new (TAG_SWF) idMenuWidget_Button();
  692. btnBack->Initialize( data );
  693. btnBack->SetLabel( "#str_02305" );
  694. btnBack->SetSpritePath( GetSpritePath(), "info", "btnBack" );
  695. btnBack->AddEventAction( WIDGET_EVENT_PRESS ).Set( WIDGET_ACTION_GO_BACK );
  696. AddChild( btnBack );
  697. SetupCreditList();
  698. }
  699. /*
  700. ========================
  701. idMenuScreen_Shell_Credits::Update
  702. ========================
  703. */
  704. void idMenuScreen_Shell_Credits::Update() {
  705. if ( menuData != NULL ) {
  706. idMenuWidget_CommandBar * cmdBar = menuData->GetCmdBar();
  707. if ( cmdBar != NULL ) {
  708. cmdBar->ClearAllButtons();
  709. idMenuHandler_Shell * shell = dynamic_cast< idMenuHandler_Shell * >( menuData );
  710. bool complete = false;
  711. if ( shell != NULL ) {
  712. complete = shell->GetGameComplete();
  713. }
  714. idMenuWidget_CommandBar::buttonInfo_t * buttonInfo;
  715. if ( !complete ) {
  716. buttonInfo = cmdBar->GetButton( idMenuWidget_CommandBar::BUTTON_JOY2 );
  717. if ( menuData->GetPlatform() != 2 ) {
  718. buttonInfo->label = "#str_00395";
  719. }
  720. buttonInfo->action.Set( WIDGET_ACTION_GO_BACK );
  721. } else {
  722. buttonInfo = cmdBar->GetButton( idMenuWidget_CommandBar::BUTTON_JOY1 );
  723. if ( menuData->GetPlatform() != 2 ) {
  724. buttonInfo->label = "#str_swf_continue";
  725. }
  726. buttonInfo->action.Set( WIDGET_ACTION_GO_BACK );
  727. }
  728. }
  729. }
  730. idSWFScriptObject & root = GetSWFObject()->GetRootObject();
  731. if ( BindSprite( root ) ) {
  732. idSWFTextInstance * heading = GetSprite()->GetScriptObject()->GetNestedText( "info", "txtHeading" );
  733. if ( heading != NULL ) {
  734. heading->SetText( "#str_02218" );
  735. heading->SetStrokeInfo( true, 0.75f, 1.75f );
  736. }
  737. }
  738. if ( btnBack != NULL ) {
  739. btnBack->BindSprite( root );
  740. }
  741. idMenuScreen::Update();
  742. }
  743. /*
  744. ========================
  745. idMenuScreen_Shell_Credits::ShowScreen
  746. ========================
  747. */
  748. void idMenuScreen_Shell_Credits::ShowScreen( const mainMenuTransition_t transitionType ) {
  749. if ( menuData != NULL ) {
  750. idMenuHandler_Shell * shell = dynamic_cast< idMenuHandler_Shell * >( menuData );
  751. bool complete = false;
  752. if ( shell != NULL ) {
  753. complete = shell->GetGameComplete();
  754. }
  755. if ( complete ) {
  756. menuData->PlaySound( GUI_SOUND_MUSIC );
  757. }
  758. }
  759. idMenuScreen::ShowScreen( transitionType );
  760. creditIndex = 0;
  761. UpdateCredits();
  762. }
  763. /*
  764. ========================
  765. idMenuScreen_Shell_Credits::HideScreen
  766. ========================
  767. */
  768. void idMenuScreen_Shell_Credits::HideScreen( const mainMenuTransition_t transitionType ) {
  769. idMenuScreen::HideScreen( transitionType );
  770. }
  771. /*
  772. ========================
  773. idMenuScreen_Shell_Credits::HandleAction
  774. ========================
  775. */
  776. bool idMenuScreen_Shell_Credits::HandleAction( idWidgetAction & action, const idWidgetEvent & event, idMenuWidget * widget, bool forceHandled ) {
  777. if ( menuData == NULL ) {
  778. return true;
  779. }
  780. if ( menuData->ActiveScreen() != SHELL_AREA_CREDITS ) {
  781. return false;
  782. }
  783. widgetAction_t actionType = action.GetType();
  784. switch ( actionType ) {
  785. case WIDGET_ACTION_GO_BACK: {
  786. idMenuHandler_Shell * shell = dynamic_cast< idMenuHandler_Shell * >( menuData );
  787. bool complete = false;
  788. if ( shell != NULL ) {
  789. complete = shell->GetGameComplete();
  790. }
  791. if ( complete ) {
  792. cmdSystem->BufferCommandText( CMD_EXEC_NOW, "disconnect" );
  793. } else {
  794. menuData->SetNextScreen( SHELL_AREA_ROOT, MENU_TRANSITION_SIMPLE );
  795. }
  796. return true;
  797. }
  798. }
  799. return idMenuWidget::HandleAction( action, event, widget, forceHandled );
  800. }
  801. /*
  802. ========================
  803. idMenuScreen_Shell_Credits::UpdateCredits
  804. ========================
  805. */
  806. void idMenuScreen_Shell_Credits::UpdateCredits() {
  807. if ( menuData == NULL || GetSWFObject() == NULL ) {
  808. return;
  809. }
  810. if ( menuData->ActiveScreen() != SHELL_AREA_CREDITS && menuData->NextScreen() != SHELL_AREA_CREDITS ) {
  811. return;
  812. }
  813. if ( creditIndex >= creditList.Num() + NUM_CREDIT_LINES ) {
  814. idMenuHandler_Shell * shell = dynamic_cast< idMenuHandler_Shell * >( menuData );
  815. bool complete = false;
  816. if ( shell != NULL ) {
  817. complete = shell->GetGameComplete();
  818. }
  819. if ( complete ) {
  820. cmdSystem->BufferCommandText( CMD_EXEC_NOW, "disconnect" );
  821. } else {
  822. menuData->SetNextScreen( SHELL_AREA_ROOT, MENU_TRANSITION_SIMPLE );
  823. }
  824. return;
  825. }
  826. idSWFScriptObject * options = GetSWFObject()->GetRootObject().GetNestedObj( "menuCredits", "info", "options" );
  827. if ( options != NULL ) {
  828. for ( int i = 15; i >= 0; --i ) {
  829. int curIndex = creditIndex - i;
  830. idSWFTextInstance * heading = options->GetNestedText( va( "item%d", 15 - i ), "heading" );
  831. idSWFTextInstance * subHeading = options->GetNestedText( va( "item%d", 15 - i ), "subHeading" );
  832. idSWFTextInstance * title = options->GetNestedText( va( "item%d", 15 - i ), "title" );
  833. idSWFTextInstance * txtEntry = options->GetNestedText( va( "item%d", 15 - i ), "entry" );
  834. if ( curIndex >= 0 && curIndex < creditList.Num() ) {
  835. int type = creditList[ curIndex ].type;
  836. idStr entry = creditList[ curIndex ].entry;
  837. if ( heading ) {
  838. heading->SetText( type == 3 ? entry : "" );
  839. heading->SetStrokeInfo( true );
  840. }
  841. if ( subHeading ) {
  842. subHeading->SetText( type == 2 ? entry : "" );
  843. subHeading->SetStrokeInfo( true );
  844. }
  845. if ( title ) {
  846. title->SetText( type == 1 ? entry : "" );
  847. title->SetStrokeInfo( true );
  848. }
  849. if ( txtEntry ) {
  850. txtEntry->SetText( type == 0 ? entry : "" );
  851. txtEntry->SetStrokeInfo( true );
  852. }
  853. } else {
  854. if ( heading ) {
  855. heading->SetText( "" );
  856. }
  857. if ( subHeading ) {
  858. subHeading->SetText( "" );
  859. }
  860. if ( txtEntry ) {
  861. txtEntry->SetText( "" );
  862. }
  863. if ( title ) {
  864. title->SetText( "" );
  865. }
  866. }
  867. }
  868. if ( options->GetSprite() ) {
  869. options->GetSprite()->PlayFrame( "roll" );
  870. }
  871. }
  872. creditIndex++;
  873. }