always use full path to avoid issues with working directories in wine

This commit is contained in:
FunkyFr3sh 2023-11-12 23:58:10 +01:00
parent 8cfe73e834
commit 07d26d7bed
2 changed files with 16 additions and 10 deletions

View file

@ -24,6 +24,8 @@ int Savesettings;
int Resolutions;
int Minfps;
#define GAME_PATH (TPath::GetDirectoryName(Application->ExeName) + "\\")
//---------------------------------------------------------------------------
__fastcall TConfigForm::TConfigForm(TComponent* Owner)
: TForm(Owner)
@ -41,7 +43,7 @@ void __fastcall TConfigForm::CreateParams(TCreateParams & Params)
void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
{
auto *ini = new TIniFile(".\\ddraw.ini");
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
ini->WriteString("ddraw", "configlang", IsEnglish ? "auto" : "english");
delete ini;
@ -58,7 +60,7 @@ void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
void __fastcall TConfigForm::ThemePnlClick(TObject *Sender)
{
auto *ini = new TIniFile(".\\ddraw.ini");
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
auto theme =
ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
@ -87,7 +89,7 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
return;
}
DeleteFile(".\\ddraw.ini");
DeleteFile(GAME_PATH + "ddraw.ini");
ShellExecute(
NULL,
@ -670,11 +672,11 @@ void __fastcall TConfigForm::CompatibilityBtnClick(TObject *Sender)
void __fastcall TConfigForm::FormCreate(TObject *Sender)
{
/* Let cnc-ddraw create a new ddraw.ini if it doesn't exist */
if (FileExists(".\\ddraw.dll") && !FileExists(".\\ddraw.ini")) {
if (FileExists(GAME_PATH + "ddraw.dll") && !FileExists(GAME_PATH + "ddraw.ini")) {
SetEnvironmentVariableW(L"cnc_ddraw_config_init", L"1");
HMODULE ddraw = LoadLibraryW(L".\\ddraw.dll");
HMODULE ddraw = LoadLibraryW((GAME_PATH + "ddraw.dll").w_str());
if (ddraw) {
@ -694,7 +696,7 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
}
}
auto *ini = new TIniFile(".\\ddraw.ini");
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
if (ini->ReadString("ddraw", "configtheme", "Windows10") == "Cobalt XEMedia") {
@ -902,8 +904,8 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
CompatibilityBtn->Visible = !GetBool(ini, "hide_compat_tab", false);
RestoreDefaultsBtn->Visible =
FileExists(".\\ddraw.dll") &&
FileExists(".\\ddraw.ini") &&
FileExists(GAME_PATH + "ddraw.dll") &&
FileExists(GAME_PATH + "ddraw.ini") &&
GetBool(ini, "allow_reset", true);
delete ini;
@ -916,7 +918,7 @@ void TConfigForm::SaveSettings()
if (!Initialized)
return;
auto *ini = new TIniFile(".\\ddraw.ini");
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
/* Display Settings */