From e8f3fc7e3706ee14996cd70ded0e36e03cd69d61 Mon Sep 17 00:00:00 2001 From: Mathieu Schroeter Date: Mon, 23 Oct 2017 19:29:23 +0200 Subject: [PATCH 1/3] Initialize the struct --- src/event.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/event.cxx b/src/event.cxx index 1e54762..50d40c7 100644 --- a/src/event.cxx +++ b/src/event.cxx @@ -4564,6 +4564,8 @@ CEvent::ReadInfo () if (file == nullptr) goto error; + SDL_memset (&info, 0, sizeof (info)); + nb = fread (&info, sizeof (DescInfo), 1, file); if (nb < 1) goto error; From 05a8c4469af01cee72a11d11b63d17b169074f80 Mon Sep 17 00:00:00 2001 From: Mathieu Schroeter Date: Mon, 23 Oct 2017 19:30:29 +0200 Subject: [PATCH 2/3] Fix noise when saving info.blp file The enum must be sync with the vector. I should rewrite this stuff otherwise. --- src/event.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/event.h b/src/event.h index b90d919..1bce476 100644 --- a/src/event.h +++ b/src/event.h @@ -82,9 +82,8 @@ enum class Language { fr = 2, de = 3, it = 4, - // Left some space for Korean and Hebrew as I think original translations - // should be first, see issue #23 - pl = 7, + pl = 5, + end, }; class CEvent From a17a7e1ddac65859865cfb5e215498583e748a08 Mon Sep 17 00:00:00 2001 From: Mathieu Schroeter Date: Mon, 23 Oct 2017 19:30:59 +0200 Subject: [PATCH 3/3] Prevent bad values with the language to restore --- src/event.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/event.cxx b/src/event.cxx index 50d40c7..6acc8d8 100644 --- a/src/event.cxx +++ b/src/event.cxx @@ -4585,7 +4585,11 @@ CEvent::ReadInfo () m_pSound->SetMidiVolume (info.midiVolume); if ((info.majRev == 1 && info.minRev >= 1) || info.majRev >= 2) + { + if (info.language >= static_cast (Language::end)) + info.language = 0; this->SetLanguage (static_cast (info.language)); + } fclose (file); return true;