visual for including nosave vars when loading/saving configs

This commit is contained in:
rei-2
2025-11-18 18:00:45 -05:00
parent 5c07aa1283
commit 68c1d0530f
4 changed files with 26 additions and 19 deletions
+12 -12
View File
@@ -357,10 +357,10 @@ bool CConfigs::SaveConfig(const std::string& sConfigName, bool bNotify)
{
boost::property_tree::ptree tSub;
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!bNosave && pBase->m_iFlags & NOSAVE)
if (!bNoSave && pBase->m_iFlags & NOSAVE)
continue;
Save(bool, tSub)
@@ -474,10 +474,10 @@ bool CConfigs::LoadConfig(const std::string& sConfigName, bool bNotify)
if (auto tSub = tRead.get_child_optional("Vars");
tSub || (tSub = tRead.get_child_optional("ConVars")))
{
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!bNosave && pBase->m_iFlags & NOSAVE)
if (!bNoSave && pBase->m_iFlags & NOSAVE)
continue;
Load(bool, *tSub)
@@ -563,10 +563,10 @@ bool CConfigs::SaveVisual(const std::string& sConfigName, bool bNotify)
{
boost::property_tree::ptree tSub;
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!(pBase->m_iFlags & VISUAL) || !bNosave && pBase->m_iFlags & NOSAVE)
if (!(pBase->m_iFlags & VISUAL) || !bNoSave && pBase->m_iFlags & NOSAVE)
continue;
SaveMisc(bool, tSub)
@@ -648,10 +648,10 @@ bool CConfigs::LoadVisual(const std::string& sConfigName, bool bNotify)
if (auto tSub = tRead.get_child_optional("Vars");
tSub || (tSub = tRead))
{
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!(pBase->m_iFlags & VISUAL) || !bNosave && pBase->m_iFlags & NOSAVE)
if (!(pBase->m_iFlags & VISUAL) || !bNoSave && pBase->m_iFlags & NOSAVE)
continue;
LoadMisc(bool, *tSub)
@@ -752,10 +752,10 @@ void CConfigs::ResetConfig(const std::string& sConfigName, bool bNotify)
F::Binds.m_vBinds.clear();
F::Groups.m_vGroups.clear();
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!bNosave && pBase->m_iFlags & NOSAVE)
if (!bNoSave && pBase->m_iFlags & NOSAVE)
continue;
Reset(bool)
@@ -805,10 +805,10 @@ void CConfigs::ResetVisual(const std::string& sConfigName, bool bNotify)
{
F::Groups.m_vGroups.clear();
const bool bNosave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
for (auto& pBase : G::Vars)
{
if (!(pBase->m_iFlags & VISUAL) || !bNosave && pBase->m_iFlags & NOSAVE)
if (!(pBase->m_iFlags & VISUAL) || !bNoSave && pBase->m_iFlags & NOSAVE)
continue;
Reset(bool)
+10 -6
View File
@@ -442,20 +442,24 @@ namespace ImGui
return vWrapped;
}
inline void FTooltip(const char* sTooltip, bool bCondition = IsItemHovered(), float flWrapWidth = 300, ImVec2* pPosOverride = nullptr, ImVec2* pSizeOverride = nullptr)
inline void FTooltip(const char* sTooltip, bool bCondition = IsItemHovered(), float flWrapWidth = 300, ImFont* pFont = F::Render.FontSmall, ImVec2* pPosOverride = nullptr, ImVec2* pSizeOverride = nullptr)
{
if (bCondition)
{
PushFont(F::Render.FontSmall);
PushFont(pFont);
ImDrawList* pDrawList = GetForegroundDrawList();
ImVec2 vPos = pPosOverride ? *pPosOverride : !vRowSizes.empty() ? vRowSizes.back().m_vPos : ImVec2();
ImVec2 vPos = pPosOverride ? *pPosOverride : !vRowSizes.empty() ? vRowSizes.back().m_vPos : ImVec2((GetItemRectMin().x + GetItemRectMax().x) / 2, GetItemRectMax().y);
ImVec2 vSize = pSizeOverride ? *pSizeOverride : !vRowSizes.empty() ? vRowSizes.back().m_vSize : ImVec2();
std::deque<std::string> vWraps = WrapText(sTooltip, H::Draw.Scale(flWrapWidth));
ImVec2 vText = { 0, H::Draw.Scale(9) + vWraps.size() * H::Draw.Scale(16) };
ImVec2 vText = { 0, H::Draw.Scale(9) };
for (auto& sText : vWraps)
vText.x = std::max(CalcTextSize(sText.c_str()).x, vText.x);
{
auto vSize = CalcTextSize(sText.c_str());
vText.x = std::max(vSize.x, vText.x);
vText.y += vSize.y + H::Draw.Scale(5);
}
vText.x += GetStyle().WindowPadding.x * 2;
if (fmodf(vText.x, 2.f))
vText.x += 1;
@@ -1881,7 +1885,7 @@ namespace ImGui
if (bTooltip)
{
vOriginalPos += GetDrawPos();
FTooltip(StripDoubleHash(sLabel).c_str(), IsItemHovered(), 300, &vOriginalPos, &vSize);
FTooltip(StripDoubleHash(sLabel).c_str(), IsItemHovered(), 300, F::Render.FontSmall, &vOriginalPos, &vSize);
}
return bReturn;
+4
View File
@@ -2311,6 +2311,7 @@ void CMenu::MenuSettings(int iTab)
auto& sPath = !bVisual ? F::Configs.m_sConfigPath : F::Configs.m_sVisualsPath;
auto& sConfig = !bVisual ? F::Configs.m_sCurrentConfig : F::Configs.m_sCurrentVisuals;
auto sType = !bVisual ? "Config" : "Visual";
bool bNoSave = GetAsyncKeyState(VK_SHIFT) & 0x8000;
FSDropdown("Name", &sStaticName, {}, FSDropdownEnum::AutoUpdate, -H::Draw.Unscale(FCalcTextSize("CREATE").x + FCalcTextSize("FOLDER").x) - 72);
PushDisabled(sStaticName.empty());
@@ -2330,6 +2331,7 @@ void CMenu::MenuSettings(int iTab)
PopDisabled();
if (FButton("Folder", FButtonEnum::Fit | FButtonEnum::SameLine, { 0, 40 }))
ShellExecuteA(NULL, NULL, sPath.c_str(), NULL, NULL, SW_SHOWNORMAL);
vRowSizes.clear();
std::vector<std::pair<std::filesystem::directory_entry, std::string>> vConfigs = {};
bool bDefaultFound = false;
@@ -2368,6 +2370,7 @@ void CMenu::MenuSettings(int iTab)
SetCursorPos({ vOriginalPos.x + H::Draw.Scale(2), vOriginalPos.y + H::Draw.Scale(9) });
bool bLoad = IconButton(bCurrentConfig ? ICON_MD_REFRESH : ICON_MD_DOWNLOAD);
FTooltip(ICON_MD_ADD ICON_MD_FILE_UPLOAD_OFF, bNoSave && IsItemHovered(), 300.f, F::Render.IconFont);
SetCursorPos({ H::Draw.Scale(43), vOriginalPos.y + H::Draw.Scale(14) });
TextColored(bCurrentConfig ? F::Render.Active.Value : F::Render.Inactive.Value, TruncateText(sConfigName, GetWindowWidth() - GetStyle().WindowPadding.x * 2 - H::Draw.Scale(80)).c_str());
@@ -2378,6 +2381,7 @@ void CMenu::MenuSettings(int iTab)
SetCursorPos({ GetWindowWidth() - H::Draw.Scale(iOffset += 25), vOriginalPos.y + H::Draw.Scale(9) });
bool bSave = IconButton(ICON_MD_SAVE);
FTooltip(ICON_MD_ADD ICON_MD_FILE_DOWNLOAD_OFF, bNoSave && IsItemHovered(), 300.f, F::Render.IconFont);
if (bLoad)
{
@@ -277,7 +277,6 @@ MAKE_HOOK(Cbuf_ExecuteCommand, S::Cbuf_ExecuteCommand(), void,
break;
pCVar->SetValue(sValue.c_str());
SDK::Output("Cbuf_ExecuteCommand", std::format("{}: {}, {}, {}", sCommand, pCVar->GetString(), pCVar->GetFloat(), pCVar->GetInt()).c_str());
}
catch (...) {}