diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index cffeada6b..119215e11 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -345,6 +345,7 @@ add_devilutionx_object_library(libdevilutionx_game_mode ) target_link_dependencies(libdevilutionx_game_mode PRIVATE tl + magic_enum::magic_enum libdevilutionx_options ) @@ -374,6 +375,7 @@ add_devilutionx_object_library(libdevilutionx_init init.cpp ) target_link_dependencies(libdevilutionx_init PUBLIC + magic_enum::magic_enum libdevilutionx_assets libdevilutionx_config libdevilutionx_mpq @@ -462,6 +464,7 @@ add_devilutionx_object_library(libdevilutionx_lighting target_link_dependencies(libdevilutionx_lighting PUBLIC DevilutionX::SDL fmt::fmt + magic_enum::magic_enum tl unordered_dense::unordered_dense libdevilutionx_vision @@ -600,6 +603,7 @@ add_devilutionx_object_library(libdevilutionx_options target_link_dependencies(libdevilutionx_options PUBLIC DevilutionX::SDL fmt::fmt + magic_enum::magic_enum tl unordered_dense::unordered_dense libdevilutionx_controller_buttons @@ -639,6 +643,7 @@ target_link_dependencies(libdevilutionx_player PUBLIC DevilutionX::SDL fmt::fmt + magic_enum::magic_enum tl unordered_dense::unordered_dense libdevilutionx_game_mode @@ -725,6 +730,16 @@ if(NOSOUND) effects_stubs.cpp engine/sound_stubs.cpp ) + target_link_dependencies(libdevilutionx_sound PUBLIC + DevilutionX::SDL + fmt::fmt + magic_enum::magic_enum + tl + unordered_dense::unordered_dense + libdevilutionx_options + libdevilutionx_random + libdevilutionx_sdl2_to_1_2_backports + ) else() add_devilutionx_object_library(libdevilutionx_sound effects.cpp diff --git a/Source/effects.cpp b/Source/effects.cpp index 39f313a3c..38cb7cd9d 100644 --- a/Source/effects.cpp +++ b/Source/effects.cpp @@ -22,12 +22,6 @@ #include "player.h" #include "utils/is_of.hpp" -template <> -struct magic_enum::customize::enum_range { - static constexpr int min = static_cast(devilution::SfxID::None); - static constexpr int max = static_cast(devilution::SfxID::LAST); -}; - namespace devilution { int sfxdelay; diff --git a/Source/monstdat.cpp b/Source/monstdat.cpp index 6ee169f63..c948b39dd 100644 --- a/Source/monstdat.cpp +++ b/Source/monstdat.cpp @@ -29,18 +29,6 @@ #include "textdat.h" #include "utils/language.h" -template <> -struct magic_enum::customize::enum_range { - static constexpr int min = devilution::MT_INVALID; - static constexpr int max = devilution::NUM_DEFAULT_MTYPES; -}; - -template <> -struct magic_enum::customize::enum_range { - static constexpr int min = 0; - static constexpr int max = 128; -}; - namespace devilution { namespace { diff --git a/Source/monstdat.h b/Source/monstdat.h index 9c1730eb3..43c6bb55c 100644 --- a/Source/monstdat.h +++ b/Source/monstdat.h @@ -10,6 +10,8 @@ #include #include +#include + #include "cursor.h" #include "textdat.h" @@ -349,3 +351,15 @@ void LoadMonsterData(); size_t GetNumMonsterSprites(); } // namespace devilution + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = devilution::MT_INVALID; + static constexpr int max = devilution::NUM_DEFAULT_MTYPES; +}; + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = 0; + static constexpr int max = 128; +}; diff --git a/Source/sound_effect_enums.h b/Source/sound_effect_enums.h index ba7347ca7..9c8822de0 100644 --- a/Source/sound_effect_enums.h +++ b/Source/sound_effect_enums.h @@ -2,6 +2,8 @@ #include +#include + namespace devilution { enum class HeroSpeech : uint8_t { @@ -1039,3 +1041,9 @@ enum sfx_flag : uint8_t { }; } // namespace devilution + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = static_cast(devilution::SfxID::None); + static constexpr int max = static_cast(devilution::SfxID::LAST); +}; diff --git a/Source/textdat.cpp b/Source/textdat.cpp index b6eb1890b..0b02604eb 100644 --- a/Source/textdat.cpp +++ b/Source/textdat.cpp @@ -14,12 +14,6 @@ #include "effects.h" #include "utils/language.h" -template <> -struct magic_enum::customize::enum_range { - static constexpr int min = devilution::TEXT_NONE; - static constexpr int max = devilution::NUM_DEFAULT_TEXT_IDS; -}; - namespace devilution { /* todo: move text out of struct */ diff --git a/Source/textdat.h b/Source/textdat.h index 8d9b7a264..0028870a1 100644 --- a/Source/textdat.h +++ b/Source/textdat.h @@ -5,11 +5,11 @@ */ #pragma once -#include #include #include #include +#include #include "sound_effect_enums.h" @@ -440,3 +440,9 @@ tl::expected<_speech_id, std::string> ParseSpeechId(std::string_view value); void LoadTextData(); } // namespace devilution + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = devilution::TEXT_NONE; + static constexpr int max = devilution::NUM_DEFAULT_TEXT_IDS; +};