diff options
| author | dtentiion <dtentiongit@gmail.com> | 2026-03-05 20:57:37 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-05 14:57:37 -0600 |
| commit | aadb5115040cfe0199e79a3e32dada6aa4b99fda (patch) | |
| tree | 7aba2ccfc2d3361272ad0380ec69c98a4f6c3efe /Minecraft.Client/Windows64/KeyboardMouseInput.cpp | |
| parent | f48a39ae3d72fc47ed3a050f6419716dc398d8f5 (diff) | |
Fix save list, delete save, exit without saving, and blank username on Windows64 (#539)
* Fix world save rename not applying new name
KeyboardCompleteWorldNameCallback had no _WINDOWS64 branch, so the
typed name was validated then silently discarded on every rename attempt.
Write the new name to a worldname.txt sidecar file next to the save
(Windows64\GameHDD\{folder}\worldname.txt) and update the in-memory
display name immediately. ReadLevelNameFromSaveFile now checks for this
sidecar first so renamed saves persist correctly across restarts.
* Fixed gamertag being blank upon renaming and re-joining a save
* Save deletion fix, exiting without saving fix
* Add native in-game keyboard UI for world naming and renaming
Diffstat (limited to 'Minecraft.Client/Windows64/KeyboardMouseInput.cpp')
| -rw-r--r-- | Minecraft.Client/Windows64/KeyboardMouseInput.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Minecraft.Client/Windows64/KeyboardMouseInput.cpp b/Minecraft.Client/Windows64/KeyboardMouseInput.cpp index 6206db87..fe3c3919 100644 --- a/Minecraft.Client/Windows64/KeyboardMouseInput.cpp +++ b/Minecraft.Client/Windows64/KeyboardMouseInput.cpp @@ -55,6 +55,8 @@ void KeyboardMouseInput::Init() m_hasInput = false; m_kbmActive = true; m_screenWantsCursorHidden = false; + m_charBufferHead = 0; + m_charBufferTail = 0; RAWINPUTDEVICE rid; rid.usUsagePage = 0x01; // HID_USAGE_PAGE_GENERIC @@ -381,4 +383,29 @@ float KeyboardMouseInput::GetLookY(float sensitivity) const return (float)(-m_mouseDeltaY) * sensitivity; } +void KeyboardMouseInput::OnChar(wchar_t c) +{ + int next = (m_charBufferHead + 1) % CHAR_BUFFER_SIZE; + if (next != m_charBufferTail) + { + m_charBuffer[m_charBufferHead] = c; + m_charBufferHead = next; + } +} + +bool KeyboardMouseInput::ConsumeChar(wchar_t &outChar) +{ + if (m_charBufferTail == m_charBufferHead) + return false; + outChar = m_charBuffer[m_charBufferTail]; + m_charBufferTail = (m_charBufferTail + 1) % CHAR_BUFFER_SIZE; + return true; +} + +void KeyboardMouseInput::ClearCharBuffer() +{ + m_charBufferHead = 0; + m_charBufferTail = 0; +} + #endif // _WINDOWS64 |
