Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
credits.qc
Go to the documentation of this file.
1#include "credits.qh"
2
3// NOTE: try to keep this up-to-date with xonotic.org/team
4// XONRELEASE TODO: translator list is updated manually at release time
5// To update the list, look at both the common.po files, but also the transifex website, since they differ
6#define CREDITS(TITLE, FUNCTION, PERSON, NL) \
7 TITLE(_("Core Team")) \
8 PERSON("Ant \"Antibody\" Zucaro") \
9 PERSON("Antonio \"terencehill\" Piu") \
10 PERSON("bones_was_here") \
11 PERSON("Merlijn Hofstra") \
12 PERSON("Rudolf \"divVerent\" Polzer") \
13 PERSON("Ruszkai \"CuBe0wL\" Ákos") \
14 PERSON("Tyler \"-z-\" Mulligan") \
15 NL() \
16 TITLE(_("Extended Team")) \
17 PERSON("AsciiWolf") \
18 PERSON("Dr. Jaska") \
19 PERSON("Freddy") \
20 PERSON("Halogene") \
21 PERSON("Jan \"zykure\" Behrens") \
22 PERSON("k9er") \
23 PERSON("Morosophos") \
24 PERSON("MrBougo") \
25 PERSON("nilyt/nyov") \
26 PERSON("Nitroxis") \
27 PERSON("packer") \
28 PERSON("Severin \"sev\" Meyer") \
29 PERSON("Thomas \"illwieckz\" Debesse") \
30 PERSON("Victor \"LegendGuard\" Jaume") \
31 PERSON("Yannick \"SpiKe\" Le Guen") \
32 PERSON("z411") \
33 NL() \
34 NL() \
35 FUNCTION(_("Website")) \
36 PERSON("Ant \"Antibody\" Zucaro (web)") \
37 PERSON("Freddy") \
38 PERSON("Merlijn Hofstra") \
39 PERSON("Tyler \"-z-\" Mulligan (web / game)") \
40 NL() \
41 FUNCTION(_("Stats")) \
42 PERSON("Ant \"Antibody\" Zucaro") \
43 PERSON("Jan \"zykure\" Behrens") \
44 NL() \
45 FUNCTION(_("Art")) \
46 PERSON("KingPimpCommander") \
47 PERSON("Pearce \"theShadow\" Michal") \
48 PERSON("Peter \"Morphed\" Pielak") \
49 PERSON("Sahil \"DiaboliK\" Singhal") \
50 PERSON("Sam \"LJFHutch\" Hutchinson") \
51 PERSON("Severin \"sev\" Meyer") \
52 NL() \
53 FUNCTION(_("Animation")) \
54 PERSON("nifrek") \
55 PERSON("Sahil \"DiaboliK\" Singhal") \
56 NL() \
57 FUNCTION(_("Campaign")) \
58 PERSON("Dr. Jaska") \
59 PERSON("Marvin \"Mirio\" Beck") \
60 PERSON("Yannick \"SpiKe\" Le Guen") \
61 NL() \
62 FUNCTION(_("Level Design")) \
63 PERSON("Amadeusz \"amade/proraide\" Sławiński") \
64 PERSON("Ben \"MooKow\" Banker") \
65 PERSON("cityy") \
66 PERSON("Cortez") \
67 PERSON("Cuinn \"Cuinnton\" Herrick") \
68 PERSON("Debugger") \
69 PERSON("Hugo \"Calinou\" Locurcio") \
70 PERSON("Jakob \"tZork\" Markström Gröhn") \
71 PERSON("Konrad \"Justin\" Slawinski") \
72 PERSON("L0") \
73 PERSON("Łukasz \"kuniu the frogg\" Polek") \
74 PERSON("Maddin") \
75 PERSON("Maik \"SavageX\" Merten") \
76 PERSON("Marvin \"Mirio\" Beck") \
77 PERSON("MintOX") \
78 PERSON("packer") \
79 PERSON("Pearce \"theShadow\" Michal") \
80 PERSON("Rasmus \"FruitieX\" Eskola") \
81 PERSON("Ruszkai \"CuBe0wL\" Ákos") \
82 PERSON("Severin \"sev\" Meyer") \
83 PERSON("ShadoW") \
84 PERSON("t0uYK8Ne") \
85 PERSON("Yannick \"SpiKe\" Le Guen") \
86 NL() \
87 FUNCTION(_("Music / Sound FX")) \
88 PERSON("AquaNova (Archer)") \
89 PERSON("blkrbt") \
90 PERSON("chooksta") \
91 PERSON("Independent.nu") \
92 PERSON("Lea \"TheAudioMonkey\" Edwards") \
93 PERSON("[master]mind") \
94 PERSON("Merlijn Hofstra") \
95 PERSON("Mick Rippon") \
96 PERSON("Nick \"bitbomb\" Lucca") \
97 PERSON("remaxim") \
98 PERSON("Saulo \"mand1nga\" Gil") \
99 PERSON("{SC0RP} - Ian \"ID\" Dorrell") \
100 PERSON("Stephan") \
101 PERSON("unfa") \
102 NL() \
103 FUNCTION(_("Game Code")) \
104 PERSON("Antonio \"terencehill\" Piu") \
105 PERSON("bones_was_here") \
106 PERSON("Des") \
107 PERSON("Dr. Jaska") \
108 PERSON("Jakob \"tZork\" Markström Gröhn") \
109 PERSON("Juhu") \
110 PERSON("k9er") \
111 PERSON("martin-t") \
112 PERSON("Matthias \"matthiaskrgr\" Krüger") \
113 PERSON("Mattia \"Melanosuchus\" Basaglia") \
114 PERSON("Rasmus \"FruitieX\" Eskola") \
115 PERSON("Rudolf \"divVerent\" Polzer") \
116 PERSON("Samual \"Ares\" Lenks") \
117 PERSON("TimePath") \
118 PERSON("Victor \"LegendGuard\" Jaume") \
119 PERSON("z411") \
120 PERSON("Zac \"Mario\" Jardine") \
121 NL() \
122 FUNCTION(_("Marketing / PR")) \
123 PERSON("Ruszkai \"CuBe0wL\" Ákos") \
124 PERSON("Samual \"Ares\" Lenks") \
125 PERSON("Saulo \"mand1nga\" Gil") \
126 PERSON("Tyler \"-z-\" Mulligan") \
127 NL() \
128 FUNCTION(_("Legal")) \
129 PERSON("Merlijn Hofstra") \
130 PERSON("Rudolf \"divVerent\" Polzer") \
131 NL() \
132 NL() \
133 TITLE(_("Game Engine")) \
134 FUNCTION("DarkPlaces") \
135 PERSON("Ashley Rose \"LadyHavoc\" Hale") \
136 NL() \
137 FUNCTION(_("Engine Additions")) \
138 PERSON("bones_was_here") \
139 PERSON("David \"Cloudwalk\" Knapp") \
140 PERSON("Rudolf \"divVerent\" Polzer") \
141 PERSON("Samual \"Ares\" Lenks") \
142 NL() \
143 NL() \
144 TITLE(_("Compiler")) \
145 FUNCTION("GMQCC") \
146 PERSON("Dale \"graphitemaster\" Weiler") \
147 PERSON("Wolfgang \"Blub\\0\" Bumiller") \
148 NL() \
149 NL() \
150 NL() \
151 TITLE(_("Translators")) \
152 NL() \
153 FUNCTION(_("Asturian")) \
154 PERSON("enolp") \
155 PERSON("Llumex03") \
156 PERSON("Tornes \"Tornes.Llume\" Ḷḷume") \
157 PERSON("Ximielga") \
158 NL() \
159 FUNCTION(_("Belarusian")) \
160 PERSON("Mihail \"meequz\" Varantsou") \
161 PERSON("Pavel \"Pashok11\" Mordachev") \
162 NL() \
163 FUNCTION(_("Bulgarian")) \
164 PERSON("Alexander \"alex4o\" Bonin") \
165 PERSON("DelianST") \
166 PERSON("ifohancroft") \
167 PERSON("Krasimir \"kmikov\" Mikov") \
168 PERSON("lokster") \
169 PERSON("Nik \"cozmo\" Dim") \
170 PERSON("set_killer") \
171 PERSON("ubone") \
172 PERSON("С Станев") \
173 NL() \
174 FUNCTION(_("Chinese (China)")) \
175 PERSON("Antonidas") \
176 PERSON("Armcoon") \
177 PERSON("CodingJellyfish") \
178 PERSON("EricChen1") \
179 PERSON("kalawore") \
180 PERSON("Largee") \
181 PERSON("Liang \"dxkliu\" Liu") \
182 PERSON("Losier \"losierb\" Blackheath") \
183 PERSON("Matthew \"wjjmatthew\" Wu") \
184 PERSON("moetale") \
185 PERSON("NaitLee") \
186 PERSON("Richard \"seedship\" Nai") \
187 PERSON("sapphireliu") \
188 PERSON("yujiff") \
189 PERSON("韬 \"jiegushijia\" 刘") \
190 NL() \
191 FUNCTION(_("Chinese (Hong Kong)")) \
192 PERSON("Antonidas") \
193 PERSON("CodingJellyfish") \
194 PERSON("Largee") \
195 PERSON("kalawore") \
196 PERSON("Liang \"dxkliu\" Liu") \
197 PERSON("Losier \"losierb\" Blackheath") \
198 PERSON("Matthew \"wjjmatthew\" Wu") \
199 PERSON("moetale") \
200 PERSON("NaitLee") \
201 PERSON("sapphireliu") \
202 PERSON("韬 \"jiegushijia\" 刘") \
203 NL() \
204 FUNCTION(_("Chinese (Taiwan)")) \
205 PERSON("Alisha") \
206 PERSON("Antonidas") \
207 PERSON("Armcoon") \
208 PERSON("CodingJellyfish") \
209 PERSON("EricChen1") \
210 PERSON("Jeff \"s8321414\" Huang") \
211 PERSON("Largee") \
212 PERSON("Liang \"dxkliu\" Liu") \
213 PERSON("Losier \"losierb\" Blackheath") \
214 PERSON("kalawore") \
215 PERSON("Matthew \"wjjmatthew\" Wu") \
216 PERSON("msn1018927464") \
217 PERSON("NaitLee") \
218 PERSON("sapphireliu") \
219 PERSON("Simon \"XMLSDK\" Chow") \
220 PERSON("韬 \"jiegushijia\" 刘") \
221 PERSON("黃柏諺") \
222 NL() \
223 FUNCTION(_("Czech")) \
224 PERSON("Adam \"Admi335\" Říha") \
225 PERSON("Adam \"SakDrakken\" Krasa") \
226 PERSON("Aleš \"ramses1\" Svoboda") \
227 PERSON("fasdasd \"kitfildom\" sdasd") \
228 PERSON("gamingforyou875") \
229 PERSON("Jan \"kockahonza\" Kocka") \
230 PERSON("Jiří \"Havro\" Vrána") \
231 PERSON("martin-t") \
232 PERSON("Martin Krámský") \
233 PERSON("shogun assassin/woky") \
234 PERSON("Superovoce") \
235 PERSON("Tomáš \"CZHeron\" Volavka") \
236 PERSON("woky") \
237 NL() \
238 FUNCTION(_("Dutch")) \
239 PERSON("Alexander \"freefang\" van Dam") \
240 PERSON("Contijn \"Sojiro84\" Buijs") \
241 PERSON("Joeke \"Mappack\" de Graaf") \
242 PERSON("Jonathan \"Jonakeys\" van der Steege") \
243 PERSON("joostruis") \
244 PERSON("PinkRobot") \
245 PERSON("vegiburger") \
246 NL() \
247 FUNCTION(_("English (Australia)")) \
248 PERSON("Ben Dundon") \
249 PERSON("k9er") \
250 PERSON("Laurene \"sunflowers\" Albrand") \
251 PERSON("Matthew \"wjjmatthew\" Wu") \
252 PERSON("Stuart \"Cefiar\" Young") \
253 PERSON("Zac \"Mario\" Jardine") \
254 NL() \
255 FUNCTION(_("English (United Kingdom)")) \
256 PERSON("arduinoisgreat") \
257 PERSON("k9er") \
258 NL() \
259 FUNCTION(_("Finnish")) \
260 PERSON("Dr. Jaska") \
261 PERSON("Heidi Wenger") \
262 PERSON("Henry \"Exitium\" Sanmark") \
263 PERSON("irisxerno") \
264 PERSON("Jaakko Saarikko") \
265 PERSON("Jonas \"PowaTree\" Sahlberg") \
266 PERSON("LINUX SAUNA") \
267 PERSON("Oftox") \
268 PERSON("Oi Suomi On!") \
269 PERSON("Rasmus \"FruitieX\" Eskola") \
270 PERSON("ZakkeX") \
271 NL() \
272 FUNCTION(_("French")) \
273 PERSON("_biloute") \
274 PERSON("Aodren \"Gwlanbzh\" Le Gloanec") \
275 PERSON("adrien \"VRad\" vigneron") \
276 PERSON("Adgenodux") \
277 PERSON("Gwlanbzh") \
278 PERSON("HelloWorld42404") \
279 PERSON("Hugo \"Calinou\" Locurcio") \
280 PERSON("Iso \"coughingmouse\" Lee") \
281 PERSON("Maxime \"Taximus\" Paradis") \
282 PERSON("Marvin \"Mirio\" Beck") \
283 PERSON("Nicolas \"signed\" Formichella") \
284 PERSON("RedGuff") \
285 PERSON("Thomas \"illwieckz\" Debesse") \
286 PERSON("Yannick \"SpiKe\" Le Guen") \
287 NL() \
288 FUNCTION(_("Galician")) \
289 PERSON("Nin \"ninjum\" Him") \
290 PERSON("Victor \"LegendGuard\" Jaume") \
291 NL() \
292 FUNCTION(_("German")) \
293 PERSON("Alex \"tiprogrammierer.alex\" Progger") \
294 PERSON("BL4NKY") \
295 PERSON("cvcxc") \
296 PERSON("diacriticalhit") \
297 PERSON("Erik \"Ablu\" Schilling") \
298 PERSON("Iwan \"qubodup\" Gabovitch") \
299 PERSON("Jope \"Sless\" Withers") \
300 PERSON("Larson \"skps\" März") \
301 PERSON("Logan \"norsvenska\" Zerfass") \
302 PERSON("Markus \"Skoppes\" Erhard") \
303 PERSON("Paul \"Snapper\"") \
304 PERSON("Robert \"HbmMods\" Katzinsky") \
305 PERSON("Rudolf \"divVerent\" Polzer") \
306 PERSON("TheTrueBrot") \
307 PERSON("Wuzzy") \
308 PERSON("Yepoleb") \
309 NL() \
310 FUNCTION(_("Greek")) \
311 PERSON("Αντώνιος \"antonis97apple\" Τσίγκας") \
312 PERSON("Γιώργος Καρδάμης") \
313 PERSON("Hector \"The_Smasher_1992\" Champipis") \
314 PERSON("Konstantinos \"LDinos\" Mihalenas") \
315 PERSON("MasterWord") \
316 PERSON("Marinus \"Savvoritias\" Savoritias") \
317 PERSON("Mensious") \
318 PERSON("Pandelis \"pandem6nium\" Biltiroglou") \
319 PERSON("Vindex") \
320 PERSON("Yannis \"Evropi\" Anthymidis") \
321 NL() \
322 FUNCTION(_("Hungarian")) \
323 PERSON("Ács \"acszoltan111\" Zoltán") \
324 PERSON("Ákos Ruszkai") \
325 PERSON("Barnabás \"lordgalimow\" Klemens") \
326 PERSON("MmAaXx500") \
327 PERSON("Peter \"fpeterhu\" Ferenczy") \
328 PERSON("Ruszkai \"CuBe0wL\" Ákos") \
329 PERSON("Titusz \"diduuz\" Érsek") \
330 PERSON("Rob \"xaN1C4n3\"") \
331 PERSON("Zsolt \"Yellowberry\" Zitting") \
332 NL() \
333 FUNCTION(_("Indonesian")) \
334 PERSON("Angeline Meilia") \
335 PERSON("Ariesandy Hidayat") \
336 PERSON("red koala") \
337 NL() \
338 FUNCTION(_("Irish")) \
339 PERSON("Kevin \"kscanne\" Scannell") \
340 NL() \
341 FUNCTION(_("Italian")) \
342 PERSON("amedeo463") \
343 PERSON("Antonio \"terencehill\" Piu") \
344 PERSON("Costa") \
345 PERSON("Felice \"MaidenBeast\" Sallustio") \
346 PERSON("Giovanni \"rizzogianni73\" Rizzello") \
347 PERSON("Jessica Amoruso") \
348 PERSON("stdi") \
349 PERSON("XCostaX") \
350 NL() \
351 FUNCTION(_("Japanese")) \
352 PERSON("Antoni Das") \
353 PERSON("Lento") \
354 PERSON("Space Ace") \
355 PERSON("Ryu \"ryusho2523\" N.") \
356 PERSON("Victor \"LegendGuard\" Jaume") \
357 PERSON("z411") \
358 PERSON("堀川 \"bapuru524\" 健康") \
359 NL() \
360 FUNCTION(_("Kazakh")) \
361 PERSON("Артем \"bystrov.arterm\" Быстров") \
362 NL() \
363 FUNCTION(_("Korean")) \
364 PERSON("BYEONGJIN \"ahnkoon\" AN") \
365 PERSON("Jisoo \"LimJiSoo0719\" Lim") \
366 PERSON("Iso \"coughingmouse\" Lee") \
367 PERSON("Seokho Son") \
368 NL() \
369 FUNCTION(_("Latin")) \
370 PERSON("oblector o") \
371 NL() \
372 FUNCTION(_("Polish")) \
373 PERSON("4m") \
374 PERSON("Alex \"tiprogrammierer.alex\" Progger") \
375 PERSON("Amadeusz \"amade/proraide\" Sławiński") \
376 PERSON("Artur \"artur9010\" Motyka") \
377 PERSON("Cris \"Kshyso\" Sus") \
378 PERSON("David Agzo") \
379 PERSON("Eryk \"ewm\" Michalak") \
380 PERSON("Jakub \"_Mpcs\" Niklas") \
381 PERSON("Jakub \"KubeQ11\" Pędziszewski") \
382 PERSON("John \"Myran\" Smith") \
383 PERSON("Kacper \"kacperski1\" Herchel") \
384 PERSON("Karol \"kRkk\" Kosek") \
385 PERSON("Kriss \"Kriss7475\" Chr") \
386 PERSON("Lukasz Sekalski") \
387 PERSON("Marcin \"mpnogaj\" Nogaj") \
388 PERSON("Oliwier Jaszczyszyn") \
389 PERSON("Paweł \"siwyi\" Goca") \
390 PERSON("Piotr \"vipkoza\" Kozica") \
391 PERSON("qqiLMFjv1iBfT3p6TNxjUThsaTVIXhQc") \
392 PERSON("Rafał \"Okava\" Szymański") \
393 PERSON("Robert \"Szkodnix\" Wolniak") \
394 PERSON("Saikuru \"saikuru0\" Zero") \
395 PERSON("Sertomas") \
396 PERSON("SFS Atlas") \
397 PERSON("tasopis") \
398 PERSON("theQuos") \
399 PERSON("Wojciech \"g_host\" Sikora") \
400 NL() \
401 FUNCTION(_("Portuguese")) \
402 PERSON("Ivan Paulos \"greylica\" Tomé") \
403 PERSON("Jean Trindade \"Muleke_Trairao\" Pereira") \
404 PERSON("lecalam") \
405 PERSON("NotThatPrivate") \
406 PERSON("Pedrada19") \
407 PERSON("Ricardo Manuel \"hellgardia\" da Cruz Coelho da Silva") \
408 PERSON("Rui \"xendez\"") \
409 PERSON("xXxCHAOTICxXx") \
410 NL() \
411 FUNCTION(_("Portuguese (Brazil)")) \
412 PERSON("Arno \"Bleyom\" Heinrich") \
413 PERSON("Ivan Paulos \"greylica\" Tomé") \
414 PERSON("Jean Trindade \"Muleke_Trairao\" Pereira") \
415 PERSON("NotThatPrivate") \
416 PERSON("Ricardo Manuel \"hellgardia\" da Cruz Coelho da Silva") \
417 PERSON("Rui \"xendez\"") \
418 PERSON("yy0zz") \
419 PERSON("zerowhy") \
420 NL() \
421 FUNCTION(_("Romanian")) \
422 PERSON("Adrian-Ciprian \"adrian.tinjala\" Tînjală") \
423 PERSON("busterdbk") \
424 PERSON("Cuzenco \"andonis1616\" Andrei Robert") \
425 PERSON("Daniel \"dasj\" Șerbănescu") \
426 PERSON("Edward205") \
427 PERSON("Iulian \"ElektroBoom\" Oancea") \
428 PERSON("Mircea \"Taoki\" Kitsune") \
429 PERSON("Sorin \"unic_sorin\" Botirla") \
430 PERSON("Tudor \"TropiKo\" Ionel") \
431 NL() \
432 FUNCTION(_("Russian")) \
433 PERSON("Alex \"alextalker7\" Talker") \
434 PERSON("Alexandr \"zrg\"") \
435 PERSON("Alexei \"PlasmaSheep\" B.") \
436 PERSON("Andrei \"adem4ik\" Stepanov") \
437 PERSON("Andrey \"dekrY\" P.") \
438 PERSON("Artem \"skybon\" Vorotnikov") \
439 PERSON("Александр ABATAPA") \
440 PERSON("Артём \"Temak\" Котлубай") \
441 PERSON("Blueberryy") \
442 PERSON("Dmitro \"Gamebot\" Sokhin") \
443 PERSON("gravicappa") \
444 PERSON("HelloWorld42404") \
445 PERSON("Hot Dog") \
446 PERSON("jusio") \
447 PERSON("Lord Canistra") \
448 PERSON("Mikita \"rudzik8\" Wiśniewski") \
449 PERSON("Morosophos") \
450 PERSON("Nikoli") \
451 PERSON("Pavel \"Pashok11\" Mordachev") \
452 PERSON("Plato \"SemperPeritus\" Efimov") \
453 PERSON("Sergej \"Clearness High\" Lutsyk") \
454 PERSON("Simple88") \
455 PERSON("Темак") \
456 PERSON("Пидарасенька") \
457 NL() \
458 FUNCTION(_("Serbian")) \
459 PERSON("Саша \"salepetronije\" Петровић") \
460 PERSON("Marko M. Kostić") \
461 PERSON("Nikola \"asd222\" Dundjerski") \
462 PERSON("Pendulla") \
463 PERSON("Rafael \"Ristovski\"") \
464 NL() \
465 FUNCTION(_("Spanish")) \
466 PERSON("0000simon") \
467 PERSON("Alan \"aagp\" Garcia") \
468 PERSON("Antonio \"Antoniosirc\" Sirera") \
469 PERSON("Ari_tent") \
470 PERSON("Belén \"BelenVM\" Velasco") \
471 PERSON("brunodeleo") \
472 PERSON("Damian \"starfire24680\" Kurek") \
473 PERSON("Excruciatus \"crucesignatus\" X") \
474 PERSON("Juan \"Perju\" Perez") \
475 PERSON("Kammy") \
476 PERSON("Lorenzo \"lololailo\" Soriano") \
477 PERSON("Luciano \"NeonKnightOA\" Balducchi") \
478 PERSON("roader_gentoo") \
479 PERSON("Rodrigo Mouton Laudin") \
480 PERSON("Roi Asher Gerszkoviez") \
481 PERSON("SouL") \
482 PERSON("Starfire24680") \
483 PERSON("Victor \"LegendGuard\" Jaume") \
484 PERSON("Vitama Piru Leta") \
485 PERSON("Yllelder") \
486 PERSON("Yotta Mxt") \
487 PERSON("z411") \
488 NL() \
489 FUNCTION(_("Swedish")) \
490 PERSON("Gustaf \"Hanicef\" Alhäll") \
491 PERSON("Karl-Oskar \"machine\" Rikås") \
492 PERSON("Logan \"norsvenska\" Zerfass") \
493 PERSON("marcus256") \
494 PERSON("Hampus \"xunz\" Kreitz") \
495 NL() \
496 FUNCTION(_("Turkish")) \
497 PERSON("Abdurrahman \"akkus12345\" AKKUŞ") \
498 PERSON("aggbhh20") \
499 PERSON("Ahmet \"ahmetlii\"") \
500 PERSON("Çağlar \"caglarturali\" Turalı") \
501 PERSON("Bekir \"bkrucarci\"") \
502 PERSON("Demiray \"tulliana\" Muhterem") \
503 PERSON("Efeospt \"Efeisot\" KMR") \
504 PERSON("Gokdeniz.Kucukali") \
505 PERSON("ibra kap") \
506 PERSON("Lucifer \"Lucifer25x\" Morningstar") \
507 PERSON("Mehmet Ali \"bluedream1381\" Kaplan") \
508 PERSON("Tan Siret \"yutyocraft\" Akıncı") \
509 PERSON("xe1st") \
510 NL() \
511 FUNCTION(_("Ukrainian")) \
512 PERSON("BakerDoge") \
513 PERSON("Dmitro \"Gamebot\" Sokhin") \
514 PERSON("Ihor \"iRomanyshyn\" Romanyshyn") \
515 PERSON("Ihor \"uandreew\" Andreev") \
516 PERSON("Illia \"imbirWIthSugar\" Serediuk") \
517 PERSON("Oleh \"BlaXpirit\" Prypin") \
518 PERSON("Vasyl \"CHUVACK\" Kushniruk") \
519 PERSON("Vasyl \"Harmata\" Melnyk") \
520 PERSON("Yuriy \"herrniemand\" Ackermann") \
521 NL() \
522 NL() \
523 TITLE(_("Past Contributors")) \
524 PERSON("Akari") \
525 PERSON("Alexander \"motorsep\" Zubov") \
526 PERSON("Alexander \"naryl\" Suhoverhov") \
527 PERSON("Amos \"torus\" Dudley") \
528 PERSON("Andreas \"Black\" Kirsch") \
529 PERSON("Attila \"WW3\" Houtkooper") \
530 PERSON("BigMac") \
531 PERSON("Braden \"meoblast001\" Walters") \
532 PERSON("Brain Younds") \
533 PERSON("BuddyFriendGuy") \
534 PERSON("Chris \"amethyst7\" Matz") \
535 PERSON("Christian Ice") \
536 PERSON("Clinton \"Kaziganthe\" Freeman") \
537 PERSON("Dan \"Digger\" Korostelev") \
538 PERSON("Dan \"Wazat\" Hale") \
539 PERSON("Diomedes") \
540 PERSON("Dokujisan") \
541 PERSON("Donkey") \
542 PERSON("dstrek") \
543 PERSON("Dustin Geeraert") \
544 PERSON("Edgenetwork") \
545 PERSON("Edward \"Ed\" Holness") \
546 PERSON("Eric \"Munyul Verminard\" Sambach") \
547 PERSON("Erik \"Ablu\" Schilling") \
548 PERSON("Fabien \"H. Reaper\" Tschirhart") \
549 PERSON("Florian Paul \"lda17h\" Schmidt") \
550 PERSON("FrikaC") \
551 PERSON("Garth \"Zombie\" Hendy") \
552 PERSON("GATTS") \
553 PERSON("Gerd \"Elysis\" Raudenbusch") \
554 PERSON("Gottfried \"Toddd\" Hofmann") \
555 PERSON("Henning \"Tymo\" Janssen") \
556 PERSON("Innovati") \
557 PERSON("Jeff") \
558 PERSON("JH0nny") \
559 PERSON("Jitspoe") \
560 PERSON("Jody Gallagher") \
561 PERSON("Jope \"Sless\" Withers") \
562 PERSON("Jubilant") \
563 PERSON("Juergen \"LowDragon\" Timm") \
564 PERSON("KadaverJack") \
565 PERSON("Kevin \"Tyrann\" Shanahan") \
566 PERSON("Kristian \"morfar\" Johansson") \
567 PERSON("Kurt Dereli") \
568 PERSON("lcatlnx") \
569 PERSON("Lee David Ash") \
570 PERSON("Lee Vermeulen") \
571 PERSON("leileilol") \
572 PERSON("Lyberta") \
573 PERSON("magorian") \
574 PERSON("Marius \"GreEn`mArine\" Shekow") \
575 PERSON("Marko \"Urre\" Permanto") \
576 PERSON("Marvin \"Mirio\" Beck") \
577 PERSON("Mathieu \"Elric\" Olivier") \
578 PERSON("Mattrew \"Tronyn\" Rye") \
579 PERSON("MauveBib") \
580 PERSON("Mephisto") \
581 PERSON("Mepper") \
582 PERSON("michaelb") \
583 PERSON("Michael \"Tenshihan\" Quinn") \
584 PERSON("Mircea \"Taoki\" Kitsune") \
585 PERSON("Munyul") \
586 PERSON("Netzwerg") \
587 PERSON("NoelCower") \
588 PERSON("Oleh \"BlaXpirit\" Prypin") \
589 PERSON("Parapraxis") \
590 PERSON("parasti") \
591 PERSON("Paul Scott") \
592 PERSON("Paul \"Strahlemann\" Evers") \
593 PERSON("Penguinum") \
594 PERSON("Petithomme") \
595 PERSON("PlasmaSheep") \
596 PERSON("Przemysław \"atheros\" Grzywacz") \
597 PERSON("Q1 Retexturing Project") \
598 PERSON("Qantourisc") \
599 PERSON("Rick \"Rat\" Kelley") \
600 PERSON("Robert \"ai\" Kuroto") \
601 PERSON("Ronan") \
602 PERSON("Sajt") \
603 PERSON("Samual \"Ares\" Lenks") \
604 PERSON("Saulo \"mand1nga\" Gil") \
605 PERSON("Shaggy") \
606 PERSON("Shank") \
607 PERSON("s1lence") \
608 PERSON("Simon O’Callaghan") \
609 PERSON("slava") \
610 PERSON("Soelen") \
611 PERSON("SomeGuy") \
612 PERSON("SoulKeeper_p") \
613 PERSON("Spike") \
614 PERSON("Spirit") \
615 PERSON("Stephan \"esteel\" Stahl") \
616 PERSON("Steve Vermeulen") \
617 PERSON("Supajoe") \
618 PERSON("Sydes") \
619 PERSON("Tei") \
620 PERSON("The player with the unnecessarily long name") \
621 PERSON("Tomaz") \
622 PERSON("Ulrich Galbraith") \
623 PERSON("Vortex") \
624 PERSON("William Libert") \
625 PERSON("William \"Willis\" Weilep") \
626 PERSON("Yves \"EviLair\" Allaire") \
627 PERSON("Zac \"Mario\" Jardine") \
628 PERSON("Zenex") \
629 PERSON("... and a goat") \
630 /**/
631
632
637void credits_add_line(int fh, int n, int type, string line)
638{
639 if (type == CREDITS_TYPE_TITLE)
640 line = strcat("**", line);
641 else if (type == CREDITS_TYPE_FUNCTION)
642 line = strcat("*", line);
643
644 if (fh >= 0)
645 fputs(fh, strcat(line, "\n"));
646 if (n >= 0)
647 bufstr_add(n, line, 0);
648}
649
650void credits_build(int fh, int n)
651{
652 #define CREDITS_TITLE(t) credits_add_line(fh, n, CREDITS_TYPE_TITLE, t);
653 #define CREDITS_FUNCTION(f) credits_add_line(fh, n, CREDITS_TYPE_FUNCTION, f);
654 #define CREDITS_PERSON(p) credits_add_line(fh, n, CREDITS_TYPE_PERSON, p);
655 #define CREDITS_NL() credits_add_line(fh, n, CREDITS_TYPE_NL, "");
657 #undef CREDITS_TITLE
658 #undef CREDITS_FUNCTION
659 #undef CREDITS_PERSON
660 #undef CREDITS_NL
661}
662
664{
665 int n = buf_create();
666 credits_build(-1, n);
667 return n;
668}
669
671{
672 int fh = fopen("credits.txt", FILE_WRITE);
673 if(fh < 0)
674 return;
675 credits_build(fh, -1);
676}
677
678#undef CREDITS
679
681{
682 entity me;
684 me.configureXonoticCreditsList(me);
685 return me;
686}
688{
689 me.configureXonoticListBox(me);
690 me.bufferIndex = credits_get();
691 me.nItems = buf_getsize(me.bufferIndex);
692 if (cvar("_menu_credits_export")) // set by the menu_credits_export alias
693 {
695 cvar_set("_menu_credits_export", "0");
696 }
697}
699{
700 buf_del(me.bufferIndex);
701}
703{
704 if(me.scrolling)
705 {
706 me.scrollPos = bound(0, (time - me.scrolling) * me.itemHeight, me.nItems * me.itemHeight - 1);
707 me.scrollPosTarget = me.scrollPos;
708 }
709 SUPER(XonoticCreditsList).draw(me);
710}
711void XonoticCreditsList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
712{
713 SUPER(XonoticCreditsList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
714
715 me.realFontSize_y = me.fontSize / (absSize.y * me.itemHeight);
716 me.realFontSize_x = me.fontSize / (absSize.x * (1 - me.controlWidth));
717 me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
718}
719void XonoticCreditsList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused)
720{
721 string s;
722 float theAlpha;
723 vector theColor;
724
725 s = bufstr_get(me.bufferIndex, i);
726
727 if(substring(s, 0, 2) == "**")
728 {
729 s = substring(s, 2, strlen(s) - 2);
730 theColor = SKINCOLOR_CREDITS_TITLE;
731 theAlpha = SKINALPHA_CREDITS_TITLE;
732 }
733 else if(substring(s, 0, 1) == "*")
734 {
735 s = substring(s, 1, strlen(s) - 1);
736 theColor = SKINCOLOR_CREDITS_FUNCTION;
737 theAlpha = SKINALPHA_CREDITS_FUNCTION;
738 }
739 else
740 {
741 theColor = SKINCOLOR_CREDITS_PERSON;
742 theAlpha = SKINALPHA_CREDITS_PERSON;
743 }
744
745 draw_CenterText(me.realUpperMargin * eY + 0.5 * eX, s, me.realFontSize, theColor, theAlpha, 0);
746}
747
748float XonoticCreditsList_keyDown(entity me, float key, float ascii, float shift)
749{
750 me.scrolling = 0;
751 return SUPER(XonoticCreditsList).keyDown(me, key, ascii, shift);
752}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
void XonoticCreditsList_configureXonoticCreditsList(entity me)
Definition credits.qc:687
void XonoticCreditsList_draw(entity me)
Definition credits.qc:702
int CREDITS_TYPE_NL
Definition credits.qc:636
void XonoticCreditsList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
Definition credits.qc:711
#define CREDITS(TITLE, FUNCTION, PERSON, NL)
Definition credits.qc:6
#define CREDITS_NL()
int CREDITS_TYPE_FUNCTION
Definition credits.qc:634
int credits_get()
Definition credits.qc:663
void XonoticCreditsList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused)
Definition credits.qc:719
void credits_build(int fh, int n)
Definition credits.qc:650
entity makeXonoticCreditsList()
Definition credits.qc:680
void credits_add_line(int fh, int n, int type, string line)
Definition credits.qc:637
int CREDITS_TYPE_TITLE
Definition credits.qc:633
float XonoticCreditsList_keyDown(entity me, float key, float ascii, float shift)
Definition credits.qc:748
#define CREDITS_PERSON(p)
void XonoticCreditsList_destroy(entity me)
Definition credits.qc:698
void credits_export()
Definition credits.qc:670
#define CREDITS_FUNCTION(f)
#define CREDITS_TITLE(t)
int CREDITS_TYPE_PERSON
Definition credits.qc:635
const float FILE_WRITE
float time
#define strlen
#define buf_create
void draw_CenterText(vector theOrigin, string theText, vector theSize, vector theColor, float theAlpha, float ICanHasKallerz)
Definition draw.qc:298
void cvar_set(string name, string value)
void fputs(float fhandle, string s)
float bound(float min, float value, float max)
string substring(string s, float start, float length)
float cvar(string name)
float fopen(string filename, float mode)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
#define NEW(cname,...)
Definition oo.qh:117
#define SUPER(cname)
Definition oo.qh:231
vector
Definition self.qh:92
const vector eY
Definition vector.qh:45
const vector eX
Definition vector.qh:44