diff --git a/include/dusk/mod_loader.hpp b/include/dusk/mod_loader.hpp index a4d9db13ed..e475ab129e 100644 --- a/include/dusk/mod_loader.hpp +++ b/include/dusk/mod_loader.hpp @@ -129,4 +129,6 @@ private: void initOverlayFiles(); }; +using ModIndex = std::ranges::range_difference_t().mods())>; + } // namespace dusk diff --git a/src/dusk/ui/mods_window.cpp b/src/dusk/ui/mods_window.cpp index 6c7053584b..d7bd7c1880 100644 --- a/src/dusk/ui/mods_window.cpp +++ b/src/dusk/ui/mods_window.cpp @@ -59,7 +59,7 @@ ModsWindow::ModsWindow() { return; } - for (size_t i = 0; i < mods.size(); ++i) { + for (ModIndex i = 0; i < mods.size(); ++i) { mSnapshot.push_back({mods[i].active, mods[i].load_failed}); add_tab(mods[i].metadata.name, [this, i](Rml::Element* content) { @@ -95,7 +95,7 @@ void ModsWindow::update() { bool dirty = mods.size() != mSnapshot.size(); if (!dirty) { - for (size_t i = 0; i < mods.size(); ++i) { + for (ModIndex i = 0; i < mods.size(); ++i) { if (mods[i].active != mSnapshot[i].active || mods[i].load_failed != mSnapshot[i].load_failed) { diff --git a/src/dusk/ui/mods_window.hpp b/src/dusk/ui/mods_window.hpp index 5f10bc8087..ba550cbf25 100644 --- a/src/dusk/ui/mods_window.hpp +++ b/src/dusk/ui/mods_window.hpp @@ -4,6 +4,8 @@ #include +#include "dusk/mod_loader.hpp" + namespace dusk::ui { class ModsWindow : public Window { @@ -17,7 +19,7 @@ private: bool load_failed; }; std::vector mSnapshot; - int mActiveModIndex = 0; + ModIndex mActiveModIndex = 0; }; } // namespace dusk::ui