diff --git a/include/ArmorAddonOverrideService.h b/include/ArmorAddonOverrideService.h index 8b6f9f3..1e9baa7 100644 --- a/include/ArmorAddonOverrideService.h +++ b/include/ArmorAddonOverrideService.h @@ -15,14 +15,17 @@ enum class LocationType: std::uint32_t { World = 0, Town = 1, Dungeon = 2, + City = 9, WorldSnowy = 3, TownSnowy = 4, DungeonSnowy = 5, + CitySnowy = 10, WorldRainy = 6, TownRainy = 7, DungeonRainy = 8, + CityRainy = 11 }; struct WeatherFlags { diff --git a/mod_files/interface/translations/skyrimoutfitsystem_english.txt b/mod_files/interface/translations/skyrimoutfitsystem_english.txt index 48ef639..b077fba 100644 Binary files a/mod_files/interface/translations/skyrimoutfitsystem_english.txt and b/mod_files/interface/translations/skyrimoutfitsystem_english.txt differ diff --git a/src/ArmorAddonOverrideService.cpp b/src/ArmorAddonOverrideService.cpp index 73a8bc5..0212669 100644 --- a/src/ArmorAddonOverrideService.cpp +++ b/src/ArmorAddonOverrideService.cpp @@ -238,12 +238,16 @@ std::optional ArmorAddonOverrideService::getLocationOutfit(Locati #define CHECK_LOCATION(TYPE, CHECK_CODE) if (locationOutfits.count(LocationType::TYPE) && (CHECK_CODE)) return std::optional(LocationType::TYPE); std::optional ArmorAddonOverrideService::checkLocationType(const std::unordered_set& keywords, const WeatherFlags& weather_flags) { - CHECK_LOCATION(TownSnowy, keywords.count("LocTypeHabitation") || weather_flags.snowy); - CHECK_LOCATION(TownRainy, keywords.count("LocTypeHabitation") || weather_flags.rainy); - CHECK_LOCATION(Town, keywords.count("LocTypeHabitation")); + CHECK_LOCATION(CitySnowy, keywords.count("LocTypeCity") && weather_flags.snowy); + CHECK_LOCATION(CityRainy, keywords.count("LocTypeCity") && weather_flags.rainy); + CHECK_LOCATION(City, keywords.count("LocTypeCity")); - CHECK_LOCATION(DungeonSnowy, keywords.count("LocTypeDungeon") || weather_flags.snowy); - CHECK_LOCATION(DungeonRainy, keywords.count("LocTypeDungeon") || weather_flags.rainy); + CHECK_LOCATION(TownSnowy, keywords.count("LocTypeTown") && weather_flags.snowy); + CHECK_LOCATION(TownRainy, keywords.count("LocTypeTown") && weather_flags.rainy); + CHECK_LOCATION(Town, keywords.count("LocTypeTown")); + + CHECK_LOCATION(DungeonSnowy, keywords.count("LocTypeDungeon") && weather_flags.snowy); + CHECK_LOCATION(DungeonRainy, keywords.count("LocTypeDungeon") && weather_flags.rainy); CHECK_LOCATION(Dungeon, keywords.count("LocTypeDungeon")); CHECK_LOCATION(WorldSnowy, weather_flags.snowy); diff --git a/src/OutfitSystem.cpp b/src/OutfitSystem.cpp index 6117f5d..f893b1c 100644 --- a/src/OutfitSystem.cpp +++ b/src/OutfitSystem.cpp @@ -595,6 +595,9 @@ extern SKSESerializationInterface* g_Serialization; LocationType::World, LocationType::WorldSnowy, LocationType::WorldRainy, + LocationType::City, + LocationType::CitySnowy, + LocationType::CityRainy, LocationType::Town, LocationType::TownSnowy, LocationType::TownRainy, diff --git a/src/main.cpp b/src/main.cpp index 444a08c..44c4561 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -57,11 +57,12 @@ DllExport bool SKSEPlugin_Query(const SKSEInterface* a_skse, PluginInfo* a_info) return false; } - if (a_skse->runtimeVersion > MAKE_EXE_VERSION(1, 5, 97) || a_skse->runtimeVersion < MAKE_EXE_VERSION(1, 5, 73)) - { - _FATALERROR("[FATAL ERROR] Unsupported runtime version %08X!\n", a_skse->runtimeVersion); - return false; - } + // NOTE: Version check is disabled since we're trying to use the Address Library + // if (a_skse->runtimeVersion > MAKE_EXE_VERSION(1, 5, 97) || a_skse->runtimeVersion < MAKE_EXE_VERSION(1, 5, 73)) + // { + // _FATALERROR("[FATAL ERROR] Unsupported runtime version %08X!\n", a_skse->runtimeVersion); + // return false; + // } g_Messaging = static_cast(a_skse->QueryInterface(kInterface_Messaging)); if (!g_Messaging)