mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +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)
|
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");
|
ini->WriteString("ddraw", "configlang", IsEnglish ? "auto" : "english");
|
||||||
delete ini;
|
delete ini;
|
||||||
|
|
||||||
@ -60,7 +65,12 @@ void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
|
|||||||
|
|
||||||
void __fastcall TConfigForm::ThemePnlClick(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 =
|
auto theme =
|
||||||
ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
|
ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
|
||||||
|
|
||||||
@ -89,7 +99,10 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteFile(GAME_PATH + "ddraw.ini");
|
auto iniPath = System::Sysutils::GetEnvironmentVariable(
|
||||||
|
"CNC_DDRAW_CONFIG_FILE");
|
||||||
|
|
||||||
|
DeleteFile(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini");
|
||||||
|
|
||||||
ShellExecute(
|
ShellExecute(
|
||||||
NULL,
|
NULL,
|
||||||
@ -671,8 +684,12 @@ void __fastcall TConfigForm::CompatibilityBtnClick(TObject *Sender)
|
|||||||
|
|
||||||
void __fastcall TConfigForm::FormCreate(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 */
|
/* 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");
|
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") {
|
if (ini->ReadString("ddraw", "configtheme", "Windows10") == "Cobalt XEMedia") {
|
||||||
|
|
||||||
@ -905,7 +923,7 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
|
|||||||
|
|
||||||
RestoreDefaultsBtn->Visible =
|
RestoreDefaultsBtn->Visible =
|
||||||
FileExists(GAME_PATH + "ddraw.dll") &&
|
FileExists(GAME_PATH + "ddraw.dll") &&
|
||||||
FileExists(GAME_PATH + "ddraw.ini") &&
|
FileExists(iniPath.Length() ? iniPath : GAME_PATH + "ddraw.ini") &&
|
||||||
GetBool(ini, "allow_reset", true);
|
GetBool(ini, "allow_reset", true);
|
||||||
|
|
||||||
delete ini;
|
delete ini;
|
||||||
@ -918,7 +936,11 @@ void TConfigForm::SaveSettings()
|
|||||||
if (!Initialized)
|
if (!Initialized)
|
||||||
return;
|
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 */
|
/* Display Settings */
|
||||||
|
|
||||||
|
@ -35,7 +35,12 @@ int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
|
|||||||
return 0;
|
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");
|
auto theme = ini->ReadString("ddraw", "configtheme", "Windows10");
|
||||||
|
|
||||||
TStyleManager::TrySetStyle(
|
TStyleManager::TrySetStyle(
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#define VERSION_MAJOR 6
|
#define VERSION_MAJOR 6
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_BUILD 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 VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION
|
||||||
#define VERSION_STRING ver_str(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 (!GetEnvironmentVariableA("CNC_DDRAW_CONFIG_FILE", g_config.ini_path, sizeof(g_config.ini_path) - 1))
|
||||||
|
|
||||||
if (strlen(g_config.game_path) > 0)
|
|
||||||
{
|
{
|
||||||
_snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%sddraw.ini", g_config.game_path);
|
if (strlen(g_config.game_path) > 0)
|
||||||
|
|
||||||
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
|
||||||
{
|
{
|
||||||
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);
|
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)
|
if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user