diff --git a/SourceT/pack_test.cpp b/SourceT/pack_test.cpp index 6a18393fd..61111427b 100644 --- a/SourceT/pack_test.cpp +++ b/SourceT/pack_test.cpp @@ -94,6 +94,7 @@ TEST(pack, UnPackItem_diablo) dvl::gbIsHellfire = false; dvl::gbIsHellfireSaveGame = false; + dvl::gbIsMultiplayer = false; for (size_t i = 0; i < sizeof(diabloItems) / sizeof(*diabloItems); i++) { dvl::UnPackItem(&diabloItems[i], &id); @@ -102,6 +103,32 @@ TEST(pack, UnPackItem_diablo) } } +dvl::PkItemStruct diabloItemsMP[] = { + // clang-format off + // iSeed, iCreateInfo, idx, bId, bDur, bMDur, bCh, bMCh, wValue, dwBuff + { 309674341, 193, 109, 0, 0, 0, 0, 0, 0, 0 }, // Book of Firebolt + // clang-format on +}; + +const char *diabloItemNamesMP[] = { + "Book of Firebolt", +}; + +TEST(pack, UnPackItem_diablo_multiplayer) +{ + dvl::ItemStruct id; + + dvl::gbIsHellfire = false; + dvl::gbIsHellfireSaveGame = false; + dvl::gbIsMultiplayer = true; + + for (size_t i = 0; i < sizeof(diabloItemsMP) / sizeof(*diabloItemsMP); i++) { + dvl::UnPackItem(&diabloItemsMP[i], &id); + + ASSERT_STREQ(id._iIName, diabloItemNamesMP[i]); + } +} + dvl::PkItemStruct hellfireItems[] = { // clang-format off // iSeed, iCreateInfo, idx, bId, bDur, bMDur, bCh, bMCh, wValue, dwBuff @@ -186,6 +213,7 @@ TEST(pack, UnPackItem_hellfire) dvl::gbIsHellfire = true; dvl::gbIsHellfireSaveGame = true; + dvl::gbIsMultiplayer = false; for (size_t i = 0; i < sizeof(hellfireItems) / sizeof(*hellfireItems); i++) { dvl::UnPackItem(&hellfireItems[i], &id); @@ -196,11 +224,9 @@ TEST(pack, UnPackItem_hellfire) TEST(pack, UnPackItem_empty) { - dvl::PkItemStruct is; + dvl::PkItemStruct is = { 0, 0, 0xFFFF, 0, 0, 0, 0, 0, 0, 0 }; dvl::ItemStruct id; - is.idx = 0xFFFF; - dvl::UnPackItem(&is, &id); ASSERT_EQ(id._itype, dvl::ITYPE_NONE); @@ -208,12 +234,9 @@ TEST(pack, UnPackItem_empty) TEST(pack, UnPackItem_gold_small) { - dvl::PkItemStruct is; + dvl::PkItemStruct is = { 0, 0, dvl::IDI_GOLD, 0, 0, 0, 0, 0, 1000, 0 }; dvl::ItemStruct id; - is.idx = 0; - is.wValue = 1000; - dvl::UnPackItem(&is, &id); ASSERT_EQ(id._iCurs, dvl::ICURS_GOLD_SMALL); @@ -221,12 +244,9 @@ TEST(pack, UnPackItem_gold_small) TEST(pack, UnPackItem_gold_medium) { - dvl::PkItemStruct is; + dvl::PkItemStruct is = { 0, 0, dvl::IDI_GOLD, 0, 0, 0, 0, 0, 1001, 0 }; dvl::ItemStruct id; - is.idx = 0; - is.wValue = 1001; - dvl::UnPackItem(&is, &id); ASSERT_EQ(id._iCurs, dvl::ICURS_GOLD_MEDIUM); @@ -234,13 +254,21 @@ TEST(pack, UnPackItem_gold_medium) TEST(pack, UnPackItem_gold_large) { - dvl::PkItemStruct is; + dvl::PkItemStruct is = { 0, 0, dvl::IDI_GOLD, 0, 0, 0, 0, 0, 2500, 0 }; dvl::ItemStruct id; - is.idx = 0; - is.wValue = 2500; - dvl::UnPackItem(&is, &id); ASSERT_EQ(id._iCurs, dvl::ICURS_GOLD_LARGE); } + +TEST(pack, UnPackItem_ear) +{ + dvl::PkItemStruct is = { 1633955154, 17509, 23, 111, 103, 117, 101, 68, 19843, 0 }; + dvl::ItemStruct id; + + dvl::UnPackItem(&is, &id); + + ASSERT_STREQ(id._iName, "Ear of Dead-RogueDM"); + ASSERT_EQ(id._ivalue, 3); +}