CFO fixes
This commit is contained in:
parent
082c4caecf
commit
7658577260
@ -1075,6 +1075,38 @@ CMenuManager::Draw()
|
|||||||
leftText = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName);
|
leftText = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
if (aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot == SAVESLOT_CFO) {
|
||||||
|
FrontendOption &option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu];
|
||||||
|
if (option.type == FEOPTION_SELECT) {
|
||||||
|
if (option.onlyApplyOnEnter){
|
||||||
|
if (m_nCurrOption != i) {
|
||||||
|
if (option.displayedValue != option.lastSavedValue)
|
||||||
|
SetHelperText(3); // Restored original value
|
||||||
|
|
||||||
|
// option.displayedValue = option.lastSavedValue = *option.value;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (option.displayedValue != *option.value)
|
||||||
|
SetHelperText(1); // Enter to apply
|
||||||
|
else if (m_nHelperTextMsgId == 1)
|
||||||
|
ResetHelperText(); // Applied
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_nCurrOption != lastOption && lastOption == i) {
|
||||||
|
FrontendOption &oldOption = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[lastOption].m_TargetMenu];
|
||||||
|
if (oldOption.type == FEOPTION_DYNAMIC || oldOption.type == FEOPTION_BUILTIN_ACTION)
|
||||||
|
if(oldOption.buttonPressFunc)
|
||||||
|
oldOption.buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
||||||
|
|
||||||
|
if (oldOption.onlyApplyOnEnter && oldOption.type == FEOPTION_SELECT)
|
||||||
|
oldOption.displayedValue = oldOption.lastSavedValue = *oldOption.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
||||||
case MENUACTION_CHANGEMENU: {
|
case MENUACTION_CHANGEMENU: {
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu) {
|
||||||
@ -1477,38 +1509,6 @@ CMenuManager::Draw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
if (aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot == SAVESLOT_CFO) {
|
|
||||||
FrontendOption &option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu];
|
|
||||||
if (option.type == FEOPTION_SELECT) {
|
|
||||||
if (option.onlyApplyOnEnter){
|
|
||||||
if (m_nCurrOption != i) {
|
|
||||||
if (option.displayedValue != option.lastSavedValue)
|
|
||||||
SetHelperText(3); // Restored original value
|
|
||||||
|
|
||||||
// option.displayedValue = option.lastSavedValue = *option.value;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (option.displayedValue != *option.value)
|
|
||||||
SetHelperText(1); // Enter to apply
|
|
||||||
else if (m_nHelperTextMsgId == 1)
|
|
||||||
ResetHelperText(); // Applied
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_nCurrOption != lastOption && lastOption == i) {
|
|
||||||
FrontendOption &oldOption = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[lastOption].m_TargetMenu];
|
|
||||||
if (oldOption.type == FEOPTION_DYNAMIC || oldOption.type == FEOPTION_BUILTIN_ACTION)
|
|
||||||
if(oldOption.buttonPressFunc)
|
|
||||||
oldOption.buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
|
||||||
|
|
||||||
if (oldOption.onlyApplyOnEnter && oldOption.type == FEOPTION_SELECT)
|
|
||||||
oldOption.displayedValue = oldOption.lastSavedValue = *oldOption.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Sliders
|
// Sliders
|
||||||
int lastActiveBarX;
|
int lastActiveBarX;
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
||||||
|
@ -295,7 +295,10 @@ bool CGame::InitialiseOnceAfterRW(void)
|
|||||||
CWorld::Players[0].SetPlayerSkin(CMenuManager::m_PrefsSkinFile);
|
CWorld::Players[0].SetPlayerSkin(CMenuManager::m_PrefsSkinFile);
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
if (numCustomFrontendOptions == 0 && numCustomFrontendScreens == 0) {
|
||||||
CustomFrontendOptionsPopulate();
|
CustomFrontendOptionsPopulate();
|
||||||
|
FrontEndMenuManager.LoadSettings();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,12 @@ wchar* MultiSamplingDraw(bool *disabled, bool userHovering) {
|
|||||||
} else {
|
} else {
|
||||||
FrontEndMenuManager.SetHelperText(1);
|
FrontEndMenuManager.SetHelperText(1);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (FrontEndMenuManager.m_nDisplayMSAALevel != FrontEndMenuManager.m_nPrefsMSAALevel) {
|
||||||
|
FrontEndMenuManager.m_nDisplayMSAALevel = FrontEndMenuManager.m_nPrefsMSAALevel;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!FrontEndMenuManager.m_bGameNotLoaded)
|
if (!FrontEndMenuManager.m_bGameNotLoaded)
|
||||||
*disabled = true;
|
*disabled = true;
|
||||||
|
|
||||||
@ -305,7 +310,7 @@ CustomFrontendOptionsPopulate(void)
|
|||||||
#endif
|
#endif
|
||||||
// -- Graphics/display seperation preperation end
|
// -- Graphics/display seperation preperation end
|
||||||
|
|
||||||
static const wchar* off_on[] = { TheText.Get("FEM_OFF"), TheText.Get("FEM_ON") };
|
const wchar* off_on[] = { TheText.Get("FEM_OFF"), TheText.Get("FEM_ON") };
|
||||||
|
|
||||||
#ifdef MORE_LANGUAGES
|
#ifdef MORE_LANGUAGES
|
||||||
FrontendOptionSetCursor(MENUPAGE_LANGUAGE_SETTINGS, -2);
|
FrontendOptionSetCursor(MENUPAGE_LANGUAGE_SETTINGS, -2);
|
||||||
@ -326,7 +331,7 @@ CustomFrontendOptionsPopulate(void)
|
|||||||
CLONE_OPTION(TheText.Get("FED_WIS"), MENUACTION_WIDESCREEN, nil, nil)
|
CLONE_OPTION(TheText.Get("FED_WIS"), MENUACTION_WIDESCREEN, nil, nil)
|
||||||
|
|
||||||
#ifdef IMPROVED_VIDEOMODE
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
static const wchar* screenModes[] = { (wchar*)L"FULLSCREEN", (wchar*)L"WINDOWED" };
|
const wchar* screenModes[] = { TheText.Get("FED_FLS"), TheText.Get("FED_WND") };
|
||||||
// Storing isn't enabled because it's handled in Frontend
|
// Storing isn't enabled because it's handled in Frontend
|
||||||
FrontendOptionAddSelect(TheText.Get("FEM_SCF"), screenModes, 2, (int8*)&FrontEndMenuManager.m_nPrefsWindowed, true, ScreenModeChange, nil);
|
FrontendOptionAddSelect(TheText.Get("FEM_SCF"), screenModes, 2, (int8*)&FrontEndMenuManager.m_nPrefsWindowed, true, ScreenModeChange, nil);
|
||||||
#endif
|
#endif
|
||||||
|
@ -76,6 +76,10 @@ RemoveCustomFrontendOptions()
|
|||||||
for (int j = 0; j < NUM_MENUROWS; j++) {
|
for (int j = 0; j < NUM_MENUROWS; j++) {
|
||||||
if (aScreens[i].m_aEntries[j].m_SaveSlot == SAVESLOT_CFO) {
|
if (aScreens[i].m_aEntries[j].m_SaveSlot == SAVESLOT_CFO) {
|
||||||
int ogOptionId = customFrontendOptions[aScreens[i].m_aEntries[j].m_TargetMenu].ogOptionId;
|
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) {
|
if (ogOptionId == -1) {
|
||||||
int k;
|
int k;
|
||||||
for (k = j; k < NUM_MENUROWS - 1; 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];
|
FrontendOption& option = customFrontendOptions[numCustomFrontendOptions - 1];
|
||||||
option.type = FEOPTION_SELECT;
|
option.type = FEOPTION_SELECT;
|
||||||
TextCopy(option.leftText, leftText);
|
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.numRightTexts = numRightTexts;
|
||||||
option.value = var;
|
option.value = var;
|
||||||
option.displayedValue = *var;
|
option.displayedValue = *var;
|
||||||
|
@ -107,7 +107,7 @@ struct FrontendOption
|
|||||||
|
|
||||||
// Only for static/select
|
// Only for static/select
|
||||||
struct {
|
struct {
|
||||||
const wchar** rightTexts;
|
wchar** rightTexts;
|
||||||
int8 numRightTexts;
|
int8 numRightTexts;
|
||||||
bool onlyApplyOnEnter;
|
bool onlyApplyOnEnter;
|
||||||
ChangeFunc changeFunc;
|
ChangeFunc changeFunc;
|
||||||
|
Loading…
Reference in New Issue
Block a user