From 9b2777bc56c3b7fd5ec45d6f5b60aeeee3610e77 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 30 Jun 2017 19:11:32 +0100 Subject: [PATCH] Fix read keyboard config error Do not try to read more keyboard shortcuts than there actually are. --- src/openrct2-ui/input/KeyboardShortcuts.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openrct2-ui/input/KeyboardShortcuts.cpp b/src/openrct2-ui/input/KeyboardShortcuts.cpp index a81abcea3d..ceec0fa8ae 100644 --- a/src/openrct2-ui/input/KeyboardShortcuts.cpp +++ b/src/openrct2-ui/input/KeyboardShortcuts.cpp @@ -53,6 +53,7 @@ void KeyboardShortcuts::Reset() bool KeyboardShortcuts::Load() { bool result = false; + Reset(); try { std::string path = _env->GetFilePath(PATHID::CONFIG_KEYBOARD); @@ -62,7 +63,9 @@ bool KeyboardShortcuts::Load() uint16 version = fs.ReadValue(); if (version == KeyboardShortcuts::CURRENT_FILE_VERSION) { - for (sint32 i = 0; i < SHORTCUT_COUNT; i++) + sint32 numShortcutsInFile = (fs.GetLength() - sizeof(uint16)) / sizeof(uint16); + sint32 numShortcutsToRead = std::min(SHORTCUT_COUNT, numShortcutsInFile); + for (sint32 i = 0; i < numShortcutsToRead; i++) { _keys[i] = fs.ReadValue(); }