summaryrefslogtreecommitdiff
path: root/src/resources/Resources.cpp
diff options
context:
space:
mode:
authorSteph Enders <smenders@gmail.com>2022-06-27 17:45:44 -0400
committerSteph Enders <smenders@gmail.com>2022-06-27 17:45:44 -0400
commit38d46b2dda0243cfa60bc6945859ebd587e0a851 (patch)
tree3af0286199c6075ad50c36f2218c1c303f9fa921 /src/resources/Resources.cpp
parent734ee0f6352fdb6077c142d90f191c11c32f98d2 (diff)
Update MacOS to compile w/ Boost
MacOS seems to rely on an older/different C++ stdlib than Windows or Linux. So replacing those with Boost equivalents. Mostly contained to the Resources thankfully!
Diffstat (limited to 'src/resources/Resources.cpp')
-rw-r--r--src/resources/Resources.cpp81
1 files changed, 44 insertions, 37 deletions
diff --git a/src/resources/Resources.cpp b/src/resources/Resources.cpp
index ee43002..60ea836 100644
--- a/src/resources/Resources.cpp
+++ b/src/resources/Resources.cpp
@@ -30,50 +30,50 @@
#include <iostream>
Resources::Resources() {
- this->font = std::make_shared<fs::path>();
- this->defaultsLua = std::make_shared<fs::path>();
+ this->font = std::make_shared<filesystem::path>();
+ this->defaultsLua = std::make_shared<filesystem::path>();
}
void Resources::loadFontFiles() {
// We will search 1 level deep
for (auto &base : this->fontSearchDirs()) {
- if (fs::exists(base) && fs::is_directory(base)) {
- for (auto &item : fs::directory_iterator(base)) {
+ if (filesystem::exists(base) && filesystem::is_directory(base)) {
+ for (auto &item : filesystem::directory_iterator(base)) {
// only 1 deep
- if (item.exists() && item.is_directory()) {
- for (auto &file : fs::directory_iterator(item)) {
- if (file.exists() && file.is_regular_file()) {
- auto ext = file.path().extension();
+ if (filesystem::exists(item) && filesystem::is_directory(item)) {
+ for (auto &file : filesystem::directory_iterator(item)) {
+ if (filesystem::exists(file) && filesystem::is_regular_file(file)) {
+ auto ext = filesystem::path(file).extension();
bool matched =
std::any_of(std::begin(FONT_TYPES), std::end(FONT_TYPES),
[ext](auto &supported) {
return supported == ext.generic_string();
});
if (matched) {
- fonts.push_back(file.path());
+ fonts.emplace_back(file);
// set default if not set
- if (!exists(*this->font) ||
- !is_regular_file(*this->font) &&
- file.path().filename() == DEFAULT_FONT) {
- *this->font = file.path();
+ if ((!filesystem::exists(*this->font) ||
+ !filesystem::is_regular_file(*this->font)) &&
+ filesystem::path(file).filename() == DEFAULT_FONT) {
+ *this->font = filesystem::path(file);
}
}
}
}
- } else if (item.is_regular_file()) {
- auto ext = item.path().extension();
+ } else if (filesystem::is_regular_file(item)) {
+ auto ext = filesystem::path(item).extension();
bool matched =
std::any_of(std::begin(FONT_TYPES), std::end(FONT_TYPES),
[ext](auto &supported) {
return supported == ext.generic_string();
});
if (matched) {
- fonts.push_back(item.path());
+ fonts.emplace_back(item);
// set default if not set
- if (!exists(*this->font) ||
- !is_regular_file(*this->font) &&
- item.path().filename() == DEFAULT_FONT) {
- *this->font = item.path();
+ if ((!filesystem::exists(*this->font) ||
+ !filesystem::is_regular_file(*this->font)) &&
+ filesystem::path(item).filename() == DEFAULT_FONT) {
+ *this->font = filesystem::path(item);
}
}
}
@@ -84,11 +84,11 @@ void Resources::loadFontFiles() {
void Resources::loadLevels() {
for (auto &base : this->levelSearchDirs()) {
- if (fs::exists(base) && fs::is_directory(base)) {
- for (auto &dir : fs::directory_iterator(base)) {
- if (dir.exists() && dir.is_directory()) {
- if (fs::exists(dir / DNG_MAP)) {
- this->levels.push_back(dir.path());
+ if (filesystem::exists(base) && filesystem::is_directory(base)) {
+ for (auto &dir : filesystem::directory_iterator(base)) {
+ if (filesystem::exists(dir) && filesystem::is_directory(dir)) {
+ if (filesystem::exists(dir / DNG_MAP)) {
+ this->levels.emplace_back(dir);
}
}
}
@@ -99,36 +99,43 @@ void Resources::loadLevels() {
void Resources::loadDefaultLuaFile() {
for (auto &base : this->defaultsSearchDirs()) {
auto f = base / DEFAULT_LUA;
- if (fs::exists(f)) {
+ if (filesystem::exists(f)) {
*this->defaultsLua = f;
break;
}
}
}
-std::vector<fs::path> Resources::getFontFiles() { return this->fonts; }
-std::vector<fs::path> Resources::getLevels() { return this->levels; }
-shared_ptr<fs::path> Resources::getFontFile() { return this->font; }
-shared_ptr<fs::path> Resources::updateFont(int idx) {
+std::vector<filesystem::path> Resources::getFontFiles() { return this->fonts; }
+std::vector<filesystem::path> Resources::getLevels() { return this->levels; }
+std::shared_ptr<filesystem::path> Resources::getFontFile() {
+ return this->font;
+}
+std::shared_ptr<filesystem::path> Resources::updateFont(int idx) {
auto f = this->fonts[idx];
*this->font = f;
return getFontFile();
}
-shared_ptr<fs::path> Resources::getDefaultsLuaFile() {
+std::shared_ptr<filesystem::path> Resources::getDefaultsLuaFile() {
return this->defaultsLua;
}
-shared_ptr<fs::path> Resources::getLevelMap(int idx) {
+std::shared_ptr<filesystem::path> Resources::getLevelMap(int idx) {
auto lvlBase = this->levels[idx];
- fs::path dngMap = lvlBase / DNG_MAP;
+ filesystem::path dngMap = lvlBase / DNG_MAP;
// existence of the level dng.map is asserted in the initializer
- assert(fs::exists(dngMap));
- return std::make_shared<fs::path>(dngMap);
+ assert(filesystem::exists(dngMap));
+ return std::make_shared<filesystem::path>(dngMap);
}
-std::optional<shared_ptr<fs::path>> Resources::getLevelProcLua(int idx) {
+optional<std::shared_ptr<filesystem::path>>
+Resources::getLevelProcLua(int idx) {
auto lvlBase = this->levels[idx];
auto procLua = lvlBase / PROC_LUA;
if (exists(procLua)) {
- return std::make_shared<fs::path>(procLua);
+ return std::make_shared<filesystem::path>(procLua);
} else {
+#ifdef __APPLE__
+ return boost::optional<std::shared_ptr<filesystem::path>>();
+#else
return nullopt;
+#endif
}
} \ No newline at end of file