mirror of
https://github.com/rei-2/Amalgam
synced 2026-10-10 04:43:09 +08:00
visual for including nosave vars when loading/saving configs
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 (...) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user