Saveload: Add helper to filter named save load table
This commit is contained in:
@@ -1990,6 +1990,21 @@ std::vector<SaveLoad> SlFilterObject(const SaveLoadTable &slt)
|
|||||||
return save;
|
return save;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SlFilterNamedSaveLoadTable(const NamedSaveLoadTable &nslt, std::vector<SaveLoad> &save)
|
||||||
|
{
|
||||||
|
for (auto &nsld : nslt) {
|
||||||
|
if ((nsld.nsl_flags & NSLF_TABLE_ONLY) != 0) continue;
|
||||||
|
SlFilterObjectMember(nsld.save_load, save);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<SaveLoad> SlFilterNamedSaveLoadTable(const NamedSaveLoadTable &nslt)
|
||||||
|
{
|
||||||
|
std::vector<SaveLoad> save;
|
||||||
|
SlFilterNamedSaveLoadTable(nslt, save);
|
||||||
|
return save;
|
||||||
|
}
|
||||||
|
|
||||||
template <SaveLoadAction action, bool check_version>
|
template <SaveLoadAction action, bool check_version>
|
||||||
bool SlObjectMemberGeneric(void *object, const SaveLoad &sld)
|
bool SlObjectMemberGeneric(void *object, const SaveLoad &sld)
|
||||||
{
|
{
|
||||||
@@ -2449,10 +2464,7 @@ SaveLoadTableData SlTableHeaderOrRiff(const NamedSaveLoadTable &slt)
|
|||||||
if (SlIsTableChunk()) return SlTableHeader(slt);
|
if (SlIsTableChunk()) return SlTableHeader(slt);
|
||||||
|
|
||||||
SaveLoadTableData saveloads;
|
SaveLoadTableData saveloads;
|
||||||
for (auto &nsld : slt) {
|
SlFilterNamedSaveLoadTable(slt, saveloads);
|
||||||
if ((nsld.nsl_flags & NSLF_TABLE_ONLY) != 0) continue;
|
|
||||||
SlFilterObjectMember(nsld.save_load, saveloads);
|
|
||||||
}
|
|
||||||
return saveloads;
|
return saveloads;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1080,6 +1080,7 @@ void SlObject(void *object, const SaveLoadTable &slt);
|
|||||||
bool SlObjectMember(void *object, const SaveLoad &sld);
|
bool SlObjectMember(void *object, const SaveLoad &sld);
|
||||||
|
|
||||||
std::vector<SaveLoad> SlFilterObject(const SaveLoadTable &slt);
|
std::vector<SaveLoad> SlFilterObject(const SaveLoadTable &slt);
|
||||||
|
std::vector<SaveLoad> SlFilterNamedSaveLoadTable(const NamedSaveLoadTable &nslt);
|
||||||
void SlObjectSaveFiltered(void *object, const SaveLoadTable &slt);
|
void SlObjectSaveFiltered(void *object, const SaveLoadTable &slt);
|
||||||
void SlObjectLoadFiltered(void *object, const SaveLoadTable &slt);
|
void SlObjectLoadFiltered(void *object, const SaveLoadTable &slt);
|
||||||
void SlObjectPtrOrNullFiltered(void *object, const SaveLoadTable &slt);
|
void SlObjectPtrOrNullFiltered(void *object, const SaveLoadTable &slt);
|
||||||
|
Reference in New Issue
Block a user