#include #include #include "drlg_test.hpp" #include "levels/gendung.h" #include "multi.h" #include "quests.h" using namespace devilution; namespace { TEST(Drlg_l4, CreateL4Dungeon_diablo_13_428074402) { LoadExpectedLevelData("diablo/13-428074402.dun"); InitQuests(); Quests[Q_WARLORD]._qactive = QUEST_NOTAVAIL; TestCreateDungeon(13, 428074402, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(26, 64)); TestCreateDungeon(13, 428074402, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(47, 79)); TestCreateDungeon(13, 428074402, ENTRY_TWARPDN); EXPECT_EQ(ViewPosition, Point(26, 44)); } TEST(Drlg_l4, CreateL4Dungeon_diablo_13_594689775) { LoadExpectedLevelData("diablo/13-594689775.dun"); InitQuests(); Quests[Q_WARLORD]._qactive = QUEST_INIT; TestCreateDungeon(13, 594689775, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(72, 38)); TestCreateDungeon(13, 594689775, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(32, 40)); TestCreateDungeon(13, 594689775, ENTRY_TWARPDN); EXPECT_EQ(ViewPosition, Point(36, 88)); } TEST(Drlg_l4, CreateL4Dungeon_diablo_14_717625719) { LoadExpectedLevelData("diablo/14-717625719.dun"); TestCreateDungeon(14, 717625719, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(90, 64)); TestCreateDungeon(14, 717625719, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(49, 31)); } TEST(Drlg_l4, CreateL4Dungeon_diablo_15_1583642716) { LoadExpectedLevelData("diablo/15-1583642716.dun"); gbIsMultiplayer = false; InitQuests(); Quests[Q_DIABLO]._qactive = QUEST_INIT; TestCreateDungeon(15, 1583642716, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(44, 26)); TestCreateDungeon(15, 1583642716, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(87, 69)); Quests[Q_BETRAYER]._qactive = QUEST_ACTIVE; TestCreateDungeon(15, 1583642716, ENTRY_MAIN); // Betrayer quest does not change level gen EXPECT_EQ(ViewPosition, Point(44, 26)); EXPECT_EQ(Quests[Q_BETRAYER].position, Point(34, 24)) << "Ensure the portal to lazarus has a spawn position if the player has activated the quest"; LoadExpectedLevelData("diablo/15-1583642716-changed.dun"); Quests[Q_BETRAYER]._qactive = QUEST_DONE; Quests[Q_DIABLO]._qactive = QUEST_ACTIVE; TestCreateDungeon(15, 1583642716, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(44, 26)); EXPECT_EQ(Quests[Q_BETRAYER].position, Point(34, 24)) << "Not really required? current bugfix sets this position anyway"; TestCreateDungeon(15, 1583642716, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(87, 69)); EXPECT_EQ(Quests[Q_BETRAYER].position, Point(34, 24)) << "Not really required? current bugfix sets this position anyway"; } TEST(Drlg_l4, CreateL4Dungeon_diablo_15_1256511996) { LoadExpectedLevelData("diablo/15-1256511996.dun"); gbIsMultiplayer = true; InitQuests(); TestCreateDungeon(15, 1256511996, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(80, 70)); TestCreateDungeon(15, 1256511996, ENTRY_PREV); EXPECT_EQ(ViewPosition, Point(33, 67)); } TEST(Drlg_l4, CreateL4Dungeon_diablo_16_741281013) { LoadExpectedLevelData("diablo/16-741281013.dun"); TestCreateDungeon(16, 741281013, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(58, 42)); } } // namespace