+// Map list for BloodBath
+level_t bloodbathlevels[] =
+{
+ {"bb1", "The Stronghold"},
+ {"bb2", "Winter Wonderland"},
+ {"bb3", "Bodies"},
+ {"bb4", "The Tower"},
+ {"bb5", "Click!"},
+ {"bb6", "Twin Fortress"},
+ {"bb7", "Midgard"},
+ {"bb8", "Fun With Heads"},
+ {"e1m1", "Cradle to Grave"},
+ {"e1m7", "Altar of Stone"},
+
+ {"dm1", "Monolith Building 11"},
+ {"dm2", "Power!"},
+ {"dm3", "Area 15"},
+ {"e6m8", "Beauty and the Beast"},
+
+ {"cpbb01", "Crypt of Despair"},
+ {"cpbb02", "Pits of Blood"},
+ {"cpbb03", "Unholy Cathedral"},
+ {"cpbb04", "Deadly Inspirations"},
+
+ {"b2a15", "Area 15 (B2)"},
+ {"barena", "Blood Arena"},
+ {"bkeep", "Blood Keep"},
+ {"bstar", "Brown Star"},
+ {"crypt", "The Crypt"},
+
+ {"bb3_2k1", "Bodies Infusion"},
+ {"qbb1", "The Confluence"},
+ {"qbb2", "KathartiK"},
+ {"qbb3", "Caleb's Woodland Retreat"},
+ {"ded_simp", "Dead Simple"},
+ {"dranzbb6", "Black Coffee"},
+ {"qe1m7", "The House of Chthon"}
+};
+
+episode_t bloodbathepisodes[] =
+{
+ {"Blood", 0, 10},
+ {"Plasma Pack", 10, 4},
+ {"Cryptic Passage", 14, 4},
+ {"Blood 2", 18, 5},
+ {"BloodBath", 23, 7}
+};
+
+gamelevels_t sharewarequakegame = {"Shareware Quake", quakelevels, quakeepisodes, 2};
+gamelevels_t registeredquakegame = {"Quake", quakelevels, quakeepisodes, 7};
+gamelevels_t hipnoticgame = {"Scourge of Armagon", hipnoticlevels, hipnoticepisodes, 6};
+gamelevels_t roguegame = {"Dissolution of Eternity", roguelevels, rogueepisodes, 4};
+gamelevels_t nehahragame = {"Nehahra", nehahralevels, nehahraepisodes, 4};
+gamelevels_t bloodbathgame = {"BloodBath", bloodbathlevels, bloodbathepisodes, 5};
+
+typedef struct
+{
+ int gameid;
+ gamelevels_t *notregistered;
+ gamelevels_t *registered;
+}
+gameinfo_t;
+
+gameinfo_t gamelist[] =
+{
+ {GAME_NORMAL, &sharewarequakegame, ®isteredquakegame},
+ {GAME_HIPNOTIC, &hipnoticgame, &hipnoticgame},
+ {GAME_ROGUE, &roguegame, &roguegame},
+ {GAME_NEHAHRA, &nehahragame, &nehahragame},
+ {GAME_FIENDARENA, &sharewarequakegame, ®isteredquakegame},
+ {GAME_ZYMOTIC, &sharewarequakegame, ®isteredquakegame},
+ {GAME_BLOODBATH, &bloodbathgame, &bloodbathgame},
+ {-1, &sharewarequakegame, ®isteredquakegame} // final fallback
+};
+
+gamelevels_t *lookupgameinfo(void)
+{
+ int i;
+ for (i = 0;gamelist[i].gameid >= 0 && gamelist[i].gameid != gamemode;i++);
+ if (registered.integer)
+ return gamelist[i].registered;
+ else
+ return gamelist[i].notregistered;
+}
+