From 76585772607a7fbbed9e19ee0b4556b9140cde16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Tue, 25 Aug 2020 03:27:38 +0300 Subject: CFO fixes --- src/extras/frontendoption.cpp | 7 ++++++- src/extras/frontendoption.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/extras') diff --git a/src/extras/frontendoption.cpp b/src/extras/frontendoption.cpp index 3214bbfd..f8d9f81e 100644 --- a/src/extras/frontendoption.cpp +++ b/src/extras/frontendoption.cpp @@ -76,6 +76,10 @@ RemoveCustomFrontendOptions() for (int j = 0; j < NUM_MENUROWS; j++) { if (aScreens[i].m_aEntries[j].m_SaveSlot == SAVESLOT_CFO) { int ogOptionId = customFrontendOptions[aScreens[i].m_aEntries[j].m_TargetMenu].ogOptionId; + + if (customFrontendOptions[aScreens[i].m_aEntries[j].m_TargetMenu].type == FEOPTION_SELECT) + free(customFrontendOptions[aScreens[i].m_aEntries[j].m_TargetMenu].rightTexts); + if (ogOptionId == -1) { int k; for (k = j; k < NUM_MENUROWS - 1; k++) { @@ -219,7 +223,8 @@ void FrontendOptionAddSelect(const wchar* leftText, const wchar** rightTexts, in FrontendOption& option = customFrontendOptions[numCustomFrontendOptions - 1]; option.type = FEOPTION_SELECT; TextCopy(option.leftText, leftText); - option.rightTexts = rightTexts; + option.rightTexts = (wchar**)malloc(numRightTexts * sizeof(wchar*)); + memcpy(option.rightTexts, rightTexts, numRightTexts * sizeof(wchar*)); option.numRightTexts = numRightTexts; option.value = var; option.displayedValue = *var; diff --git a/src/extras/frontendoption.h b/src/extras/frontendoption.h index 9608870b..8e2dd668 100644 --- a/src/extras/frontendoption.h +++ b/src/extras/frontendoption.h @@ -107,7 +107,7 @@ struct FrontendOption // Only for static/select struct { - const wchar** rightTexts; + wchar** rightTexts; int8 numRightTexts; bool onlyApplyOnEnter; ChangeFunc changeFunc; -- cgit v1.2.3