mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 06:05:38 +00:00
Added a %GAMEDIR% variable that expands to the game directory.
Also fixed an issue where the %BASENAME% variable would not work with directories interpreted as files.
This commit is contained in:
parent
d418c05614
commit
e8e7465935
|
@ -871,6 +871,7 @@ void FileData::launchGame()
|
||||||
|
|
||||||
std::string commandRaw {command};
|
std::string commandRaw {command};
|
||||||
std::string romPath {Utils::FileSystem::getEscapedPath(mPath)};
|
std::string romPath {Utils::FileSystem::getEscapedPath(mPath)};
|
||||||
|
std::string baseName {Utils::FileSystem::getStem(mPath)};
|
||||||
|
|
||||||
// For the special case where a directory has a supported file extension and is therefore
|
// For the special case where a directory has a supported file extension and is therefore
|
||||||
// interpreted as a file, check if there is a matching filename inside the directory.
|
// interpreted as a file, check if there is a matching filename inside the directory.
|
||||||
|
@ -880,12 +881,12 @@ void FileData::launchGame()
|
||||||
if (Utils::FileSystem::getFileName(file) == Utils::FileSystem::getFileName(mPath) &&
|
if (Utils::FileSystem::getFileName(file) == Utils::FileSystem::getFileName(mPath) &&
|
||||||
(Utils::FileSystem::isRegularFile(file) || Utils::FileSystem::isSymlink(file))) {
|
(Utils::FileSystem::isRegularFile(file) || Utils::FileSystem::isSymlink(file))) {
|
||||||
romPath = Utils::FileSystem::getEscapedPath(file);
|
romPath = Utils::FileSystem::getEscapedPath(file);
|
||||||
|
baseName = baseName.substr(0, baseName.find("."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string baseName {Utils::FileSystem::getStem(mPath)};
|
|
||||||
const std::string romRaw {Utils::FileSystem::getPreferredPath(mPath)};
|
const std::string romRaw {Utils::FileSystem::getPreferredPath(mPath)};
|
||||||
const std::string esPath {Utils::FileSystem::getExePath()};
|
const std::string esPath {Utils::FileSystem::getExePath()};
|
||||||
bool runInBackground {false};
|
bool runInBackground {false};
|
||||||
|
@ -1313,11 +1314,17 @@ void FileData::launchGame()
|
||||||
command = Utils::String::replace(command, "%EMUDIR%",
|
command = Utils::String::replace(command, "%EMUDIR%",
|
||||||
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
||||||
Utils::String::replace(binaryPath, "\"", ""))));
|
Utils::String::replace(binaryPath, "\"", ""))));
|
||||||
|
command = Utils::String::replace(command, "%GAMEDIR%",
|
||||||
|
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
||||||
|
Utils::String::replace(romPath, "\"", ""))));
|
||||||
#else
|
#else
|
||||||
command = Utils::String::replace(command, "%ESPATH%", Utils::FileSystem::getExePath());
|
command = Utils::String::replace(command, "%ESPATH%", Utils::FileSystem::getExePath());
|
||||||
command = Utils::String::replace(command, "%EMUDIR%",
|
command = Utils::String::replace(command, "%EMUDIR%",
|
||||||
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
||||||
Utils::String::replace(binaryPath, "\\", ""))));
|
Utils::String::replace(binaryPath, "\\", ""))));
|
||||||
|
command = Utils::String::replace(command, "%GAMEDIR%",
|
||||||
|
Utils::FileSystem::getEscapedPath(Utils::FileSystem::getParent(
|
||||||
|
Utils::String::replace(romPath, "\\", ""))));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Trim any leading and trailing whitespace characters as they could cause launch issues.
|
// Trim any leading and trailing whitespace characters as they could cause launch issues.
|
||||||
|
|
Loading…
Reference in a new issue