You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.2 KiB
105 lines
3.2 KiB
#include <fmt/format.h> |
|
#include <gtest/gtest.h> |
|
|
|
#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
|
|
|