diff options
author | Aki <please@ignore.pl> | 2022-04-12 18:53:54 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-12 18:53:54 +0200 |
commit | cbc7d648a83274c87a2d3796a2877adc8c48cb42 (patch) | |
tree | 12a981594d8c084464048b86c63a6a9fc0d25457 /StarsEx/DataLoader.cpp | |
parent | 9c1439b0e5e1c90723c0f2f6e22a24a935623542 (diff) | |
download | starshatter-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.cpp | 14 |
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; } // +--------------------------------------------------------------------+ |