@@ -340,6 +340,9 @@ void CacheSystem::ImportEntryFromJson(rapidjson::Value& j_entry, CacheEntryPtr &
340
340
{
341
341
out_entry->addonpart_filenames .insert (j_addonfname.GetString ());
342
342
}
343
+
344
+ // Tuneup details
345
+ out_entry->tuneup_associated_filename = j_entry[" tuneup_associated_filename" ].GetString ();
343
346
}
344
347
345
348
CacheValidity CacheSystem::LoadCacheFileJson ()
@@ -622,6 +625,9 @@ void CacheSystem::ExportEntryToJson(rapidjson::Value& j_entries, rapidjson::Docu
622
625
}
623
626
j_entry.AddMember (" addonpart_filenames" , j_addonfnames, j_doc.GetAllocator ());
624
627
628
+ // Tuneup details
629
+ j_entry.AddMember (" tuneup_associated_filename" , rapidjson::StringRef (entry->tuneup_associated_filename .c_str ()), j_doc.GetAllocator ());
630
+
625
631
// Add entry to list
626
632
j_entries.PushBack (j_entry, j_doc.GetAllocator ());
627
633
}
@@ -1241,8 +1247,10 @@ void CacheSystem::FillTuneupDetailInfo(CacheEntryPtr &entry, TuneupDefPtr& tuneu
1241
1247
entry->description = tuneup_def->description ;
1242
1248
entry->categoryid = tuneup_def->category_id ;
1243
1249
entry->tuneup_def = tuneup_def; // Needed to generate preview image
1250
+ entry->tuneup_associated_filename = tuneup_def->filename ;
1244
1251
1245
1252
Ogre::StringUtil::toLowerCase (entry->guid );
1253
+ Ogre::StringUtil::toLowerCase (entry->tuneup_associated_filename );
1246
1254
}
1247
1255
1248
1256
void CacheSystem::LoadAssetPack (CacheEntryPtr& target_entry, Ogre::String const & assetpack_filename)
@@ -1646,6 +1654,9 @@ CacheEntryPtr CacheSystem::CreateProject(CreateProjectRequest* request)
1646
1654
project_entry->fext = " tuneup" ; // Tell modcache what it is.
1647
1655
project_entry->categoryid = CID_Tuneups; // For display in modcache
1648
1656
project_entry->guid = request->cpr_source_entry ->guid ; // For lookup of tuneups by vehicle GUID.
1657
+ Ogre::StringUtil::toLowerCase (project_entry->guid );
1658
+ project_entry->tuneup_associated_filename = request->cpr_source_entry ->fname ; // For additional filtering of results (GUID marks a family, not individual mod).
1659
+ Ogre::StringUtil::toLowerCase (project_entry->tuneup_associated_filename );
1649
1660
}
1650
1661
else
1651
1662
{
@@ -1672,6 +1683,7 @@ CacheEntryPtr CacheSystem::CreateProject(CreateProjectRequest* request)
1672
1683
1673
1684
TuneupDefPtr tuneup = request->cpr_source_actor ->getWorkingTuneupDef ()->clone ();
1674
1685
tuneup->guid = request->cpr_source_entry ->guid ; // For lookup of tuneups by vehicle GUID.
1686
+ tuneup->filename = request->cpr_source_entry ->fname ; // For additional filtering of results (GUID marks a family, not individual mod).
1675
1687
tuneup->name = request->cpr_name ;
1676
1688
tuneup->description = request->cpr_description ;
1677
1689
tuneup->thumbnail = request->cpr_source_entry ->filecachename ;
@@ -2023,7 +2035,7 @@ size_t CacheSystem::Query(CacheQuery& query)
2023
2035
}
2024
2036
}
2025
2037
2026
- // Filter by target filename (currently only `addonpart_filenames`) ; pass items which have no target filenames listed.
2038
+ // Filter by target filename; pass items which have no target filenames listed.
2027
2039
if (query.cqy_filter_target_filename != " " )
2028
2040
{
2029
2041
if (entry->fext == " addonpart"
@@ -2032,6 +2044,12 @@ size_t CacheSystem::Query(CacheQuery& query)
2032
2044
{
2033
2045
continue ;
2034
2046
}
2047
+ else if (entry->fext == " tuneup"
2048
+ && entry->tuneup_associated_filename != " "
2049
+ && entry->tuneup_associated_filename != query.cqy_filter_target_filename )
2050
+ {
2051
+ continue ;
2052
+ }
2035
2053
}
2036
2054
2037
2055
// Filter by entry type
0 commit comments