#include "PRO_Data.h" #include "4J_Profile.h" //C_4JProfile::PROFILESETTINGS * CProfileData::GetDashboardProfileSettings(int iPad) //{ // ; //str1k3r - stubbed out for now //} //str1k3r - GetSettings is basically snatched from smartCMD void GetSettings(wchar_t *outPath, DWORD size) { GetModuleFileNameW(NULL, outPath, size); //str1k3r - unlike smartCMD we use wide so we can handle non english characters wchar_t *lastSlash = wcsrchr(outPath, '\\'); if (lastSlash) *(lastSlash + 1) = '\0'; wcsncat_s(outPath, size, L"settings.dat", _TRUNCATE); } void CProfileData::LoadSettings(void* gs, size_t gsSize) { if (!gs || gsSize == 0) return; wchar_t settingsPath[MAX_PATH] = {}; GetSettings(settingsPath, MAX_PATH); FILE *file = NULL; if (_wfopen_s(&file, settingsPath, L"rb") == 0 && file) //str1k3r - fun fact theres a version of fopen_s but for wide :3 { fread(gs, 1, gsSize, file); fclose(file); } } void CProfileData::SaveSettings(void* gs, size_t gsSize) { if (!gs || gsSize == 0) return; wchar_t settingsPath[MAX_PATH] = {}; GetSettings(settingsPath, MAX_PATH); FILE *file = NULL; if (_wfopen_s(&file, settingsPath, L"wb") == 0 && file) { fwrite(gs, 1, gsSize, file); fclose(file); } }