summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/DataLoader.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-12 18:53:54 +0200
committerAki <please@ignore.pl>2022-04-12 18:53:54 +0200
commitcbc7d648a83274c87a2d3796a2877adc8c48cb42 (patch)
tree12a981594d8c084464048b86c63a6a9fc0d25457 /StarsEx/DataLoader.cpp
parent9c1439b0e5e1c90723c0f2f6e22a24a935623542 (diff)
downloadstarshatter-cbc7d648a83274c87a2d3796a2877adc8c48cb42.zip
starshatter-cbc7d648a83274c87a2d3796a2877adc8c48cb42.tar.gz
starshatter-cbc7d648a83274c87a2d3796a2877adc8c48cb42.tar.bz2
Added a way to weak reference sources without any dependencies
Diffstat (limited to 'StarsEx/DataLoader.cpp')
-rw-r--r--StarsEx/DataLoader.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/StarsEx/DataLoader.cpp b/StarsEx/DataLoader.cpp
index 12a6c67..95e8444 100644
--- a/StarsEx/DataLoader.cpp
+++ b/StarsEx/DataLoader.cpp
@@ -104,7 +104,7 @@ DataLoader::EnableMedia(bool enable)
// +--------------------------------------------------------------------+
int
-DataLoader::InsertDatafile(const char* name, Group group, int pos)
+DataLoader::MountDatafile(const char* name, Group group, int pos)
{
FILE* f = fopen(name, "rb");
if (!f) {
@@ -123,17 +123,21 @@ DataLoader::InsertDatafile(const char* name, Group group, int pos)
sources.append(source);
else
sources.insert(source, pos);
- return 0;
+ return source->Id();
}
-void
-DataLoader::ClearSources()
+int
+DataLoader::UnmountSource(int src)
{
ListIter<DataSource> iter = sources;
while (++iter) {
- if (iter.value()->GetGroup() != Group::BASE)
+ if (iter.value()->Id() == src) {
delete iter.removeItem();
+ return src;
+ }
}
+ last_error = Text::format("Source with id is not mounted: %d", src);
+ return FAILED;
}
// +--------------------------------------------------------------------+