| 4067 | ParseHelixShaderOverrideSections(); |
| 4068 | } |
| 4069 | void LoadConfigFile() |
| 4070 | { |
| 4071 | wchar_t iniFile[MAX_PATH], logFilename[MAX_PATH]; |
| 4072 | wchar_t setting[MAX_PATH]; |
| 4073 | |
| 4074 | G->gInitialized = true; |
| 4075 | |
| 4076 | if (!GetModuleFileName(0, iniFile, MAX_PATH)) |
| 4077 | DoubleBeepExit(); |
| 4078 | wcsrchr(iniFile, L'\\')[1] = 0; |
| 4079 | wcscpy(logFilename, iniFile); |
| 4080 | wcscat(iniFile, INI_FILENAME); |
| 4081 | if (G->process_index > 0) |
| 4082 | swprintf_s(logFilename, ARRAYSIZE(logFilename), L"d3d9_log_%i.txt", G->process_index); |
| 4083 | else |
| 4084 | wcscat(logFilename, L"d3d9_log.txt"); |
| 4085 | |
| 4086 | // Log all settings that are _enabled_, in order, |
| 4087 | // so that there is no question what settings we are using. |
| 4088 | |
| 4089 | // [Logging] |
| 4090 | // Not using the helper function for this one since logging isn't enabled yet |
| 4091 | if (GetPrivateProfileInt(L"Logging", L"calls", 1, iniFile)) |
| 4092 | { |
| 4093 | if (!LogFile) |
| 4094 | LogFile = _wfsopen(logFilename, L"w", _SH_DENYNO); |
| 4095 | LogInfo("\nD3D9 DLL starting init - v %s - %s\n\n", VER_FILE_VERSION_STR, LogTime().c_str()); |
| 4096 | LogInfoW(L"----------- " INI_FILENAME L" settings -----------\n"); |
| 4097 | } |
| 4098 | LogInfo("[Logging]\n"); |
| 4099 | LogInfo(" calls=1\n"); |
| 4100 | |
| 4101 | ParseIniFile(iniFile); |
| 4102 | InsertBuiltInIniSections(); |
| 4103 | |
| 4104 | G->helix_fix = GetIniBool(L"Rendering", L"helix_fix", false, NULL, &migoto_ini); |
| 4105 | if (G->helix_fix) { |
| 4106 | GetIniStringAndLog(L"Rendering", L"helix_ini", L"DX9Settings.ini", G->helix_ini, MAX_PATH, &migoto_ini); |
| 4107 | if (GetIniStringAndLog(L"Rendering", L"helix_vertex_override_directory", L"ShaderOverride\\VertexShaders", G->HELIX_SHADER_PATH_VERTEX, MAX_PATH, &migoto_ini)) |
| 4108 | { |
| 4109 | while (G->HELIX_SHADER_PATH_VERTEX[wcslen(G->HELIX_SHADER_PATH_VERTEX) - 1] == L' ') |
| 4110 | G->HELIX_SHADER_PATH_VERTEX[wcslen(G->HELIX_SHADER_PATH_VERTEX) - 1] = 0; |
| 4111 | if (G->HELIX_SHADER_PATH_VERTEX[1] != ':' && G->HELIX_SHADER_PATH_VERTEX[0] != '\\') |
| 4112 | { |
| 4113 | GetModuleFileName(0, setting, MAX_PATH); |
| 4114 | wcsrchr(setting, L'\\')[1] = 0; |
| 4115 | wcscat(setting, G->HELIX_SHADER_PATH_VERTEX); |
| 4116 | wcscpy(G->HELIX_SHADER_PATH_VERTEX, setting); |
| 4117 | } |
| 4118 | // Create directory? |
| 4119 | CreateDirectoryEnsuringAccess(G->HELIX_SHADER_PATH_VERTEX); |
| 4120 | } |
| 4121 | if (GetIniStringAndLog(L"Rendering", L"helix_pixel_override_directory", L"ShaderOverride\\PixelShaders", G->HELIX_SHADER_PATH_PIXEL, MAX_PATH, &migoto_ini)) |
| 4122 | { |
| 4123 | while (G->HELIX_SHADER_PATH_PIXEL[wcslen(G->HELIX_SHADER_PATH_PIXEL) - 1] == L' ') |
| 4124 | G->HELIX_SHADER_PATH_PIXEL[wcslen(G->HELIX_SHADER_PATH_PIXEL) - 1] = 0; |
| 4125 | if (G->HELIX_SHADER_PATH_PIXEL[1] != ':' && G->HELIX_SHADER_PATH_PIXEL[0] != '\\') |
| 4126 | { |
no test coverage detected