From eb3012cc0d82e59cd38f53faefc0d9b3f942302d Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Tue, 12 Oct 2021 04:35:30 +0200 Subject: [PATCH] Reset player object before unpacking hero data --- Source/pfile.cpp | 4 ++++ test/writehero_test.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/Source/pfile.cpp b/Source/pfile.cpp index c210d592a..3455d85bc 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -301,6 +301,8 @@ bool pfile_ui_set_hero_infos(bool (*uiAddHeroInfo)(_uiheroinfo *)) auto &player = Players[0]; + player = {}; + if (UnPackPlayer(&pkplr, player, false)) { LoadHeroItems(player); RemoveEmptyInventory(player); @@ -380,6 +382,8 @@ void pfile_read_player_from_save(uint32_t saveNum, Player &player) HANDLE archive; PlayerPack pkplr; + player = {}; + archive = OpenSaveArchive(saveNum); if (archive == nullptr) app_fatal("%s", _("Unable to open archive")); diff --git a/test/writehero_test.cpp b/test/writehero_test.cpp index 30520d52f..5d88593b2 100644 --- a/test/writehero_test.cpp +++ b/test/writehero_test.cpp @@ -334,6 +334,7 @@ TEST(Writehero, pfile_write_hero) MyPlayerId = 0; MyPlayer = &Players[MyPlayerId]; + *MyPlayer = {}; _uiheroinfo info {}; strcpy(info.name, "TestPlayer");