GUI: Add "Publisher" grouping method

This commit is contained in:
av-dx 2021-08-13 02:45:00 +05:30 committed by Eugene Sandulenko
parent 528f5d7c41
commit 1ec32681ab
5 changed files with 776 additions and 0 deletions

View File

@ -48,6 +48,10 @@ bool MetadataParser::parserCallback_series(ParserNode *node) {
return true;
}
bool MetadataParser::parserCallback_company(ParserNode *node) {
return true;
}
bool MetadataParser::closedKeyCallback(ParserNode *node) {
if (node->name == "game")
_gameInfo[node->values["id"]] = MetadataGame(node->values["id"], node->values["name"], node->values["engine_id"],
@ -58,6 +62,8 @@ bool MetadataParser::closedKeyCallback(ParserNode *node) {
true);
if (node->name == "series")
_seriesInfo[node->values["id"]] = MetadataSeries(node->values["id"], node->values["name"]);
if (node->name == "company")
_companyInfo[node->values["id"]] = MetadataCompany(node->values["id"], node->values["name"], node->values["alt_name"]);
return true;
}

View File

@ -67,6 +67,18 @@ struct MetadataSeries {
MetadataSeries(const String i, const String n) : id(i), name(n) {}
};
struct MetadataCompany {
typedef Common::String String;
String id;
String name;
String alt_name;
MetadataCompany() : id(nullptr), name(nullptr), alt_name(nullptr) {}
MetadataCompany(const String i, const String n, const String altn)
: id(i), name(n), alt_name(altn) {}
};
class MetadataParser : public Common::XMLParser {
public:
MetadataParser();
@ -76,6 +88,7 @@ public:
Common::HashMap<Common::String, MetadataGame, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> _gameInfo;
Common::HashMap<Common::String, MetadataEngine, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> _engineInfo;
Common::HashMap<Common::String, MetadataSeries, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> _seriesInfo;
Common::HashMap<Common::String, MetadataCompany, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> _companyInfo;
protected:
@ -105,12 +118,20 @@ protected:
KEY_END() // series end
XML_KEY(company)
XML_PROP(id, true)
XML_PROP(name, true)
XML_PROP(alt_name, true)
KEY_END() // company end
} PARSER_END()
/** Render info callbacks */
bool parserCallback_game(ParserNode *node);
bool parserCallback_engine(ParserNode *node);
bool parserCallback_series(ParserNode *node);
bool parserCallback_company(ParserNode *node);
bool closedKeyCallback(ParserNode *node) override;

View File

@ -871,6 +871,7 @@ void LauncherSimple::build() {
_grpChooserPopup->appendEntry(_("First letter"), kGroupByFirstLetter);
_grpChooserPopup->appendEntry(_("Engine"), kGroupByEngine);
_grpChooserPopup->appendEntry(_("Series"), kGroupBySeries);
_grpChooserPopup->appendEntry(_("Publisher"), kGroupByCompany);
_grpChooserPopup->appendEntry(_("Language"), kGroupByLanguage);
_grpChooserPopup->appendEntry(_("Platform"), kGroupByPlatform);
_grpChooserPopup->setSelected(_groupBy);
@ -1075,6 +1076,26 @@ void LauncherSimple::groupEntries(const Array<const Common::ConfigManager::Domai
_list->groupByAttribute();
break;
}
case kGroupByCompany: {
for (uint i = 0; i < metadata.size(); ++i) {
U32String gameid = metadata[i]->getVal(String("gameid"));
attrs.push_back(_metadataParser._gameInfo[gameid].company_id);
}
_list->setGroupHeaderFormat(U32String(""), U32String(""));
_list->setAttributeValues(attrs);
metadataNames[""] = "Unknown Publisher";
Common::HashMap<String, MetadataCompany, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator i = _metadataParser._companyInfo.begin();
for (; i != _metadataParser._companyInfo.end(); ++i) {
if (i->_value.alt_name.empty()) {
metadataNames[i->_key] = i->_value.name;
} else {
metadataNames[i->_key] = Common::String::format("%s (%s)", i->_value.name.c_str(), i->_value.alt_name.c_str());
}
}
_list->setMetadataNames(metadataNames);
_list->groupByAttribute();
break;
}
case kGroupBySeries: {
for (uint i = 0; i < metadata.size(); ++i) {
U32String gameid = metadata[i]->getVal(String("gameid"));
@ -1274,6 +1295,26 @@ void LauncherGrid::groupEntries(const Array<const Common::ConfigManager::Domain
_grid->groupEntries();
break;
}
case kGroupByCompany: {
for (uint i = 0; i < metadata.size(); ++i) {
U32String gameid = metadata[i]->getVal(String("gameid"));
attrs.push_back(_metadataParser._gameInfo[gameid].company_id);
}
_grid->setGroupHeaderFormat(U32String(""), U32String(""));
_grid->setAttributeValues(attrs);
metadataNames[""] = "Unknown Publisher";
Common::HashMap<String, MetadataCompany, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator i = _metadataParser._companyInfo.begin();
for (; i != _metadataParser._companyInfo.end(); ++i) {
if (i->_value.alt_name.empty()) {
metadataNames[i->_key] = i->_value.name;
} else {
metadataNames[i->_key] = Common::String::format("%s (%s)", i->_value.name.c_str(), i->_value.alt_name.c_str());
}
}
_grid->setMetadataNames(metadataNames);
_grid->groupEntries();
break;
}
case kGroupByLanguage: {
for (uint i = 0; i < metadata.size(); ++i) {
U32String language = metadata[i]->contains(String("language")) ?
@ -1450,6 +1491,7 @@ void LauncherGrid::build() {
_grpChooserPopup->appendEntry(_("First letter"), kGroupByFirstLetter);
_grpChooserPopup->appendEntry(_("Engine"), kGroupByEngine);
_grpChooserPopup->appendEntry(_("Series"), kGroupBySeries);
_grpChooserPopup->appendEntry(_("Publisher"), kGroupByCompany);
_grpChooserPopup->appendEntry(_("Language"), kGroupByLanguage);
_grpChooserPopup->appendEntry(_("Platform"), kGroupByPlatform);
_grpChooserPopup->setSelected(_groupBy);

View File

@ -58,6 +58,7 @@ enum GroupingMethod {
kGroupByFirstLetter,
kGroupByEngine,
kGroupBySeries,
kGroupByCompany,
kGroupByLanguage,
kGroupByPlatform
};

View File

@ -0,0 +1,706 @@
<?xml version = "1.0"?>
<company id = "1c"
name = "1C Company"
alt_name = ""/>
<company id = "21stcentury"
name = "21st Century Entertainment"
alt_name = ""/>
<company id = "3f"
name = "3f interactivo"
alt_name = ""/>
<company id = "4x"
name = "4X Technologies"
alt_name = ""/>
<company id = "access"
name = "Access Software"
alt_name = ""/>
<company id = "accolade"
name = "Accolade"
alt_name = ""/>
<company id = "activision"
name = "Activision"
alt_name = ""/>
<company id = "adeline"
name = "Adeline Software International"
alt_name = ""/>
<company id = "adventurecompany"
name = "The Adventure Company"
alt_name = ""/>
<company id = "adventureinternational"
name = "Adventure International"
alt_name = ""/>
<company id = "adventuresoft"
name = "Adventure Soft"
alt_name = ""/>
<company id = "aetheric"
name = "Aetheric Games"
alt_name = ""/>
<company id = "aftermath"
name = "Aftermath Media"
alt_name = ""/>
<company id = "akella"
name = "Akella"
alt_name = ""/>
<company id = "alawar"
name = "Alawar Entertainment"
alt_name = ""/>
<company id = "alcachofa"
name = "Alcachofa Soft"
alt_name = ""/>
<company id = "amber"
name = "Amber Company"
alt_name = ""/>
<company id = "animationmagic"
name = "Animation Magic"
alt_name = ""/>
<company id = "aquin"
name = "Aquin Design"
alt_name = ""/>
<company id = "arberth"
name = "Arberth Studios"
alt_name = ""/>
<company id = "artech"
name = "Artech Digital Entertainment"
alt_name = ""/>
<company id = "arxel"
name = "Arxel Tribe"
alt_name = ""/>
<company id = "atari"
name = "Atari"
alt_name = ""/>
<company id = "atlantis"
name = "Atlantis Interactive Entertainment"
alt_name = ""/>
<company id = "bandai"
name = "Bandai"
alt_name = ""/>
<company id = "bigfish"
name = "Big Fish Games"
alt_name = ""/>
<company id = "bigorc"
name = "Big Orc Software"
alt_name = ""/>
<company id = "blekinge"
name = "Blekinge Institute of Technology"
alt_name = ""/>
<company id = "bluebyte"
name = "Blue Byte Software"
alt_name = ""/>
<company id = "broderbund"
name = "Brøderbund"
alt_name = ""/>
<company id = "brooklyn"
name = "Brooklyn Multimedia"
alt_name = ""/>
<company id = "buka"
name = "Buka Entertainment"
alt_name = ""/>
<company id = "burnedout"
name = "Burned Out Adventurers!"
alt_name = ""/>
<company id = "burst"
name = "Burst"
alt_name = ""/>
<company id = "byteriders"
name = "Byteriders"
alt_name = ""/>
<company id = "canal"
name = "Canal Multimedia"
alt_name = ""/>
<company id = "capstone"
name = "Capstone Software"
alt_name = ""/>
<company id = "catware"
name = "Catware"
alt_name = ""/>
<company id = "cbe"
name = "CBE Software"
alt_name = ""/>
<company id = "channel8"
name = "Channel 8 Software"
alt_name = ""/>
<company id = "clipper"
name = "Clipper Software"
alt_name = ""/>
<company id = "coktel"
name = "Coktel Vision"
alt_name = ""/>
<company id = "colossal"
name = "(Colossal) Pictures' New Media"
alt_name = ""/>
<company id = "coredesign"
name = "Core Design"
alt_name = ""/>
<company id = "creativedream"
name = "CreativeDream Studio"
alt_name = ""/>
<company id = "creativereality"
name = "Creative Reality"
alt_name = ""/>
<company id = "cryo"
name = "Cryo Interactive"
alt_name = ""/>
<company id = "cuc"
name = "CUC Software International"
alt_name = ""/>
<company id = "cyan"
name = "Cyan Worlds"
alt_name = "Cyan"/>
<company id = "cyberdreams"
name = "Cyberdreams"
alt_name = ""/>
<company id = "daedalic"
name = "Daedalic Entertainment"
alt_name = ""/>
<company id = "darkling"
name = "Darkling Room"
alt_name = ""/>
<company id = "deadcode"
name = "Dead:Code Software"
alt_name = ""/>
<company id = "delphine"
name = "Delphine Software"
alt_name = ""/>
<company id = "destiny"
name = "Destiny Software"
alt_name = ""/>
<company id = "digitaldreams"
name = "Digital Dreams Multimedia"
alt_name = ""/>
<company id = "digitalequipment"
name = "Digital Equipment Corporation"
alt_name = ""/>
<company id = "digitalfantasia"
name = "Digital Fantasia"
alt_name = ""/>
<company id = "digitalvillage"
name = "The Digital Village"
alt_name = ""/>
<company id = "disney"
name = "Disney"
alt_name = ""/>
<company id = "divide"
name = "Divide By Zero"
alt_name = ""/>
<company id = "domark"
name = "Domark"
alt_name = ""/>
<company id = "dosowisko"
name = "Dosowisko.net"
alt_name = ""/>
<company id = "dreamagination"
name = "Dreamagination"
alt_name = ""/>
<company id = "dreamcatchereurope"
name = "DreamCatcher Europe"
alt_name = ""/>
<company id = "dreamcatcherinteractive"
name = "DreamCatcher Interactive"
alt_name = ""/>
<company id = "dreamersguild"
name = "The Dreamers Guild"
alt_name = ""/>
<company id = "dreamforge"
name = "DreamForge Intertainment"
alt_name = ""/>
<company id = "dreamworks"
name = "DreamWorks Interactive"
alt_name = ""/>
<company id = "dro"
name = "Dro Soft"
alt_name = ""/>
<company id = "dynabyte"
name = "Dynabyte"
alt_name = ""/>
<company id = "dynamix"
name = "Dynamix"
alt_name = ""/>
<company id = "ea"
name = "Electronic Arts"
alt_name = ""/>
<company id = "eie"
name = "Empire Interactive Entertainment"
alt_name = ""/>
<company id = "eloi"
name = "ELOI Productions"
alt_name = ""/>
<company id = "encore"
name = "Encore Software"
alt_name = ""/>
<company id = "erbe"
name = "Erbe Software"
alt_name = ""/>
<company id = "ere"
name = "ERE Informatique"
alt_name = ""/>
<company id = "esp"
name = "Entertainment Software Partners"
alt_name = ""/>
<company id = "evryware"
name = "Evryware"
alt_name = ""/>
<company id = "fan"
name = "Fan game"
alt_name = ""/>
<company id = "fatfunky"
name = "Fat Funky"
alt_name = ""/>
<company id = "firstlight"
name = "Firstlight"
alt_name = ""/>
<company id = "flashpoint"
name = "Flashpoint Productions"
alt_name = ""/>
<company id = "forgottenkey"
name = "Forgotten Key"
alt_name = ""/>
<company id = "ftl"
name = "FTL Games"
alt_name = ""/>
<company id = "funcom"
name = "Funcom"
alt_name = ""/>
<company id = "funhouse"
name = "Funhouse Design"
alt_name = ""/>
<company id = "gotgame"
name = "Got Game Entertainment"
alt_name = ""/>
<company id = "graydesign"
name = "Gray Design Associates"
alt_name = ""/>
<company id = "gt"
name = "GT Interactive"
alt_name = ""/>
<company id = "he"
name = "Humongous Entertainment"
alt_name = ""/>
<company id = "hungry"
name = "Hungry Software"
alt_name = ""/>
<company id = "infocom"
name = "Infocom"
alt_name = ""/>
<company id = "interplay"
name = "Interplay Productions"
alt_name = ""/>
<company id = "kemco"
name = "Kemco"
alt_name = ""/>
<company id = "krumbukt"
name = "Krumbukt"
alt_name = ""/>
<company id = "lankhor"
name = "Lankhor"
alt_name = ""/>
<company id = "lkavalon"
name = "L.K. Avalon"
alt_name = ""/>
<company id = "local"
name = "Local Studio"
alt_name = ""/>
<company id = "lucasarts"
name = "LucasArts"
alt_name = ""/>
<company id = "macromedia"
name = "Macromedia"
alt_name = ""/>
<company id = "maxis"
name = "Maxis"
alt_name = ""/>
<company id = "mdna"
name = "MDNA Games"
alt_name = ""/>
<company id = "merit"
name = "Merit Studios"
alt_name = ""/>
<company id = "merscom"
name = "Merscom"
alt_name = ""/>
<company id = "metropolis"
name = "Metropolis Software House"
alt_name = ""/>
<company id = "microprose"
name = "MicroProse"
alt_name = ""/>
<company id = "microsoft"
name = "Microsoft"
alt_name = ""/>
<company id = "mindscape"
name = "Mindscape"
alt_name = ""/>
<company id = "mpe"
name = "MP Entertainment"
alt_name = ""/>
<company id = "mythos"
name = "Mythos Software"
alt_name = ""/>
<company id = "nayma"
name = "Nayma Software"
alt_name = ""/>
<company id = "nemoria"
name = "Nemoria Entertainment"
alt_name = ""/>
<company id = "neverhood"
name = "The Neverhood, Inc."
alt_name = ""/>
<company id = "nintendo"
name = "Nintendo"
alt_name = ""/>
<company id = "nobilis"
name = "Nobilis"
alt_name = ""/>
<company id = "nosense"
name = "NoSense"
alt_name = ""/>
<company id = "nwc"
name = "New World Computing"
alt_name = ""/>
<company id = "origin"
name = "Origin Systems"
alt_name = ""/>
<company id = "pavo"
name = "Pavo Entertainment"
alt_name = ""/>
<company id = "pendulo"
name = "Péndulo Studios"
alt_name = ""/>
<company id = "perfect"
name = "Perfect Entertainment"
alt_name = ""/>
<company id = "piranha"
name = "Piranha Interactive Publishing"
alt_name = ""/>
<company id = "playmates"
name = "Playmates Interactive Entertainment"
alt_name = ""/>
<company id = "presto"
name = "Presto Studios"
alt_name = ""/>
<company id = "psygnosis"
name = "Psygnosis"
alt_name = ""/>
<company id = "rainbird"
name = "Rainbird Software"
alt_name = ""/>
<company id = "rebellion"
name = "Rebellion"
alt_name = ""/>
<company id = "revistronic"
name = "Revistronic"
alt_name = ""/>
<company id = "revolution"
name = "Revolution"
alt_name = ""/>
<company id = "riki"
name = "Riki Computer Games"
alt_name = ""/>
<company id = "rootfix"
name = "RootFix Entertainment"
alt_name = ""/>
<company id = "sacis"
name = "Sacis"
alt_name = ""/>
<company id = "sanctuary"
name = "Sanctuary Woods"
alt_name = ""/>
<company id = "sandcastle"
name = "Sandcastle"
alt_name = ""/>
<company id = "sega"
name = "Sega"
alt_name = ""/>
<company id = "sierra"
name = "Sierra"
alt_name = "Sierra On-Line"/>
<company id = "skif"
name = "S.K.I.F."
alt_name = ""/>
<company id = "softgold"
name = "Softgold"
alt_name = ""/>
<company id = "sony"
name = "Sony"
alt_name = ""/>
<company id = "terra"
name = "Terra Nova Development"
alt_name = ""/>
<company id = "thorsoft"
name = "Thorsoft of Letchworth"
alt_name = ""/>
<company id = "tomahawk"
name = "Tomahawk"
alt_name = ""/>
<company id = "tommo"
name = "Tommo"
alt_name = ""/>
<company id = "traktor"
name = "Traktor Games"
alt_name = ""/>
<company id = "trilobyte"
name = "Trilobyte"
alt_name = ""/>
<company id = "tsunami"
name = "Tsunami Games"
alt_name = ""/>
<company id = "ubisoft"
name = "Ubisoft"
alt_name = ""/>
<company id = "viacom"
name = "Viacom"
alt_name = ""/>
<company id = "viperante"
name = "Viperante"
alt_name = ""/>
<company id = "virgin"
name = "Virgin Interactive"
alt_name = ""/>
<company id = "westwood"
name = "Westwood Studios"
alt_name = ""/>
<company id = "zojoi"
name = "Zojoi"
alt_name = ""/>
<company id = "anne"
name = "Anne Carrière"
alt_name = ""/>
<company id = "cpcc"
name = "California Pacific Computer Company"
alt_name = ""/>
<company id = "icom"
name = "ICOM Simulations"
alt_name = ""/>
<company id = "idigicon"
name = "Idigicon"
alt_name = ""/>
<company id = "igc"
name = "The Illusions Gaming Company"
alt_name = ""/>
<company id = "indiesquish"
name = "IndieSquish"
alt_name = ""/>
<company id = "infogrames"
name = "Infogrames"
alt_name = ""/>
<company id = "ibi"
name = "Interactive Binary Illusions"
alt_name = ""/>
<company id = "interlink"
name = "Interlink Planning"
alt_name = ""/>
<company id = "invention"
name = "Invention"
alt_name = ""/>
<company id = "ips"
name = "IPS Computer Group"
alt_name = ""/>
<company id = "israndom"
name = "IsRandomRandom Games"
alt_name = ""/>
<company id = "jbush"
name = "JBush Productions"
alt_name = ""/>
<company id = "kirin"
name = "Kirin Entertainment"
alt_name = ""/>
<company id = "kompart"
name = "Kompart UK"
alt_name = ""/>
<company id = "lacemamba"
name = "Lace Mamba Global"
alt_name = ""/>
<company id = "tlc"
name = "The Learning Company"
alt_name = ""/>
<company id = "level9"
name = "Level 9 Computing"
alt_name = ""/>
<company id = "lezard"
name = "Lezard Interactive"
alt_name = ""/>
<company id = "linuxgp"
name = "Linux Game Publishing"
alt_name = ""/>
<company id = "lucyworlds"
name = "Lucy's Worlds"
alt_name = ""/>
<company id = "mac"
name = "MAC"
alt_name = ""/>
<company id = "magnetic"
name = "Magnetic Scrolls"
alt_name = ""/>
<company id = "mit"
name = "Massachusetts Institute of Technology"
alt_name = ""/>
<company id = "maximyz"
name = "Maximyz"
alt_name = ""/>
<company id = "mif2000"
name = "Mif2000"
alt_name = ""/>
<company id = "millennium"
name = "Millennium Interactive Ltd."
alt_name = ""/>
<company id = "mindfactory"
name = "MindFactory"
alt_name = ""/>
<company id = "mojotouch"
name = "MojoTouch"
alt_name = ""/>
<company id = "molimerx"
name = "Molimerx Ltd."
alt_name = ""/>
<company id = "monkeystone"
name = "Monkeystone Games"
alt_name = ""/>
<company id = "nacht"
name = "Nacht und Nebel"
alt_name = ""/>
<company id = "newgen"
name = "New Generation Software"
alt_name = ""/>
<company id = "nihilis"
name = "NiHiLiS"
alt_name = ""/>
<company id = "offstudio"
name = "Off Studio"
alt_name = ""/>
<company id = "palace"
name = "Palace Software"
alt_name = ""/>
<company id = "petagame"
name = "PetaGame"
alt_name = ""/>
<company id = "philips"
name = "Philips Interactive Media"
alt_name = ""/>
<company id = "pipe"
name = "Pipe Studio"
alt_name = ""/>
<company id = "pnc"
name = "PNC Narratives"
alt_name = ""/>
<company id = "pony"
name = "Pony Canyon"
alt_name = ""/>
<company id = "prograph"
name = "Prograph Research"
alt_name = ""/>
<company id = "rpelect"
name = "R&P Electronic Media"
alt_name = ""/>
<company id = "raecreation"
name = "Raecreations Software"
alt_name = ""/>
<company id = "rockstarv"
name = "Rockstar Vienna"
alt_name = ""/>
<company id = "rskent"
name = "RSK Entertainment"
alt_name = ""/>
<company id = "rudowski"
name = "Rudowski Brothers"
alt_name = ""/>
<company id = "reunionmusee"
name = "Réunion des Musées Nationaux"
alt_name = ""/>
<company id = "siliconbeach"
name = "Silicon Beach Software"
alt_name = ""/>
<company id = "skaldic"
name = "Skaldic Games"
alt_name = ""/>
<company id = "smokingcar"
name = "Smoking Car Productions"
alt_name = ""/>
<company id = "softwarefarm"
name = "The Software Farm"
alt_name = ""/>
<company id = "spectrumholo"
name = "Spectrum HoloByte"
alt_name = ""/>
<company id = "spreadcamp"
name = "Spreadcamp"
alt_name = ""/>
<company id = "squinky"
name = "Squinky"
alt_name = ""/>
<company id = "starbyte"
name = "Starbyte Software"
alt_name = ""/>
<company id = "usgold"
name = "U.S. Gold"
alt_name = ""/>
<company id = "unitedpixtures"
name = "United Pixtures"
alt_name = ""/>
<company id = "victokai"
name = "Vic Tokai"
alt_name = ""/>
<company id = "vicarious"
name = "Vicarious Visions"
alt_name = ""/>
<company id = "wanadoo"
name = "Wanadoo Edition"
alt_name = ""/>
<company id = "warner"
name = "Warner Interactive"
alt_name = ""/>
<company id = "wyrmkeep"
name = "The Wyrmkeep Entertainment"
alt_name = ""/>
<company id = "zombie"
name = "Zombie Studios"
alt_name = ""/>
<company id = "hueforest"
name = "Hue Forest Entertainment"
alt_name = ""/>
<company id = "trendmasters"
name = "Trendmasters"
alt_name = ""/>
<company id = "artbox"
name = "Art in the Box"
alt_name = ""/>
<company id = "mpslabs"
name = "MPS Labs"
alt_name = ""/>
<company id = "livingbooks"
name = "Living Books"
alt_name = ""/>
<company id = "kyilkhor"
name = "Kyilkhor Creation"
alt_name = ""/>
<company id = "wanderlust"
name = "Wanderlust Interactive"
alt_name = ""/>
<company id = "tsdinge"
name = "Thomas & Steffen Dinge"
alt_name = ""/>
<company id = "crystaldynamics"
name = "Crystal Dynamics"
alt_name = ""/>
<company id = "sebastianronsse"
name = "Sebastian Ronsse"
alt_name = ""/>
<company id = "glk"
name = "Interactive Fiction"
alt_name = ""/>
<company id = "unknown"
name = "Unknown Company"
alt_name = ""/>
<company id = "reactorinc"
name = "Reactor Inc."
alt_name = ""/>
<company id = "magnetinteractive"
name = "Magnet Interactive Studios, Inc."
alt_name = ""/>
<company id = "polarware"
name = "Polarware"
alt_name = ""/>
<company id = "littleark"
name = "Little Ark"
alt_name = ""/>
<company id = "trecision"
name = "Trecision S.p.A."
alt_name = ""/>