diff --git a/GameList.txt b/GameList.txt
index d6cc52e..f260def 100644
--- a/GameList.txt
+++ b/GameList.txt
@@ -15,6 +15,7 @@ Cleft of Dimensions
Clessidra
DarkMists
Dragonfire MUD
+DreamLand
Federation 2 Community Edition
Fierymud
God Wars II
diff --git a/TGameDetails.h b/TGameDetails.h
index 8f4319a..7d56622 100644
--- a/TGameDetails.h
+++ b/TGameDetails.h
@@ -34,9 +34,16 @@ struct GameDetail
QString websiteInfo;
QString icon;
QString description;
- // the game's bundled loader installs the game's own full interface, so
- // the generic starter UI is not preinstalled for it:
- bool providesOwnUi = false;
+ // how the game installs its own full interface, if it does - the generic
+ // starter UI is then not preinstalled for it:
+ enum class OwnUi {
+ None,
+ // a loader bundled with Mudlet fetches the interface itself
+ BundledLoader,
+ // the game sends a Client.GUI package, often only after login
+ ClientGui
+ };
+ OwnUi ownUi = OwnUi::None;
// other hostnames the game is reachable under:
QStringList alternateHostUrls;
};
@@ -65,14 +72,14 @@ class TGameDetails
return result;
}
- inline static bool gameProvidesOwnUi(const QString& hostUrl)
+ inline static GameDetail::OwnUi gameOwnUi(const QString& hostUrl)
{
for (const auto& game : scmDefaultGames) {
- if (game.providesOwnUi && (!game.hostUrl.compare(hostUrl, Qt::CaseInsensitive) || game.alternateHostUrls.contains(hostUrl, Qt::CaseInsensitive))) {
- return true;
+ if (game.ownUi != GameDetail::OwnUi::None && (!game.hostUrl.compare(hostUrl, Qt::CaseInsensitive) || game.alternateHostUrls.contains(hostUrl, Qt::CaseInsensitive))) {
+ return game.ownUi;
}
}
- return false;
+ return GameDetail::OwnUi::None;
}
// clang-format off
@@ -117,8 +124,8 @@ qsl("Website
"
"If you are interested in a completely free, immersive RP/PK experience, in a vibrant land filled "
"with lore/intrigue, where you can forge long-lasting friendships and bitter rivalries, and have an "
"opportunity to leave your lasting mark and be remembered forever, then welcome ye to the "
- "Abandoned Realms.")
- },
+ "Abandoned Realms."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Avalon.de"), // Name
qsl("avalon.mud.de"), // address to connect to
23, // port to connect on
@@ -217,7 +224,34 @@ qsl("Website
"
"playerkilling is an integral part of character growth, rewarding "
"wit, courage, and ambition. The world continues to evolve with "
"new discoveries and challenges. Come carve out your legacy in "
- "Dark Mists.")},
+ "Dark Mists."),
+ GameDetail::OwnUi::ClientGui},
+
+ {qsl("DreamLand"),
+ qsl("dreamland.rocks"),
+ 9000,
+ false,
+ qsl("Website
"
+ "Discord"),
+ qsl(":/icons/banner_dreamland.png"),
+ qsl("Two gods built Thera as a mirror copy of someone else's world. Several "
+ "epochs and a great many funerals later, the copy has stopped taking notes "
+ "and started taking lives."
+ "\n\n"
+ "23 races, 13 classes, alignment, ethos and 44 gods and cults add up to "
+ "over 30,000 builds, and each one plays differently. Every random drop, "
+ "quest reward and crafted piece sits on one power scale. Forge your own "
+ "blades, cut gems, ink tattoos. Endless personal quests, 56 area quests, "
+ "tiered mobs that call their friends and cast at you from the next room, "
+ "remort, and ten clans, most with skills nobody else gets."
+ "\n\n"
+ "The whole game is in English, Ukrainian and Russian: one world, and every "
+ "player sees it in their own language. Many of our regulars are blind, so "
+ "everything works with a screen reader. Mudlet gets our own interface on "
+ "connect: bars, chat tabs and the panels from our web client."
+ "\n\n"
+ "Dying is part of the tutorial."),
+ GameDetail::OwnUi::ClientGui},
{qsl("God Wars II"),
qsl("godwars2.org"),
@@ -279,7 +313,8 @@ qsl("Website
"
"提剑跨骑挥鬼雨,白骨如山鸟惊飞。\n"
"尘事如潮人如水,只叹江湖几人回。"
"\n\n"
- "中文开源武侠MUD炎黄群侠传,游戏包括25大门派和5大世家,正邪只在一念间;近千门武学等你学习,上百种任务随你体验;让自己成为一代宗师,江湖笑,恩怨了。")},
+ "中文开源武侠MUD炎黄群侠传,游戏包括25大门派和5大世家,正邪只在一念间;近千门武学等你学习,上百种任务随你体验;让自己成为一代宗师,江湖笑,恩怨了。"),
+ GameDetail::OwnUi::ClientGui},
{qsl("Petria"),
qsl("game.petriamud.com"),
@@ -348,8 +383,7 @@ qsl("Website
"
"- it's encouraged. Killing enemies earns warpoints, experience, and their "
"gear. Climb the ranks. Make the topten list. Build your reputation through "
"conquest. If you want the risk of PvP combined with challenging "
- "environment combat, you've found your home."),
- true}, // ROP loader installs its own custom interface
+ "environment combat, you've found your home.")},
{qsl("ZombieMUD"),
qsl("zombiemud.org"),
@@ -454,7 +488,8 @@ qsl("Website
"
qsl(":/icons/midnightsun2.png"),
qsl("Midnight Sun is a medieval fantasy LPmud that has been around since 1991. We are a "
"non-PK, hack-and-slash game, cooperative rather than competitive in nature, and "
- "with a strong sense of community.")},
+ "with a strong sense of community."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Luminari"),
qsl("luminarimud.com"),
@@ -505,7 +540,8 @@ qsl("Website
"
"combat is allowed in much of the game. StickMUD was born in Finland in June 1991 "
"and is now hosted in Canada. Our diverse community of players and active game "
"engineers are ready to welcome new players like you to one of the best text-based "
- "multi-player games ever!")},
+ "multi-player games ever!"),
+ GameDetail::OwnUi::ClientGui},
{qsl("Clessidra"),
qsl("mud.clessidra.it"),
@@ -534,7 +570,8 @@ qsl("Website
"
"avanzatissimo sistema di Clan che permettera' guerre e conquiste. Disponibilità di "
"mercenari in caso di poca utenza, sistema di produzione/mercato per ottenere "
"esclusivi oggetti, un interfaccia grafica per aiutarti a giocare, sia per i novizi "
- "che gli esperti. Un MUD che si evolve di continuo.")},
+ "che gli esperti. Un MUD che si evolve di continuo."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Reinos de Leyenda"),
qsl("reinosdeleyenda.es"),
@@ -583,7 +620,8 @@ qsl("Website
"
"completamente de los dioses- y unirte a uno de los reinos que los jugadores se "
"encargan de gobernar para explorar un mundo viviente, sumergirte en los misterios "
"del océano, dar forma a tu legado, forjar maravillas olvidadas para ti -o tus "
- "aliados- y luchar por fe, gloria o dinero.")},
+ "aliados- y luchar por fe, gloria o dinero."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Fierymud"),
qsl("fierymud.org"),
@@ -595,14 +633,20 @@ qsl("Website
"
"players. This new reborne Fiery is a hope to bring back the goals of the past by "
"inflicting certain death on unsuspecting players. FieryMUD will continue to grow "
"and change through the coming years and those players who seek challenge and "
- "possess imagination will come in search of what the 3D world fails to offer them.")},
-
+ "possess imagination will come in search of what the 3D world fails to offer them."),
+ GameDetail::OwnUi::ClientGui},
+
+ // Deliberately without artwork: the connection dialog draws an entry only as its artwork, so this
+ // testing aid (it needs Busted, which players lack) is listed and selectable yet invisible, while a
+ // developer can reach it with --profile="Mudlet self-test" or from "My games" in a debug build.
+ // An icon or a generated name plate would show it to everybody.
+ // See https://github.com/Mudlet/Mudlet/issues/6443
{qsl("Mudlet self-test"),
qsl("mudlet.org"),
23,
false,
qsl("www.mudlet.org"),
- QString(), // TODO: https://github.com/Mudlet/Mudlet/issues/6443
+ QString(), // empty on purpose - see the note above
qsl("This isn't a game profile, but a special one for testing Mudlet itself using "
"Busted. You can also use it as a starting point to create automated tests for your "
"own profiles!")},
@@ -654,7 +698,7 @@ qsl("Website
"
qsl(":/icons/carrionfields.png"),
qsl("Carrion Fields is a unique blend of high-caliber roleplay and complex, hardcore "
"player-versus-player combat that has been running continuously, and 100% free, "
- "for over 25 years."
+ "for over 30 years."
"\n\n"
"Choose from among 21 races, 17 highly customizable classes, and several cabals "
"and religions to suit your playstyle and the story you want to tell. Our "
@@ -663,10 +707,10 @@ qsl("Website
"
"\n\n"
"We like to think of ourselves as the Dark Souls of MUDs, with a community that "
"is supportive of new players - unforgiving though our world may be. Join us for a "
- "real challenge and real rewards: adrenalin-pumping battles, memorable quests run "
+ "real challenge and real rewards: adrenaline-pumping battles, memorable quests run "
"by our volunteer immortal staff, and stories that will stick with you for a "
"lifetime."),
- true}, // CF-loader installs CFGUI
+ GameDetail::OwnUi::BundledLoader}, // CF-loader installs CFGUI
{qsl("Cleft of Dimensions"),
qsl("cleftofdimensions.net"),
@@ -691,7 +735,8 @@ qsl("Website
"
"\n\n"
"The Cleft opened in July 2000 and has been in active development ever since. We're "
"always innovating. Recent features include Discord integration "
- "and areas written with artificial intelligence. Check us out!")},
+ "and areas written with artificial intelligence. Check us out!"),
+ GameDetail::OwnUi::ClientGui},
{qsl("Legends of the Jedi"),
qsl("legendsofthejedi.com"),
@@ -717,7 +762,8 @@ qsl("Website
"
"LOTJ offers full PVP in both ground and space combat, governed by a set of rules to "
"minimize griefing and ensure that all kills have sufficient in-character cause."
"\n\n"
- "What role will you play? The legend awaits!")},
+ "What role will you play? The legend awaits!"),
+ GameDetail::OwnUi::ClientGui},
{qsl("Multi-Users in Middle-earth"),
qsl("mume.org"),
@@ -733,7 +779,8 @@ qsl("Website
"
"challenging locations across Middle-earth such as Lothlórien, the Shire, Bree, "
"Rivendell, Goblin-town, Mirkwood, Dol Guldur, and the Mines of Moria. The game is "
"completely at no cost to play and has been continually enhanced since its "
- "inception in the fall of 1991.")},
+ "inception in the fall of 1991."),
+ GameDetail::OwnUi::ClientGui},
{qsl("MorgenGrauen"),
qsl("mud.morgengrauen.info"),
@@ -765,7 +812,7 @@ qsl("Website
"
"Unsere freundliche Spielerschaft hilft Dir gerne bei Deinen ersten Schritten."
"\n\n"
"Spiel jetzt oder nie!"),
- true, // mg-loader installs MorgenGrauen's own interface
+ GameDetail::OwnUi::BundledLoader, // mg-loader installs MorgenGrauen's own interface
{qsl("mg.mud.de"), qsl("mg.morgengrauen.info"), qsl("morgengrauen.info")}},
{qsl("Infinity"),
@@ -779,7 +826,8 @@ qsl("Website
"
"Infinity LPMud provides willing adventurers and questseekers with a "
"venue of original ideas, mind boggling quests, and bloodcurdling "
"beasts, spinning into realms of power, magic, and technology, "
- "and many players with which to share your adventures.")},
+ "and many players with which to share your adventures."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Medievia"),
qsl("medievia.com"),
@@ -810,7 +858,7 @@ qsl("Website
"
"but it is the most dynamic game ever attempted. The wind affects the ships, where "
"fire spreads, and even how some critters smell you if you are upwind from them.\n\n"
"Do you dare enter?"),
- true}, // MedBootstrap installs MedUI
+ GameDetail::OwnUi::BundledLoader}, // MedBootstrap installs MedUI
{qsl("Dragonfire MUD"),
qsl("dragonfiremud.com"),
@@ -825,7 +873,8 @@ qsl("Website
"
"\n\n"
"Explore realms spanning fantasy, modern, future, and shadowy secrets, hunt dragons "
"for experience and loot, and discover hidden areas and guilds. Optional player "
- "killing is allowed, and the community welcomes new adventurers and builders alike.")},
+ "killing is allowed, and the community welcomes new adventurers and builders alike."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Beyond the Void MUD"),
qsl("voidmud.com"),
@@ -841,7 +890,8 @@ qsl("Website
"
"Free to play and ready for adventurers, the game emphasizes classic EverQuest "
"combat in a modern text-only experience. Build a character with up to three "
"classes, pursue epic quests and rebirth bonuses, and enjoy quality-of-life "
- "features like a custom Mudlet UI and real-time maps.")},
+ "features like a custom Mudlet UI and real-time maps."),
+ GameDetail::OwnUi::ClientGui},
{qsl("Pku XKX MUD"),
qsl("pkuxkx.net"),
@@ -876,7 +926,7 @@ qsl("Website
"
"player-driven provinces."
"\n\n"
"Old-school depth. Modern access. New players welcome."),
- true}, // icesus-loader installs Icesus' own interface
+ GameDetail::OwnUi::BundledLoader}, // icesus-loader installs Icesus' own interface
{qsl("PhoenixMUD"),
qsl("phoenixmud.net"),
4000,
@@ -894,7 +944,8 @@ qsl("Website
"
"fog-of-war and route-finding."
"\n\n"
"No payment of any kind, and character creation is open. Actively developed, with "
- "a friendly community that makes room for newcomers. New players welcome.")},
+ "a friendly community that makes room for newcomers. New players welcome."),
+ GameDetail::OwnUi::ClientGui},
};
// clang-format on
};