@@ -47,7 +47,7 @@ namespace FormSwap
4747
4848 logger::info (" \t reading [{}] : {} conditions" , splitSection[0 ], conditions.size ());
4949
50- ConditionFilters processedConditions (conditions);
50+ ConditionFilters processedConditions (path. substr ( 5 ) + " | " + splitSection[ 1 ], conditions);
5151
5252 CSimpleIniA::TNamesDepend values;
5353 ini.GetAllKeys (section.c_str (), values);
@@ -58,14 +58,14 @@ namespace FormSwap
5858 logger::info (" \t\t\t {} form swaps found" , values.size ());
5959 for (const auto & key : values) {
6060 SwapFormData::GetForms (path, key.pItem , [&](const RE::FormID a_baseID, const SwapFormData& a_swapData) {
61- swapFormsConditional[a_baseID].emplace_back (processedConditions, a_swapData);
61+ swapFormsConditional[a_baseID][processedConditions] .emplace_back (a_swapData);
6262 });
6363 }
6464 } else {
6565 logger::info (" \t\t\t {} ref property overrides found" , values.size ());
6666 for (const auto & key : values) {
6767 ObjectData::GetProperties (path, key.pItem , [&](const RE::FormID a_baseID, const ObjectData& a_objectData) {
68- refPropertiesConditional[a_baseID].emplace_back (processedConditions, a_objectData);
68+ refPropertiesConditional[a_baseID][processedConditions] .emplace_back (a_objectData);
6969 });
7070 }
7171 }
@@ -158,12 +158,12 @@ namespace FormSwap
158158 if (const auto it = swapFormsConditional.find (a_base->GetFormID ()); it != swapFormsConditional.end ()) {
159159 const ConditionalInput input (a_ref, a_base);
160160
161- auto result = std::ranges::find_if ( it->second | std::views::reverse, [&]( auto & conditionalData ) { return input. IsValid (conditionalData. filters ); });
162-
163- if (result != it-> second . rend () ) {
164- for (auto & swapData : result-> data | std::ranges::views::reverse ) {
165- if ( auto swapObject = swapData.GetSwapBase (a_ref)) {
166- return { swapObject, swapData. properties };
161+ for ( auto & [filters, swapDataVec] : it->second | std::ranges:: views::reverse) {
162+ if (input. IsValid (filters)) {
163+ for ( auto & swapData : swapDataVec | std::ranges::views::reverse ) {
164+ if (auto swapObject = swapData. GetSwapBase (a_ref) ) {
165+ return { swapObject, swapData.properties };
166+ }
167167 }
168168 }
169169 }
@@ -177,12 +177,12 @@ namespace FormSwap
177177 if (const auto it = refPropertiesConditional.find (a_base->GetFormID ()); it != refPropertiesConditional.end ()) {
178178 const ConditionalInput input (a_ref, a_base);
179179
180- auto result = std::ranges::find_if ( it->second | std::views::reverse, [&]( auto & conditionalData ) { return input. IsValid (conditionalData. filters ); });
181-
182- if (result != it-> second . rend () ) {
183- for ( auto & objectData : result-> data | std::ranges::views::reverse ) {
184- if ( objectData.HasValidProperties (a_ref)) {
185- return objectData. properties ;
180+ for ( auto & [filters, objectDataVec] : it->second | std::ranges:: views::reverse) {
181+ if (input. IsValid (filters)) {
182+ for ( auto & objectData : objectDataVec | std::ranges::views::reverse ) {
183+ if ( objectData. HasValidProperties (a_ref) ) {
184+ return objectData.properties ;
185+ }
186186 }
187187 }
188188 }
0 commit comments