From a827420070dfb14d06a09fdf3c56cba11237bcd7 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 7 Mar 2021 17:42:31 +0100 Subject: [PATCH] :bug: Stable "hotkeys" size calculation --- Source/loadsave.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 557cf7083..b7af3521e 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -922,10 +922,13 @@ void LoadHotkeys() if (!file.isValid()) return; - for (size_t i = 0; i < sizeof(plr[myplr]._pSplHotKey) / sizeof(plr[myplr]._pSplHotKey[0]); i++) { + const size_t nHotkeyTypes = sizeof(plr[myplr]._pSplHotKey) / sizeof(plr[myplr]._pSplHotKey[0]); + const size_t nHotkeySpells = sizeof(plr[myplr]._pSplTHotKey) / sizeof(plr[myplr]._pSplTHotKey[0]); + + for (size_t i = 0; i < nHotkeyTypes; i++) { plr[myplr]._pSplHotKey[i] = file.nextLE32(); } - for (size_t i = 0; i < sizeof(plr[myplr]._pSplTHotKey) / sizeof(plr[myplr]._pSplTHotKey[0]); i++) { + for (size_t i = 0; i < nHotkeySpells; i++) { plr[myplr]._pSplTHotKey[i] = file.nextByte(); } plr[myplr]._pRSpell = file.nextLE32(); @@ -934,12 +937,15 @@ void LoadHotkeys() void SaveHotkeys() { - SaveHelper file("hotkeys", sizeof(plr[myplr]._pSplHotKey) + sizeof(plr[myplr]._pSplTHotKey) + 5); + const size_t nHotkeyTypes = sizeof(plr[myplr]._pSplHotKey) / sizeof(plr[myplr]._pSplHotKey[0]); + const size_t nHotkeySpells = sizeof(plr[myplr]._pSplTHotKey) / sizeof(plr[myplr]._pSplTHotKey[0]); + + SaveHelper file("hotkeys", (nHotkeyTypes * 4) + nHotkeySpells + 4 + 1); - for (size_t i = 0; i < sizeof(plr[myplr]._pSplHotKey) / sizeof(plr[myplr]._pSplHotKey[0]); i++) { + for (size_t i = 0; i < nHotkeyTypes; i++) { file.writeLE32(plr[myplr]._pSplHotKey[i]); } - for (size_t i = 0; i < sizeof(plr[myplr]._pSplTHotKey) / sizeof(plr[myplr]._pSplTHotKey[0]); i++) { + for (size_t i = 0; i < nHotkeySpells; i++) { file.writeByte(plr[myplr]._pSplTHotKey[i]); } file.writeLE32(plr[myplr]._pRSpell);