From e43cf251fb6b1872f3ad52e5720f3d0654c8fa7f Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 6 Jun 2022 19:15:46 +0200 Subject: [PATCH] Test Hell quest sets using dummies --- test/Fixtures.cmake | 5 ++++ test/drlg_l2_test.cpp | 3 ++ test/drlg_l4_test.cpp | 34 +++++++++++++++++++++++ test/drlg_test.hpp | 2 ++ test/fixtures/Levels/L4Data/Vile1.DUN | Bin 0 -> 1670 bytes test/fixtures/Levels/L4Data/Warlord.DUN | Bin 0 -> 1908 bytes test/fixtures/Levels/L4Data/Warlord2.DUN | Bin 0 -> 1908 bytes test/fixtures/diablo/13-594689775.dun | Bin 0 -> 54404 bytes test/fixtures/diablo/15-1256511996.dun | Bin 0 -> 54404 bytes 9 files changed, 44 insertions(+) create mode 100644 test/fixtures/Levels/L4Data/Vile1.DUN create mode 100644 test/fixtures/Levels/L4Data/Warlord.DUN create mode 100644 test/fixtures/Levels/L4Data/Warlord2.DUN create mode 100644 test/fixtures/diablo/13-594689775.dun create mode 100644 test/fixtures/diablo/15-1256511996.dun diff --git a/test/Fixtures.cmake b/test/Fixtures.cmake index a9b69e2c9..8efed85d2 100644 --- a/test/Fixtures.cmake +++ b/test/Fixtures.cmake @@ -20,7 +20,9 @@ set(devilutionx_fixtures diablo/11-384626536.dun diablo/12-2104541047.dun diablo/13-428074402.dun + diablo/13-594689775.dun diablo/14-717625719.dun + diablo/15-1256511996.dun diablo/15-1583642716.dun diablo/15-1583642716-changed.dun diablo/16-741281013.dun @@ -55,6 +57,9 @@ set(devilutionx_fixtures Levels/L4Data/diab3b.DUN Levels/L4Data/diab4a.DUN Levels/L4Data/diab4b.DUN + Levels/L4Data/Vile1.DUN + Levels/L4Data/Warlord.DUN + Levels/L4Data/Warlord2.DUN ) foreach(fixture ${devilutionx_fixtures}) diff --git a/test/drlg_l2_test.cpp b/test/drlg_l2_test.cpp index ad7c086d7..0b7585ff6 100644 --- a/test/drlg_l2_test.cpp +++ b/test/drlg_l2_test.cpp @@ -13,6 +13,9 @@ TEST(Drlg_l2, CreateL2Dungeon_diablo_5_1677631846) { LoadExpectedLevelData("diablo/5-1677631846.dun"); + InitQuests(); + Quests[Q_BLOOD]._qactive = QUEST_NOTAVAIL; + TestCreateDungeon(5, 1677631846, ENTRY_MAIN); EXPECT_EQ(ViewPosition, Point(27, 28)); TestCreateDungeon(5, 1677631846, ENTRY_PREV); diff --git a/test/drlg_l4_test.cpp b/test/drlg_l4_test.cpp index eb55d05c0..b3aed55e0 100644 --- a/test/drlg_l4_test.cpp +++ b/test/drlg_l4_test.cpp @@ -3,6 +3,7 @@ #include "drlg_test.hpp" #include "gendung.h" +#include "multi.h" #include "quests.h" using namespace devilution; @@ -13,6 +14,9 @@ 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); @@ -21,6 +25,21 @@ TEST(Drlg_l4, CreateL4Dungeon_diablo_13_428074402) 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_TWARPUP); + EXPECT_EQ(ViewPosition, Point(36, 88)); +} + TEST(Drlg_l4, CreateL4Dungeon_diablo_14_717625719) { LoadExpectedLevelData("diablo/14-717625719.dun"); @@ -35,6 +54,8 @@ 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); @@ -52,6 +73,19 @@ TEST(Drlg_l4, CreateL4Dungeon_diablo_15_1583642716) EXPECT_EQ(ViewPosition, Point(87, 69)); } +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"); diff --git a/test/drlg_test.hpp b/test/drlg_test.hpp index 8d01f6926..653f97ac6 100644 --- a/test/drlg_test.hpp +++ b/test/drlg_test.hpp @@ -6,6 +6,7 @@ #pragma once #include "engine/load_file.hpp" +#include "themes.h" #include "utils/paths.h" using namespace devilution; @@ -55,6 +56,7 @@ void TestCreateDungeon(int level, uint32_t seed, lvl_entry entry) pMegaTiles = std::make_unique(GetTileCount(leveltype)); CreateDungeon(seed, entry); + CreateThemeRooms(); const uint16_t *tileLayer = &DunData[2]; diff --git a/test/fixtures/Levels/L4Data/Vile1.DUN b/test/fixtures/Levels/L4Data/Vile1.DUN new file mode 100644 index 0000000000000000000000000000000000000000..6777e99266e0d4772b078c7fd131ba6be7c85dde GIT binary patch literal 1670 zcmZQ)U}xZDaAj~{a05b11_lOuAclZMhIj@>Fq4ge4M;OX+X4e=1jMRI=u5*t|@BwUCjM=BH9TvGKCQjg7@sP@5Bpo$VQcT|2f L1V%%E{15;D{jCY> literal 0 HcmV?d00001 diff --git a/test/fixtures/Levels/L4Data/Warlord.DUN b/test/fixtures/Levels/L4Data/Warlord.DUN new file mode 100644 index 0000000000000000000000000000000000000000..61dd1aef32b4425d2763acd8ecc4a65d98a27070 GIT binary patch literal 1908 zcmd;JU}x}WaAI&^a0Nm)237_J21X!;0X7C7274e!mq8OO6b~fr8FU!588l!@7@QgO z7_=DF!Tbau=?Ir$U|?hLWZ(yy53vDaK9ck(b2J1<2!SLL)S@fJrx%|bx;eP`q?&=O i9>#{zxa=58;<;eQ<^V|$W?+Eu!OT%&Gz3O)2mk=toeMAk literal 0 HcmV?d00001 diff --git a/test/fixtures/Levels/L4Data/Warlord2.DUN b/test/fixtures/Levels/L4Data/Warlord2.DUN new file mode 100644 index 0000000000000000000000000000000000000000..c6e0e0c02982caccdbad759b1d5969cecec9b707 GIT binary patch literal 1908 zcmd;JU}x}WaAI&^a0Nm)AT7Ya$bbNBK%PC2tIMDX7GwkR>=|?zv>7zud}jtd1}z44 rDBqdE5zK-RApQJ6^C3340cjp2*-_?b2#kinXb6mkz-S1JoDcv2+WiLQ literal 0 HcmV?d00001 diff --git a/test/fixtures/diablo/13-594689775.dun b/test/fixtures/diablo/13-594689775.dun new file mode 100644 index 0000000000000000000000000000000000000000..7da2e18e6d27c09a079bc73c2aa37481992d5fb9 GIT binary patch literal 54404 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 j{!^I-`O#rk*00{mM;+3$&Z6mg$h^5&O?