+#include "credits.qh"
#ifndef CREDITS_H
#define CREDITS_H
+
+#define CREDITS(TITLE, FUNCTION, PERSON, PERSON_, NL) \
+ TITLE(_("Core Team")) \
+ PERSON(Rudolf "divVerent" Polzer) \
+ PERSON(Ant "Antibody" Zucaro) \
+ PERSON(Marvin "Mirio" Beck) \
+ PERSON(Merlijn Hofstra) \
+ PERSON(Peter "Morphed" Pielak) \
+ PERSON(Ruszkai "CuBe0wL" Ákos) \
+ PERSON(Samual "Ares" Lenks) \
+ PERSON(TimePath) \
+ PERSON(Tyler "-z-" Mulligan) \
+ PERSON(Zac "Mario" Jardine) \
+ NL() \
+ TITLE(_("Extended Team")) \
+ PERSON(Antonio "terencehill" Piu) \
+ PERSON(Archer) \
+ PERSON(BuddyFriendGuy) \
+ PERSON(Debugger) \
+ PERSON(GATTS) \
+ PERSON(Halogene) \
+ PERSON(IDWMaster) \
+ PERSON(Jan "zykure" Behrens) \
+ PERSON(JH0nny) \
+ PERSON(Luigi) \
+ PERSON(Łukasz "kuniu the frogg" Polek) \
+ PERSON(Matthias "matthiaskrgr" Krüger) \
+ PERSON(Mattia "Melanosuchus" Basaglia) \
+ PERSON(MrBougo) \
+ PERSON(Nick "bitbomb" Lucca) \
+ PERSON(nilyt/nyov) \
+ PERSON(Nitroxis) \
+ PERSON(packer) \
+ PERSON(Pearce "theShadow" Michal) \
+ PERSON(Rasmus "FruitieX" Eskola) \
+ PERSON(s1lence) \
+ PERSON(Severin "sev" Meyer) \
+ PERSON(Soelen) \
+ PERSON(Sydes) \
+ PERSON(unfa) \
+ NL() \
+ NL() \
+ FUNCTION(_("Website")) \
+ PERSON(Ant "Antibody" Zucaro (web)) \
+ PERSON(Merlijn Hofstra) \
+ PERSON(Tyler "-z-" Mulligan (web / game)) \
+ NL() \
+ FUNCTION(_("Stats")) \
+ PERSON(Ant "Antibody" Zucaro) \
+ PERSON(Jan "zykure" Behrens) \
+ NL() \
+ FUNCTION(_("Art")) \
+ PERSON(Severin "sev" Meyer) \
+ PERSON(Sahil "DiaboliK" Singhal) \
+ PERSON(Peter "Morphed" Pielak) \
+ PERSON(Sam "LJFHutch" Hutchinson) \
+ PERSON(Pearce "theShadow" Michal) \
+ NL() \
+ FUNCTION(_("Animation")) \
+ PERSON(Sahil "DiaboliK" Singhal) \
+ PERSON(nifrek) \
+ NL() \
+ FUNCTION(_("Level Design")) \
+ PERSON(Amadeusz "amade/proraide" Sławiński) \
+ PERSON(Ben "MooKow" Banker) \
+ PERSON(Calinou) \
+ PERSON(Cortez) \
+ PERSON(Cuinn "Cuinnton" Herrick) \
+ PERSON(Debugger) \
+ PERSON(Jakob "tZork" Markström Gröhn) \
+ PERSON(Konrad "Justin" Slawinski) \
+ PERSON(Maddin) \
+ PERSON(L0) \
+ PERSON(Łukasz "kuniu the frogg" Polek) \
+ PERSON(Maik "SavageX" Merten) \
+ PERSON(Marvin "Mirio" Beck) \
+ PERSON(MintOX) \
+ PERSON(packer) \
+ PERSON(Pearce "theShadow" Michal) \
+ PERSON(Rasmus "FruitieX" Eskola) \
+ PERSON(Ruszkai "CuBe0wL" Ákos) \
+ PERSON(Severin "sev" Meyer) \
+ PERSON(ShadoW) \
+ NL() \
+ FUNCTION(_("Music / Sound FX")) \
+ PERSON(AquaNova (Archer)) \
+ PERSON(blkrbt) \
+ PERSON(chooksta) \
+ PERSON(Independent.nu) \
+ PERSON([master]mind) \
+ PERSON(Merlijn Hofstra) \
+ PERSON(Mick Rippon) \
+ PERSON(Nick "bitbomb" Lucca) \
+ PERSON(remaxim) \
+ PERSON(Saulo "mand1nga" Gil) \
+ PERSON({SC0RP} - Ian "ID" Dorrell) \
+ PERSON(Stephan) \
+ PERSON(unfa) \
+ NL() \
+ FUNCTION(_("Game Code")) \
+ PERSON(Samual "Ares" Lenks) \
+ PERSON(Rudolf "divVerent" Polzer) \
+ PERSON(Jakob "tZork" Markström Gröhn) \
+ PERSON(Rasmus "FruitieX" Eskola) \
+ PERSON(TimePath) \
+ PERSON(Zac "Mario" Jardine) \
+ NL() \
+ FUNCTION(_("Marketing / PR")) \
+ PERSON(Tyler "-z-" Mulligan) \
+ PERSON(Ruszkai "CuBe0wL" Ákos) \
+ PERSON(Samual "Ares" Lenks) \
+ PERSON(Saulo "mand1nga" Gil) \
+ NL() \
+ FUNCTION(_("Legal")) \
+ PERSON(Rudolf "divVerent" Polzer) \
+ PERSON(Merlijn Hofstra) \
+ NL() \
+ NL() \
+ TITLE(_("Game Engine")) \
+ FUNCTION("DarkPlaces") \
+ PERSON(Forest "LordHavoc" Hale) \
+ NL() \
+ FUNCTION(_("Engine Additions")) \
+ PERSON(Rudolf "divVerent" Polzer) \
+ PERSON(Samual "Ares" Lenks) \
+ NL() \
+ NL() \
+ TITLE(_("Compiler")) \
+ FUNCTION("GMQCC") \
+ PERSON(Wolfgang "Blub\0" Bumiller) \
+ PERSON(Dale "graphitemaster" Weiler) \
+ NL() \
+ NL() \
+ TITLE(_("Other Active Contributors")) \
+ PERSON(Erik "Ablu" Schilling) \
+ PERSON(Mircea "Taoki" Kitsune) \
+ PERSON(Penguinum) \
+ NL() \
+ NL() \
+ TITLE(_("Translators")) \
+ NL() \
+ FUNCTION(_("Asturian")) \
+ PERSON(Llumex03) \
+ PERSON(Tornes "Tornes.Llume" Ḷḷume) \
+ PERSON(Ximielga) \
+ NL() \
+ FUNCTION(_("Belarusian")) \
+ PERSON(Mihail "meequz" Varantsou) \
+ NL() \
+ FUNCTION(_("Bulgarian")) \
+ PERSON(lokster) \
+ PERSON(set_killer) \
+ NL() \
+ FUNCTION(_("Chinese (China)")) \
+ PERSON(Antonidas) \
+ PERSON(kalawore) \
+ PERSON(sapphireliu) \
+ NL() \
+ FUNCTION(_("Czech")) \
+ PERSON(shogun assassin/woky) \
+ PERSON(Superovoce) \
+ PERSON(Tomáš "CZHeron" Volavka) \
+ NL() \
+ FUNCTION(_("Dutch")) \
+ PERSON(Alexander "freefang" van Dam) \
+ PERSON(PinkRobot) \
+ PERSON(vegiburger) \
+ NL() \
+ FUNCTION(_("English (Australia)")) \
+ PERSON(Laurene "sunflowers" Albrand) \
+ PERSON(Zac "Mario" Jardine) \
+ NL() \
+ FUNCTION(_("Finnish")) \
+ PERSON(Henry "Exitium" Sanmark) \
+ PERSON(Rasmus "FruitieX" Eskola) \
+ NL() \
+ FUNCTION(_("French")) \
+ PERSON(Calinou) \
+ PERSON(Maxime "Taximus" Paradis) \
+ PERSON(RedGuff) \
+ PERSON(Yannick "SpiKe" Le Guen) \
+ NL() \
+ FUNCTION(_("German")) \
+ PERSON(Brot) \
+ PERSON(cvcxc) \
+ PERSON(Erik "Ablu" Schilling) \
+ PERSON(Jope "Sless" Withers) \
+ PERSON(Marvin "Mirio" Beck) \
+ PERSON(Rudolf "divVerent" Polzer) \
+ PERSON(Yepoleb) \
+ NL() \
+ FUNCTION(_("Greek")) \
+ PERSON_("Γιάννης \"Evropi\" Ανθυμίδης") \
+ PERSON(Konstantinos "LDinos" Mihalenas) \
+ PERSON(Savoritias) \
+ PERSON(Vindex) \
+ NL() \
+ FUNCTION(_("Hungarian")) \
+ PERSON(Ruszkai "CuBe0wL" Ákos) \
+ PERSON(xaN1C4n3) \
+ NL() \
+ FUNCTION(_("Italian")) \
+ PERSON(Antonio "terencehill" Piu) \
+ PERSON(Felice "MaidenBeast" Sallustio) \
+ PERSON(stdi) \
+ PERSON(XCostaX) \
+ NL() \
+ FUNCTION(_("Polish")) \
+ PERSON(4m) \
+ PERSON(Alex "tiprogrammierer.alex" Progger) \
+ PERSON(Amadeusz "amade/proraide" Sławiński) \
+ NL() \
+ FUNCTION(_("Portuguese")) \
+ PERSON(Ricardo Manuel "Hellgardia" da Cruz Coelho da Silva) \
+ PERSON(xXxCHAOTICxXx) \
+ NL() \
+ FUNCTION(_("Romanian")) \
+ PERSON(Adrian-Ciprian "adrian.tinjala" Tînjală) \
+ PERSON(BusterDBK) \
+ PERSON(Mircea "Taoki" Kitsune) \
+ PERSON(Tudor "TropiKo" Ionel) \
+ NL() \
+ FUNCTION(_("Russian")) \
+ PERSON(Alex "alextalker7" Talker) \
+ PERSON(Alexandr "zrg") \
+ PERSON(Andrei "adem4ik" Stepanov) \
+ PERSON(gravicappa) \
+ PERSON(Hot Dog) \
+ PERSON(Lord Canistra) \
+ PERSON(Nikoli) \
+ PERSON(Sergej "Clearness High" Lutsyk) \
+ NL() \
+ FUNCTION(_("Serbian")) \
+ PERSON_("Саша \"salepetronije\" Петровић") \
+ PERSON(Pendulla) \
+ PERSON(Rafael "Ristovski") \
+ NL() \
+ FUNCTION(_("Spanish")) \
+ PERSON_("0000simon") \
+ PERSON(Alan "aagp" Garcia) \
+ PERSON(Ari_tent) \
+ PERSON(brunodeleo) \
+ PERSON(Kammy) \
+ PERSON(roader_gentoo) \
+ PERSON(Rodrigo Mouton Laudin) \
+ PERSON(SouL) \
+ NL() \
+ FUNCTION(_("Swedish")) \
+ PERSON(Karl-Oskar "machine" Rikås) \
+ PERSON(marcus256) \
+ NL() \
+ FUNCTION(_("Ukrainian")) \
+ PERSON(Oleh "BlaXpirit" Prypin) \
+ PERSON(Vasyl "Harmata" Melnyk) \
+ PERSON(Yuriy "herrniemand" Ackermann) \
+ NL() \
+ NL() \
+ TITLE(_("Past Contributors")) \
+ PERSON(Akari) \
+ PERSON(Alexander "naryl" Suhoverhov) \
+ PERSON(Alexander "motorsep" Zubov) \
+ PERSON(Amos "torus" Dudley) \
+ PERSON(Andreas "Black" Kirsch) \
+ PERSON(Attila "WW3" Houtkooper) \
+ PERSON(BigMac) \
+ PERSON(Braden "meoblast001" Walters) \
+ PERSON(Brain Younds) \
+ PERSON(Chris "amethyst7" Matz) \
+ PERSON(Christian Ice) \
+ PERSON(Clinton "Kaziganthe" Freeman) \
+ PERSON(Dan "Digger" Korostelev) \
+ PERSON(Dan "Wazat" Hale) \
+ PERSON(Dokujisan) \
+ PERSON(Donkey) \
+ PERSON(dstrek) \
+ PERSON(Dustin Geeraert) \
+ PERSON(Edgenetwork) \
+ PERSON(Edward "Ed" Holness) \
+ PERSON(Eric "Munyul Verminard" Sambach) \
+ PERSON(Fabien "H. Reaper" Tschirhart) \
+ PERSON(Florian Paul "lda17h" Schmidt) \
+ PERSON(FrikaC) \
+ PERSON(Garth "Zombie" Hendy) \
+ PERSON(Gerd "Elysis" Raudenbusch) \
+ PERSON(Gottfried "Toddd" Hofmann) \
+ PERSON(Henning "Tymo" Janssen) \
+ PERSON(Innovati) \
+ PERSON(Jitspoe) \
+ PERSON(Jody Gallagher) \
+ PERSON(Jope "Sless" Withers) \
+ PERSON(Juergen "LowDragon" Timm) \
+ PERSON(KadaverJack) \
+ PERSON(Kevin "Tyrann" Shanahan) \
+ PERSON(Kristian "morfar" Johansson) \
+ PERSON(Kurt Dereli) \
+ PERSON(lcatlnx) \
+ PERSON(Lee David Ash) \
+ PERSON(Lee Vermeulen) \
+ PERSON(leileilol) \
+ PERSON(magorian) \
+ PERSON(Marius "GreEn`mArine" Shekow) \
+ PERSON(Marko "Urre" Permanto) \
+ PERSON(Mathieu "Elric" Olivier) \
+ PERSON(Mattrew "Tronyn" Rye) \
+ PERSON(MauveBib) \
+ PERSON(Mephisto) \
+ PERSON(michaelb) \
+ PERSON(Michael "Tenshihan" Quinn) \
+ PERSON(Mepper) \
+ PERSON(Munyul) \
+ PERSON(Netzwerg) \
+ PERSON(NoelCower) \
+ PERSON(Parapraxis) \
+ PERSON(parasti) \
+ PERSON(Paul "Strahlemann" Evers) \
+ PERSON(Paul Scott) \
+ PERSON(Petithomme) \
+ PERSON(PlasmaSheep) \
+ PERSON(Przemysław "atheros" Grzywacz) \
+ PERSON(Q1 Retexturing Project) \
+ PERSON(Qantourisc) \
+ PERSON(Oleh "BlaXpirit" Prypin) \
+ PERSON(Rick "Rat" Kelley) \
+ PERSON(Robert "ai" Kuroto) \
+ PERSON(Ronan) \
+ PERSON(Sajt) \
+ PERSON(Saulo "mand1nga" Gil) \
+ PERSON(Shaggy) \
+ PERSON(Shank) \
+ PERSON(Simon O’Callaghan) \
+ PERSON(SomeGuy) \
+ PERSON(SoulKeeper_p) \
+ PERSON(Spike) \
+ PERSON(Spirit) \
+ PERSON(Stephan "esteel" Stahl) \
+ PERSON(Steve Vermeulen) \
+ PERSON(Supajoe) \
+ PERSON(Tei) \
+ PERSON(The player with the unnecessarily long name) \
+ PERSON(Tomaz) \
+ PERSON(Ulrich Galbraith) \
+ PERSON(Vortex) \
+ PERSON(William Libert) \
+ PERSON(William "Willis" Weilep) \
+ PERSON(Yves "EviLair" Allaire) \
+ PERSON(Zenex) \
+ /**/
+
+int credits_get()
+{
+ int n = buf_create();
+ #define CREDITS_TITLE(t) bufstr_add(n, strcat("**", t), 0);
+ #define CREDITS_FUNCTION(f) bufstr_add(n, strcat("*", f), 0);
+ #define CREDITS_PERSON(p) bufstr_add(n, p, 0);
+ #define _CREDITS_PERSON(p) CREDITS_PERSON(#p)
+ #define CREDITS_NL() bufstr_add(n, "", 0);
+ CREDITS(CREDITS_TITLE, CREDITS_FUNCTION, _CREDITS_PERSON, CREDITS_PERSON, CREDITS_NL)
+ #undef CREDITS_TITLE
+ #undef CREDITS_FUNCTION
+ #undef CREDITS_PERSON
+ #undef _CREDITS_PERSON
+ #undef CREDITS_NL
+ return n;
+}
+
+#undef CREDITS
+
#include "listbox.qc"
CLASS(XonoticCreditsList, XonoticListBox)
METHOD(XonoticCreditsList, configureXonoticCreditsList, void(entity));
void XonoticCreditsList_configureXonoticCreditsList(entity me)
{
me.configureXonoticListBox(me);
- // load the file
- me.bufferIndex = buf_load(language_filename("xonotic-credits.txt"));
+ me.bufferIndex = credits_get();
me.nItems = buf_getsize(me.bufferIndex);
}
void XonoticCreditsList_destroy(entity me)