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

#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