summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/DataLoader.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-10 22:54:31 +0200
committerAki <please@ignore.pl>2022-04-10 23:03:50 +0200
commite21edf8b0b2b3bfd054f34664d8425bcd64adb78 (patch)
tree6a1edf645da75bcfa069e2ba33baa1c334e79f31 /StarsEx/DataLoader.cpp
parent94ca59386cb94877ea15856a3c17c116c756a16d (diff)
downloadstarshatter-e21edf8b0b2b3bfd054f34664d8425bcd64adb78.zip
starshatter-e21edf8b0b2b3bfd054f34664d8425bcd64adb78.tar.gz
starshatter-e21edf8b0b2b3bfd054f34664d8425bcd64adb78.tar.bz2
Added groups for data sources
Diffstat (limited to 'StarsEx/DataLoader.cpp')
-rw-r--r--StarsEx/DataLoader.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/StarsEx/DataLoader.cpp b/StarsEx/DataLoader.cpp
index 024a9b3..c5ad9bd 100644
--- a/StarsEx/DataLoader.cpp
+++ b/StarsEx/DataLoader.cpp
@@ -96,7 +96,7 @@ DataLoader::EnableMedia(bool enable)
// +--------------------------------------------------------------------+
int
-DataLoader::InsertDatafile(const char* name, int pos)
+DataLoader::InsertDatafile(const char* name, Group group, int pos)
{
FILE* f = fopen(name, "rb");
if (!f) {
@@ -110,7 +110,7 @@ DataLoader::InsertDatafile(const char* name, int pos)
if (archive) delete archive;
return DATAFILE_INVALID;
}
- DataSource* source = new ArchiveDataSource(archive);
+ DataSource* source = new ArchiveDataSource(archive, group);
if (pos < 0)
sources.append(source);
else
@@ -121,7 +121,11 @@ DataLoader::InsertDatafile(const char* name, int pos)
void
DataLoader::ClearSources()
{
- sources.destroy();
+ ListIter<DataSource> iter = sources;
+ while (++iter) {
+ if (iter.value()->GetGroup() != Group::BASE)
+ delete iter.removeItem();
+ }
}
// +--------------------------------------------------------------------+