summaryrefslogtreecommitdiffstats
path: root/src/extras
diff options
context:
space:
mode:
Diffstat (limited to 'src/extras')
-rw-r--r--src/extras/frontendoption.cpp7
-rw-r--r--src/extras/frontendoption.h2
2 files changed, 7 insertions, 2 deletions
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;