From 9b5a80222b635df80f1023adf6ba4a0279a7c687 Mon Sep 17 00:00:00 2001 From: SupSuper Date: Sat, 8 Jun 2019 16:31:31 +0100 Subject: [PATCH] Fix XCOM1 not starting --- src/Engine/ModInfo.cpp | 20 ++++++++++---------- src/Engine/ModInfo.h | 2 +- src/Mod/Mod.cpp | 5 +++-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Engine/ModInfo.cpp b/src/Engine/ModInfo.cpp index 9f7277b038..23d68819e9 100644 --- a/src/Engine/ModInfo.cpp +++ b/src/Engine/ModInfo.cpp @@ -72,17 +72,17 @@ void ModInfo::load(const std::string &filename) } } -const std::string &ModInfo::getPath() const { return _path; } -const std::string &ModInfo::getName() const { return _name; } -const std::string &ModInfo::getDescription() const { return _desc; } -const std::string &ModInfo::getVersion() const { return _version; } -const std::string &ModInfo::getAuthor() const { return _author; } -const std::string &ModInfo::getId() const { return _id; } -const std::string &ModInfo::getMaster() const { return _master; } -bool ModInfo::isMaster() const { return _isMaster; } +const std::string &ModInfo::getPath() const { return _path; } +const std::string &ModInfo::getName() const { return _name; } +const std::string &ModInfo::getDescription() const { return _desc; } +const std::string &ModInfo::getVersion() const { return _version; } +const std::string &ModInfo::getAuthor() const { return _author; } +const std::string &ModInfo::getId() const { return _id; } +const std::string &ModInfo::getMaster() const { return _master; } +bool ModInfo::isMaster() const { return _isMaster; } const std::string &ModInfo::getRequiredExtendedVersion() const { return _requiredExtendedVersion; } -std::string ModInfo::getResourceConfigFile() const { return _path + "/" + _resourceConfigFile; } -int ModInfo::getReservedSpace() const { return _reservedSpace; } +const std::string &ModInfo::getResourceConfigFile() const { return _resourceConfigFile; } +int ModInfo::getReservedSpace() const { return _reservedSpace; } /** * Checks if a given mod can be activated. diff --git a/src/Engine/ModInfo.h b/src/Engine/ModInfo.h index 327d88be11..ed56ed05dd 100644 --- a/src/Engine/ModInfo.h +++ b/src/Engine/ModInfo.h @@ -65,7 +65,7 @@ class ModInfo /// Gets the OXCE version required by this mod. const std::string &getRequiredExtendedVersion() const; /// Gets ruleset file where are defined based resources like required original game data. - std::string getResourceConfigFile() const; + const std::string &getResourceConfigFile() const; /// Gets the list of external resource dirs to load for this mod. const std::vector &getExternalResourceDirs() const; }; diff --git a/src/Mod/Mod.cpp b/src/Mod/Mod.cpp index 2d2acd92ef..acb8625d95 100644 --- a/src/Mod/Mod.cpp +++ b/src/Mod/Mod.cpp @@ -896,9 +896,10 @@ void Mod::loadAll(const std::vector< std::pair< std::string, std::vector i; ++i) { _modCurrent = &_modData.at(0); - if (_modCurrent->info->isMaster()) + const ModInfo *info = _modCurrent->info; + if (info->isMaster() && !info->getResourceConfigFile().empty()) { - std::string path = _modCurrent->info->getResourceConfigFile(); + std::string path = info->getPath() + "/" + info->getResourceConfigFile(); if (CrossPlatform::fileExists(path)) { loadResourceConfigFile(path);