aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client
diff options
context:
space:
mode:
authorSylvessa <225480449+sylvessa@users.noreply.github.com>2026-03-23 17:54:46 -0500
committerGitHub <noreply@github.com>2026-03-23 17:54:46 -0500
commit127465b0eb2fedba5ded9ca9500f90f8900e5a9c (patch)
tree5cdf4ebda414d6e39e117893a8a82fe38f12bf30 /Minecraft.Client
parent77433dbd8660b53ed3f7e49d4315c8629ce0adb3 (diff)
add advanced tooltips, F3+H combo, and handle settings (#1389)
Diffstat (limited to 'Minecraft.Client')
-rw-r--r--Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp9
-rw-r--r--Minecraft.Client/Common/UI/IUIScene_TradingMenu.cpp9
-rw-r--r--Minecraft.Client/Options.cpp9
-rw-r--r--Minecraft.Client/Options.h1
-rw-r--r--Minecraft.Client/Windows64/KeyboardMouseInput.cpp7
-rw-r--r--Minecraft.Client/Windows64/KeyboardMouseInput.h2
-rw-r--r--Minecraft.Client/Windows64/Windows64_Minecraft.cpp34
7 files changed, 60 insertions, 11 deletions
diff --git a/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp
index 7502d6bf..fa9b280c 100644
--- a/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp
+++ b/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp
@@ -9,6 +9,7 @@
#include "..\..\..\Minecraft.World\net.minecraft.world.level.tile.entity.h"
#include "..\..\MultiplayerLocalPlayer.h"
#include "..\..\Minecraft.h"
+#include "..\..\Options.h"
#ifdef __ORBIS__
#include <pad.h>
@@ -1677,7 +1678,13 @@ vector<HtmlString> *IUIScene_AbstractContainerMenu::GetItemDescription(Slot *slo
{
if(slot == nullptr) return nullptr;
- vector<HtmlString> *lines = slot->getItem()->getHoverText(nullptr, false);
+ bool advanced = false;
+ if (const Minecraft* pMinecraft = Minecraft::GetInstance())
+ {
+ if (pMinecraft->options)
+ advanced = pMinecraft->options->advancedTooltips;
+ }
+ vector<HtmlString> *lines = slot->getItem()->getHoverText(nullptr, advanced);
// Add rarity to first line
if (lines->size() > 0)
diff --git a/Minecraft.Client/Common/UI/IUIScene_TradingMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_TradingMenu.cpp
index 0b1e0df2..d7939d8c 100644
--- a/Minecraft.Client/Common/UI/IUIScene_TradingMenu.cpp
+++ b/Minecraft.Client/Common/UI/IUIScene_TradingMenu.cpp
@@ -4,6 +4,7 @@
#include "..\..\..\Minecraft.World\net.minecraft.world.item.h"
#include "..\..\..\Minecraft.World\net.minecraft.network.packet.h"
#include "..\..\Minecraft.h"
+#include "..\..\Options.h"
#include "..\..\MultiPlayerLocalPlayer.h"
#include "..\..\ClientConnection.h"
#include "IUIScene_TradingMenu.h"
@@ -368,7 +369,13 @@ void IUIScene_TradingMenu::setTradeItem(int index, shared_ptr<ItemInstance> item
vector<HtmlString> *IUIScene_TradingMenu::GetItemDescription(shared_ptr<ItemInstance> item)
{
- vector<HtmlString> *lines = item->getHoverText(nullptr, false);
+ bool advanced = false;
+ if (const Minecraft* pMinecraft = Minecraft::GetInstance())
+ {
+ if (pMinecraft->options)
+ advanced = pMinecraft->options->advancedTooltips;
+ }
+ vector<HtmlString> *lines = item->getHoverText(nullptr, advanced);
// Add rarity to first line
if (lines->size() > 0)
diff --git a/Minecraft.Client/Options.cpp b/Minecraft.Client/Options.cpp
index ebe1295a..60886597 100644
--- a/Minecraft.Client/Options.cpp
+++ b/Minecraft.Client/Options.cpp
@@ -170,6 +170,7 @@ void Options::init()
particles = 0;
fov = 0;
gamma = 0;
+ advancedTooltips = false;
}
Options::Options(Minecraft *minecraft, File workingDirectory)
@@ -451,8 +452,9 @@ void Options::load()
if (cmds[0] == L"fancyGraphics") fancyGraphics = cmds[1]==L"true";
if (cmds[0] == L"ao") ambientOcclusion = cmds[1]==L"true";
if (cmds[0] == L"clouds") renderClouds = cmds[1]==L"true";
- if (cmds[0] == L"skin") skin = cmds[1];
- if (cmds[0] == L"lastServer") lastMpIp = cmds[1];
+ if (cmds[0] == L"advancedTooltips") advancedTooltips = cmds[1]==L"false";
+ if (cmds[0] == L"skin") skin = cmds[1];
+ if (cmds[0] == L"lastServer") lastMpIp = cmds[1];
for (int i = 0; i < keyMappings_length; i++)
{
@@ -508,7 +510,8 @@ void Options::save()
dos.writeChars(L"fancyGraphics:" + wstring(fancyGraphics ? L"true" : L"false"));
dos.writeChars(ambientOcclusion ? L"ao:true" : L"ao:false");
dos.writeChars(renderClouds ? L"clouds:true" : L"clouds:false");
- dos.writeChars(L"skin:" + skin);
+ dos.writeChars(advancedTooltips ? L"advancedTooltips:true" : L"advancedTooltips:false");
+ dos.writeChars(L"skin:" + skin);
dos.writeChars(L"lastServer:" + lastMpIp);
for (int i = 0; i < keyMappings_length; i++)
diff --git a/Minecraft.Client/Options.h b/Minecraft.Client/Options.h
index 8be61ac6..29cd83ac 100644
--- a/Minecraft.Client/Options.h
+++ b/Minecraft.Client/Options.h
@@ -110,6 +110,7 @@ public:
int particles; // 0 is all, 1 is decreased and 2 is minimal
float fov;
float gamma;
+ bool advancedTooltips;
void init(); // 4J added
Options(Minecraft *minecraft, File workingDirectory);
diff --git a/Minecraft.Client/Windows64/KeyboardMouseInput.cpp b/Minecraft.Client/Windows64/KeyboardMouseInput.cpp
index 54191ebc..be6efe90 100644
--- a/Minecraft.Client/Windows64/KeyboardMouseInput.cpp
+++ b/Minecraft.Client/Windows64/KeyboardMouseInput.cpp
@@ -234,6 +234,13 @@ bool KeyboardMouseInput::IsKeyReleased(int vkCode) const
return false;
}
+int KeyboardMouseInput::GetPressedKey() const
+{
+ for (int i = 0; i < MAX_KEYS; ++i)
+ if (m_keyPressed[i]) return i;
+ return 0;
+}
+
bool KeyboardMouseInput::IsMouseButtonDown(int button) const
{
if (button >= 0 && button < MAX_MOUSE_BUTTONS)
diff --git a/Minecraft.Client/Windows64/KeyboardMouseInput.h b/Minecraft.Client/Windows64/KeyboardMouseInput.h
index 5c406983..e8b5f588 100644
--- a/Minecraft.Client/Windows64/KeyboardMouseInput.h
+++ b/Minecraft.Client/Windows64/KeyboardMouseInput.h
@@ -56,6 +56,8 @@ public:
bool IsKeyPressed(int vkCode) const;
bool IsKeyReleased(int vkCode) const;
+ int GetPressedKey() const;
+
bool IsMouseButtonDown(int button) const;
bool IsMouseButtonPressed(int button) const;
bool IsMouseButtonReleased(int button) const;
diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
index 81430ffc..fa5f4ccc 100644
--- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
+++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
@@ -36,6 +36,7 @@
//#include "NetworkManager.h"
#include "..\..\Minecraft.Client\Tesselator.h"
#include "..\..\Minecraft.Client\Options.h"
+#include "..\Gui.h"
#include "Sentient\SentientManager.h"
#include "..\..\Minecraft.World\IntCache.h"
#include "..\Textures.h"
@@ -107,6 +108,7 @@ int g_iScreenHeight = 1080;
// always matches the current window, even after a resize.
int g_rScreenWidth = 1920;
int g_rScreenHeight = 1080;
+static bool f3ComboUsed = false;
float g_iAspectRatio = static_cast<float>(g_iScreenWidth) / g_iScreenHeight;
static bool g_bResizeReady = false;
@@ -1774,17 +1776,37 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
}
// F3 toggles onscreen debug info
- if (g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_DEBUG_INFO))
+ if (g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_DEBUG_INFO)) f3ComboUsed = false;
+
+ // f3 combo
+ if (g_KBMInput.IsKeyDown(KeyboardMouseInput::KEY_DEBUG_INFO))
{
- if (const Minecraft* pMinecraft = Minecraft::GetInstance())
+ switch (g_KBMInput.GetPressedKey())
{
- if (pMinecraft->options)
- {
- pMinecraft->options->renderDebug = !pMinecraft->options->renderDebug;
- }
+ // advanced tooltips
+ case 'H':
+ if (pMinecraft->options && app.GetGameStarted())
+ {
+ pMinecraft->options->advancedTooltips = !pMinecraft->options->advancedTooltips;
+ pMinecraft->options->save();
+
+ const wstring msg = wstring(L"Advanced tooltips: ") + (pMinecraft->options->advancedTooltips ? L"shown" : L"hidden");
+ const int primaryPad = ProfileManager.GetPrimaryPad();
+ if (pMinecraft->gui) pMinecraft->gui->addMessage(msg, primaryPad);
+
+ f3ComboUsed = true;
+ }
+ break;
}
}
+ // no combo
+ if (g_KBMInput.IsKeyReleased(KeyboardMouseInput::KEY_DEBUG_INFO) && !f3ComboUsed)
+ if (pMinecraft->options)
+ pMinecraft->options->renderDebug = !pMinecraft->options->renderDebug;
+
+
+
#ifdef _DEBUG_MENUS_ENABLED
// F6 Open debug console
if (g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_DEBUG_CONSOLE))