mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-14 22:03:27 +01:00
#267 allow to override .ini path via env var
This commit is contained in:
parent
c08ccb61c4
commit
3ab1f7ff11
@ -43,7 +43,12 @@ void __fastcall TConfigForm::CreateParams(TCreateParams & Params)
|
||||
|
||||
void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
|
||||
{
|
||||
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
auto *ini =
|
||||
new TIniFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
ini->WriteString("ddraw", "configlang", IsEnglish ? "auto" : "english");
|
||||
delete ini;
|
||||
|
||||
@ -60,7 +65,12 @@ void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
|
||||
|
||||
void __fastcall TConfigForm::ThemePnlClick(TObject *Sender)
|
||||
{
|
||||
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
auto *ini =
|
||||
new TIniFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
auto theme =
|
||||
ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
|
||||
|
||||
@ -89,7 +99,10 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
|
||||
return;
|
||||
}
|
||||
|
||||
DeleteFile(GAME_PATH + "ddraw.ini");
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
DeleteFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
ShellExecute(
|
||||
NULL,
|
||||
@ -671,8 +684,12 @@ void __fastcall TConfigForm::CompatibilityBtnClick(TObject *Sender)
|
||||
|
||||
void __fastcall TConfigForm::FormCreate(TObject *Sender)
|
||||
{
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
/* Let cnc-ddraw create a new ddraw.ini if it doesn't exist */
|
||||
if (FileExists(GAME_PATH + "ddraw.dll") && !FileExists(GAME_PATH + "ddraw.ini")) {
|
||||
if (FileExists(GAME_PATH + "ddraw.dll") &&
|
||||
!FileExists(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini")) {
|
||||
|
||||
SetEnvironmentVariableW(L"cnc_ddraw_config_init", L"1");
|
||||
|
||||
@ -696,7 +713,8 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
|
||||
}
|
||||
}
|
||||
|
||||
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
|
||||
auto *ini =
|
||||
new TIniFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
if (ini->ReadString("ddraw", "configtheme", "Windows10") == "Cobalt XEMedia") {
|
||||
|
||||
@ -905,7 +923,7 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
|
||||
|
||||
RestoreDefaultsBtn->Visible =
|
||||
FileExists(GAME_PATH + "ddraw.dll") &&
|
||||
FileExists(GAME_PATH + "ddraw.ini") &&
|
||||
FileExists(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini") &&
|
||||
GetBool(ini, "allow_reset", true);
|
||||
|
||||
delete ini;
|
||||
@ -918,7 +936,11 @@ void TConfigForm::SaveSettings()
|
||||
if (!Initialized)
|
||||
return;
|
||||
|
||||
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
auto *ini =
|
||||
new TIniFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
/* Display Settings */
|
||||
|
||||
|
@ -35,7 +35,12 @@ int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
|
||||
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||
"CNC_DDRAW_CONFIG_FILE");
|
||||
|
||||
auto *ini =
|
||||
new TIniFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||
|
||||
auto theme = ini->ReadString("ddraw", "configtheme", "Windows10");
|
||||
|
||||
TStyleManager::TrySetStyle(
|
||||
|
@ -7,7 +7,7 @@
|
||||
#define VERSION_MAJOR 6
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_BUILD 0
|
||||
#define VERSION_REVISION 4
|
||||
#define VERSION_REVISION 5
|
||||
|
||||
#define VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION
|
||||
#define VERSION_STRING ver_str(VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION)
|
||||
|
27
src/config.c
27
src/config.c
@ -1090,26 +1090,27 @@ static void cfg_init()
|
||||
}
|
||||
}
|
||||
|
||||
/* set up settings ini */
|
||||
|
||||
if (strlen(g_config.game_path) > 0)
|
||||
if (!GetEnvironmentVariableA("CNC_DDRAW_CONFIG_FILE", g_config.ini_path, sizeof(g_config.ini_path) - 1))
|
||||
{
|
||||
_snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%sddraw.ini", g_config.game_path);
|
||||
|
||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||
if (strlen(g_config.game_path) > 0)
|
||||
{
|
||||
cfg_create_ini();
|
||||
}
|
||||
_snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%sddraw.ini", g_config.game_path);
|
||||
|
||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
cfg_create_ini();
|
||||
}
|
||||
|
||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1);
|
||||
}
|
||||
|
||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user