From 8101e2c0ba12e1a4728e9d6808de5a10b851165c Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sat, 12 Aug 2023 12:38:39 +0900 Subject: [PATCH 001/404] Add `c_any_of` and friends Adds handy helpers for performing algorithms on the entire container. They're prefixed with `c_` for container. This naming convention is identical to some popular C++ libraries, such as Abseil. --- Source/DiabloUI/diabloui.cpp | 3 +- Source/DiabloUI/title.cpp | 4 +- Source/control.cpp | 10 ++-- Source/debug.cpp | 5 +- Source/dvlnet/zerotier_native.cpp | 3 +- Source/engine/render/text_render.cpp | 7 ++- Source/inv.h | 9 +-- Source/levels/themes.cpp | 7 +-- Source/levels/trigs.cpp | 8 +-- Source/loadsave.cpp | 5 +- Source/options.cpp | 7 ++- Source/panels/charpanel.cpp | 3 +- Source/panels/spell_list.cpp | 4 +- Source/plrmsg.cpp | 3 +- Source/qol/autopickup.cpp | 9 ++- Source/qol/autopickup.h | 2 + Source/utils/algorithm/container.hpp | 86 ++++++++++++++++++++++++++++ Source/utils/language.cpp | 3 +- 18 files changed, 139 insertions(+), 39 deletions(-) create mode 100644 Source/utils/algorithm/container.hpp diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index 3754049aa..1960011fb 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -19,6 +19,7 @@ #include "engine/load_pcx.hpp" #include "engine/render/clx_render.hpp" #include "hwcursor.hpp" +#include "utils/algorithm/container.hpp" #include "utils/display.h" #include "utils/language.h" #include "utils/log.hpp" @@ -651,7 +652,7 @@ bool UiValidPlayerName(string_view name) // Only basic latin alphabet is supported for multiplayer characters to avoid rendering issues for players who do // not have fonts.mpq installed - if (!std::all_of(name.begin(), name.end(), IsBasicLatin)) + if (!c_all_of(name, IsBasicLatin)) return false; string_view bannedNames[] = { diff --git a/Source/DiabloUI/title.cpp b/Source/DiabloUI/title.cpp index d8c43e2c4..afd22a7be 100644 --- a/Source/DiabloUI/title.cpp +++ b/Source/DiabloUI/title.cpp @@ -5,6 +5,7 @@ #include "discord/discord.h" #include "engine/load_clx.hpp" #include "engine/load_pcx.hpp" +#include "utils/algorithm/container.hpp" #include "utils/language.h" #include "utils/sdl_geometry.h" #include "utils/stdcompat/optional.hpp" @@ -68,8 +69,7 @@ void UiTitleDialog() discord_manager::UpdateMenu(); while (PollEvent(&event) != 0) { - std::vector menuActions = GetMenuActions(event); - if (std::any_of(menuActions.begin(), menuActions.end(), [](auto menuAction) { return menuAction != MenuAction_NONE; })) { + if (c_any_of(GetMenuActions(event), [](MenuAction menuAction) { return menuAction != MenuAction_NONE; })) { endMenu = true; break; } diff --git a/Source/control.cpp b/Source/control.cpp index 9a40e7f3a..0f9a1d496 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -44,6 +44,7 @@ #include "qol/xpbar.h" #include "stores.h" #include "towners.h" +#include "utils/algorithm/container.hpp" #include "utils/format_int.hpp" #include "utils/language.h" #include "utils/log.hpp" @@ -257,7 +258,7 @@ void PrintInfo(const Surface &out) const int space[] = { 18, 12, 6, 3, 0 }; Rectangle infoArea { GetMainPanel().position + Displacement { 177, 46 }, { 288, 60 } }; - const int newLineCount = std::count(InfoString.str().begin(), InfoString.str().end(), '\n'); + const int newLineCount = c_count(InfoString.str(), '\n'); const int spaceIndex = std::min(4, newLineCount); const int spacing = space[spaceIndex]; const int lineHeight = 12 + spacing; @@ -351,7 +352,7 @@ std::string TextCmdHelp(const string_view parameter) } return ret; } - auto textCmdIterator = std::find_if(TextCmdList.begin(), TextCmdList.end(), [&](const TextCmdItem &elem) { return elem.text == parameter; }); + auto textCmdIterator = c_find_if(TextCmdList, [&](const TextCmdItem &elem) { return elem.text == parameter; }); if (textCmdIterator == TextCmdList.end()) return StrCat(_("Command "), parameter, _(" is unkown.")); auto &textCmdItem = *textCmdIterator; @@ -533,7 +534,7 @@ bool CheckTextCommand(const string_view text) if (text.size() < 1 || text[0] != '/') return false; - auto textCmdIterator = std::find_if(TextCmdList.begin(), TextCmdList.end(), [&](const TextCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); }); + auto textCmdIterator = c_find_if(TextCmdList, [&](const TextCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); }); if (textCmdIterator == TextCmdList.end()) { InitDiabloMsg(StrCat(_("Command \""), text, "\" is unknown.")); return true; @@ -1039,8 +1040,7 @@ void CheckPanelInfo() } break; case SpellType::Scroll: { AddPanelString(fmt::format(fmt::runtime(_("Scroll of {:s}")), pgettext("spell", GetSpellData(spellId).sNameText))); - const InventoryAndBeltPlayerItemsRange items { myPlayer }; - const int scrollCount = std::count_if(items.begin(), items.end(), [spellId](const Item &item) { + const int scrollCount = c_count_if(InventoryAndBeltPlayerItemsRange { myPlayer }, [spellId](const Item &item) { return item.isScrollOf(spellId); }); AddPanelString(fmt::format(fmt::runtime(ngettext("{:d} Scroll", "{:d} Scrolls", scrollCount)), scrollCount)); diff --git a/Source/debug.cpp b/Source/debug.cpp index 189d82f32..59355a775 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -28,6 +28,7 @@ #include "quests.h" #include "spells.h" #include "towners.h" +#include "utils/algorithm/container.hpp" #include "utils/endian_stream.hpp" #include "utils/file_util.h" #include "utils/language.h" @@ -139,7 +140,7 @@ std::string DebugCmdHelp(const string_view parameter) } return ret; } - auto debugCmdIterator = std::find_if(DebugCmdList.begin(), DebugCmdList.end(), [&](const DebugCmdItem &elem) { return elem.text == parameter; }); + auto debugCmdIterator = c_find_if(DebugCmdList, [&](const DebugCmdItem &elem) { return elem.text == parameter; }); if (debugCmdIterator == DebugCmdList.end()) return StrCat("Debug command ", parameter, " wasn't found"); auto &dbgCmdItem = *debugCmdIterator; @@ -1122,7 +1123,7 @@ void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3S bool CheckDebugTextCommand(const string_view text) { - auto debugCmdIterator = std::find_if(DebugCmdList.begin(), DebugCmdList.end(), [&](const DebugCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); }); + auto debugCmdIterator = c_find_if(DebugCmdList, [&](const DebugCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); }); if (debugCmdIterator == DebugCmdList.end()) return false; diff --git a/Source/dvlnet/zerotier_native.cpp b/Source/dvlnet/zerotier_native.cpp index 791250151..21696d3d3 100644 --- a/Source/dvlnet/zerotier_native.cpp +++ b/Source/dvlnet/zerotier_native.cpp @@ -27,6 +27,7 @@ #include #include +#include "utils/algorithm/container.hpp" #include "utils/log.hpp" #include "utils/paths.h" @@ -40,7 +41,7 @@ namespace { #ifdef DVL_ZT_SYMLINK bool HasMultiByteChars(string_view path) { - return std::any_of(path.begin(), path.end(), IsTrailUtf8CodeUnit); + return c_any_of(path, IsTrailUtf8CodeUnit); } std::string ComputeAlternateFolderName(string_view path) diff --git a/Source/engine/render/text_render.cpp b/Source/engine/render/text_render.cpp index e81942eb6..c85efb634 100644 --- a/Source/engine/render/text_render.cpp +++ b/Source/engine/render/text_render.cpp @@ -23,6 +23,7 @@ #include "engine/palette.h" #include "engine/point.hpp" #include "engine/render/clx_render.hpp" +#include "utils/algorithm/container.hpp" #include "utils/display.h" #include "utils/language.h" #include "utils/sdl_compat.h" @@ -241,10 +242,10 @@ bool IsBreakAllowed(char32_t codepoint, char32_t nextCodepoint) std::size_t CountNewlines(string_view fmt, const DrawStringFormatArg *args, std::size_t argsLen) { - std::size_t result = std::count(fmt.begin(), fmt.end(), '\n'); + std::size_t result = c_count(fmt, '\n'); for (std::size_t i = 0; i < argsLen; ++i) { if (args[i].GetType() == DrawStringFormatArg::Type::StringView) - result += std::count(args[i].GetFormatted().begin(), args[i].GetFormatted().end(), '\n'); + result += c_count(args[i].GetFormatted(), '\n'); } return result; } @@ -662,7 +663,7 @@ uint32_t DrawString(const Surface &out, string_view text, const Rectangle &rect, lineHeight = GetLineHeight(text, size); if (HasAnyOf(flags, UiFlags::VerticalCenter)) { - int textHeight = (std::count(text.cbegin(), text.cend(), '\n') + 1) * lineHeight; + int textHeight = (c_count(text, '\n') + 1) * lineHeight; characterPosition.y += std::max(0, (rect.size.height - textHeight) / 2); } diff --git a/Source/inv.h b/Source/inv.h index b65d64970..96e4eb866 100644 --- a/Source/inv.h +++ b/Source/inv.h @@ -12,6 +12,7 @@ #include "inv_iterators.hpp" #include "items.h" #include "player.h" +#include "utils/algorithm/container.hpp" namespace devilution { @@ -247,7 +248,7 @@ template bool HasInventoryItem(Player &player, Predicate &&predicate) { const InventoryPlayerItemsRange items { player }; - return std::find_if(items.begin(), items.end(), std::forward(predicate)) != items.end(); + return c_find_if(items, std::forward(predicate)) != items.end(); } /** @@ -257,7 +258,7 @@ template bool HasBeltItem(Player &player, Predicate &&predicate) { const BeltPlayerItemsRange items { player }; - return std::find_if(items.begin(), items.end(), std::forward(predicate)) != items.end(); + return c_find_if(items, std::forward(predicate)) != items.end(); } /** @@ -306,7 +307,7 @@ template bool RemoveInventoryItem(Player &player, Predicate &&predicate) { const InventoryPlayerItemsRange items { player }; - const auto it = std::find_if(items.begin(), items.end(), std::forward(predicate)); + const auto it = c_find_if(items, std::forward(predicate)); if (it == items.end()) return false; player.RemoveInvItem(static_cast(it.index())); @@ -322,7 +323,7 @@ template bool RemoveBeltItem(Player &player, Predicate &&predicate) { const BeltPlayerItemsRange items { player }; - const auto it = std::find_if(items.begin(), items.end(), std::forward(predicate)); + const auto it = c_find_if(items, std::forward(predicate)); if (it == items.end()) return false; player.RemoveSpdBarItem(static_cast(it.index())); diff --git a/Source/levels/themes.cpp b/Source/levels/themes.cpp index afaf0b910..29c9cabf4 100644 --- a/Source/levels/themes.cpp +++ b/Source/levels/themes.cpp @@ -17,6 +17,7 @@ #include "monster.h" #include "objects.h" #include "quests.h" +#include "utils/algorithm/container.hpp" #include "utils/str_cat.hpp" namespace devilution { @@ -87,8 +88,7 @@ bool TFit_Shrine(int i) bool CheckThemeObj5(Point origin, int8_t regionId) { - const auto searchArea = PointsInRectangle(Rectangle { origin, 2 }); - return std::all_of(searchArea.cbegin(), searchArea.cend(), [regionId](Point testPosition) { + return c_all_of(PointsInRectangle(Rectangle { origin, 2 }), [regionId](Point testPosition) { // note out-of-bounds tiles are not solid, this function relies on the guard in TFit_Obj5 and dungeon border if (IsTileSolid(testPosition)) { return false; @@ -154,8 +154,7 @@ bool TFit_GoatShrine(int t) bool CheckThemeObj3(Point origin, int8_t regionId, unsigned frequency = 0) { - const auto searchArea = PointsInRectangle(Rectangle { origin, 1 }); - return std::all_of(searchArea.cbegin(), searchArea.cend(), [regionId, frequency](Point testPosition) { + return c_all_of(PointsInRectangle(Rectangle { origin, 1 }), [regionId, frequency](Point testPosition) { if (!InDungeonBounds(testPosition)) { return false; } diff --git a/Source/levels/trigs.cpp b/Source/levels/trigs.cpp index 75765d23e..46b85487e 100644 --- a/Source/levels/trigs.cpp +++ b/Source/levels/trigs.cpp @@ -14,6 +14,7 @@ #include "cursor.h" #include "error.h" #include "init.h" +#include "utils/algorithm/container.hpp" #include "utils/language.h" #include "utils/utf8.hpp" @@ -934,10 +935,9 @@ bool EntranceBoundaryContains(Point entrance, Point position) { constexpr Displacement entranceOffsets[7] = { { 0, 0 }, { -1, 0 }, { 0, -1 }, { -1, -1 }, { -2, -1 }, { -1, -2 }, { -2, -2 } }; - return std::any_of( - std::begin(entranceOffsets), - std::end(entranceOffsets), - [&](auto offset) { return entrance + offset == position; }); + return c_any_of( + entranceOffsets, + [=](Displacement offset) { return entrance + offset == position; }); } } // namespace devilution diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index e43fff4b5..7d2329f4a 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -34,6 +34,7 @@ #include "playerdat.hpp" #include "qol/stash.h" #include "stores.h" +#include "utils/algorithm/container.hpp" #include "utils/endian.hpp" #include "utils/language.h" @@ -2338,8 +2339,8 @@ void SaveStash(SaveWriter &stashWriter) std::vector pagesToSave; for (const auto &stashPage : Stash.stashGrids) { - if (std::any_of(stashPage.second.cbegin(), stashPage.second.cend(), [](const auto &row) { - return std::any_of(row.cbegin(), row.cend(), [](auto cell) { + if (c_any_of(stashPage.second, [](const auto &row) { + return c_any_of(row, [](StashStruct::StashCell cell) { return cell > 0; }); })) { diff --git a/Source/options.cpp b/Source/options.cpp index 66c5a26bc..548291381 100644 --- a/Source/options.cpp +++ b/Source/options.cpp @@ -24,6 +24,7 @@ #include "platform/locale.hpp" #include "qol/monhealthbar.h" #include "qol/xpbar.h" +#include "utils/algorithm/container.hpp" #include "utils/display.h" #include "utils/file_util.h" #include "utils/language.h" @@ -806,7 +807,7 @@ string_view OptionEntryResolution::GetListDescription(size_t index) const size_t OptionEntryResolution::GetActiveListIndex() const { CheckResolutionsAreInitialized(); - auto found = std::find_if(resolutions.begin(), resolutions.end(), [this](const auto &x) { return x.first == this->size; }); + auto found = c_find_if(resolutions, [this](const auto &x) { return x.first == this->size; }); if (found == resolutions.end()) return 0; return std::distance(resolutions.begin(), found); @@ -1248,7 +1249,7 @@ void OptionEntryLanguageCode::CheckLanguagesAreInitialized() const } // Ensures that the ini specified language is present in languages list even if unknown (for example if someone starts to translate a new language) - if (std::find_if(languages.begin(), languages.end(), [this](const auto &x) { return x.first == this->szCode; }) == languages.end()) { + if (c_find_if(languages, [this](const auto &x) { return x.first == this->szCode; }) == languages.end()) { languages.emplace_back(szCode, szCode); } } @@ -1266,7 +1267,7 @@ string_view OptionEntryLanguageCode::GetListDescription(size_t index) const size_t OptionEntryLanguageCode::GetActiveListIndex() const { CheckLanguagesAreInitialized(); - auto found = std::find_if(languages.begin(), languages.end(), [this](const auto &x) { return x.first == this->szCode; }); + auto found = c_find_if(languages, [this](const auto &x) { return x.first == this->szCode; }); if (found == languages.end()) return 0; return std::distance(languages.begin(), found); diff --git a/Source/panels/charpanel.cpp b/Source/panels/charpanel.cpp index 79d5216bf..cbb3d3073 100644 --- a/Source/panels/charpanel.cpp +++ b/Source/panels/charpanel.cpp @@ -15,6 +15,7 @@ #include "panels/ui_panels.hpp" #include "player.h" #include "playerdat.hpp" +#include "utils/algorithm/container.hpp" #include "utils/display.h" #include "utils/format_int.hpp" #include "utils/language.h" @@ -240,7 +241,7 @@ void DrawShadowString(const Surface &out, const PanelEntry &entry) // If the text is less tall then the field, we center it vertically relative to the field. // Otherwise, we draw from the top of the field. - const int textHeight = (std::count(wrapped.begin(), wrapped.end(), '\n') + 1) * GetLineHeight(wrapped, GameFont12); + const int textHeight = (c_count(wrapped, '\n') + 1) * GetLineHeight(wrapped, GameFont12); const int labelHeight = std::max(PanelFieldHeight, textHeight); DrawString(out, text, { labelPosition + Displacement { -2, 2 }, { entry.labelLength, labelHeight } }, style | UiFlags::ColorBlack, Spacing); diff --git a/Source/panels/spell_list.cpp b/Source/panels/spell_list.cpp index 162d4dcd4..7953413f5 100644 --- a/Source/panels/spell_list.cpp +++ b/Source/panels/spell_list.cpp @@ -15,6 +15,7 @@ #include "panels/spell_icons.hpp" #include "player.h" #include "spells.h" +#include "utils/algorithm/container.hpp" #include "utils/language.h" #include "utils/str_cat.hpp" #include "utils/utf8.hpp" @@ -170,8 +171,7 @@ void DrawSpellList(const Surface &out) } PrintSBookSpellType(out, spellListItem.location, _("Scroll"), spellColor); InfoString = fmt::format(fmt::runtime(_("Scroll of {:s}")), pgettext("spell", spellDataItem.sNameText)); - const InventoryAndBeltPlayerItemsRange items { myPlayer }; - const int scrollCount = std::count_if(items.begin(), items.end(), [spellId](const Item &item) { + const int scrollCount = c_count_if(InventoryAndBeltPlayerItemsRange { myPlayer }, [spellId](const Item &item) { return item.isScrollOf(spellId); }); AddPanelString(fmt::format(fmt::runtime(ngettext("{:d} Scroll", "{:d} Scrolls", scrollCount)), scrollCount)); diff --git a/Source/plrmsg.cpp b/Source/plrmsg.cpp index 84fdd190d..6fa94c559 100644 --- a/Source/plrmsg.cpp +++ b/Source/plrmsg.cpp @@ -15,6 +15,7 @@ #include "inv.h" #include "qol/chatlog.h" #include "qol/stash.h" +#include "utils/algorithm/container.hpp" #include "utils/language.h" #include "utils/utf8.hpp" @@ -39,7 +40,7 @@ std::array Messages; int CountLinesOfText(string_view text) { - return 1 + std::count(text.begin(), text.end(), '\n'); + return 1 + c_count(text, '\n'); } PlayerMessage &GetNextMessage() diff --git a/Source/qol/autopickup.cpp b/Source/qol/autopickup.cpp index 8da479d34..c66ffd936 100644 --- a/Source/qol/autopickup.cpp +++ b/Source/qol/autopickup.cpp @@ -3,11 +3,14 @@ * * QoL feature for automatically picking up gold */ +#include "qol/autopickup.h" + +#include #include "inv_iterators.hpp" #include "options.h" #include "player.h" -#include +#include "utils/algorithm/container.hpp" namespace devilution { namespace { @@ -34,8 +37,8 @@ bool HasRoomForGold() int NumMiscItemsInInv(int iMiscId) { - InventoryAndBeltPlayerItemsRange items { *MyPlayer }; - return std::count_if(items.begin(), items.end(), [iMiscId](const Item &item) { return item._iMiscId == iMiscId; }); + return c_count_if(InventoryAndBeltPlayerItemsRange { *MyPlayer }, + [iMiscId](const Item &item) { return item._iMiscId == iMiscId; }); } bool DoPickup(Item item) diff --git a/Source/qol/autopickup.h b/Source/qol/autopickup.h index 089b003e1..924ea11c2 100644 --- a/Source/qol/autopickup.h +++ b/Source/qol/autopickup.h @@ -6,6 +6,8 @@ #pragma once +#include "player.h" + namespace devilution { void AutoPickup(const Player &player); diff --git a/Source/utils/algorithm/container.hpp b/Source/utils/algorithm/container.hpp new file mode 100644 index 000000000..03ff2a7af --- /dev/null +++ b/Source/utils/algorithm/container.hpp @@ -0,0 +1,86 @@ +#pragma once + +#include +#include +#include +#include + +namespace devilution { + +// Internal namespace that sets up ADL lookup and the container Iterator type. +namespace container_internal { +using std::begin; +using std::end; + +template +using Iterator = decltype(begin(std::declval())); + +template +using Difference = typename std::iterator_traits>::difference_type; + +template +Iterator c_begin(C &c) +{ + return begin(c); +} + +template +Iterator c_end(C &c) +{ + return end(c); +} + +} // namespace container_internal + +template +bool c_any_of(const C &c, Predicate &&predicate) +{ + return std::any_of(container_internal::begin(c), + container_internal::end(c), + std::forward(predicate)); +} + +template +bool c_all_of(const C &c, Predicate &&predicate) +{ + return std::all_of(container_internal::begin(c), + container_internal::end(c), + std::forward(predicate)); +} + +template +bool c_none_of(const C &c, Predicate &&predicate) +{ + return std::none_of(container_internal::begin(c), + container_internal::end(c), + std::forward(predicate)); +} + +template +container_internal::Iterator +c_find_if(C &c, Predicate &&predicate) +{ + return std::find_if(container_internal::begin(c), + container_internal::end(c), + std::forward(predicate)); +} + +template +container_internal::Difference +c_count_if(const C &c, Predicate &&predicate) +{ + return std::count_if(container_internal::c_begin(c), + container_internal::c_end(c), + std::forward(predicate)); +} + +template +container_internal::Difference +c_count(const C &c, T &&value) +{ + return std::count(container_internal::c_begin(c), + container_internal::c_end(c), + std::forward(value)); +} + +} // namespace devilution diff --git a/Source/utils/language.cpp b/Source/utils/language.cpp index 18157d510..24f04b4e2 100644 --- a/Source/utils/language.cpp +++ b/Source/utils/language.cpp @@ -9,6 +9,7 @@ #include "engine/assets.hpp" #include "options.h" +#include "utils/algorithm/container.hpp" #include "utils/file_util.h" #include "utils/log.hpp" #include "utils/paths.h" @@ -338,7 +339,7 @@ bool HasTranslation(const std::string &locale) return true; } - return std::any_of(Extensions.cbegin(), Extensions.cend(), [locale](const char *extension) { + return c_any_of(Extensions, [locale](const char *extension) { return FindAsset((locale + extension).c_str()).ok(); }); } From 384a303afa1fac2f24ec395d00f566bdb9ed89df Mon Sep 17 00:00:00 2001 From: qndel Date: Sat, 22 Jul 2023 23:50:42 +0200 Subject: [PATCH 002/404] add IsAreaOk function instead of multiple manual checks --- Source/objects.cpp | 65 +++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 47 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index 720eceb7a..6b6ad654f 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -321,6 +321,15 @@ bool RndLocOk(int xp, int yp) return IsNoneOf(leveltype, DTYPE_CATHEDRAL, DTYPE_CRYPT) || dPiece[xp][yp] <= 125 || dPiece[xp][yp] >= 143; } +bool IsAreaOk(Rectangle rect) +{ + for (Point position : PointsInRectangle(rect)) { + if (!RndLocOk(position.x, position.y)) + return false; + } + return true; +} + bool CanPlaceWallTrap(int xp, int yp) { if (dObject[xp][yp] != 0) @@ -339,15 +348,7 @@ void InitRndLocObj(int min, int max, _object_id objtype) while (true) { int xp = GenerateRnd(80) + 16; int yp = GenerateRnd(80) + 16; - if (RndLocOk(xp - 1, yp - 1) - && RndLocOk(xp, yp - 1) - && RndLocOk(xp + 1, yp - 1) - && RndLocOk(xp - 1, yp) - && RndLocOk(xp, yp) - && RndLocOk(xp + 1, yp) - && RndLocOk(xp - 1, yp + 1) - && RndLocOk(xp, yp + 1) - && RndLocOk(xp + 1, yp + 1)) { + if (IsAreaOk(Rectangle { { xp - 1, yp - 1 }, { 3, 3 } })) { AddObject(objtype, { xp, yp }); break; } @@ -362,18 +363,7 @@ void InitRndLocBigObj(int min, int max, _object_id objtype) while (true) { int xp = GenerateRnd(80) + 16; int yp = GenerateRnd(80) + 16; - if (RndLocOk(xp - 1, yp - 2) - && RndLocOk(xp, yp - 2) - && RndLocOk(xp + 1, yp - 2) - && RndLocOk(xp - 1, yp - 1) - && RndLocOk(xp, yp - 1) - && RndLocOk(xp + 1, yp - 1) - && RndLocOk(xp - 1, yp) - && RndLocOk(xp, yp) - && RndLocOk(xp + 1, yp) - && RndLocOk(xp - 1, yp + 1) - && RndLocOk(xp, yp + 1) - && RndLocOk(xp + 1, yp + 1)) { + if (IsAreaOk(Rectangle { { xp - 1, yp - 2 }, { 3, 4 } })) { AddObject(objtype, { xp, yp }); break; } @@ -845,15 +835,7 @@ void AddNakrulLever() while (true) { int xp = GenerateRnd(80) + 16; int yp = GenerateRnd(80) + 16; - if (RndLocOk(xp - 1, yp - 1) - && RndLocOk(xp, yp - 1) - && RndLocOk(xp + 1, yp - 1) - && RndLocOk(xp - 1, yp) - && RndLocOk(xp, yp) - && RndLocOk(xp + 1, yp) - && RndLocOk(xp - 1, yp + 1) - && RndLocOk(xp, yp + 1) - && RndLocOk(xp + 1, yp + 1)) { + if (IsAreaOk(Rectangle { { xp - 1, yp - 1 }, { 3, 3 } })) { break; } } @@ -969,23 +951,18 @@ void AddLazStand() int cnt = 0; int xp; int yp; - bool found = false; - while (!found) { - found = true; + while (true) { xp = GenerateRnd(80) + 16; yp = GenerateRnd(80) + 16; - for (int yy = -3; yy <= 3; yy++) { - for (int xx = -2; xx <= 3; xx++) { - if (!RndLocOk(xp + xx, yp + yy)) - found = false; - } - } - if (!found) { + + if (!IsAreaOk(Rectangle { { xp - 2, yp - 3 }, { 6, 7 } })) { cnt++; if (cnt > 10000) { InitRndLocObj(1, 1, OBJ_LAZSTAND); return; } + } else { + break; } } AddObject(OBJ_LAZSTAND, { xp, yp }); @@ -1528,13 +1505,7 @@ Point GetRndObjLoc(int randarea) randarea--; x = GenerateRnd(MAXDUNX); y = GenerateRnd(MAXDUNY); - bool failed = false; - for (int i = 0; i < randarea && !failed; i++) { - for (int j = 0; j < randarea && !failed; j++) { - failed = !RndLocOk(i + x, j + y); - } - } - if (!failed) + if (IsAreaOk(Rectangle { { x, y }, { randarea, randarea } })) break; } return { x, y }; From 663c33475bffd5e1d859a735238245ade4a8262b Mon Sep 17 00:00:00 2001 From: staphen Date: Sun, 30 Jul 2023 10:14:18 -0400 Subject: [PATCH 003/404] Introduce function to determine if ZT comms channel to peer is relayed --- 3rdParty/libzt/CMakeLists.txt | 2 +- Source/dvlnet/protocol_zt.cpp | 22 +++++++++++ Source/dvlnet/protocol_zt.h | 1 + Source/dvlnet/zerotier_native.cpp | 65 ++++++++++++++++++++++++------- Source/dvlnet/zerotier_native.h | 4 +- 5 files changed, 77 insertions(+), 17 deletions(-) diff --git a/3rdParty/libzt/CMakeLists.txt b/3rdParty/libzt/CMakeLists.txt index e3feb8cd3..76219cefa 100644 --- a/3rdParty/libzt/CMakeLists.txt +++ b/3rdParty/libzt/CMakeLists.txt @@ -5,7 +5,7 @@ set(BUILD_HOST_SELFTEST OFF) include(FetchContent) FetchContent_Declare(libzt GIT_REPOSITORY https://github.com/diasurgical/libzt.git - GIT_TAG d6c6a069a5041a3e89594c447ced3f15d77618b8) + GIT_TAG def49803307920da0ab5b9e9b70b399fdc2943dc) FetchContent_MakeAvailableExcludeFromAll(libzt) if(NOT ANDROID) diff --git a/Source/dvlnet/protocol_zt.cpp b/Source/dvlnet/protocol_zt.cpp index ff50a33e8..43f6c4724 100644 --- a/Source/dvlnet/protocol_zt.cpp +++ b/Source/dvlnet/protocol_zt.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -312,6 +313,27 @@ bool protocol_zt::is_peer_connected(endpoint &peer) return peer_list.count(peer) != 0 && peer_list[peer].fd != -1; } +bool protocol_zt::is_peer_relayed(const endpoint &peer) const +{ + ip6_addr_t address = {}; + IP6_ADDR_PART(&address, 0, peer.addr[0], peer.addr[1], peer.addr[2], peer.addr[3]); + IP6_ADDR_PART(&address, 1, peer.addr[4], peer.addr[5], peer.addr[6], peer.addr[7]); + IP6_ADDR_PART(&address, 2, peer.addr[8], peer.addr[9], peer.addr[10], peer.addr[11]); + IP6_ADDR_PART(&address, 3, peer.addr[12], peer.addr[13], peer.addr[14], peer.addr[15]); + + const u8_t *hwaddr; + if (nd6_get_next_hop_addr_or_queue(netif_default, nullptr, &address, &hwaddr) != ERR_OK) + return true; + + uint64_t mac = hwaddr[0]; + mac = (mac << 8) | hwaddr[1]; + mac = (mac << 8) | hwaddr[2]; + mac = (mac << 8) | hwaddr[3]; + mac = (mac << 8) | hwaddr[4]; + mac = (mac << 8) | hwaddr[5]; + return zerotier_is_relayed(mac); +} + std::string protocol_zt::make_default_gamename() { std::string ret; diff --git a/Source/dvlnet/protocol_zt.h b/Source/dvlnet/protocol_zt.h index 95513bec1..ade771ea1 100644 --- a/Source/dvlnet/protocol_zt.h +++ b/Source/dvlnet/protocol_zt.h @@ -75,6 +75,7 @@ public: bool get_disconnected(endpoint &peer); bool network_online(); bool is_peer_connected(endpoint &peer); + bool is_peer_relayed(const endpoint &peer) const; static std::string make_default_gamename(); private: diff --git a/Source/dvlnet/zerotier_native.cpp b/Source/dvlnet/zerotier_native.cpp index 21696d3d3..82d9c68dd 100644 --- a/Source/dvlnet/zerotier_native.cpp +++ b/Source/dvlnet/zerotier_native.cpp @@ -2,6 +2,7 @@ #include #include +#include #ifdef USE_SDL1 #include "utils/sdl2_to_1_2_backports.h" @@ -38,6 +39,15 @@ namespace net { namespace { +// static constexpr uint64_t zt_earth = 0x8056c2e21c000001; +constexpr uint64_t ZtNetwork = 0xa84ac5c10a7ebb5f; + +std::atomic_bool zt_network_ready(false); +std::atomic_bool zt_node_online(false); +std::atomic_bool zt_joined(false); + +std::unordered_map ztPeerEvents; + #ifdef DVL_ZT_SYMLINK bool HasMultiByteChars(string_view path) { @@ -107,38 +117,48 @@ std::string ToZTCompliantPath(string_view configPath) } #endif -} // namespace - -// static constexpr uint64_t zt_earth = 0x8056c2e21c000001; -static constexpr uint64_t ZtNetwork = 0xa84ac5c10a7ebb5f; - -static std::atomic_bool zt_network_ready(false); -static std::atomic_bool zt_node_online(false); -static std::atomic_bool zt_joined(false); - -static void Callback(void *ptr) +void Callback(void *ptr) { zts_event_msg_t *msg = reinterpret_cast(ptr); - // printf("callback %i\n", msg->eventCode); - if (msg->event_code == ZTS_EVENT_NODE_ONLINE) { + + switch (msg->event_code) { + case ZTS_EVENT_NODE_ONLINE: Log("ZeroTier: ZTS_EVENT_NODE_ONLINE, nodeId={:x}", (unsigned long long)msg->node->node_id); zt_node_online = true; if (!zt_joined) { zts_net_join(ZtNetwork); zt_joined = true; } - } else if (msg->event_code == ZTS_EVENT_NODE_OFFLINE) { + break; + + case ZTS_EVENT_NODE_OFFLINE: Log("ZeroTier: ZTS_EVENT_NODE_OFFLINE"); zt_node_online = false; - } else if (msg->event_code == ZTS_EVENT_NETWORK_READY_IP6) { + break; + + case ZTS_EVENT_NETWORK_READY_IP6: Log("ZeroTier: ZTS_EVENT_NETWORK_READY_IP6, networkId={:x}", (unsigned long long)msg->network->net_id); zt_ip6setup(); zt_network_ready = true; - } else if (msg->event_code == ZTS_EVENT_ADDR_ADDED_IP6) { + break; + + case ZTS_EVENT_ADDR_ADDED_IP6: print_ip6_addr(&(msg->addr->addr)); + break; + + case ZTS_EVENT_PEER_DIRECT: + case ZTS_EVENT_PEER_RELAY: + ztPeerEvents[msg->peer->peer_id] = static_cast(msg->event_code); + break; + + case ZTS_EVENT_PEER_PATH_DEAD: + ztPeerEvents.erase(msg->peer->peer_id); + break; } } +} // namespace + bool zerotier_network_ready() { return zt_network_ready && zt_node_online; @@ -156,5 +176,20 @@ void zerotier_network_start() zts_node_start(); } +bool zerotier_is_relayed(uint64_t mac) +{ + bool isRelayed = true; + if (zts_core_lock_obtain() != ZTS_ERR_OK) + return isRelayed; + zts_peer_info_t peerInfo; + if (zts_core_query_peer_info(ZtNetwork, mac, &peerInfo) == ZTS_ERR_OK) { + auto peerEvent = ztPeerEvents.find(peerInfo.peer_id); + if (peerEvent != ztPeerEvents.end()) + isRelayed = (peerEvent->second == ZTS_EVENT_PEER_RELAY); + } + zts_core_lock_release(); + return isRelayed; +} + } // namespace net } // namespace devilution diff --git a/Source/dvlnet/zerotier_native.h b/Source/dvlnet/zerotier_native.h index 3febbe6ed..48149e16d 100644 --- a/Source/dvlnet/zerotier_native.h +++ b/Source/dvlnet/zerotier_native.h @@ -1,11 +1,13 @@ #pragma once +#include + namespace devilution { namespace net { bool zerotier_network_ready(); void zerotier_network_start(); -void zerotier_network_stop(); +bool zerotier_is_relayed(uint64_t mac); // NOTE: We have patched our libzt to have the corresponding multicast // MAC hardcoded, since libzt is still missing the proper handling. From 4e3f46603a9266a88cb7fab8632b233521de7eb5 Mon Sep 17 00:00:00 2001 From: ephphatha Date: Sun, 23 Jul 2023 15:39:09 +1000 Subject: [PATCH 004/404] Remove unused attribute _pMaxLvl --- Source/loadsave.cpp | 10 +++++----- Source/player.cpp | 2 -- Source/player.h | 1 - .../demo_0_reference_spawn_0.sv | Bin 391283 -> 391267 bytes 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 7d2329f4a..425c87a52 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -426,11 +426,11 @@ void LoadPlayer(LoadHelper &file, Player &player) player._pMaxMana = file.NextLE(); file.Skip(); // Skip _pManaPer - always derived from mana and maxMana player._pLevel = file.NextLE(); - player._pMaxLvl = file.NextLE(); - file.Skip(2); // Alignment + file.Skip(); // Skip _pMaxLevel - unused + file.Skip(2); // Alignment player._pExperience = file.NextLE(); file.Skip(); // Skip _pMaxExp - unused - player._pNextExper = file.NextLE(); // This can be calculated based on pLevel (which in turn could be calculated based on pExperience) + player._pNextExper = file.NextLE(); // This can be calculated based on _pLevel player._pArmorClass = file.NextLE(); player._pMagResist = file.NextLE(); player._pFireResist = file.NextLE(); @@ -1236,8 +1236,8 @@ void SavePlayer(SaveHelper &file, const Player &player) file.WriteLE(player._pMaxMana); file.Skip(); // Skip _pManaPer file.WriteLE(player._pLevel); - file.WriteLE(player._pMaxLvl); - file.Skip(2); // Alignment + file.Skip(); // skip _pMaxLevel, this value is uninitialised in most cases in Diablo/Hellfire so there's no point setting it. + file.Skip(2); // Alignment file.WriteLE(player._pExperience); file.Skip(); // Skip _pMaxExp file.WriteLE(player._pNextExper); diff --git a/Source/player.cpp b/Source/player.cpp index 03451c661..d59e17266 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2306,7 +2306,6 @@ void CreatePlayer(Player &player, HeroClass c) player._pManaBase = player._pMana; player._pMaxManaBase = player._pMana; - player._pMaxLvl = player._pLevel; player._pExperience = 0; player._pNextExper = ExpLvlsTbl[1]; player._pArmorClass = 0; @@ -2389,7 +2388,6 @@ int CalcStatDiff(Player &player) void NextPlrLevel(Player &player) { player._pLevel++; - player._pMaxLvl++; CalcPlrInv(player, true); diff --git a/Source/player.h b/Source/player.h index a89263c1e..662490682 100644 --- a/Source/player.h +++ b/Source/player.h @@ -320,7 +320,6 @@ struct Player { Direction _pdir; // Direction faced by player (direction enum) HeroClass _pClass; int8_t _pLevel; - int8_t _pMaxLvl; uint8_t _pgfxnum; // Bitmask indicating what variant of the sprite the player is using. The 3 lower bits define weapon (PlayerWeaponGraphic) and the higher bits define armour (starting with PlayerArmorGraphic) int8_t _pISplLvlAdd; /** @brief Specifies whether players are in non-PvP mode. */ diff --git a/test/fixtures/timedemo/WarriorLevel1to2/demo_0_reference_spawn_0.sv b/test/fixtures/timedemo/WarriorLevel1to2/demo_0_reference_spawn_0.sv index 2d3029cf55739c9b2f1c3529dc2904cfd0207032..ab92dc324abf240fefc8fc077bca40536bee7765 100644 GIT binary patch delta 160379 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

AKsf0et@cJE)! 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

$0KiuQO#+~u*Sfi)l-iNDJmvv+w@tahq%>IY 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