Upload patches

This commit is contained in:
Jujstme 2025-03-07 17:43:23 +01:00
parent 45c0880145
commit 46d1c31bda
7 changed files with 32 additions and 11 deletions

View file

@ -1,3 +1,17 @@
> [!WARNING]
> This repository is a fork of the Unleashed Recompiled project, specifically designed to support binary Arch Linux packaging through the AUR and the PKGBUILD system. For Windows builds, please refer to the upstream repository.
> **Do not attempt to compile the content of this repository with Windows targets**.
> Please be also aware this package, unlike the Flatpak version provided upstream, may not be compatible with the Hedgemod Manager differently from the Flatpak version provided upstream.
Binaries from this repository are built using:
```
$ cmake -DCMAKE_AR=/usr/bin/llvm-ar -DCMAKE_RANLIB=/usr/bin/llvm-ranlib . --preset linux-release
$ cmake --build ./out/build/linux-release --target UnleashedRecomp
```
---
<p align="center">
<img src="https://raw.githubusercontent.com/hedge-dev/UnleashedRecompResources/refs/heads/main/images/logo/Logo.png" width="512"/>
</p>

View file

@ -33,7 +33,7 @@ PPC_FUNC_IMPL(__imp__sub_824EB490);
PPC_FUNC(sub_824EB490)
{
App::s_isInit = true;
App::s_isMissingDLC = !Installer::checkAllDLC(GetGamePath());
App::s_isMissingDLC = !Installer::checkAllDLC(g_gamepath);
App::s_language = Config::Language;
SWA::SGlobals::Init();

View file

@ -315,11 +315,11 @@ uint32_t XamContentCreateEx(uint32_t dwUserIndex, const char* szRootName, const
}
else if (pContentData->dwContentType == XCONTENTTYPE_DLC)
{
root = GAME_INSTALL_DIRECTORY "/dlc";
root = g_gamepath + "/dlc";
}
else
{
root = GAME_INSTALL_DIRECTORY;
root = g_gamepath;
}
XamRegisterContent(*pContentData, root);

View file

@ -61,8 +61,8 @@ void KiSystemStartup()
{
const auto gameContent = XamMakeContent(XCONTENTTYPE_RESERVED, "Game");
const auto updateContent = XamMakeContent(XCONTENTTYPE_RESERVED, "Update");
XamRegisterContent(gameContent, GAME_INSTALL_DIRECTORY "/game");
XamRegisterContent(updateContent, GAME_INSTALL_DIRECTORY "/update");
XamRegisterContent(gameContent, g_gamepath + "/game");
XamRegisterContent(updateContent, g_gamepath + "/update");
const auto saveFilePath = GetSaveFilePath(true);
bool saveFileExists = std::filesystem::exists(saveFilePath);
@ -94,7 +94,7 @@ void KiSystemStartup()
XamContentCreateEx(0, "D", &gameContent, OPEN_EXISTING, nullptr, nullptr, 0, 0, nullptr);
std::error_code ec;
for (auto& file : std::filesystem::directory_iterator(GAME_INSTALL_DIRECTORY "/dlc", ec))
for (auto& file : std::filesystem::directory_iterator(g_gamepath + "/dlc", ec))
{
if (file.is_directory())
{
@ -244,7 +244,7 @@ int main(int argc, char *argv[])
HostStartup();
std::filesystem::path modulePath;
bool isGameInstalled = Installer::checkGameInstall(GAME_INSTALL_DIRECTORY, modulePath);
bool isGameInstalled = Installer::checkGameInstall(g_gamepath, modulePath);
bool runInstallerWizard = forceInstaller || forceDLCInstaller || !isGameInstalled;
if (runInstallerWizard)
{
@ -254,7 +254,7 @@ int main(int argc, char *argv[])
std::_Exit(1);
}
if (!InstallerWizard::Run(GAME_INSTALL_DIRECTORY, isGameInstalled && forceDLCInstaller))
if (!InstallerWizard::Run(g_gamepath, isGameInstalled && forceDLCInstaller))
{
std::_Exit(0);
}

View file

@ -100,7 +100,7 @@ void ModLoader::Init()
{
configIni = {};
if (!configIni.read(GAME_INSTALL_DIRECTORY "/cpkredir.ini"))
if (!configIni.read(g_gamepath + "/cpkredir.ini"))
return;
}

View file

@ -3,6 +3,7 @@
std::filesystem::path g_executableRoot = os::process::GetExecutablePath().remove_filename();
std::filesystem::path g_userPath = BuildUserPath();
extern const std::string g_gamepath = GetGamePath();
bool CheckPortable()
{

View file

@ -10,14 +10,20 @@
extern std::filesystem::path g_executableRoot;
inline std::filesystem::path GetGamePath()
inline std::string GetGamePath()
{
return GAME_INSTALL_DIRECTORY;
const char* homeDir = getenv("HOME");
if (homeDir == nullptr)
return g_executableRoot.string();
std::filesystem::path homePath = homeDir;
std::filesystem::path gamePath = homePath / ".local/share" / USER_DIRECTORY;
return gamePath.string();
}
bool CheckPortable();
std::filesystem::path BuildUserPath();
const std::filesystem::path& GetUserPath();
extern const std::string g_gamepath;
inline std::filesystem::path GetSavePath(bool checkForMods)
{